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);
        }
    }
Exemple #2
0
    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");
    }