/// <summary> /// Find all productions related to a facility and force end them. /// </summary> /// <param name="productionFacility"></param> /// <returns></returns> private void ForceEndProduction(ProductionFacility productionFacility) { //force end all found productions var foundProductions = RunningProductions.Where(pip => pip.facilityEID == productionFacility.Eid).ToList(); EndProductions(foundProductions); }
public IEnumerable <ProductionInProgress> GetAllByFacility(ProductionFacility facility) { return(Db.Query().CommandText("select * from runningproduction where facilityEID = @facilityEID") .SetParameter("@facilityEID", facility.Eid) .Execute() .Select(CreateProductionInProgressFromRecord) .ToArray()); }
private bool RemoveFacilityFromCache(ProductionFacility facility) { var removed = _facilities.Remove(facility.Eid); if (removed) { Logger.Info("production facility removed from production cache:" + facility.Eid + " " + facility.ED.Name); } return(removed); }
public void OnStructureDestroyed(IUnit structure) { switch (structure.UnitType) { case BlizzardConstants.Unit.Factory: case BlizzardConstants.Unit.FactoryReactor: var facility = new ProductionFacility(structure); factories.Remove(facility); break; default: break; // None of our business } }
public void issueMoveOrder(Vector3 destination) { ProductionFacility pf = GetComponentInChildren <ProductionFacility>(); if (pf == null) { this.travelingByInstruction = true; givenDestination = destination; } else { print("setting rally point"); pf.setRallyPoint(destination); } }
private int CalculateEp(ProductionFacility facility, ProductionInProgress productionInProgress) { var ep = Math.Ceiling(productionInProgress.TotalProductionTime.TotalHours); // dev cheat if (productionInProgress.character.AccessLevel.IsAdminOrGm()) { ep = Math.Ceiling(productionInProgress.TotalProductionTime.TotalSeconds); } var dockingBase = facility.GetDockingBase(); if (dockingBase.Zone is TrainingZone) { return(0); } if (dockingBase.Zone.Configuration.IsBeta) { ep *= BETA_EP_MULTIPLIER; } return((int)ep); }
private int CalculateEp(ProductionFacility facility, ProductionInProgress productionInProgress) { var dockingBase = facility.GetDockingBase(); if (dockingBase.Zone is TrainingZone) { return(0); } var ep = productionInProgress.TotalProductionTime.TotalHours; if (dockingBase.Zone.Configuration.IsBeta) { ep *= BETA_EP_MULTIPLIER; } //For <1hr jobs, give EP at a rate that would equate to 1 per hour if (ep < 1 && FastRandom.NextDouble() < ep) { ep = 1; } return((int)ep); }
public void RemoveFacility(ProductionFacility facility) { Entity.Repository.Delete(facility); RemoveFacilityFromCache(facility); Logger.Info("Facility Removed eid:" + facility.Eid); }
public ErrorCodes GetFacility(long baseEid, ProductionFacilityType facilityType, out ProductionFacility facility) { facility = GetFacilityByBaseAndType(baseEid, facilityType); return(facility == null ? ErrorCodes.ProductionFacilityNotFound : ErrorCodes.NoError); }
private void AddFacilityToCache(ProductionFacility productionFacility) { _facilities[productionFacility.Eid] = productionFacility; Logger.Info("production facility added to production cache:" + productionFacility.Eid + " " + productionFacility.ED.Name); }