From baedba0d5b4bf759a0177322d0380c1793aea7b6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 24 Jan 2021 14:20:48 -0500 Subject: [PATCH] Mutual status effect transitions --- core/src/mindustry/content/StatusEffects.java | 10 +++++----- core/src/mindustry/entities/comp/StatusComp.java | 4 ++++ core/src/mindustry/type/StatusEffect.java | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java index b20463a65f..e7c55055c2 100644 --- a/core/src/mindustry/content/StatusEffects.java +++ b/core/src/mindustry/content/StatusEffects.java @@ -21,7 +21,7 @@ public class StatusEffects implements ContentList{ burning = new StatusEffect("burning"){{ color = Pal.lightFlame; - damage = 0.12f; //over 8 seconds, this would be 60 damage + damage = 0.12f; //over 8 seconds, this would be ~60 damage effect = Fx.burning; init(() -> { @@ -29,7 +29,7 @@ public class StatusEffects implements ContentList{ trans(tarred, ((unit, time, newTime, result) -> { unit.damagePierce(8f); Fx.burning.at(unit.x + Mathf.range(unit.bounds() / 2f), unit.y + Mathf.range(unit.bounds() / 2f)); - result.set(this, Math.min(time + newTime, 300f)); + result.set(burning, Math.min(time + newTime, 300f)); })); }); }}; @@ -45,7 +45,7 @@ public class StatusEffects implements ContentList{ trans(blasted, ((unit, time, newTime, result) -> { unit.damagePierce(18f); - result.set(this, time); + result.set(freezing, time); })); }); }}; @@ -72,7 +72,7 @@ public class StatusEffects implements ContentList{ if(unit.team == state.rules.waveTeam){ Events.fire(Trigger.shock); } - result.set(this, time); + result.set(wet, time); })); opposite(burning); }); @@ -97,7 +97,7 @@ public class StatusEffects implements ContentList{ trans(tarred, ((unit, time, newTime, result) -> { unit.damagePierce(8f); Fx.burning.at(unit.x + Mathf.range(unit.bounds() / 2f), unit.y + Mathf.range(unit.bounds() / 2f)); - result.set(this, Math.min(time + newTime, 200f)); + result.set(melting, Math.min(time + newTime, 200f)); })); }); }}; diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java index c4ea7be07a..feda4c73e0 100644 --- a/core/src/mindustry/entities/comp/StatusComp.java +++ b/core/src/mindustry/entities/comp/StatusComp.java @@ -61,6 +61,10 @@ abstract class StatusComp implements Posc, Flyingc{ statuses.add(entry); } + void clearStatuses(){ + statuses.clear(); + } + /** Removes a status effect. */ void unapply(StatusEffect effect){ statuses.remove(e -> { diff --git a/core/src/mindustry/type/StatusEffect.java b/core/src/mindustry/type/StatusEffect.java index a02cb28978..d5b5489e02 100644 --- a/core/src/mindustry/type/StatusEffect.java +++ b/core/src/mindustry/type/StatusEffect.java @@ -63,6 +63,7 @@ public class StatusEffect extends MappableContent{ protected void trans(StatusEffect effect, TransitionHandler handler){ transitions.put(effect, handler); + effect.transitions.put(this, handler); } protected void opposite(StatusEffect... effect){