오늘은 아주 중요한 것을 구현했다. 바로 링의 공격! 베이스 링이나 다름없는 ID 0번 링을 구현했다.
1) 링의 올바른 위치를 파악할때와 같은 방식으로 공격 범위 안에 있는 오브젝트들을 체크하여 몬스터인 경우 공격 대상들을 의미하는 targets 리스트에 넣었다.
2) 각 Ring의 공격은 다음의 순서로 이루어진다.
a. targets 리스트를 받아온다.
b. 공격할 몬스터 수를 정한다. 이는 링의 "타겟 수 스탯"과 "targets 리스트의 원소 개수" 중 더 작은 값이다.
c. 링의 종류에 따라, 무작위로 또는 targets를 정렬한 뒤 앞에서부터 공격 대상으로 삼는다.
b. 각 공격대상 마다 Bullet을 오브젝트 풀에서 가져와 부모(현재 Ring)와 타겟을 정해준 뒤 활성화한다.
e. Bullet은 몬스터를 향해 이동한다. 부모 Ring이 이동 중간에 사라지거나 타겟 몬스터가 이미 사망하면 불렛은 바로 사라지고, 부모 Ring은 아직 남아있는 상태라면 해당 Ring의 공격 쿨타임을 조정하여 바로 다시 발사할 수 있게 한다.
f. Bullet이 몬스터에 닿으면 Ring은 링의 종류에 따라 알맞은 공격 효과를 낸다.
3) Ring을 필드에 배치할 때 시너지 또한 계산되어야 한다. 이는 다음의 순서로 이루어진다.
a. nearRing 리스트를 받아온다. targets와 같은 방식으로 근처의 링들을 가져오되 자신은 제외하도록 한다.
b. 현재 Ring의 종류에 따라, 리스트의 각 Ring들의 스탯을 증감한다.
c. 리스트의 각 Ring의 종류에 따라, 현재 Ring의 스탯을 증감한다.
다음 개발일 부터는 할 수 있는 만큼 링을 구현하기. 아무래도 내일은 다시 서울 올라가느라 정신 없을거고 낼 모레도 약속이 잡혀있어서 개발이 힘들것이다. 그러므로 22일 수요일부터, 하루에 많이는 아니더라도 최소 세 개씩은(그 이상이면 더 좋고!) 구현하는 것을 목표로 해야겠다.
- Ring ID 1~3번 구현하기
'게임 개발 > Tower of Rings' 카테고리의 다른 글
6/23 - 링 ID 3~6, 9~10번 (0) | 2022.06.23 |
---|---|
6/22 - 링 ID 1, 2번 & 시너지 적용 방식 변경 (0) | 2022.06.23 |
6/18 - 링 공격 구현 시 필요한 것들 준비하기 (0) | 2022.06.19 |
6/17 - 링 제거 & 인게임 UI (0) | 2022.06.17 |
6/15 - 링 배치하기 (0) | 2022.06.16 |