protected void ApplyConditionalEffect(CUseEffect.ConditionalEffect conditionalEffect) { if (!conditionalEffect.IsValid()) { return; } int effectStack = _buffTimer.GetBuffStack(conditionalEffect.conditionEffectId); if (effectStack >= 1) { // 스택 관련 옵션 지정 - 클래스라 값이 누적되는지 확인 필요 if (conditionalEffect.isRelationStack) { conditionalEffect.effect.instantEffect.MultiplyPersant(effectStack * conditionalEffect.stackBonusRate); } TakeUseEffect(conditionalEffect.effect); } }
private static string CreateConditionalEffectText(CUseEffect.ConditionalEffect conditional) { if (conditional == null || conditional.conditionEffectId == 0) { return(""); } StringBuilder sb = new StringBuilder(); if (!DefinedUseEffectNameDict.TryGetValue(conditional.conditionEffectId, out var effectName)) { effectName = conditional.conditionEffectId.ToString(); } sb.Append(effectName + "상태인 경우 "); sb.Append(CreateUseEffectText(conditional.effect)); if (conditional.isRelationStack) { sb.AppendLine("중첩된 횟수만큼 " + conditional.stackBonusRate + "% 효과 증폭"); } return(sb.ToString() + "\n"); }