Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static function X2AbilityTemplate Create_IRI_DetonateNuke()
  2. {
  3.     local X2AbilityTemplate                 Template;  
  4.     local X2AbilityCost_Ammo                AmmoCost;
  5.     local X2AbilityToHitCalc_StandardAim    StandardAim;
  6.     local X2AbilityMultiTarget_Radius       RadiusMultiTarget;
  7.     local X2Condition_UnitProperty          UnitPropertyCondition;
  8.     local X2AbilityTrigger_EventListener    EventTrigger;
  9.     local X2Condition_UnitEffects           EffectCondition;
  10.  
  11.     `CREATE_X2ABILITY_TEMPLATE(Template, 'IRI_DetonateTacticalNuke');
  12.    
  13.     Template.bDontDisplayInAbilitySummary = true;
  14.  
  15.     AmmoCost = new class'X2AbilityCost_Ammo';  
  16.     AmmoCost.iAmmo = 1;
  17.     Template.AbilityCosts.AddItem(AmmoCost);
  18.    
  19.     StandardAim = new class'X2AbilityToHitCalc_StandardAim';
  20.     StandardAim.bIndirectFire = true;
  21.     StandardAim.bAllowCrit = false;
  22.     Template.AbilityToHitCalc = StandardAim;
  23.    
  24.     Template.bUseThrownGrenadeEffects = true;
  25.     Template.bHideWeaponDuringFire = true;
  26.    
  27.     Template.AbilityTargetStyle = default.SelfTarget;
  28.  
  29.     Template.AbilityTriggers.AddItem(default.PlayerInputTrigger);
  30.  
  31.     EventTrigger = new class'X2AbilityTrigger_EventListener';
  32.     EventTrigger.ListenerData.Deferral = ELD_OnStateSubmitted;
  33.     EventTrigger.ListenerData.EventID = 'PlayerTurnBegun';
  34.     EventTrigger.ListenerData.Filter = eFilter_Player;
  35.     EventTrigger.ListenerData.EventFn = class'XComGameState_Ability'.static.AbilityTriggerEventListener_Self;
  36.     Template.AbilityTriggers.AddItem(EventTrigger);
  37.  
  38.     RadiusMultiTarget = new class'X2AbilityMultiTarget_Radius';
  39.     RadiusMultiTarget.bAddPrimaryTargetAsMultiTarget = true;
  40.     RadiusMultiTarget.bUseWeaponRadius = true;
  41.     Template.AbilityMultiTargetStyle = RadiusMultiTarget;
  42.  
  43.     UnitPropertyCondition = new class'X2Condition_UnitProperty';
  44.     UnitPropertyCondition.ExcludeDead = true;
  45.     UnitPropertyCondition.ExcludeFriendlyToSource = false;
  46.     UnitPropertyCondition.ExcludeHostileToSource = false;
  47.     UnitPropertyCondition.FailOnNonUnits = false; //The grenade can affect interactive objects, others
  48.     Template.AbilityMultiTargetConditions.AddItem(UnitPropertyCondition);
  49.  
  50.     Template.AbilityShooterConditions.AddItem(new class'X2Condition_RocketArmed')
  51.  
  52.     //  Can trigger only after the Effect runs out, which is applied when the rocket is armed.
  53.     EffectCondition = new class'X2Condition_UnitEffects';
  54.     EffectCondition.AddExcludeEffect('IRI_Nuke_Armed_Effect', 'AA_AbilityUnavailable');
  55.     Template.AbilityShooterConditions.AddItem(EffectCondition);
  56.  
  57.     Template.bRecordValidTiles = true;
  58.  
  59.     Template.AbilitySourceName = 'eAbilitySource_Standard';
  60.     //Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_NeverShow;
  61.     Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_AlwaysShow;
  62.     Template.IconImage = "img:///UILibrary_PerkIcons.UIPerk_fraggrenade";
  63.     Template.ShotHUDPriority = class'UIUtilities_Tactical'.const.STANDARD_GRENADE_PRIORITY;
  64.     Template.bUseAmmoAsChargesForHUD = true;
  65.     Template.bDisplayInUITooltip = false;
  66.     Template.bDisplayInUITacticalText = false;
  67.  
  68.     Template.bShowActivation = true;
  69.     Template.bSkipExitCoverWhenFiring = true;
  70.     Template.ActionFireClass = class'X2Action_Fire_IgniteFuse';
  71.     Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;
  72.     Template.BuildVisualizationFn = TypicalAbility_BuildVisualization;
  73.     Template.MergeVisualizationFn = class'X2Ability_Grenades'.static.FuseMergeVisualization;
  74.     Template.DamagePreviewFn = class'X2Ability_Grenades'.static.GrenadeDamagePreview;  
  75.  
  76.     Template.Hostility = eHostility_Offensive;
  77.    
  78.     Template.SuperConcealmentLoss = class'X2AbilityTemplateManager'.default.SuperConcealmentStandardShotLoss;
  79.     Template.ChosenActivationIncreasePerUse = class'X2AbilityTemplateManager'.default.StandardShotChosenActivationIncreasePerUse;
  80.     Template.LostSpawnIncreasePerUse = class'X2AbilityTemplateManager'.default.GrenadeLostSpawnIncreasePerUse;
  81.     Template.bFrameEvenWhenUnitIsHidden = true;
  82.  
  83.     return Template;   
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement