28 if (!super.ActionCondition( player, target, item ))
32 Magazine mag = Magazine.Cast(target.GetObject());
33 return mag && player.GetWeaponManager().CanLoadMultipleBullet(wpn,mag);
38 super.Start( action_data );
39 Magazine mag = Magazine.Cast(action_data.m_Target.GetObject());
41 action_data.m_Player.GetWeaponManager().LoadMultiBullet(mag,
this);
57 action_data.m_Player.GetWeaponManager().LoadMultiBulletStop();
127 if (!super.ActionCondition( player, target, item ))
131 return player.GetWeaponManager().CanLoadMultipleBullet(weapon ,player.GetWeaponManager().GetPreparedMagazine());
136 super.Start( action_data );
138 WeaponManager weaponManager = action_data.m_Player.GetWeaponManager();
141 Weapon weapon =
Weapon.Cast(action_data.m_Player.GetItemInHands());
143 int internalCount = weapon.GetInternalMagazineCartridgeCount(0);
144 int maxCount = weapon.GetInternalMagazineMaxCartridgeCount(0) + 1;
145 int total = mag.GetAmmoCount() + internalCount;
147 if (total < maxCount)
154 while ((additionalMag != null) && (total < maxCount))
156 total += additionalMag.GetAmmoCount();
157 mag.CombineItems(additionalMag);
162 action_data.m_Player.GetWeaponManager().LoadMultiBullet(mag,
this);
167 action_data.m_Player.GetWeaponManager().LoadMultiBulletStop();
193 if (!super.CanContinue( action_data ))
196 return ActionCondition(action_data.m_Player, action_data.m_Target, action_data.m_MainItem);
201 if (!super.ActionCondition( player, target, item ))
205 Magazine mag = Magazine.Cast(target.GetObject());
206 return mag && player.GetWeaponManager().CanLoadBullet(wpn,mag);
211 super.OnStart(action_data);
213 Magazine mag = Magazine.Cast(action_data.m_Target.GetObject());
214 action_data.m_Player.GetWeaponManager().LoadMultiBullet(mag,
this);
219 action_data.m_Player.GetWeaponManager().LoadMultiBulletStop();
class ActionTargets ActionTarget
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool CanBeSetFromInventory()
void FirearmActionLoadMultiBullet()
override bool HasProgress()
override bool CanBePerformedFromQuickbar()
override int GetActionCategory()
override void OnEndInput(ActionData action_data)
override void Start(ActionData action_data)
override bool CanBePerformedFromInventory()
override bool HasProgress()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEndInput(ActionData action_data)
void FirearmActionLoadMultiBulletQuick()
override void Start(ActionData action_data)
override void CreateConditionComponents()
override bool HasTarget()
override bool CanContinue(ActionData action_data)
void FirearmActionLoadMultiBulletRadial()
override bool HasProgress()
override void CreateConditionComponents()
override void OnEnd(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnStart(ActionData action_data)
script counterpart to engine's class Weapon
Magazine GetNextPreparedMagazine(out int startIdx)