public void OnPawnUpdate(NetworkMessage msg) { GameMsg.MsgPawn pawnMsg = msg.ReadMessage <GameMsg.MsgPawn>(); Pawn newPawn = pawnMsg.pawn; Pawn oldPawn = battle.GetPawn(newPawn.GetId()); EventBus.PawnUpdate.Invoke(battle, newPawn); battle.SetPawn(newPawn.GetId(), newPawn); }
public void OpenVendor() { for (int i = 0; i < battle.allies.Length; i++) { GameMsg.MsgPawn openVendorMsg = new GameMsg.MsgPawn() { pawn = battle.allies[i] }; NetworkServer.SendToClient(i, GameMsg.OpenVendor, openVendorMsg); } game.OpenServerHandler(new VendorServerHandler(game, battle.allies)); }
public void OpenChoice(int level) { for (int i = 0; i < battle.allies.Length; i++) { GameMsg.MsgPawn openChoiceMsg = new GameMsg.MsgPawn() { pawn = battle.allies[i] }; NetworkServer.SendToClient(i, GameMsg.OpenChoice, openChoiceMsg); } game.OpenServerHandler(new ChoiceServerHandler(game, battle.allies, level)); }
private void OnPawnDied(Battle b, Pawn pawn) { bool allAlliesDead = battle.AreAllAlliesDead(); if (allAlliesDead) { NetworkServer.SendToAll(GameMsg.EndGame, new StringMessage("You all died.")); return; } if (!battle.enemy.IsAlive()) { for (int i = 0; i < battle.allies.Length; i++) { battle.allies[i].Restore(); } if (Game.enemy % DB.Enemies.Length == DB.Enemies.Length - 1) { int level = Mathf.FloorToInt((Game.enemy + 1) / DB.Enemies.Length); if (level % 2 == 1) { OpenChoice(level); } else { OpenVendor(); } return; } Pawn enemy = game.CreateNextEnemy(); enemy.SetId(battle.allies.Length); //this.battle.enemy.Update(enemy); battle.enemy = enemy; GameMsg.MsgPawn enemyUpdate = new GameMsg.MsgPawn() { pawn = enemy }; NetworkServer.SendToAll(GameMsg.UpdatePawn, enemyUpdate); /* * battle.enemy = game.CreateNextEnemy(); * battle.enemy.SetId(battle.allies.Length); * GameMsg.MsgStartBattle startBattleMsg = new GameMsg.MsgStartBattle() { battle = battle }; * NetworkServer.SendToAll(GameMsg.StartBattle, startBattleMsg); */ return; } }