제가 일반공격 계산식을 만들었는데 다음과 같습니다.
a.atk * (1 - b.def / (b.def + 100))
그런데 이 계산식을 적용하면, 몬스터 방어력으로 인한 데미지 감소가 안되고, 플레이어 공격력 액면그대로 들어갑니다.
이해를 돕기위해 예제를 하나 들겠습니다.
a.atk = 300 (플레이어의 공격력)
b.def = 80 (몬스터의 방어력)
이라고 가정하겠습니다.
그럼 플레이어의 공격력은 액면 그대로, 300의 피해량 을 갖고있습니다.
다음으로,
몬스터의 방어력은, 위 계산식대로 b.def / (b.def + 100) 를 통하여 0.4444..... 이라는 결과가 도출됩니다.
이는 피해감소(%) 로 나타내자면, 소수점 자르고 0.44 * 100 을 통하여, 44% 감소 라는 결론이 나옵니다.
+ 참고로 이 방어력 계산은 방어력이 아무리 높아도 점감식으로 적용되어, 절대로 숫자 1 이 될수 없습니다.
그리고.. 실질적인 데미지 감소를 위한 추가적인 식을 적용하여,
(1 - b.def / (b.def + 100)) 빨간부분 즉, 1 - 0.44 = 0.56 이라는 식을 만들어,
0.56 을, 플레이어의 공격력.. 즉, 300 에 곱해주면,
최종 피해량은 167 이 됩니다.
44% 감소된 56% 의 데미지 식 이 만들어집니다.
는 이론대로라면 이렇게 되야하는데, 왜 데미지 감소가 안될까요?
제가 뭔가 실수한걸까요?