Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
weaponfireandchambernext.c
Go to the documentation of this file.
1
class
WeaponFireAndChamberNext
extends
WeaponStateBase
2
{
3
WeaponActions
m_action
;
4
int
m_actionType;
5
6
float
m_dtAccumulator
;
7
ref
WeaponFire
m_fire
;
8
9
void
WeaponFireAndChamberNext
(
Weapon_Base
w = NULL,
WeaponStateBase
parent = NULL,
WeaponActions
action =
WeaponActions
.NONE,
int
actionType = -1)
10
{
11
m_action
= action;
12
m_actionType
= actionType;
13
14
// setup nested state machine
15
m_fire
=
new
WeaponFireAndChamber(
m_weapon
,
this
,
m_action
,
m_actionType
);
16
17
// events
18
WeaponEventBase
_fin_ =
new
WeaponEventHumanCommandActionFinished;
19
WeaponEventAnimBulletEject __be_ =
new
WeaponEventAnimBulletEject;
20
WeaponEventReloadTimeout __to_ =
new
WeaponEventReloadTimeout;
21
22
m_fsm
=
new
WeaponFSM
(
this
);
// @NOTE: set owner of the submachine fsm
23
24
// transitions
25
m_fsm
.AddTransition(
new
WeaponTransition
(
m_fire
, _fin_, NULL));
26
m_fsm
.AddTransition(
new
WeaponTransition
(
m_fire
, __to_, NULL));
27
28
m_fsm
.SetInitialState(
m_fire
);
29
}
30
31
override
void
OnEntry
(
WeaponEventBase
e)
32
{
33
super.OnEntry(e);
34
if
(e)
35
m_dtAccumulator
= 0;
36
}
37
38
override
void
OnUpdate
(
float
dt)
39
{
40
m_dtAccumulator
+= dt;
41
DayZPlayerImplement
p;
42
Class
.
CastTo
(p,
m_weapon
.GetHierarchyParent());
43
if
( p )
44
{
45
HumanInputController
hic = p.GetInputController();
46
47
int
muzzleIndex =
m_weapon
.GetCurrentMuzzle();
48
float
reloadTime =
m_weapon
.GetReloadTime(muzzleIndex);
49
50
if
(
m_dtAccumulator
>= reloadTime && ( hic.
IsAttackButton
() || (
m_weapon
.GetBurstCount() <
m_weapon
.GetCurrentModeBurstSize(muzzleIndex))))
51
{
52
if
(
m_weapon
.CanProcessWeaponEvents())
53
{
54
m_weapon
.ProcessWeaponEvent(
new
WeaponEventReloadTimeout(p));
55
}
56
}
57
}
58
}
59
60
override
void
OnExit
(
WeaponEventBase
e)
61
{
62
//m_weapon.ResetBurstCount();
63
m_dtAccumulator
= 0;
64
super.OnExit(e);
65
}
66
67
override
void
OnAbort
(
WeaponEventBase
e)
68
{
69
m_weapon
.SetCoolDown(
GetCoolDown
());
70
m_weapon
.ResetBurstCount();
71
super.OnAbort(e);
72
}
73
74
override
float
GetCoolDown
()
75
{
76
int
muzzleIndex =
m_weapon
.GetCurrentMuzzle();
77
float
reloadTime =
m_weapon
.GetReloadTime(muzzleIndex);
78
return
reloadTime -
m_dtAccumulator
;
79
}
80
};
81
82
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
DayZPlayerImplement
Definition
manbase.c:2
HumanInputController
Definition
human.c:18
HumanInputController::IsAttackButton
proto native bool IsAttackButton()
returns true if 'UAFire' button is pressed (== true for multiple ticks). Synced.
Weapon_Base
shorthand
Definition
boltactionrifle_base.c:6
WeaponEventBase
signalize mechanism manipulation
Definition
events.c:35
WeaponFSM
weapon finite state machine
WeaponFire
Definition
weaponfire.c:113
WeaponStateBase
represent weapon state base
Definition
bullethide.c:2
WeaponStateBase::GetCoolDown
override float GetCoolDown()
Definition
weaponfireandchambernext.c:74
WeaponStateBase::m_weapon
Weapon_Base m_weapon
Definition
weaponstatebase.c:12
WeaponStateBase::OnEntry
override void OnEntry(WeaponEventBase e)
Definition
weaponfireandchambernext.c:31
WeaponStateBase::WeaponFireAndChamberNext
void WeaponFireAndChamberNext(Weapon_Base w=NULL, WeaponStateBase parent=NULL, WeaponActions action=WeaponActions.NONE, int actionType=-1)
Definition
weaponfireandchambernext.c:9
WeaponStateBase::m_fsm
ref WeaponFSM m_fsm
hierarchical parent state of this state (or null)
Definition
weaponstatebase.c:14
WeaponStateBase::m_dtAccumulator
float m_dtAccumulator
Definition
weaponfireandchambernext.c:6
WeaponStateBase::OnAbort
override void OnAbort(WeaponEventBase e)
Definition
weaponfireandchambernext.c:67
WeaponStateBase::WeaponStateBase
void WeaponStateBase(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
internal state id used for load/restore
Definition
weaponstatebase.c:17
WeaponStateBase::OnExit
override void OnExit(WeaponEventBase e)
Definition
weaponfireandchambernext.c:60
WeaponStateBase::m_actionType
int m_actionType
action to be played
Definition
riflechambering.c:4
WeaponStateBase::OnUpdate
override void OnUpdate(float dt)
Definition
weaponfireandchambernext.c:38
WeaponStateBase::m_action
WeaponActions m_action
Definition
riflechambering.c:3
WeaponStateBase::m_fire
ref WeaponFire m_fire
Definition
weaponfireandchambernext.c:7
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
WeaponActions
WeaponActions
actions
Definition
human.c:816
WeaponTransition
enum FSMTransition WeaponTransition
m_action
class WeaponEndAction extends WeaponStartAction m_action
Games
Dayz
scripts
4_world
entities
firearms
fsm
states
weaponfireandchambernext.c
Generated by
1.17.0