꽤 넓은 맵에서, 전투를 자주 발생시키기 위해서 그냥 단순히 몹을 많이 소환하면 되겠지만, 이 경우에는 조절을 조금 잘못하면 진짜 끊임없이 전투가 발생하고 존나 피로해지는 문제가 발생함...

그래서, 몹 수는 줄이는 대신 전투의 밀도를 높이기 위해서 구역 시스템을 기획함...


a7681caa121f782aae5b5a67c29f343323a7238bb640c13be782ba369661

이런 식으로 맵의 구역을 에디터상에서만 보이는 타일맵을 통해 나누어줌


흰색은 도로 부분으로, 구역으로 취급되지 않고, 적 스폰을 좀 줄여서 어쩌다가 한 두 개체 정도를 만나는 수준으로 만들것이며, 이 도로에서는 무한히 적이 스폰됨.

나머지 색칠한 부분은 모두 구역이고, 여기서는 사전에 내가 랜덤한 4~5 개체가 배정된 분대 편성 몇가지를 넣고, 스폰시킬 예정.

게임의 모든 루팅 포인트는 구역 안에 밀집되어있고, 따라서 플레이어는 구역으로 들어가서 전투를 시행, 그리고 안의 재료들을 파밍하는 형태로 플레이하게 될거임.

이렇게 되면 도로에서는 간간히 적을 마주하다가, 마음에 드는 파밍 포인트로 들어가 조금 더 어려운 전투를 시행하고, 안에 있는 재료들을 파밍하는 형태가 되겠지? 모든 구역을 파밍할 필요는 없겠지만, 많은 로그라이크/트에서 등장하는 일종의 "노드" 시스템처럼 작동하게 될거임.


a7681caa121f782aa95f5a75e391a8e0e10214c6e268b4fc370c0c50e6dca35ba3ccf479

코드는 대충 이런 식으로 짰음. 의도한 동작은 아래와 같음

1. 턴 종료시 클리어가 되지 않은 구역에 플레이어의 유닛이 한명이라도 들어가 있을 시, 해당 구역을 다음 작전 구역으로 설정

2. 작전 구역이 활성화 될 때 까지 3턴의 유예가 있으며, 3턴의 유예 후에는 구역 밖의 모든 플레이어 유닛의 체력이 턴당 1 감소함.

3. 아직 구현되지는 않았지만, 작전 구역의 모든 적을 섬멸하면, 작전 구역 해제.

위의 코드를 실행 시켜보면 실제로 아래처럼 동작함




a7681caa121f76b660b8f68b12d21a1d5d50cc136fa7



a14110aa1d3a76b660b8f68b12d21a1ddd7335aef957

우측의 슬라임이 구역 안에 들어있는채 턴이 종료되어서, 구역의 외곽선 부분에 구역을 알리기 위한 주황색 + 보라색의 선이 표시되기 시작. +  왼쪽 아래에 3턴 이내에 구역으로 들어가라는 알림



a16f04ad2517782cbe4f5a53fa9f3433080c1f614568651fe8cf729a3f

이렇게 3턴동안 안들어가고 밖에서 뻐기면 매 턴 피해를 입히고


a17921ac3536b4519eff5d57ee5bf4dd8723b85943814fa433f74468a012d7de0d8c19ee780d115086d716e7e69e7d11db

구역 안에 있던 유닛이 나가도 피해를 입음





a05904666910dd2dad535a5eea91aee8cf9f6d9e16d24101903bf808faa51a104c6ffce91768537f9f03aaa401ea472897bbc55397598c9f07e5bf31cb52bc4021e46e82817329

이런 식으로 애초에 구역에 안 걸치면, 작전 구역이 안생기는것도 확인 가능함

이제 이 구역마다 적을 배정하고, 해당 구역이 클리어 되었는지 확인하는 시스템을 만들어야한다...