예제 #1
0
    public static void Announce(EntityParent announcer, EntityParent target, int skillID)
    {
        UseSkillConditionMessage useSkillConditionMessage = new UseSkillConditionMessage();

        useSkillConditionMessage.type      = UseSkillAnnouncer.type;
        useSkillConditionMessage.announcer = announcer;
        useSkillConditionMessage.target    = target;
        useSkillConditionMessage.skillID   = skillID;
        EventDispatcher.Broadcast <ConditionMessage>(ConditionManagerEvent.CheckCondition, useSkillConditionMessage);
    }
예제 #2
0
        protected bool CheckUseSkillCondition(Condition conditionData, ConditionMessage message)
        {
            if (!(message is UseSkillConditionMessage))
            {
                return(false);
            }
            if (conditionData.damageType == null)
            {
                return(false);
            }
            UseSkillConditionMessage useSkillConditionMessage = message as UseSkillConditionMessage;

            if (!this.CheckConditionExtraInspection(conditionData, useSkillConditionMessage.announcer, useSkillConditionMessage.target))
            {
                return(false);
            }
            Skill skill = DataReader <Skill> .Get(useSkillConditionMessage.skillID);

            if (skill == null)
            {
                return(false);
            }
            if (conditionData.damageType.get_Count() == 0)
            {
                return(true);
            }
            for (int i = 0; i < conditionData.damageType.get_Count(); i++)
            {
                if (conditionData.damageType.get_Item(i) == 0)
                {
                    return(true);
                }
                if (conditionData.damageType.get_Item(i) == skill.skilltype)
                {
                    return(true);
                }
            }
            return(false);
        }