From 6d35c43741f02965f1702c35d7429a1df32ff576 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Mon, 2 Aug 2021 00:11:52 +0200 Subject: feat(battle): UI and Backend Engine setup! --- api/src/main/java/akkamon/api/MessagingEngine.java | 12 ++++++++---- api/src/main/java/akkamon/api/models/BattleInitEvent.java | 7 ++++++- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'api/src') diff --git a/api/src/main/java/akkamon/api/MessagingEngine.java b/api/src/main/java/akkamon/api/MessagingEngine.java index 1c3a2b5..cdb9a27 100644 --- a/api/src/main/java/akkamon/api/MessagingEngine.java +++ b/api/src/main/java/akkamon/api/MessagingEngine.java @@ -4,6 +4,7 @@ import akka.actor.typed.ActorRef; import akka.actor.typed.ActorSystem; import akkamon.api.models.*; import akkamon.domain.AkkamonMessageEngine; +import akkamon.domain.actors.AkkamonBattle; import akkamon.domain.actors.AkkamonNexus; import akkamon.domain.AkkamonSession; import akkamon.domain.InteractionHandshaker; @@ -178,16 +179,19 @@ public class MessagingEngine implements AkkamonMessageEngine { } @Override - public void broadCastBattleStart(Set participants) { + public void broadCastBattleStart(AkkamonBattle.BattleCreatedResponse response) { System.out.println("Sending battle start event!!"); - for (AkkamonNexus.TrainerID trainerID : participants) { + for (AkkamonNexus.TrainerID trainerID : response.participants) { AkkamonSession session = trainerIDToAkkamonSessions.get(trainerID); - Set withoutself = new HashSet<>(participants); + Set withoutself = new HashSet<>(response.participants); withoutself.remove(trainerID); if (session != null) { session.send( gson.toJson( - new BattleInitEvent(new ArrayList<>(withoutself)) + new BattleInitEvent( + new ArrayList<>(withoutself), + response.initState.get(trainerID) + ) ) ); } diff --git a/api/src/main/java/akkamon/api/models/BattleInitEvent.java b/api/src/main/java/akkamon/api/models/BattleInitEvent.java index 71402c2..c0f2fbe 100644 --- a/api/src/main/java/akkamon/api/models/BattleInitEvent.java +++ b/api/src/main/java/akkamon/api/models/BattleInitEvent.java @@ -1,15 +1,20 @@ package akkamon.api.models; import akkamon.domain.actors.AkkamonNexus; +import akkamon.domain.model.battle.BattleMessage; +import akkamon.domain.model.battle.state.BattleState; import java.util.ArrayList; +import java.util.Map; public class BattleInitEvent extends Event { public ArrayList participants; + public BattleMessage message; - public BattleInitEvent(ArrayList participants) { + public BattleInitEvent(ArrayList participants, BattleMessage introductionMessage) { this.type = EventType.BATTLE_INIT; this.participants = participants; + this.message = introductionMessage; } } -- cgit v1.2.3