19 override bool HasProneException()
24 override void CreateConditionComponents()
30 bool CanLoadMagazine(ActionTarget target,
ItemBase item)
34 return (
Class.CastTo(trg, target.GetObject()) &&
Class.CastTo(itm, item) && itm.GetAmmoCount() < itm.GetAmmoMax() && trg.GetAmmoCount() != 0 && itm.IsCompatiableAmmo( trg ) );
37 override bool ActionConditionContinue( ActionData action_data )
39 return CanLoadMagazine(action_data.m_Target, action_data.m_MainItem);
44 return CanLoadMagazine(target, item);
47 override bool CanBePerformedFromQuickbar()
52 override void OnExecuteServer( ActionData action_data )
59 if (
Class.CastTo(trg, action_data.m_Target.GetObject()) &&
Class.CastTo(itm, action_data.m_MainItem) )
64 if ( trg.ServerAcquireCartridge(dmg, ammoType) )
66 if ( !itm.ServerStoreCartridge(dmg, ammoType) )
67 trg.ServerStoreCartridge(dmg, ammoType);
69 itm.ApplyManipulationDamage();
95 override bool HasProneException()
100 override typename GetInputType()
105 override void CreateConditionComponents()
111 override bool HasTarget()
118 Magazine mag = Magazine.Cast( item );
120 return mag && player.GetWeaponManager().GetPreparedMagazine() != null && mag.GetAmmoCount() < mag.GetAmmoMax();
123 override bool ActionConditionContinue( ActionData action_data )
125 return CanLoadMagazine(action_data.m_Player, action_data.m_MainItem);
128 override bool ActionCondition(
PlayerBase player, ActionTarget target,
ItemBase item )
130 return CanLoadMagazine(player, item);
133 override void OnExecuteServer( ActionData action_data )
138 Magazine itm = Magazine.Cast(action_data.m_MainItem);
139 Magazine trg = action_data.m_Player.GetWeaponManager().GetPreparedMagazine();
147 if ( trg.ServerAcquireCartridge(dmg, ammoType) )
149 if ( !itm.ServerStoreCartridge(dmg, ammoType) )
150 trg.ServerStoreCartridge(dmg, ammoType);
152 itm.ApplyManipulationDamage();