[DrugWars] 전쟁 시스템 업그레이드 분석 (소스기반) - Analysis of Battle system: skills and upgrades (by Source)
https://drugwars.io
오늘 Drugwars의 전쟁 방식이 업그레이드되어 적용이 되었습니다.
어제 변화가 있다고 @drugwars에 공지글이 있었는데, 간력한 내용은 이전 글 [DrugWars] 전쟁 시스템 업그레이드 분석 - Analysis of Battle system: skills and upgrades을 참고하세요.
위의 내용은 개략적인 내용만 있어서 소스를 통해서 구체적으로 어떻게 변화되었는지 살펴보겠습니다.
참고로 저는 개발자는 아닙니다. 그냥 예전에 배운 것을 기초로 소스 분석만 조금 할 줄 아는 정도입니다.
먼저 공지에 나왔던 큰 변화 내용부터 살펴보겠습니다.
- 기존 동일 Unit의 Group단위 (Troop이라고 표현했었죠) 전투가 아니라 Unit의 각자 전투로 변경됩니다. (Troop의 컨셉이 사라집니다.)
- 특정 Unit에 특별 스킬이 추가됩니다. 1차로 Bazooka에 대해서 적용이 되고, 추후에 확대 예정입니다.
- 공지에는 없었지만, Hobo, Spy라는 신규 Unit이 생겼습니다.
큰틀의 공방전
- 서로의 Army를 이용하여 공격을 하는데, 실제 공격으로 인한 damage를 계산한후, takeDamages라는 함수를 이용하여 Damages를 적용합니다.
- 상호간 Damages를 적용한후에 살아남은 병력이 있다면 다시 라운드를 시작합니다. 라운드는 최대 5번까지 진행이 됩니다.
- 큰 틀은 변경된 사항이 없습니다.
Unit들간의 공격순서
- 이전과 같이 "priority"라는 것을 기준으로 정렬을 합니다. 이는 공격자나 Target의 군대가 모두 동일한 기준으로 정렬됩니다. 각 Unit별로 priority 값은 다음과 같습니다.
Unit | Priority |
---|---|
Hobo | 30 |
Rowdy | 50 |
Bouncer | 55 |
Knifer | 60 |
BigMama | 65 |
Ninja | 70 |
Gunman | 75 |
Sniper | 80 |
Hitman | 85 |
Bazooka | 90 |
Mercenary | 100 |
Spy | 120 |
위 그림의 1번은 hobo를 데미지 계산할때 사전에 미리 제외하는 부분입니다.
- 깍뚜기는 빠져라 이거군요.
- 여기에 미세한 버그가 있습니다. 전쟁에 영향을 주지는 않지만. 미리 제외를 했기때문에 실제로는 1라운드에서 죽었지만, 2라운드 이후에서도 유령처럼 로그가 남습니다. (There is a bug at this point.)
위 그림의 2번은 데미지를 입히는 순서입니다. 스킬을 가진 놈이 먼저 데미지를 입히고 나서, 나머지 Unit들이 순서대로 공격을 하는 것이죠.
- 제가 잘 못본 것인지는 모르겠지만, takeNormalDamages 함수도 제대로 만든 것은 아닌거 같네요. 어설퍼요.
그러하면 공방의 순서는 다음과 같이 됩니다.
- 공격자의 경우 스킬이 있는 Bazooka가 제일 먼저 공격
- 공격시 공격력이 없는 Spy는 제외
- 방어시 방어력이 없는 Hobo는 제외
양쪽의 각 Unit들을 Priority 기준으로 줄을 세운 다음 줄다리기할때처럼 마주세운뒤 (각자 서로 마주보는 것이 아닙니다.) 상대방이 죽을때까지 순서대로 공격을 합니다. 죽으면 다음순서가 나오는 식이죠.
양쪽의 공격이 한바퀴 돌아서 끝나면(방어가 끝나면) 한 라운드가 끝나고 살아남은 Unit이 있다면 위의 "큰틀의 공방전"에 의해서 다시 다음 라운드가 시작됩니다.
결론
- 시뮬레이터의 도움이 없이는 공방에 대해서 계산하기기 쉽지 않을거 같네요. 스킬이 있는 Unit 이 더 확대가 된다면 더 복잡해질듯..
지난글
방치형 게임. 같이 해보지 않으시렵니까?
https://drugwars.io
@umkin님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!
복잡해지지만 drugwars 팀이 아주 열일하는것 같아 좋습니다~ㅋㅋ
예스, 인포! 80 YESJAM!
YES TOKEN 은 https://steem-engine.com/?p=market&t=YES 에서 스팀잇 아이디로 로그인하시면 거래가 가능합니다~
Hi @tinker-bell!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 1.328 which ranks you at #43799 across all Steem accounts.
Your rank has not changed in the last three days.
In our last Algorithmic Curation Round, consisting of 204 contributions, your post is ranked at #192.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server