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); }
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); }
private bool QTEAnimationTagCheck(MonsterActor qteTarget, MonsterData.MonsterTagGroup animationTag) { return((qteTarget != null) && qteTarget.monster.IsAnimatorInTag(animationTag)); }