@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user