public static KCT_BuildListVessel AddVesselToBuildList(KCT_BuildListVessel blv, Dictionary <String, int> inventory) { if (CurrentGameIsCareer()) { float totalCost = blv.cost; double prevFunds = Funding.Instance.Funds; double newFunds = SpendFunds(totalCost); if (prevFunds == newFunds) { KCTDebug.Log("Tried to add " + blv.shipName + " to build list but not enough funds."); KCTDebug.Log("Vessel cost: " + blv.cost + ", Current funds: " + newFunds); var msg = new ScreenMessage("Not Enough Funds To Build!", 4.0f, ScreenMessageStyle.UPPER_CENTER); ScreenMessages.PostScreenMessage(msg, true); return(blv); } } string type = ""; if (blv.type == KCT_BuildListVessel.ListType.VAB) { KCT_GameStates.VABList.Add(blv); type = "VAB"; } else if (blv.type == KCT_BuildListVessel.ListType.SPH) { KCT_GameStates.SPHList.Add(blv); type = "SPH"; } if (inventory.Count > 0) { foreach (ConfigNode p in blv.ExtractedPartNodes) { if (KCT_Utilities.RemovePartFromInventory(p, inventory)) { blv.InventoryParts.Add(PartNameFromNode(p) + GetTweakScaleSize(p)); } } } KCTDebug.Log("Added " + blv.shipName + " to " + type + " build list. Cost: " + blv.cost); //KCTDebug.Log("Cost Breakdown (total, parts, fuel): " + blv.totalCost + ", " + blv.dryCost + ", " + blv.fuelCost); var message = new ScreenMessage("[KCT] Added " + blv.shipName + " to " + type + " build list.", 4.0f, ScreenMessageStyle.UPPER_CENTER); ScreenMessages.PostScreenMessage(message, true); return(blv); }