public AITraversalArea GetTraversalArea() { AITraversalArea aITraversalArea; if (this.triggers == null) { return(null); } List <TriggerBase> .Enumerator enumerator = this.triggers.GetEnumerator(); try { while (enumerator.MoveNext()) { AITraversalArea component = enumerator.Current.GetComponent <AITraversalArea>(); if (component == null) { continue; } aITraversalArea = component; return(aITraversalArea); } return(null); } finally { ((IDisposable)enumerator).Dispose(); } return(aITraversalArea); }
public override float GetWeight() { if (this.finished) { return(0.0f); } AITraversalArea traversalArea = this.GetEntity().GetTraversalArea(); if (this.isTraversing || this.waiting) { return(10000f); } if (this.GetEntity().IsInTraversalArea()) { NavMeshPath path = this.GetEntity().NavAgent.get_path(); bool flag1 = false; bool flag2 = false; foreach (Vector3 corner in path.get_corners()) { if ((double)Vector3.Distance(corner, traversalArea.entryPoint1.get_position()) <= 2.0) { flag1 = true; } else if ((double)Vector3.Distance(corner, traversalArea.entryPoint2.get_position()) <= 2.0) { flag2 = true; } if (((Bounds) ref traversalArea.movementArea).Contains(corner) || flag1 & flag2) { return(10000f); } } } return(0.0f); }
public override void StateLeave() { base.StateLeave(); this.finished = false; this.area = null; this.isTraversing = false; this.waiting = false; base.GetEntity().SetDestination(this.desiredDestination); }
public override void StateEnter() { base.StateEnter(); base.GetEntity().SetDesiredSpeed(HumanNPC.SpeedType.Walk); this.finished = false; this.isTraversing = false; this.waiting = false; this.desiredDestination = base.GetEntity().finalDestination; this.area = base.GetEntity().GetTraversalArea(); if (this.area && this.area.CanTraverse(base.GetEntity())) { this.area.SetBusyFor(2f); } }
public override void StateEnter() { base.StateEnter(); this.GetEntity().SetDesiredSpeed(HumanNPC.SpeedType.Walk); this.finished = false; this.isTraversing = false; this.waiting = false; this.desiredDestination = this.GetEntity().finalDestination; this.area = this.GetEntity().GetTraversalArea(); if (!Object.op_Implicit((Object)this.area) || !this.area.CanTraverse((BaseEntity)this.GetEntity())) { return; } this.area.SetBusyFor(2f); }
public AITraversalArea GetTraversalArea() { if (triggers == null) { return(null); } foreach (TriggerBase trigger in triggers) { AITraversalArea component = trigger.GetComponent <AITraversalArea>(); if (component != null) { return(component); } } return(null); }
public AITraversalArea GetTraversalArea() { if (this.triggers == null) { return((AITraversalArea)null); } foreach (Component trigger in this.triggers) { AITraversalArea component = (AITraversalArea)trigger.GetComponent <AITraversalArea>(); if (Object.op_Inequality((Object)component, (Object)null)) { return(component); } } return((AITraversalArea)null); }
public override float GetWeight() { if (this.finished) { return(0f); } AITraversalArea traversalArea = base.GetEntity().GetTraversalArea(); if (this.isTraversing || this.waiting) { return(10000f); } if (base.GetEntity().IsInTraversalArea()) { bool flag = false; bool flag1 = false; Vector3[] navAgent = base.GetEntity().NavAgent.path.corners; for (int i = 0; i < (int)navAgent.Length; i++) { Vector3 vector3 = navAgent[i]; if (Vector3.Distance(vector3, traversalArea.entryPoint1.position) <= 2f) { flag = true; } else if (Vector3.Distance(vector3, traversalArea.entryPoint2.position) <= 2f) { flag1 = true; } if (traversalArea.movementArea.Contains(vector3)) { return(10000f); } if (flag & flag1) { return(10000f); } } } return(0f); }