Beispiel #1
0
    protected void HandleBuff(Buff buffData, EntityParent caster, EntityParent target, int fromSkillID, int fromSkillLevel, XDict <GameData.AttrType, BattleSkillAttrAdd> fromSkillAttrChange, bool isCommunicateMix = false)
    {
        if (buffData.tempSkill > 0)
        {
            this.AddSkill(target.ID, 0, buffData.tempSkill, 1);
        }
        switch (buffData.type)
        {
        case 1:
            if (buffData.immediateEffect == 1)
            {
                LocalBattleBuffCalculatorDamageHandler.HandleBuff(buffData, caster, target, fromSkillID, fromSkillLevel, fromSkillAttrChange, isCommunicateMix);
            }
            break;

        case 2:
            if (buffData.immediateEffect == 1)
            {
                LocalBattleBuffCalculatorTreatHandler.HandleBuff(buffData, caster, target, fromSkillID, fromSkillLevel, fromSkillAttrChange, isCommunicateMix);
            }
            break;

        case 3:
            LocalBattleBuffTauntHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 4:
            LocalBattleBuffFixHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 5:
            LocalBattleBuffStaticHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 6:
            LocalBattleBuffShiftHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 7:
            LocalBattleBuffChangeAttrsHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 8:
            LocalBattleBuffSuperArmorHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 9:
            if (buffData.immediateEffect == 1)
            {
                LocalBattleBuffDrainHandler.HandleBuff(buffData, caster, target, fromSkillID, fromSkillLevel, fromSkillAttrChange, isCommunicateMix);
            }
            break;

        case 10:
            LocalBattleBuffIgnoreFormulaHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 11:
            LocalBattleBuffCloseRendererHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 12:
            LocalBattleBuffMoveCastHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 13:
            LocalBattleBuffFilterHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 14:
            LocalBattleBuffDizzyHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 15:
            LocalBattleBuffUnconspicuousHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 16:
            LocalBattleBuffAuraHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 17:
            LocalBattleBuffWeakHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 18:
            LocalBattleBuffIncurableHandler.HandleBuff(buffData, caster, target, fromSkillLevel);
            break;

        case 19:
            if (buffData.immediateEffect == 1)
            {
                LocalBattleBuffCalculatorTreat2Handler.HandleBuff(buffData, caster, target, fromSkillID, fromSkillLevel, fromSkillAttrChange, isCommunicateMix);
            }
            break;
        }
    }