diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 6767647f4b..d0daac7835 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -574,6 +574,7 @@ bannedblocks = Banned Blocks bannedunits = Banned Units addall = Add All launch.from = Launching From: [accent]{0} +launch.capacity = Launching Item Capacity: [accent]{0} launch.destination = Destination: {0} configure.invalid = Amount must be a number between 0 and {0}. add = Add... @@ -832,6 +833,7 @@ bar.heatamount = Heat: {0} bar.heatpercent = Heat: {0} ({1}%) bar.power = Power bar.progress = Build Progress +bar.launchcooldown = Launch Cooldown bar.input = Input bar.output = Output bar.strength = [stat]{0}[lightgray]x strength diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 499a8058d3..cb2c156bb5 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -94,6 +94,8 @@ public class Vars implements Loadable{ public static final float buildingRange = 220f; /** range for moving items */ public static final float itemTransferRange = 220f; + /** multiplier for core item capacity when launching */ + public static final float launchCapacityMultiplier = 0.25f; /** range for moving items for logic units */ public static final float logicItemTransferRange = 45f; /** duration of time between turns in ticks */ diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index c6226ee929..0e44eb9aca 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -90,6 +90,7 @@ public class Planets{ atmosphereRadOut = 0.3f; }}; + //TODO hide beryllium and others on load in rules serpulo = new Planet("serpulo", sun, 1f, 3){{ generator = new SerpuloPlanetGenerator(); meshLoader = () -> new HexMesh(this, 6); diff --git a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java index 98a803e292..7d6ff7e479 100644 --- a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java @@ -6,6 +6,7 @@ import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; +import mindustry.*; import mindustry.content.*; import mindustry.ctype.*; import mindustry.game.*; @@ -26,6 +27,8 @@ public class LaunchLoadoutDialog extends BaseDialog{ Schematic selected; //validity of loadout items boolean valid; + //last calculated capacity + int lastCapacity; public LaunchLoadoutDialog(){ super("@configure"); @@ -44,7 +47,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ //updates sum requirements Runnable update = () -> { - int cap = selected.findCore().itemCapacity; + int cap = lastCapacity = (int)(Vars.launchCapacityMultiplier * selected.findCore().itemCapacity); //cap resources based on core type ItemSeq resources = universe.getLaunchResources(); @@ -91,7 +94,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ ItemSeq realItems = sitems.copy(); selected.requirements().each(realItems::remove); - loadout.show(selected.findCore().itemCapacity, realItems, out, UnlockableContent::unlocked, out::clear, () -> {}, () -> { + loadout.show(lastCapacity, realItems, out, UnlockableContent::unlocked, out::clear, () -> {}, () -> { universe.updateLaunchResources(new ItemSeq(out)); update.run(); rebuildItems.run(); @@ -139,6 +142,8 @@ public class LaunchLoadoutDialog extends BaseDialog{ }).growX().scrollX(false); + cont.row(); + cont.label(() -> Core.bundle.format("launch.capacity", lastCapacity)).row(); cont.row(); cont.pane(items); cont.row(); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 09c5fdf4f1..6ea8158170 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -880,7 +880,7 @@ public class Block extends UnlockableContent{ public ItemStack[] researchRequirements(){ ItemStack[] out = new ItemStack[requirements.length]; for(int i = 0; i < out.length; i++){ - int quantity = 60 + Mathf.round(Mathf.pow(requirements[i].amount, 1.1f) * 20 * researchCostMultiplier, 10); + int quantity = 60 + Mathf.round(Mathf.pow(requirements[i].amount, 1.11f) * 20 * researchCostMultiplier, 10); out[i] = new ItemStack(requirements[i].item, UI.roundAmount(quantity)); } diff --git a/core/src/mindustry/world/blocks/campaign/LaunchPad.java b/core/src/mindustry/world/blocks/campaign/LaunchPad.java index f7abe4dbfa..06c4fdb2d0 100644 --- a/core/src/mindustry/world/blocks/campaign/LaunchPad.java +++ b/core/src/mindustry/world/blocks/campaign/LaunchPad.java @@ -56,6 +56,9 @@ public class LaunchPad extends Block{ super.setBars(); bars.add("items", entity -> new Bar(() -> Core.bundle.format("bar.items", entity.items.total()), () -> Pal.items, () -> (float)entity.items.total() / itemCapacity)); + + //TODO is "bar.launchcooldown" the right terminology? + bars.add("progress", (LaunchPadBuild build) -> new Bar(() -> Core.bundle.get("bar.launchcooldown"), () -> Pal.ammo, () -> Mathf.clamp(build.launchCounter / launchTime))); } @Override @@ -73,8 +76,8 @@ public class LaunchPad extends Block{ @Override public boolean shouldConsume(){ - //TODO do not consume after reload / disable? - return true; + //TODO add launch costs, maybe legacy version + return launchCounter < launchTime && enabled; } @Override