Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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");
        }