Beispiel #1
0
        static void Fight(ref Playerstat playerstat, ref Player player, ref Monster monster)
        {
            int rand         = random.Next(1, 101);
            int monsterdamge = random.Next(monster.minattack, monster.maxattack);
            int damge        = random.Next(player.level, player.attack);

            monster.hp -= damge;
            WriteLine(damge + "만큼 데미지를 주었습니다.");

            if (rand <= player.evasion)
            {
                WriteLine("회피하였습니다.");
            }
            else
            {
                player.hp -= monsterdamge - player.defense / 5;
                WriteLine(monsterdamge + " 만큼 데미지를 입었습니다.");
            }
            if (monster.hp <= 0)
            {
                WriteLine("승리하였습니다! " + monster.exp + " 경험치 획득!");
                WriteLine($"{monster.coin} coin 획득!");
                player.exp  += monster.exp;
                player.coin += monster.coin;
                LevelUp(ref playerstat, ref player);
            }
            if (player.hp <= 0)
            {
                WriteLine("사망하였습니다. (경험치가 하락합니다)");
                player.exp -= player.exp / 20;
                player.hp   = 0;
            }
        }
Beispiel #2
0
 static void LevelUp(ref Playerstat playerstat, ref Player player)
 {
     if (player.exp >= player.fullexp)
     {
         WriteLine($"레벨 업! ({player.level}->{player.level + 1})");
         player.level         += 1;
         player.exp           -= player.fullexp;
         playerstat.statpoint += 5;
         player.fullexp       += 50;
     }
 }
Beispiel #3
0
        static void FieldChoice(ref Playerstat playerstat, ref Player player)
        {
            while (true)
            {
                WriteLine("[1]튜토리얼의 마을");
                WriteLine("[2]고블린의 주거지");
                WriteLine("[3]저주의 숲");
                WriteLine("[4]리저드맨의 늪");
                WriteLine("[5]심연의 바다");
                WriteLine("[6]언데드의 성");
                WriteLine("[7]지옥의 유적");

                int input = int.Parse(ReadLine());

                Monster monster;
                CreateMonster(ref playerstat, ref player, out monster, ref input);
                break;
            }
        }
Beispiel #4
0
        static void Information(ref Playerstat playerstat, ref Monster monster, ref Player player)
        {
            while (true)
            {
                WriteLine(monster.name);
                WriteLine("HP : " + monster.hp + "/" + monster.fullhp);
                WriteLine("ATK : " + monster.maxattack + "\n");

                WriteLine("Lv" + player.level);
                WriteLine("exp : " + player.exp + "/" + player.fullexp);
                WriteLine("HP : " + player.hp + "/" + player.fullhp);
                WriteLine("ATK : " + player.attack);
                WriteLine("DPS : " + player.defense + "\n");

                WriteLine("[1]전투");
                WriteLine("[2]도망\n");

                int choice = int.Parse(ReadLine());
                if (choice == 1)
                {
                    Fight(ref playerstat, ref player, ref monster);
                    if (monster.hp <= 0 || player.hp <= 0)
                    {
                        break;
                    }
                }
                else if (choice == 2)
                {
                    int rand = random.Next(1, 101);
                    if (rand <= 33)
                    {
                        WriteLine("무사히 도망쳤습니다.");
                        break;
                    }
                    else
                    {
                        WriteLine("도망치지 못했습니다.");
                    }
                }
            }
        }
Beispiel #5
0
        static void Stauts(ref Playerstat playerstat)
        {
            WriteLine($"힘 : {playerstat.power}");
            WriteLine($"민첩 : {playerstat.agility}");
            WriteLine($"체력 : {playerstat.health}");
            WriteLine($"잔여 포인트 : {playerstat.statpoint}");

            WriteLine("[1]포인트 분배하기");
            WriteLine("[2]나가기");

            int input = int.Parse(ReadLine());

            if (input == 1)
            {
                WriteLine("스탯을 분배해주세요");
                while (true)
                {
                    WriteLine("[1]힘");
                    WriteLine("[2]민첩");
                    WriteLine("[3]체력");
                    WriteLine("[4]나가기");

                    int choice = int.Parse(ReadLine());
                    if (choice == 1)
                    {
                        WriteLine("얼마나 투자하시겠습니까?");
                        int stat = int.Parse(ReadLine());
                        if (playerstat.statpoint >= stat)
                        {
                            WriteLine($"힘 스탯에 {stat} 만큼 배분하셨습니다.");
                            playerstat.statpoint -= stat;
                            playerstat.power     += stat;
                        }
                        else
                        {
                            WriteLine("잔여 포인트가 부족합니다.");
                        }
                    }
                    else if (choice == 2)
                    {
                        WriteLine("얼마나 투자하시겠습니까?");
                        int stat = int.Parse(ReadLine());
                        if (playerstat.statpoint >= stat)
                        {
                            WriteLine($"민첩 스탯에 {stat} 만큼 배분하셨습니다.");
                            playerstat.statpoint -= stat;
                            playerstat.agility   += stat;
                        }
                        else
                        {
                            WriteLine("잔여 포인트가 부족합니다.");
                        }
                    }
                    else if (choice == 3)
                    {
                        WriteLine("얼마나 투자하시겠습니까?");
                        int stat = int.Parse(ReadLine());
                        if (playerstat.statpoint >= stat)
                        {
                            WriteLine($"체력 스탯에 {stat} 만큼 배분하셨습니다.");
                            playerstat.statpoint -= stat;
                            playerstat.health    += stat;
                        }
                        else
                        {
                            WriteLine("잔여 포인트가 부족합니다.");
                        }
                    }
                    else if (choice == 4)
                    {
                        break;
                    }
                }
            }
        }
Beispiel #6
0
        static void CreateMonster(ref Playerstat playerstat, ref Player player, out Monster monster, ref int input)
        {
            while (true)
            {
                int rand = random.Next(1, 4);
                if (input == 1)
                {
                    switch (rand)
                    {
                    case 1:
                        monster.name      = "슬라임";
                        monster.hp        = 10;
                        monster.fullhp    = 10;
                        monster.minattack = 3;
                        monster.maxattack = 9;
                        monster.exp       = 25;
                        monster.coin      = 3;
                        break;

                    case 2:
                        monster.name      = "트롤";
                        monster.hp        = 17;
                        monster.fullhp    = 17;
                        monster.minattack = 5;
                        monster.maxattack = 11;
                        monster.exp       = 35;
                        monster.coin      = 5;
                        break;

                    case 3:
                        monster.name      = "호블린";
                        monster.hp        = 20;
                        monster.fullhp    = 20;
                        monster.minattack = 7;
                        monster.maxattack = 15;
                        monster.exp       = 40;
                        monster.coin      = 10;
                        break;

                    default:
                        monster.name      = "없음";
                        monster.hp        = 0;
                        monster.fullhp    = 0;
                        monster.minattack = 0;
                        monster.maxattack = 0;
                        monster.exp       = 0;
                        monster.coin      = 0;
                        break;
                    }
                    WriteLine(monster.name + "이 나타났다!\n");
                    Information(ref playerstat, ref monster, ref player);
                    break;
                }
                else if (input == 2)
                {
                    switch (rand)
                    {
                    case 1:
                        monster.name      = "고블린 병사";
                        monster.hp        = 23;
                        monster.fullhp    = 23;
                        monster.minattack = 9;
                        monster.maxattack = 16;
                        monster.exp       = 45;
                        monster.coin      = 13;
                        break;

                    case 2:
                        monster.name      = "고블린 창병";
                        monster.hp        = 28;
                        monster.fullhp    = 28;
                        monster.minattack = 11;
                        monster.maxattack = 18;
                        monster.exp       = 50;
                        monster.coin      = 15;
                        break;

                    case 3:
                        monster.name      = "홉 고블린";
                        monster.hp        = 35;
                        monster.fullhp    = 35;
                        monster.minattack = 13;
                        monster.maxattack = 22;
                        monster.exp       = 70;
                        monster.coin      = 20;
                        break;

                    default:
                        monster.name      = "없음";
                        monster.hp        = 0;
                        monster.fullhp    = 0;
                        monster.minattack = 0;
                        monster.maxattack = 0;
                        monster.exp       = 0;
                        monster.coin      = 0;
                        break;
                    }
                    WriteLine(monster.name + "이 나타났다!\n");
                    Information(ref playerstat, ref monster, ref player);
                    break;
                }
                else if (input == 3)
                {
                }
                else if (input == 4)
                {
                }
                else if (input == 5)
                {
                }
                else if (input == 6)
                {
                }
                else if (input == 7)
                {
                }
            }
        }