Example #1
0
 public Serf AddSerf(Vector2 position, ResourceController resController)
 {
     //Debug.Log(position.x + " " + position.y);
     Serf serf = new Serf(position, this, resController);
     GameObject unit_go = Instantiate(serf_prefab);
     unit_go.transform.SetParent(characters.transform);
     unit_go.transform.position = new Vector3(position.x, MapController.Instance.mapData.GetHeight(position) + 1f, position.y);
     unitList.Add(serf, unit_go);
     return serf;
 }
Example #2
0
 void OnComplete(Serf serf)
 {
     serf.ReturnCargo();
     ResourceAgent ra = lookForAgent(endPosition, resource);   
     if (ra == null)
     {
         ResourceController rc = endPosition.GetComponent<ResourceController>();
         rc.AddResource(resource);
     }
     else
     {
         ra.BringResource();
         ra.JobIsEnded(this);// This should be executed in case of job is ended unsuccessfuly.
     }
     ra = lookForAgent(startPosition, resource);
     if (ra != null)
     {
         ra.JobIsEnded(this);// This should be executed in case of job is ended unsuccessfuly.
     }
    
 } 
Example #3
0
 public bool DoWork(Serf serf)
 {
     if (!cargoIsTaken)
     {
         serf.TakeCargo(resource);
         ResourceAgent ra = lookForAgent(startPosition, resource);
         if (ra == null)
         {
             ResourceController rc = startPosition.GetComponent<ResourceController>();
             rc.TakeResource(resource);
         } else
         {
             ra.TakeResource();
         }
         //Debug.Log("DoWork: Resource is taken");
         cargoIsTaken = true;
         return false;
     } else {
         OnComplete(serf);
         //Debug.Log("DoWork: Resource job is finished");
         return true;
     }
 }