Auto-despawn core units

This commit is contained in:
Anuken
2020-05-22 09:37:19 -04:00
parent 88608b3f88
commit 46d15e0aab
3 changed files with 23 additions and 0 deletions

View File

@@ -54,6 +54,21 @@ public class Fx{
reset(); reset();
}), }),
unitDespawn = new Effect(100f, e -> {
if(!(e.data instanceof Unitc)) return;
Unitc select = (Unitc)e.data;
float scl = e.fout(Interp.pow2Out);
float p = Draw.scl;
Draw.scl *= scl;
mixcol(Pal.accent, 1f);
rect(select.type().icon(Cicon.full), select.x(), select.y(), select.rotation() - 90f);
reset();
Draw.scl = p;
}),
unitSpirit = new Effect(17f, e -> { unitSpirit = new Effect(17f, e -> {
if(!(e.data instanceof Position)) return; if(!(e.data instanceof Position)) return;
Position to = e.data(); Position to = e.data();

View File

@@ -24,6 +24,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
private transient UnitController controller; private transient UnitController controller;
private UnitType type; private UnitType type;
boolean spawnedByCore;
public void moveAt(Vec2 vector){ public void moveAt(Vec2 vector){
moveAt(vector, type.accel); moveAt(vector, type.accel);
@@ -171,6 +172,12 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
} }
controller.update(); controller.update();
//remove units spawned by the core
if(spawnedByCore && !(controller instanceof Playerc)){
Fx.unitDespawn.at(x, y, 0, this);
remove();
}
} }
@Override @Override

View File

@@ -49,6 +49,7 @@ public class CoreBlock extends StorageBlock{
unit.set(entity); unit.set(entity);
unit.impulse(0f, 8f); unit.impulse(0f, 8f);
unit.controller(player); unit.controller(player);
unit.spawnedByCore(true);
unit.add(); unit.add();
} }