diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 6b2343d56f..03dc64dc9e 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1079,6 +1079,7 @@ mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core mode.custom = Custom Rules rules.infiniteresources = Infinite Resources +rules.onlydepositcore = Only Allow Core Depositing rules.reactorexplosions = Reactor Explosions rules.coreincinerates = Core Incinerates Overflow rules.schematic = Schematics Allowed diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 95a7129d2b..64854d11a7 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2054,14 +2054,12 @@ public class Blocks{ liquidRouter = new LiquidRouter("liquid-router"){{ requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 2)); liquidCapacity = 20f; - newDrawing = true; }}; liquidContainer = new LiquidRouter("liquid-container"){{ requirements(Category.liquid, with(Items.titanium, 10, Items.metaglass, 15)); liquidCapacity = 700f; size = 2; - newDrawing = true; }}; liquidTank = new LiquidRouter("liquid-tank"){{ @@ -2069,7 +2067,6 @@ public class Blocks{ size = 3; liquidCapacity = 1800f; health = 500; - newDrawing = true; }}; liquidJunction = new LiquidJunction("liquid-junction"){{ @@ -2144,7 +2141,6 @@ public class Blocks{ reinforcedLiquidRouter = new LiquidRouter("reinforced-liquid-router"){{ requirements(Category.liquid, with(Items.graphite, 8, Items.beryllium, 4)); liquidCapacity = 30f; - newDrawing = true; liquidPadding = 3f/4f; researchCostMultiplier = 3; underBullets = true; @@ -2154,19 +2150,17 @@ public class Blocks{ requirements(Category.liquid, with(Items.tungsten, 10, Items.beryllium, 16)); liquidCapacity = 1000f; size = 2; - newDrawing = true; liquidPadding = 6f/4f; researchCostMultiplier = 4; - underBullets = true; + solid = true; }}; reinforcedLiquidTank = new LiquidRouter("reinforced-liquid-tank"){{ requirements(Category.liquid, with(Items.tungsten, 40, Items.beryllium, 50)); size = 3; + solid = true; liquidCapacity = 2700f; - newDrawing = true; liquidPadding = 2f; - underBullets = true; }}; //endregion @@ -3791,7 +3785,7 @@ public class Blocks{ velocityRnd = 0.17f; shootShake = 1f; ammoPerShot = 3; - maxAmmo = 50; + maxAmmo = 30; consumeAmmoOnce = true; drawer = new DrawTurret("reinforced-"){{ @@ -4261,7 +4255,7 @@ public class Blocks{ size = 5; consumePower(5f); consumeLiquid(Liquids.nitrogen, 10f / 60f); - consumeItems(with(Items.oxide, 110, Items.tungsten, 100)); + consumeItems(with(Items.oxide, 20, Items.tungsten, 100)); constructTime = 60f * 60f; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 749dcf4366..6b475277cc 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -3970,6 +3970,7 @@ public class UnitTypes{ engineSize = 0; payloadCapacity = 2f * 2f * tilesize * tilesize; pickupUnits = false; + vulnerableWithPayloads = true; fogRadius = 0f; targetable = false; @@ -4032,6 +4033,7 @@ public class UnitTypes{ hitSize = 11f; payloadCapacity = 2f * 2f * tilesize * tilesize; pickupUnits = false; + vulnerableWithPayloads = true; fogRadius = 0f; targetable = false; @@ -4109,6 +4111,7 @@ public class UnitTypes{ buildBeamOffset = 8f; payloadCapacity = 2f * 2f * tilesize * tilesize; pickupUnits = false; + vulnerableWithPayloads = true; fogRadius = 0f; targetable = false; diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index 7a622e646b..9a2570bf1f 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -78,7 +78,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ } boolean canPickup(Unit unit){ - return unit.type.pickupUnits && payloadUsed() + unit.hitSize * unit.hitSize <= type.payloadCapacity + 0.001f && unit.team == team() && unit.isAI(); + return type.pickupUnits && payloadUsed() + unit.hitSize * unit.hitSize <= type.payloadCapacity + 0.001f && unit.team == team() && unit.isAI(); } boolean canPickup(Building build){ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 435007824a..cf5ab075ee 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -150,6 +150,7 @@ public class CustomRulesDialog extends BaseDialog{ title("@rules.title.resourcesbuilding"); check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources); + check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore); check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions); check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed); check("@rules.coreincinerates", b -> rules.coreIncinerates = b, () -> rules.coreIncinerates); diff --git a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java index 12a24b4be4..32c83b33e3 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java @@ -5,8 +5,6 @@ import mindustry.gen.*; import mindustry.type.*; public class LiquidRouter extends LiquidBlock{ - /** kept only for mod compatibility reasons; all vanilla blocks have this as true */ - public boolean newDrawing = false; public float liquidPadding = 0f; public LiquidRouter(String name){ @@ -20,7 +18,7 @@ public class LiquidRouter extends LiquidBlock{ @Override public TextureRegion[] icons(){ - return newDrawing ? new TextureRegion[]{bottomRegion, region} : super.icons(); + return new TextureRegion[]{bottomRegion, region}; } public class LiquidRouterBuild extends LiquidBuild{ @@ -33,18 +31,13 @@ public class LiquidRouter extends LiquidBlock{ @Override public void draw(){ - if(newDrawing){ - Draw.rect(bottomRegion, x, y); + Draw.rect(bottomRegion, x, y); - if(liquids.currentAmount() > 0.001f){ - drawTiledFrames(size, x, y, liquidPadding, liquids.current(), liquids.currentAmount() / liquidCapacity); - } - - Draw.rect(region, x, y); - }else{ - super.draw(); + if(liquids.currentAmount() > 0.001f){ + drawTiledFrames(size, x, y, liquidPadding, liquids.current(), liquids.currentAmount() / liquidCapacity); } + Draw.rect(region, x, y); } @Override