DayZ 1.30
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 строка 2260

2261 {
2262 if (!item)
2263 return;
2264
2266 if (!pAttachment)
2267 {
2269 GameInventory itemInventory = item.GetInventory();
2270 if (itemInventory)
2271 {
2272 array<EntityAI> entities = new array<EntityAI>();
2273 itemInventory.EnumerateInventory(InventoryTraversalType.INORDER, entities);
2274 foreach (EntityAI ent : entities)
2275 {
2276 if (ent != this)
2277 {
2278 ent.DecreaseHealth(PARAM_BURN_DAMAGE_COEF,!ent.IsKindOf("Grenade_Base"));
2279 }
2280 }
2281 }
2282 }
2283 else //direct attachments
2284 {
2285 float timerCoef = 1.0;
2286 if (m_HeatingTimer && m_HeatingTimer.IsRunning())
2288 else if (m_CoolingTimer && m_CoolingTimer.IsRunning())
2290
2291 switch (item.Type())
2292 {
2293 case ATTACHMENT_TRIPOD:
2295 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2296 break;
2297 }
2298
2299 if (item.IsCookware())
2300 {
2301 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2302 }
2303
2305 if (IsFuel(item) || IsKindling(item))
2306 {
2307 if (item.GetHealthLevel() < GameConstants.STATE_BADLY_DAMAGED)
2308 item.DecreaseHealth(PARAM_BURN_DAMAGE_COEF, false);
2309 }
2310 }
2311 }
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:1591
ATTACHMENT_TRIPOD
Определения FireplaceBase.c:199
ref Timer m_HeatingTimer
value for calculating of wetness that fireplace gain when raining
Определения FireplaceBase.c:93
ATTACHMENT_COOKINGSTAND
Определения FireplaceBase.c:200
bool IsKindling(ItemBase item)
Returns if item attached to fireplace is kindling.
Определения FireplaceBase.c:1573
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:849
const int STATE_BADLY_DAMAGED
Определения 3_Game/DayZ/constants.c:910

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