8 override int GetActionCategory()
15 if (!super.ActionCondition(player, target, item))
18 HumanCommandWeapons hcw = player.GetCommandModifier_Weapons();
19 if (!target.GetObject())
24 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
31 mag = Magazine.Cast(target.GetObject());
34 return mag && player.GetWeaponManager().CanLoadBullet(weapon, mag) && hcw && hcw.GetRunningAction() != WeaponActions.CHAMBERING;
37 override void Start(ActionData action_data)
39 super.Start(action_data);
43 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
49 mag.SetPosition(action_data.m_Player.GetPosition());
53 mag = Magazine.Cast(action_data.m_Target.GetObject());
55 action_data.m_Player.GetWeaponManager().LoadBullet(mag,
this);
58 override Object GetDisplayInteractObject(
PlayerBase player, ActionTarget target)
61 if (!entity || (entity && entity.IsManagingArrows() && !entity.IsDamageDestroyed()))
71 override bool CanBePerformedFromInventory()
76 override bool CanBePerformedFromQuickbar()
94 m_ConditionTarget =
new CCTSelf();
104 if (!super.ActionCondition(player, target, item))
107 HumanCommandWeapons hcw = player.GetCommandModifier_Weapons();
110 return player.GetWeaponManager().CanLoadBullet(weapon, player.GetWeaponManager().GetPreparedMagazine(),
true) && hcw && hcw.GetRunningAction() != WeaponActions.CHAMBERING;
115 if (super.SetupAction(player, target, item, action_data, extra_data))
118 ActionTarget newTarget =
new ActionTarget(player.GetWeaponManager().GetPreparedMagazine(), null, -1,
vector.Zero, -1);
119 action_data.m_Target = newTarget;
128 override void Start(ActionData action_data)
130 super.Start(action_data);
132 Magazine mag = Magazine.Cast(action_data.m_Target.GetObject());
133 action_data.m_Player.GetWeaponManager().LoadBullet(mag,
this);
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
bool HasProgress()
For UI: hiding of progress bar.
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
void CreateConditionComponents()
EntityAI AcquireFirstArrow(bool keepTransform=false)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
void Start()
Plays all elements this effects consists of.
FirearmActionLoadBullet FirearmActionBase FirearmActionLoadBulletQuick()