Ejemplo n.º 1
0
        public override TaskStatus OnUpdate()
        {
            BaseMonoAnimatorEntity attackTarget = this._aiEntity.AttackTarget as BaseMonoAnimatorEntity;

            if (attackTarget != null)
            {
                if (attackTarget is BaseMonoAvatar)
                {
                    AvatarData.AvatarTagGroup tagGroup = (AvatarData.AvatarTagGroup)((int)Enum.Parse(typeof(AvatarData.AvatarTagGroup), this.animatorTag));
                    if ((attackTarget as BaseMonoAvatar).IsAnimatorInTag(tagGroup))
                    {
                        return(TaskStatus.Success);
                    }
                }
                else if (attackTarget is BaseMonoMonster)
                {
                    MonsterData.MonsterTagGroup group2 = (MonsterData.MonsterTagGroup)((int)Enum.Parse(typeof(MonsterData.MonsterTagGroup), this.animatorTag));
                    if ((attackTarget as BaseMonoMonster).IsAnimatorInTag(group2))
                    {
                        return(TaskStatus.Success);
                    }
                }
            }
            return(TaskStatus.Failure);
        }
Ejemplo n.º 2
0
 private bool CheckMaintainCondition(QTECondition qteCondition)
 {
     if (!Singleton <AvatarManager> .Instance.IsLocalAvatar(this._avatarActor.runtimeID))
     {
         if (Singleton <EventManager> .Instance.GetActor <AvatarActor>(Singleton <AvatarManager> .Instance.GetLocalAvatar().GetRuntimeID()).MuteOtherQTE)
         {
             return(false);
         }
         for (int i = 0; i < this._qteTargetList.Count; i++)
         {
             QTETarget target = this._qteTargetList[i];
             target.Core();
             if (!target.CanCheck())
             {
                 return(true);
             }
             MonsterActor monsterActor = target.monsterActor;
             if (((monsterActor != null) && (monsterActor.isAlive != 0)) && this.QTERangeCheck(monsterActor, qteCondition.QTERange))
             {
                 if (qteCondition.QTEType == QTEConditionType.QTEAnimationTag)
                 {
                     for (int j = 0; j < qteCondition.QTEValues.Length; j++)
                     {
                         MonsterData.MonsterTagGroup tagGroup = (MonsterData.MonsterTagGroup)((int)Enum.Parse(typeof(MonsterData.MonsterTagGroup), qteCondition.QTEValues[j]));
                         if (monsterActor.monster.IsAnimatorInTag(tagGroup))
                         {
                             return(true);
                         }
                     }
                 }
                 else if (qteCondition.QTEType == QTEConditionType.QTEBuffTag)
                 {
                     for (int k = 0; k < qteCondition.QTEValues.Length; k++)
                     {
                         AbilityState state = (AbilityState)((int)Enum.Parse(typeof(AbilityState), qteCondition.QTEValues[k]));
                         if ((monsterActor.abilityState & state) != AbilityState.None)
                         {
                             return(true);
                         }
                     }
                 }
             }
         }
     }
     return(false);
 }
Ejemplo n.º 3
0
 private bool QTEAnimationTagCheck(MonsterActor qteTarget, MonsterData.MonsterTagGroup animationTag)
 {
     return((qteTarget != null) && qteTarget.monster.IsAnimatorInTag(animationTag));
 }