8 override int GetActionCategory()
15 if (!super.ActionCondition(player, target, item))
19 if (!target.GetObject())
24 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
28 mag = Magazine.Cast(arrowManager.GetFirstArrow());
31 mag = Magazine.Cast(target.GetObject());
34 return mag && player.GetWeaponManager().CanLoadBullet(weapon, mag) && hcw && hcw.GetRunningAction() !=
WeaponActions.CHAMBERING;
39 super.Start(action_data);
43 if (entity && entity.IsManagingArrows() && entity.IsDamageDestroyed())
48 mag = Magazine.Cast(arrowManager.AcquireFirstArrow(
false));
52 mag = Magazine.Cast(action_data.m_Target.GetObject());
54 action_data.m_Player.GetWeaponManager().LoadBullet(mag,
this);
60 if (!entity || (entity && entity.IsManagingArrows() && !entity.IsDamageDestroyed()))
65 return arrowManager.GetFirstArrow();
70 override bool CanBePerformedFromInventory()
75 override bool CanBePerformedFromQuickbar()
103 if (!super.ActionCondition(player, target, item))
109 return player.GetWeaponManager().CanLoadBullet(weapon, player.GetWeaponManager().GetPreparedMagazine(),
true) && hcw && hcw.GetRunningAction() !=
WeaponActions.CHAMBERING;
114 if (super.SetupAction(player, target, item, action_data, extra_data))
118 action_data.m_Target = newTarget;
129 super.Start(action_data);
131 Magazine mag = Magazine.Cast(action_data.m_Target.GetObject());
132 action_data.m_Player.GetWeaponManager().LoadBullet(mag,
this);