diff --git a/core/assets/contributors b/core/assets/contributors index 5099ab7e37..55e0341789 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -127,3 +127,4 @@ WilloIzCitron SAMBUYYA genNAowl TranquillyUnpleasant +Darkness6030 diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 40be2defad..276b86bb26 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -196,6 +196,7 @@ public class WaveSpawner{ unit.apply(StatusEffects.invincible, 60f); unit.add(); + Events.fire(new UnitSpawnEvent(unit)); Call.spawnEffect(unit.x, unit.y, unit.rotation, unit.type); } diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 28ae0fb3a0..e1d9e4e857 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -466,7 +466,7 @@ public class Damage{ for(int dy = -trad; dy <= trad; dy++){ Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy); if(tile != null && tile.build != null && (team == null ||team.isEnemy(tile.team())) && dx*dx + dy*dy <= trad){ - tile.build.damage(damage); + tile.build.damage(team, damage); } } } diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index c72ffc403c..66bc472c6f 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -428,6 +428,15 @@ public class EventType{ } } + /** Called when a unit is spawned by wave. */ + public static class UnitSpawnEvent{ + public final Unit unit; + + public UnitSpawnEvent(Unit unit) { + this.unit = unit; + } + } + /** Called when a unit is dumped from any payload block. */ public static class UnitUnloadEvent{ public final Unit unit; diff --git a/core/src/mindustry/world/blocks/payloads/UnitPayload.java b/core/src/mindustry/world/blocks/payloads/UnitPayload.java index a33bb35dcf..99558971da 100644 --- a/core/src/mindustry/world/blocks/payloads/UnitPayload.java +++ b/core/src/mindustry/world/blocks/payloads/UnitPayload.java @@ -94,7 +94,7 @@ public class UnitPayload implements Payload{ if(solid.solid(tx, ty)) return false; } - //cannnot dump when there's a lot of overlap going on + //cannot dump when there's a lot of overlap going on if(!unit.type.flying && Units.count(unit.x, unit.y, unit.physicSize(), o -> o.isGrounded() && (o.type.allowLegStep == unit.type.allowLegStep)) > 0){ return false; } diff --git a/core/src/mindustry/world/draw/DrawRotator.java b/core/src/mindustry/world/draw/DrawRotator.java index 3bbf1accc8..a6f2817748 100644 --- a/core/src/mindustry/world/draw/DrawRotator.java +++ b/core/src/mindustry/world/draw/DrawRotator.java @@ -9,14 +9,15 @@ import mindustry.world.blocks.production.GenericCrafter.*; public class DrawRotator extends DrawBlock{ public TextureRegion rotator, top; public boolean drawSpinSprite = false; + public float spinSpeed = 2f; @Override public void draw(GenericCrafterBuild build){ Draw.rect(build.block.region, build.x, build.y); if(drawSpinSprite){ - Drawf.spinSprite(rotator, build.x, build.y, build.totalProgress * 2f); + Drawf.spinSprite(rotator, build.x, build.y, build.totalProgress * spinSpeed); }else{ - Draw.rect(rotator, build.x, build.y, build.totalProgress * 2f); + Draw.rect(rotator, build.x, build.y, build.totalProgress * spinSpeed); } if(top.found()) Draw.rect(top, build.x, build.y); }