Advertisement
Guest User

AddExclusionToAbilities

a guest
Feb 24th, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static event OnPostTemplatesCreated()
  2. {
  3.     AddSurpriseExclusion();
  4. }
  5.  
  6. static function AddSurpriseExclusion()
  7. {
  8.    local X2AbilityTemplateManager              AllAbilities;
  9.    local X2AbilityTemplate                     CurrentAbility;
  10.  
  11.    local array<name> AllAbilityTemplateNames;
  12.    local name CurrentAbilityName;
  13.    local X2Condition_UnitEffects UnitEffects;
  14.  
  15.    local X2Condition       CurrentCondition;
  16.     local X2Condition_UnitEffects   UnitEffectsCondition;
  17.     local EffectReason      ExcludedEffect;
  18.     //local bool          ThisAbilityCannotBeUsedWhileDisoriented;
  19.  
  20.    AllAbilities = class'X2AbilityTemplateManager'.static.GetAbilityTemplateManager();
  21.     AllAbilities.GetTemplateNames(AllAbilityTemplateNames);
  22.  
  23.     //ThisAbilityCannotBeUsedWhileDisoriented = false;
  24.    foreach AllAbilityTemplateNames(CurrentAbilityName)
  25.    {
  26.       // Find the actual associated template to the name.
  27.       CurrentAbility = AllAbilities.FindAbilityTemplate(CurrentAbilityName);
  28.  
  29.       UnitEffects = new class'X2Condition_UnitEffects';
  30.  
  31.         foreach CurrentAbility.AbilityShooterConditions(CurrentCondition)
  32.         {
  33.              UnitEffectsCondition = X2Condition_UnitEffects(CurrentCondition);
  34.              if (UnitEffectsCondition != none)
  35.               {
  36.                  foreach UnitEffectsCondition.ExcludeEffects(ExcludedEffect)
  37.                      {
  38.                           if (ExcludedEffect.EffectName == class'X2AbilityTemplateManager'.default.DisorientedName)
  39.                               {
  40.                                     //ThisAbilityCannotBeUsedWhileDisoriented = true;
  41.                                     UnitEffects.AddExcludeEffect('SurpriseEffect', 'AA_UnitIsSurprised');
  42.                                     CurrentAbility.AbilityShooterConditions.AddItem(UnitEffects);
  43.                                 }
  44.                      }
  45.              }
  46.         }
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement