@@ -649,6 +649,8 @@ stat.minetier = Mine Tier
|
|||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Payload Capacity
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Command Limit
|
||||||
stat.abilities = Abilities
|
stat.abilities = Abilities
|
||||||
|
stat.canboost = Can Boost
|
||||||
|
stat.flying = Flying
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Force Field
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Repair Field
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ public class Logic implements ApplicationListener{
|
|||||||
if(!(content instanceof UnlockableContent u)) return;
|
if(!(content instanceof UnlockableContent u)) return;
|
||||||
|
|
||||||
state.rules.researched.add(u.name);
|
state.rules.researched.add(u.name);
|
||||||
ui.hudfrag.showUnlock(u);
|
Events.fire(new UnlockEvent(u));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -53,13 +53,13 @@ public class Predict{
|
|||||||
|
|
||||||
public static Vec2 intercept(Position src, Position dst, float v){
|
public static Vec2 intercept(Position src, Position dst, float v){
|
||||||
float ddx = 0, ddy = 0;
|
float ddx = 0, ddy = 0;
|
||||||
if(dst instanceof Hitboxc){
|
if(dst instanceof Hitboxc h){
|
||||||
ddx += ((Hitboxc)dst).deltaX();
|
ddx += h.deltaX();
|
||||||
ddy += ((Hitboxc)dst).deltaY();
|
ddy += h.deltaY();
|
||||||
}
|
}
|
||||||
if(src instanceof Hitboxc){
|
if(src instanceof Hitboxc h){
|
||||||
ddx -= ((Hitboxc)src).deltaX()/(Time.delta);
|
ddx -= h.deltaX()/(Time.delta);
|
||||||
ddy -= ((Hitboxc)src).deltaY()/(Time.delta);
|
ddy -= h.deltaY()/(Time.delta);
|
||||||
}
|
}
|
||||||
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), ddx, ddy, v);
|
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);
|
to.addItem(item, removed);
|
||||||
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
|
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)
|
@Remote(called = Loc.server, unreliable = true)
|
||||||
public static void transferItemTo(Item item, int amount, float x, float y, Building build){
|
public static void transferItemTo(Item item, int amount, float x, float y, Building build){
|
||||||
if(build == null || build.items == null) return;
|
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, () -> {}));
|
Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, build, () -> {}));
|
||||||
}
|
}
|
||||||
build.items.add(item, amount);
|
build.items.add(item, amount);
|
||||||
@@ -135,13 +135,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
|
|
||||||
//remove item for every controlling unit
|
//remove item for every controlling unit
|
||||||
player.unit().eachGroup(unit -> {
|
player.unit().eachGroup(unit -> {
|
||||||
int removed = Math.min(unit.maxAccepted(item), tile.removeStack(item, amount));
|
Call.takeItems(tile, item, unit.maxAccepted(item), unit);
|
||||||
|
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(unit == player.unit()){
|
if(unit == player.unit()){
|
||||||
Events.fire(new WithdrawEvent(tile, player, item, amount));
|
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);
|
int accepted = tile.acceptStack(item, unit.stack.amount, unit);
|
||||||
unit.stack.amount -= accepted;
|
unit.stack.amount -= accepted;
|
||||||
|
|
||||||
tile.getStackOffset(item, stackTrns);
|
Call.transferItemTo(item, accepted, unit.x, unit.y, tile);
|
||||||
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),
|
|
||||||
() -> {}
|
|
||||||
);
|
|
||||||
|
|
||||||
if(unit == player.unit()){
|
if(unit == player.unit()){
|
||||||
Events.fire(new DepositEvent(tile, player, item, accepted));
|
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){
|
if(inst instanceof Minerc && mineTier >= 1){
|
||||||
stats.addPercent(Stat.mineSpeed, mineSpeed);
|
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));
|
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,
|
heatCapacity,
|
||||||
viscosity,
|
viscosity,
|
||||||
temperature,
|
temperature,
|
||||||
|
flying,
|
||||||
speed,
|
speed,
|
||||||
buildSpeed,
|
buildSpeed,
|
||||||
mineSpeed,
|
mineSpeed,
|
||||||
@@ -28,6 +29,7 @@ public enum Stat{
|
|||||||
lightningChance,
|
lightningChance,
|
||||||
lightningDamage,
|
lightningDamage,
|
||||||
abilities,
|
abilities,
|
||||||
|
canBoost,
|
||||||
|
|
||||||
itemCapacity(StatCat.items),
|
itemCapacity(StatCat.items),
|
||||||
itemsMoved(StatCat.items),
|
itemsMoved(StatCat.items),
|
||||||
|
|||||||
Reference in New Issue
Block a user