Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
        }
    }