public bool MeetCondition(BaseSkillData.IActiveConditionData data, Unit source) { SkillActiveCondition_CheckTiming CheckTiming = data as SkillActiveCondition_CheckTiming; TimeSpanHelper.Timer timer = TimeSpanHelper.GetTimer(CheckTiming.GetHashCode()); long now = TimeHelper.Now(); if (timer.interval == 0 && timer.timing == 0) { timer.interval = (long)(CheckTiming.timeSpan * 1000); timer.timing = now; } if (now - timer.timing >= timer.interval) { TimeSpanHelper.Remove(CheckTiming.GetHashCode()); return(true); } return(false); }
bool DealWithBuffGroup(BuffGroup buffGroup) { TimeSpanHelper.Timer timer = TimeSpanHelper.GetTimer(buffGroup.GetHashCode()); long now = TimeHelper.Now(); if (now - timer.timing >= calSpan) { timer.timing = now; } if (buffGroup.buffList.Count > 0) { foreach (var v in buffGroup.buffList) { switch (v) { case Buff_DOT dot: GameCalNumericTool.CalDotDamage(buffGroup.sourceUnitId, GetParent <Unit>(), dot); break; default: break; } } } if (timer.interval <= 0) { RemoveGroup(buffGroup.BuffGroupId); TimeSpanHelper.Remove(buffGroup.GetHashCode()); return(false); } else { return(true); } }