Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static function X2AbilityTemplate PlasmaQuake()
  2. {
  3.     local X2AbilityTemplate                     Template;  
  4.     local X2AbilityCost_ActionPoints            ActionPointCost;
  5.     local X2AbilityTarget_Cursor                CursorTarget;
  6.     local X2AbilityMultiTarget_Radius           RadiusMultiTarget;
  7.     local X2AbilityTrigger_PlayerInput          InputTrigger;
  8.     local X2AbilityCooldown                     Cooldown;
  9.     local X2Effect_Knockback                    KnockbackEffect;
  10.     local X2Effect_ApplyWeaponDamage            DamageEffect;
  11.     local X2Effect_ApplyFireToWorld         FireToWorldEffect;
  12.     local X2AbilityToHitCalc_StatCheck_UnitVsUnit    StatContest;
  13.     local X2Effect_Stunned                      StunnedEffect;
  14.  
  15.     `CREATE_X2ABILITY_TEMPLATE(Template, 'PlasmaQuake');
  16.     Template.bDontDisplayInAbilitySummary = false;
  17.    
  18.    
  19.     ActionPointCost = new class'X2AbilityCost_ActionPoints';
  20.     ActionPointCost.iNumPoints = 1;
  21.     ActionPointCost.bConsumeAllPoints = true;
  22.     Template.AbilityCosts.AddItem(ActionPointCost);
  23.  
  24.     // This will be a stat contest
  25.     StatContest = new class'X2AbilityToHitCalc_StatCheck_UnitVsUnit';
  26.     StatContest.AttackerStat = eStat_Strength;
  27.     Template.AbilityToHitCalc = StatContest;
  28.  
  29.     //  Stunned effect for 3 or 4 unblocked hit
  30.     StunnedEffect = class'X2StatusEffects'.static.CreateStunnedStatusEffect(2, 100, false);
  31.     StunnedEffect.MinStatContestResult = 3;
  32.     StunnedEffect.MaxStatContestResult = 4;
  33.     StunnedEffect.MultiTargetStatContestInfo.MaxNumberAllowed = 1;  // Max number of stunned units allowed from this ability
  34.     StunnedEffect.bRemoveWhenSourceDies = false;
  35.     Template.AddMultiTargetEffect(StunnedEffect);
  36.  
  37.     // damage effect
  38.     DamageEffect = new class'X2Effect_ApplyWeaponDamage';
  39.     DamageEffect.EffectDamageValue = default.PLASMA_QUAKE_DAMAGE;
  40.     DamageEffect.bApplyWorldEffectsForEachTargetLocation = true;
  41.     Template.AddMultiTargetEffect(DamageEffect);
  42.  
  43.     Template.AddMultiTargetEffect(class'X2StatusEffects'.static.CreateBurningStatusEffect(2, 1));
  44.     FireToWorldEffect = new class'X2Effect_ApplyFireToWorld';
  45.     Template.AddMultiTargetEffect(FireToWorldEffect);
  46.  
  47.     // knockback effect
  48.     KnockbackEffect = new class'X2Effect_Knockback';
  49.     KnockbackEffect.KnockbackDistance = 3;
  50.     Template.AddMultiTargetEffect(KnockbackEffect);
  51.  
  52.     // Multi Targets
  53.     Template.AbilityMultiTargetConditions.AddItem(default.LivingTargetUnitOnlyProperty);
  54.  
  55.     CursorTarget = new class'X2AbilityTarget_Cursor';
  56.     Template.AbilityTargetStyle = CursorTarget;
  57.  
  58.     RadiusMultiTarget = new class'X2AbilityMultiTarget_Radius';
  59.     RadiusMultiTarget.bUseWeaponRadius = false;
  60.     RadiusMultiTarget.fTargetRadius = 6;
  61.     RadiusMultiTarget.bExcludeSelfAsTargetIfWithinRadius = true;
  62.     Template.AbilityMultiTargetStyle = RadiusMultiTarget;
  63.  
  64.     Template.TargetingMethod = class'X2TargetingMethod_PathTarget';
  65.  
  66.     // shooter conditions
  67.     Template.AbilityShooterConditions.AddItem(default.LivingShooterProperty);
  68.  
  69.     // trigger
  70.     InputTrigger = new class'X2AbilityTrigger_PlayerInput';
  71.     Template.AbilityTriggers.AddItem(InputTrigger);
  72.    
  73.     Template.AbilitySourceName = 'eAbilitySource_Standard';
  74.     Template.eAbilityIconBehaviorHUD = EAbilityIconBehavior_AlwaysShow;
  75.     Template.IconImage = "img:///UILIB_Omega.UIPerk_PlasmaQuake";
  76.  
  77.     // Cooldown on the ability
  78.     Cooldown = new class'X2AbilityCooldown';
  79.     Cooldown.iNumTurns = 5;
  80.     Template.AbilityCooldown = Cooldown;
  81.  
  82.     Template.bSkipMoveStop = true;
  83.     Template.CustomFireAnim = 'FF_Quake';
  84.     Template.CustomMovingFireAnim = 'MV_Quake';
  85.     Template.CustomMovingTurnLeftFireAnim = 'MV_RunTun90LeftQuake';
  86.     Template.CustomMovingTurnRightFireAnim = 'MV_RunTun90RightQuake';
  87.  
  88.     // This action is considered 'hostile' and can be interrupted!
  89.     Template.Hostility = eHostility_Offensive;
  90.     Template.BuildNewGameStateFn = TypicalMoveEndAbility_BuildGameState;
  91.     Template.BuildInterruptGameStateFn = TypicalMoveEndAbility_BuildInterruptGameState;
  92.     Template.BuildVisualizationFn = TypicalAbility_BuildVisualization;
  93.     Template.CinescriptCameraType = "BerserkerQueen_Quake";
  94.    
  95.     Template.bShowActivation = true;
  96.     Template.LostSpawnIncreasePerUse = class'X2AbilityTemplateManager'.default.HeavyWeaponLostSpawnIncreasePerUse;
  97. //BEGIN AUTOGENERATED CODE: Template Overrides 'Quake'
  98.     Template.bFrameEvenWhenUnitIsHidden = true;
  99. //END AUTOGENERATED CODE: Template Overrides 'Quake'
  100.  
  101.     return Template;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement