DayZ 1.24
Loading...
Searching...
No Matches
Wreck_SantasSleigh.c
Go to the documentation of this file.
1//Christmas Event: Santa's Sleigh
2class Wreck_SantasSleigh extends CrashBase
3{
4 XmasSleighLight m_SleighLight;
5
6 int m_MaxDeersAmount = 4;
7 int m_MinDeersAmount = 2;
8 int m_MaxDeersSpawnRange = 25;
9 int m_MinDeersSpawnRange = 5;
10
12 {
13 if (!GetGame().IsDedicatedServer())
14 {
15 //particles - Aurora trail
16 m_ParticleEfx = ParticleManager.GetInstance().PlayOnObject(ParticleList.AURORA_SANTA_WRECK, this, Vector(0, 0, 0));
17
18 //lights - green light
19 m_SleighLight = XmasSleighLight.Cast(ScriptedLightBase.CreateLight(XmasSleighLight, Vector(0, 0, 0)));
20 m_SleighLight.AttachOnMemoryPoint(this, "light");
21 }
22 }
23
24 // needs to have the soundset registered in CrashBase.Init()
25 override string GetSoundSet()
26 {
27 return "SledgeCrash_Distant_SoundSet";
28 }
29
30 override void EEOnCECreate()
31 {
32 super.EEOnCECreate();
34 }
35
36 override void EEDelete(EntityAI parent)
37 {
38 super.EEDelete(parent);
39
40 if (!GetGame().IsDedicatedServer())
41 {
42 if (m_SleighLight)
43 m_SleighLight.Destroy();
44 }
45 }
46
48 {
49 //SpawnRandomDeers();
50 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(SpawnRandomDeers, 0);
51 }
52
53 //Spawn a random amount of (dead) deers around the sleigh
55 {
58
59 int deersAmount = Math.RandomIntInclusive(m_MinDeersAmount, m_MaxDeersAmount);
60
61 for (int i = 0; i < m_MaxDeersAmount; i++)
62 {
64 deer = EntityAI.Cast(GetGame().CreateObject("Animal_CervusElaphus", deer_pos, false, true));
65 deer.SetHealth01("", "", 0);
66 vector orientation = deer.GetOrientation();
67 deer.SetOrientation(Vector(Math.RandomIntInclusive(0, 360), orientation[1], orientation[2]));
68 }
69 }
70
71 //Return a new vector scattered around origin.
73 {
74 int randX;
75 int randZ;
76
77 randX = Math.RandomIntInclusive(m_MinDeersSpawnRange, m_MaxDeersSpawnRange);
78 if (Math.RandomIntInclusive(0, 1) < 1)
79 randX = -randX;
80
81 randZ = Math.RandomIntInclusive(m_MinDeersSpawnRange, m_MaxDeersSpawnRange);
82 if (Math.RandomIntInclusive(0, 1) < 1)
83 randZ = -randZ;
84
85 origin[0] = origin[0] + randX;
86 origin[2] = origin[2] + randZ;
87
88 return origin;
89
90 }
91}
void RandomizePosition()
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
class JsonUndergroundAreaTriggerData GetPosition
override string GetSoundSet()
void SpawnRandomDeers()
vector RandomizePosition(vector origin)
override void EEDelete(EntityAI parent)
override void EEOnCECreate()
XmasSleighLight m_SleighLight
void SpawnRandomDeerLater()
void Wreck_SantasSleigh()
Definition EnMath.c:7
static const int AURORA_SANTA_WRECK
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:54
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10