feat: implement GameLogic.applyEvent
This commit is contained in:
@ -431,7 +431,33 @@ class GameLogic {
|
||||
* @param event The event to apply
|
||||
*/
|
||||
public static void applyEvent(GameState state, Event event) {
|
||||
//TODO: implement GameLogic.applyEvent
|
||||
switch(event.type) {
|
||||
case DestroyedEntityEvent -> {
|
||||
state.entities.removeEntity(((EntityEvent)event).targetEntity);
|
||||
}
|
||||
case TakenDamageEvent -> {
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).targetEntity)).hp.decreaseValue(((CharacterEvent)event).amount);
|
||||
}
|
||||
case ConsumedAPEvent -> {
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).targetEntity)).ap.decreaseValue(((CharacterEvent)event).amount);
|
||||
}
|
||||
case ConsumedMPEvent -> {
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).targetEntity)).mp.decreaseValue(((CharacterEvent)event).amount);
|
||||
}
|
||||
case SpawnEntityEvent -> {
|
||||
state.entities.addEntity(((EntityEvent)event).entity);
|
||||
}
|
||||
case HealedEvent -> {
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).targetEntity)).hp.increaseValue(((CharacterEvent)event).amount);
|
||||
}
|
||||
case MoveEvent -> {
|
||||
(state.entities.findEntity(((CharacterEvent)event).originEntity)).setPosition(((CharacterEvent)event).targetField);
|
||||
}
|
||||
case ExchangeInfinityStoneEvent -> {
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).originEntity)).inventory.removeStone(((CharacterEvent)event).stoneType);
|
||||
((Character)state.entities.findEntity(((CharacterEvent)event).targetEntity)).inventory.addStone(((CharacterEvent)event).stoneType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user