public void turnBasedActionGame()
{
Console.Clear();
// 스킬 설정 및 초기화
string[,] skillCoolDowns = new string[4, 4]
{
{ "Q", "5", "5","돌격!!!!\n" },
{ "W", "3", "3","확고한 의지로!\n" },
{ "E", "10", "10","눈도 깜짝 안한다!\n" },
{ "R", "7", "7","🗡️데마시아!!!!!!🗡️\n" }
};
while (true)
{
Console.WriteLine("🤺가렌 시뮬레이터🤺");
Console.WriteLine("사용 가능한 스킬은 다음과 같습니다\n");
for (int i = 0; i < skillCoolDowns.GetLength(0); i++)
{
for (int j = 0; j < 2; j++)
{
Console.Write($"{skillCoolDowns[i,j]}");
if (j == 0)
{
Console.Write(" 스킬 : ");
}
else if (j == 1 && skillCoolDowns[i,j] == "0")
{
Console.Write("\b: 스킬 준비 완료");
}
}
Console.WriteLine("");
}
Console.WriteLine("\n🕹🕹🕹🕹🕹🕹🕹🕹🕹🕹️🕹🕹🕹🕹🕹🕹🕹");
Console.WriteLine("🕹\t액션을 선택해 주세요\t 🕹");
Console.WriteLine("🕹🕹🕹🕹🕹🕹🕹🕹🕹️🕹🕹🕹🕹🕹🕹🕹🕹\n");
Console.WriteLine("0. 종료");
Console.WriteLine("1. 턴 넘김");
Console.WriteLine("2. 스킬 사용");
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
Console.Clear();
if (keyInfo.Key == ConsoleKey.D0)
{
Console.WriteLine("종료 합니다");
break;
}
if (keyInfo.Key == ConsoleKey.D1)
{
for (int i = 0; i < skillCoolDowns.GetLength(0); i++)
{
int coolDown = int.Parse(skillCoolDowns[i,1]);
coolDown--;
if (coolDown <= 0)
{
coolDown = 0;
}
// 아직 안배웠지만 coolDown.ToString(); 으로 해서 변환해도 될듯.
skillCoolDowns[i, 1] = $"{coolDown}";
}
}
if (keyInfo.Key == ConsoleKey.D2)
{
Console.Clear();
Console.WriteLine("QWER 중 스킬을 눌러주세요");
ConsoleKeyInfo skillKey = Console.ReadKey(true);
int someSkillCoolDown = -1;
int keyIndex = -1;
if (skillKey.Key == ConsoleKey.Q)
{
string qSkillCoolDown = skillCoolDowns[0, 1];
someSkillCoolDown = int.Parse(qSkillCoolDown);
keyIndex = 0;
}
else if (skillKey.Key == ConsoleKey.W)
{
string qSkillCoolDown = skillCoolDowns[1, 1];
someSkillCoolDown = int.Parse(qSkillCoolDown);
keyIndex = 1;
}
else if (skillKey.Key == ConsoleKey.E)
{
string qSkillCoolDown = skillCoolDowns[2, 1];
someSkillCoolDown = int.Parse(qSkillCoolDown);
keyIndex = 2;
}
else if (skillKey.Key == ConsoleKey.R)
{
string qSkillCoolDown = skillCoolDowns[3, 1];
someSkillCoolDown = int.Parse(qSkillCoolDown);
keyIndex = 3;
}
else
{
Console.WriteLine("잘못된 키 입니다");
}
if (someSkillCoolDown > 0)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("쿨타임이 돌아오지 않았습니다");
Console.ResetColor();
}
else if(someSkillCoolDown == 0)
{
Console.WriteLine(skillCoolDowns[keyIndex,3]);
skillCoolDowns[keyIndex, 1] = skillCoolDowns[keyIndex, 2];
}
}
}
}