오늘은 링 ID 12(저격), 13(마비), 14(연사), 15(슬레이어)번 을 구현했다. 짤의 앞쪽 네개가 12, 13, 14, 15번 링이다. (마지막은 19번 사령관 링으로 연사 링의 타겟이 랜덤이기 때문에 이를 테스트하는 용도로 넣어놓았다.)
1) 12번 링은 가장 HP가 높은 적을 공격한다. 따라서 10(약자)번 링을 구현했을 때처럼 타겟을 HP순으로 정렬하되 내림차순으로 정렬하여(OrderByDescending) 리스트 앞쪽부터 공격하도록 했다.
2) 13번 링은 앞쪽부터 공격하여 일정시간 마비시킨다. 3(눈꽃)번 링 처럼 공격 시 paralyzeTime과 paralyzeEndTime을 갱신하며, 마비가 지속되어야 하는 경우 몬스터의 curSPD를 0으로 만들어 움직이지 못하도록 했다.
3) 14번 링은 랜덤한 타겟을 공격한다. 5(맹독)번 링과 동일하게, 자신의 공격 범위 안에 몬스터가 들어오는 순간 가장 가까운 사령관 링의 범위 내 가장 앞쪽 몬스터도 일정확률로 공격하도록 하였다.
4) 15번 링은 엘리트/보스 몬스터를 앞쪽부터 먼저 공격하고 남은 타겟 개수만큼 일반 몬스터를 공격한다. 그래서 타겟을 계산할 때, 다른 링들과 다르게 리스트를 두번 순회한다. 첫번째 순회에서는 엘리트/보스를 탐색하여 Bullet을 생성하고 numTarget값을 줄여준다. 이때 반복문의 탈출 조건은 인덱스가 리스트의 끝이거나 numTarget == 0인 경우이다. 두번째 순회에서는 일반 몬스터를 탐색하여 Bullet을 생성하고 numTarget 값을 줄인다. 반복문의 탈출 조건은 엘리트/보스와 동일하다.
내일 해야할 일은 마찬가지로 링 ID 16번부터 쭉 구현하기이다. 참, 생각해보니 17(탐욕)번은 공격이 없고 오직 게임 종료 후 얻는 보상에만 영향을 미치기 때문에 가장 마지막으로 구현하는 링이 될 것 같다. 그러니 17번은 빼두고 16, 18, 19, ... 이렇게 구현해나가겠다.
- 링 ID 16~ 번 구현
'게임 개발 > Tower of Rings' 카테고리의 다른 글
7/3 - 링 ID 22~24번 (0) | 2022.07.04 |
---|---|
6/30 - 링 ID 16번 // 7/1 - 공격 파티클 개편, 링 ID 20, 21번 (0) | 2022.07.02 |
6/28 - 링 ID 11, 18번 (0) | 2022.06.29 |
6/25 - 링 ID 7, 8, 19번 (0) | 2022.06.25 |
6/23 - 링 ID 3~6, 9~10번 (0) | 2022.06.23 |