Exemple #1
0
        public WinnerCard FightRound(BaseCard cardPlayerOne, BaseCard cardPlayerTwo, Arena arena)
        {
            this.cardPlayerOne = cardPlayerOne;
            this.cardPlayerTwo = cardPlayerTwo;

            switch (this.cardPlayerOne.category)
            {
            case Category.Monster when this.cardPlayerTwo.category == Category.Monster:
            {
                this.currentDamageCardOne = this.cardPlayerOne.damage;
                this.currentDamageCardTwo = this.cardPlayerTwo.damage;
                arena.ArenaLog.AddTextToLog("Fight between two Monsters!");
                switch (this.cardPlayerOne.race)
                {
                case Race.Dragon when this.cardPlayerTwo.race == Race.Goblin:
                {
                    arena.ArenaLog.AddTextToLog("Goblin from " + arena.playerTwo.Username.ToUpper() + " is too afraid to attack the Dragon from " + arena.playerOne.Username.ToUpper());
                    this.fightResult = WinnerCard.CardPlayerOne;
                    break;
                }

                case Race.Goblin when this.cardPlayerTwo.race == Race.Dragon:
                {
                    arena.ArenaLog.AddTextToLog("Goblin from " + arena.playerOne.Username.ToUpper() + " is too afraid to attack the Dragon from " + arena.playerTwo.Username.ToUpper());
                    this.fightResult = WinnerCard.CardPlayerTwo;
                    break;
                }

                case Race.Wizzard when this.cardPlayerTwo.race == Race.Orc:
                {
                    arena.ArenaLog.AddTextToLog("Wizzard from " + arena.playerOne.Username.ToUpper() + " controls the Orc from " + arena.playerTwo.Username.ToUpper());
                    this.fightResult = WinnerCard.CardPlayerOne;
                    break;
                }

                case Race.Orc when this.cardPlayerTwo.race == Race.Wizzard:
                {
                    arena.ArenaLog.AddTextToLog("Wizzard from " + arena.playerTwo.Username.ToUpper() + " controls the Orc from " + arena.playerOne.Username.ToUpper());
                    this.fightResult = WinnerCard.CardPlayerTwo;
                    break;
                }

                case Race.Elve when this.cardPlayerTwo.race == Race.Dragon:
                {
                    if (this.cardPlayerOne.element == Element.Fire)
                    {
                        arena.ArenaLog.AddTextToLog("FireElve from " + arena.playerOne.Username.ToUpper() + " evede the attack from " + arena.playerTwo.Username.ToUpper() + "'s Dragon");
                        this.fightResult = WinnerCard.CardPlayerOne;
                        break;
                    }
                    else
                    {
                        this.fightResult = CheckWinner(arena);
                        break;
                    }
                }

                case Race.Dragon when this.cardPlayerTwo.race == Race.Elve:
                {
                    if (this.cardPlayerTwo.element == Element.Fire)
                    {
                        arena.ArenaLog.AddTextToLog("FireElve from " + arena.playerTwo.Username.ToUpper() + " evede the attack from " + arena.playerOne.Username.ToUpper() + "'s Dragon");
                        this.fightResult = WinnerCard.CardPlayerTwo;
                        break;
                    }
                    else
                    {
                        this.fightResult = CheckWinner(arena);
                        break;
                    }
                }

                default:
                {
                    this.fightResult = CheckWinner(arena);
                    break;
                }
                }
                return(this.fightResult);
            }

            case Category.Monster when this.cardPlayerTwo.category == Category.Spell:
            {
                arena.ArenaLog.AddTextToLog("Fight between one Monster and one Spell!");
                fightResult = MonsterVsSpell(arena);
                switch (this.fightResult)
                {
                case WinnerCard.CardPlayerOne:
                {
                    break;
                }

                case WinnerCard.CardPlayerTwo:
                {
                    break;
                }

                case WinnerCard.Draw:
                {
                    CheckElement();
                    this.fightResult = CheckWinner(arena);
                    break;
                }
                }
                return(this.fightResult);
            }

            case Category.Spell when this.cardPlayerTwo.category == Category.Monster:
            {
                arena.ArenaLog.AddTextToLog("Fight between one Spell and one Monster!");
                fightResult = MonsterVsSpell(arena);
                switch (this.fightResult)
                {
                case WinnerCard.CardPlayerOne:
                {
                    break;
                }

                case WinnerCard.CardPlayerTwo:
                {
                    break;
                }

                case WinnerCard.Draw:
                {
                    CheckElement();
                    this.fightResult = CheckWinner(arena);
                    break;
                }
                }
                return(this.fightResult);
            }

            case Category.Spell when this.cardPlayerTwo.category == Category.Spell:
            {
                arena.ArenaLog.AddTextToLog("Fight between two Spells!");
                CheckElement();
                this.fightResult = CheckWinner(arena);
                return(this.fightResult);
            }

            default:
            {
                return(this.fightResult);
            }
            }
        }