1.

- 스킬 사용

- 스킬이 가진 기본 피해량, 범위 등의 데이터를 RunData로

- RunData가 갖고 있는 효과 목록 검사 후 있으면 계산, 없으면 패스

- 최종 계산 후 피격자에게서 TakeDamage 호출


장점 // 직관적임(아닌가?), 동적 변화를 그대로 적용함

단점 // 매 번 계산함 


2.

- 스킬 레벨업, 강화 등 변화가 생겼을 때 스킬별 대미지 계산 후 RunData에 저장

- 스킬 사용

- RunData에 미리 계산해둔 결과를 피격자에게서 TakeDamage 호출


장점 // 매 번 계산 안 해도 됨

단점 // 일시적인 버프, 치명타 유무, 스택 개수에 따른 대미지, 몬스터 타입에 따른 대미지 등등..

실시간으로 변화하는 경우가 많다면 별로 의미 없을 수 있음



3.

둘을 섞은 방식

- 스킬 레벨업, 강화 등 변화가 생겼을 때 스킬별 대미지 계산 후 RunData에 저장

- 스킬 사용

- 일시적인 강화 효과가 있는 경우,특정 대상에게 추가 피해, 치명타, 백어택 등 계산

- RunData에 미리 계산해둔 결과와 계산 후 피격자에게서 TakeDamage 호출


장점 // 유연함

단점 // 능지가 모자랍니다, 계산 순서 및 효과 적용 순서 등 기획 필요


46


2번 베이스에 짜잘한 것들만 추가 계산하는 방식으로 가야겠다..