Balancing & bugfixes

This commit is contained in:
Anuken 2020-07-21 19:49:46 -04:00
parent 5cfd784501
commit 973d907218
7 changed files with 35 additions and 24 deletions

View File

@ -25,17 +25,16 @@ public class TeamIndexProcess implements AsyncProcess{
} }
public int countType(Team team, UnitType type){ public int countType(Team team, UnitType type){
return typeCounts[team.id].length < type.id ? 0 : typeCounts[team.id][type.id]; return typeCounts[team.id].length <= type.id ? 0 : typeCounts[team.id][type.id];
} }
public void updateCount(Team team, UnitType type, int amount){ public void updateCount(Team team, UnitType type, int amount){
int tid = type.id;
counts[team.id] += amount; counts[team.id] += amount;
if(typeCounts[team.id].length < tid){ if(typeCounts[team.id].length <= type.id){
typeCounts[team.id] = new int[Vars.content.units().size]; typeCounts[team.id] = new int[Vars.content.units().size];
} }
typeCounts[team.id][tid] += amount; typeCounts[team.id][type.id] += amount;
} }
@Override @Override

View File

@ -1004,17 +1004,17 @@ public class Blocks implements ContentList{
rotaryPump = new Pump("rotary-pump"){{ rotaryPump = new Pump("rotary-pump"){{
requirements(Category.liquid, with(Items.copper, 70, Items.metaglass, 50, Items.silicon, 20, Items.titanium, 35)); requirements(Category.liquid, with(Items.copper, 70, Items.metaglass, 50, Items.silicon, 20, Items.titanium, 35));
pumpAmount = 0.8f; pumpAmount = 0.2f;
consumes.power(0.15f); consumes.power(0.3f);
liquidCapacity = 30f; liquidCapacity = 30f;
hasPower = true; hasPower = true;
size = 2; size = 2;
}}; }};
thermalPump = new Pump("thermal-pump"){{ thermalPump = new Pump("thermal-pump"){{
requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 70, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 90, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35));
pumpAmount = 1.5f; pumpAmount = 0.22f;
consumes.power(0.30f); consumes.power(1f);
liquidCapacity = 40f; liquidCapacity = 40f;
hasPower = true; hasPower = true;
size = 3; size = 3;
@ -1228,6 +1228,9 @@ public class Blocks implements ContentList{
rotateSpeed = 6f; rotateSpeed = 6f;
warmupSpeed = 0.01f; warmupSpeed = 0.01f;
//more than the laser drill
liquidBoostIntensity = 1.8f;
consumes.power(3f); consumes.power(3f);
consumes.liquid(Liquids.water, 0.1f).boost(); consumes.liquid(Liquids.water, 0.1f).boost();
}}; }};

View File

@ -977,7 +977,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
l.left(); l.left();
l.image(() -> liquids.current().icon(Cicon.small)).padRight(3f); l.image(() -> liquids.current().icon(Cicon.small)).padRight(3f);
l.label(() -> liquids.getFlowRate() < 0 ? "..." : Strings.fixed(liquids.getFlowRate(), 2) + ps).color(Color.lightGray); l.label(() -> liquids.getFlowRate() < 0 ? "..." : Strings.fixed(liquids.getFlowRate(), 2) + ps).color(Color.lightGray);
}); }).left();
} }
} }

View File

@ -34,6 +34,7 @@ public class PlacementFragment extends Fragment{
ObjectMap<Category,Block> selectedBlocks = new ObjectMap<>(); ObjectMap<Category,Block> selectedBlocks = new ObjectMap<>();
ObjectFloatMap<Category> scrollPositions = new ObjectFloatMap<>(); ObjectFloatMap<Category> scrollPositions = new ObjectFloatMap<>();
Block menuHoverBlock; Block menuHoverBlock;
Displayable hover;
Object lastDisplayState; Object lastDisplayState;
boolean wasHovered; boolean wasHovered;
Table blockTable, toggler, topTable; Table blockTable, toggler, topTable;
@ -262,7 +263,7 @@ public class PlacementFragment extends Fragment{
top.add(new Table()).growX().update(topTable -> { top.add(new Table()).growX().update(topTable -> {
//find current hovered thing //find current hovered thing
Displayable hovered = hovered(); Displayable hovered = hover;
Block displayBlock = menuHoverBlock != null ? menuHoverBlock : control.input.block; Block displayBlock = menuHoverBlock != null ? menuHoverBlock : control.input.block;
Object displayState = displayBlock != null ? displayBlock : hovered; Object displayState = displayBlock != null ? displayBlock : hovered;
boolean isHovered = displayBlock == null; //use hovered thing if displayblock is null boolean isHovered = displayBlock == null; //use hovered thing if displayblock is null
@ -430,7 +431,8 @@ public class PlacementFragment extends Fragment{
} }
boolean hasInfoBox(){ boolean hasInfoBox(){
return control.input.block != null || menuHoverBlock != null || hovered() != null; hover = hovered();
return control.input.block != null || menuHoverBlock != null || hover != null;
} }
/** Returns the thing being hovered over. */ /** Returns the thing being hovered over. */
@ -451,7 +453,7 @@ public class PlacementFragment extends Fragment{
if(hoverTile != null){ if(hoverTile != null){
//if the tile has a building, display it //if the tile has a building, display it
if(hoverTile.build != null){ if(hoverTile.build != null){
hoverTile.build.updateFlow(true); hoverTile.build.updateFlow = true;
return hoverTile.build; return hoverTile.build;
} }

View File

@ -13,8 +13,8 @@ import mindustry.world.meta.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class Pump extends LiquidBlock{ public class Pump extends LiquidBlock{
/** Pump amount, total. */ /** Pump amount per tile. */
protected float pumpAmount = 1f; protected float pumpAmount = 0.2f;
public Pump(String name){ public Pump(String name){
super(name); super(name);
@ -25,7 +25,7 @@ public class Pump extends LiquidBlock{
@Override @Override
public void setStats(){ public void setStats(){
super.setStats(); super.setStats();
stats.add(BlockStat.output, 60f * pumpAmount, StatUnit.liquidSecond); stats.add(BlockStat.output, 60f * pumpAmount * size * size, StatUnit.liquidSecond);
} }
@Override @Override
@ -44,7 +44,7 @@ public class Pump extends LiquidBlock{
} }
if(liquidDrop != null){ if(liquidDrop != null){
float width = drawPlaceText(Core.bundle.formatFloat("bar.pumpspeed", tiles * pumpAmount / size / size * 60f, 0), x, y, valid); float width = drawPlaceText(Core.bundle.formatFloat("bar.pumpspeed", tiles * pumpAmount * 60f, 0), x, y, valid);
float dx = x * tilesize + offset - width/2f - 4f, dy = y * tilesize + offset + size * tilesize / 2f + 5; float dx = x * tilesize + offset - width/2f - 4f, dy = y * tilesize + offset + size * tilesize / 2f + 5;
Draw.mixcol(Color.darkGray, 1f); Draw.mixcol(Color.darkGray, 1f);
Draw.rect(liquidDrop.icon(Cicon.small), dx, dy - 1); Draw.rect(liquidDrop.icon(Cicon.small), dx, dy - 1);
@ -80,6 +80,8 @@ public class Pump extends LiquidBlock{
} }
public class PumpEntity extends LiquidBlockEntity{ public class PumpEntity extends LiquidBlockEntity{
float tiles = 0f;
Liquid liquidDrop = null;
@Override @Override
public void draw(){ public void draw(){
@ -92,9 +94,11 @@ public class Pump extends LiquidBlock{
} }
@Override @Override
public void updateTile(){ public void onProximityUpdate(){
float tiles = 0f; super.onProximityUpdate();
Liquid liquidDrop = null;
tiles = 0f;
liquidDrop = null;
if(isMultiblock()){ if(isMultiblock()){
for(Tile other : tile.getLinkedTiles(tempTiles)){ for(Tile other : tile.getLinkedTiles(tempTiles)){
@ -107,9 +111,12 @@ public class Pump extends LiquidBlock{
tiles = 1f; tiles = 1f;
liquidDrop = tile.floor().liquidDrop; liquidDrop = tile.floor().liquidDrop;
} }
}
if(cons.valid() && liquidDrop != null){ @Override
float maxPump = Math.min(liquidCapacity - liquids.total(), tiles * pumpAmount * delta() / size / size) * efficiency(); public void updateTile(){
if(consValid() && liquidDrop != null){
float maxPump = Math.min(liquidCapacity - liquids.total(), tiles * pumpAmount * edelta());
liquids.add(liquidDrop, maxPump); liquids.add(liquidDrop, maxPump);
} }

View File

@ -39,7 +39,7 @@ public class LiquidModule extends BlockModule{
/** @return current liquid's flow rate in u/s; any value < 0 means 'not ready'. */ /** @return current liquid's flow rate in u/s; any value < 0 means 'not ready'. */
public float getFlowRate(){ public float getFlowRate(){
return currentFlowRate; return currentFlowRate * 60;
} }
public float smoothAmount(){ public float smoothAmount(){

View File

@ -1,3 +1,3 @@
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=1209e8cb8ef99b3cc089758f536b771b49078278 archash=d1a629e5f26a038828d72d15c7c9acc01f84e77c