diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index e1f3cca885..8ed91cfc13 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2155,6 +2155,7 @@ public class Blocks{ requirements(Category.liquid, with(Items.metaglass, 1)); liquidCapacity = 20f; health = 45; + explosivenessScale = flammabilityScale = 10f/20f; }}; pulseConduit = new Conduit("pulse-conduit"){{ @@ -2162,6 +2163,7 @@ public class Blocks{ liquidCapacity = 40f; liquidPressure = 1.025f; health = 90; + explosivenessScale = flammabilityScale = 16f/40f; }}; platedConduit = new ArmoredConduit("plated-conduit"){{ @@ -2169,6 +2171,7 @@ public class Blocks{ liquidCapacity = 50f; liquidPressure = 1.025f; health = 220; + explosivenessScale = flammabilityScale = 16f/50f; }}; liquidRouter = new LiquidRouter("liquid-router"){{ @@ -2176,6 +2179,8 @@ public class Blocks{ liquidCapacity = 120f; underBullets = true; solid = false; + + explosivenessScale = flammabilityScale = 20f/120f; }}; liquidContainer = new LiquidRouter("liquid-container"){{ @@ -2205,6 +2210,7 @@ public class Blocks{ range = 4; hasPower = false; liquidCapacity = 100f; + explosivenessScale = flammabilityScale = 20f/100f; }}; phaseConduit = new LiquidBridge("phase-conduit"){{ @@ -2215,6 +2221,7 @@ public class Blocks{ hasPower = true; canOverdrive = false; pulse = true; + explosivenessScale = flammabilityScale = 20f/100f; liquidCapacity = 100f; consumePower(0.30f); }}; @@ -2239,6 +2246,7 @@ public class Blocks{ health = 250; researchCostMultiplier = 3; underBullets = true; + explosivenessScale = flammabilityScale = 20f/50f; }}; reinforcedLiquidJunction = new LiquidJunction("reinforced-liquid-junction"){{ @@ -2259,6 +2267,7 @@ public class Blocks{ researchCostMultiplier = 1; underBullets = true; health = 250; + explosivenessScale = flammabilityScale = 20f/120f; ((Conduit)reinforcedConduit).rotBridgeReplacement = this; }}; @@ -2271,6 +2280,8 @@ public class Blocks{ underBullets = true; solid = false; health = 250; + + explosivenessScale = flammabilityScale = 40f/150f; }}; reinforcedLiquidContainer = new LiquidRouter("reinforced-liquid-container"){{ diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index fd6b3adfb0..f1ea021ce7 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1439,7 +1439,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } //cap explosiveness so fluid tanks/vaults don't instakill units - Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, state.rules.damageExplosions, block.destroyEffect, block.baseShake); + Damage.dynamicExplosion(x, y, flammability * block.flammabilityScale, explosiveness * 3.5f * block.explosivenessScale, power, tilesize * block.size / 2f, state.rules.damageExplosions, block.destroyEffect, block.baseShake); if(block.createRubble && !floor().solid && !floor().isLiquid){ Effect.rubble(x, y, block.size); diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 9cd88c001e..fb018495e1 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -664,6 +664,8 @@ public class ContentParser{ Planet parent = locate(ContentType.planet, value.getString("parent", "")); Planet planet = new Planet(mod + "-" + name, parent, value.getFloat("radius", 1f), value.getInt("sectorSize", 0)); + value.remove("sectorSize"); + if(value.has("mesh")){ var mesh = value.get("mesh"); if(!mesh.isObject() && !mesh.isArray()) throw new RuntimeException("Meshes must be objects."); diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index d9104cb55e..b978d4bc7b 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -25,7 +25,6 @@ public class Administration{ public ObjectSet dosBlacklist = new ObjectSet<>(); public ObjectMap kickedIPs = new ObjectMap<>(); - private boolean modified, loaded; /** All player info. Maps UUIDs to info. This persists throughout restarts. Do not modify directly. */ public ObjectMap playerInfo = new ObjectMap<>(); diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 492a996309..f177ac7e32 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -686,7 +686,7 @@ public class ModsDialog extends BaseDialog{ //this is a crude heuristic for class mods; only required for direct github import //TODO make a more reliable way to distinguish java mod repos - if(language.equals("Java") || language.equals("Kotlin")){ + if(language.equals("Java") || language.equals("Kotlin") || language.equals("Groovy") || language.equals("Scala")){ githubImportJavaMod(repo, release); }else{ githubImportBranch(mainBranch, repo, release); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index dd7995623b..74c07b7af5 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -176,6 +176,10 @@ public class Block extends UnlockableContent implements Senseable{ public float armor = 0f; /** base block explosiveness */ public float baseExplosiveness = 0f; + /** scaling of explosiveness based on items/liquids */ + public float explosivenessScale = 1f; + /** scaling of explosion flammability based on items/liquids */ + public float flammabilityScale = 1f; /** base value for screen shake upon destruction */ public float baseShake = 3f; /** bullet that this block spawns when destroyed */