public AcidPowerCell(AcidBattery acidBattery, float capacity = 150f) : base(classId: "AcidPowerCell", friendlyName: "Lead Acid Power Cell", description: "A basic lead/acid vehicle power source - not super powerful, but it IS rechargeable. Keep fully charged during winter months!") { PowerCellCapacity = capacity; // Because we're dependent on battery regarding blueprint, // we'll go ahead and add this little safety check here if (!acidBattery.IsPatched) { acidBattery.Patch(); } // This event will be invoked after all patching done by the Craftable class is complete OnFinishedPatching += SetStaticTechType; }
internal static void PatchAll() { if (Config.NORMAL.Equals(DeathRun.config.batteryCosts)) { // If we're leaving normal batteries alone, don't patch in our alternates. return; } string mainDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); // Create a new crafting tree tab for batteries and power cells string assetsFolder = Path.Combine(mainDirectory, "Assets"); string pathToIcon = Path.Combine(assetsFolder, @"CraftingTabIcon.png"); Atlas.Sprite tabIcon = ImageUtils.LoadSpriteFromFile(pathToIcon); CraftTreeHandler.AddTabNode(CraftTree.Type.Fabricator, BatteryPowerCraftingTab, "Batteries and Power Cells", tabIcon, ResourcesCraftingTab, ElectronicsCraftingTab); // Remove the original batteries from the Electronics tab CraftTreeHandler.RemoveNode(CraftTree.Type.Fabricator, ResourcesCraftingTab, ElectronicsCraftingTab, TechType.Battery.ToString()); CraftTreeHandler.RemoveNode(CraftTree.Type.Fabricator, ResourcesCraftingTab, ElectronicsCraftingTab, TechType.PowerCell.ToString()); CraftTreeHandler.RemoveNode(CraftTree.Type.Fabricator, ResourcesCraftingTab, ElectronicsCraftingTab, TechType.PrecursorIonBattery.ToString()); CraftTreeHandler.RemoveNode(CraftTree.Type.Fabricator, ResourcesCraftingTab, ElectronicsCraftingTab, TechType.PrecursorIonPowerCell.ToString()); //var config = new DeepConfig(); //config.ReadConfigFile(mainDirectory); //QuickLogger.Info($"Selected PowerStyle in config: {config.SelectedPowerStyle} - (Battery Capacity:{Mathf.RoundToInt(config.BatteryCapacity)})"); CattleLogger.Message("Patching AcidBattery"); int battSize; int powerSize; if (Config.EXORBITANT.Equals(DeathRun.config.batteryCosts)) { battSize = 25; powerSize = 75; } else if (Config.DEATHRUN.Equals(DeathRun.config.batteryCosts)) { battSize = 50; powerSize = 125; } else if (Config.HARD.Equals(DeathRun.config.batteryCosts)) { battSize = 75; powerSize = 150; } else { battSize = 100; powerSize = 200; } var acidBattery = new AcidBattery(battSize); acidBattery.Patch(); CattleLogger.Message("Patching AcidPowerCell"); var lithiumPowerCell = new AcidPowerCell(acidBattery, powerSize); lithiumPowerCell.Patch(); // And "regular" batteries (now Lithium) back in on the new Batteries and PowerCells tab CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.Battery, PathToNewTab); CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.PowerCell, PathToNewTab); // Add the Ion Batteries after the Lithium Batteries CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.PrecursorIonBattery, PathToNewTab); CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.PrecursorIonPowerCell, PathToNewTab); CattleLogger.Message("Patching Copper Recycling"); // Add recycling of batteries for copper CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.Copper, PathToBasicTab); CattleLogger.Message("Patching Copper Recycling Done"); }