Campaign bugfixes

This commit is contained in:
Anuken
2020-11-26 15:31:19 -05:00
parent 84474040c0
commit 1d8ec9abd9
7 changed files with 19 additions and 18 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.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();
}

View File

@@ -65,7 +65,7 @@ public class MinerAI extends AIController{
if(unit.within(core, unit.type.range)){
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();

View File

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

View File

@@ -447,6 +447,11 @@ public class NetServer implements ApplicationListener{
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")){
player.sendMessage("[scarlet]Vote either 'y' (yes) or 'n' (no).");
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()){
int accepted = core.acceptStack(item(), stack().amount, this);
if(accepted > 0){
Call.transferItemTo(item(), accepted,
Call.transferItemTo(self(), item(), accepted,
mineTile.worldx() + Mathf.range(tilesize / 2f),
mineTile.worldy() + Mathf.range(tilesize / 2f), core);
clearItem();
@@ -77,7 +77,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
mineTimer = 0;
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.worldy() + Mathf.range(tilesize / 2f), core);
}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));
}
@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)
public static void transferItemTo(Unit unit, Item item, int amount, float x, float y, Building build){
if(build == null || build.items == null) return;

View File

@@ -229,12 +229,12 @@ public class CoreBlock extends StorageBlock{
@Override
public boolean acceptItem(Building source, Item item){
return items.get(item) < getMaximumAccepted(item) || incinerate();
return items.get(item) < getMaximumAccepted(item);
}
@Override
public int getMaximumAccepted(Item item){
return storageCapacity;
return incinerate() ? storageCapacity * 2 : storageCapacity;
}
@Override
@@ -270,10 +270,15 @@ public class CoreBlock extends StorageBlock{
@Override
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()){
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);
}
if(items.get(item) >= getMaximumAccepted(item)){
if(items.get(item) >= storageCapacity){
//create item incineration effect at random intervals
if(!noEffect){
incinerateEffect(this, source);