示例#1
0
    public bool MeetCondition(BaseSkillData.IActiveConditionData data, Unit source)
    {
        SkillActiveCondition_CheckNumeric checkNumeric = data as SkillActiveCondition_CheckNumeric;
        NumericComponent numericComponent = source.GetComponent <NumericComponent>();

        switch (checkNumeric.realtionType)
        {
        case NumericRealtionType.Greater:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) > checkNumeric.aimValue)
            {
                return(true);
            }
            break;

        case NumericRealtionType.Less:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) < checkNumeric.aimValue)
            {
                return(true);
            }
            break;

        case NumericRealtionType.Equal:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) == checkNumeric.aimValue)
            {
                return(true);
            }
            break;

        case NumericRealtionType.NotEqual:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) != checkNumeric.aimValue)
            {
                return(true);
            }
            break;

        case NumericRealtionType.GreaterEqual:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) >= checkNumeric.aimValue)
            {
                return(true);
            }
            break;

        case NumericRealtionType.LessEqual:
            if (numericComponent.GetAsFloat(checkNumeric.numericType) <= checkNumeric.aimValue)
            {
                return(true);
            }
            break;
        }
        return(false);
    }
示例#2
0
    public bool MeetCondition(BaseSkillData.IActiveConditionData data, Unit source)
    {
        SkillActiveCondition_CheckHPMP cost = data as SkillActiveCondition_CheckHPMP;

        NumericComponent numericComponent = source.GetComponent <NumericComponent>();

        if (numericComponent.GetAsFloat(NumericType.HP) > cost.costHp &&
            numericComponent.GetAsFloat(NumericType.MP) > cost.costMp &&
            numericComponent.GetAsFloat(NumericType.HP_RemainPct) > cost.costHpInPct &&
            numericComponent.GetAsFloat(NumericType.MP_RemainPct) > cost.costMpInPct)
        {
            return(true);
        }
        return(false);
    }
示例#3
0
    public bool MeetCondition(BaseSkillData.IActiveConditionData data, Unit source)
    {
        SkillActiveCondition_CheckBuff CheckBuff = data as SkillActiveCondition_CheckBuff;
        BuffMgrComponent buffMgrComponent        = source.GetComponent <BuffMgrComponent>();

        foreach (var v in buffMgrComponent.buffGroupDic)
        {
            if (v.Value.buffTypeId == CheckBuff.buffTypeId)
            {
                return(true);
            }
        }

        return(false);
    }
示例#4
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);
    }
示例#5
0
 public void OnRemove(BaseSkillData.IActiveConditionData data, Unit source)
 {
 }