コード例 #1
0
ファイル: Combat.cs プロジェクト: GabrielWilds/JSLCode
        public static bool CheckState(FightState state)
        {
            bool endState = false;
            int deadTeams = 0;
            Team[] teams = state.GetTeams;
            for (int i = 0; i < teams.Length; i++)
            {
                int deadPlayers = 0;
                for (int x = 0; x < teams[i].Members.Length; x++)
                {
                    if (teams[i].Members[x].HP <= 0)
                    {
                        teams[i].Members[x].IsDead = true;
                        deadPlayers++;
                    }
                }
                if (teams[i]._members.Length == deadPlayers)
                {
                    teams[i].IsDead = true;
                    deadTeams++;
                }
                if (teams[i].IsDead == true && teams[i].Leader is Player)
                    endState = true;
            }

            if (deadTeams + 1 == teams.Length)
                endState = true;

            return endState;
        }
コード例 #2
0
ファイル: Combat.cs プロジェクト: GabrielWilds/JSLCode
        public static void ChoseFight(Player player)
        {
            Console.WriteLine("The Arena is bustling, full of gamblers looking to bet on fights, and fighters looking to beat up on gamblers. You look over the various counters and stalls.");

            MenuItem<int>[] fights = new MenuItem<int>[4];

            for (int i = 0; i < fights.Length; i++)
            {
                MenuItem<int> fight = new MenuItem<int>();
                fights[i] = fight;
            }

            fights[0].Content = 0;
            fights[0].Description = "Start a Ladder Match";
            fights[1].Content = 1;
            fights[1].Description = "Start a Randomized Match";
            fights[2].Content = 2;
            fights[2].Description = "Customize a Match";
            fights[3].Content = 3;
            fights[3].Description = "Return to main menu";
            fights[3].NeedsConfirm = false;

            FightState state = new FightState(null);
            int selection = Menu<int>.ShowMenu(fights);
            switch (selection)
            {
                case 0:
                    state = LadderFight(player);
                    break;
                case 1:
                    state = RandomFight(player);
                    break;
                case 2:
                    state = CustomizedFight(player);
                    break;
                case 3:
                    break;
                default:
                    break;
            }
            Fight(state, player);
        }
コード例 #3
0
ファイル: Combat.cs プロジェクト: GabrielWilds/JSLCode
        public static void Fight(FightState state, Player player)
        {
            Team[] teams = state.GetTeams;
            bool endState = false;

            while (!endState)
            {
                for (int i = 0; i < teams.Length; i++)
                {
                    if (endState)
                        continue;
                    if (teams[i].IsDead)
                    {
                        Console.WriteLine("Team " + teams[i].TeamName + " is all dead");
                        continue;
                    }
                    for (int x = 0; x < teams[i].Members.Length; x++)
                    {
                        if (endState || teams[i].Members[x].IsDead)
                            continue;
                        else if (CheckState(state))
                            endState = true;
                        else
                        {
                            teams[i].Members[x].IncrementAT();
                            state.StatusReport(player);
                            //Console.WriteLine(teams[i].Members[x].Name + "'s AT is " + teams[i].Members[x].AT);

                            if (teams[i].Members[x].AT >= 40)
                            {
                                Console.Clear();
                                Console.WriteLine();
                                Console.WriteLine(teams[i].Members[x].Name + " takes a turn.");
                                teams[i].Members[x].TakeTurn(state);
                                Console.WriteLine();
                                if (teams[i].Members[x] is NPC)
                                    Thread.Sleep(500);
                            }
                            else
                                Thread.Sleep(50);

                            Console.Clear();
                        }
                    }

                }
            }
            Console.WriteLine("The fight is over!");
            if (!player.IsDead)
                RewardPlayer(state, player);
            else
                Console.WriteLine("You were knocked out...");

            player.Heal(player.MaxHP);
            player.IsDead = false;

            Program.SaveData();
            Console.WriteLine("Press Enter to continue");
            Console.ReadKey();
        }
コード例 #4
0
ファイル: Combat.cs プロジェクト: GabrielWilds/JSLCode
        public static void RewardPlayer(FightState state, Player player)
        {
            Team[] teams = state.GetTeams;
            int money = 0;
            int exp = 0;

            for (int i = 0; i < teams.Length; i++)
                for (int x = 0; x < teams[i].Members.Length; x++)
                    if (teams[i].Members[x] is NPC)
                    {
                        money = money + teams[i].Members[x].Money;
                        exp = exp + teams[i].Members[x].XP;
                    }
            Console.WriteLine(player.Username + " earns " + money + " money!");
            Console.WriteLine(player.Username + " gains " + exp + " experience!");
            player.Score = player.Score + money;
            player.XP = player.XP + exp;
            player.LevelUp(true);
        }
コード例 #5
0
ファイル: Combat.cs プロジェクト: GabrielWilds/JSLCode
        public static FightState RandomFight(Player player)
        {
            String path = "npc.txt";
            String[] monsters = File.ReadAllLines(path);

            int teamCount = Randomizer.RandomNumber(1, 4);
            int monsterCount = Randomizer.RandomNumber(teamCount, teamCount * Randomizer.RandomNumber(1, 3));
            Team[] teams = new Team[teamCount + 1];
            for (int i = 0; i < teams.Length; i++)
            {
                Team team = new Team();
                teams[i] = team;
            }
            Character[] playerTeam = new Character[1];
            playerTeam[0] = player;
            teams[0].SetTeam(playerTeam);

            for (int i = 1; i < teams.Length; i++)
            {
                NPC[] team = new NPC[monsterCount];
                for (int x = 0; x < team.Length; x++)
                {
                    NPC monster = new NPC(null, 0, 0, 0, 0, 0, 0, 0, 0);
                    monster = GetMonster(monsters, Randomizer.RandomNumber(monsters.Length));
                    team[x] = monster;
                }
                teams[i].SetTeam(team);
            }
            FightState state = new FightState(teams);

            return state;
        }