-
-
Save InfiniteCanvas/a0b95d75c1310e651a2837921d6b9da8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AHarderWar_Abilities_ChosenAssassin extends X2Ability_ChosenAssassin config(GameData_SoldierSkills); | |
static function array<X2DataTemplate> CreateTemplates() | |
{ | |
local array<X2DataTemplate> Templates; | |
Templates.AddItem(LastBreath()); | |
return Templates; | |
} | |
static function X2DataTemplate LastBreath() | |
{ | |
local X2AbilityTemplate Template; | |
local X2AbilityCost_ActionPoints ActionPointCost; | |
local X2AbilityToHitCalc_StandardMelee StandardMelee; | |
local array<name> SkipExclusions; | |
local X2Effect_RemoveEffects RemoveEffects; | |
local X2Effect_ApplyWeaponDamage WeaponDamageEffect; | |
local X2Effect_KillUnit LastBreathEffect; | |
local X2Condition_UnitEffects UnitEffectsCondition; | |
local X2AbilityCooldown_LocalAndGlobal Cooldown; | |
local X2Condition_UnitProperty UnitPropertyCondition; | |
`CREATE_X2ABILITY_TEMPLATE(Template, 'LastBreath'); | |
Template.IconImage = "img:///UILibrary_XPACK_Common.PerkIcons.UIPerk_partingsilk"; | |
Template.Hostility = eHostility_Offensive; | |
Template.AbilitySourceName = 'eAbilitySource_Standard'; | |
Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_AlwaysShow; | |
Template.bFrameEvenWhenUnitIsHidden = true; | |
ActionPointCost = new class'X2AbilityCost_ActionPoints'; | |
ActionPointCost.iNumPoints = 1; | |
Template.AbilityCosts.AddItem(ActionPointCost); | |
StandardMelee = new class'X2AbilityToHitCalc_StandardMelee'; | |
StandardMelee.bGuaranteedHit = true; | |
Template.AbilityToHitCalc = StandardMelee; | |
Template.AbilityTargetStyle = new class'X2AbilityTarget_MovingMelee'; | |
Template.TargetingMethod = class'X2TargetingMethod_MeleePath'; | |
Template.AbilityTriggers.AddItem(default.PlayerInputTrigger); | |
Template.AbilityTriggers.AddItem(new class'X2AbilityTrigger_EndOfMove'); | |
Cooldown = new class'X2AbilityCooldown_LocalAndGlobal'; | |
Cooldown.iNumTurns = 1; | |
Cooldown.NumGlobalTurns = 0; | |
Template.AbilityCooldown = Cooldown; | |
// Shooter Conditions | |
Template.AbilityShooterConditions.AddItem(default.LivingShooterProperty); | |
SkipExclusions.AddItem(class'X2StatusEffects'.default.BurningName); | |
SkipExclusions.AddItem(class'X2AbilityTemplateManager'.default.DisorientedName); | |
Template.AddShooterEffectExclusions(SkipExclusions); | |
RemoveEffects = new class'X2Effect_RemoveEffects'; | |
RemoveEffects.EffectNamesToRemove.AddItem(class'X2Effect_VanishingWind'.default.EffectName); | |
RemoveEffects.bApplyOnMiss = true; | |
Template.AddShooterEffect(RemoveEffects); | |
// Target Conditions | |
Template.AbilityTargetConditions.AddItem(default.LivingHostileTargetProperty); | |
Template.AbilityTargetConditions.AddItem(default.MeleeVisibilityCondition); | |
// Exclude Turrets. Also only consider targets that are eligible for Extract/Kidnap. | |
UnitPropertyCondition = new class'X2Condition_UnitProperty'; | |
UnitPropertyCondition.ExcludeTurret = true; | |
UnitPropertyCondition.ExcludeRobotic = true; | |
UnitPropertyCondition.ExcludeAlien = true; | |
UnitPropertyCondition.ExcludeFriendlyToSource = true; | |
UnitPropertyCondition.FailOnNonUnits = true; | |
UnitPropertyCondition.RequireUnitSelectedFromHQ = true; | |
Template.AbilityTargetConditions.AddItem(UnitPropertyCondition); | |
WeaponDamageEffect = new class'X2Effect_ApplyWeaponDamage'; | |
WeaponDamageEffect.bIgnoreBaseDamage = true; | |
WeaponDamageEffect.DamageTag = 'PartingSilk'; | |
Template.AddTargetEffect(WeaponDamageEffect); | |
LastBreathEffect = new class'X2Effect_KillUnit'; | |
LastBreathEffect.BuildPersistentEffect(1, false, false, false, eGameRule_PlayerTurnEnd); | |
LastBreathEffect.EffectName = 'LastBreath'; | |
LastBreathEffect.bApplyOnMiss = false; | |
Template.AddTargetEffect(LastBreathEffect); | |
UnitEffectsCondition = new class'X2Condition_UnitEffects'; | |
UnitEffectsCondition.AddRequireEffect(class'X2Effect_VanishingWind'.default.EffectName, 'AA_MissingRequiredEffect'); | |
Template.AbilityShooterConditions.AddItem(UnitEffectsCondition); | |
Template.bSkipMoveStop = true; | |
Template.BuildNewGameStateFn = PartingSilk_BuildGameState; | |
Template.BuildVisualizationFn = TypicalAbility_BuildVisualization; | |
Template.BuildInterruptGameStateFn = TypicalMoveEndAbility_BuildInterruptGameState; | |
Template.CinescriptCameraType = "ChosenAssassin_PartingSilk"; | |
Template.PostActivationEvents.AddItem('PartingSilkActivated'); | |
Template.LostSpawnIncreasePerUse = class'X2AbilityTemplateManager'.default.MeleeLostSpawnIncreasePerUse; | |
return Template; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment