public bool GoTo(int cell, CellOffset[] offsets, NavTactic tactic)
 {
     if (offsets == null)
     {
         offsets = new CellOffset[1]
         {
             default(CellOffset)
         };
     }
     targetLocator.transform.SetPosition(Grid.CellToPosCBC(cell, Grid.SceneLayer.Move));
     return(GoTo(targetLocator, offsets, tactic));
 }
 public bool GoTo(KMonoBehaviour target, CellOffset[] offsets, NavTactic tactic)
 {
     if (tactic == null)
     {
         tactic = NavigationTactics.ReduceTravelDistance;
     }
     base.smi.GoTo(base.smi.sm.moving);
     base.smi.sm.moveTarget.Set(target.gameObject, base.smi);
     this.tactic   = tactic;
     this.target   = target;
     targetOffsets = offsets;
     ClearReservedCell();
     AdvancePath(true);
     return(IsMoving());
 }
        public override void InitializeStates(out BaseState default_state)
        {
            default_state = fetching;
            Target(fetcher);
            fetching.DefaultState(fetching.next).Enter("ReservePickupables", delegate(StatesInstance smi)
            {
                smi.ReservePickupables();
            }).Exit("UnreservePickupables", delegate(StatesInstance smi)
            {
                smi.UnreservePickupables();
            })
            .Enter("pickingup-on", delegate(StatesInstance smi)
            {
                smi.pickingup = true;
            })
            .Exit("pickingup-off", delegate(StatesInstance smi)
            {
                smi.pickingup = false;
            });
            fetching.next.Enter("SetupFetch", delegate(StatesInstance smi)
            {
                smi.SetupFetch();
            });
            ApproachSubState <Pickupable> movetopickupable = fetching.movetopickupable;
            TargetParameter mover                = fetcher;
            TargetParameter move_target          = fetchTarget;
            State           pickup               = fetching.pickup;
            State           fetchfail            = fetching.fetchfail;
            NavTactic       reduceTravelDistance = NavigationTactics.ReduceTravelDistance;

            movetopickupable.InitializeStates(mover, move_target, pickup, fetchfail, null, reduceTravelDistance);
            fetching.pickup.DoPickup(fetchTarget, fetchResultTarget, fetchAmount, fetching.fetchcomplete, fetching.fetchfail);
            fetching.fetchcomplete.Enter(delegate(StatesInstance smi)
            {
                smi.FetchComplete();
            });
            fetching.fetchfail.Enter(delegate(StatesInstance smi)
            {
                smi.FetchFail();
            });
            delivering.DefaultState(delivering.next).OnSignal(currentdeliverycancelled, delivering.deliverfail).Enter("SetupDeliverables", delegate(StatesInstance smi)
            {
                smi.SetupDeliverables();
            })
            .Enter("delivering-on", delegate(StatesInstance smi)
            {
                smi.delivering = true;
            })
            .Exit("delivering-off", delegate(StatesInstance smi)
            {
                smi.delivering = false;
            });
            delivering.next.Enter("SetupDelivery", delegate(StatesInstance smi)
            {
                smi.SetupDelivery();
            });
            ApproachSubState <Storage> movetostorage = delivering.movetostorage;

            move_target          = fetcher;
            mover                = deliveryDestination;
            fetchfail            = delivering.storing;
            pickup               = delivering.deliverfail;
            reduceTravelDistance = NavigationTactics.ReduceTravelDistance;
            movetostorage.InitializeStates(move_target, mover, fetchfail, pickup, null, reduceTravelDistance).Enter(delegate(StatesInstance smi)
            {
                if ((UnityEngine.Object)deliveryObject.Get(smi) != (UnityEngine.Object)null && (UnityEngine.Object)deliveryObject.Get(smi).GetComponent <MinionIdentity>() != (UnityEngine.Object)null)
                {
                    deliveryObject.Get(smi).transform.SetLocalPosition(Vector3.zero);
                    KBatchedAnimTracker component = deliveryObject.Get(smi).GetComponent <KBatchedAnimTracker>();
                    component.symbol = new HashedString("snapTo_chest");
                    component.offset = new Vector3(0f, 0f, 1f);
                }
            });
            delivering.storing.DoDelivery(fetcher, deliveryDestination, delivering.delivercomplete, delivering.deliverfail);
            delivering.deliverfail.Enter(delegate(StatesInstance smi)
            {
                smi.DeliverFail();
            });
            delivering.delivercomplete.Enter(delegate(StatesInstance smi)
            {
                smi.DeliverComplete();
            });
        }