示例#1
0
        public double GetBuildTime(WorkshopUtils.ProductivityType type, double productivity, double ConversionRate = 1)
        {
            var totalAmount    = this.Sum(r => r.Units);
            var totalProcessed = this.Sum(r => r.Processed);

            Log.Info("GetBuildtime, totalAmount: " + totalAmount + ", totalProcessed: " + totalProcessed + ", type: " + type);

            if (type == WorkshopUtils.ProductivityType.printer)
            {
                return((totalAmount - totalProcessed) / (productivity / Complexity));
            }
            else
            {
                return((totalAmount * ConversionRate - totalProcessed) / (productivity));
            }
        }
示例#2
0
        public string Print(WorkshopUtils.ProductivityType type, double productivity)
        {
            var sb = new StringBuilder();

            foreach (var res in this)
            {
                sb.AppendLine(res.Name + " : " + res.Units.ToString("N1"));
            }

            if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER && WorkshopOptions.PrintingCostsFunds)
            {
                sb.AppendLine("Resource costs: " + ResourceCosts().ToString("N1"));
                sb.AppendLine("Funds: " + Funds);
            }
            if (HighLogic.CurrentGame.Parameters.CustomParams <Workshop_Settings>().useComplexity&& type == WorkshopUtils.ProductivityType.printer)
            {
                sb.AppendLine("Complexity: " + Complexity);
            }
            var duration = this.Sum(r => r.Units) / (productivity);

            sb.AppendLine("Base duration: " + KSPUtil.PrintTime(duration, 5, false));
            if (type == WorkshopUtils.ProductivityType.printer)
            {
                duration = this.Sum(r => r.Units) / (productivity / Complexity);
            }
            else
            {
                duration = this.Sum(r => r.Units) / (productivity);
            }

            if (HighLogic.CurrentGame.Parameters.CustomParams <Workshop_Settings>().useComplexity&& type == WorkshopUtils.ProductivityType.printer)
            {
                sb.Append("Complexity duration: " + KSPUtil.PrintTime(duration, 5, false));
            }

            return(sb.ToString());
        }