Notice of explosiveness
I feel like my changes are getting a *bit* intrusive.
This commit is contained in:
@@ -996,7 +996,8 @@ stat.buildspeedmultiplier = Build Speed Multiplier
|
|||||||
stat.reactive = Reacts
|
stat.reactive = Reacts
|
||||||
stat.immunities = Immunities
|
stat.immunities = Immunities
|
||||||
stat.healing = Healing
|
stat.healing = Healing
|
||||||
stat.efficiency = [accent]{0}% Efficiency
|
stat.efficiency = [stat]{0}% Efficiency
|
||||||
|
stat.explosive = [negstat]Explosive
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Force Field
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Repair Field
|
||||||
|
|||||||
@@ -73,6 +73,14 @@ public class ConsumeGenerator extends PowerGenerator{
|
|||||||
if(outputLiquid != null){
|
if(outputLiquid != null){
|
||||||
stats.add(Stat.output, StatValues.liquid(outputLiquid.liquid, outputLiquid.amount * 60f, true));
|
stats.add(Stat.output, StatValues.liquid(outputLiquid.liquid, outputLiquid.amount * 60f, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(filterItem != null){
|
||||||
|
ConsumeItemExplode explode = findConsumer(c -> c instanceof ConsumeItemExplode);
|
||||||
|
if(explode != null){
|
||||||
|
stats.remove(Stat.input);
|
||||||
|
stats.add(Stat.input, StatValues.itemEffMultiplier(i -> filterItem.itemEfficiencyMultiplier(i), filterItem.filter, explode.filter));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ConsumeGeneratorBuild extends GeneratorBuild{
|
public class ConsumeGeneratorBuild extends GeneratorBuild{
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
/** For mods. I don't use this (yet). */
|
/** For mods. I don't use this (yet). */
|
||||||
@@ -16,14 +17,13 @@ public class ConsumeItemCharged extends ConsumeItemFilter{
|
|||||||
this(0.2f);
|
this(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float efficiencyMultiplier(Building build){
|
|
||||||
var item = getConsumed(build);
|
|
||||||
return item == null ? 0f : item.charge;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float itemEfficiencyMultiplier(Item item){
|
||||||
|
return item.charge;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
public class ConsumeItemExplosive extends ConsumeItemFilter{
|
public class ConsumeItemExplosive extends ConsumeItemFilter{
|
||||||
@@ -15,14 +16,13 @@ public class ConsumeItemExplosive extends ConsumeItemFilter{
|
|||||||
this(0.2f);
|
this(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float efficiencyMultiplier(Building build){
|
|
||||||
var item = getConsumed(build);
|
|
||||||
return item == null ? 0f : item.explosiveness;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float itemEfficiencyMultiplier(Item item){
|
||||||
|
return item.explosiveness;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,4 +68,14 @@ public class ConsumeItemFilter extends Consume{
|
|||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, stats.timePeriod < 0 ? StatValues.items(filter) : StatValues.items(stats.timePeriod, filter));
|
stats.add(booster ? Stat.booster : Stat.input, stats.timePeriod < 0 ? StatValues.items(filter) : StatValues.items(stats.timePeriod, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float efficiencyMultiplier(Building build){
|
||||||
|
var item = getConsumed(build);
|
||||||
|
return item == null ? 0f : itemEfficiencyMultiplier(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float itemEfficiencyMultiplier(Item item){
|
||||||
|
return 1f;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
public class ConsumeItemFlammable extends ConsumeItemFilter{
|
public class ConsumeItemFlammable extends ConsumeItemFilter{
|
||||||
@@ -15,14 +16,13 @@ public class ConsumeItemFlammable extends ConsumeItemFilter{
|
|||||||
this(0.2f);
|
this(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float efficiencyMultiplier(Building build){
|
|
||||||
var item = getConsumed(build);
|
|
||||||
return item == null ? 0f : item.flammability;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float itemEfficiencyMultiplier(Item item){
|
||||||
|
return item.flammability;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
||||||
@@ -15,14 +16,13 @@ public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
|||||||
this(0.2f);
|
this(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float efficiencyMultiplier(Building build){
|
|
||||||
var item = getConsumed(build);
|
|
||||||
return item == null ? 0f : item.radioactivity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float itemEfficiencyMultiplier(Item item){
|
||||||
|
return item.radioactivity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ public class StatValues{
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter){
|
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter, Boolf<Item> explosive){
|
||||||
return table -> {
|
return table -> {
|
||||||
table.row();
|
table.row();
|
||||||
table.table(c -> {
|
table.table(c -> {
|
||||||
@@ -300,7 +300,14 @@ public class StatValues{
|
|||||||
c.table(Styles.grayPanel, b -> {
|
c.table(Styles.grayPanel, b -> {
|
||||||
b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit);
|
b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit);
|
||||||
b.add(item.localizedName).left().grow();
|
b.add(item.localizedName).left().grow();
|
||||||
b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f);
|
b.table(e -> {
|
||||||
|
e.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().labelAlign(Align.right);
|
||||||
|
if(explosive.get(item)){
|
||||||
|
e.row();
|
||||||
|
e.add(Core.bundle.get("stat.explosive")).right().labelAlign(Align.right);
|
||||||
|
}
|
||||||
|
}).right().pad(10f).padRight(15f);
|
||||||
|
|
||||||
}).growX().pad(5).row();
|
}).growX().pad(5).row();
|
||||||
}
|
}
|
||||||
}).growX().colspan(table.getColumns());
|
}).growX().colspan(table.getColumns());
|
||||||
@@ -308,6 +315,10 @@ public class StatValues{
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter){
|
||||||
|
return itemEffMultiplier(efficiency, filter, i -> false);
|
||||||
|
}
|
||||||
|
|
||||||
public static StatValue liquidEffMultiplier(Floatf<Liquid> efficiency, Boolf<Liquid> filter){
|
public static StatValue liquidEffMultiplier(Floatf<Liquid> efficiency, Boolf<Liquid> filter){
|
||||||
return table -> {
|
return table -> {
|
||||||
table.row();
|
table.row();
|
||||||
|
|||||||
Reference in New Issue
Block a user