public static void HandleBuff(Buff buffData, EntityParent caster, EntityParent target, int fromSkillID, int fromSkillLevel, XDict <GameData.AttrType, BattleSkillAttrAdd> fromSkillAttrChange, bool isCommunicateMix) { LocalBattleBuffDrainHandler.AppBuffDrain(buffData, caster, target, fromSkillID, fromSkillLevel, fromSkillAttrChange, isCommunicateMix); }
protected void IntervalHandleBuff(int buffID, long targetID) { EntityParent entityByID = LocalAgent.GetEntityByID(targetID); if (entityByID == null) { return; } XDict <int, BuffState> buffListByEntityID = this.GetBuffListByEntityID(targetID); if (buffListByEntityID == null) { return; } if (buffListByEntityID.Count == 0) { return; } if (!buffListByEntityID.ContainsKey(buffID)) { return; } EntityParent entityByID2 = LocalAgent.GetEntityByID(this.buffStateTable[targetID][buffID].casterID); if (entityByID2 == null) { return; } Buff buffDataByID = LocalAgent.GetBuffDataByID(buffID); BuffType type = (BuffType)buffDataByID.type; switch (type) { case BuffType.Aura: entityByID.GetSkillManager().ClientCastSkillByID(buffDataByID.tempSkill); return; case BuffType.Weak: case BuffType.Incurable: IL_83: if (type == BuffType.Damage) { LocalBattleBuffCalculatorDamageHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } if (type == BuffType.Theat) { LocalBattleBuffCalculatorTreatHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } if (type != BuffType.Drain) { return; } LocalBattleBuffDrainHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; case BuffType.Theat2: LocalBattleBuffCalculatorTreat2Handler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } goto IL_83; }
protected void KillBuff(int buffID, long casterID, long targetID, int fromSkillLevel, bool isCommunicateMix) { Buff buffDataByID = LocalAgent.GetBuffDataByID(buffID); EntityParent entityByID = LocalAgent.GetEntityByID(casterID); EntityParent entityByID2 = LocalAgent.GetEntityByID(targetID); switch (buffDataByID.type) { case 1: LocalBattleBuffCalculatorDamageHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 2: LocalBattleBuffCalculatorTreatHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 3: LocalBattleBuffTauntHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 4: LocalBattleBuffFixHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 5: LocalBattleBuffStaticHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 6: LocalBattleBuffShiftHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 7: LocalBattleBuffChangeAttrsHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 8: LocalBattleBuffSuperArmorHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 9: LocalBattleBuffDrainHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 10: LocalBattleBuffIgnoreFormulaHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 11: LocalBattleBuffCloseRendererHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 12: LocalBattleBuffMoveCastHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 13: LocalBattleBuffFilterHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 14: LocalBattleBuffDizzyHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 15: LocalBattleBuffUnconspicuousHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 16: LocalBattleBuffAuraHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 17: LocalBattleBuffWeakHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 18: LocalBattleBuffIncurableHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 19: LocalBattleBuffCalculatorTreat2Handler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; } if (buffDataByID.tempSkill > 0) { LocalBattleProtocolSimulator.SendRemoveSkill(targetID, buffDataByID.tempSkill); } }
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; } }