Advertisement
Guest User

Bountygiver Example 1

a guest
Oct 21st, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.79 KB | None | 0 0
  1. class X2Ability_WOTC_APA_AssaultAbilitySet extends X2Ability_WOTC_APA_Utilities config(WOTC_APA_AssaultSkills);
  2.  
  3. // CQB Dominance Proficiency Level Variables
  4. var config float CQB_DOMINANCE_I_BASE_RADIUS;
  5. var config float CQB_DOMINANCE_II_BONUS_RADIUS;
  6. var config float CQB_DOMINANCE_III_BONUS_RADIUS;
  7. var config float CQB_DOMINANCE_BULLPUP_BONUS_RADIUS;
  8.  
  9.  
  10. var config int CQB_DOMINANCE_I_STAT_BONUS;
  11. var config int CQB_DOMINANCE_II_STAT_BONUS;
  12. var config int CQB_DOMINANCE_III_STAT_BONUS;
  13.  
  14. var name CQB_DOMINANCE_RADIUS_NAME;
  15.  
  16. var localized string strCQBDominance1Name;
  17. var localized string strCQBDominance1Desc;
  18. var localized string strCQBDominance2Name;
  19. var localized string strCQBDominance2Desc;
  20. var localized string strCQBDominance3Name;
  21. var localized string strCQBDominance3Desc;
  22. var localized string strCQBDominanceRadius;
  23.  
  24. // Ability Variables
  25. var config int RUN_AND_GUN_BASE_COOLDOWN;
  26. var name RUN_AND_GUN_COOLDOWN_NAME;
  27. var config int RUN_AND_GUN_LIGHT_WEAPON_COOLDOWN_REDUCTION;
  28. var config array<name> RUN_AND_GUN_LIGHT_PRIMARY_WEAPONS;
  29. var config array<name> RUN_AND_GUN_LIGHT_SECONDARY_WEAPONS;
  30.  
  31. var localized string strRunAndGunMobilityName;
  32. var localized string strRunAndGunMobilityDesc;
  33. var localized string strRunAndGunMobilityIcon;
  34. var localized string strRunAndGunArmorName;
  35. var localized string strRunAndGunArmorDesc;
  36. var localized string strRunAndGunArmorIcon;
  37. var localized string strRunAndGunDamageName;
  38. var localized string strRunAndGunDamageDesc;
  39. var localized string strRunAndGunDamageIcon;
  40. var localized string strRunAndGunActionName;
  41. var localized string strRunAndGunActionDesc;
  42. var localized string strRunAndGunActionIcon;
  43.  
  44.  
  45. var config float PREP_FOR_ENTRY_RANGE_MULTIPLIER;
  46. var config int PREP_FOR_ENTRY_COOLDOWN;
  47. var config int ZONE_CONTROL_AIM_PENALTY;
  48. var config int ZONE_CONTROL_MOBILITY_PENALTY;
  49. var config int HONED_EDGE_BONUS_AIM;
  50. var config int HONED_EDGE_BONUS_CRIT;
  51. var config float LARGE_PARTIAL_MOVE_MOBILITY_MULTIPLIER;
  52. var config float SMALL_PARTIAL_MOVE_MOBILITY_MULTIPLIER;
  53. var config int DEEP_RESERVES_COOLDOWN_MODIFIER;
  54. var config int DEEP_RESERVES_MOBILITY_BONUS;
  55. var config int LIGHTNING_REFLEXES_REACTION_FIRE_DEFENSE;
  56. var config int BATTERING_RAM_ARMOR_BONUS;
  57. var config int BATTERING_RAM_CONDITIONAL_ARMOR_BONUS;
  58. var config int SHOCK_AND_MAUL_DAMAGE_BONUS;
  59. var config int SHOCK_AND_MAUL_CONDITIONAL_DAMAGE_BONUS;
  60. var config int KILLER_INSTINCT_DAMAGE_BONUS;
  61. var config float KILLER_INSTINCT_CRITICAL_DAMAGE_MULTIPLIER;
  62. var config int RUTHLESS_DAMAGE_BONUS;
  63. var config int RUTHLESS_CRIT_CHANCE;
  64. var config int CONCUSSION_GRENADES_CHARGE_BONUS;
  65. var config array<name> CONCUSSION_GRENADES_CHARGE_GRENADE_TYPES;
  66. var config int NON_MOVE_ACTION_ACTIVATION_LIMIT;
  67.  
  68. var name SLIP_INTO_POSITION_BONUS_NAME;
  69. var config float SLIP_INTO_POSITION_DETECTION_RANGE_BONUS_1;
  70. var config float SLIP_INTO_POSITION_DETECTION_RANGE_BONUS_2;
  71. var config int EVASIVE_DODGE_BONUS_PER_TILE;
  72. var config int EVASIVE_DODGE_BONUS_TILE_CAP;
  73.  
  74.  
  75. static function array<X2DataTemplate> CreateTemplates()
  76. {
  77. local array<X2DataTemplate> Templates;
  78.  
  79. /**/`Log("WOTC_APA_Assault - Begin Adding Templates");
  80.  
  81. Templates.AddItem(WOTC_APA_CQBDominance());
  82. /*»»»*/ Templates.AddItem(WOTC_APA_CQBDominanceBullpupBonus());
  83. /*»»»*/ Templates.AddItem(WOTC_APA_CQBDominanceShowRange());
  84. Templates.AddItem(WOTC_APA_RunAndGun());
  85. /*»»»*/ Templates.AddItem(WOTC_APA_RunAndGunActive());
  86. Templates.AddItem(WOTC_APA_SwordSlice());
  87.  
  88. Templates.AddItem(WOTC_APA_PrepForEntry());
  89. Templates.AddItem(WOTC_APA_ZoneOfControl());
  90. Templates.AddItem(WOTC_APA_HonedEdge());
  91.  
  92. Templates.AddItem(WOTC_APA_BreachingManeuver());
  93. Templates.AddItem(WOTC_APA_DeepReserves());
  94. Templates.AddItem(WOTC_APA_Breakthrough());
  95. /*»»»*/ Templates.AddItem(WOTC_APA_LargePartialMovementActionMobilityPenalty());
  96. /*»»»*/ Templates.AddItem(WOTC_APA_SmallPartialMovementActionMobilityPenalty());
  97.  
  98. Templates.AddItem(WOTC_APA_LightningReflexes());
  99. Templates.AddItem(WOTC_APA_BatteringRam());
  100. // Combatives: LW2 Secondaries Ability
  101.  
  102. Templates.AddItem(WOTC_APA_ShockAndMaul());
  103. Templates.AddItem(WOTC_APA_KillerInstinct());
  104. Templates.AddItem(WOTC_APA_Ruthless());
  105.  
  106. Templates.AddItem(WOTC_APA_ConcussionGrenades());
  107. Templates.AddItem(WOTC_APA_ZoneDefense());
  108. /*»»»*/ Templates.AddItem(WOTC_APA_ZoneDefenseTrigger());
  109. /*»»»*/ Templates.AddItem(WOTC_APA_ZoneDefenseAttack());
  110. // Untouchable: Base-game Ability
  111.  
  112. Templates.AddItem(WOTC_APA_SweepAndClear());
  113. Templates.AddItem(WOTC_APA_RovingWarrior());
  114. Templates.AddItem(WOTC_APA_Relentless());
  115.  
  116. Templates.AddItem(WOTC_APA_TakeCover());
  117. /*»»»*/ Templates.AddItem(WOTC_APA_TakeCoverEVOverride());
  118. Templates.AddItem(WOTC_APA_SlipIntoPosition());
  119. Templates.AddItem(WOTC_APA_Evasive());
  120.  
  121. /**/`Log("WOTC_APA_Assault - Finished Adding Templates");
  122.  
  123. return Templates;
  124. }
  125.  
  126.  
  127. // CQB Dominance - Base Class Proficiency Ability
  128. static function X2AbilityTemplate WOTC_APA_CQBDominance()
  129. {
  130.  
  131. local X2AbilityTemplate Template;
  132. local X2Condition_WOTC_APA_Class_TargetRankRequirement RankCondition1, RankCondition2, RankCondition3;
  133. local X2Effect_SetUnitValue SetUnitValue1, SetUnitValue2, SetUnitValue3;
  134. local X2Effect_WOTC_APA_CQBDominance StatBoost1, StatBoost2, StatBoost3;
  135.  
  136.  
  137. `CREATE_X2ABILITY_TEMPLATE(Template, 'WOTC_APA_CQBDominance');
  138. Template.IconImage = "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance";
  139. Template.AbilitySourceName = 'eAbilitySource_Perk';
  140. Template.eAbilityIconBehaviorHUD = EAbilityIconBehavior_NeverShow;
  141. Template.Hostility = eHostility_Neutral;
  142. Template.AbilityToHitCalc = default.DeadEye;
  143. Template.AbilityTargetStyle = default.SelfTarget;
  144. Template.AbilityTriggers.AddItem(default.UnitPostBeginPlayTrigger);
  145. Template.AdditionalAbilities.AddItem('WOTC_APA_RunAndGun');
  146. Template.bCrossClassEligible = false;
  147.  
  148.  
  149. // Establish Rank conditions for each Proficiency Level effect:
  150. RankCondition1 = new class 'X2Condition_WOTC_APA_Class_TargetRankRequirement';
  151. RankCondition1.iMinRank = -1; // No minimum rank for level 1 bonuses
  152. RankCondition1.iMaxRank = 2; // Max rank is 1 below minimum rank for level 2 bonuses
  153. RankCondition1.LogEffectName = "CQB Dominance 1"; // EffectName to use in logs
  154. RankCondition1.ExcludeProject = 'WOTC_APA_AssaultUnlock1';
  155.  
  156. RankCondition2 = new class 'X2Condition_WOTC_APA_Class_TargetRankRequirement';
  157. RankCondition2.iMinRank = 3;
  158. RankCondition2.iMaxRank = 5;
  159. RankCondition2.LogEffectName = "CQB Dominance 2";
  160. RankCondition2.ExcludeProject = 'WOTC_APA_AssaultUnlock2';
  161. RankCondition2.GiveProject = 'WOTC_APA_AssaultUnlock1';
  162.  
  163. RankCondition3 = new class 'X2Condition_WOTC_APA_Class_TargetRankRequirement';
  164. RankCondition3.iMinRank = 6;
  165. RankCondition3.iMaxRank = -1; // No max rank for level 3 bonuses
  166. RankCondition3.LogEffectName = "CQB Dominance 3";
  167. RankCondition3.GiveProject = 'WOTC_APA_AssaultUnlock2';
  168.  
  169.  
  170. // Set CQB Range according to rank conditions
  171. SetUnitValue1 = new class'X2Effect_SetUnitValue';
  172. SetUnitValue1.UnitName = default.CQB_DOMINANCE_RADIUS_NAME;
  173. SetUnitValue1.NewValueToSet = default.CQB_DOMINANCE_I_BASE_RADIUS;
  174. SetUnitValue1.CleanupType = eCleanup_BeginTactical;
  175. SetUnitValue1.TargetConditions.AddItem(RankCondition1);
  176. Template.AddTargetEffect(SetUnitValue1);
  177.  
  178. SetUnitValue2 = new class'X2Effect_SetUnitValue';
  179. SetUnitValue2.UnitName = default.CQB_DOMINANCE_RADIUS_NAME;
  180. SetUnitValue2.NewValueToSet = default.CQB_DOMINANCE_I_BASE_RADIUS + default.CQB_DOMINANCE_II_BONUS_RADIUS;
  181. SetUnitValue2.CleanupType = eCleanup_BeginTactical;
  182. SetUnitValue2.TargetConditions.AddItem(RankCondition2);
  183. Template.AddTargetEffect(SetUnitValue2);
  184.  
  185. SetUnitValue3 = new class'X2Effect_SetUnitValue';
  186. SetUnitValue3.UnitName = default.CQB_DOMINANCE_RADIUS_NAME;
  187. SetUnitValue3.NewValueToSet = default.CQB_DOMINANCE_I_BASE_RADIUS + default.CQB_DOMINANCE_II_BONUS_RADIUS + default.CQB_DOMINANCE_III_BONUS_RADIUS;
  188. SetUnitValue3.CleanupType = eCleanup_BeginTactical;
  189. SetUnitValue3.TargetConditions.AddItem(RankCondition3);
  190. Template.AddTargetEffect(SetUnitValue3);
  191.  
  192.  
  193. // Add the stat bonuses within CQB Range and setup the passive icons for each rank
  194. StatBoost1 = new class'X2Effect_WOTC_APA_CQBDominance';
  195. StatBoost1.BonusAmount = default.CQB_DOMINANCE_I_STAT_BONUS;
  196. StatBoost1.BuildPersistentEffect (1, true, false, false);
  197. StatBoost1.SetDisplayInfo(ePerkBuff_Passive, default.strCQBDominance1Name, default.strCQBDominance1Desc, "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance1", true,, Template.AbilitySourceName);
  198. StatBoost1.TargetConditions.AddItem(RankCondition1);
  199. Template.AddTargetEffect(StatBoost1);
  200.  
  201. StatBoost2 = new class'X2Effect_WOTC_APA_CQBDominance';
  202. StatBoost2.BonusAmount = default.CQB_DOMINANCE_I_STAT_BONUS + default.CQB_DOMINANCE_II_STAT_BONUS;
  203. StatBoost2.BuildPersistentEffect (1, true, false, false);
  204. StatBoost2.SetDisplayInfo(ePerkBuff_Passive, default.strCQBDominance2Name, default.strCQBDominance2Desc, "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance2", true,, Template.AbilitySourceName);
  205. StatBoost2.TargetConditions.AddItem(RankCondition2);
  206. Template.AddTargetEffect(StatBoost2);
  207.  
  208. StatBoost3 = new class'X2Effect_WOTC_APA_CQBDominance';
  209. StatBoost3.BonusAmount = default.CQB_DOMINANCE_I_STAT_BONUS + default.CQB_DOMINANCE_II_STAT_BONUS + default.CQB_DOMINANCE_III_STAT_BONUS;
  210. StatBoost3.BuildPersistentEffect (1, true, false, false);
  211. StatBoost3.SetDisplayInfo(ePerkBuff_Passive, default.strCQBDominance3Name, default.strCQBDominance3Desc, "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance3", true,, Template.AbilitySourceName);
  212. StatBoost3.TargetConditions.AddItem(RankCondition3);
  213. Template.AddTargetEffect(StatBoost3);
  214.  
  215.  
  216. Template.AdditionalAbilities.AddItem('WOTC_APA_CQBDominanceBullpupBonus');
  217. //Template.AdditionalAbilities.AddItem('WOTC_APA_CQBDominanceShowRange');
  218.  
  219.  
  220. Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;
  221. return Template;
  222. }
  223.  
  224. // CQB Dominance - Bullpup Bonus Radius: CQB Dominance radius is increased by [default: +3] tiles when equipping the Bullpup
  225. static function X2AbilityTemplate WOTC_APA_CQBDominanceBullpupBonus()
  226. {
  227.  
  228. local X2AbilityTemplate Template;
  229. local X2Condition_WOTC_APA_Class_ValidWeaponCategory WeaponCondition;
  230. local X2Effect_IncrementUnitValue IncrementUnitValue;
  231.  
  232.  
  233. Template = CreatePassiveAbility('WOTC_APA_CQBDominanceBullpupBonus', "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance", 'WOTC_APA_CQBDominanceBullpupBonus_Icon', false);
  234.  
  235.  
  236. // Require a bullpup to grant the bonus
  237. WeaponCondition = new class'X2Condition_WOTC_APA_Class_ValidWeaponCategory';
  238. WeaponCondition.AllowedWeaponCategories.AddItem('bullpup');
  239. WeaponCondition.bCheckSpecificSlot = true;
  240. WeaponCondition.SpecificSlot = eInvSlot_PrimaryWeapon;
  241.  
  242.  
  243. IncrementUnitValue = new class'X2Effect_IncrementUnitValue';
  244. IncrementUnitValue.UnitName = default.CQB_DOMINANCE_RADIUS_NAME;
  245. IncrementUnitValue.NewValueToSet = default.CQB_DOMINANCE_BULLPUP_BONUS_RADIUS;
  246. IncrementUnitValue.CleanupType = eCleanup_BeginTactical;
  247. IncrementUnitValue.TargetConditions.AddItem(WeaponCondition);
  248. Template.AddTargetEffect(IncrementUnitValue);
  249.  
  250.  
  251. return Template;
  252. }
  253.  
  254. // CQB Dominance - Show Range: Active ability the does nothing, but will show the
  255. static function X2AbilityTemplate WOTC_APA_CQBDominanceShowRange()
  256. {
  257.  
  258. local X2AbilityTemplate Template;
  259. local X2AbilityCost_ActionPoints ActionPointCost;
  260. local X2AbilityMultiTarget_WOTC_APA_CQBRadius RadiusMultiTarget;
  261.  
  262.  
  263. Template = CreateSelfActiveAbility('WOTC_APA_CQBDominanceShowRange', "img:///UILibrary_WOTC_APA_Class_Pack.perk_CQBDominance", false);
  264. Template.ShotHUDPriority = 1900;
  265.  
  266.  
  267. ActionPointCost = new class'X2AbilityCost_ActionPoints';
  268. ActionPointCost.iNumPoints = 1;
  269. ActionPointCost.bFreeCost = true;
  270. Template.AbilityCosts.AddItem(ActionPointCost);
  271.  
  272. RadiusMultiTarget = new class'X2AbilityMultiTarget_WOTC_APA_CQBRadius';
  273. RadiusMultiTarget.bIgnoreBlockingCover = true;
  274. Template.AbilityMultiTargetStyle = RadiusMultiTarget;
  275.  
  276.  
  277. Template.BuildNewGameStateFn = none;
  278. Template.BuildVisualizationFn = none;
  279. return Template;
  280. }
  281.  
  282.  
  283. // Run and Gun - Passive: Grants Run and Gun and sets up the passive effects
  284. static function X2AbilityTemplate WOTC_APA_RunAndGun()
  285. {
  286.  
  287. local X2AbilityTemplate Template;
  288. local X2Effect_SetUnitValue SetUnitValue;
  289. local X2Condition_WOTC_APA_Class_ValidWeaponCategory WeaponCondition1, WeaponCondition2;
  290. local X2Effect_IncrementUnitValue ModifyUnitValue1, ModifyUnitValue2;
  291.  
  292.  
  293. Template = CreatePassiveAbility('WOTC_APA_RunAndGun', "img:///UILibrary_PerkIcons.UIPerk_runandgun",, false);
  294.  
  295.  
  296. // Set the base Cooldown UnitVale
  297. SetUnitValue = new class'X2Effect_SetUnitValue';
  298. SetUnitValue.UnitName = default.RUN_AND_GUN_COOLDOWN_NAME;
  299. SetUnitValue.NewValueToSet = default.RUN_AND_GUN_BASE_COOLDOWN;
  300. SetUnitValue.CleanupType = eCleanup_BeginTactical;
  301. Template.AddTargetEffect(SetUnitValue);
  302.  
  303.  
  304. // Setup Cooldown reductions for light weapons
  305. WeaponCondition1 = new class'X2Condition_WOTC_APA_Class_ValidWeaponCategory';
  306. WeaponCondition1.AllowedWeaponCategories = default.RUN_AND_GUN_LIGHT_PRIMARY_WEAPONS;
  307. WeaponCondition1.bCheckSpecificSlot = true;
  308. WeaponCondition1.SpecificSlot = eInvSlot_PrimaryWeapon;
  309.  
  310. ModifyUnitValue1 = new class'X2Effect_IncrementUnitValue';
  311. ModifyUnitValue1.UnitName = default.RUN_AND_GUN_COOLDOWN_NAME;
  312. ModifyUnitValue1.NewValueToSet = -default.RUN_AND_GUN_LIGHT_WEAPON_COOLDOWN_REDUCTION;
  313. ModifyUnitValue1.CleanupType = eCleanup_BeginTactical;
  314. ModifyUnitValue1.TargetConditions.AddItem(WeaponCondition1);
  315. Template.AddTargetEffect(ModifyUnitValue1);
  316.  
  317. WeaponCondition2 = new class'X2Condition_WOTC_APA_Class_ValidWeaponCategory';
  318. WeaponCondition2.AllowedWeaponCategories = default.RUN_AND_GUN_LIGHT_SECONDARY_WEAPONS;
  319. WeaponCondition2.bCheckSpecificSlot = true;
  320. WeaponCondition2.SpecificSlot = eInvSlot_SecondaryWeapon;
  321.  
  322. ModifyUnitValue2 = new class'X2Effect_IncrementUnitValue';
  323. ModifyUnitValue2.UnitName = default.RUN_AND_GUN_COOLDOWN_NAME;
  324. ModifyUnitValue2.NewValueToSet = -default.RUN_AND_GUN_LIGHT_WEAPON_COOLDOWN_REDUCTION;
  325. ModifyUnitValue2.CleanupType = eCleanup_BeginTactical;
  326. ModifyUnitValue2.TargetConditions.AddItem(WeaponCondition2);
  327. Template.AddTargetEffect(ModifyUnitValue2);
  328.  
  329.  
  330. // Add the Activatible Run and Gun ability
  331. Template.AdditionalAbilities.AddItem('WOTC_APA_RunAndGunActive');
  332. Template.AdditionalAbilities.AddItem('WOTC_APA_CQBDominance');
  333.  
  334. return Template;
  335. }
  336.  
  337. // Run and Gun - Active: Activate to gain an additional non-movement action
  338. static function X2AbilityTemplate WOTC_APA_RunAndGunActive()
  339. {
  340.  
  341. local X2AbilityTemplate Template;
  342. local X2AbilityCooldown_WOTC_APA_Class_UnitValue Cooldown;
  343. local X2AbilityCost_ActionPoints ActionPointCost;
  344. local X2Effect_GrantActionPoints ActionPointEffect;
  345. local X2Condition_WOTC_APA_Class_AbilityRequirement MobilityCondition, ArmorCondition, DamageCondition, ShotCondition;
  346. local X2Effect_PersistentStatChange MobilityEffect, ArmorEffect;
  347. local X2Effect_WOTC_APA_Class_BonusDamage DamageEffect;
  348. local X2Effect_Persistent ShotEffect;
  349.  
  350.  
  351. Template = CreateSelfActiveAbility('WOTC_APA_RunAndGunActive', "img:///UILibrary_PerkIcons.UIPerk_runandgun");
  352.  
  353. Template.ShotHUDPriority = class'UIUtilities_Tactical'.const.CLASS_LIEUTENANT_PRIORITY;
  354. Template.AbilityConfirmSound = "TacticalUI_Activate_Ability_Run_N_Gun";
  355. //Template.ActivationSpeech = 'RunAndGun';
  356. //Template.ActivationSpeech = 'CloseCombatSpecialist';
  357. Template.ActivationSpeech = 'CombatStim';
  358. Template.ConcealmentRule = eConceal_Never;
  359. Template.bSkipFireAction = true;
  360.  
  361.  
  362. // Set ability costs, cooldowns, and restrictions
  363. Cooldown = new class'X2AbilityCooldown_WOTC_APA_Class_UnitValue';
  364. Cooldown.UnitName = default.RUN_AND_GUN_COOLDOWN_NAME;
  365. Cooldown.iNumTurns = default.RUN_AND_GUN_BASE_COOLDOWN;
  366. Template.AbilityCooldown = Cooldown;
  367.  
  368. ActionPointCost = new class'X2AbilityCost_ActionPoints';
  369. ActionPointCost.iNumPoints = 1;
  370. ActionPointCost.bFreeCost = true;
  371. Template.AbilityCosts.AddItem(ActionPointCost);
  372.  
  373.  
  374. // Add the additional action point to the target
  375. ActionPointEffect = new class'X2Effect_GrantActionPoints';
  376. ActionPointEffect.NumActionPoints = 1;
  377. ActionPointEffect.PointType = class'X2CharacterTemplateManager'.default.RunAndGunActionPoint;
  378. Template.AddTargetEffect(ActionPointEffect);
  379.  
  380.  
  381. // Add the bonus to Mobility if Deep Reserves is present
  382. MobilityCondition = new class'X2Condition_WOTC_APA_Class_AbilityRequirement';
  383. MobilityCondition.RequiredAbilityNames.AddItem('WOTC_APA_DeepReserves');
  384.  
  385. MobilityEffect = new class'X2Effect_PersistentStatChange';
  386. MobilityEffect.EffectName = 'WOTC_APA_DeepReserves_ConditionalMobility';
  387. MobilityEffect.AddPersistentStatChange(eStat_Mobility, default.DEEP_RESERVES_MOBILITY_BONUS);
  388. MobilityEffect.SetDisplayInfo(ePerkBuff_Bonus, default.strRunAndGunMobilityName, default.strRunAndGunMobilityDesc, default.strRunAndGunMobilityIcon);
  389. MobilityEffect.BuildPersistentEffect(1, false, false, false, eGameRule_PlayerTurnBegin);
  390. MobilityEffect.DuplicateResponse = eDupe_Ignore;
  391. MobilityEffect.TargetConditions.AddItem(MobilityCondition);
  392. Template.AddTargetEffect(MobilityEffect);
  393.  
  394.  
  395. // Add the bonus point of Armor if Battering Ram is present
  396. ArmorCondition = new class'X2Condition_WOTC_APA_Class_AbilityRequirement';
  397. ArmorCondition.RequiredAbilityNames.AddItem('WOTC_APA_BatteringRam');
  398.  
  399. ArmorEffect = new class'X2Effect_PersistentStatChange';
  400. ArmorEffect.EffectName = 'WOTC_APA_BatteringRam_ConditionalArmor';
  401. ArmorEffect.AddPersistentStatChange(eStat_ArmorMitigation, default.BATTERING_RAM_CONDITIONAL_ARMOR_BONUS);
  402. ArmorEffect.SetDisplayInfo(ePerkBuff_Bonus, default.strRunAndGunArmorName, default.strRunAndGunArmorDesc, default.strRunAndGunArmorIcon);
  403. ArmorEffect.BuildPersistentEffect(1, false, false, false, eGameRule_PlayerTurnBegin);
  404. ArmorEffect.DuplicateResponse = eDupe_Ignore;
  405. ArmorEffect.TargetConditions.AddItem(ArmorCondition);
  406. Template.AddTargetEffect(ArmorEffect);
  407.  
  408.  
  409. // Add the bonus damage if Killer Instinct is present
  410. DamageCondition = new class'X2Condition_WOTC_APA_Class_AbilityRequirement';
  411. DamageCondition.RequiredAbilityNames.AddItem('WOTC_APA_KillerInstinct');
  412.  
  413. DamageEffect = new class'X2Effect_WOTC_APA_Class_BonusDamage';
  414. DamageEffect.EffectName = 'WOTC_APA_KillerInstinct_ConditionalDamage';
  415. DamageEffect.BonusDmg = default.KILLER_INSTINCT_DAMAGE_BONUS;
  416. DamageEffect.fBonusCritDmgMultiplier = default.KILLER_INSTINCT_CRITICAL_DAMAGE_MULTIPLIER;
  417. DamageEffect.bApplyToPrimary = true;
  418. DamageEffect.bApplyToSecondary = true;
  419. DamageEffect.SetDisplayInfo(ePerkBuff_Bonus, default.strRunAndGunDamageName, default.strRunAndGunDamageDesc, default.strRunAndGunDamageIcon);
  420. DamageEffect.BuildPersistentEffect(1, false, false, false, eGameRule_PlayerTurnBegin);
  421. DamageEffect.DuplicateResponse = eDupe_Ignore;
  422. DamageEffect.TargetConditions.AddItem(DamageCondition);
  423. Template.AddTargetEffect(DamageEffect);
  424.  
  425.  
  426. // Add the effect making standard shots no longer end the turn if Roving Warrior is present
  427. ShotCondition = new class'X2Condition_WOTC_APA_Class_AbilityRequirement';
  428. ShotCondition.RequiredAbilityNames.AddItem('WOTC_APA_RovingWarrior');
  429.  
  430. ShotEffect = new class'X2Effect_Persistent';
  431. ShotEffect.EffectName = 'WOTC_APA_RunAndGun_NonTurnEndingShots';
  432. ShotEffect.SetDisplayInfo(ePerkBuff_Bonus, default.strRunAndGunActionName, default.strRunAndGunActionDesc, default.strRunAndGunActionIcon);
  433. ShotEffect.BuildPersistentEffect(1, false, false, false, eGameRule_PlayerTurnBegin);
  434. ShotEffect.DuplicateResponse = eDupe_Ignore;
  435. ShotEffect.TargetConditions.AddItem(ShotCondition);
  436. Template.AddTargetEffect(ShotEffect);
  437.  
  438.  
  439. return Template;
  440. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement