mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-12-16 16:19:08 +00:00
Time function added
This commit is contained in:
@@ -103,16 +103,6 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
private Map<Integer, HardwareModule> hardwareAddresses = new HashMap<>();
|
||||
private Map<Class<? extends HardwareModule>, Integer> hardwareModules = new HashMap<>();
|
||||
|
||||
/**
|
||||
* In game timer
|
||||
*/
|
||||
private int time;
|
||||
|
||||
/**
|
||||
* Real Life Timer for getting execution time
|
||||
*/
|
||||
private RealLifeTimer timer;
|
||||
|
||||
/**
|
||||
* Cubot's brain box
|
||||
*/
|
||||
@@ -140,10 +130,6 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
shield = document.getInteger("shield");
|
||||
setDirection(Direction.getDirection(document.getInteger("direction")));
|
||||
|
||||
timer = new RealLifeTimer();
|
||||
timer.run();
|
||||
time = timer.getTime();
|
||||
|
||||
IServerConfiguration config = GameServer.INSTANCE.getConfig();
|
||||
maxHp = config.getInt("cubot_max_hp");
|
||||
maxShield = config.getInt("cubot_max_shield");
|
||||
@@ -173,12 +159,6 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
*/
|
||||
@Override
|
||||
public void update() {
|
||||
int executionTime = timer.getTime();
|
||||
if(executionTime > time && currentAction != Action.IDLE){
|
||||
GameEvent event1 = new ExecutionTimeEvent(this, executionTime - time);
|
||||
GameServer.INSTANCE.getEventDispatcher().dispatch(event1);
|
||||
}
|
||||
time = executionTime;
|
||||
|
||||
if (currentAction == Action.WALKING) {
|
||||
if (spendEnergy(100)) {
|
||||
@@ -186,7 +166,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
//Couldn't walk
|
||||
currentAction = Action.IDLE;
|
||||
}else{
|
||||
GameEvent event2 = new WalkDistanceEvent(this);
|
||||
GameEvent event2 = new WalkEvent(this);
|
||||
GameServer.INSTANCE.getEventDispatcher().dispatch(event2);
|
||||
}
|
||||
} else {
|
||||
@@ -289,7 +269,6 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
currentStatus = 0;
|
||||
lastStatus = 0;
|
||||
addStatus(CubotStatus.FACTORY_NEW);
|
||||
time = timer.getTime();
|
||||
|
||||
for (HardwareModule module : hardwareAddresses.values()) {
|
||||
module.reset();
|
||||
@@ -298,7 +277,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Me
|
||||
|
||||
@Override
|
||||
public boolean onDeadCallback() {
|
||||
GameEvent event = new DeathCountEvent(this);
|
||||
GameEvent event = new DeathEvent(this);
|
||||
GameServer.INSTANCE.getEventDispatcher().dispatch(event);
|
||||
|
||||
reset();
|
||||
|
||||
@@ -19,9 +19,8 @@ public class CubotPlugin extends ServerPlugin {
|
||||
listeners.add(new PutItemCommandListener());
|
||||
listeners.add(new PopItemCommandListener());
|
||||
//Leaderboard
|
||||
listeners.add(new DeathCountListener());
|
||||
listeners.add(new ExecutionTimeListener());
|
||||
listeners.add(new WalkDistanceListener());
|
||||
listeners.add(new DeathListener());
|
||||
listeners.add(new WalkListener());
|
||||
|
||||
GameRegistry registry = gameServer.getRegistry();
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
|
||||
public class DeathCountListener implements GameEventListener {
|
||||
|
||||
private int count = 0;
|
||||
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return DeathCountEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
DeathCountEvent DeathCountEvent = (DeathCountEvent) event;
|
||||
GameObject object = DeathCountEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
count = ((ControllableUnit) object).getParent().getStats().getInt("deathCount");
|
||||
count++;
|
||||
LogManager.LOGGER.info(((ControllableUnit) object).getParent().getUsername() + " Death Count " +
|
||||
Integer.toString(count));
|
||||
|
||||
((ControllableUnit) object).getParent().getStats().setInt("deathCount",
|
||||
count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,9 @@ package net.simon987.cubotplugin.event;
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
|
||||
public class DeathCountEvent extends GameEvent {
|
||||
public class DeathEvent extends GameEvent {
|
||||
|
||||
public DeathCountEvent(GameObject object) {
|
||||
public DeathEvent(GameObject object) {
|
||||
setSource(object);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
|
||||
public class DeathListener implements GameEventListener {
|
||||
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return DeathEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
DeathEvent DeathEvent = (DeathEvent) event;
|
||||
GameObject object = DeathEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
((ControllableUnit) object).getParent().getStats().incrementStat("death",
|
||||
1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
|
||||
public class ExecutionTimeEvent extends GameEvent {
|
||||
|
||||
private int Time = 0;
|
||||
|
||||
public ExecutionTimeEvent(GameObject object, int time) {
|
||||
setSource(object);
|
||||
this.Time = time;
|
||||
}
|
||||
|
||||
public int getTime(){
|
||||
return this.Time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameObject getSource() {
|
||||
return (GameObject) super.getSource();
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
|
||||
public class ExecutionTimeListener implements GameEventListener {
|
||||
|
||||
private int count = 0;
|
||||
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return ExecutionTimeEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
ExecutionTimeEvent executionTimeEvent = (ExecutionTimeEvent) event;
|
||||
GameObject object = executionTimeEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
count = ((ControllableUnit) object).getParent().getStats().getInt("executionTime");
|
||||
count += executionTimeEvent.getTime();
|
||||
|
||||
LogManager.LOGGER.info(((ControllableUnit) object).getParent().getUsername() + " Execution Time " +
|
||||
count);
|
||||
|
||||
((ControllableUnit) object).getParent().getStats().setInt("executionTime",
|
||||
count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
public class RealLifeTimer{
|
||||
|
||||
private int time;
|
||||
|
||||
private Timer timer;
|
||||
|
||||
public RealLifeTimer(){
|
||||
timer = new Timer();
|
||||
time = 0;
|
||||
}
|
||||
|
||||
public RealLifeTimer(int startTime){
|
||||
timer = new Timer();
|
||||
time = startTime;
|
||||
}
|
||||
|
||||
public void run(){
|
||||
|
||||
timer.scheduleAtFixedRate(new TimerTask() {
|
||||
public void run(){
|
||||
time++;
|
||||
}
|
||||
},0,1);
|
||||
}
|
||||
|
||||
public void stop(){
|
||||
timer.cancel();
|
||||
timer.purge();
|
||||
}
|
||||
|
||||
public int getTime(){
|
||||
return this.time;
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
import net.simon987.server.user.UserStats;
|
||||
|
||||
public class WalkDistanceListener implements GameEventListener {
|
||||
|
||||
private int count = 0;
|
||||
private int deaths = 0;
|
||||
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return WalkDistanceEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
WalkDistanceEvent WalkDistanceEvent = (WalkDistanceEvent) event;
|
||||
GameObject object = WalkDistanceEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
//When cubot dies walk counter resets
|
||||
if(deaths<((ControllableUnit) object).getParent().getStats().getInt("deathCount")){
|
||||
count = 0;
|
||||
deaths = ((ControllableUnit) object).getParent().getStats().getInt("deathCount");
|
||||
}
|
||||
count++;
|
||||
LogManager.LOGGER.info(((ControllableUnit) object).getParent().getUsername() + " walk distance " +
|
||||
count);
|
||||
//Walk distance is only saved if higher than current hightest distance for user
|
||||
if(count>((ControllableUnit) object).getParent().getStats().getInt("walkDistance"))
|
||||
((ControllableUnit) object).getParent().getStats().setInt("walkDistance",
|
||||
count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,9 @@ package net.simon987.cubotplugin.event;
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
|
||||
public class WalkDistanceEvent extends GameEvent {
|
||||
public class WalkEvent extends GameEvent {
|
||||
|
||||
public WalkDistanceEvent(GameObject object) {
|
||||
public WalkEvent(GameObject object) {
|
||||
setSource(object);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package net.simon987.cubotplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
import net.simon987.server.user.UserStats;
|
||||
|
||||
public class WalkListener implements GameEventListener {
|
||||
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return WalkEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
WalkEvent WalkEvent = (WalkEvent) event;
|
||||
GameObject object = WalkEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
((ControllableUnit) object).getParent().getStats().incrementStat("walkDistance",
|
||||
1);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user