Advertisement
Iridar51

Untitled

Jul 15th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. static function X2AbilityTemplate Create_DP_GunKata_OverwatchShot()
  2. {
  3. local X2AbilityTemplate Template;
  4. local X2AbilityCost_Ammo AmmoCost;
  5. local X2AbilityToHitCalc_StandardAim StandardAim;
  6. local X2Condition_UnitProperty ShooterCondition;
  7. local X2AbilityTarget_Single SingleTarget;
  8. local X2AbilityTrigger_Event Trigger;
  9. local X2Effect_ApplyWeaponDamage WeaponDamageEffect;
  10. local X2Condition_Visibility TargetVisibilityCondition;
  11. local array<name> SkipExclusions;
  12. local X2AbilityCost_GunKataCharge GunKataChargeCost;
  13.  
  14. `CREATE_X2ABILITY_TEMPLATE(Template, 'DP_GunKata_OverwatchShot');
  15.  
  16. Template.DefaultSourceItemSlot = eInvSlot_PrimaryWeapon;
  17.  
  18. Template.bDontDisplayInAbilitySummary = true;
  19. AmmoCost = new class'X2AbilityCost_Ammo';
  20. AmmoCost.iAmmo = 1;
  21. Template.AbilityCosts.AddItem(AmmoCost);
  22.  
  23. GunKataChargeCost = new class'X2AbilityCost_GunKataCharge';
  24. GunKataChargeCost.RequiredGunKataCharge = 1;
  25. Template.AbilityCosts.AddItem(GunKataChargeCost);
  26.  
  27. StandardAim = new class'X2AbilityToHitCalc_StandardAim';
  28. StandardAim.bReactionFire = true;
  29. Template.AbilityToHitCalc = StandardAim;
  30. Template.AbilityToHitOwnerOnMissCalc = StandardAim;
  31.  
  32. Template.AbilityTargetConditions.AddItem(default.LivingHostileUnitDisallowMindControlProperty);
  33.  
  34. TargetVisibilityCondition = new class'X2Condition_Visibility';
  35. TargetVisibilityCondition.bRequireGameplayVisible = true;
  36. TargetVisibilityCondition.bRequireBasicVisibility = true;
  37. TargetVisibilityCondition.bDisablePeeksOnMovement = true; //Don't use peek tiles for over watch shots
  38. Template.AbilityTargetConditions.AddItem(TargetVisibilityCondition);
  39.  
  40. //Template.AbilityTargetConditions.AddItem(OverwatchTargetEffectsCondition()); //add exclusuions for shadwostep and other typical stuff
  41.  
  42. Template.AbilityShooterConditions.AddItem(default.LivingShooterProperty);
  43. ShooterCondition = new class'X2Condition_UnitProperty';
  44. ShooterCondition.ExcludeConcealed = true;
  45. Template.AbilityShooterConditions.AddItem(ShooterCondition);
  46.  
  47. SkipExclusions.AddItem(class'X2AbilityTemplateManager'.default.DisorientedName);
  48. Template.AddShooterEffectExclusions(SkipExclusions);
  49.  
  50. SingleTarget = new class'X2AbilityTarget_Single';
  51. SingleTarget.OnlyIncludeTargetsInsideWeaponRange = true;
  52. Template.AbilityTargetStyle = SingleTarget;
  53.  
  54. //Trigger on movement - interrupt the move
  55. Trigger = new class'X2AbilityTrigger_Event';
  56. Trigger.EventObserverClass = class'X2TacticalGameRuleset_MovementObserver';
  57. Trigger.MethodName = 'InterruptGameState';
  58. Template.AbilityTriggers.AddItem(Trigger);
  59.  
  60. Template.AbilitySourceName = 'eAbilitySource_Standard';
  61. Template.eAbilityIconBehaviorHUD = EAbilityIconBehavior_NeverShow;
  62. Template.IconImage = "img:///UILibrary_PerkIcons.UIPerk_overwatch";
  63. Template.ShotHUDPriority = class'UIUtilities_Tactical'.const.OVERWATCH_PRIORITY;
  64. Template.bDisplayInUITooltip = false;
  65. Template.bDisplayInUITacticalText = false;
  66. Template.DisplayTargetHitChance = false;
  67.  
  68. Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;
  69. //Template.BuildVisualizationFn = OverwatchShot_BuildVisualization;
  70. Template.BuildVisualizationFn = TypicalAbility_BuildVisualization;
  71.  
  72. WeaponDamageEffect = new class'X2Effect_ApplyWeaponDamage';
  73. Template.AddTargetEffect(WeaponDamageEffect);
  74. //Template.bAllowBonusWeaponEffects = true;
  75. //Template.bAllowFreeFireWeaponUpgrade = false;
  76. //Template.bAllowAmmoEffects = true;
  77.  
  78. Template.bAllowBonusWeaponEffects = false;
  79. Template.bAllowFreeFireWeaponUpgrade = false;
  80. Template.bAllowAmmoEffects = false;
  81.  
  82. Template.AddTargetEffect(default.WeaponUpgradeMissDamage); //this adds normal weapon damage too? no, it doesn't.
  83.  
  84. return Template;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement