Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actionconsume.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousQuantityEdible(UAQuantityConsumed.DEFAULT, UATimeSpent.DEFAULT);
6 }
7};
8
10{
11 void ActionConsume()
12 {
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_EAT;
15 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_EAT;
16
17 m_Text = "#eat";
18 }
19
20 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
21 {
22 if (!super.ActionCondition(player, target, item))
23 return false;
24
25 ConsumeConditionData dta = new ConsumeConditionData(player,item);
26 return player.CanEatAndDrink() && player.CanConsumeFood(dta) && item.CanBeConsumed(dta);
27 }
28
29 override bool HasProneException()
30 {
31 return true;
32 }
33
34 override bool HasTarget()
35 {
36 return false;
37 }
38
39 override void CreateConditionComponents()
40 {
43 }
44
45 override void OnEndServer(ActionData action_data)
46 {
47 super.OnEndServer(action_data);
48
49 ItemBase item = action_data.m_MainItem;
50
51 if (item && item.GetQuantity() <= 0.01)
52 {
53 item.SetQuantity(0);
54 }
55 else if (item && GetProgress(action_data) > 0)
56 {
57 // we don't want to inject an agent into an empty container
58 PlayerBase player = action_data.m_Player;
59 PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(GetPlugin(PluginTransmissionAgents));
60 plugin.TransmitAgents(player, item, AGT_UACTION_TO_ITEM);
61 }
62 }
63};
ActionData m_ActionData
string m_Text
Definition actionbase.c:58
ref CCIBase m_ConditionItem
Definition actionbase.c:64
ref CCTBase m_ConditionTarget
Definition actionbase.c:65
override float GetProgress(ActionData action_data)
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
const int AGT_UACTION_TO_ITEM
Definition constants.c:505
PluginBase GetPlugin(typename plugin_type)