DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ AddDamageToItemByFireEx()

void AddDamageToItemByFireEx ( ItemBase item,
bool can_be_ruined,
bool pAttachment )
protected

fireplace cargo only (recursive)

cargo item attachments

fuel & kindling

См. определение в файле FireplaceBase.c строка 2244

2245 {
2246 if (!item)
2247 return;
2248
2250 if (!pAttachment)
2251 {
2253 GameInventory itemInventory = item.GetInventory();
2254 if (itemInventory)
2255 {
2256 array<EntityAI> entities = new array<EntityAI>();
2257 itemInventory.EnumerateInventory(InventoryTraversalType.INORDER, entities);
2258 foreach (EntityAI ent : entities)
2259 {
2260 if (ent != this)
2261 {
2262 ent.DecreaseHealth(PARAM_BURN_DAMAGE_COEF,!ent.IsKindOf("Grenade_Base"));
2263 }
2264 }
2265 }
2266 }
2267 else //direct attachments
2268 {
2269 float timerCoef = 1.0;
2270 if (m_HeatingTimer && m_HeatingTimer.IsRunning())
2272 else if (m_CoolingTimer && m_CoolingTimer.IsRunning())
2274
2275 switch (item.Type())
2276 {
2277 case ATTACHMENT_TRIPOD:
2279 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2280 break;
2281 }
2282
2283 if (item.IsCookware())
2284 {
2285 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2286 }
2287
2289 if (IsFuel(item) || IsKindling(item))
2290 {
2291 if (item.GetHealthLevel() < GameConstants.STATE_BADLY_DAMAGED)
2292 item.DecreaseHealth(PARAM_BURN_DAMAGE_COEF, false);
2293 }
2294 }
2295 }
static const float PARAM_BURN_DAMAGE_COEF
Определения Cooking.c:24
const int TIMER_HEATING_UPDATE_INTERVAL
timer constants
Определения FireplaceBase.c:74
const int TIMER_COOLING_UPDATE_INTERVAL
update interval duration of heating process (seconds)
Определения FireplaceBase.c:75
ref Timer m_CoolingTimer
Определения FireplaceBase.c:94
bool IsFuel(ItemBase item)
Returns if item attached to fireplace is fuel.
Определения FireplaceBase.c:1575
ATTACHMENT_TRIPOD
Определения FireplaceBase.c:198
ref Timer m_HeatingTimer
value for calculating of wetness that fireplace gain when raining
Определения FireplaceBase.c:93
ATTACHMENT_COOKINGSTAND
Определения FireplaceBase.c:199
bool IsKindling(ItemBase item)
Returns if item attached to fireplace is kindling.
Определения FireplaceBase.c:1557
proto native bool EnumerateInventory(InventoryTraversalType tt, out array< EntityAI > items)
enumerate inventory using traversal type and filling items array
script counterpart to engine's class Inventory
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
InventoryTraversalType
tree traversal type, for more see http://en.wikipedia.org/wiki/Tree_traversal
Определения gameplay.c:6
const float FIRE_ATTACHMENT_DAMAGE_PER_SECOND
various damage per second constants
Определения 3_Game/DayZ/constants.c:804
const int STATE_BADLY_DAMAGED
Определения 3_Game/DayZ/constants.c:852

Перекрестные ссылки ATTACHMENT_COOKINGSTAND, ATTACHMENT_TRIPOD, GameInventory::EnumerateInventory(), GameConstants::FIRE_ATTACHMENT_DAMAGE_PER_SECOND, IsFuel(), IsKindling(), m_CoolingTimer, m_HeatingTimer, PARAM_BURN_DAMAGE_COEF, GameConstants::STATE_BADLY_DAMAGED, TIMER_COOLING_UPDATE_INTERVAL и TIMER_HEATING_UPDATE_INTERVAL.

Используется в AddDamageToItemByFire() и BurnItemsInFireplace().