コード例 #1
0
ファイル: Program.cs プロジェクト: SimonasBanys/disertation
        public static void ProcessCommand(WordRecogniser.Tasks task, List <String> arguments)
        {
            WordRecogniser   wordRecogniser = new WordRecogniser();
            PlayerOperations player         = new PlayerOperations();

            switch (task)
            {
            case WordRecogniser.Tasks.ArmyStatus:
                var armyStatusResult = player.ArmyStatus(_testClient);
                _displayResults.DisplayArmyStatus(armyStatusResult);
                break;

            case WordRecogniser.Tasks.ChangeAttackSupport:
            {
                if (ValidateArgs(arguments))
                {
                    var armyStatusRes = player.changeAttack(arguments[1], _testClient);
                    _displayResults.DisplayChangeAtt(armyStatusRes);
                }
                break;
            }

            case WordRecogniser.Tasks.ChangeDefenceSupport:
            {
                if (ValidateArgs(arguments))
                {
                    var armyStatusRes = player.changeDefence(arguments[1], _testClient);
                    _displayResults.DisplayChangeDef(armyStatusRes);
                }
                break;
            }

            case WordRecogniser.Tasks.ChangeAutoPillage:
            {
                if (ValidateArgs(arguments))
                {
                    var armyStatusRes = player.changePillage(arguments[1], _testClient);
                    _displayResults.DisplayChangePilllage(armyStatusRes);
                }
                break;
            }

            case WordRecogniser.Tasks.Check:
                var checkResult = player.Check(_testClient);
                _testClient.charID = _displayResults.DisplayCheck(checkResult);
                break;

            case WordRecogniser.Tasks.SendAssassin:
            {
                var assassinResult = player.sendAssassin(arguments[1], arguments[2], _testClient);
                _displayResults.DisplaySendAssassin(assassinResult);
                break;
            }

            case WordRecogniser.Tasks.Fief:
                var fiefResult = player.FiefDetails(_testClient);
                _displayResults.DisplayFief(fiefResult);
                break;

            case WordRecogniser.Tasks.Help:
                _displayResults.Help();
                break;

            case WordRecogniser.Tasks.Move:
                if (ValidateArgs(arguments))
                {
                    var moveResult = player.Move(wordRecogniser.CheckDirections(arguments[1]),
                                                 _testClient);
                    _displayResults.DisplayMove(moveResult);
                }
                else
                {
                    SyntaxError();
                }
                break;

            case WordRecogniser.Tasks.Hire:
                if (ValidateArgs(arguments))
                {
                    var hireResult = player.HireTroops(Convert.ToInt32(arguments[1]), _testClient);
                    _displayResults.DisplayHire(hireResult);
                    var armyUpdate = player.ArmyStatus(_testClient);
                    _displayResults.DisplayArmyStatus(armyUpdate);
                }
                break;

            case WordRecogniser.Tasks.HireNew:
            {
                if (ValidateArgs(arguments))
                {
                    var hireResult = player.HireNew(Convert.ToInt32(arguments[1]), _testClient);
                    _displayResults.DisplayHire(hireResult);
                    var armyUpdate = player.ArmyStatus(_testClient);
                    _displayResults.DisplayArmyStatus(armyUpdate);
                }
                break;
            }

            case WordRecogniser.Tasks.Siege:
                var siegeResult = player.SiegeCurrentFief(_testClient);
                if (siegeResult.GetType() == typeof(ProtoSiegeDisplay))
                {
                    var siegeDisplay = (ProtoSiegeDisplay)siegeResult;
                    _displayResults.DisplaySiege(siegeDisplay);
                }
                else
                {
                    switch (siegeResult.ResponseType)
                    {
                    case DisplayMessages.PillageSiegeAlready:
                        Console.WriteLine("Already sieged this turn!");
                        break;

                    case DisplayMessages.PillageUnderSiege:
                        Console.WriteLine("Already under siege!");
                        break;

                    case DisplayMessages.ArmyNoLeader:
                        Console.WriteLine("Army has no leader!");
                        break;

                    default:
                        Console.WriteLine(siegeResult.ResponseType);
                        break;
                    }
                }
                break;

            case WordRecogniser.Tasks.AttackArmy:
            {
                var attackResult  = player.AttackArmy(arguments[1], _testClient);
                var attackDisplay = (ProtoBattle)attackResult;
                _displayResults.DisplayAttack(attackDisplay);
                break;
            }

            case WordRecogniser.Tasks.Players:
                var playersResult = player.Players(_testClient);
                _displayResults.DisplayPlayers(playersResult);
                break;

            case WordRecogniser.Tasks.Profile:
                var profileResult = player.Profile(_testClient);
                _displayResults.DisplayProfile(profileResult);
                break;

            case WordRecogniser.Tasks.SeasonUpdate:
                var seasonUpdateResult = player.SeasonUpdate(_testClient);
                _displayResults.DisplaySeasonUpdate();
                break;

            case WordRecogniser.Tasks.Sieges:
                var siegeListResult = player.SiegeList(_testClient);
                _displayResults.DisplaySiegeResult(siegeListResult);
                break;

            case WordRecogniser.Tasks.JournalEntries:
                var journalEntriesResult = player.JournalEntries(_testClient);
                _displayResults.DisplayJournalEntries(journalEntriesResult);
                break;

            case WordRecogniser.Tasks.Journal:
                if (ValidateArgs(arguments))
                {
                    var journalResult = player.Journal(arguments[1], _testClient);
                    _displayResults.DisplayJournalEntry(journalResult);
                }
                else
                {
                    SyntaxError();
                }
                break;

            case WordRecogniser.Tasks.FiefExpenditure:
                if (ValidateArgs(arguments))
                {
                    var fiefExpendResult = player.AdjustFiefExpenditure(arguments[1], _testClient);
                }
                else
                {
                    SyntaxError();
                }
                break;

            case WordRecogniser.Tasks.Exit:
                break;
            }
            Console.WriteLine();
        }