public override TaskStatus OnUpdate() { if (!Singleton <LevelManager> .Instance.levelActor.witchTimeLevelBuff.isActive) { List <BaseMonoMonster> allMonsters = Singleton <MonsterManager> .Instance.GetAllMonsters(); for (int i = 0; i < allMonsters.Count; i++) { BaseMonoMonster monster = allMonsters[i]; if (monster.isGoingToAttack(this.TimeBeforeAttack) && (Miscs.DistancForVec3IgnoreY(base._avatar.XZPosition, monster.XZPosition) < monster.config.AIArguments.AttackRange)) { return(TaskStatus.Success); } } } return(TaskStatus.Failure); }
public override TaskStatus OnUpdate() { BaseMonoEntity attackTarget = this._entity.GetAttackTarget(); if ((attackTarget != null) && attackTarget.IsActive()) { if (attackTarget is BaseMonoAvatar) { BaseMonoAvatar avatar = (BaseMonoAvatar)attackTarget; if (avatar.IsAnimatorInTag(AvatarData.AvatarTagGroup.AttackOrSkill) && !avatar.IsAnimatorInTag(AvatarData.AvatarTagGroup.AttackWithNoTarget)) { return(TaskStatus.Success); } return(TaskStatus.Failure); } if (attackTarget is BaseMonoMonster) { BaseMonoMonster monster = (BaseMonoMonster)attackTarget; return(!monster.isGoingToAttack(0.5f) ? TaskStatus.Failure : TaskStatus.Success); } } return(TaskStatus.Failure); }