게임 개발/Tower of Rings

6/25 - 링 ID 7, 8, 19번

CastleMouse 2022. 6. 25. 23:46

오늘의 결과

 

오늘은 7(생산), 8(약탈), 19(사령관)번 링을 구현했다. 직전에 쓴 글을 보니까 뭘 구현한건지 별로 설명이 잘 안된 것 같아서 오늘부터는 링 설명도 조금 추가하려고 한다. 7, 8번은 RP(링 생성시 소모하는 것)를 생산하는 링이고 19번은 타겟이 랜덤인 링들에게 일정 확률로 공통 타겟을 정해주는 링이다. 짤에서 보이는 세/네/다섯번째의 링(파랑, 군청, 노랑)이 각각 7, 8, 19번이고, 첫번째(하늘색)는 타겟 수를 늘리는 시너지를 가진 1(전기)번 링, 두번째(초록색)는 타겟이 랜덤인 5(맹독)번 링이다.

 

1) 보다시피 5번 링은 1번링의 공격 범위 밖이라 타겟수 버프를 받지 않음에도 19번 링의 범위 내 가장 앞쪽 몬스터를 일정 확률로 공격하고 있다. 이는 타겟이 랜덤이기 때문으로, 다른 타겟이 랜덤인 링들을 놓더라도 같은 대상을 공격한다. 만일 19번 링이 여러개라면 각 링들은 가장 가까운 19번 링을 기준으로 가장 앞쪽을 공격한다. 19번 링이 생성/제거될 때마다  모든 링들의 commanderNearest(가장 가까운 19번 링)가 갱신되도록 하였으며, 19번 링 자체는 commanderTarget(가장 앞쪽 몬스터)을 매 프레임마다 갱신하도록 했다.

 

2) 7번 링은 기본 공격력이 5이며 자신의 공격 쿨타임마다 공격력만큼 RP를 생산한다. RP 생산은 GenerateRP()라는 함수로 한다(이 함수는 8번 링이 RP를 생산할 때도 공통적으로 쓰인다. RP를 생산하고-동시에 RP에 영향을 받는 UI들이 바뀌고- 링 자체에 RP 생산 파티클을 플레이한다). 시너지로는 같은/다른 타입 링들의 공격력을 10/5% 높여주는데 자세히 보면 1번 링의 공격 데미지가 6.3(6의 1.05배)로 찍히고 있다. 다만 몬스터들의 HP를 나타낼 때는 실제로는 소수점이 있어도 소수점을 버림하여 표현하고 남은 HP가 1 미만일때는 1로 표현하도록 했기 때문에 계속 정수형으로 나타난다. 

 

3) 8번 링은 기본 공격력이 1이며 공격할 때마다, 즉 타겟에 bullet이 적중할 때마다 공격력만큼 RP를 생산한다. 시너지로는 같은/다른 타입 링들의 공격 쿨타임을 15/8% 감소시켜준다. 즉 이 링은 타겟의 수에 RP 생산량이 영향을 받는다. 짤에서는 현재 1번 링의 범위 안에 있어 타겟 개수가 2개로 늘어났고, 따라서 공격할 때마다 RP가 1씩 빠르게 두 번 증가 나타나는 것을 볼 수 있다.

 

4) 이렇게 7, 8번 링으로 RP를 생산하면, 기존에 RP가 부족해서 작동하지 않던 버튼들은 다시 생산/제거 가능하다는 의미로 하단의 덱이 회색에서 햐얀색으로 변하고 실제로 생산/제거할 수 있게 된다. 짤에서는 다시 충분한 RP가 생성되자 오른쪽 하단에 마지막으로 생성했던 19번 링을 제거하는 모습을 볼 수 있다.

 

5) 저번에 글 써놓고 보니까 링이 공격할 때마다 애니메이션이 나타나야 하는데 안 나타나서 코드를 다시 확인해보니 공격부분을 고치면서 애니메이션을 삭제해버렸었다. 다행히 한줄이라 빠르게 복구했다. 근데 위에 짤 보니까 7번 링이 링 생산할 때 애니메이션이 없다...(참고로 19번은 애초에 공격이 없어서 애니메이션이 필요 없음). 7번은 공격 쿨타임이 될 때마다 TryShoot()함수가 아닌 GenerateRP()함수가 불리기 때문에 애니메이션 넣는 것을 깜빡했다. 내일 저것부터 고쳐야겠다. 이렇게 하루에 개발하고 일기를 쓰면 좋은 점이, 오늘 게임 만들면서 뭘 빼먹었나 알 수 있다는 것이다.

 

다음은 Bullet이 아닌 다른 종류의 투사체를 발사하는 링 두 개(11-가스, 18-결계)를 구현해야 한다. 내일부터 SUAPC에 같이 나가기로 한 팀원들과 학교 랩실에서 같이 이전 대회 문제를 풀어보기로 해서 이전보다는 시간이 빠듯할 것 같다. 그래도 최대한 열심히 해봐야겠다.

- 링 ID 11, 18번 구현

 

'게임 개발 > Tower of Rings' 카테고리의 다른 글

6/29 - 링 ID 12~15번  (0) 2022.06.30
6/28 - 링 ID 11, 18번  (0) 2022.06.29
6/23 - 링 ID 3~6, 9~10번  (0) 2022.06.23
6/22 - 링 ID 1, 2번 & 시너지 적용 방식 변경  (0) 2022.06.23
6/19 - 링 ID 0번 구현  (0) 2022.06.20