diff --git a/changelog/snippets/balance.7243.md b/changelog/snippets/balance.7243.md new file mode 100644 index 0000000000..a5d21af6c4 --- /dev/null +++ b/changelog/snippets/balance.7243.md @@ -0,0 +1,10 @@ +{% unit UAL0205 %} +T2 Hover Flak and T2 Aeon Hover Shield +{% endunit %} +Adjust the water speeds of Aeon and Seraphim hover flak and the Asylum to match hover tanks, keeping them from falling behind during naval pushes and making ASF stacking over navy slightly more punishing. (#7243) +- Water speed: + - Ascendant: 2.7 -> 3.24 + - Iashavoh: 2.6 -> ~3.24 + - Asylum: 4.0 -> 3.24 + +Additionally, the Athanah and Zthuee scripts now support the `WaterSpeedMultiplier` blueprint field. The Zthuee's previously non-functional `WaterSpeedMultiplier` of `0.9` is removed. diff --git a/units/UAL0205/UAL0205_unit.bp b/units/UAL0205/UAL0205_unit.bp index dc325bb836..9aaa21db30 100644 --- a/units/UAL0205/UAL0205_unit.bp +++ b/units/UAL0205/UAL0205_unit.bp @@ -137,7 +137,7 @@ UnitBlueprint{ TurnFacingRate = 180, TurnRadius = 0, TurnRate = 120, - WaterSpeedMultiplier = 1, + WaterSpeedMultiplier = 1.2, WobbleFactor = 0, WobbleSpeed = 0, }, diff --git a/units/UAL0307/UAL0307_script.lua b/units/UAL0307/UAL0307_script.lua index 5bce9b89b3..a34a67ec63 100644 --- a/units/UAL0307/UAL0307_script.lua +++ b/units/UAL0307/UAL0307_script.lua @@ -6,6 +6,7 @@ local AShieldHoverLandUnit = import("/lua/aeonunits.lua").AShieldHoverLandUnit local DefaultProjectileWeapon = import("/lua/sim/defaultweapons.lua").DefaultProjectileWeapon +local SlowHover = import("/lua/defaultunits.lua").SlowHoverLandUnit local ShieldEffectsComponent = import("/lua/defaultcomponents.lua").ShieldEffectsComponent ---@class UAL0307 : AShieldHoverLandUnit @@ -69,7 +70,12 @@ UAL0307 = ClassUnit(AShieldHoverLandUnit, ShieldEffectsComponent) { end, OnLayerChange = function(self, new, old) - AShieldHoverLandUnit.OnLayerChange(self, new, old) + local physics = (self.Blueprint or self:GetBlueprint()).Physics + if physics.WaterSpeedMultiplier then + SlowHover.OnLayerChange(self, new, old) + else + AShieldHoverLandUnit.OnLayerChange(self, new, old) + end if not IsDestroyed(self.TargetPointer) then if self.PointerEnabled == false then diff --git a/units/UAL0307/UAL0307_unit.bp b/units/UAL0307/UAL0307_unit.bp index 56366380e0..3d80414253 100644 --- a/units/UAL0307/UAL0307_unit.bp +++ b/units/UAL0307/UAL0307_unit.bp @@ -166,6 +166,7 @@ UnitBlueprint{ TurnFacingRate = 120, TurnRadius = 0, TurnRate = 150, + WaterSpeedMultiplier = 0.9, WobbleFactor = 0.015, WobbleSpeed = 0.001, }, diff --git a/units/XSL0103/XSL0103_Script.lua b/units/XSL0103/XSL0103_Script.lua index 22a507a788..ffd0ed0d76 100644 --- a/units/XSL0103/XSL0103_Script.lua +++ b/units/XSL0103/XSL0103_Script.lua @@ -10,12 +10,22 @@ local SHoverLandUnit = import("/lua/seraphimunits.lua").SHoverLandUnit local SIFThunthoCannonWeapon = import("/lua/seraphimweapons.lua").SIFThunthoCannonWeapon +local SlowHover = import("/lua/defaultunits.lua").SlowHoverLandUnit ---@class XSL0103 : SHoverLandUnit -XSL0103 = ClassUnit(SHoverLandUnit) { +XSL0103 = ClassUnit(SHoverLandUnit, SlowHover) { Weapons = { MainGun = ClassWeapon(SIFThunthoCannonWeapon) {} }, + + OnLayerChange = function(self, new, old) + local physics = (self.Blueprint or self:GetBlueprint()).Physics + if physics.WaterSpeedMultiplier then + SlowHover.OnLayerChange(self, new, old) + else + SHoverLandUnit.OnLayerChange(self, new, old) + end + end, } TypeClass = XSL0103 \ No newline at end of file diff --git a/units/XSL0103/XSL0103_unit.bp b/units/XSL0103/XSL0103_unit.bp index 97abe179f8..5b6e3e285b 100644 --- a/units/XSL0103/XSL0103_unit.bp +++ b/units/XSL0103/XSL0103_unit.bp @@ -160,7 +160,6 @@ UnitBlueprint{ TurnFacingRate = 120, TurnRadius = 2, TurnRate = 90, - WaterSpeedMultiplier = 0.9, }, SelectionSizeX = 0.35, SelectionSizeZ = 0.5, diff --git a/units/XSL0205/XSL0205_unit.bp b/units/XSL0205/XSL0205_unit.bp index 3ee6838bd8..fd99de1938 100644 --- a/units/XSL0205/XSL0205_unit.bp +++ b/units/XSL0205/XSL0205_unit.bp @@ -168,7 +168,7 @@ UnitBlueprint{ TurnFacingRate = 180, TurnRadius = 0, TurnRate = 120, - WaterSpeedMultiplier = 1, + WaterSpeedMultiplier = 1.246, WobbleFactor = 0, WobbleSpeed = 0, }, diff --git a/units/XSL0307/XSL0307_script.lua b/units/XSL0307/XSL0307_script.lua index 664228ddbb..3253cb757a 100644 --- a/units/XSL0307/XSL0307_script.lua +++ b/units/XSL0307/XSL0307_script.lua @@ -4,6 +4,7 @@ ----------------------------------------------------------------- local SShieldHoverLandUnit = import("/lua/seraphimunits.lua").SShieldHoverLandUnit local DefaultProjectileWeapon = import("/lua/sim/defaultweapons.lua").DefaultProjectileWeapon --import a default weapon so our pointer doesnt explode +local SlowHover = import("/lua/defaultunits.lua").SlowHoverLandUnit local ShieldEffectsComponent = import("/lua/defaultcomponents.lua").ShieldEffectsComponent ---@class XSL0307 : SShieldHoverLandUnit, ShieldEffectsComponent @@ -70,7 +71,12 @@ XSL0307 = ClassUnit(SShieldHoverLandUnit, ShieldEffectsComponent) { ---@param self XSL0307 OnLayerChange = function(self, new, old) - SShieldHoverLandUnit.OnLayerChange(self, new, old) + local physics = (self.Blueprint or self:GetBlueprint()).Physics + if physics.WaterSpeedMultiplier then + SlowHover.OnLayerChange(self, new, old) + else + SShieldHoverLandUnit.OnLayerChange(self, new, old) + end if not IsDestroyed(self.TargetPointer) then if self.PointerEnabled == false then self.TargetPointer:SetFireTargetLayerCaps('None')