From 18d7f8de2411ee7c7ce29c5ffba85a5ca461a502 Mon Sep 17 00:00:00 2001 From: alterdekim Date: Thu, 1 Aug 2024 17:38:32 +0300 Subject: [PATCH] Exploring ladder --- .../com/alterdekim/hearthhack/GameDeck.java | 9 + .../hearthhack/component/GameConnection.java | 4051 ++++++++++++++++- .../hearthhack/component/GamePool.java | 6 +- .../hearthhack/component/GameRoom.java | 498 +- .../component/interfaces/IGameRoom.java | 1 - .../processor/GameMasterProcessor.java | 35 +- .../hearthhack/dto/RoomPlayerDTO.java | 11 +- .../alterdekim/hearthhack/game/GameState.java | 5 +- .../hearthhack/service/RoomService.java | 4 +- .../hearthhack/util/FormattedCards.java | 3 +- .../hearthhack/util/PegasusPacket.java | 2 + 11 files changed, 4552 insertions(+), 73 deletions(-) create mode 100644 src/main/java/com/alterdekim/hearthhack/GameDeck.java diff --git a/src/main/java/com/alterdekim/hearthhack/GameDeck.java b/src/main/java/com/alterdekim/hearthhack/GameDeck.java new file mode 100644 index 0000000..214129c --- /dev/null +++ b/src/main/java/com/alterdekim/hearthhack/GameDeck.java @@ -0,0 +1,9 @@ +package com.alterdekim.hearthhack; + +import com.alterdekim.PegasusGame; + +import java.util.List; + +public class GameDeck { + private List deck; +} diff --git a/src/main/java/com/alterdekim/hearthhack/component/GameConnection.java b/src/main/java/com/alterdekim/hearthhack/component/GameConnection.java index 1891765..18fbe7b 100644 --- a/src/main/java/com/alterdekim/hearthhack/component/GameConnection.java +++ b/src/main/java/com/alterdekim/hearthhack/component/GameConnection.java @@ -79,7 +79,2322 @@ public class GameConnection extends Thread { }); gameRoom.getIncomeQueue().add(new IncomeGamePacket(this.playerId, packet)); }); + log.info("sendThings called!!!!!!!"); //sendThings(); + //sendThingsThird(); + } + + // TODO: abolish that thing x2 + private void sendThingsCompressed() throws Exception { + PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder() + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder() + .setGameEntity(PegasusGame.Entity.newBuilder() + .setId(1) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NEXT_STEP.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STATE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TURN.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(10) + .setValue(85) + ) + ) + .addPlayers(PegasusGame.Player.newBuilder() + .setId(2) + .setGameAccountId(PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(78330215) + ) + .setCardBack(0) + .setEntity(PegasusGame.Entity.newBuilder() + .setId(3) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYER_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TEAM_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CURRENT_PLAYER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HERO_ENTITY.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FIRST_PLAYER.getValue()) + .setValue(1) + ) + ) + ) + .addPlayers(PegasusGame.Player.newBuilder() + .setId(1) + .setGameAccountId(PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(77500085) + ) + .setCardBack(0) + .setEntity(PegasusGame.Entity.newBuilder() + .setId(2) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYER_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TEAM_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HERO_ENTITY.getValue()) + .setValue(64) + ) + ) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(34) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(34) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(35) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(35) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(36) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(36) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(37) + .setName("EX1_593") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(37) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(321) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.CORE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.BATTLECRY.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(TagRarity.FREE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(TagFaction.NEUTRAL.ordinal()) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(38) + .setName("EX1_383") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(38) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.HAND.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.DIVINE_SHIELD.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(321) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.EXPERT1.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TAUNT.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(16) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ELITE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(TagClass.PALADIN.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(TagRarity.LEGENDARY.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.DEATHRATTLE.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(TagFaction.NEUTRAL.ordinal()) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(39) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(39) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(40) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(40) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(41) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(41) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(42) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(42) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(43) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(43) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(44) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(44) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(45) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(45) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(46) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(46) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(47) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(47) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(48) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(48) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(49) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(49) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(50) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(50) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(51) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(51) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(52) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(52) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(53) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(53) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(54) + .setName("LOEA16_9") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(54) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.LOE.ordinal()) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(55) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(55) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(56) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(56) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(57) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(57) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(58) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(58) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(59) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(59) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(60) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(60) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(61) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(61) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(62) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(62) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(63) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(63) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(4) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(5) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(6) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(7) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(7) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(8) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(8) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(9) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(9) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(10) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(11) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(11) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(12) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(12) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(13) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(13) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(14) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(14) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(15) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(15) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(16) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(16) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(17) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(17) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(18) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(18) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(19) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(19) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(20) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(20) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(21) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(21) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(22) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(22) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(23) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(23) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(24) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(24) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(25) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(25) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(26) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(26) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(27) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(27) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(28) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(28) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(29) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(29) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(30) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(31) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(31) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(32) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(32) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(33) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(33) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(66) + .setName("LOEA04_01") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.LOE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.SHOWN_HERO_POWER.getValue()) + .setValue(16231) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(67) + .setName("CS1h_001") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CREATOR.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(67) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.CORE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(TagClass.PRIEST.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(TagRarity.FREE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(TagFaction.NEUTRAL.ordinal()) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(64) + .setName("TB_SPT_Boss") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(64) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.TB.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.SHOWN_HERO_POWER.getValue()) + .setValue(39537) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(65) + .setName("CS1h_001") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CREATOR.getValue()) + .setValue(64) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(65) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(TagCardSet.CORE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(TagClass.PRIEST.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(TagRarity.FREE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(TagFaction.NEUTRAL.ordinal()) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(68) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(68) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(10) + .setValue(85) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.CARDTYPE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.TURN.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STATE.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.ZONE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.ENTITY_ID.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STEP.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.HERO_ENTITY.getValue()) + .setValue(64) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.ZONE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.TEAM_ID.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.PLAYER_ID.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.ENTITY_ID.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.FIRST_PLAYER.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.HERO_ENTITY.getValue()) + .setValue(66) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.CURRENT_PLAYER.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.TEAM_ID.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.PLAYER_ID.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.ZONE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.ENTITY_ID.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(-1) + .setSource(1) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(6) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(7) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(6) + .setSource(2) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(7) + .setSource(2) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(2) + .setTag(GameTag.MULLIGAN_STATE.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(6) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STEP.getValue()) + .setValue(6) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(1) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.RESOURCES.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(17) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STEP.getValue()) + .setValue(17) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(8) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(9) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STEP.getValue()) + .setValue(9) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(0) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setShowEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(60) + .setName("GVG_010") + .addTags(PegasusGame.Tag.newBuilder() + .setName(321) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(13) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(1) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(60) + .setTag(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(60) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(4) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(3) + .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.STEP.getValue()) + .setValue(10) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(TRIGGER) + .setIndex(2) + .setSource(3) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(1) + .setTag(GameTag.NEXT_STEP.getValue()) + .setValue(12) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(PLAY) + .setIndex(0) + .setSource(38) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(38) + .setTag(GameTag.EXHAUSTED.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(37) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(2) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(54) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(60) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(3) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder() + .setType(POWER) + .setIndex(-1) + .setSource(0) + .setTarget(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(69) + .setName("CS2_103e2") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(69) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(69) + .setTag(GameTag.ATTACHED.getValue()) + .setValue(38) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(69) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(0) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(69) + .setTag(GameTag.ZONE.getValue()) + .setValue(6) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(38) + .setTag(GameTag.ZONE.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(38) + .setTag(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder() + .setEntity(38) + .setTag(GameTag.EXHAUSTED.getValue()) + .setValue(1) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder() + ) + ) + .build(); + + this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); } // TODO: abolish that thing @@ -1701,7 +4016,7 @@ public class GameConnection extends Thread { ) ) ).build(); - log.info("Packet: {}", powerHistory); + // log.info("Packet: {}", powerHistory); this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); /* PegasusGame.GetGameState state = PegasusGame.GetGameState.parseFrom((byte[]) packet.getBody()); @@ -1990,7 +4305,7 @@ public class GameConnection extends Thread { ) ) .build(); - + // TODO: COPY this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); PegasusGame.EntityChoices entityChoices = PegasusGame.EntityChoices.newBuilder() @@ -2005,7 +4320,7 @@ public class GameConnection extends Thread { .setPlayerId(2) .build(); - this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray())); + // this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray())); entityChoices = PegasusGame.EntityChoices.newBuilder() .setId(1) @@ -2021,7 +4336,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray())); + //this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray())); powerHistory = PegasusGame.PowerHistory.newBuilder() .addList(PegasusGame.PowerHistoryData.newBuilder() @@ -2031,7 +4346,7 @@ public class GameConnection extends Thread { .setValue(1) ) ).build(); - + // TODO: COPY this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray())); PegasusGame.UserUI userUI = PegasusGame.UserUI.newBuilder() @@ -2046,7 +4361,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + // this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2060,7 +4375,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2074,7 +4389,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2088,7 +4403,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2102,7 +4417,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2116,7 +4431,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2130,7 +4445,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); @@ -2181,7 +4496,7 @@ public class GameConnection extends Thread { ) ) .build(); - + // TODO: COPY this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray())); @@ -2240,8 +4555,8 @@ public class GameConnection extends Thread { ) .build(); - - this.send(new PegasusPacket( 19, 0, powerHistory)); + // TODO: COPY + this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray())); powerHistory = PegasusGame.PowerHistory.newBuilder() .addList(PegasusGame.PowerHistoryData.newBuilder() @@ -2422,8 +4737,8 @@ public class GameConnection extends Thread { ) ) .build(); - - this.send(new PegasusPacket(19, 0, powerHistory)); + // TODO: COPY PARTIAL + this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); /////////////// @@ -2465,7 +4780,7 @@ public class GameConnection extends Thread { ) .build(); - this.send(new PegasusPacket( 14, 0, allOptions.toByteArray())); + //this.send(new PegasusPacket( 14, 0, allOptions.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2480,7 +4795,7 @@ public class GameConnection extends Thread { .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); userUI = PegasusGame.UserUI.newBuilder() .setMouseInfo(PegasusGame.MouseInfo.newBuilder() @@ -2494,7 +4809,7 @@ public class GameConnection extends Thread { .setPlayerId(1) .build(); - this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); + //this.send(new PegasusPacket( 15, 0, userUI.toByteArray())); powerHistory = PegasusGame.PowerHistory.newBuilder() @@ -2627,7 +4942,7 @@ public class GameConnection extends Thread { ) ) .build(); - + // TODO: COPY PARTIAL this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); allOptions = PegasusGame.AllOptions.newBuilder() @@ -2658,7 +4973,1699 @@ public class GameConnection extends Thread { ) .build(); - this.send(new PegasusPacket( 14, 0, allOptions.toByteArray())); + //this.send(new PegasusPacket( 14, 0, allOptions.toByteArray())); + } + + private void sendThingsThird() throws Exception { + PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder() + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder() + .setGameEntity(PegasusGame.Entity.newBuilder() + .setId(1) + .addTags(PegasusGame.Tag.newBuilder() + .setName(10) + .setValue(85) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TURN.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STATE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STEP.getValue()) + .setValue(4) // 10 + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NEXT_STEP.getValue()) + .setValue(4) // 12 + ) + ) + .addPlayers(PegasusGame.Player.newBuilder() + .setId(2) + .setGameAccountId(PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(78330215) + ) + .setCardBack(0) + .setEntity(PegasusGame.Entity.newBuilder() + .setId(3) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FIRST_PLAYER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HERO_ENTITY.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CURRENT_PLAYER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TEAM_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYER_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MULLIGAN_STATE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RESOURCES.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(1) + ) + ) + ) + .addPlayers(PegasusGame.Player.newBuilder() + .setId(1) + .setGameAccountId(PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(77500085) + ) + .setCardBack(0) + .setEntity(PegasusGame.Entity.newBuilder() + .setId(2) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HERO_ENTITY.getValue()) + .setValue(64) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYSTATE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TEAM_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYER_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TIMEOUT.getValue()) + .setValue(75) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MULLIGAN_STATE.getValue()) + .setValue(4) + ) + ) + ) + )) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(4) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(5) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(6) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(7) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(7) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(8) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(8) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(9) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(9) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(10) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(11) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(11) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(12) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(12) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(13) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(13) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(14) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(14) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(15) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(15) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(16) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(16) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(17) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(17) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(18) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(18) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(19) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(19) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(20) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(20) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(21) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(21) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(22) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(22) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(23) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(23) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(24) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(24) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(25) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(25) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(26) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(26) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(27) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(27) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(28) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(28) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(29) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(29) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(30) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(31) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(31) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(32) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(32) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(33) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(33) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(34) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(34) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(35) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(35) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(36) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(36) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(37) + .setName("EX1_593") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(37) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(321) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.BATTLECRY.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(38) + .setName("EX1_383") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(38) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.DIVINE_SHIELD.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(321) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TAUNT.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(16) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ELITE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(4) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.DEATHRATTLE.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.EXHAUSTED.getValue()) + .setValue(1) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(39) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(39) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(40) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(40) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(41) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(41) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(42) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(42) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(43) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(43) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(44) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(44) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(45) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(45) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(46) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(46) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(47) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(47) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(48) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(48) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(49) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(49) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(50) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(50) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(51) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(51) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(52) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(52) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(53) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(53) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(54) + .setName("LOEA16_9") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(54) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(20) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(1) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(55) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(55) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(56) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(56) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(57) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(57) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(58) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(58) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(59) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(59) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(60) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(60) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(61) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(61) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(62) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(62) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(63) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(63) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(2) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(64) + .setName("TB_SPT_Boss") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(64) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATK.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(3) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(18) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.SHOWN_HERO_POWER.getValue()) + .setValue(39537) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(65) + .setName("CS1h_001") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CREATOR.getValue()) + .setValue(64) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(65) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(66) + .setName("LOEA04_01") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(20) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.SHOWN_HERO_POWER.getValue()) + .setValue(16231) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HEALTH.getValue()) + .setValue(30) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(67) + .setName("CS1h_001") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CREATOR.getValue()) + .setValue(66) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(67) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(251) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.COST.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RARITY.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FACTION.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(68) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(68) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(5) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(3) + ) + ) + ) + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(69) + .setName("CS2_103e2") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(69) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CLASS.getValue()) + .setValue(10) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(6) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARD_SET.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ATTACHED.getValue()) + .setValue(38) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(0) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(6) + ) + ) + ) + + .build(); + + this.send(new PegasusPacket(19, 0, powerHistory.toByteArray())); } private void pong() throws Exception { diff --git a/src/main/java/com/alterdekim/hearthhack/component/GamePool.java b/src/main/java/com/alterdekim/hearthhack/component/GamePool.java index 8cfd531..bc4d66f 100644 --- a/src/main/java/com/alterdekim/hearthhack/component/GamePool.java +++ b/src/main/java/com/alterdekim/hearthhack/component/GamePool.java @@ -1,5 +1,6 @@ package com.alterdekim.hearthhack.component; +import com.alterdekim.hearthhack.config.ObjectConfig; import com.alterdekim.hearthhack.dto.RoomPlayerDTO; import com.alterdekim.hearthhack.service.RoomService; import com.alterdekim.hearthhack.service.UserService; @@ -23,6 +24,9 @@ public class GamePool { @Autowired private RoomService roomService; + @Autowired + private ObjectConfig config; + private final ConcurrentHashMap games = new ConcurrentHashMap<>(); private static final int PLAYERS_COUNT = 1; // TODO: MAKE 2 PLAYERS FOR PRODUCTION @@ -35,7 +39,7 @@ public class GamePool { log.info("Got room!"); List players = r.getPlayers(); log.info("Put room by id: {}", r.getId()); - games.put(r.getId(), new GameRoom(players, userService, r.getRoomPassword())); + games.put(r.getId(), new GameRoom(players, userService, r.getRoomPassword(), config)); roomService.removeRoom(r.getId()); }); } diff --git a/src/main/java/com/alterdekim/hearthhack/component/GameRoom.java b/src/main/java/com/alterdekim/hearthhack/component/GameRoom.java index aaa9e24..ac28d8b 100644 --- a/src/main/java/com/alterdekim/hearthhack/component/GameRoom.java +++ b/src/main/java/com/alterdekim/hearthhack/component/GameRoom.java @@ -1,26 +1,47 @@ package com.alterdekim.hearthhack.component; +import com.alterdekim.PegasusGame; +import com.alterdekim.PegasusShared; +import com.alterdekim.hearthhack.GameDeck; import com.alterdekim.hearthhack.component.interfaces.GamePacketCallback; import com.alterdekim.hearthhack.component.interfaces.IGameRoom; +import com.alterdekim.hearthhack.config.ObjectConfig; import com.alterdekim.hearthhack.dto.RoomPlayerDTO; -import com.alterdekim.hearthhack.game.GameState; -import com.alterdekim.hearthhack.game.IncomeGamePacket; -import com.alterdekim.hearthhack.game.OutcomeGamePacket; +import com.alterdekim.hearthhack.entity.Deck; +import com.alterdekim.hearthhack.entity.DeckContent; +import com.alterdekim.hearthhack.game.*; import com.alterdekim.hearthhack.service.UserService; +import com.alterdekim.hearthhack.util.PegasusPacket; import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import java.util.ArrayList; import java.util.List; +import java.util.ListIterator; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.stream.Collectors; +import static com.alterdekim.PegasusGame.Option.Type.END_TURN; + + @Slf4j public class GameRoom extends Thread implements IGameRoom { + + private static final List bnets = List.of(PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(78330215).build(), PegasusShared.BnetId.newBuilder() + .setHi(144115198130930503L) + .setLo(77500085).build()); + + private final ObjectConfig objectConfig; + @Getter private final List players; + private final ConcurrentHashMap decks; + private final ConcurrentHashMap callbacks; private final UserService userService; @@ -34,17 +55,26 @@ public class GameRoom extends Thread implements IGameRoom { private ConcurrentLinkedQueue incomeQueue; private ConcurrentLinkedQueue outcomeQueue; - public GameRoom(List players, UserService userService, String password) { + // TODO: abolish that later. It's a temporary solution + private int entity_id = 4; + + public GameRoom(List players, UserService userService, String password, ObjectConfig objectConfig) { this.players = players; this.userService = userService; this.password = password; this.incomeQueue = new ConcurrentLinkedQueue<>(); this.outcomeQueue = new ConcurrentLinkedQueue<>(); + this.decks = new ConcurrentHashMap<>(); this.callbacks = new ConcurrentHashMap<>(); this.globalState = GameState.CreateGame; - this.start(); + this.objectConfig = objectConfig; + log.info("GameRoom players: {}", this.players); + this.start(); // TODO: debug mode should stop that } + private int hero_p1 = 0; + private int hero_p2 = 0; + private void processIncomePackets() { if( this.incomeQueue.isEmpty() ) return; IncomeGamePacket packet = this.incomeQueue.peek(); @@ -54,26 +84,29 @@ public class GameRoom extends Thread implements IGameRoom { } private void processOutcomePackets() { - /* if( this.outcomeQueue.isEmpty() ) return; + if( this.outcomeQueue.isEmpty() ) return; OutcomeGamePacket packet = this.outcomeQueue.peek(); - this.outcomeQueue.poll();*/ + GamePacketCallback callback = this.callbacks.get(packet.getPlayerId()); + if (callback == null) return; + callback.onMessage(packet.getPacket()); + this.outcomeQueue.poll(); } private void processIncomePacket(IncomeGamePacket packet) { - if( packet.getPacket().getType() != 1) return; + log.info("processIncomePacket: {}", packet.getPacket()); + /* if( packet.getPacket().getType() != 1) return; List l = this.outcomeQueue.stream() .filter(p -> p.getPlayerId().longValue() == packet.getPlayerId().longValue()) .collect(Collectors.toList()); GamePacketCallback callback = this.callbacks.get(packet.getPlayerId()); if (callback == null) return; - l.forEach(p -> callback.onMessage(p.getPacket())); + l.forEach(p -> callback.onMessage(p.getPacket()));*/ } private void updateGameState() { // giant switch switch (this.globalState) { case CreateGame -> createGameEntity(); - case CreatePlayers -> createPlayerEntity(); case CreateDecks -> createDeckEntities(); case CreateHeroes -> createPlayerHeroEntity(); case CreateHeroPowers -> createPlayerHeroPowerEntity(); @@ -95,17 +128,323 @@ public class GameRoom extends Thread implements IGameRoom { @Override public void createGameEntity() { + log.info("create Game Entity"); + PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder() + .addList(PegasusGame.PowerHistoryData.newBuilder() + .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder() + .setGameEntity(PegasusGame.Entity.newBuilder() + .setId(1) + .addTags(PegasusGame.Tag.newBuilder() + .setName(10) + .setValue(85) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(TagCardType.GAME.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TURN.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STATE.getValue()) + .setValue(TagState.RUNNING.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.PLAY.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STEP.getValue()) + .setValue(TagStep.BEGIN_MULLIGAN.ordinal()) // 10 + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NEXT_STEP.getValue()) + .setValue(TagStep.BEGIN_MULLIGAN.ordinal()) // 12 + ) + ) + .addAllPlayers(createPlayersEntity()) + ) + ).build(); + this.broadcast(new PegasusPacket(19, 0, powerHistory.toByteArray())); + this.nextGlobalState(); } - @Override - public void createPlayerEntity() { + public List createPlayersEntity() { + log.info("create Players entities"); + List pls = new ArrayList<>(); + for( int i = 2, pi = 0; i < 4; i++, pi++ ) { + final PegasusGame.Entity.Builder entity = PegasusGame.Entity.newBuilder().setId(i == 2 ? 3 : 2); + if( pi < this.players.size() ) players.get(pi).setController(i == 2 ? 2 : 1); + + if( i == 2 ) { + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.FIRST_PLAYER.getValue()) + .setValue(1) + ); + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CURRENT_PLAYER.getValue()) + .setValue(1) + ); + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.RESOURCES.getValue()) + .setValue(1) + ); + } + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.HERO_ENTITY.getValue()) + .setValue(i == 2 ? 66 : 64) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYSTATE.getValue()) + .setValue(TagPlayState.PLAYING.ordinal()) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TEAM_ID.getValue()) + .setValue(i == 2 ? 2 : 1) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.PLAYER_ID.getValue()) + .setValue(i == 2 ? 2 : 1) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXHANDSIZE.getValue()) + .setValue(10) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.STARTHANDSIZE.getValue()) + .setValue(4) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_TURNS_LEFT.getValue()) + .setValue(1) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CARDTYPE.getValue()) + .setValue(TagCardType.PLAYER.ordinal()) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.PLAY.ordinal()) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.TIMEOUT.getValue()) + .setValue(75) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MAXRESOURCES.getValue()) + .setValue(10) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(i == 2 ? 3 : 2) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(i == 2 ? 2 : 1) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.MULLIGAN_STATE.getValue()) + .setValue(TagMulligan.DONE.ordinal()) + ); + + entity.addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue()) + .setValue(i == 2 ? 1 : 4) + ); + + // TODO: make custom cardback selection + pls.add( + PegasusGame.Player.newBuilder() + .setId(i) + .setGameAccountId(bnets.get(i-2)) + .setCardBack(pi < this.players.size() ? userService.getCardBackById(players.get(pi).getUserId()).getBackId() : 0) + .setEntity(entity) + .build() + ); + } + return pls; } @Override public void createDeckEntities() { + log.info("create Deck Entities"); + // sugar for debug with 1 player. Must be erased after debug. + PegasusGame.PowerHistory.Builder pw = PegasusGame.PowerHistory.newBuilder(); + for(int i = 0; i < 26; i++, this.entity_id++) { + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(this.entity_id) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.DECK.ordinal()) + ) + ) + ); + } + + for(int i = 1; i <= 5; i++, this.entity_id++) { + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(this.entity_id) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(i) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.HAND.ordinal()) + ) + ) + ); + } + + List ens = List.of( + card2Entity("TB_SPT_Boss").get(), + card2Entity("CS1h_001").get() + ); + this.hero_p1 = this.entity_id; + for(int i = 0; i < 2; i++, this.entity_id++) { + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(ens.get(i) + .setEntity(this.entity_id) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(1) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.PLAY.ordinal()) + ) + ) + ); + } + + // other player + + List dc = userService.getDeckContentForDeckId(this.players.get(0).getUserId(), this.players.get(0).getDeckId()); + + for(int i = 0; i < 26; i++, this.entity_id++) { + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder() + .setEntity(this.entity_id) + .setName("") + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.DECK.ordinal()) + ) + ) + ); + } + + ens = dc.subList(0, 3).stream() + .map(d -> card2Entity(d.getAssetId()).get()) + .collect(Collectors.toList()); + + for(int i = 1; i <= 3; i++, this.entity_id++) { + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(ens.get(i-1) + .setEntity(this.entity_id) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(i) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.HAND.ordinal()) + ) + ) + ); + } + + // there was a place for hero & hero_power + + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(card2Entity("CS2_103e2").get() + .setEntity(this.entity_id) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.SETASIDE.ordinal()) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE_POSITION.getValue()) + .setValue(0) + ) + ) + ); + + this.entity_id++; + + this.broadcast(new PegasusPacket(19, 0, pw.build().toByteArray())); + + this.nextGlobalState(); } @Override @@ -115,15 +454,146 @@ public class GameRoom extends Thread implements IGameRoom { @Override public void createPlayerHeroEntity() { + log.info("Player hero entity"); + PegasusGame.PowerHistory.Builder pw = PegasusGame.PowerHistory.newBuilder(); + + Optional deck = userService.getDecksForUser(this.players.get(0).getUserId()) + .stream() + .filter(d -> d.getId().longValue() == this.players.get(0).getDeckId().longValue()) + .findFirst(); + + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(card2Entity(deck.get().getHero().longValue()).get() + .setEntity(this.entity_id) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.PLAY.ordinal()) + ) + ) + ); + this.hero_p2 = this.entity_id; + this.entity_id++; + + pw.addList(PegasusGame.PowerHistoryData.newBuilder() + .setFullEntity(getHeroPowerFromHeroId(deck.get().getHero().longValue()).get() + .setEntity(this.entity_id) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ENTITY_ID.getValue()) + .setValue(this.entity_id) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.CONTROLLER.getValue()) + .setValue(2) + ) + .addTags(PegasusGame.Tag.newBuilder() + .setName(GameTag.ZONE.getValue()) + .setValue(TagZone.PLAY.ordinal()) + ) + ) + ); + + this.broadcast(new PegasusPacket(19, 0, pw.build().toByteArray())); + + this.entity_id++; + + PegasusGame.AllOptions allOptions = PegasusGame.AllOptions.newBuilder() + .setId(1) + .addOptions(PegasusGame.Option.newBuilder() + .setType(END_TURN) + ) + .addOptions(PegasusGame.Option.newBuilder() + .setType(PegasusGame.Option.Type.POWER) + .setMainOption(PegasusGame.SubOption.newBuilder() + .setId(this.hero_p2) + .addTargets(this.hero_p1) + ) + ) + .build(); + + this.broadcast(new PegasusPacket( 14, 0, allOptions.toByteArray())); + + this.nextGlobalState(); } @Override public void createPlayerHeroPowerEntity() { - + log.info("hero power entity"); + this.nextGlobalState(); } private Optional findPlayerById(Long id) { return players.stream().filter(p -> p.getUserId().longValue() == id.longValue()).findFirst(); } -} + + private void broadcast(PegasusPacket packet) { + this.players.forEach(p -> this.outcomeQueue.add(new OutcomeGamePacket(p.getUserId(), packet))); + } + + private void nextGlobalState() { + this.globalState = GameState.next(this.globalState); + } + + private Optional card2Entity(String cardId) { + return this.objectConfig.getFormattedCards() + .getObjects() + .stream() + .filter(c -> c.getEntity().getCardId().equals(cardId)) + .map(c -> + PegasusGame.PowerHistoryEntity.newBuilder() + .setName(c.getEntity().getCardId()) + .addAllTags(c.getEntity().getTags().stream() + .filter(t -> !t.getType().equals("String")) + .map(t -> + PegasusGame.Tag.newBuilder() + .setName(t.getEnumID()) + .setValue(t.getValue()) + .build() + ) + .collect(Collectors.toList())) + ) + .findFirst(); + } + + private Optional card2Entity(Long cardId) { + return this.objectConfig.getFormattedCards() + .getObjects() + .stream() + .filter(o -> o.getDbfCard().findField("ID").isPresent() && Long.parseLong(o.getDbfCard().findField("ID").get().getVal()) == cardId) + .map(c -> + PegasusGame.PowerHistoryEntity.newBuilder() + .setName(c.getEntity().getCardId()) + .addAllTags(c.getEntity().getTags().stream() + .filter(t -> !t.getType().equals("String")) + .map(t -> + PegasusGame.Tag.newBuilder() + .setName(t.getEnumID()) + .setValue(t.getValue()) + .build() + ) + .collect(Collectors.toList())) + ) + .findFirst(); + } + + private Optional getHeroPowerFromHeroId(Long cardId) { + return card2Entity(Long.parseLong(this.objectConfig.getFormattedCards() + .getObjects() + .stream() + .filter(o -> o.getDbfCard().findField("ID").isPresent() && Long.parseLong(o.getDbfCard().findField("ID").get().getVal()) == cardId) + .findFirst() + .get() + .getDbfCard() + .findField("HERO_POWER_ID") + .get() + .getVal())); + } +} \ No newline at end of file diff --git a/src/main/java/com/alterdekim/hearthhack/component/interfaces/IGameRoom.java b/src/main/java/com/alterdekim/hearthhack/component/interfaces/IGameRoom.java index 8483ed1..c576c07 100644 --- a/src/main/java/com/alterdekim/hearthhack/component/interfaces/IGameRoom.java +++ b/src/main/java/com/alterdekim/hearthhack/component/interfaces/IGameRoom.java @@ -2,7 +2,6 @@ package com.alterdekim.hearthhack.component.interfaces; public interface IGameRoom { void createGameEntity(); - void createPlayerEntity(); void createDeckEntities(); void createCardEntity(); void createPlayerHeroEntity(); diff --git a/src/main/java/com/alterdekim/hearthhack/component/processor/GameMasterProcessor.java b/src/main/java/com/alterdekim/hearthhack/component/processor/GameMasterProcessor.java index 4837b77..ad9cf4b 100644 --- a/src/main/java/com/alterdekim/hearthhack/component/processor/GameMasterProcessor.java +++ b/src/main/java/com/alterdekim/hearthhack/component/processor/GameMasterProcessor.java @@ -21,7 +21,7 @@ public class GameMasterProcessor extends Processor { // FindGameRequest FindGameResponse game_master // GameType Protocol.FindGameRequest gameRequest = Protocol.FindGameRequest.parseFrom(packet.getBody()); - + log.info("FindGameRequest: {}", gameRequest); Protocol.Attribute a = gameRequest.getProperties().getCreationAttributesList().stream() .filter(p -> p.hasName() && p.getName().equals("type")) .findFirst() @@ -62,29 +62,18 @@ public class GameMasterProcessor extends Processor { conn.send(new BattleNetPacket(header, notification.toByteArray())); - /* byte[] ip = "localhost".getBytes(StandardCharsets.US_ASCII); - log.info("ip: {} lenhex: {}, len: {}", Util.bytesToHex(ip), Util.intToHex(ip.length), ip.length); - byte[] bb = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A08475F524553554C54221E0A0F67616D655F726571756573745F6964120B48B6D2A3C7A4FCA2E1B901220B0A056572726F7212024800222E0A0B67616D655F68616E646C65121F3A1D09F64263F5D33456C7121209EEA60D5703000006118C270B000A62A3AB22B3010A0F636F6E6E656374696F6E5F696E666F129F013A9C010A12094743545702000002116739AB040000000012"+Util.intToHex(ip.length)+Util.bytesToHex(ip)+"188C1D2206456A634465492A130A0776657273696F6E12082A0665694B3271762A0D0A0467616D65120518AA80C4062A0C0A06706C61796572120218012A0B0A026964120518B2B0AA1C2A0F0A09726573756D61626C65120210012A1E0A12737065637461746F725F70617373776F726412082A066F44697049664A0A0895A56710E9E6ACB90552150A050D93710E1A120C0D6739AB0415474354571802"); - - header = Protocol.Header.newBuilder() - .setServiceId(4) - .setMethodId(1) - .setSize(bb.length) - .setToken(conn.nextToken()) - .setObjectId(0) - .setStatus(0) - .build(); - - conn.send(new BattleNetPacket(header, bb)); - - Protocol.Notification n = Protocol.Notification.parseFrom(bb); - Protocol.ConnectInfo ci = Protocol.ConnectInfo.parseFrom( - n.getAttributeList().stream().filter(p -> p.hasName() && p.getName().equals("connection_info")).findFirst().get().getValue().getMessageValue() - ); - log.info("GGGG: {}", ci);*/ String pwd = UUID.randomUUID().toString(); Long roomId = conn.getRoomService().createRoom(new RoomDTO(pwd)); // TODO: make 1 player rooms check. - conn.getRoomService().joinRoom(roomId, conn.getUserId()); // TODO: make 1 player rooms check. + conn.getRoomService().joinRoom(roomId, conn.getUserId(), + gameRequest.getPlayerList().get(0) + .getAttributeList() + .stream() + .filter(p -> p.hasName() && p.getName().equals("deck")) + .findFirst() + .get() + .getValue() + .getIntValue() + ); // TODO: make 1 player rooms check. Thread.sleep(1000L); @@ -128,7 +117,7 @@ public class GameMasterProcessor extends Processor { .setHigh(144115198130930503L) .setLow(78330215L) ) - .setHost("192.168.0.9") + .setHost("192.168.0.10") .setPort(3724) .setToken(ByteString.copyFromUtf8(pwd)) // password .addAttribute(Protocol.Attribute diff --git a/src/main/java/com/alterdekim/hearthhack/dto/RoomPlayerDTO.java b/src/main/java/com/alterdekim/hearthhack/dto/RoomPlayerDTO.java index 4d4dfd1..3859040 100644 --- a/src/main/java/com/alterdekim/hearthhack/dto/RoomPlayerDTO.java +++ b/src/main/java/com/alterdekim/hearthhack/dto/RoomPlayerDTO.java @@ -1,14 +1,13 @@ package com.alterdekim.hearthhack.dto; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; +import lombok.*; -@AllArgsConstructor +@RequiredArgsConstructor @Getter @Setter @ToString public class RoomPlayerDTO { - private Long userId; + private final Long userId; + private final Long deckId; + private Integer controller; } diff --git a/src/main/java/com/alterdekim/hearthhack/game/GameState.java b/src/main/java/com/alterdekim/hearthhack/game/GameState.java index ec0748d..2bb8366 100644 --- a/src/main/java/com/alterdekim/hearthhack/game/GameState.java +++ b/src/main/java/com/alterdekim/hearthhack/game/GameState.java @@ -2,15 +2,14 @@ package com.alterdekim.hearthhack.game; public enum GameState { CreateGame, - CreatePlayers, CreateDecks, CreateHeroes, CreateHeroPowers, Running; - public GameState next() { + public static GameState next(GameState state) { GameState[] states = GameState.values(); - int i = this.ordinal()+1 >= states.length ? 0 : this.ordinal()+1; + int i = state.ordinal()+1 >= states.length ? 0 : state.ordinal()+1; return states[i]; } } diff --git a/src/main/java/com/alterdekim/hearthhack/service/RoomService.java b/src/main/java/com/alterdekim/hearthhack/service/RoomService.java index 271ca5c..abb6a32 100644 --- a/src/main/java/com/alterdekim/hearthhack/service/RoomService.java +++ b/src/main/java/com/alterdekim/hearthhack/service/RoomService.java @@ -51,9 +51,9 @@ public class RoomService implements IService { map = new ConcurrentHashMap<>(); } - public void joinRoom(Long roomId, Long userId) { + public void joinRoom(Long roomId, Long userId, Long deckId) { RoomDTO r = map.get(roomId); - r.getPlayers().add(new RoomPlayerDTO(userId)); + r.getPlayers().add(new RoomPlayerDTO(userId, deckId)); map.put(roomId, r); } } diff --git a/src/main/java/com/alterdekim/hearthhack/util/FormattedCards.java b/src/main/java/com/alterdekim/hearthhack/util/FormattedCards.java index dac102f..181def4 100644 --- a/src/main/java/com/alterdekim/hearthhack/util/FormattedCards.java +++ b/src/main/java/com/alterdekim/hearthhack/util/FormattedCards.java @@ -5,6 +5,7 @@ import com.alterdekim.hearthhack.game.GameTag; import lombok.*; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; @ToString @@ -28,7 +29,7 @@ public class FormattedCards { return this.objects.stream() .filter(o -> o.getEntity().getTags() .stream() - .anyMatch(f -> f.getEnumID().intValue() == tag.getValue().intValue() && val.equals(f.getVal())) + .anyMatch(f -> f.getEnumID().intValue() == tag.getValue().intValue() && val.equals(f.getRawValue())) ) .collect(Collectors.toList()); } diff --git a/src/main/java/com/alterdekim/hearthhack/util/PegasusPacket.java b/src/main/java/com/alterdekim/hearthhack/util/PegasusPacket.java index 74befa5..0e371e8 100644 --- a/src/main/java/com/alterdekim/hearthhack/util/PegasusPacket.java +++ b/src/main/java/com/alterdekim/hearthhack/util/PegasusPacket.java @@ -3,10 +3,12 @@ package com.alterdekim.hearthhack.util; import com.google.protobuf.GeneratedMessageV3; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.ToString; import java.nio.ByteBuffer; import java.nio.ByteOrder; +@ToString @NoArgsConstructor public class PegasusPacket {