C# 콘솔창으로 게임 만들기(Day 7)

2023. 10. 20. 17:04Game Develop/C# Console Text RPG

오늘은 Priest의 스킬 시스템을 작성하고, 보스전까지 마무리 짓도록 하겠다. 예전에 등장 텍스트 출력을 위해서 만들어 두었던 Priest 클래스를 활용할텐데 그 전에 Boss 클래스를 만들어주어 Priest 클래스가 Boss 클래스를 상속받도록 해줄 것이다. 보스들의 스탯은 다를 수 있어도 스킬 갯수나, 행동은 서로 비슷하기 때문이다.

 

Monster 클래스를 상속 받는 Boss 클래스를 만들어 주었다.

이제 이 Boss 클래스를 Priest에 상속하여 주면, 자동적으로 Monster 클래스 또한 사용할 수 있게 된다.

 

Vampire의 스킬을 만들 때랑 거의 비슷하게 생성자는 위의 명령문 대로 기본 스탯을 설정해주고, 공격할 방식을 만들어주어 스킬 설정을 해주고 등장 텍스트를 출력해주도록 하였다. 다음은 SetSkill 메서드이다.

 

보스는 플레이어처럼 스토리를 거듭하면서 스킬을 하나씩 배우는 것이 아니기 때문에 시작부터 모든 스킬을 가지고 전투에 돌입할 수 있게 해주었다.

 
Priest의 스킬 목록
 

BossAction에 들어갈 메서드들 PriestSkill이 key고 value 값이다. 대리자로서 실행이된다.

 

Paralyzed의 SetParalyzed 메서드를 살펴보자 이는 Player 클래스에 있다.

 

변수를 선언해주고 마비 카운트가(paralyzeCount) 0 보다 크면 마비 상태에 걸리도록 설정해주고 그 밖은 마비 상태를 벗어난 것으로 설정해주었다. 이제 보스전 시스템만 갖춰주면 보스전도 원활하게 진행할 수 있다.

 

보스의 스킬을 랜덤으로 써주기 위해서 랜덤 스킬 변수 선언해서 BossBattle 메서드에 대입한다.

 

빨간 네모에 대해 설명하겠다.

 

player 가 마비 상태가 아닐시에만 공격할 수 있도록 조건문을 활용해 주었다.

 

boss 의 현재 체력이 0 보다 크다면 랜덤으로 스킬 사용

 

ranSkill 값이 PriestSkill의 범위를 벗어나는 것을 방지하기 위함

 

보스에게 죽임당했을 때 텍스트 출력해주고 Ending 메서드 실행

 

보스에게 죽었을 시 텍스트 출력문

Chapter1 메서드에 네모친 부분처럼 추가해주고 실행해보자!!

 

1) 사망 시

 
마비상태로 행동 입력 불가
체력을 30회복 했으나 최대 체력을 넘을 수 없음

보스한테 죽으면 이런 텍스트가 출력 되고 Ending 메서드가 실행돼서 진행 여부 선택 가능

 

 

2) 보스 처치 시

보스 처치시 이런 텍스트가 출력 되고 Chapter2로 넘어감

 

Chapter2 케이스 추가

 

Chapter2 메서드

 

CHAPTER2로 잘 넘어온 것을 확인할 수 있다.

 

마지막으로 플레이어가 스킬을 배울 수 있는 시스템만 만들어 준다면, 계획했던 기능들은 다 구현했다고 볼 수 있다. 그리하여, 다음 시간은 에피소드 이후와, 보스 처치 이후에 player의 능력치를 강화하거나 스킬을 배울 수 있는 메서드들을 구현하도록하겠다