DayZ 1.27
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 строка 2235

2236 {
2237 if (!item)
2238 return;
2239
2241 if (!pAttachment)
2242 {
2244 GameInventory itemInventory = item.GetInventory();
2245 if (itemInventory)
2246 {
2247 array<EntityAI> entities = new array<EntityAI>();
2248 itemInventory.EnumerateInventory(InventoryTraversalType.INORDER, entities);
2249 foreach (EntityAI ent : entities)
2250 {
2251 if (ent != this)
2252 {
2253 ent.DecreaseHealth(PARAM_BURN_DAMAGE_COEF,!ent.IsKindOf("Grenade_Base"));
2254 }
2255 }
2256 }
2257 }
2258 else //direct attachments
2259 {
2260 float timerCoef = 1.0;
2261 if (m_HeatingTimer && m_HeatingTimer.IsRunning())
2263 else if (m_CoolingTimer && m_CoolingTimer.IsRunning())
2265
2266 switch (item.Type())
2267 {
2268 case ATTACHMENT_TRIPOD:
2270 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2271 break;
2272 }
2273
2274 if (item.IsCookware())
2275 {
2276 item.DecreaseHealth(GameConstants.FIRE_ATTACHMENT_DAMAGE_PER_SECOND * timerCoef, false);
2277 }
2278
2280 if (IsFuel(item) || IsKindling(item))
2281 {
2282 if (item.GetHealthLevel() < GameConstants.STATE_BADLY_DAMAGED)
2283 item.DecreaseHealth(PARAM_BURN_DAMAGE_COEF, false);
2284 }
2285 }
2286 }
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:1571
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:1553
Определения Building.c:6
Определения constants.c:659
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
Определения Inventory.c:79
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
Определения constants.c:799
const int STATE_BADLY_DAMAGED
Определения constants.c:847

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