Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class X2AbilityCost_DP_Ammo extends X2AbilityCost_Ammo;
- //this part works
- simulated function name CanAfford(XComGameState_Ability kAbility, XComGameState_Unit ActivatingUnit)
- {
- local XComGameState_Item Weapon;
- Weapon = ActivatingUnit.GetItemInSlot(eInvSlot_PrimaryWeapon);
- if (Weapon != none)
- {
- if (Weapon.Ammo >= iAmmo)
- return 'AA_Success';
- }
- return 'AA_CannotAfford_AmmoCost';
- }
- //this part works in a weird way
- simulated function ApplyCost(XComGameStateContext_Ability AbilityContext, XComGameState_Ability kAbility, XComGameState_BaseObject AffectState, XComGameState_Item AffectWeapon, XComGameState NewGameState)
- {
- local XComGameState_Unit Unit;
- local XComGameState_Item Weapon, NewWeaponState;
- Unit = XComGameState_Unit(`XCOMHISTORY.GetGameStateForObjectID(kAbility.OwnerStateObject.ObjectID));
- Weapon = Unit.GetItemInSlot(eInvSlot_PrimaryWeapon);
- NewWeaponState = XComGameState_Item(NewGameState.ModifyStateObject(Weapon.Class, Weapon.ObjectID));
- if (`CHEATMGR != none && `CHEATMGR.bUnlimitedAmmo && Unit.GetTeam() == eTeam_XCom) return;
- kAbility.iAmmoConsumed = iAmmo; //not sure what this even does
- NewWeaponState.Ammo = Weapon.Ammo - iAmmo;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement