/// <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);
        }
Esempio n. 4
0
        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
            }
        }
Esempio n. 5
0
    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);
 }