Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actiondialcombinationlockontarget.c
Go to the documentation of this file.
2{
3 private const float REPEAT_AFTER_SEC = 0.5;
4
5 override void CreateActionComponent()
6 {
7 m_ActionData.m_ActionComponent = new CAContinuousRepeat(REPEAT_AFTER_SEC);
8 }
9}
10
12{
14 {
16 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM;
17 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_OPENITEM;
18 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
19 m_Text = "#dial_combination_lock";
20 }
21
23 {
24 m_ConditionItem = new CCINone();
25 m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
26 }
27
28 override bool HasProneException()
29 {
30 return true;
31 }
32
33 override typename GetInputType()
34 {
36 }
37
38 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
39 {
40 ConstructionActionData constructionActionData = player.GetConstructionActionData();
41 m_Text = "#dial_combination_lock " + constructionActionData.GetDialNumberText();
42 }
43
44 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
45 {
46 if (!target.GetObject())
47 return false;
48
49 CombinationLock lock = CombinationLock.Cast(target.GetObject());
50 if (lock && lock.GetHierarchyParent() && Fence.Cast(lock.GetHierarchyParent()))
51 {
52 ConstructionActionData constructionActionData = player.GetConstructionActionData();
53 constructionActionData.SetCombinationLock(lock);
54
55 return true;
56 }
57
58 return false;
59 }
60
61 override void OnFinishProgressServer(ActionData action_data)
62 {
63 //set dialed number
64 ConstructionActionData constructionActionData = action_data.m_Player.GetConstructionActionData();
65 CombinationLock combination_lock = constructionActionData.GetCombinationLock();
66 if (combination_lock)
67 {
68 combination_lock.DialNextNumber();
69
70 //check for unlock state
71 if (!combination_lock.IsLockedOnGate())
72 {
73 if (GetGame().IsMultiplayer())
74 ClearActionJuncture(action_data);
75 else
76 ClearInventoryReservationEx(action_data);
77
78 EntityAI target_entity = EntityAI.Cast(action_data.m_Target.GetObject());
79 combination_lock.UnlockServer(action_data.m_Player, target_entity.GetHierarchyParent());
80 }
81 }
82 }
83}
int m_CommandUIDProne
Definition actionbase.c:32
int m_CommandUID
Definition actionbase.c:31
ActionDialCombinationLockOnTargetCB ActionContinuousBaseCB ActionDialCombinationLockOnTarget()
override GetInputType()
ActionData m_ActionData
void ClearActionJuncture(ActionData action_data)
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
void ClearInventoryReservationEx(ActionData action_data)
void CreateConditionComponents()
Definition actionbase.c:230
void OnFinishProgressServer(ActionData action_data)
override bool HasProneException()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void SetCombinationLock(CombinationLock combination_lock)
CombinationLock GetCombinationLock()
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()