게임에 복권 기능을 추가했다.
5000원으로 구매하거나 필드에 출몰하는 몬스터를 잡을때마다 하나씩 확정 드롭된다.
아이템 목록 csv파일에 추가해준 후
몬스터 클래스에 사망 시 플레이어에게 복권 하나 추가를 작성해줬다.
TextHelper.BtHeader("복권 긁기");
TextHelper.ItContent($"현재 보유 중인 복권 수량 {item?.Count}"); //복권 갯수
if (UIManager.Instance.Confirm("복권을 긁습니다."))
{
if (item?.Count > 0)
{
TextHelper.SlowPrint("복권을 긁고 있습니다.");
//복권 갯수 삭감
GameManager.Instance.RemoveItem(item);
//복권 결과 출력 함수
GameManager.Instance.AddGold(LotteryReward());
GameManager.Instance.ScratchLottery(); //복권 긁은 횟수 추가
Thread.Sleep(1000);
}
else
{
TextHelper.DtContent("가지고 있는 복권이 없습니다.");
Thread.Sleep(1000);
}
}
복권을 긁는 함수를 추가해준후 마을의 이벤트란에서 실행 가능하게끔 코딩해주었다.
복권의 확률은
1등은 0.1프로 2등은 0.4프로 3등은 2프로 4등은 7.5프로 5등은 20프로
그 외에는 전부 꽝이다.
1등 당첨 시 추가적인 연출을 만들어주고
다른 팀원 분들이 작성하신 코드와 비교해서 변수나 메소드 이름을 적절하게 조율한 뒤
실행을 통해 에러가 발생하는지 재차 확인해주자.
혹시 모르니 폭죽 터지는 연출은
int x = Console.WindowWidth / 2;
int y = Console.WindowHeight / 2;
for (int i = 0; i < y; i++)
{
int j = i - 1;
Console.SetCursorPosition(x, Console.WindowHeight - i);
Console.Write('@');
Thread.Sleep(50);
Console.SetCursorPosition(x, Console.WindowHeight - i);
Console.Write(' ');
}
for (int i = 0, j = 0; i < x; i++)
{
float k = MathF.Sqrt(i);
float xD = MathF.Sin((MathF.PI) * i / 4) * k * 4;
float yD = MathF.Cos(-(MathF.PI) * i / 4) * k * 2;
Console.SetCursorPosition(x + (int)xD, y + (int)yD);
Console.Write('*');
if (i % 4 == 0)
{
j++;
switch (j)
{
case 0:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)15;
break;
}
case 1:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)9;
break;
}
case 2:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)3;
break;
}
case 3:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)11;
break;
}
case 4:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)1;
break;
}
case 5:
{
Console.Clear();
Console.BackgroundColor = (ConsoleColor)0;
Console.Clear();
break;
}
}
Thread.Sleep(50);
}
}
이런 스크립트로 작성했다.
예상대로 ConsoleColor가 enum타입이라 숫자로 접근이 가능했다.
이제 프로젝트는 완성을 코 앞에 두고있기에 PPT와 발표준비가 한창이다.
그럼 이쯤에서 TIL을 마무리하도록 하겠다.
TTE
1011 TIL - Unity 오브젝트 풀링 (1) | 2024.10.12 |
---|---|
1007 TIL - 유니티 InputSystem (5) | 2024.10.07 |
1001 TIL - C# 프로젝트 4일차 (0) | 2024.10.01 |
0930 TIL - 프로젝트 3일차 (1) | 2024.10.01 |
0927 TIL - 프로젝트 2일차 (1) | 2024.09.27 |