// 지속 효과 적용 방안
 // 버그 발생 확인 필요 : lambda로 캡쳐한 변수가 시간이 지나면 달라질 수 있음
 // 해결 방안 2 : Timer에는 id만 보내고 실제 내용은 CharacterPara에 LinkedList 만들어서 관리하기
 protected void ApplyPersistEffect(CUseEffect.PersistEffect persistEffect)
 {
     // 초기화 값이 들어가는거 방지용
     if (persistEffect.IsValid())
     {
         _buffTimer.Register(persistEffect.id, persistEffect.time, persistEffect.maxStack, persistEffect.increaseStack,
                             (int buffStack) => StartPersistEffect(persistEffect, buffStack),
                             (int buffStack) => EndPersistEffect(persistEffect, buffStack));
     }
 }
Beispiel #2
0
    public void Buff(int BuffID, float time, float buffScale)
    {
        switch (BuffID)
        {
        case CBuffList.AttackBuff:
            timer.Register(CBuffList.AttackBuff, time,
                           (int notUsed) => StartBuffAttack(buffScale),
                           (int notUsed) => EndBuffAttack(buffScale));
            break;

        case CBuffList.DefenceBuff:
            timer.Register(CBuffList.DefenceBuff, time,
                           (int notUsed) => StartBuffDefence(buffScale),
                           (int notUsed) => EndBuffDefence(buffScale));
            break;

        default:
            break;
        }
    }