Cubot respawns on death. ElectricBox damages near objects

This commit is contained in:
simon
2018-03-10 15:22:11 -05:00
parent 2565d3338c
commit cbb07891fc
8 changed files with 143 additions and 11 deletions

View File

@@ -92,6 +92,7 @@ public class GameServer implements Runnable {
eventDispatcher.getListeners().add(new UserInfoCommandListener());
eventDispatcher.getListeners().add(new HealObjCommandListener());
eventDispatcher.getListeners().add(new DamageObjCommandListener());
eventDispatcher.getListeners().add(new SetEnergyCommandListener());
}

View File

@@ -0,0 +1,16 @@
package net.simon987.server.game;
public interface Rechargeable {
int getEnergy();
void setEnergy(int energy);
boolean spendEnergy(int spent);
void storeEnergy(int amount);
void setMaxEnergy(int maxEnergy);
int getMaxEnergy();
}

View File

@@ -160,6 +160,8 @@ public class World implements MongoSerialisable {
if (!object.onDeadCallback()) {
removeObject(object);
//LogManager.LOGGER.fine("Removed object " + object + " id: " + object.getObjectId());
} else if (object instanceof Updatable) {
((Updatable) object).update();
}
} else if (object instanceof Updatable) {

View File

@@ -0,0 +1,44 @@
package net.simon987.server.game.debug;
import net.simon987.server.GameServer;
import net.simon987.server.event.DebugCommandEvent;
import net.simon987.server.event.GameEvent;
import net.simon987.server.event.GameEventListener;
import net.simon987.server.game.GameObject;
import net.simon987.server.game.Rechargeable;
public class SetEnergyCommandListener implements GameEventListener {
@Override
public Class getListenedEventType() {
return DebugCommandEvent.class;
}
@Override
public void handle(GameEvent event) {
DebugCommandEvent e = (DebugCommandEvent) event;
if (e.getName().equals("setEnergy")) {
GameObject object = GameServer.INSTANCE.getGameUniverse().getObject(e.getLong("objectId"));
if (object != null) {
if (object instanceof Rechargeable) {
int oldEnergy = ((Rechargeable) object).getEnergy();
((Rechargeable) object).setEnergy(e.getInt("amount"));
e.reply("Success: " + oldEnergy + " -> " + e.getInt("amount"));
} else {
e.reply("Object is not Rechargeable");
}
} else {
e.reply("Object not found: " + e.getLong("objectId"));
}
}
}
}