コード例 #1
0
ファイル: NPC.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        private void GiveQuests(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker)
        {
            Console.Clear();

            bool anyQuestGiven = false;

            foreach (var quest in quests)
            {
                if (player.QuestsDone.Find(x => x == quest.Item1) == null && activeQuests.Find(x => x == quest.Item1) == null)
                {
                    if (quest.Item2 == null || player.QuestsDone.Find(x => x == quest.Item2) != null)
                    {
                        quest.Item1.Start(activeQuests, enemyTracker);
                        quest.Item1.Info(player, enemyTracker);

                        Util.Write("\n");

                        anyQuestGiven = true;
                    }
                }
            }

            if (!anyQuestGiven)
            {
                Util.WriteColorString("@15|I don't have any @12|quest @15|for you\n");
            }

            Console.ReadKey();
        }
コード例 #2
0
ファイル: Merchant.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        public override void Work(Player player)
        {
            while (true)
            {
                Console.Clear();

                Util.WriteColorString(WorkMessage, true);

                Util.Write("1. Sell ");
                Util.WriteLine("items", ConsoleColor.DarkGray);

                Util.Write("2. Sell ");
                Util.WriteLine("consumables", ConsoleColor.Yellow);

                Util.WriteLine("\n0. Exit");

                var decision = Console.ReadKey();

                if (decision.Key == ConsoleKey.NumPad0)
                {
                    break;
                }
                else if (decision.Key == ConsoleKey.NumPad1)
                {
                    SellItems(player);
                }
                else if (decision.Key == ConsoleKey.NumPad2)
                {
                    SellConsumables(player);
                }
            }
        }
コード例 #3
0
ファイル: Ability.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        public virtual void Info()
        {
            string info = "@11|" + Cost + " " + Name + " @15|- ";

            Util.WriteColorString(info);

            Util.WriteColorString(description);
        }
コード例 #4
0
ファイル: NPC.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        public void Hello()
        {
            Console.Clear();

            Util.WriteColorString(helloMessage);

            Console.ReadKey();
        }
コード例 #5
0
ファイル: NPC.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        public void Talk(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker)
        {
            while (true)
            {
                Console.Clear();

                Util.WriteColorString("@15|Hello, I'm @9|" + Name + "\n");

                Util.WriteLine("\nSay: ");
                Util.WriteLine("1. Hello");

                Util.Write("2. Ask about his ");
                Util.WriteLine("work", ConsoleColor.DarkYellow);

                Util.Write("3. Ask about the ");
                Util.WriteLine("place", ConsoleColor.Green);

                if (quests.Count > 0)
                {
                    Util.Write("4. Ask if he has any ");
                    Util.Write("quest ", ConsoleColor.Red);
                    Util.WriteLine("for you");

                    Util.Write("5. Tell him about ");
                    Util.Write("quest ", ConsoleColor.Red);
                    Util.WriteLine("that you finished");
                }

                Util.WriteLine("\n0. Exit");

                var decision = Console.ReadKey();

                if (decision.Key == ConsoleKey.NumPad0)
                {
                    break;
                }
                else if (decision.Key == ConsoleKey.NumPad1)
                {
                    Hello();
                }
                else if (decision.Key == ConsoleKey.NumPad2)
                {
                    Work(player);
                }
                else if (decision.Key == ConsoleKey.NumPad3)
                {
                    Place(player, activeQuests, enemyTracker);
                }
                else if (decision.Key == ConsoleKey.NumPad4 && quests.Count > 0)
                {
                    GiveQuests(player, activeQuests, enemyTracker);
                }
                else if (decision.Key == ConsoleKey.NumPad5 && quests.Count > 0)
                {
                    FinishQuests(player, activeQuests, enemyTracker);
                }
            }
        }
コード例 #6
0
        public void Info(Player player, List <Tuple <Enemy, int> > enemyTracker)
        {
            Util.WriteLine(Name, ConsoleColor.Red);

            Util.WriteColorString(description, true);

            if (QuestEnemies.Count > 0)
            {
                Util.WriteLine("\nWin fights:");
                int enemyCount = 0;

                foreach (var enemy in QuestEnemies)
                {
                    if (enemyTracker.Find(x => x.Item1 == enemy.Item1) != null)
                    {
                        enemyCount = enemyTracker.Find(x => x.Item1 == enemy.Item1).Item2;
                    }

                    if (enemyCount > enemy.Item2)
                    {
                        enemyCount = enemy.Item2;
                    }

                    Util.Write(enemy.Item1.Name + " ", ConsoleColor.Blue);
                    Util.WriteLine(enemyCount + " / " + enemy.Item2);
                }
            }

            if (QuestItems.Count > 0)
            {
                Util.WriteLine("\nGet:");
                int itemCount = 0;

                foreach (var item in QuestItems)
                {
                    if (player.QuestItems.Contains(item.Item1))
                    {
                        itemCount = player.QuestItems.Find(x => x == item.Item1).Count;
                    }
                    else
                    {
                        itemCount = 0;
                    }

                    Util.Write(item.Item1.Name + " ", ConsoleColor.Red);
                    Util.WriteLine(itemCount + " / " + item.Item2);
                }
            }
        }
コード例 #7
0
ファイル: NPC.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        public void Place(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker)
        {
            Console.Clear();

            if (placeQuest != null && activeQuests.Find(x => x == placeQuest) != null)
            {
                placeQuest.Finish(player, enemyTracker);
                activeQuests.Remove(placeQuest);

                Console.Clear();
            }

            Util.WriteColorString(placeMessage);

            Console.ReadKey();
        }
コード例 #8
0
ファイル: NPC.cs プロジェクト: lukaszzalewskiqq/VeganRPG
        private void FinishQuests(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker)
        {
            Console.Clear();
            List <Quest> completedQuests = new List <Quest>();

            foreach (var quest in quests)
            {
                if (!quest.Item1.OutsideFinish)
                {
                    if (activeQuests.Find(x => x == quest.Item1) != null)
                    {
                        if (quest.Item1.CheckCompletion(player, enemyTracker))
                        {
                            quest.Item1.Finish(player, enemyTracker);
                            activeQuests.Remove(quest.Item1);

                            completedQuests.Add(quest.Item1);

                            Console.Clear();
                        }
                        else
                        {
                            quest.Item1.Info(player, enemyTracker);

                            Util.Write("\n");
                        }
                    }
                }
            }

            if (completedQuests.Count == 0)
            {
                Util.WriteColorString("@15|You didn't complete any @12|quest\n");

                Console.ReadKey();
            }
            else
            {
                foreach (var quest in completedQuests)
                {
                    quests.RemoveAll(x => x.Item1 == quest);
                }
            }
        }
コード例 #9
0
        public override void Work(Player player)
        {
            while (true)
            {
                Console.Clear();

                Util.WriteColorString(WorkMessage, true);

                Util.WriteLine("1. Buy");

                Util.WriteLine("\n0. Exit");

                var decision = Console.ReadKey();

                if (decision.Key == ConsoleKey.NumPad0)
                {
                    break;
                }
                else if (decision.Key == ConsoleKey.NumPad1)
                {
                    BuyItems(player);
                }
            }
        }