Ejemplo n.º 1
0
        static void BattleMon(ref Monster Mon, ref User Player, ref GM GameManager)
        {
            Console.WriteLine("[전투가 시작되었습니다.]");
            Console.WriteLine("[전투의 시작은 최근에 사용된 몬스터를 소환해 진행됩니다.]\n[처음에는 첫번째 몬스터가 소환됩니다.]");
            Player.ChoiceMon();
            Console.WriteLine("['{0}' 이(가) 필드에 소환되었습니다.]\n", Player.Get_UseMonName());
            Player.Show_UseMon();
            while (true)
            {
                Console.Write("[행동을 선택해주세요.]\n[1. 공격 2. 막기 3. 아이템 사용 4. 몬스터 변경 5. 도망]\n유저 : ");
                Player.Set_Key();

                if (Player.Get_Key() == '1')
                {
                    Console.WriteLine("[사용할 스킬을 선택해주세요.]");
                    Player.UseMonSkill();
                    Console.Write("유저 : ");
                    Player.Set_Key();
                    Console.WriteLine($"[나의 '{Player.Get_UseMonName()}'이(가) {Player.UseMonSkillName(Player.Get_Key() - 49)}(으)로 공격했습니다.]");
                    Player.UseMonAtk(ref Mon, Player.Get_Key() - 49);
                }
                else if (Player.Get_Key() == '2')
                {
                    Console.WriteLine("[나의 '{0}'이(가 막기를 시전했습니다.)]", Player.Get_UseMonName());
                    Player.ShileON_OFF();
                }
                else if (Player.Get_Key() == '3')
                {
                    Console.WriteLine("[아이템을 사용합니다.]");

                    if (Player.UseItem_Show())
                    {
                        Console.WriteLine("[사용할 아이템을 선택해주세요.]");
                        Player.Set_Key();
                        Player.Item_Use(ref GameManager, ref Player, Mon);
                    }
                }
                else if (Player.Get_Key() == '4')
                {
                    Player.MonShow();
                    Console.Write("[사용하실 포켓몬을 선택해주세요.]\n유저 : ");
                    Player.Set_Key();
                    Player.UseMon_change();
                }
                else
                {
                    Console.WriteLine("[도망치는데 성공했습니다.]");
                    break;
                }

                if (Mon.GetHP() <= 0)
                {
                    Console.WriteLine("[상대몬스터를 처치하는데 성공했습니다.]\n");
                    GameManager.Give_Price(ref Player);
                    Player.BattleEnd();
                    break;
                }

                if (Player.Get_Shilde())
                {
                    Console.WriteLine("[상대 '{0}'이(가) 공격했습니다.]", Mon.GetName());
                    Mon.AtkMon(ref Player, 1);
                }
                else
                {
                    Console.WriteLine("[막기에 성공했습니다.]");
                    Player.ShileON_OFF();
                }

                Player.TrunEnd();

                if (Player.Get_UseMonHP() <= 0)
                {
                    Console.WriteLine("[나의 '{0}'이(가) 공격 받아 HP가 0이 되었습니다.]", Player.Get_UseMonName());
                    Console.Write("[몬스터를 변경하시겠습니까?]\n[1. 예 2. 아니오 도망갈래요]\n 유저 : ");
                    Player.Set_Key();
                    if (Player.Get_Key() == '2')
                    {
                        Console.WriteLine("[전투를 종료합니다.]");
                        break;
                    }
                    else
                    {
                        Player.MonShow();
                        Console.Write("[사용하실 포켓몬을 선택해주세요.]\n유저 : ");
                        Player.Set_Key();
                        Player.UseMon_change();
                    }
                }
                GameManager.BattleResult(ref Player, ref Mon);
            }
        }