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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 lu7wmzcSOx|L22WQ%mvv4FO#mN)LbCt> 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