DayZ 1.28
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 строка 2242

2243 {
2244 if (!item)
2245 return;
2246
2248 if (!pAttachment)
2249 {
2251 GameInventory itemInventory = item.GetInventory();
2252 if (itemInventory)
2253 {
2254 array<EntityAI> entities = new array<EntityAI>();
2255 itemInventory.EnumerateInventory(InventoryTraversalType.INORDER, entities);
2256 foreach (EntityAI ent : entities)
2257 {
2258 if (ent != this)
2259 {
2260 ent.DecreaseHealth(PARAM_BURN_DAMAGE_COEF,!ent.IsKindOf("Grenade_Base"));
2261 }
2262 }
2263 }
2264 }
2265 else //direct attachments
2266 {
2267 float timerCoef = 1.0;
2268 if (m_HeatingTimer && m_HeatingTimer.IsRunning())
2270 else if (m_CoolingTimer && m_CoolingTimer.IsRunning())
2272
2273 switch (item.Type())
2274 {
2275 case ATTACHMENT_TRIPOD:
2277 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2278 break;
2279 }
2280
2281 if (item.IsCookware())
2282 {
2283 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2284 }
2285
2287 if (IsFuel(item) || IsKindling(item))
2288 {
2289 if (item.GetHealthLevel() < GameConstants.STATE_BADLY_DAMAGED)
2290 item.DecreaseHealth(PARAM_BURN_DAMAGE_COEF, false);
2291 }
2292 }
2293 }
static const float PARAM_BURN_DAMAGE_COEF
Определения Cooking.c:24
const int TIMER_HEATING_UPDATE_INTERVAL
timer constants
Определения FireplaceBase.c:73
const int TIMER_COOLING_UPDATE_INTERVAL
update interval duration of heating process (seconds)
Определения FireplaceBase.c:74
ref Timer m_CoolingTimer
Определения FireplaceBase.c:93
bool IsFuel(ItemBase item)
Returns if item attached to fireplace is fuel.
Определения FireplaceBase.c:1573
ATTACHMENT_TRIPOD
Определения FireplaceBase.c:197
ref Timer m_HeatingTimer
value for calculating of wetness that fireplace gain when raining
Определения FireplaceBase.c:92
ATTACHMENT_COOKINGSTAND
Определения FireplaceBase.c:198
bool IsKindling(ItemBase item)
Returns if item attached to fireplace is kindling.
Определения FireplaceBase.c:1555
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/constants.c:801
const int STATE_BADLY_DAMAGED
Определения 3_Game/constants.c:849

Перекрестные ссылки 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().