Advertisement
Guest User

Check loadout

a guest
Apr 17th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. static function bool HasPrimaryMeleeOrPistolEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  3. {
  4.     return HasPrimaryMeleeEquipped(UnitState, CheckGameState) || HasPrimaryPistolEquipped(UnitState, CheckGameState);
  5. }
  6.  
  7. static function bool HasMeleeAndPistolEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  8. {
  9.     return (HasPrimaryMeleeEquipped(UnitState, CheckGameState) && HasSecondaryPistolEquipped(UnitState, CheckGameState)) ||
  10.            (HasPrimaryPistolEquipped(UnitState, CheckGameState) && HasSecondaryMeleeEquipped(UnitState, CheckGameState));
  11. }
  12.  
  13. static function bool HasPrimaryMeleeEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  14. {
  15.     return IsPrimaryMeleeWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_PrimaryWeapon, CheckGameState).GetMyTemplate())) &&
  16.         !HasDualPistolEquipped(UnitState, CheckGameState) &&
  17.         !HasDualMeleeEquipped(UnitState, CheckGameState) &&
  18.         !HasShieldEquipped(UnitState, CheckGameState);
  19. }
  20.  
  21. static function bool HasPrimaryPistolEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  22. {
  23.     return IsPrimaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_PrimaryWeapon, CheckGameState).GetMyTemplate())) &&
  24.         !HasDualPistolEquipped(UnitState, CheckGameState) &&
  25.         !HasDualMeleeEquipped(UnitState, CheckGameState) &&
  26.         !HasShieldEquipped(UnitState, CheckGameState);
  27. }
  28.  
  29. static function bool HasSecondaryMeleeEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  30. {
  31.     return IsSecondaryMeleeWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate()));
  32. }
  33.  
  34. static function bool HasSecondaryPistolEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  35. {
  36.     return IsSecondaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate()));
  37. }
  38.  
  39. static function bool HasShieldEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  40. {
  41.     local X2WeaponTemplate SecondaryWeaponTemplate;
  42.     SecondaryWeaponTemplate = X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate());
  43.     return SecondaryWeaponTemplate.WeaponCat == 'shield';
  44. }
  45.  
  46. static function bool HasDualPistolEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  47. {
  48.     return IsPrimaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_PrimaryWeapon, CheckGameState).GetMyTemplate())) &&
  49.         IsSecondaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate()));
  50. }
  51.  
  52. static function bool CheckDualPistolGetsEquipped(XComGameState_Unit UnitState, XComGameState_Item ItemState, optional XComGameState CheckGameState)
  53. {
  54.     return (IsPrimaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_PrimaryWeapon, CheckGameState).GetMyTemplate())) &&
  55.         IsSecondaryPistolWeaponTemplate(X2WeaponTemplate(ItemState.GetMyTemplate())))
  56.         ||
  57.         (IsPrimaryPistolWeaponTemplate(X2WeaponTemplate(ItemState.GetMyTemplate())) &&
  58.         IsSecondaryPistolWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate())));
  59. }
  60.  
  61. static function bool HasDualMeleeEquipped(XComGameState_Unit UnitState, optional XComGameState CheckGameState)
  62. {
  63.     return IsPrimaryMeleeWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_PrimaryWeapon, CheckGameState).GetMyTemplate())) &&
  64.         IsSecondaryMeleeWeaponTemplate(X2WeaponTemplate(UnitState.GetItemInSlot(eInvSlot_SecondaryWeapon, CheckGameState).GetMyTemplate()));
  65. }
  66.  
  67. static function bool IsPrimaryPistolWeaponTemplate(X2WeaponTemplate WeaponTemplate)
  68. {
  69.     return WeaponTemplate != none &&
  70.         WeaponTemplate.StowedLocation == eSlot_None &&
  71.         WeaponTemplate.InventorySlot == eInvSlot_PrimaryWeapon &&
  72.         default.PistolCategories.Find(WeaponTemplate.WeaponCat) != INDEX_NONE;
  73. }
  74.  
  75. static function bool IsSecondaryPistolWeaponTemplate(X2WeaponTemplate WeaponTemplate)
  76. {
  77.     return WeaponTemplate != none &&
  78.         WeaponTemplate.StowedLocation == eSlot_None &&
  79.         WeaponTemplate.InventorySlot == eInvSlot_SecondaryWeapon &&
  80.         default.PistolCategories.Find(WeaponTemplate.WeaponCat) != INDEX_NONE &&
  81.         InStr(WeaponTemplate.DataName, "_TMP_") == INDEX_NONE; // Filter RF Templar Weapons
  82. }
  83.  
  84. static function bool IsPrimaryMeleeWeaponTemplate(X2WeaponTemplate WeaponTemplate)
  85. {
  86.     return WeaponTemplate != none &&
  87.         WeaponTemplate.InventorySlot == eInvSlot_PrimaryWeapon &&
  88.         WeaponTemplate.iRange == 0 &&
  89.         WeaponTemplate.WeaponCat != 'wristblade' &&
  90.         WeaponTemplate.WeaponCat != 'shield' &&
  91.         WeaponTemplate.WeaponCat != 'gauntlet';
  92. }
  93.  
  94. static function bool IsSecondaryMeleeWeaponTemplate(X2WeaponTemplate WeaponTemplate)
  95. {
  96.     return WeaponTemplate != none &&
  97.         WeaponTemplate.InventorySlot == eInvSlot_SecondaryWeapon &&
  98.         WeaponTemplate.iRange == 0 &&
  99.         WeaponTemplate.WeaponCat != 'wristblade' &&
  100.         WeaponTemplate.WeaponCat != 'shield' &&
  101.         WeaponTemplate.WeaponCat != 'gauntlet';
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement