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

◆ DebugSetHealthAndEnergy()

void GetBurningMaterial::DebugSetHealthAndEnergy ( float time)

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

222{
223 override void Init()
224 {
225 super.Init();
226 m_DecraftResult = "LongWoodenStick";
227 m_ParticleLocalPos = Vector(0, 1.2, 0);
228 }
229
230 override void SetActions()
231 {
232 super.SetActions();
233
236 }
237
238 override bool CanReceiveUpgrade()
239 {
240 return false;
241 }
242
243 override void OnWorkStart()
244 {
245 super.OnWorkStart();
247 }
248
249 override void ApplyResultModifications(ItemBase result)
250 {
251 result.SetHealth(result.GetHealthLevelValue(2,""));
252 result.SetQuantity(1);
253 }
254
255 override bool CanTransformIntoStick()
256 {
257 if ( GetGame().IsServer() && !IsIgnited() && GetEnergy() < 1 && !IsSetForDeletion())
258 return true;
259 else
260 return false;
261 }
262
263
264 override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
265 {
266 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
267
268 GetCompEM().SetEnergy0To1(GetHealth01("",""));
269 }
270
271
272 override void CalculateQuantity()
273 {
274 if (GetGame().IsServer())
275 {
276 float currentHealth01 = GetHealth01();
277 float currentEnergy01 = GetCompEM().GetEnergy0To1();
278
279 //Health needs to copy internal energy, but only if that means it will be going down from its current value(the item can't heal itself after obtaining damage just because it has full internal energy)
280 SetHealth01("","",Math.Min(currentHealth01,currentEnergy01));
281 //Energy needs to copy health, but only if it is higher(in 01 terms) than health, that means if an item with full energy gets damaged and lit, the internal energy needs to be adjusted to follow the health. Situations where internal energy is lower than health are handled on the line above
282 GetCompEM().SetEnergy0To1(GetHealth01());
283 }
284 }
285
286 override void UpdateParticle()
287 {
288 float normalizedQuant = GetQuantity() / GetQuantityMax();
289
290 if (!m_FireParticle)
291 {
292 m_FireParticle = ParticleManager.GetInstance().PlayOnObject(ParticleList.BROOM_TORCH_T1, this, m_ParticleLocalPos);
293 }
294 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY, 1.0);
295 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY_RND, 1.0);
296 if (m_FireParticle)
297 {
298 float scale = Math.Max(normalizedQuant * 2.4, 0.4);
299
300 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.SIZE, scale);
301 }
302 }
303
304 // DEBUG BELLOW
305 void DebugSetHealthAndEnergy(float time)
306 {
307 float max_energy = GetCompEM().GetEnergyMaxPristine();
308 float health01 = Math.InverseLerp(0, max_energy, time);
309 SetHealth01("","", health01);
310 GetCompEM().SetEnergy( time );
311 }
312
313 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
314 {
315 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_VERY_SHORT, "SetBurnTimeTo15Secs", FadeColors.LIGHT_GREY));
316 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_SHORT, "SetBurnTimeTo1Min", FadeColors.LIGHT_GREY));
317 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_MEDIUM, "SetBurnTimeTo10Min", FadeColors.LIGHT_GREY));
318 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_LONG, "SetBurnTimeToMax", FadeColors.LIGHT_GREY));
319 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
320
321 super.GetDebugActions(outputList);
322 }
323
324 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
325 {
326 if (super.OnAction(action_id, player, ctx))
327 return true;
328 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
329 {
330 if (action_id == EActions.BROOM_BURN_VERY_SHORT)
331 {
333 OnIgnitedThis(null);
334 }
335 else if (action_id == EActions.BROOM_BURN_SHORT)
336 {
338 OnIgnitedThis(null);
339 }
340 else if (action_id == EActions.BROOM_BURN_MEDIUM)
341 {
343 OnIgnitedThis(null);
344 }
345 else if (action_id == EActions.BROOM_BURN_LONG)
346 {
347 DebugSetHealthAndEnergy(GetCompEM().GetEnergyMaxPristine());
348 OnIgnitedThis(null);
349 }
350 }
351 return false;
352 }
353
354}
355
356class Broom: BroomBase
357{
358 override string GetBurningMaterial()
359 {
360 return "DZ\\gear\\tools\\data\\broom_emissive.rvmat";
361 }
362
363 override string GetBurntMaterial()
364 {
365 return "DZ\\gear\\tools\\data\\broom_burn.rvmat";
366 }
367}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
override void UpdateParticle()
Определения Broom.c:202
override void CalculateQuantity()
Определения Broom.c:188
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения Broom.c:229
override bool CanReceiveUpgrade()
Определения Broom.c:154
override void SetActions()
Определения Broom.c:146
override void OnWorkStart()
Определения Broom.c:159
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения Broom.c:240
override bool CanTransformIntoStick()
Определения Broom.c:171
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения Broom.c:139
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
Определения Broom.c:180
void DebugSetHealthAndEnergy(float time)
Определения Broom.c:221
override void ApplyResultModifications(ItemBase result)
Определения Broom.c:165
EActions
Определения EActions.c:2
override void OnIgnitedThis(EntityAI fire_source)
Executed on Server when some item ignited this one.
Определения FireworksBase.c:96
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override float GetQuantity()
Определения ItemBase.c:8154
float GetEnergy()
Определения ItemBase.c:8278
override int GetQuantityMax()
Определения ItemBase.c:8106
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения Broom.c:2
Определения Building.c:6
override void SetActions()
Определения Torch.c:754
string GetBurningMaterial()
Определения Torch.c:796
string GetBurntMaterial()
Определения Torch.c:801
Определения Torch.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
static const int BROOM_TORCH_T1
Определения ParticleList.c:78
Определения ParticleList.c:12
Определения DamageSystem.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
EmitorParam
Определения EnVisual.c:114
const int SAT_DEBUG_ACTION
Определения constants.c:452