public static void AppHit(Effect effectData, EntityParent caster, EntityParent target, XPoint basePoint, bool isAddEffect) { if (target == null) { return; } if (!isAddEffect && effectData.cycleHit == 0) { return; } if (target.IsStatic) { return; } if (target.IsEndure) { return; } if (target.GetSkillManager() == null) { return; } if (string.IsNullOrEmpty(effectData.hitAction)) { return; } target.GetSkillManager().ClientHandleHit(caster, effectData, basePoint); }
public static void HandleBuff(Buff buffData, EntityParent caster, EntityParent target, int fromSkillLevel) { LocalBattleBuffPropHandler.HandleBuff(buffData, caster, target, fromSkillLevel); target.GetSkillManager().ClientCastSkillByID(buffData.tempSkill); }
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; }