public static BattleReturnModel PlayBattle(Battle battle)
        {
            var battleReturn = new BattleReturnModel();
            var firstPlayerWinCount = 0;
            var secondPlayerWinCount = 0;

            for (int i = 0; i < BattleConstants.NumberOfRounds; i++)
            {
                var firstPlayerDamage = CalculateUserDamage(battle.FirstPlayer, battle.SecondPlayer);
                var secondPlayerDamage = CalculateUserDamage(battle.SecondPlayer, battle.FirstPlayer);
                if (firstPlayerDamage > secondPlayerDamage)
                {
                    firstPlayerWinCount++;
                    continue;
                }

                secondPlayerWinCount++;
            }
            
            if (firstPlayerWinCount > secondPlayerWinCount)
            {
                battleReturn.WinnersGold = GoldController.CalculateGoldToAdd(battle.FirstPlayer, firstPlayerWinCount);
                battle.Status = BattleStatus.WonByFirstPlayer;
                battleReturn.Winner = battle.FirstPlayer;
                battleReturn.WinnerId = battle.FirstPlayerId;
                battleReturn.Loser = battle.SecondPlayer;
                battleReturn.LoserId = battle.SecondPlayerId;
                battleReturn.WinnerScore = firstPlayerWinCount;
                battleReturn.LoserScore = secondPlayerWinCount;
                return battleReturn;
            }

            battleReturn.WinnersGold = GoldController.CalculateGoldToAdd(battle.SecondPlayer, secondPlayerWinCount);
            battle.Status = BattleStatus.WonBySecondPlayer;
            battleReturn.Winner = battle.SecondPlayer;
            battleReturn.WinnerId = battle.SecondPlayerId;
            battleReturn.Loser = battle.FirstPlayer;
            battleReturn.LoserId = battle.FirstPlayerId;
            battleReturn.WinnerScore = secondPlayerWinCount;
            battleReturn.LoserScore = firstPlayerWinCount;
            return battleReturn;
        }
Exemplo n.º 2
0
        public static BattleReturnModel PlayBattle(Battle battle)
        {
            var battleReturn         = new BattleReturnModel();
            var firstPlayerWinCount  = 0;
            var secondPlayerWinCount = 0;

            for (int i = 0; i < BattleConstants.NumberOfRounds; i++)
            {
                var firstPlayerDamage  = CalculateUserDamage(battle.FirstPlayer, battle.SecondPlayer);
                var secondPlayerDamage = CalculateUserDamage(battle.SecondPlayer, battle.FirstPlayer);
                if (firstPlayerDamage > secondPlayerDamage)
                {
                    firstPlayerWinCount++;
                    continue;
                }

                secondPlayerWinCount++;
            }

            if (firstPlayerWinCount > secondPlayerWinCount)
            {
                battleReturn.WinnersGold = GoldController.CalculateGoldToAdd(battle.FirstPlayer, firstPlayerWinCount);
                battle.Status            = BattleStatus.WonByFirstPlayer;
                battleReturn.Winner      = battle.FirstPlayer;
                battleReturn.WinnerId    = battle.FirstPlayerId;
                battleReturn.Loser       = battle.SecondPlayer;
                battleReturn.LoserId     = battle.SecondPlayerId;
                battleReturn.WinnerScore = firstPlayerWinCount;
                battleReturn.LoserScore  = secondPlayerWinCount;
                return(battleReturn);
            }

            battleReturn.WinnersGold = GoldController.CalculateGoldToAdd(battle.SecondPlayer, secondPlayerWinCount);
            battle.Status            = BattleStatus.WonBySecondPlayer;
            battleReturn.Winner      = battle.SecondPlayer;
            battleReturn.WinnerId    = battle.SecondPlayerId;
            battleReturn.Loser       = battle.FirstPlayer;
            battleReturn.LoserId     = battle.FirstPlayerId;
            battleReturn.WinnerScore = secondPlayerWinCount;
            battleReturn.LoserScore  = firstPlayerWinCount;
            return(battleReturn);
        }