86 super.InitActionComponent();
94 bool animateRod =
false;
127 super.OnStateChange(pOldState,pCurrentState);
168 m_Text =
"#start_fishing";
202 return hook && !hook.IsRuined() && !hook.IsPendingDeletion();
207 FishingActionData actionData =
new FishingActionData();
213 if (super.SetupAction(player, target, item, action_data, extra_data))
215 FishingActionData data;
233 data.m_ContextData.GenerateResult();
236 data.m_ContextData.SetResultChanceOverride(data.m_Player.IsQuickFishing(),1.0);
242 super.WriteToContext(ctx, action_data);
243 FishingActionData data
246 ctx.
Write(data.m_IsSurfaceSea);
252 if (!action_recive_data)
257 super.ReadFromContext(ctx, action_recive_data);
260 if (
Class.
CastTo(receiveDataFishing,action_recive_data))
273 super.HandleReciveData(action_recive_data, action_data);
276 FishingActionData fishingData = FishingActionData.Cast(action_data);
283 super.CreateAndSetupActionCallback(action_data);
285 FishingActionData data;
288 data.RollNextResultChance();
294 super.OnAnimationEvent(action_data);
295 FishingActionData actionDataFishing = FishingActionData.Cast(action_data);
304 actionDataFishing.AnimateRod(
false,
false);
311 super.OnUpdate(action_data);
316 action_data.
m_Player.AlignDirectionWS(dir);
323 int particleId = actionDataFishing.m_ContextData.GetResultParticleId();
324 if (actionDataFishing.m_SplashUniqueID < 0)
341 if (
g_Game.SurfaceIsSea(cursorPosition[0], cursorPosition[2]))
353 super.OnFinishProgress(action_data);
355 FishingActionData data;
358 data.RollNextResultChance();
367 switch (callback.GetState())
372 FishingActionData data;
376 if (data.m_FishingResult != -1)
382 super.OnEndInput(action_data);
391 super.OnEnd(action_data);
393 FishingActionData fad;
395 fad.AnimateRod(
false,
true);
401 FishingActionData fad;
406 if (fad.m_IsSignalActive)
408 fad.m_ContextData.OnBeforeSpawnSignalHit();
410 if (!
g_Game.IsMultiplayer() ||
g_Game.IsDedicatedServer())
413 fad.m_ContextData.OnAfterSpawnSignalHit();
418 return hookCheck != null && !hookCheck.IsPendingDeletion();
422 fad.m_ContextData.OnSignalMiss();
436 action_data.m_IsSignalActive =
true;
438 if (
Class.
CastTo(fishingCB,action_data.m_Callback))
444 action_data.m_IsSignalActive =
false;
446 if (
Class.
CastTo(fishingCB,action_data.m_Callback))
449 action_data.m_ContextData.OnSignalPass();
454 vector spawnPos =
vector.
Direction(action_data.m_Player.GetPosition(),action_data.m_Target.GetCursorHitPos());
455 spawnPos = MiscGameplayFunctions.GetRandomizedPositionVerified(action_data.m_Player.GetPosition(),action_data.m_Player.GetPosition() + spawnPos * 0.1,0.15,action_data.m_Player);
458 return action_data.m_ContextData.SpawnAndSetupCatch(idx,spawnPos);
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
const float FISHING_GARBAGE_CHANCE
FishingActionReceiveData m_IsSurfaceSea
float m_RodQualityModifier
const float FISHING_HOOK_LOSS
void RollNextResultChance()
void AnimateRod(float phase, bool instant=false)
const float FISHING_BAIT_LOSS
const float FISHING_SUCCESS
const float FISHING_DAMAGE
void RandomizeSignalValues()
void InitBait(ItemBase item)
ref CatchingContextFishingRodAction m_ContextData
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
class BaitData m_MainItem
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
void SetCommand(int command_uid)
void ActionContinuousBase()
override void EndActionComponent()
ref ActionTarget m_Target
int m_DelayedAnimationEventID
int EvaluateFishingResult(ActionData action_data)
Player input reaction evaluation.
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override void OnEndInput(ActionData action_data)
EntityAI TrySpawnCatch(FishingActionData action_data)
void OnSignalEnd(FishingActionData action_data)
void CreateAndSetupActionCallback(ActionData action_data)
override void CreateConditionComponents()
override void OnUpdate(ActionData action_data)
override bool CanBeUsedInFreelook()
override void OnAnimationEvent(ActionData action_data)
const string ALLOWED_WATER_SURFACES
override void OnFinishProgress(ActionData action_data)
void ComposeLocalContextData(FishingActionData data)
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEnd(ActionData action_data)
override bool HasTarget()
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
void PlaySplashEffectSynced(FishingActionData actionDataFishing)
override bool HasAlternativeInterrupt()
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=null)
void OnSignalStart(FishingActionData action_data)
bool CheckForSea(ActionData action_data)
override ActionData CreateActionData()
override void EndActionComponent()
ref array< string > m_JunkTypes
override void OnStateChange(int pOldState, int pCurrentState)
void HandleFishingResultSuccess()
void HandleFishingResultFailure()
override void InitActionComponent()
override void CreateActionComponent()
void DestroySplashEffectSynced()
Destroys the effecter, but lets the rest of the particle play out.
FishingActionData m_ActionDataFishing
int GetLiquidSourceType()
Super root of all classes in Enforce script.
void AnimateFishingRodEx(float phase, bool instant=false)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
static void DestroyEffecterParticleServer(int effecterID)
static int CreateParticleServer(vector pos, EffecterParameters parameters)
returns unique effecter ID
static void ReinitParticleServer(int effecterID, EffecterParameters parameters)
allows re-initializing existing effecter with new parameters (extept m_EffecterType,...
static void ReactivateParticleServer(int effecterID)
Manager class for managing Effect (EffectParticle, EffectSound)
proto bool Write(void value_out)
proto bool Read(void value_in)
const int EVENT_SPLASH_SIGNAL
const int EVENT_ANIMATE_ROD_CLOSE
const float CYCLE_LENGTH_BASE
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto float Normalize()
Normalizes vector. Returns length.
static vector Direction(vector p1, vector p2)
Returns direction vector from point p1 to point p2.
DayZPlayerConstants
defined in C++
Serializer ParamsReadContext
Serializer ParamsWriteContext
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int LIQUID_FRESHWATER
const int LIQUID_SALTWATER
static const int STATE_NONE
undef state - not running anymore
static const int STATE_LOOP_IN
looped state
proto native void EnableStateChangeCallback()
enables state change callback OnStateChange
static const int STATE_LOOP_LOOP
proto native int GetState()
returns one of STATE_...
static const int STATE_LOOP_LOOP2