From 8ea9c094abe644ed36d57b8b49dc1a31a5d35333 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Apr 2022 23:24:28 -0400 Subject: [PATCH] Unit repair tower sprite/effects --- .../blocks/units/unit-repair-tower-glow.png | Bin 0 -> 2035 bytes .../sprites/blocks/units/unit-repair-tower.png | Bin 0 -> 1831 bytes core/src/mindustry/content/Blocks.java | 3 ++- .../world/blocks/units/RepairTower.java | 16 ++++++++++++---- 4 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/units/unit-repair-tower-glow.png create mode 100644 core/assets-raw/sprites/blocks/units/unit-repair-tower.png diff --git a/core/assets-raw/sprites/blocks/units/unit-repair-tower-glow.png b/core/assets-raw/sprites/blocks/units/unit-repair-tower-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..7db58e59443e836c47ad46addeb5ba7b30a83811 GIT binary patch literal 2035 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 literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index e6bdb36334..340aeec41b 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -4311,9 +4311,10 @@ public class Blocks{ size = 2; range = 100f; + healAmount = 2f; consumePower(1f); - consumeLiquid(Liquids.hydrogen, 3f / 60f); + consumeLiquid(Liquids.ozone, 3f / 60f); }}; //endregion diff --git a/core/src/mindustry/world/blocks/units/RepairTower.java b/core/src/mindustry/world/blocks/units/RepairTower.java index e0e2b99939..bf3a58b20b 100644 --- a/core/src/mindustry/world/blocks/units/RepairTower.java +++ b/core/src/mindustry/world/blocks/units/RepairTower.java @@ -5,6 +5,7 @@ import arc.graphics.g2d.*; import arc.math.*; import arc.struct.*; import arc.util.*; +import mindustry.annotations.Annotations.*; import mindustry.entities.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -17,9 +18,10 @@ public class RepairTower extends Block{ static final float refreshInterval = 6f; public float range = 80f; - public Color circleColor = Pal.heal; - public float circleSpeed = 120f, circleStroke = 3f; + public Color circleColor = Pal.heal, glowColor = Pal.heal.cpy().a(0.5f); + public float circleSpeed = 120f, circleStroke = 3f, squareRad = 3f, squareSpinScl = 0.8f, glowMag = 0.5f, glowScl = 8f; public float healAmount = 1f; + public @Load("@-glow") TextureRegion glow; public RepairTower(String name){ super(name); @@ -63,7 +65,7 @@ public class RepairTower extends Block{ } } - warmup = Mathf.lerpDelta(warmup, any ? efficiency : 0f, 0.1f); + warmup = Mathf.lerpDelta(warmup, any ? efficiency : 0f, 0.08f); totalProgress += Time.delta / circleSpeed; } @@ -76,12 +78,18 @@ public class RepairTower extends Block{ public void draw(){ super.draw(); + if(warmup <= 0.001f) return; + Draw.z(Layer.effect); float mod = totalProgress % 1f; Draw.color(circleColor); - Lines.stroke(circleStroke * (1f - mod)); + Lines.stroke(circleStroke * (1f - mod) * warmup); Lines.circle(x, y, range * mod); + Draw.color(Pal.heal); + Fill.square(x, y, squareRad * warmup, Time.time / squareSpinScl); Draw.reset(); + + Drawf.additive(glow, glowColor, warmup * (1f - glowMag + Mathf.absin(Time.time, glowScl, glowMag)), x, y, 0f, Layer.blockAdditive); } @Override