DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionDisinfectPlant.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
6 }
7};
8
10{
11 PlantBase m_Plant;
12
14 {
17
18 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_SPRAYPLANT;
19 //m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
20 m_FullBody = true;
21
22 m_Text = "#apply";
23 }
24
26 {
29 }
30
31 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
32 {
33 GardenBase garden_base;
34 if ( Class.CastTo(garden_base, target.GetObject()))
35 {
36 Slot slot;
37
38 array<string> selections = new array<string>;
39 garden_base.GetActionComponentNameList(target.GetComponentIndex(), selections);
40 string selection;
41
42 for (int s = 0; s < selections.Count(); s++)
43 {
44 selection = selections[s];
45 slot = garden_base.GetSlotBySelection( selection );
46 if (slot)
47 break;
48 }
49
50 if ( slot && slot.GetPlant() )
51 {
52 m_Plant = PlantBase.Cast(slot.GetPlant());
53 if ( m_Plant.IsGrowing() && m_Plant.NeedsSpraying() )
54 {
55 if ( m_Plant.GetPlantStateIndex() < 1 )
56 return false;
57
58 if ( item.GetQuantity() > 0 )
59 {
60 return true;
61 }
62 }
63 }
64 }
65 return false;
66 /*PlantBase plant;
67 if ( Class.CastTo(plant, target.GetObject() ) && !item.IsDamageDestroyed() )
68 {
69 if ( plant.IsGrowing() && plant.NeedsSpraying() )
70 {
71 if ( item.GetQuantity() > 0 )
72 {
73 return true;
74 }
75 }
76 }
77
78 return false;*/
79 }
80
81 override void OnFinishProgressServer( ActionData action_data)
82 {
83 Object targetObject = action_data.m_Target.GetObject();
84 Param1<float> nacdata = Param1<float>.Cast( action_data.m_ActionComponent.GetACData() );
85 if (nacdata)
86 {
87 action_data.m_Player.GetSoftSkillsManager().AddSpecialty( m_SpecialtyWeight );
88 }
89 }
90
91 override void OnFinishProgressClient( ActionData action_data)
92 {
93 Object targetObject = action_data.m_Target.GetObject();
94 Param1<float> nacdata = Param1<float>.Cast( action_data.m_ActionComponent.GetACData() );
95 if (nacdata)
96 {
97 action_data.m_Player.GetSoftSkillsManager().AddSpecialty( m_SpecialtyWeight );
98 }
99 }
100};
protected float m_SpecialtyWeight
Definition ActionBase.c:68
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
protected string m_Text
Definition ActionBase.c:49
protected bool m_FullBody
Definition ActionBase.c:52
class ActionTargets ActionTarget
protected ActionData m_ActionData
PlayerBase m_Player
Definition ActionBase.c:33
ref CABase m_ActionComponent
Definition ActionBase.c:30
ref ActionTarget m_Target
Definition ActionBase.c:32
override void CreateActionComponent()
override void OnFinishProgressServer(ActionData action_data)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnFinishProgressClient(ActionData action_data)
Param GetACData()
Definition CABase.c:48
Super root of all classes in Enforce script.
Definition EnScript.c:11
const float DEFAULT
const float GARDEN_DISINFECT_PLANT
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.