diff --git a/LongWarOfTheChosen/Src/LW_Overhaul/Classes/X2Ability_LW_TechnicalAbilitySet.uc b/LongWarOfTheChosen/Src/LW_Overhaul/Classes/X2Ability_LW_TechnicalAbilitySet.uc index 1a59fbf3e..8ddc6db22 100644 --- a/LongWarOfTheChosen/Src/LW_Overhaul/Classes/X2Ability_LW_TechnicalAbilitySet.uc +++ b/LongWarOfTheChosen/Src/LW_Overhaul/Classes/X2Ability_LW_TechnicalAbilitySet.uc @@ -1430,9 +1430,6 @@ static function X2AbilityTemplate LWRocketLauncherAbility() local X2Effect_ApplyFireToWorld_Limited_Rocket FireToWorldEffect; local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; //local X2Effect_PersistentStatChange DisorientedEffect; `CREATE_X2ABILITY_TEMPLATE(Template, 'LWRocketLauncher'); @@ -1511,33 +1508,7 @@ static function X2AbilityTemplate LWRocketLauncherAbility() UnitPropertyCondition.ExcludeDead = true; Template.AbilityShooterConditions.AddItem(UnitPropertyCondition); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.AddShooterEffectExclusions(); @@ -1580,9 +1551,6 @@ static function X2AbilityTemplate LWBlasterLauncherAbility() local X2Effect_ApplyFireToWorld_Limited_Rocket FireToWorldEffect; local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; //local X2Effect_PersistentStatChange DisorientedEffect; `CREATE_X2ABILITY_TEMPLATE(Template, 'LWBlasterLauncher'); @@ -1649,33 +1617,7 @@ static function X2AbilityTemplate LWBlasterLauncherAbility() StunnedEffect.TargetConditions.AddItem(HasAbilityCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); CursorTarget = new class'X2AbilityTarget_Cursor'; CursorTarget.bRestrictToWeaponRange = true; @@ -1757,9 +1699,6 @@ static function X2AbilityTemplate CreateConcussionRocketAbility() local X2Effect_Stunned StunnedEffect; local X2Condition_UnitEffects SuppressedCondition; local X2Condition_UnitProperty UnitPropertyCondition; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'ConcussionRocket'); @@ -1834,34 +1773,8 @@ static function X2AbilityTemplate CreateConcussionRocketAbility() DisorientedEffect.ApplyChanceFn = ApplyChance_Concussion_Disoriented; } Template.AddMultiTargetEffect(DisorientedEffect); - - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); if (default.ENABLE_CONCUSSION_ROCKET_SMOKE) { @@ -1901,9 +1814,6 @@ static function X2AbilityTemplate CreateBlasterConcussionRocketAbility() local X2Effect_Stunned StunnedEffect; local X2Condition_UnitEffects SuppressedCondition; local X2Condition_UnitProperty UnitPropertyCondition; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'BlasterConcussionRocket'); @@ -1986,33 +1896,7 @@ static function X2AbilityTemplate CreateBlasterConcussionRocketAbility() Template.AddMultiTargetEffect(class'X2Item_DefaultGrenades'.static.SmokeGrenadeEffect()); } - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'RocketLauncher'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; @@ -2088,9 +1972,6 @@ static function X2AbilityTemplate CreateBunkerBusterAbility() local X2Condition_UnitEffects SuppressedCondition; local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'BunkerBuster'); @@ -2154,33 +2035,7 @@ static function X2AbilityTemplate CreateBunkerBusterAbility() StunnedEffect.TargetConditions.AddItem(HasAbilityCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'Explosion'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; @@ -2210,9 +2065,6 @@ static function X2AbilityTemplate CreateShredderRocketAbility() local X2Condition_UnitEffects SuppressedCondition; local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'ShredderRocket_LW'); @@ -2274,33 +2126,7 @@ static function X2AbilityTemplate CreateShredderRocketAbility() StunnedEffect.TargetConditions.AddItem(HasAbilityCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'RocketLauncher'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; @@ -2331,9 +2157,6 @@ static function X2AbilityTemplate CreateBlasterShredderRocketAbility() local X2Condition_UnitEffects SuppressedCondition; local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'BlasterShredderRocket_LW'); @@ -2395,33 +2218,7 @@ static function X2AbilityTemplate CreateBlasterShredderRocketAbility() StunnedEffect.TargetConditions.AddItem(HasAbilityCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'RocketLauncher'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; @@ -2453,9 +2250,6 @@ static function X2AbilityTemplate CreateEMPRocketAbility() local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; local X2Condition_UnitProperty UnitCondition; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'EMPRocket_LW'); @@ -2531,33 +2325,7 @@ static function X2AbilityTemplate CreateEMPRocketAbility() StunnedEffect.TargetConditions.AddItem(UnitCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'RocketLauncher'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; @@ -2589,9 +2357,6 @@ static function X2AbilityTemplate CreateBlasterEMPRocketAbility() local X2Condition_AbilityProperty HasAbilityCondition; local X2Effect_Stunned StunnedEffect; local X2Condition_UnitProperty UnitCondition; - local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; - local X2Condition_AbilityProperty AbilityCondition; - local X2Condition_UnitProperty EnemyCondition; `CREATE_X2ABILITY_TEMPLATE(Template, 'BlasterEMPRocket_LW'); @@ -2667,33 +2432,7 @@ static function X2AbilityTemplate CreateBlasterEMPRocketAbility() StunnedEffect.TargetConditions.AddItem(UnitCondition); Template.AddMultiTargetEffect(StunnedEffect); - EnemyCondition = new class'X2Condition_UnitProperty'; - EnemyCondition.ExcludeFriendlyToSource = true; - EnemyCondition.ExcludeHostileToSource = false; - - ShellShockEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); - ShellShockEffect.AddPersistentStatChange(eStat_Offense, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); - ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); - ShellShockEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectName , class'X2Ability_PerkPackAbilitySet2'.default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); - ShellShockEffect.TargetConditions.AddItem(AbilityCondition); - ShellShockEffect.TargetConditions.AddItem(EnemyCondition); - ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShellShockEffect); - - ShockwaveEffect = new class'X2Effect_PersistentStatChange'; - AbilityCondition = new class'X2Condition_AbilityProperty'; - AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); - ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); - ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); - ShockwaveEffect.BuildPersistentEffect(class'X2Ability_PerkPackAbilitySet2'.default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); - ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectName, class'X2Ability_PerkPackAbilitySet2'.default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); - ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); - ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); - ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; - Template.AddMultiTargetEffect(ShockwaveEffect); + class'X2Ability_PerkPackAbilitySet2'.static.AddShellshockAndShockwaveEffects(Template); Template.ActivationSpeech = 'RocketLauncher'; Template.CinescriptCameraType = "Soldier_HeavyWeapons"; diff --git a/LongWarOfTheChosen/Src/LW_PerkPack_Integrated/Classes/X2Ability_PerkPackAbilitySet2.uc b/LongWarOfTheChosen/Src/LW_PerkPack_Integrated/Classes/X2Ability_PerkPackAbilitySet2.uc index 133908fe3..cf878ed3b 100644 --- a/LongWarOfTheChosen/Src/LW_PerkPack_Integrated/Classes/X2Ability_PerkPackAbilitySet2.uc +++ b/LongWarOfTheChosen/Src/LW_PerkPack_Integrated/Classes/X2Ability_PerkPackAbilitySet2.uc @@ -2677,6 +2677,7 @@ static function AddEffectsToGrenades() ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, default.ShellshockEffectName , default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); ShellShockEffect.TargetConditions.AddItem(AbilityCondition); ShellShockEffect.TargetConditions.AddItem(EnemyCondition); + ShellShockEffect.EffectName = 'Shellshock_LW_Effect'; ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; ShockwaveEffect = new class'X2Effect_PersistentStatChange'; @@ -2688,6 +2689,7 @@ static function AddEffectsToGrenades() ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, default.ShockwaveEffectName, default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); + ShockwaveEffect.EffectName = 'Shockwave_LW_Effect'; ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; @@ -3070,3 +3072,40 @@ static function X2AbilityTemplate SalvoRainmaker() return Template; } + +static function AddShellshockAndShockwaveEffects(out X2AbilityTemplate Template) +{ + local X2Effect_PersistentStatChange ShellShockEffect, ShockwaveEffect; + local X2Condition_AbilityProperty AbilityCondition; + local X2Condition_UnitProperty EnemyCondition; + + EnemyCondition = new class'X2Condition_UnitProperty'; + EnemyCondition.ExcludeFriendlyToSource = true; + EnemyCondition.ExcludeHostileToSource = false; + + ShellShockEffect = new class'X2Effect_PersistentStatChange'; + AbilityCondition = new class'X2Condition_AbilityProperty'; + AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shellshock_LW'); + ShellShockEffect.AddPersistentStatChange(eStat_Offense, -default.SHELLSHOCK_AIM_REDUCTION, modop_Addition); + ShellShockEffect.AddPersistentStatChange(eStat_CritChance, -default.SHELLSHOCK_CRIT_CHANCE_REDUCTION, modop_Addition); + ShellShockEffect.BuildPersistentEffect(default.SHELLSHOCK_TURNS, false, false, false, eGameRule_PlayerTurnEnd); + ShellShockEffect.SetDisplayInfo(ePerkBuff_Penalty, default.ShellshockEffectName , default.ShellshockEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shellshock", true); + ShellShockEffect.TargetConditions.AddItem(AbilityCondition); + ShellShockEffect.TargetConditions.AddItem(EnemyCondition); + ShellShockEffect.EffectName = 'Shellshock_LW_Effect'; + ShellShockEffect.bDisplayInSpecialDamageMessageUI = true; + Template.AddMultiTargetEffect(ShellShockEffect); + + ShockwaveEffect = new class'X2Effect_PersistentStatChange'; + AbilityCondition = new class'X2Condition_AbilityProperty'; + AbilityCondition.OwnerHasSoldierAbilities.AddItem('Shockwave_LW'); + ShockwaveEffect.AddPersistentStatChange(eStat_Defense, -default.SHOCKWAVE_DEF_REDUCTION, modop_Addition); + ShockwaveEffect.AddPersistentStatChange(eStat_Dodge, -default.SHOCKWAVE_DODGE_REDUCTION, modop_Addition); + ShockwaveEffect.BuildPersistentEffect(default.SHOCKWAVE_TURNS, false, false, false, eGameRule_PlayerTurnEnd); + ShockwaveEffect.SetDisplayInfo(ePerkBuff_Penalty, default.ShockwaveEffectName, default.ShockwaveEffectDesc, "img:///UILibrary_LWOTC.UIPerk_shockwave", true); + ShockwaveEffect.TargetConditions.AddItem(AbilityCondition); + ShockwaveEffect.TargetConditions.AddItem(EnemyCondition); + ShockwaveEffect.EffectName = 'Shockwave_LW_Effect'; + ShockwaveEffect.bDisplayInSpecialDamageMessageUI = true; + Template.AddMultiTargetEffect(ShockwaveEffect); +} \ No newline at end of file