diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 3a7e413d36..94a1ec5513 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -837,6 +837,8 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.fire = Fire +rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light rules.solarpowermultiplier = Solar Power Multiplier diff --git a/core/src/mindustry/ai/types/SuicideAI.java b/core/src/mindustry/ai/types/SuicideAI.java index ffa276492a..a8626a4758 100644 --- a/core/src/mindustry/ai/types/SuicideAI.java +++ b/core/src/mindustry/ai/types/SuicideAI.java @@ -3,8 +3,10 @@ package mindustry.ai.types; import mindustry.*; import mindustry.ai.*; import mindustry.entities.*; +import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.world.*; +import mindustry.world.meta.*; public class SuicideAI extends GroundAI{ static boolean blockedByBlock; @@ -58,7 +60,13 @@ public class SuicideAI extends GroundAI{ } }else{ - if(core != null){ + if(command() == UnitCommand.rally){ + Teamc target = targetFlag(unit.x, unit.y, BlockFlag.rally, false); + + if(target != null && !unit.within(target, 70f)){ + moveTo(Pathfinder.fieldRally); + } + }else if(command() == UnitCommand.attack && core != null){ moveTo(Pathfinder.fieldCore); } diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index d9232a34d1..2c6bfebe30 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1725,7 +1725,7 @@ public class Blocks implements ContentList{ navalFactory = new UnitFactory("naval-factory"){{ requirements(Category.units, with(Items.copper, 150, Items.lead, 130, Items.metaglass, 120)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.risso, 60f * 30f, with(Items.silicon, 20, Items.metaglass, 25)), + new UnitPlan(UnitTypes.risso, 60f * 45f, with(Items.silicon, 20, Items.metaglass, 35)), }; size = 3; requiresWater = true; diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 71cc8b188f..1b1ab5c272 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -740,8 +740,6 @@ public class Mods implements Loadable{ } public int getMinMinor(){ - int minor = 0; - String ver = meta.minGameVersion == null ? "0" : meta.minGameVersion; if(ver.contains(".")){ @@ -751,7 +749,7 @@ public class Mods implements Loadable{ } } - return 0; + return Strings.parseInt(ver, 0); } @Override diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 25dc6408b6..54be2f89ec 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -163,6 +163,8 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200)); title("@rules.title.environment"); + check("@rules.explosions", b -> rules.damageExplosions = b, () -> rules.damageExplosions); + check("@rules.fire", b -> rules.fire = b, () -> rules.fire); check("@rules.lighting", b -> rules.lighting = b, () -> rules.lighting); main.button(b -> { diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index d0670783c8..609452cc2b 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -73,7 +73,7 @@ public class RepairPoint extends Block{ Draw.rect(region, x, y, rotation - 90); if(target != null && Angles.angleDist(angleTo(target), rotation) < 30f){ - Draw.z(Layer.power); + Draw.z(Layer.flyingUnit + 1); //above all units float ang = angleTo(target); float len = 5f;