먼저 엘린 내부 파일 중 AttackProcess.cs 파일 코드 내용임을 밝힘
필요한 부분만 따와서 설명하자면
--
if (CC.HasCondition<ConWeapon>())
{
conWeapon = CC.GetCondition<ConWeapon>();
num4 = conWeapon.sourceElement.id;
num5 = conWeapon.power / 2;
num6 = (int)Mathf.Min(40f + MathF.Sqrt(conWeapon.power), 80f);
}
//
무기 속성버프(=노래)(ConWeapon)가 있을때
속성 할당(num4)
속성 상태이상 위력 할당(num5) // 속성별 디버프 걸때 확률 영향
속성 변환율 할당(num6) // 40+(속성 위력의 제곱근) 또는 80 중 낮은 수치로 >> 최대 80%라는 뜻
노래의 경우 속성위력=스펠파워라고 생각하면 됨, 따라서 1600일때 최대치였던걸로 기억
독수 에테르병은 맨손 or 격투무기일때 독속성 변환율 50%로 계산함
속성버프 없을때만 적용되서 노래 있으면 노래속성 따라가고 독속성 부여안됨
--
long num7 = num;
long num8 = num * num6 / 100;
num -= num8;
long num9 = num * penetration / 100;
num -= num9;
num = TC.ApplyProtection(num) + num9 + num8;
int weaponEnc = GetWeaponEnc(CC, weapon, 609, addSelfEnc: true);
TC.DamageHP(num, num4, num5, (!IsRanged && !isThrow) ? AttackSource.Melee : AttackSource.Range, CC, showEffect, weapon);
//
베이스뎀 저장(num7) // 나중에 배시같은 추가타 계산할때 사용함
속성변환율만큼 데미지 저장하고 원래 데미지에서 차감(num -= num8)
관통율만큼 데미지 저장하고 원래 데미지에서 차감(num -= num9)
남은 데미지에서 뎀감 계산(ApplyProtection(num)) 후에 저장해뒀던 속성뎀, 관통뎀 합산(+ num9 + num8)
weaponEnc 부분은 부적절약 인챈트 수치값 미리 불러오는 코드(부적, 노래 횟수 차감할때 확률로 차감안함)
최종 합산된 데미지값으로 피해 입히는 코드(DamageHP)
--
3줄 요약하자면
1. 데미지 계산은 속성변환>관통>뎀감 순으로 넘어간다
2. 속성변환율은 노래 스펠파워 1600일때 최대치(80%), 그 이상은 상태이상 위력, 확률에만 영향 줌
3. 따라서 노래 80%+관통 60%면 92%만큼 뎀감무시
반마법 데미지증폭은 무속성일때만 적용되서 고관통무기가 효율 높음, 증폭수치는 (반마법/2)%
근데 반마법이 음수일 경우 반마법 -수치만큼 스펠파워가 %로 오름...
그나마 마법강화랑 합연산이고 받는 속성피해가 늘어나지만
그건 내성으로 어느정도 커버되고 마나도 -수치만큼 늘어나서 법사가 더 잘쓰는 괴상한 인챈트
아 맞다 공격자체는 속성으로 박히는거라 원소내성으로 인한 뎀감은 최종데미지 기준으로 다시 계산함