DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionMixMortarAtWater.c
См. документацию.
1// Full action class: Mix Mortar at Water Source (FillBottle-inspired)
2// - Requires closed MortarMix in hands
3// - Valid when aiming at a water source (well/pump) or water surface (fresh/still/sea)
4// - Spawns MortarMix_Opened when finished
5
7{
8 override void CreateActionComponent()
9 {
10 m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.MORTAR_MIX);
11 }
12
13 override void EndActionComponent()
14 {
17 SetCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
18 else
19 SetCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
20 }
21};
22
24{
25 private const float WATER_DEPTH = 0.5;
26
27 // Which environmental liquids are allowed (fresh/still + salt)
28 protected int m_AllowedLiquidMask;
29
31 {
33 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MIX_MORTAR;
34 m_FullBody = true;
35 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
36 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
37 m_Text = "#STR_CraftMortarMix0";
38
39 // Allow ponds/rivers/wells and sea
41 }
42
43 // -------------------------------------------------------------------------
44 // Conditions
45 // -------------------------------------------------------------------------
46
52
53 override bool ActionConditionContinue(ActionData action_data)
54 {
55 return true;
56 }
57
59 {
60 return true;
61 }
62
63 override bool UseAlternativeInterrupt(ActionData action_data)
64 {
65 return HasAlternativeInterrupt() && (action_data.m_ActionComponent.GetProgress() >= 1);
66 }
67
68 // -------------------------------------------------------------------------
69 // Result
70 // -------------------------------------------------------------------------
71
72 override void OnFinishProgressServer(ActionData action_data)
73 {
74 ItemBase mortarMixClosed = action_data.m_MainItem;
75 if (!mortarMixClosed)
76 return;
77
78 string resultType = "MortarMix_Opened";
79
80 // Try inventory first; fallback to ground at player pos
81 // This is the result of the crafting (an open Mortar Mix)
82 ItemBase mortarMixOpen = ItemBase.Cast(action_data.m_Player.GetInventory().CreateInInventory(resultType));
83
84 if (!mortarMixOpen)
85 {
86 mortarMixOpen = ItemBase.Cast(GetGame().CreateObject(resultType, action_data.m_Player.GetPosition()));
87 if (mortarMixOpen)
88 mortarMixOpen.PlaceOnSurface();
89 }
90
91 if (mortarMixOpen)
92 {
93 mortarMixOpen.SetHealth("", "", mortarMixClosed.GetHealth());
94 mortarMixClosed.Delete();
95 }
96 }
97}
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
int m_StanceMask
Определения ActionBase.c:61
void SetCommand(int command_uid)
Определения AnimatedActionBase.c:56
ActionData m_ActionData
Определения AnimatedActionBase.c:3
bool UseAlternativeInterrupt(ActionData action_data)
Определения ActionContinuousBase.c:152
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
PlayerBase m_Player
Определения ActionBase.c:40
ref CABase m_ActionComponent
Определения ActionBase.c:37
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
override void OnFinishProgressServer(ActionData action_data)
Определения ActionMixMortarAtWater.c:72
const float WATER_DEPTH
Определения ActionMixMortarAtWater.c:25
override bool ActionConditionContinue(ActionData action_data)
Определения ActionMixMortarAtWater.c:53
override void CreateConditionComponents()
Определения ActionMixMortarAtWater.c:47
override bool UseAlternativeInterrupt(ActionData action_data)
Определения ActionMixMortarAtWater.c:63
void ActionMixMortarAtWater()
Определения ActionMixMortarAtWater.c:30
override bool HasAlternativeInterrupt()
Определения ActionMixMortarAtWater.c:58
override void EndActionComponent()
Определения ActionMixMortarAtWater.c:13
override void CreateActionComponent()
Определения ActionMixMortarAtWater.c:8
int m_CommandUID
Определения AnimatedActionBase.c:147
float GetProgress()
Определения CABase.c:62
Определения CCINonRuined.c:2
Определения CCTLiquid.c:2
const float DEFAULT
Определения ActionConstants.c:114
const float MORTAR_MIX
Определения ActionConstants.c:106
Определения ActionConstants.c:28
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
DayZGame GetGame()
Определения gameplay.c:636
const int LIQUID_GROUP_DRINKWATER
Определения 3_Game/DayZ/constants.c:593
const int LIQUID_SALTWATER
Определения 3_Game/DayZ/constants.c:587