コード例 #1
0
ファイル: CH47AIBrain.cs プロジェクト: Ailtop/RustDocuments
 public override float GetWeight()
 {
     if (!CanDrop())
     {
         return(0f);
     }
     if (IsInState())
     {
         return(10000f);
     }
     if (brain.CurrentState != null && brain.CurrentState.StateType == AIState.Orbit && brain.CurrentState.TimeInState > 60f)
     {
         CH47DropZone closest = CH47DropZone.GetClosest(brain.mainInterestPoint);
         if ((bool)closest && Vector3Ex.Distance2D(closest.transform.position, brain.mainInterestPoint) < 200f)
         {
             CH47AIBrain component = brain.GetComponent <CH47AIBrain>();
             if (component != null)
             {
                 float num = Mathf.InverseLerp(300f, 600f, component.Age);
                 return(1000f * num);
             }
         }
     }
     return(0f);
 }
コード例 #2
0
ファイル: CH47AIBrain.cs プロジェクト: Ailtop/RustDocuments
        public override void StateEnter()
        {
            brain.GetEntity().SetDropDoorOpen(true);
            brain.GetEntity().EnableFacingOverride(false);
            CH47DropZone closest = CH47DropZone.GetClosest(brain.GetEntity().transform.position);

            if (closest == null)
            {
                nextDropTime = Time.time + 60f;
            }
            brain.mainInterestPoint = closest.transform.position;
            brain.GetEntity().SetMoveTarget(brain.mainInterestPoint);
            base.StateEnter();
        }
コード例 #3
0
    public static CH47DropZone GetClosest(Vector3 pos)
    {
        float        num    = float.PositiveInfinity;
        CH47DropZone result = null;

        foreach (CH47DropZone dropZone in dropZones)
        {
            float num2 = Vector3Ex.Distance2D(pos, dropZone.transform.position);
            if (num2 < num)
            {
                num    = num2;
                result = dropZone;
            }
        }
        return(result);
    }
コード例 #4
0
    public static CH47DropZone GetClosest(Vector3 pos)
    {
        float        num1         = float.PositiveInfinity;
        CH47DropZone ch47DropZone = (CH47DropZone)null;

        foreach (CH47DropZone dropZone in CH47DropZone.dropZones)
        {
            float num2 = Vector3Ex.Distance2D(pos, ((Component)dropZone).get_transform().get_position());
            if ((double)num2 < (double)num1)
            {
                num1         = num2;
                ch47DropZone = dropZone;
            }
        }
        return(ch47DropZone);
    }
コード例 #5
0
    public static CH47DropZone GetClosest(Vector3 pos)
    {
        float        single       = Single.PositiveInfinity;
        CH47DropZone cH47DropZone = null;

        foreach (CH47DropZone dropZone in CH47DropZone.dropZones)
        {
            float single1 = Vector3Ex.Distance2D(pos, dropZone.transform.position);
            if (single1 >= single)
            {
                continue;
            }
            single       = single1;
            cH47DropZone = dropZone;
        }
        return(cH47DropZone);
    }
コード例 #6
0
        public override float GetWeight()
        {
            if (!this.CanDrop())
            {
                return(0f);
            }
            CH47DropZone closest = CH47DropZone.GetClosest(this.brain.GetEntity().transform.position);

            if (closest == null || Vector3.Distance(closest.transform.position, this.brain.mainInterestPoint) > 200f)
            {
                return(0f);
            }
            if (base.IsInState())
            {
                return(10000f);
            }
            if (this.brain._currentState == 5 && this.brain.GetCurrentState().TimeInState() > 60f)
            {
                return(1000f);
            }
            return(0f);
        }