Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
fireworkslauncher.c
Go to the documentation of this file.
2 {
3  void ExplosionLight()
4  {
5  SetVisibleDuringDaylight(true);
6  SetRadiusTo(60);
7  SetBrightnessTo(0.05);
8  SetFlareVisible(false);
9  SetAmbientColor(1.0, 1.0, 1.0);
10  SetDiffuseColor(1.0, 1.0, 1.0);
11  SetLifetime(2.1);
12  //SetDisableShadowsWithinRadius(-1);
13  SetFadeOutTime(1);
14  m_FadeInTime = 0.25;
15  SetFlickerSpeed(7);
16  //SetFlickerAmplitude(0.5);
17  SetFlickerAmplitudeMax(3);
18  SetFlickerAmplitudeMin(0);
19  SetCastShadow( false );
20  }
21 }
22 //-----------------------------------------------------------------------------------------------
23 class FireworksLauncherClientEventBase
24 {
25  void OnFired();
26 }
27 //-----------------------------------------------------------------------------------------------
28 class FireworksLauncherClientEvent : FireworksLauncherClientEventBase
29 {
30  protected ref Timer m_Timer = new Timer();
31  protected FireworksLauncher m_Item;
32  protected int m_Index;
33  protected vector m_ExplosionPos;
34  protected EffectSound m_FireSound;
35  protected EffectSound m_ExplosionSound;
36  protected ParticleSource m_ParticleShot;
37  protected ParticleSource m_ParticleExplosion;
38  protected vector m_ShotDir;
39  protected ExplosionLight m_ExplosionLight;
40  protected ParticleSource m_ParticleAfterBurnEnd;
41  protected string m_Color;
42  protected int m_RemainingExplosions = GetSecondaryExplosionCount();
44  #ifdef DEVELOPER
45  Shape m_ShotTrajectory;
46  #endif
47 
48 
49  // -----------------------------
50  // ------- Tweaking Start-------
51  // -----------------------------
52 
53  protected int GetSoundDelay()
54  {
55  return 0;
56  }
57 
58  protected int GetLightDelay()
59  {
60  return 0;
61  }
62 
63  protected float GetExplosionDistance()
64  {
65  return Math.RandomFloatInclusive(35,40);
66  }
67 
68  protected float GetShotDispersionAngle()
69  {
70  return Math.RandomFloatInclusive(-25,25);//this is rotated 360 degrees around the UP vector too
71  }
72 
73  protected string GetExplosionSoundSet()
74  {
75  return "FireworksLauncher_Explosion_SoundSet";
76  }
77 
78  protected float GetExplosionDelay()
79  {
80  return Math.RandomFloatInclusive(1.5,1.75);
81  }
82 
83  // -----------------------------
84  // ------- Tweaking End --------
85  // -----------------------------
86 
87 
89  {
90  m_Item = item;
91  m_Index = index;
92 
93  int colorSequenceLastIndex = m_Item.GetColorSequence().Length() - 1;
94  int coloreSequenceIndex = m_Index - 1;//shot index(m_Index) starts at 1
95 
96  if (colorSequenceLastIndex >= coloreSequenceIndex)
97  {
98  m_Color = m_Item.GetColorSequence().Get(coloreSequenceIndex);
99  }
100  else
101  {
102  Debug.LogError("Failed to obtain color from color sequence");
103  m_Color = "B";
104  }
105  }
106 
108  {
109  SEffectManager.DestroyEffect(m_FireSound);
110  SEffectManager.DestroyEffect(m_ExplosionSound);
111  if (m_ParticleAfterBurnEnd)
112  {
113  m_ParticleAfterBurnEnd.StopParticle();
114  }
115  }
116 
117  override protected void OnFired()
118  {
119  m_Timer.Run(GetExplosionDelay(), this, "OnExplode", null);
120  m_Item.PlaySoundSet( m_FireSound, "FireworksLauncher_Shot_SoundSet", 0, 0 );
121  m_ParticleShot = ParticleManager.GetInstance().PlayInWorld(ParticleList.FIREWORKS_SHOT, GetShotPos());
122  m_ParticleShot.SetYawPitchRoll(Vector(Math.RandomFloatInclusive(0,360),GetShotDispersionAngle(),0));
123 
124  m_ParticleAfterBurnEnd = ParticleManager.GetInstance().PlayInWorld(ParticleList.FIREWORKS_AFTERBURN_END, GetShotPos());
125  if (m_ParticleAfterBurnEnd)
126  m_ParticleAfterBurnEnd.SetOwner(this);
127  m_ShotDir = m_ParticleShot.GetDirectionUp();
128 
129  #ifdef DEVELOPER
130  vector pts[2];
131  pts[0] = GetShotPos();
132  pts[1] = GetShotPos() + m_ShotDir * GetExplosionDistance();
133  //m_ShotTrajectory = Shape.CreateLines(COLOR_RED, ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE|ShapeFlags.NOZBUFFER, pts, 2);
134  #endif
135  }
136 
137  protected vector GetShotPos()
138  {
139  vector memPos;
140  string memName = "Shot_" + m_Index;
141 
142  if (m_Item.MemoryPointExists(memName))
143  {
144  memPos = m_Item.GetMemoryPointPos(memName);
145  memPos = m_Item.ModelToWorld(memPos);
146  }
147  else
148  {
149  memPos = m_Item.GetPosition();//fallback to item's location
150  Debug.LogError("Missing shot memory point on Fireworks");
151  }
152  return memPos;
153  }
154 
155  protected void CalculateExplosionPosition()
156  {
157  m_ExplosionPos = GetShotPos() + m_ShotDir * GetExplosionDistance();
158  }
159 
160  protected vector GetExplosionPosition()
161  {
162  if (!m_ExplosionPos)
163  {
164  CalculateExplosionPosition();
165  }
166  return m_ExplosionPos;
167  }
168 
169  int GetSecondaryExplosionCount()
170  {
171  return 4;
172  }
173 
174 
175  protected void OnExplode()
176  {
177  #ifdef DEVELOPER
178  if (m_ShotTrajectory)
179  {
180  m_ShotTrajectory.Destroy();
181  m_ShotTrajectory = null;
182  }
183  #endif
184  m_ParticleAfterBurnEnd.Stop();
185 
186  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( PlayExplosionSound, GetSoundDelay(), false);
187  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SpawnLight, GetLightDelay(), false);
188  m_ParticleExplosion = ParticleManager.GetInstance().PlayInWorld(GetExplParticleFromSequence(), GetExplosionPosition());
189 
190  RequestSecondaryExplosion();
191 
192  }
193 
194  protected void RequestSecondaryExplosion()
195  {
196  if (m_RemainingExplosions> 0)
197  {
198  m_RemainingExplosions--;
199  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SpawnSecondaryExplosion, GetSecondaryExplosionDelay(), false);
200  }
201  }
202 
203  protected void SpawnSecondaryExplosion()
204  {
205  FireworksLauncherClientEventSecondary evnt = new FireworksLauncherClientEventSecondary(m_Item,m_Index);
206  evnt.Init(GetExplosionPosition());
207  evnt.OnExplode();
208  m_Events.Insert(evnt);
209  RequestSecondaryExplosion();
210  }
211 
212  protected int GetSecondaryExplosionDelay()
213  {
214  return Math.RandomIntInclusive(100,250);
215  }
216 
217  protected int GetExplParticleFromSequence()
218  {
219  switch (m_Color)
220  {
221  case "R":
222  return ParticleList.FIREWORKS_EXPLOSION_RED;
223  case "G":
224  return ParticleList.FIREWORKS_EXPLOSION_GREEN;
225  case "B":
226  return ParticleList.FIREWORKS_EXPLOSION_BLUE;
227  case "Y":
228  return ParticleList.FIREWORKS_EXPLOSION_YELLOW;
229  case "P":
230  return ParticleList.FIREWORKS_EXPLOSION_PINK;
231  default:
232  ErrorEx("Incorrect explosion particle color in the sequence");
233  }
234  return ParticleList.FIREWORKS_EXPLOSION_RED;
235  }
236 
237  protected void SetupLight(PointLightBase light)
238  {
239  switch (m_Color)
240  {
241  case "R":
242  light.SetDiffuseColor(255,51,51);
243  light.SetAmbientColor(255,51,51);
244 
245  break;
246  case "G":
247  light.SetDiffuseColor(0,255,128);
248  light.SetAmbientColor(0,255,128);
249  break;
250  case "B":
251  light.SetDiffuseColor(51,153,255);
252  light.SetAmbientColor(51,153,255);
253  break;
254  case "Y":
255  light.SetDiffuseColor(255,255,51);
256  light.SetAmbientColor(255,255,51);
257  break;
258  case "P":
259  light.SetDiffuseColor(255,102,255);
260  light.SetAmbientColor(255,102,255);
261  break;
262  default:
263  ErrorEx("Incorrect explosion particle color in the sequence");
264  }
265  }
266 
267  protected void SpawnLight()
268  {
269  m_ExplosionLight = ExplosionLight.Cast( ScriptedLightBase.CreateLight( ExplosionLight, GetExplosionPosition()) );
270  SetupLight(m_ExplosionLight);
271  }
272 
273  protected void PlayExplosionSound()
274  {
275  if (m_FireSound)
276  {
277  m_FireSound.Stop();
278  }
279  m_Item.PlaySoundSet( m_ExplosionSound, GetExplosionSoundSet(), 0, 0 );
280  }
281 }
282 //------------------------------------------------------------------------------------
283 
284 class FireworksLauncherClientEventSecondary : FireworksLauncherClientEvent
285 {
286  protected vector m_ShotPos;
287 
288  override protected vector GetExplosionPosition()
289  {
290  return GetShotPos() + m_ShotDir * GetExplosionDistance();
291  }
292 
293  void Init(vector pos)
294  {
295  m_ShotPos = pos;
296  m_ShotDir[0] = Math.RandomFloatInclusive(-1,1);
297  m_ShotDir[1] = Math.RandomFloatInclusive(-1,1);
298  m_ShotDir[2] = Math.RandomFloatInclusive(-1,1);
299  m_ShotDir.Normalize();
300  }
301  override protected vector GetShotPos()
302  {
303  return m_ShotPos;
304  }
305 
306  override protected float GetExplosionDistance()
307  {
308  return Math.RandomFloatInclusive(10,15);
309  }
310 
311  override void OnExplode()
312  {
313  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( PlayExplosionSound, GetSoundDelay(), false);
314  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SpawnLight, GetLightDelay(), false);
315  m_ParticleExplosion = ParticleManager.GetInstance().PlayInWorld(GetExplParticleFromSequence(), GetExplosionPosition());
316  }
317 }
318 
320 {
321  int m_Index;//counts the shots
322  int m_IndexPrev;//counts the shots
323  int m_ColorSequenceIndex;
324  ref Timer m_TimerFuse;
326  EffectSound m_FuseSoundStart;
327  EffectSound m_FuseSound;
328  ParticleSource m_ParticleFuse;
329  ParticleSource m_ParticleAfterBurnEnd;
330  ref array<string> m_ColorSequence;
331 
332  void FireworksLauncher()
333  {
334  m_ColorSequence = new array<string>();
335  SetupColorSequences();
336  RegisterNetSyncVariableInt("m_State", 0, EnumTools.GetLastEnumValue(EFireworksState));
337  RegisterNetSyncVariableInt("m_Index", 0, GetMaxShots());
338  RegisterNetSyncVariableInt("m_RandomSeed", 0, 1023);
339  int lastIndex = m_ColorSequence.Count() - 1;
340  RegisterNetSyncVariableInt("m_ColorSequenceIndex", 0, lastIndex);
341  m_RandomSeed = Math.RandomInt(0,1023);
342  m_ColorSequenceIndex = Math.RandomIntInclusive(0, lastIndex);
343  }
344 
345  void ~FireworksLauncher()
346  {
347  SEffectManager.DestroyEffect(m_FuseSound);
348  SEffectManager.DestroyEffect(m_FuseSoundStart);
349  }
350 
351  override protected bool UsesGlobalDeploy()
352  {
353  return true;
354  }
355 
356  override bool IsDeployable()
357  {
358  return true;
359  }
360 
362  override float GetDeployTime()
363  {
364  return 2;
365  }
366 
367  protected void SetupColorSequences()
368  {
369  m_ColorSequence.Insert("RGBYPBRGBRGBYPBRGBRGBYPBRGBPBRGBRGBY");
370  m_ColorSequence.Insert("PGPYPBYPYPBYYPBRPYPBYYPBRGBPBRGRGBRB");
371  m_ColorSequence.Insert("YPBRPYPBYYPBRGBPBRGRGBRBGRPBRGBRYPBY");
372  m_ColorSequence.Insert("YRBGPRYPGRYBGRGRGBRBBYPYPBYRYPGRYGRP");
373  m_ColorSequence.Insert("BGRYPYRPBYYPYRBGPRYPGBYPBRGBPBRGBRGB");
374  m_ColorSequence.Insert("RYGRPBRGBYPBRRPBRGBBRBBYPYPRGBRGBRPY");
375  m_ColorSequence.Insert("GBRGBYRGBYPBRRPBRBYRYPGPYPRGBRGBRPYG");
376  m_ColorSequence.Insert("RYPBYYPBRGBYPBRGBRBGBPBRGRGBRBGRYPYR");
377  m_ColorSequence.Insert("PBRGBYPBRGBRBGBPBRGRGBRBGRYPYRRYPBYY");
378  m_ColorSequence.Insert("RGRGBRBBYPYPBYRYPGRYGRPYRBGPRYPGRYBG");
379  m_ColorSequence.Insert("RBYRYPGPYPRGBRGBRPYGGBRGBYRGBYPBRRPB");
380  m_ColorSequence.Insert("PRGBRGBRPYGGBRRBYRYPGPYGBYRGBYPBRRPB");
381  }
382 
383  string GetColorSequence()
384  {
385  if (m_ColorSequence.IsValidIndex(m_ColorSequenceIndex))
386  {
387  return m_ColorSequence.Get(m_ColorSequenceIndex);
388  }
389  else
390  {
391  ErrorEx("Failed to obtain color sequence");
392  return "RYPBYYPBRGBYPBRGBRBGBPBRGRGBRBGRYPYR";
393  }
394  }
395 
396 
397  override protected void OnPlacementComplete(Man player, vector position = "0 0 0", vector orientation = "0 0 0")
398  {
399  super.OnPlacementComplete(player, position, orientation);
400  if (GetGame().IsServer())
401  {
402  if (GetState() == EFireworksState.DEFAULT)
403  {
404  SetState(EFireworksState.PLACED);
405  }
406  }
407  }
408 
409  override protected float GetMaxAllowedWetness()
410  {
411  return GameConstants.STATE_WET;
412  }
413 
414 
415  override protected float GetEventDelay()
416  {
417  return Math.RandomFloatInclusive(3,3.35);
418  }
419 
420  protected string GetFuseSoundSet()
421  {
422  return "FireworksLauncher_Ignition_Loop_SoundSet";
423  }
424 
425  protected int GetMaxShots()
426  {
427  return 16;
428  }
429 
430  protected float GetFuseDelay()
431  {
432  return 3;
433  }
434 
435  protected string GetAmmoType()
436  {
437  return "Fireworks_Ammo";
438  }
439 
440  protected int GetDamageType()
441  {
442  return DamageType.EXPLOSION;
443  }
444 
445 
446  override protected void OnStateChangedServer(EFireworksState currentState)
447  {
448  switch (currentState)
449  {
450  case EFireworksState.PLACED:
451  break
452  case EFireworksState.IGNITED:
453  OnFuseIgnitedServer();
454  break
455  case EFireworksState.FIRING:
456  HideSelection("cover");
457  OnFiringStartServer();
458  break
459  case EFireworksState.FINISHED:
460  HideSelection("cover");//when loading from storage
461  break
462  default: {};
463  }
464  }
465 
466  override protected void OnStateChangedClient(EFireworksState currentState)
467  {
468  switch (currentState)
469  {
470  case EFireworksState.IGNITED:
471  OnFuseIgnitedClient();
472  break
473  case EFireworksState.PLACED:
474  break
475  case EFireworksState.FIRING:
476  OnFiringStartClient();
477  break
478  default: {};
479  }
480  }
481 
483  override void OnIgnitedThis( EntityAI fire_source)
484  {
485  super.OnIgnitedThis(fire_source);
486  if (m_Events)
487  {
488  m_Events.Clear();
489  }
490  m_Index = 0;
491 
492  if (m_TimerEvent)
493  {
494  m_TimerEvent.Stop();
495  }
496  }
497 
498  override protected bool CanPutInCargo( EntityAI parent )
499  {
500  return (GetState() == EFireworksState.DEFAULT || (GetState() == EFireworksState.PLACED) || (GetState() == EFireworksState.FINISHED);
501  }
502 
503  override protected bool CanPutIntoHands( EntityAI parent )
504  {
505  return (GetState() == EFireworksState.DEFAULT || (GetState() == EFireworksState.PLACED) || (GetState() == EFireworksState.FINISHED);
506  }
507 
508  protected void OnFuseIgnitedServer()
509  {
510  int state = EFireworksState.FIRING;
511  GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SetState, GetFuseDelay()*1000, false, state);
512  }
513 
514  protected void OnFuseIgnitedClient()
515  {
516  m_ParticleFuse = ParticleManager.GetInstance().PlayInWorld(ParticleList.FIREWORKS_FUSE, GetPosition() + "0 0.15 0");
517  if (m_ParticleFuse)
518  m_ParticleFuse.SetOwner(this);
519  PlaySoundSet( m_FuseSoundStart, "FireworksLauncher_Ignition_Start_SoundSet", 0, 0 );
520  vector fuseStart;
521  vector fuseEnd;
522 
523  if (MemoryPointExists("Fuse_Start"))
524  {
525  fuseStart = GetMemoryPointPos("Fuse_Start");
526  fuseStart = ModelToWorld(fuseStart);
527  }
528  if (MemoryPointExists("Fuse_End"))
529  {
530  fuseEnd = GetMemoryPointPos("Fuse_End");
531  fuseEnd = ModelToWorld(fuseEnd);
532  }
533 
534  vector fuseDir = fuseEnd - fuseStart;
535  vector fuseOrientation[4];
536  vector ori = fuseDir.VectorToAngles();
537  m_ParticleFuse.SetOrientation(ori);
538  m_ParticleFuse.SetPosition(fuseStart);
539 
540  PlaySoundSetLoop( m_FuseSound, GetFuseSoundSet(), 0, 0 );
541  }
542 
543  protected void OnFiringStartServer()
544  {
545  OnEventServer(0);
546  }
547 
548  protected void OnFiringStartClient()
549  {
550  if (m_ParticleFuse)
551  {
552  m_ParticleFuse.StopParticle(StopParticleFlags.IMMEDIATE);
553  }
554  if (m_FuseSound)
555  {
556  m_FuseSound.Stop();
557  }
558  }
559 
560  protected void OnFiringStop()
561  {
562  SetHealth01("","",0);
563  }
564 
566  protected void RestartEventTimer()
567  {
568  if (!m_TimerEvent)
569  {
570  m_TimerEvent = new Timer();
571  }
572  m_TimerEvent.Run(GetEventDelay(), this, "OnEventServer", new Param1<int>(0));
573  }
574 
575 
576  override protected bool IsIgnited()
577  {
578  return GetState()==EFireworksState.IGNITED;
579  }
580 
581  override protected bool CanIgniteItem(EntityAI ignite_target = NULL)
582  {
583  return false;
584  }
585 
586 
587 
589  override protected void OnEventServer(int type)
590  {
591  m_Index++;
592  DamageSystem.ExplosionDamage(this, NULL, GetAmmoType(), GetPosition(), GetDamageType());
593 
594  SetSynchDirty();
595  if (m_Index > GetMaxShots())
596  {
597  m_Index = GetMaxShots();
598  m_TimerEvent = null;
599  SetState(EFireworksState.FINISHED);
600  }
601  else
602  {
603  RestartEventTimer();
604  }
605  }
606 
607  protected void OnIndexChangedClient()
608  {
609  if (!m_Events)
610  {
612  }
613  if (m_Index != 0 && m_State == EFireworksState.FIRING)//can only be true when restarting the device during debug calls
614  {
615  FireworksLauncherClientEventBase fireEvent = SpawnEvent();
616  m_Events.Insert(fireEvent);
617  }
618  }
619 
620  protected FireworksLauncherClientEventBase SpawnEvent()
621  {
622  FireworksLauncherClientEventBase evnt = new FireworksLauncherClientEvent(this,m_Index);
623  evnt.OnFired();
624  return evnt;
625  }
626 
627  override protected void OnVariablesSynchronized()
628  {
629  super.OnVariablesSynchronized();
630  //Print("index: " + m_Index);
631  if (m_Index != m_IndexPrev)
632  {
633  Math.Randomize(m_RandomSeed+m_Index);
634  OnIndexChangedClient();
635  m_IndexPrev = m_Index;
636  }
637  }
638 
639  override protected void OnStoreSave(ParamsWriteContext ctx)
640  {
641  super.OnStoreSave(ctx);
642  ctx.Write(m_Index);
643  ctx.Write(m_State);
644  }
645 
646 
647  override protected bool OnStoreLoad( ParamsReadContext ctx, int version )
648  {
649  if (!super.OnStoreLoad(ctx, version))
650  {
651  return false;
652  }
653 
654  if (version >= 130)
655  {
656  if (!ctx.Read(m_Index))
657  {
658  return false;
659  }
660 
661  if (!ctx.Read(m_State))
662  {
663  return false;
664  }
665 
666  SetState(m_State);
667  }
668  return true;
669  }
670 
671  override string GetDeploySoundset()
672  {
673  return "placeFireworks_SoundSet";
674  }
675 
676  override string GetLoopDeploySoundset()
677  {
678  return "fireworks_deploy_SoundSet";
679  }
680 
681  #ifdef DEVELOPER
682  override protected string GetDebugText()
683  {
684  string debug_output;
685 
686  if( GetGame().IsDedicatedServer())
687  {
688  debug_output+= EnumTools.EnumToString(EFireworksState, m_State) +"\n";
689  debug_output+= "m_Index:" + m_Index +"\n";
690  }
691  else
692  {
693 
694  }
695  return debug_output;
696  }
697 
698  #endif
699 }
GetGame
proto native CGame GetGame()
CALL_CATEGORY_SYSTEM
const int CALL_CATEGORY_SYSTEM
Definition: tools.c:8
m_TimerEvent
protected ref Timer m_TimerEvent
Definition: fireworksbase.c:15
m_RandomSeed
protected int m_RandomSeed
Definition: fireworksbase.c:16
GetState
proto native int GetState()
returns one of STATE_...
Definition: staminahandler.c:29
GetExplosionPosition
override protected vector GetExplosionPosition()
Definition: fireworkslauncher.c:288
PointLightBase
Definition: staticobj_roadblock_wood_small.c:27
m_Timer
ref Timer m_Timer
Definition: dayzgame.c:690
m_ShotPos
FireworksLauncherClientEvent m_ShotPos
FireworksLauncherClientEvent
Definition: fireworkslauncher.c:28
EFireworksState
EFireworksState
Definition: fireworksbase.c:2
m_Item
protected EntityAI m_Item
Definition: radialquickbarmenu.c:14
ErrorEx
enum ShapeType ErrorEx
Serializer
Serialization general interface. Serializer API works with:
Definition: serializer.c:55
OnExplode
override void OnExplode()
Definition: fireworkslauncher.c:311
GetPosition
class JsonUndergroundAreaTriggerData GetPosition
Definition: undergroundarealoader.c:9
EffectSound
Wrapper class for managing sound through SEffectManager.
Definition: effectsound.c:4
GetShotPos
override protected vector GetShotPos()
Definition: fireworkslauncher.c:301
ParticleList
Definition: particlelist.c:11
vector
Definition: enconvert.c:105
SetState
void SetState(bool state)
Definition: staminahandler.c:30
FireworksLauncher
Definition: fireworkslauncher.c:319
GetExplosionDistance
override protected float GetExplosionDistance()
Definition: fireworkslauncher.c:306
EnumTools
Definition: enconvert.c:589
DamageType
DamageType
exposed from C++ (do not change)
Definition: damagesystem.c:10
GetDebugText
string GetDebugText()
Definition: modifierbase.c:68
ScriptedLightBase
Definition: pointlightbase.c:1
ExplosionLight
Definition: fireworkslauncher.c:1
array< ref FireworksLauncherClientEventBase >
ParticleSource
Entity which has the particle instance as an ObjectComponent.
Definition: particlesource.c:123
Init
void Init(vector pos)
Definition: fireworkslauncher.c:293
m_Color
string m_Color
Definition: enentity.c:848
GameConstants
Definition: constants.c:612
Debug
Definition: debug.c:13
Timer
Definition: dayzplayerimplement.c:62
m_ParticleExplosion
protected Particle m_ParticleExplosion
particle
Definition: explosivesbase.c:34
OnFired
ExplosionLight PointLightBase OnFired()
Math
Definition: enmath.c:6
ParticleManager
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Definition: particlemanager.c:84
FireworksBase
void FireworksBase()
Definition: fireworksbase.c:18
SEffectManager
Manager class for managing Effect (EffectParticle, EffectSound)
Definition: effectmanager.c:5
Vector
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
EntityAI
Definition: building.c:5
m_State
protected float m_DrainThreshold protected bool m_State
Definition: staminahandler.c:20
Shape
class DiagMenu Shape
don't call destructor directly. Use Destroy() instead