Campaign bugfixes

This commit is contained in:
Anuken
2020-11-26 15:31:19 -05:00
parent 84474040c0
commit d3f58c0e83
8 changed files with 20 additions and 19 deletions

View File

@@ -67,7 +67,7 @@ public class FormationAI extends AIController implements FormationMember{
if(core != null && leader.mineTile.drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(leader.mineTile.drop())){ if(core != null && leader.mineTile.drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(leader.mineTile.drop())){
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){ if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core); Call.transferItemTo(unit, unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
unit.clearItem(); unit.clearItem();
} }

View File

@@ -65,7 +65,7 @@ public class MinerAI extends AIController{
if(unit.within(core, unit.type.range)){ if(unit.within(core, unit.type.range)){
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){ if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core); Call.transferItemTo(unit, unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
} }
unit.clearItem(); unit.clearItem();

View File

@@ -1388,7 +1388,7 @@ public class Blocks implements ContentList{
size = 5; size = 5;
unitCapModifier = 24; unitCapModifier = 24;
researchCostMultiplier = 0.05f; researchCostMultiplier = 0.06f;
}}; }};
vault = new StorageBlock("vault"){{ vault = new StorageBlock("vault"){{

View File

@@ -447,6 +447,11 @@ public class NetServer implements ApplicationListener{
return; return;
} }
if(currentlyKicking[0].target.team() != player.team()){
player.sendMessage("[scarlet]You can't vote for other teams.");
return;
}
if(!arg[0].toLowerCase().equals("y") && !arg[0].toLowerCase().equals("n")){ if(!arg[0].toLowerCase().equals("y") && !arg[0].toLowerCase().equals("n")){
player.sendMessage("[scarlet]Vote either 'y' (yes) or 'n' (no)."); player.sendMessage("[scarlet]Vote either 'y' (yes) or 'n' (no).");
return; return;

View File

@@ -55,7 +55,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
if(core != null && mineTile != null && mineTile.drop() != null && !acceptsItem(mineTile.drop()) && within(core, mineTransferRange) && !offloadImmediately()){ if(core != null && mineTile != null && mineTile.drop() != null && !acceptsItem(mineTile.drop()) && within(core, mineTransferRange) && !offloadImmediately()){
int accepted = core.acceptStack(item(), stack().amount, this); int accepted = core.acceptStack(item(), stack().amount, this);
if(accepted > 0){ if(accepted > 0){
Call.transferItemTo(item(), accepted, Call.transferItemTo(self(), item(), accepted,
mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldx() + Mathf.range(tilesize / 2f),
mineTile.worldy() + Mathf.range(tilesize / 2f), core); mineTile.worldy() + Mathf.range(tilesize / 2f), core);
clearItem(); clearItem();
@@ -77,7 +77,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
mineTimer = 0; mineTimer = 0;
if(core != null && within(core, mineTransferRange) && core.acceptStack(item, 1, this) == 1 && offloadImmediately()){ if(core != null && within(core, mineTransferRange) && core.acceptStack(item, 1, this) == 1 && offloadImmediately()){
Call.transferItemTo(item, 1, Call.transferItemTo(self(), item, 1,
mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldx() + Mathf.range(tilesize / 2f),
mineTile.worldy() + Mathf.range(tilesize / 2f), core); mineTile.worldy() + Mathf.range(tilesize / 2f), core);
}else if(acceptsItem(item)){ }else if(acceptsItem(item)){

View File

@@ -95,15 +95,6 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
createItemTransfer(item, 1, x, y, to, () -> to.addItem(item)); createItemTransfer(item, 1, x, y, to, () -> to.addItem(item));
} }
@Remote(called = Loc.server, unreliable = true)
public static void transferItemTo(Item item, int amount, float x, float y, Building build){
if(build == null || build.items == null) return;
for(int i = 0; i < Mathf.clamp(amount / 5, 1, 8); i++){
Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, build, () -> {}));
}
build.items.add(item, amount);
}
@Remote(called = Loc.server, unreliable = true) @Remote(called = Loc.server, unreliable = true)
public static void transferItemTo(Unit unit, Item item, int amount, float x, float y, Building build){ public static void transferItemTo(Unit unit, Item item, int amount, float x, float y, Building build){
if(build == null || build.items == null) return; if(build == null || build.items == null) return;

View File

@@ -229,12 +229,12 @@ public class CoreBlock extends StorageBlock{
@Override @Override
public boolean acceptItem(Building source, Item item){ public boolean acceptItem(Building source, Item item){
return items.get(item) < getMaximumAccepted(item) || incinerate(); return items.get(item) < getMaximumAccepted(item);
} }
@Override @Override
public int getMaximumAccepted(Item item){ public int getMaximumAccepted(Item item){
return storageCapacity; return incinerate() ? storageCapacity * 2 : storageCapacity;
} }
@Override @Override
@@ -270,10 +270,15 @@ public class CoreBlock extends StorageBlock{
@Override @Override
public void handleStack(Item item, int amount, Teamc source){ public void handleStack(Item item, int amount, Teamc source){
super.handleStack(item, amount, source); int realAmount = Math.min(amount, storageCapacity - items.get(item));
super.handleStack(item, realAmount, source);
if(team == state.rules.defaultTeam && state.isCampaign()){ if(team == state.rules.defaultTeam && state.isCampaign()){
state.rules.sector.info.handleCoreItem(item, amount); state.rules.sector.info.handleCoreItem(item, amount);
if(realAmount == 0){
Fx.coreBurn.at(x, y);
}
} }
} }
@@ -377,7 +382,7 @@ public class CoreBlock extends StorageBlock{
state.rules.sector.info.handleCoreItem(item, 1); state.rules.sector.info.handleCoreItem(item, 1);
} }
if(items.get(item) >= getMaximumAccepted(item)){ if(items.get(item) >= storageCapacity){
//create item incineration effect at random intervals //create item incineration effect at random intervals
if(!noEffect){ if(!noEffect){
incinerateEffect(this, source); incinerateEffect(this, source);

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=7a2a357f6cfdc3725ce581093a0ced91f4474222 archash=