//////////////////////// /// Auxiliar Methods /// //////////////////////// void InitiallizeWorkOffers() { nonAllocatedWorkOffers = new List <Coords>(); cityOffersGrid = new WorkOfferInGrid[32, 32]; Job.TYPE currentJobType = (Job.TYPE) 1; int aux = Global.Values.jobsQuantity[(int)Jobs[(int)currentJobType].GetExtension(), (int)currentJobType]; for (int i = 0; i < 1024; i++) { //Global.Methods.PrintInfo(Jobs[(int)currentJobType].GetExtension() + "_" + i.ToString() +": " + currentJobType); if (i < aux) { if ((int)currentJobType >= Global.Values.jobsQuantity.Length) { break; } int x = i / 32; int y = i % 32; cityOffersGrid[x, y] = new WorkOfferInGrid(currentJobType, false); nonAllocatedWorkOffers.Insert(Global.Methods.GetRandom(nonAllocatedWorkOffers.Count), new Coords(x, y)); // The insertion is random } else { currentJobType++; if (jobsCount > (int)currentJobType) { aux += Global.Values.jobsQuantity[(int)Jobs[(int)currentJobType].GetExtension(), (int)currentJobType]; } else { break; } } } }
public static Job.TIME_DEMAND GetIndustryTimeDemandState(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].GetTimeDemand();
public static Job.EXTENSION GetIndustryExtensionState(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].GetExtension();
public static Job.DURATION GetIndustryContractsDurationState(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].GetDuration();
public static int GetIndustryScheduledWorkingHours(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].Schedule.RequieredTime;
public static int GetIndustryScheduledStart(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].Schedule.Start;
public static int GetIndustryContractsDurationDays(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].ContractedDays;
public WorkOfferInGrid(Job.TYPE job, bool allocated) { Allocated = allocated; Job = job; }
////////////////////// // Industry Getters // ////////////////////// public static int GetIndustryTotalOffersAmount(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].Quantity;
public static void AddIndustryRequiredEffortIndexChange(CityPart.PLACE cityPlace, Job.TYPE industryType, Index.CHANGE change) => City.Changes.AddIndexChange(City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].RequieredEffort, change);
public static void AddIndustryTimeDemandChange(CityPart.PLACE cityPlace, Job.TYPE industryType, Job.TIME_DEMAND newValue) => City.Changes.AddValueChange(City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].SetTimeDemand, newValue);
public static void AddIndustryExtensionChange(CityPart.PLACE cityPlace, Job.TYPE industryType, Job.EXTENSION newValue) => City.Changes.AddValueChange(City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].SetExtension, newValue);
////////////////////// // Industry Changes // ////////////////////// public static void AddIndustryContractsDurationChange(CityPart.PLACE cityPlace, Job.TYPE industryType, Job.DURATION newValue) => City.Changes.AddValueChange(City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].SetDuration, newValue);
public AcceptedJob(Coords coords, Job.TYPE job, int salary, int enter, int time, int contractedDays, CityPart.PLACE cityPlace) { Coords = coords; JobType = job; Salary = salary; Enter = enter; TimeRequiered = time; RemainingDays = contractedDays; CityPlace = cityPlace; }
public static float GetIndustryRequiredEffortValue(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].RequieredEffort.Value;
public static Index.STATE GetIndustryRequiredEffortState(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].RequieredEffort.GetIndexState();
public static int GetIndustrySalary(CityPart.PLACE cityPlace, Job.TYPE industryType) => City.CityParts[(int)cityPlace].IndustrySector.Jobs[(int)industryType].Salary;