From 87e79913c50bf832065d6f647531ee39fe68446f Mon Sep 17 00:00:00 2001 From: Zerenta <80897573+Zerenta@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:36:43 -0400 Subject: [PATCH] Aegires Nerf (#8899) * Update EnergyFieldAbility.java Nerfs aegires. hard. 3x less healing (3% to 1%) * Update UnitTypes.java segments better. reload 6 frames to 4 frames damage 25 to 30 * Update EnergyFieldAbility.java Ty balam * Update UnitTypes.java Ty balam! :D * Update UnitTypes.java Thanks balam :D * Add EnergyFieldAbility.sameTypeHealMult * Apply to aegires Repair amount to other units is now 1.5% (50% of pre nerf) Repair amount to aegires is now 0.75% (25% of pre nerf) --------- Co-authored-by: BalaM314 <71201189+BalaM314@users.noreply.github.com> --- core/src/mindustry/content/UnitTypes.java | 6 ++++-- .../mindustry/entities/abilities/EnergyFieldAbility.java | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 328c26630f..ea7d9e53d7 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2153,13 +2153,15 @@ public class UnitTypes{ abilities.add(new EnergyFieldAbility(40f, 65f, 180f){{ statusDuration = 60f * 6f; maxTargets = 25; + healPercent = 1.5f; + sameTypeHealMult = 0.5f; }}); for(float mountY : new float[]{-18f, 14}){ weapons.add(new PointDefenseWeapon("point-defense-mount"){{ x = 12.5f; y = mountY; - reload = 6f; + reload = 4f; targetInterval = 8f; targetSwitchInterval = 8f; @@ -2167,7 +2169,7 @@ public class UnitTypes{ shootEffect = Fx.sparkShoot; hitEffect = Fx.pointHit; maxRange = 180f; - damage = 25f; + damage = 30f; }}; }}); } diff --git a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java index c8b2452fc3..e12a5959d0 100644 --- a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java +++ b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java @@ -29,6 +29,8 @@ public class EnergyFieldAbility extends Ability{ public boolean targetGround = true, targetAir = true, hitBuildings = true, hitUnits = true; public int maxTargets = 25; public float healPercent = 3f; + /** Multiplies healing to units of the same type by this amount. */ + public float sameTypeHealMult = 1f; public float layer = Layer.bullet - 0.001f, blinkScl = 20f, blinkSize = 0.1f; public float effectRadius = 5f, sectorRad = 0.14f, rotateSpeed = 0.5f; @@ -129,7 +131,8 @@ public class EnergyFieldAbility extends Ability{ if(((Teamc)other).team() == unit.team){ if(other.damaged()){ anyNearby = true; - other.heal(healPercent / 100f * other.maxHealth()); + float healMult = (other instanceof Unit u && u.type == unit.type) ? sameTypeHealMult : 1f; + other.heal(healPercent / 100f * other.maxHealth() * healMult); healEffect.at(other); damageEffect.at(rx, ry, 0f, color, other); hitEffect.at(rx, ry, unit.angleTo(other), color);