summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2021-08-03 19:06:15 +0200
committerMike Vink <mike1994vink@gmail.com>2021-08-03 19:06:15 +0200
commit4852e6c08a0dd759a60b34b0d03c1f1eedc23805 (patch)
tree918ac17d0d933adb649fe757c0ef8cb922e29e17 /api
parent7c3249f9c13551840fc4c48abaa06fbbf377d481 (diff)
feat(battle): to-trip fightrequest
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/akkamon/api/MessagingEngine.java27
-rw-r--r--api/src/main/java/akkamon/api/models/BattleRequestBody.java5
-rw-r--r--api/src/main/java/akkamon/api/models/Event.java21
-rw-r--r--api/src/main/java/akkamon/api/models/EventType.java7
-rw-r--r--api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java (renamed from api/src/main/java/akkamon/api/models/BattleInitEvent.java)4
-rw-r--r--api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java (renamed from api/src/main/java/akkamon/api/models/HeartBeatEvent.java)4
-rw-r--r--api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java (renamed from api/src/main/java/akkamon/api/models/InteractionStartEvent.java)4
-rw-r--r--api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java (renamed from api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java)4
8 files changed, 60 insertions, 16 deletions
diff --git a/api/src/main/java/akkamon/api/MessagingEngine.java b/api/src/main/java/akkamon/api/MessagingEngine.java
index aa559d0..0ac07fd 100644
--- a/api/src/main/java/akkamon/api/MessagingEngine.java
+++ b/api/src/main/java/akkamon/api/MessagingEngine.java
@@ -3,12 +3,19 @@ package akkamon.api;
import akka.actor.typed.ActorRef;
import akka.actor.typed.ActorSystem;
import akkamon.api.models.*;
+import akkamon.api.models.battle.BattleInitEvent;
+import akkamon.api.models.outgoing.HeartBeatEvent;
+import akkamon.api.models.outgoing.InteractionStartEvent;
+import akkamon.api.models.outgoing.OutgoingInteractionRequest;
import akkamon.domain.AkkamonMessageEngine;
import akkamon.domain.actors.AkkamonBattle;
import akkamon.domain.actors.AkkamonNexus;
import akkamon.domain.AkkamonSession;
-import akkamon.domain.InteractionHandshaker;
+import akkamon.domain.actors.tasks.interactions.InteractionHandshaker;
+import akkamon.domain.model.akkamon.Mon;
+import akkamon.domain.model.battle.requests.JsonToMove;
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import java.util.*;
import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -23,7 +30,9 @@ public class MessagingEngine implements AkkamonMessageEngine {
private Map<AkkamonNexus.TrainerID, AkkamonSession> trainerIDToAkkamonSessions = new HashMap<>();
private Map<String, ActorRef<InteractionHandshaker.Command>> pendingInteractioRequestToHandshaker = new HashMap<>();
- private Gson gson = new Gson();
+ private final Gson gson = new GsonBuilder()
+ .registerTypeAdapter(Mon.Move.class, new JsonToMove())
+ .create();
public MessagingEngine() {
this.nexus = ActorSystem.create(AkkamonNexus.create(this), "akkamon-system");
@@ -198,7 +207,13 @@ public class MessagingEngine implements AkkamonMessageEngine {
}
}
+ @Override
+ public void removeTrainerSessionFromHeartBeat(AkkamonNexus.TrainerID trainerID, AkkamonSession session) {
+ trainerIDToAkkamonSessions.remove(trainerID);
+ }
+
void incoming(AkkamonSession session, String message) {
+ // System.out.println(message);
Event event = gson.fromJson(message, Event.class);
if (event == null) {
System.out.println("Received non-supported message DTO.");
@@ -263,6 +278,14 @@ public class MessagingEngine implements AkkamonMessageEngine {
nexus
));
break;
+ case BATTLE_ACTION_REQUEST:
+ nexus.tell(
+ new AkkamonBattle.RequestAction(
+ event.trainerID,
+ event.body
+ )
+ );
+ break;
case HEART_BEAT:
//System.out.println("My <3 beats!");
break;
diff --git a/api/src/main/java/akkamon/api/models/BattleRequestBody.java b/api/src/main/java/akkamon/api/models/BattleRequestBody.java
deleted file mode 100644
index 2a1a423..0000000
--- a/api/src/main/java/akkamon/api/models/BattleRequestBody.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package akkamon.api.models;
-
-public class BattleRequestBody {
- public
-}
diff --git a/api/src/main/java/akkamon/api/models/Event.java b/api/src/main/java/akkamon/api/models/Event.java
index 7ee3ee1..1c9dcc4 100644
--- a/api/src/main/java/akkamon/api/models/Event.java
+++ b/api/src/main/java/akkamon/api/models/Event.java
@@ -1,8 +1,9 @@
package akkamon.api.models;
+import akkamon.domain.model.battle.requests.BattleRequestBody;
import akkamon.domain.actors.AkkamonNexus;
-import akkamon.domain.Direction;
-import akkamon.domain.TilePos;
+import akkamon.domain.actors.tasks.heartbeat.Direction;
+import akkamon.domain.actors.tasks.heartbeat.TilePos;
public class Event {
public EventType type;
@@ -12,5 +13,19 @@ public class Event {
public Interaction interaction;
public String requestName;
public boolean value;
- public BattleRequestBody battleRequestBody;
+ public BattleRequestBody body;
+
+ @Override
+ public String toString() {
+ return "Event{" +
+ "type=" + type +
+ ", trainerID=" + trainerID +
+ ", direction=" + direction +
+ ", tilePos=" + tilePos +
+ ", interaction=" + interaction +
+ ", requestName='" + requestName + '\'' +
+ ", value=" + value +
+ ", body=" + body +
+ '}';
+ }
}
diff --git a/api/src/main/java/akkamon/api/models/EventType.java b/api/src/main/java/akkamon/api/models/EventType.java
index 497da49..295eb4c 100644
--- a/api/src/main/java/akkamon/api/models/EventType.java
+++ b/api/src/main/java/akkamon/api/models/EventType.java
@@ -30,10 +30,13 @@ public enum EventType {
@SerializedName("InteractionReplyEvent")
INTERACTION_REPLY,
+ @SerializedName("InteractionStarting")
+ INTERACTION_START,
+
@SerializedName("BattleInitEvent")
BATTLE_INIT,
- @SerializedName("InteractionStarting")
- INTERACTION_START
+ @SerializedName("BattleActionRequest")
+ BATTLE_ACTION_REQUEST,
}
diff --git a/api/src/main/java/akkamon/api/models/BattleInitEvent.java b/api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java
index c0f2fbe..2755155 100644
--- a/api/src/main/java/akkamon/api/models/BattleInitEvent.java
+++ b/api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java
@@ -1,5 +1,7 @@
-package akkamon.api.models;
+package akkamon.api.models.battle;
+import akkamon.api.models.Event;
+import akkamon.api.models.EventType;
import akkamon.domain.actors.AkkamonNexus;
import akkamon.domain.model.battle.BattleMessage;
import akkamon.domain.model.battle.state.BattleState;
diff --git a/api/src/main/java/akkamon/api/models/HeartBeatEvent.java b/api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java
index 2ec98ad..24cf357 100644
--- a/api/src/main/java/akkamon/api/models/HeartBeatEvent.java
+++ b/api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java
@@ -1,5 +1,7 @@
-package akkamon.api.models;
+package akkamon.api.models.outgoing;
+import akkamon.api.models.Event;
+import akkamon.api.models.EventType;
import akkamon.domain.actors.AkkamonNexus;
import java.util.Map;
diff --git a/api/src/main/java/akkamon/api/models/InteractionStartEvent.java b/api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java
index ce00437..acb6365 100644
--- a/api/src/main/java/akkamon/api/models/InteractionStartEvent.java
+++ b/api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java
@@ -1,5 +1,7 @@
-package akkamon.api.models;
+package akkamon.api.models.outgoing;
+import akkamon.api.models.Event;
+import akkamon.api.models.EventType;
import com.google.gson.JsonElement;
public class InteractionStartEvent extends Event {
diff --git a/api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java b/api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java
index 9360384..4a9d021 100644
--- a/api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java
+++ b/api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java
@@ -1,5 +1,7 @@
-package akkamon.api.models;
+package akkamon.api.models.outgoing;
+import akkamon.api.models.Event;
+import akkamon.api.models.EventType;
import akkamon.domain.actors.AkkamonNexus;
public class OutgoingInteractionRequest extends Event {