팀과제의 시작 날이다.
본래 화요일부터 팀과제를 하게끔 되어있었지만 우리조는 나를 포함한 모두가 실력부족을 통감하고 목요일까지 개인학습을 하기로 정했었다.
그리고 어제 저녁 팀 회의때 각자 역할 분담을 하고 오늘부터 시작이다.
오늘의 작업
나는 EnemyPhase를 구현하는 쪽을 맡게 되었다.
내가 구현해야할 내용들은 이렇다.
일단 형식에 맞게 작성을 해주되, 기존에 작성했던 적 데이터를 기반으로 작성하면 될 것이다.
또한 미니언의 기본공격력은 5이지만 6 혹은 4의 데미지를 넣게끔 해주면 되는것 같다.
주어진 내용을 바탕으로 나름대로 구상을 해보기 시작했다.
일단 EnemyPhase라는 메서드를 만들고 위의 표시내용을 그대로 구현해보았다.
값이 들어갈 수 있는 틀을 짜줬다고 해야할까?
각 몬스터별로 레벨 이름 공격력이 다르기 때문에 EnemyPhase의 매개변수에 레벨 이름 공격력을 넣어주었고, 그에 맞게 내용을 수정하였다.
그리고 데미지를 오차범위 ±1로 왔다갔다 하려면 랜덤을 써줘야한다는 생각이 들었다.
랜덤 클래스를 활용하여 새로운 랜덤항목을 객체화해준뒤, Next(a, b)가 a이상 b미만의 값에서 랜덤하게 지정해주는 것을 활용하여 데미지 오차범위 ± 1을 지정해줬다.
그리고 적의 공격데미지만큼 플레이어의 체력도 감소하게끔 playerStat.HpValue에서 atkDamage만큼 빼줬다.
완성된 EnemyPhase 다.
그리고 적들에게 이 메서드를 적용시켜줄 메서드를 각각 만들었다.
이렇게 하면 전투하는 적이 미니언일때는 미니언의 수치가, 공허충일때는 공허충의 수치가, 대포미니언일때는 대포미니언의 수치가 적용된다.
Battle 메서드를 임의로 작성하여 EnemyPhase를 구현한 뒤 시험작동해보았다.
첫 대포미니언은 기본데미지인 8을 주고 두번째 대포미니언은 9의 데미지를 주었다.
그리고 플레이어의 체력은 첫번째 두번째 공격을 받고 총 17이 감소되었다.
정상적으로 작동되는 모습이다.
오늘의 회고
오늘은 기존에 잊고 있었던 Random 클래스를 적극 활용하여 적이 주는 데미지에 변주를 주었다.
백문이 불여일견이라고 구글링 열심히 하고 읽어보는것보다 한번 코드를 작성하는 것이 훨씬 빠르게 이해가 되었다.
이제 내가 구현한 부분에서 팀원들과 맞춰서 추가하거나 뺄 내용을 찾고 그 작업을 하기만 하면 될 듯 하다.
이번 한주는 참 쉽지 않았다. 그래도 팀과제를 시작하며 배운것을 활용하여 결과물을 내니 그동안 배운게 헛게 되지는 않았구나 하는 생각이 들어 안심이 되었다.