Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static function X2AbilityTemplate Create_IRI_DetonateNuke()
- {
- local X2AbilityTemplate Template;
- local X2AbilityCost_Ammo AmmoCost;
- local X2AbilityToHitCalc_StandardAim StandardAim;
- local X2AbilityMultiTarget_Radius RadiusMultiTarget;
- local X2Condition_UnitProperty UnitPropertyCondition;
- local X2AbilityTrigger_EventListener EventTrigger;
- local X2Condition_UnitEffects EffectCondition;
- `CREATE_X2ABILITY_TEMPLATE(Template, 'IRI_DetonateTacticalNuke');
- Template.bDontDisplayInAbilitySummary = true;
- AmmoCost = new class'X2AbilityCost_Ammo';
- AmmoCost.iAmmo = 1;
- Template.AbilityCosts.AddItem(AmmoCost);
- StandardAim = new class'X2AbilityToHitCalc_StandardAim';
- StandardAim.bIndirectFire = true;
- StandardAim.bAllowCrit = false;
- Template.AbilityToHitCalc = StandardAim;
- Template.bUseThrownGrenadeEffects = true;
- Template.bHideWeaponDuringFire = true;
- Template.AbilityTargetStyle = default.SelfTarget;
- Template.AbilityTriggers.AddItem(default.PlayerInputTrigger);
- EventTrigger = new class'X2AbilityTrigger_EventListener';
- EventTrigger.ListenerData.Deferral = ELD_OnStateSubmitted;
- EventTrigger.ListenerData.EventID = 'PlayerTurnBegun';
- EventTrigger.ListenerData.Filter = eFilter_Player;
- EventTrigger.ListenerData.EventFn = class'XComGameState_Ability'.static.AbilityTriggerEventListener_Self;
- Template.AbilityTriggers.AddItem(EventTrigger);
- RadiusMultiTarget = new class'X2AbilityMultiTarget_Radius';
- RadiusMultiTarget.bAddPrimaryTargetAsMultiTarget = true;
- RadiusMultiTarget.bUseWeaponRadius = true;
- Template.AbilityMultiTargetStyle = RadiusMultiTarget;
- UnitPropertyCondition = new class'X2Condition_UnitProperty';
- UnitPropertyCondition.ExcludeDead = true;
- UnitPropertyCondition.ExcludeFriendlyToSource = false;
- UnitPropertyCondition.ExcludeHostileToSource = false;
- UnitPropertyCondition.FailOnNonUnits = false; //The grenade can affect interactive objects, others
- Template.AbilityMultiTargetConditions.AddItem(UnitPropertyCondition);
- Template.AbilityShooterConditions.AddItem(new class'X2Condition_RocketArmed');
- // Can trigger only after the Effect runs out, which is applied when the rocket is armed.
- EffectCondition = new class'X2Condition_UnitEffects';
- EffectCondition.AddExcludeEffect('IRI_Nuke_Armed_Effect', 'AA_AbilityUnavailable');
- Template.AbilityShooterConditions.AddItem(EffectCondition);
- Template.bRecordValidTiles = true;
- Template.AbilitySourceName = 'eAbilitySource_Standard';
- //Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_NeverShow;
- Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_AlwaysShow;
- Template.IconImage = "img:///UILibrary_PerkIcons.UIPerk_fraggrenade";
- Template.ShotHUDPriority = class'UIUtilities_Tactical'.const.STANDARD_GRENADE_PRIORITY;
- Template.bUseAmmoAsChargesForHUD = true;
- Template.bDisplayInUITooltip = false;
- Template.bDisplayInUITacticalText = false;
- Template.bShowActivation = true;
- Template.bSkipExitCoverWhenFiring = true;
- Template.ActionFireClass = class'X2Action_Fire_IgniteFuse';
- Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;
- Template.BuildVisualizationFn = TypicalAbility_BuildVisualization;
- Template.MergeVisualizationFn = class'X2Ability_Grenades'.static.FuseMergeVisualization;
- Template.DamagePreviewFn = class'X2Ability_Grenades'.static.GrenadeDamagePreview;
- Template.Hostility = eHostility_Offensive;
- Template.SuperConcealmentLoss = class'X2AbilityTemplateManager'.default.SuperConcealmentStandardShotLoss;
- Template.ChosenActivationIncreasePerUse = class'X2AbilityTemplateManager'.default.StandardShotChosenActivationIncreasePerUse;
- Template.LostSpawnIncreasePerUse = class'X2AbilityTemplateManager'.default.GrenadeLostSpawnIncreasePerUse;
- Template.bFrameEvenWhenUnitIsHidden = true;
- return Template;
- }
Advertisement
Add Comment
Please, Sign In to add comment