a.atk - (a.atk.to_f * ((b.def.to_f / 100.0) - ((b.def.to_f / 100.0) * (a.luk.to_f / 100.0))))
메이플스토리의 데미지 계산은 원래는 훠얼씬 복잡합니다만(속성 내성 감소며, 최종뎀이며, 숙련도며...) 여기선 간단하게
공격력(또는 마력), 적의 방어율, 방어율 무시 세 요소만 추려서 짜 본 계산식입니다.
공격력 부분은 a.atk, 적의 방어율은 b.def, 방어율 무시는 a.luk입니다.
공격력 100, 방어율 무시 80의 스펙으로 방어율 70의 핑X빈몬스터를 공격한다고 가정합시다.(분산도 0)
각 요소를 대입해서 계산해보면
100 - (100 * ((70 / 100) - ((70 / 100.0) * (80 / 100))))
100 - (100 * (0.7 - (0.7 * 0.8)))
100 - (100 * (0.7 - 0.56))
100 - (100 * 0.14)
100 - 14 = 86
최종적으로 86의 데미지를 입히게 됩니다.(예시 - 나무위키)
일단 이렇게 짜보긴 했는데 더 간단하게 만들 수 있을까요?