This commit is contained in:
Anuken
2020-10-27 13:13:54 -04:00
parent 6eab4ebd1c
commit 5582a8bf1b
6 changed files with 21 additions and 26 deletions

View File

@@ -245,7 +245,7 @@ public class Logic implements ApplicationListener{
if(!(content instanceof UnlockableContent u)) return;
state.rules.researched.add(u.name);
ui.hudfrag.showUnlock(u);
Events.fire(new UnlockEvent(u));
}
@Override

View File

@@ -53,13 +53,13 @@ public class Predict{
public static Vec2 intercept(Position src, Position dst, float v){
float ddx = 0, ddy = 0;
if(dst instanceof Hitboxc){
ddx += ((Hitboxc)dst).deltaX();
ddy += ((Hitboxc)dst).deltaY();
if(dst instanceof Hitboxc h){
ddx += h.deltaX();
ddy += h.deltaY();
}
if(src instanceof Hitboxc){
ddx -= ((Hitboxc)src).deltaX()/(Time.delta);
ddy -= ((Hitboxc)src).deltaY()/(Time.delta);
if(src instanceof Hitboxc h){
ddx -= h.deltaX()/(Time.delta);
ddy -= h.deltaY()/(Time.delta);
}
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), ddx, ddy, v);
}

View File

@@ -87,7 +87,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
to.addItem(item, removed);
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
Time.run(j * 3f, () -> Call.transferItemEffect(item, build.x, build.y, to));
Time.run(j * 3f, () -> transferItemEffect(item, build.x, build.y, to));
}
}
@@ -100,7 +100,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@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 / 3, 1, 8); i++){
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);
@@ -135,13 +135,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//remove item for every controlling unit
player.unit().eachGroup(unit -> {
int removed = Math.min(unit.maxAccepted(item), tile.removeStack(item, amount));
unit.addItem(item, removed);
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
Time.run(j * 3f, () -> Call.transferItemEffect(item, tile.x, tile.y, unit));
}
Call.takeItems(tile, item, unit.maxAccepted(item), unit);
if(unit == player.unit()){
Events.fire(new WithdrawEvent(tile, player, item, amount));
@@ -167,16 +161,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
int accepted = tile.acceptStack(item, unit.stack.amount, unit);
unit.stack.amount -= accepted;
tile.getStackOffset(item, stackTrns);
tile.handleStack(item, accepted, unit);
createItemTransfer(
item,
accepted,
unit.x + Angles.trnsx(unit.rotation + 180f, backTrns), unit.y + Angles.trnsy(unit.rotation + 180f, backTrns),
new Vec2(tile.x + stackTrns.x, tile.y + stackTrns.y),
() -> {}
);
Call.transferItemTo(item, accepted, unit.x, unit.y, tile);
if(unit == player.unit()){
Events.fire(new DepositEvent(tile, player, item, accepted));

View File

@@ -214,6 +214,12 @@ public class UnitType extends UnlockableContent{
}
}
stats.add(Stat.flying, flying);
if(!flying){
stats.add(Stat.canBoost, canBoost);
}
if(inst instanceof Minerc && mineTier >= 1){
stats.addPercent(Stat.mineSpeed, mineSpeed);
stats.add(Stat.mineTier, new BlockFilterValue(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= mineTier && !f.playerUnmineable));

View File

@@ -18,6 +18,7 @@ public enum Stat{
heatCapacity,
viscosity,
temperature,
flying,
speed,
buildSpeed,
mineSpeed,
@@ -28,6 +29,7 @@ public enum Stat{
lightningChance,
lightningDamage,
abilities,
canBoost,
itemCapacity(StatCat.items),
itemsMoved(StatCat.items),