DayZ
1.24
Loading...
Searching...
No Matches
Wreck_SantasSleigh.c
Go to the documentation of this file.
1
//Christmas Event: Santa's Sleigh
2
class
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
11
void
Wreck_SantasSleigh
()
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();
33
SpawnRandomDeerLater
();
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
47
void
SpawnRandomDeerLater
()
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
54
void
SpawnRandomDeers
()
55
{
56
EntityAI
deer
;
57
vector
crash_pos
=
GetPosition
();
58
59
int
deersAmount
=
Math
.
RandomIntInclusive
(m_MinDeersAmount, m_MaxDeersAmount);
60
61
for
(
int
i
= 0;
i
<
m_MaxDeersAmount
;
i
++)
62
{
63
vector
deer_pos
=
RandomizePosition
(
crash_pos
);
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.
72
vector
RandomizePosition
(
vector
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
}
RandomizePosition
void RandomizePosition()
Definition
MapNavigationBehaviour.c:89
ParticleManager
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Definition
ParticleManager.c:84
GetPosition
class JsonUndergroundAreaTriggerData GetPosition
Definition
UndergroundAreaLoader.c:9
CrashBase
Definition
Wreck_MI8.c:3
CrashBase::GetSoundSet
override string GetSoundSet()
Definition
Wreck_SantasSleigh.c:25
CrashBase::SpawnRandomDeers
void SpawnRandomDeers()
Definition
Wreck_SantasSleigh.c:54
CrashBase::RandomizePosition
vector RandomizePosition(vector origin)
Definition
Wreck_SantasSleigh.c:72
CrashBase::EEDelete
override void EEDelete(EntityAI parent)
Definition
Wreck_SantasSleigh.c:36
CrashBase::EEOnCECreate
override void EEOnCECreate()
Definition
Wreck_SantasSleigh.c:30
CrashBase::m_SleighLight
XmasSleighLight m_SleighLight
Definition
Wreck_SantasSleigh.c:4
CrashBase::SpawnRandomDeerLater
void SpawnRandomDeerLater()
Definition
Wreck_SantasSleigh.c:47
CrashBase::Wreck_SantasSleigh
void Wreck_SantasSleigh()
Definition
Wreck_SantasSleigh.c:11
CrashBase::m_MaxDeersAmount
int m_MaxDeersAmount
Definition
Wreck_SantasSleigh.c:6
EntityAI
Definition
Building.c:6
Math
Definition
EnMath.c:7
Param3
Definition
EntityAI.c:95
ParticleList
Definition
ParticleList.c:12
ParticleList::AURORA_SANTA_WRECK
static const int AURORA_SANTA_WRECK
Definition
ParticleList.c:255
ScriptedLightBase
Definition
PointLightBase.c:2
vector
Definition
EnConvert.c:106
GetGame
proto native CGame GetGame()
Vector
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
Math::RandomIntInclusive
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition
EnMath.c:54
CALL_CATEGORY_GAMEPLAY
const int CALL_CATEGORY_GAMEPLAY
Definition
tools.c:10
scripts
4_World
Entities
Building
Wrecks
Wreck_SantasSleigh.c
Generated by
1.10.0