Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actiondrinkwellcontinuous.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.DRINK_WELL);
6 }
7}
8
10{
12 {
13 m_CallbackClass = ActionDrinkWellContinuousCB;
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DRINKWELL;
15 m_FullBody = true;
16 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
17
18 m_Text = "#drink";
19 }
20
21 override bool IsDrink()
22 {
23 return true;
24 }
25
26 override typename GetInputType()
27 {
29 }
30
31 override bool CanBeUsedInFreelook()
32 {
33 return false;
34 }
35
37 {
38 m_ConditionItem = new CCINone();
39 m_ConditionTarget = new CCTCursor(UAMaxDistances.DEFAULT);
40 }
41
42 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
43 {
44 if (item && item.IsHeavyBehaviour())
45 return false;
46
47 if (!player.CanEatAndDrink())
48 return false;
49
50 return target.GetObject() && (target.GetObject().GetWaterSourceObjectType() == EWaterSourceObjectType.WELL || target.GetObject().IsWell());
51 }
52
53 override void OnStart(ActionData action_data)
54 {
55 super.OnStart(action_data);
56
57 action_data.m_Player.TryHideItemInHands(true);
58 }
59
60 override void OnEnd(ActionData action_data)
61 {
62 action_data.m_Player.TryHideItemInHands(false);
63 }
64
65 override void OnFinishProgressServer(ActionData action_data)
66 {
67 Param1<float> nacdata = Param1<float>.Cast(action_data.m_ActionComponent.GetACData());
68 if (nacdata)
69 {
70 PlayerConsumeData consumeData = new PlayerConsumeData();
71 consumeData.m_Type = EConsumeType.ENVIRO_WELL;
72 consumeData.m_Amount = UAQuantityConsumed.DRINK;
73 consumeData.m_Source = null;
74 consumeData.m_Agents = action_data.m_Player.GetBloodyHandsPenaltyAgents();
75 consumeData.m_LiquidType = LIQUID_CLEANWATER;
76
77 action_data.m_Player.Consume(consumeData);
78 }
79 }
80
81 override bool IsLockTargetOnUse()
82 {
83 return false;
84 }
85}
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
ActionDrinkWellContinuousCB ActionContinuousBaseCB ActionDrinkWellContinuous()
override GetInputType()
#define LIQUID_CLEANWATER
ActionData m_ActionData
bool IsDrink()
Definition actionbase.c:288
bool IsLockTargetOnUse()
Definition actionbase.c:99
bool CanBeUsedInFreelook()
Definition actionbase.c:374
void OnStart(ActionData action_data)
void CreateConditionComponents()
Definition actionbase.c:230
void OnFinishProgressServer(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
EConsumeType
Definition econsumetype.c:2
EWaterSourceObjectType
void OnEnd()
Definition sound.c:226