Core launch capacity tweaks

This commit is contained in:
Anuken
2022-01-28 14:00:03 -05:00
parent 27bb848832
commit ac68edda40
6 changed files with 18 additions and 5 deletions

View File

@@ -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 */

View File

@@ -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);

View File

@@ -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();

View File

@@ -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));
}

View File

@@ -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