Advertisement
Iridar51

Untitled

Jul 29th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. class X2AbilityCost_DP_Ammo extends X2AbilityCost_Ammo;
  2.  
  3. //this part works
  4. simulated function name CanAfford(XComGameState_Ability kAbility, XComGameState_Unit ActivatingUnit)
  5. {
  6. local XComGameState_Item Weapon;
  7.  
  8. Weapon = ActivatingUnit.GetItemInSlot(eInvSlot_PrimaryWeapon);
  9. if (Weapon != none)
  10. {
  11. if (Weapon.Ammo >= iAmmo)
  12. return 'AA_Success';
  13. }
  14.  
  15. return 'AA_CannotAfford_AmmoCost';
  16. }
  17.  
  18. //this part works in a weird way
  19. simulated function ApplyCost(XComGameStateContext_Ability AbilityContext, XComGameState_Ability kAbility, XComGameState_BaseObject AffectState, XComGameState_Item AffectWeapon, XComGameState NewGameState)
  20. {
  21. local XComGameState_Unit Unit;
  22. local XComGameState_Item Weapon, NewWeaponState;
  23.  
  24. Unit = XComGameState_Unit(`XCOMHISTORY.GetGameStateForObjectID(kAbility.OwnerStateObject.ObjectID));
  25. Weapon = Unit.GetItemInSlot(eInvSlot_PrimaryWeapon);
  26. NewWeaponState = XComGameState_Item(NewGameState.ModifyStateObject(Weapon.Class, Weapon.ObjectID));
  27.  
  28. if (`CHEATMGR != none && `CHEATMGR.bUnlimitedAmmo && Unit.GetTeam() == eTeam_XCom) return;
  29.  
  30. kAbility.iAmmoConsumed = iAmmo; //not sure what this even does
  31. NewWeaponState.Ammo = Weapon.Ammo - iAmmo;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement