feat: data classes for all events and requests
This commit is contained in:
parent
43cf4c6c1b
commit
3b286b4667
@ -0,0 +1,51 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.IntVector2;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.StoneType;
|
||||
|
||||
/** Represents a character event for: {@link EventType#MeleeAttackEvent}, {@link EventType#RangedAttackEvent}, {@link EventType#MoveEvent}, {@link EventType#ExchangeInfinityStoneEvent}, {@link EventType#UseInfinityStoneEvent}. */
|
||||
public class CharacterEvent extends Event {
|
||||
public EntityID originEntity = null;
|
||||
public EntityID targetEntity = null;
|
||||
public IntVector2 originField = null;
|
||||
public IntVector2 targetField = null;
|
||||
public Integer amount = null;
|
||||
public StoneType stoneType = null;
|
||||
|
||||
@Override
|
||||
public CharacterEvent type(EventType type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setOriginEntity(EntityID originEntity) {
|
||||
this.originEntity = originEntity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setTargetEntity(EntityID targetEntity) {
|
||||
this.targetEntity = targetEntity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setOriginField(IntVector2 originField) {
|
||||
this.originField = originField;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setTargetField(IntVector2 targetField) {
|
||||
this.targetField = targetField;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setAmount(Integer amount) {
|
||||
this.amount = amount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CharacterEvent setStone(StoneType stoneType) {
|
||||
this.stoneType = stoneType;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
/** Represents a custom event ({@link EventType#CustomEvent}). */
|
||||
public class CustomEvent extends Event {
|
||||
public String teamIdentifier;
|
||||
public Object customContent;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.IntVector2;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
|
||||
|
||||
/** Represents an entity event for: {@link EventType#DestroyedEntityEvent}, {@link EventType#TakenDamageEvent}, {@link EventType#ConsumedAPEvent}, {@link EventType#ConsumedMPEvent}, {@link EventType#SpawnEntityEvent}, {@link EventType#HealedEvent}. */
|
||||
public class EntityEvent extends Event {
|
||||
public EntityID targetEntity = null;
|
||||
public IntVector2 targetField = null;
|
||||
public Integer amount = null;
|
||||
|
||||
@Override
|
||||
public EntityEvent type(EventType type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityEvent setTargetEntity(EntityID targetEntity) {
|
||||
this.targetEntity = targetEntity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityEvent setTargetField(IntVector2 targetField) {
|
||||
this.targetField = targetField;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityEvent setAmount(Integer amount) {
|
||||
this.amount = amount;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -2,8 +2,12 @@ package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ingame.MessageStructure;
|
||||
|
||||
/** Represents an abstract event sent inside a {@link MessageStructure} between client and server.
|
||||
*/
|
||||
/** Represents an abstract event sent inside a {@link MessageStructure} between client and server. */
|
||||
public abstract class Event {
|
||||
//TODO: implement Event
|
||||
public EventType type;
|
||||
|
||||
public Event type(EventType type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
/** Specifies the type of an {@link Event}. */
|
||||
public enum EventType {
|
||||
//please make it stop
|
||||
Ack, Nack, Req, GameStateEvent, CustomEvent,
|
||||
DestroyedEntityEvent, TakenDamageEvent, ConsumedAPEvent, ConsumedMPEvent, SpawnEntityEvent, HealedEvent,
|
||||
MeleeAttackEvent, RangedAttackEvent, MoveEvent, UseInfinityStoneEvent, ExchangeInfinityStoneEvent,
|
||||
RoundSetupEvent, TurnEvent, WinEvent, TurnTimeoutEvent, TimeoutWarningEvent, TimeoutEvent, DisconnectEvent
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.IntVector2;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.StoneType;
|
||||
|
||||
/** Represents a game event for: {@link EventType#RoundSetupEvent}, {@link EventType#TurnEvent}, {@link EventType#WinEvent}, {@link EventType#TurnTimeoutEvent}, {@link EventType#TimeoutWarningEvent}, {@link EventType#TimeoutEvent}, {@link EventType#DisconnectEvent}. */
|
||||
public class GameEvent extends Event {
|
||||
public int roundCount;
|
||||
public int turnCount;
|
||||
public EntityID[] characterOrder;
|
||||
public EntityID nextCharacter;
|
||||
|
||||
public int playerWon;
|
||||
|
||||
public String message;
|
||||
public int timeLeft;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.Entity;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
|
||||
|
||||
/** Represents the game state event ({@link EventType#GameStateEvent}). */
|
||||
public class GameStateEvent extends Event {
|
||||
public Entity[][] map;
|
||||
public EntityID[] turnOrder;
|
||||
public EntityID activeCharacter;
|
||||
public boolean winCondition;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.events;
|
||||
|
||||
/** Represents a notification event for: {@link EventType#Ack}, {@link EventType#Nack}, {@link EventType#Req}. */
|
||||
public class NotificationEvent extends Event {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.requests;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.IntVector2;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
|
||||
import uulm.teamname.marvelous.gamelibrary.entities.StoneType;
|
||||
|
||||
/** Represents a character event for: {@link RequestType#MeleeAttackRequest}, {@link RequestType#RangedAttackRequest}, {@link RequestType#MoveRequest}, {@link RequestType#ExchangeInfinityStoneRequest}, {@link RequestType#UseInfinityStoneRequest}. */
|
||||
public class CharacterRequest extends Request {
|
||||
public EntityID originEntity = null;
|
||||
public EntityID targetEntity = null;
|
||||
public IntVector2 originField = null;
|
||||
public IntVector2 targetField = null;
|
||||
public Integer value = null; //why is it called amount in events and value in requests?
|
||||
public StoneType stoneType = null;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.requests;
|
||||
|
||||
/** Represents a game request for: {@link RequestType#DisconnectRequest}. */
|
||||
public class GameRequest extends Request {
|
||||
|
||||
}
|
@ -2,8 +2,7 @@ package uulm.teamname.marvelous.gamelibrary.requests;
|
||||
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ingame.MessageStructure;
|
||||
|
||||
/** Represents an abstract request sent inside a {@link MessageStructure} between client and server.
|
||||
*/
|
||||
/** Represents an abstract request sent inside a {@link MessageStructure} between client and server. */
|
||||
public abstract class Request {
|
||||
//TODO: implement Request
|
||||
public RequestType type;
|
||||
}
|
||||
|
@ -0,0 +1,11 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.requests;
|
||||
|
||||
/** Specifies the type of a {@link Request}. */
|
||||
public enum RequestType {
|
||||
MeleeAttackRequest,
|
||||
RangedAttackRequest,
|
||||
MoveRequest,
|
||||
ExchangeInfinityStoneRequest,
|
||||
UseInfinityStoneRequest,
|
||||
DisconnectRequest
|
||||
}
|
Loading…
Reference in New Issue
Block a user