feat: 젬 반복 시전 로직 및 테스트 프리셋 추가
- SkillGemData에 카테고리, 시전 속도 배율, 추가 반복 횟수 필드를 추가함 - SkillLoadoutEntry가 젬 합산 기준 최종 속도와 반복 횟수를 계산하도록 확장함 - SkillController가 반복 횟수만큼 스킬을 재시전하고 시작 효과와 OnEffect를 매 반복에 다시 적용하도록 수정함 - 연속 젬과 반복 젬 테스트 프리셋을 추가하고 디버그 메뉴에 적용 및 계산 로그 경로를 보강함 - 공격형 테스트 젬 자산과 추가 대미지 이펙트를 정리하고 무젬 35, 반복 젬 70 피해를 검증함
This commit is contained in:
@@ -135,6 +135,48 @@ namespace Colosseum.Skills
|
||||
return resolved;
|
||||
}
|
||||
|
||||
public float GetResolvedAnimationSpeed()
|
||||
{
|
||||
if (baseSkill == null)
|
||||
return 0f;
|
||||
|
||||
float resolved = baseSkill.AnimationSpeed;
|
||||
if (socketedGems == null)
|
||||
return resolved;
|
||||
|
||||
for (int i = 0; i < socketedGems.Length; i++)
|
||||
{
|
||||
SkillGemData gem = socketedGems[i];
|
||||
if (gem == null)
|
||||
continue;
|
||||
|
||||
resolved *= gem.CastSpeedMultiplier;
|
||||
}
|
||||
|
||||
return Mathf.Max(0.05f, resolved);
|
||||
}
|
||||
|
||||
public int GetResolvedRepeatCount()
|
||||
{
|
||||
if (baseSkill == null)
|
||||
return 0;
|
||||
|
||||
int resolved = 1;
|
||||
if (socketedGems == null)
|
||||
return resolved;
|
||||
|
||||
for (int i = 0; i < socketedGems.Length; i++)
|
||||
{
|
||||
SkillGemData gem = socketedGems[i];
|
||||
if (gem == null)
|
||||
continue;
|
||||
|
||||
resolved += gem.AdditionalRepeatCount;
|
||||
}
|
||||
|
||||
return Mathf.Max(1, resolved);
|
||||
}
|
||||
|
||||
public void CollectCastStartEffects(List<SkillEffect> destination)
|
||||
{
|
||||
if (destination == null)
|
||||
|
||||
Reference in New Issue
Block a user