Example #1
0
    public NPCTaskDoJob(Entity entity, IWorkBuilding building, float priority, float taskTime = -1) : base(entity, priority, taskTime)
    {
        WorkBuilding = building.WorkBuilding;
        List <WorkEquiptmentData> wed = new List <WorkEquiptmentData>(10);

        foreach (WorldObjectData wed_ in WorkBuilding.GetBuildingObjects())
        {
            if (wed_ is WorkEquiptmentData && (wed_ as WorkEquiptmentData).CurrentUser == null)
            {
                wed.Add(wed_ as WorkEquiptmentData);
            }
        }
        WorkEquiptment = GameManager.RNG.RandomFromList(wed);


        if (WorkEquiptment != null)
        {
            WorkEquiptment.CurrentUser = Entity as NPC;
            CanWork = QuickDistance(Entity, WorkEquiptment.WorldPosition) <= 1;
        }
        else
        {
            CanWork = true;
        }
    }
 public NPCJobBlackSmith(IWorkBuilding workLocation) : base("Blacksmith", workLocation)
 {
     BlackSmith     = workLocation as Blacksmith;
     WorkEquiptment = new List <IWorkEquiptmentObject>(5);
     foreach (WorldObjectData obj in workLocation.WorkBuilding.GetBuildingExternalObjects())
     {
         if (obj is IWorkEquiptmentObject workObj)
         {
             WorkEquiptment.Add(workObj);
         }
     }
 }
Example #3
0
 public NPCJobSoldier(IWorkBuilding workLocation) : base("Soldier", workLocation, KingdomHierarchy.Citizen)
 {
     HasEquiptment  = false;
     SubTask        = CurrentSubTask.None;
     WorkItems      = new List <Item>();
     WorkEquiptment = new List <IWorkEquiptmentObject>(5);
     foreach (WorldObjectData obj in workLocation.WorkBuilding.GetBuildingExternalObjects())
     {
         if (obj is IWorkEquiptmentObject workObj)
         {
             WorkEquiptment.Add(workObj);
         }
     }
 }
Example #4
0
 public static Building AsBuilding(this IWorkBuilding b)
 {
     return(b as Building);
 }
Example #5
0
 public NPCJobMarketStall(string title, IWorkBuilding workLocation, WorldObjectData marketStall, KingdomHierarchy rankReq = KingdomHierarchy.Citizen) : base(title, workLocation, rankReq)
 {
 }
Example #6
0
 public NPCJobBlackSmith(IWorkBuilding workLocation) : base("Blacksmith", workLocation)
 {
     BlackSmith = workLocation as Blacksmith;
 }
 public NPCJobMerchant(IWorkBuilding workLocation, string title = null) : base(title ?? "Merchant", workLocation, KingdomHierarchy.Citizen)
 {
     Init = false;
 }
Example #8
0
 public NPCJobKing(IWorkBuilding workLocation) : base("King", workLocation, KingdomHierarchy.Monarch)
 {
 }
Example #9
0
 public NPCJobSoldier(IWorkBuilding workLocation) : base("Soldier", workLocation, KingdomHierarchy.Citizen)
 {
 }
Example #10
0
 public NPCJob(string title, IWorkBuilding workLocation, KingdomHierarchy rankReq = KingdomHierarchy.Citizen)
 {
     Title        = title;
     WorkLocation = workLocation;
     RequiredRank = rankReq;
 }
Example #11
0
 public NPCTaskDoJob(Entity entity, IWorkBuilding building, NPCJob job, float priority, float taskTime = -1) : base(entity, priority, taskTime, taskDesc: "Working: " + job)
 {
     WorkBuilding = building.WorkBuilding;
     Job          = job;
 }