Example #1
0
        private void SendToAllAboutNewPlayer(ConnectToBattleRequestMsg message,
                                             GameBattlePlayerInfo player)
        {
            var newUnitMessage = new TankRespawnMsg();

            newUnitMessage.Oponent  = player;
            newUnitMessage.ClientId = player.UnitId;
            Server.SendToAllExept(newUnitMessage, newUnitMessage.ClientId);
        }
Example #2
0
        private void OnConnectedToBattleRequest(ConnectToBattleRequestMsg message)
        {
            string userName = Model.ConIdToUserName[message.ClientId];
            List <GameItemType> equippedItems = Storage.Get(userName).Inventory.GetEquippedItemsTypes();

            GameBattlePlayerInfo battlePlayerInfo = new GameBattlePlayerInfo(message.ClientId, userName, GetFreeRespawnPoint(), equippedItems);

            Model.UnitsInBattle[message.ClientId] = battlePlayerInfo;

            SendBattleStateToNewPlayer(message, battlePlayerInfo);
            SendToAllAboutNewPlayer(message, battlePlayerInfo);
        }
Example #3
0
        private void SendBattleStateToNewPlayer(ConnectToBattleRequestMsg message,
                                                GameBattlePlayerInfo newPlayer)
        {
            var answer = new ConnectToBattleAnswerMsg();

            answer.IsCanConnect = true;
            answer.Player       = newPlayer;
            answer.Oponents     = new List <GameBattlePlayerInfo>();
            foreach (var unitId in Model.UnitsInBattle.Keys)
            {
                if (unitId != message.ClientId && Model.UnitsInBattle[unitId].IsAlive)
                {
                    answer.Oponents.Add(Model.UnitsInBattle[unitId]);
                }
            }
            answer.DropedItems = Model.ItemsInField;
            Server.SendToPlayer(answer, message.ClientId);
        }
        private void OnConnectedToBattleRequest(ConnectToBattleRequestMsg message)
        {
            int    connectionId = message.ClientId;
            string userName     = Model.GetUserNameByConnectionId(connectionId);
            List <GameItemType> equippedItems = Storage.Get(userName).Inventory.GetEquippedItemsTypes();

            GameBattlePlayerInfo battlePlayerInfo = new GameBattlePlayerInfo(connectionId, userName, GetFreeRespawnPoint(), equippedItems);

            if (Model.IsUserInBattle(connectionId)) // TODO: need separate EnterBattle and RespawnTank logic.
            {
                Model.RemoveBattlePlayer(connectionId);
            }

            Model.AddBattlePlayer(message.ClientId, battlePlayerInfo);

            SendBattleState(message.ClientId);
            SendToAllAboutNewPlayer(battlePlayerInfo);
        }