이 블로그 검색

2021년 5월 10일 월요일

HOMM3 - Spell Fire Shield 데미지 계산식.

 

전투마법, 보조마법(버프)  - 
"불방패" (4)

16 스펠포인트를 사용하며, 1 Spell Power당 1라운드로 작동한다. 

Basic : 방어자가 받은 근접데미지의 20%의 데미지만큼, 공격자에게 불속성 마법데미지를 입힌다. 

Spell points 소모는 Basic 부터 12이다. 

Advanced : Basic과 같다. 다만 25%

Expert : Basic과 같다. 다만 30%


위에 적힌 부분이 원래 공개된 Fire Shield Spell의 효과이다. 

다만 적힌 부분만 가지고는 정확한 데미지를 산출할 수 없다. 그렇기에 풀어서 설명하고자 한다. 


이 글에서 이야기하고자 하는 부분은 바로방어자가 받은 근접데미지의 양을 어떻게 정하는지에 대한 이야기이다. 



HOMM3에서의 전투데미지는 다음과 같이 정해진다. 

유닛의 기본 데미지 능력치와 숫자로 정해지는 기본데미지에 공격력, 방어력, 공격술, 방어술과 같은 요인들에 의해서 조정이 되어 정해진다. 


먼저 기본데미지를 보자

한 스택의 유닛의 수가 10이하일 경우, 최저데미지에서-최고데미지까지 주사위를 유닛의 숫자만큼 돌려합해 기본데미지를 구한다. 

  10을 넘어설 때는 먼저 10번의 주사위를 굴린 후, 합한다. 그 후 (유닛수/10)을 곱하여 기본데미지를 구한다. 

그 이후 다음과 같은 공식을 적용한다. 

기본데미지 x (1 + I_1+I_2+I_3+I_4+...) x (1- R_1) x (1- R_2 -  R_3) x (1 - R_4) x (1- R_5)...

I_1과 R_1은 공격력 방어력에 의해 정해지며, 둘중에 하나만 적용이 된다. 

공격자와 방어자의 공방차가 0보다 클 때는, I_1값이 정해진다. 

I_1은 공방차x 0.05  (5%) 이다. 다른 조정수치가 없이, 공방차가 20이 나면 두배의 데미지를 입힐 수 있다.  최대 값은 3이다. (공방차 60 이상은 60과 동일)

그 반대인 방공차가 0보다 클 때는, R_1값이 정해진다. 

R_1은 방공차x0.025 (2.5%) 이다. 이 값도 다른 조정수치가 없을 때, 방공차 20이면 절반의 기본데미지를 입게 된다. 


그외 I_2 등등에 해당하는 값들은, 공격술, 궁술, 포술, 증오(50%), 행운, 반대속성정령(100%) ,데스블로우 등이 있다. 

그리고 R_2등등에 해당하는 값들은 방어술(R_3는 방어술특화{타자르 등}로 같이 묶임), 정신마법면역(정신의정령 공격에 50%), 모든마법면역(마법의정령 공격에 50%), 불행 등이다. 


여기서 불방패 마법에서 받는 근접데미지의 영역은 기본데미지에 공격자의 조정치까지이다. 

불방패 마법의 철학은 다음과 같다고 생각하면 된다. 니가 쎄게 때리려고하면 할 수록, 더 많은 반사데미지가 돌아가겠지만, 내가 잘나서 덜 입는 데미지에 의해서 손해는 보지 않겠다. 

상대방의 강점은 모두 돌려준다. 

나의 이점은 모두 살린다. 

라고 할 수 있다. 앞의 이 데미지만 가지고 결정되는 것은 또 아니다. 유닛 1기만 가지고 강한 유닛을 때려서 자폭하는 것을 막기 위해,  한가지 요건이 더 들어간다. 

만약, 맞아서 불방패 걸린 스택이 죽는 경우에는 [기본데미지x상대방이점] 을 대신해, 총 체력으로 바꾸어 이후 계산을 이어 간다. 


이제 방어자가 받은 데미지의 x%까지 해석이 끝났다. 이제 남은 것은 불속성 마법데미지이다. 

불속성이기 때문에 불오브의 효과를 받아 150%의 곱효과를 받을 수 있으며, 물과 얼음의 정령은

두배의 데미지를 입는다.(맞나?) 그리고 불면역 유닛은 면역이다. 

여기에 마법데미지이기 때문에, 마술효과를 받을 수 있으며, 골램은 데미지가 반감된다. 

모든마법면역은 작용하지 않느다. 


자 정리하면 다음과 같다. 

1. 불방패 걸린 유닛이 근접공격에 맞았을 때, 죽지 않는다면 기본데미지에 공격자 이점을 모두 곱한 데미지의 x%의 불속성마법 반격데미지를 입힌다. 

2. 만약 죽게되면, 총체력에 x%의 불속성마법 반격데미지를 입힌다. 

3. (버그) 만약, 불행에 의해서 죽어야하는데 죽지 않는 경우에는 2번을 적용한다. 이건, Hota팀에 버그리포팅을 해서 고치도록 해야한다. 



길게 썼지만 실제 게임에서 중요한건 다음과 같다. 

방어자가 잘 막는건, 불방패 데미지를 줄이지 않으므로 타자르를 사용하자. 

뒤에 1-R_1 어쩌고 저쩌고를 다 곱한 값이 불방패 데미지보다 작아지면, 내가 맞은 데미지보다 불방패 데미지가 더 크다. 이거 기분이 많이 나쁘다. 


오늘은 불방패에 대해 알아보았다. 

heroes3.thelazy.net에  불방패 데미지 부분을 내가 수정했는데, 위키가 통으로 날라가는 경우가 많아서 백업용으로 살려놔야겠다. 

댓글 없음:

댓글 쓰기

가장 많이 본 글