Example #1
0
        public override bool CanBeWorkedBy(Worker worker)
        {
            Inventory inventory = worker.GetComponent <Inventory>();

            if (stockpile == null)
            {
                stockpile = FindNearestStockpile(merchandise);
                if (stockpile)
                {
                    stockpile.reserved = true;
                }
            }

            return(worker.GetComponent <MoveTo>() != null &&
                   inventory != null &&
                   stockpile != null &&
                   inventory.CanHold(merchandise));
        }
Example #2
0
        public override void Process(Worker worker)
        {
            MoveTo moveTo = worker.GetComponent <MoveTo>();

            if (moveTo.reachedGoal)
            {
                if (!pickedUpMerchandise)
                {
                    worker.GetComponent <Inventory>().Add(merchandise);
                    pickedUpMerchandise = true;
                    moveTo.SetGoal(stockpile.transform.position, 1);
                }
                else
                {
                    Merchandise merchandise = worker.GetComponent <Inventory>().Remove();
                    stockpile.Add(merchandise);
                    pickedUpMerchandise = false;
                    Complete();
                }
            }
        }
Example #3
0
 public override void Process(Worker worker)
 {
     if (workable.complete)
     {
         Complete();
     }
     else if (worker.GetComponent <MoveTo>().reachedGoal)
     {
         // TODO:
         // - have worker provide the work rate
         workable.Work(workRate * Time.deltaTime);
     }
 }
Example #4
0
 public override void OnRemoveWorker(Worker worker)
 {
     if (pickedUpMerchandise)
     {
         pickedUpMerchandise = false;
         Merchandise merchandise = worker.GetComponent <Inventory>().Remove();
         merchandise.transform.position = worker.transform.position;
     }
     if (stockpile)
     {
         stockpile.reserved = false;
         stockpile          = null;
     }
 }
Example #5
0
 public override bool CanBeWorkedBy(Worker worker)
 {
     return(worker.GetComponent <MoveTo>() != null);
 }
Example #6
0
 public override void OnAddWorker(Worker worker)
 {
     moveTo = worker.GetComponent <MoveTo>();
     moveTo.SetGoal(goal);
 }
Example #7
0
        public override void OnAddWorker(Worker worker)
        {
            MoveTo moveTo = worker.GetComponent <MoveTo>();

            moveTo.SetGoal(workable.transform.position, 2);
        }
Example #8
0
        public override void OnAddWorker(Worker worker)
        {
            MoveTo moveTo = worker.GetComponent <MoveTo>();

            moveTo.SetGoal(merchandise.transform.position, 1);
        }
Example #9
0
 public override bool CanBeWorkedBy(Worker worker)
 {
     return(worker.GetComponent <Wanderable>() != null);
 }
Example #10
0
 public override void OnRemoveWorker(Worker worker)
 {
     worker.GetComponent <Wanderable>().Stop();
 }
Example #11
0
 public override void OnAddWorker(Worker worker)
 {
     worker.GetComponent <Wanderable>().Wander();
 }