DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionDigWorms.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 float time_spent;
6 time_spent = UATimeSpent.DIG_WORMS;
7 if (m_ActionData.m_MainItem.KindOf("Knife"))
8 time_spent = time_spent * 1.2;
9
11 }
12};
13
15{
17 {
19 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIGMANIPULATE;
20 m_FullBody = true;
21 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
23 m_Text = "#dig_up_worms";
24 }
25
27 {
30 }
31
32 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
33 {
34 if (player.IsPlacingLocal())
35 return false;
36
37 // Check if player is standing on terrain
38 vector plr_pos = player.GetPosition();
39 float height = GetGame().SurfaceY(plr_pos[0], plr_pos[2]);
40 height = plr_pos[1] - height;
41
42 if (height > 0.4)
43 return false; // Player is not standing on ground
44
45 if (!player.IsPlacingLocal())
46 {
47 return IsTargetFertile(target);
48 }
49
50 return false;
51 }
52
53 override bool SetupAction( PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL )
54 {
55 if (super.SetupAction(player, target, item, action_data, extra_data))
56 {
57 if (item)
58 {
60 }
61
62 return true;
63 }
64
65 return false;
66 }
67
68 override bool HasTarget()
69 {
70 return true;
71 }
72
73 override void OnFinishProgressServer(ActionData action_data)
74 {
75 ItemBase worms;
76 Class.CastTo(worms, GetGame().CreateObjectEx("Worm", action_data.m_Player.GetPosition(), ECE_PLACE_ON_SURFACE));
77 worms.SetQuantity(10,false);
78 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, 4);
79 action_data.m_Player.GetSoftSkillsManager().AddSpecialty(m_SpecialtyWeight);
80 }
81
83 {
84 if (item.KindOf("Knife"))
85 {
86 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_1HD;
87 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
88 }
89 else
90 {
91 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIGMANIPULATE;
92 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
93 }
94 }
95
97 {
98 if (target)
99 {
100 string surface_type;
101 vector position;
102 position = target.GetCursorHitPos();
103
104 GetGame().SurfaceGetType(position[0], position[2], surface_type);
105
106 if (GetGame().IsSurfaceFertile(surface_type))
107 {
108 return true;
109 }
110 }
111
112 return false;
113 }
114};
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
protected int m_StanceMask
Definition ActionBase.c:53
class ActionTargets ActionTarget
const int ECE_PLACE_ON_SURFACE
protected ActionData m_ActionData
ItemBase m_MainItem
Definition ActionBase.c:28
PlayerBase m_Player
Definition ActionBase.c:33
ref CABase m_ActionComponent
Definition ActionBase.c:30
override void CreateActionComponent()
override void OnFinishProgressServer(ActionData action_data)
bool IsTargetFertile(ActionTarget target)
void SetDiggingAnimation(ItemBase item)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool HasTarget()
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
proto void SurfaceGetType(float x, float z, out string type)
proto native float SurfaceY(float x, float z)
Super root of all classes in Enforce script.
Definition EnScript.c:11
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
const float DEFAULT
const float DIG_WORMS
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.