토네이도에 관련된 코드는 거의다 spl-tornado.cc에 들어있음
적 움직이는 코드는 여기있음
저 _rotate라는 함수가 넉백된 위치를 찾아주는거 같으니 확인해보자
저게 적 돌리는 코드인데
재미있는게 도착지점이 시전자로부터 닿을 수 있는 공간이면 경로에 뭐가 걸리는지는 전혀 신경을 안쓴다.
이동 가능한 모든 지점 중에서 원래 도착지점과의 각도차이, 거리차이가 가장 작은 지점이 선택됨
돌죽에서 거리랑 각도는 이런 식으로 계산함.
위 코드에서 거리차이+각도차이*1.5가 최소인 지점이 최종도착지점이 됨
원래 도착지점이 비어있으면 거기가 되겠지
밑에 움짤상황을 예로 들자
몹이 토네를 쓰는 플레이어 옆에 나란히 붙어있는 상황이다.
원래는 우상 대각선 방향으로 돌아야 하지만 그 자리에는 이미 벽이 있어 막혀있는 상황이다
그러나 그 뒤의 공간은 플레이어에게 닿을 수 있는 공간이므로 도착지점으로 지정 가능하다
실제로 얼마나 도는지는 위치가 어떤지, 주변 지형이 어떤지, 토네를 시전하고 얼마나 턴이 경과했는지 등 여러 요인들이 복잡하게 작용하므로
움짤에서의 최종 위치에 맞춰서 각도 -4/3만큼 돈다고 가정하고 계산하자
흠
움짤 상황이랑은 조금 다르긴 하지만 어쨌든 벽을 넘어간다는걸 알 수 있다
근데시발 대낮에 내가 뭘하고 있는거지
댓글 0