public static void MainPatch() { var myBattery = new CbBattery { EnergyCapacity = 200, ID = "MyBatteryID", Name = "My Cool Battery", FlavorText = "Hey, I made a battery!", UnlocksWith = TechType.Lithium, CraftingMaterials = new List <TechType> { TechType.Lithium, TechType.Lithium, TechType.Titanium, TechType.Copper, TechType.WhiteMushroom } }; myBattery.Patch(); var myPowerCell = new CbPowerCell { EnergyCapacity = myBattery.EnergyCapacity * 2, ID = "MyBatteryID", Name = "My Cool Battery", FlavorText = "Hey, I made a power cell!", UnlocksWith = TechType.Lithium, CraftingMaterials = new List <TechType> { myBattery.TechType, myBattery.TechType, TechType.Silicone } }; myPowerCell.Patch(); }
private static void CreateAndPatchPacks() { Logger.Log(Logger.Level.Info, "Started Patching BioPlasma MK2"); var bioPlasma = new BioPlasma(); bioPlasma.Patch(); Logger.Log(Logger.Level.Info, "Finished Patching BioPlasma MK2"); var bioChemBattery = new CbBattery() { ID = "BioChemBatteryMK2", Name = "Biochemical Battery", FlavorText = "Alterra battery technology combined with a Warper power core makes for quite a potent renewable energy source.", EnergyCapacity = Config.BioChemBatteryEnergy, UnlocksWith = bioPlasma.TechType, CraftingMaterials = new List <TechType>() { bioPlasma.TechType, bioPlasma.TechType, TechType.Silver, TechType.Silver, TechType.Gold, TechType.Lead }, CustomIcon = new Atlas.Sprite(assetBundle.LoadAsset <Sprite>("BioChemBattery")), CBModelData = new CBModelData() { UseIonModelsAsBase = true, CustomTexture = assetBundle.LoadAsset <Texture2D>("BioChemBatteryskin"), CustomSpecMap = assetBundle.LoadAsset <Texture2D>("BioChemBatteryspec"), CustomIllumMap = assetBundle.LoadAsset <Texture2D>("BioChemBatteryillum"), }, }; bioChemBattery.Patch(); var bioChemCell = new CbPowerCell() { ID = "BioChemCellMK2", Name = "Biochemical Power Cell", FlavorText = "Alterra power cell technology combined with a Warper power core makes for quite a potent renewable energy source.", EnergyCapacity = Config.BioChemCellenergy, UnlocksWith = bioPlasma.TechType, CraftingMaterials = new List <TechType>() { bioChemBattery.TechType, bioChemBattery.TechType, TechType.Silicone }, CustomIcon = new Atlas.Sprite(assetBundle.LoadAsset <Sprite>("BioChemCell.png")), CBModelData = new CBModelData() { UseIonModelsAsBase = true, CustomTexture = assetBundle.LoadAsset <Texture2D>("BioChemCellskin"), CustomSpecMap = assetBundle.LoadAsset <Texture2D>("BioChemCellskin"), CustomIllumMap = assetBundle.LoadAsset <Texture2D>("BioChemCellillum") }, }; bioChemCell.Patch(); }
private static void CreateAndPatchPrefabs() { UnobtaniumBattery = new CbBattery() { ID = "UnobtaniumBattery", Name = "Unobtanium Battery", FlavorText = "Battery that constantly keeps 1 Million Power", EnergyCapacity = 1000000, CraftingMaterials = new List <TechType>() { TechType.ReaperLeviathan, TechType.GhostLeviathan, TechType.Warper }, UnlocksWith = TechType.Warper, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(Main.AssetsFolder, "battery_icon.png")), CBModelData = new CBModelData() { CustomTexture = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "battery_skin.png")), CustomNormalMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "battery_normal.png")), CustomSpecMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "battery_spec.png")), CustomIllumMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "battery_illum.png")), CustomIllumStrength = 1f, UseIonModelsAsBase = true }, EnhanceGameObject = new Action <GameObject>((o) => EnhanceGameObject(o)) }; unobtaniumBatteries.Add(Main.UnobtaniumBattery.TechType); UnobtaniumCell = new CbPowerCell() { EnergyCapacity = 1000000, ID = "UnobtaniumCell", Name = "Unobtanium Cell", FlavorText = "Power Cell that constantly keeps 1 Million Power", CraftingMaterials = new List <TechType>() { Main.UnobtaniumBattery.TechType }, UnlocksWith = TechType.Warper, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(Main.AssetsFolder, "cell_icon.png")), CBModelData = new CBModelData() { CustomTexture = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "cell_skin.png")), CustomNormalMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "cell_normal.png")), CustomSpecMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "cell_spec.png")), CustomIllumMap = ImageUtils.LoadTextureFromFile(Path.Combine(Main.AssetsFolder, "cell_illum.png")), CustomIllumStrength = 1f, UseIonModelsAsBase = true }, EnhanceGameObject = new Action <GameObject>((o) => EnhanceGameObject(o)) }; unobtaniumBatteries.Add(Main.UnobtaniumCell.TechType); }
private static void CreateAndPatchPack() { var deepBattery = new CbBattery() { EnergyCapacity = Config.DeepBatteryEnergy, ID = "CBDeepBattery", Name = "Deep Battery", FlavorText = "A longer lasting battery created from rare materials and stronger chemicals.", CraftingMaterials = new List <TechType>() { TechType.WhiteMushroom, TechType.WhiteMushroom, TechType.Lithium, TechType.AluminumOxide, TechType.Magnetite }, UnlocksWith = TechType.WhiteMushroom, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "DeepBattery")), CBModelData = new CBModelData() { UseIonModelsAsBase = false, CustomTexture = assetBundle.LoadAsset <Texture2D>("DeepBatteryskin"), CustomSpecMap = assetBundle.LoadAsset <Texture2D>("DeepBatteryspec"), CustomIllumMap = assetBundle.LoadAsset <Texture2D>("DeepBatteryillum"), }, }; deepBattery.Patch(); var deepCell = new CbPowerCell() { EnergyCapacity = Config.DeepCellEnergy, ID = "CBDeepCell", Name = "Deep Power Cell", FlavorText = "A long lasting power cell created from rare materials and stronger chemicals.", UnlocksWith = deepBattery.TechType, CraftingMaterials = new List <TechType>() { deepBattery.TechType, deepBattery.TechType, TechType.Silicone }, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "DeepCell.png")), CBModelData = new CBModelData() { UseIonModelsAsBase = false, CustomTexture = assetBundle.LoadAsset <Texture2D>("DeepCellskin"), CustomSpecMap = assetBundle.LoadAsset <Texture2D>("DeepCellspec"), CustomIllumMap = assetBundle.LoadAsset <Texture2D>("DeepCellillum"), }, }; deepCell.Patch(); }
private static void CreateAndPatchPacks() { #region Custom Items Patching var reefEnzyme = new ReefbackEnzyme(); reefEnzyme.Patch(); var ghostPiece = new GhostPiece(); ghostPiece.Patch(); var ghostDna = new GhostDNA(); ghostDna.Patch(); var dragonScale = new DragonScale(); dragonScale.Patch(); #endregion #region Batteries JellyBattery = new CbBattery() { EnergyCapacity = Values.JellyBatteryEnergy, ID = "JellyBattery", Name = "Cavernous Jellyshroom Battery", FlavorText = "A battery composed of a strange, organic filament found on Crabsnake eggs and the incredibly high-energy content seeds of Jellyshrooms, as well as an assortment of minerals found in the Jellyshroom Caves.", CraftingMaterials = { Config.Complement?TechType.Battery : TechType.Titanium, Config.Complement ? TechType.None : TechType.Quartz, TechType.SnakeMushroomSpore, TechType.CrabsnakeEgg, TechType.Gold, TechType.Magnetite, TechType.Magnetite }, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "JellyBattery.png")), UnlocksWith = TechType.SnakeMushroomSpore, AddToFabricator = false, }; abyssBatteries.Add(JellyBattery.TechType); List <TechType> complementPoopBattery = new List <TechType> { JellyBattery.TechType, reefEnzyme.TechType, TechType.SeaTreaderPoop, TechType.Gold }; List <TechType> nonComplementPoopBattery = new List <TechType> { reefEnzyme.TechType, TechType.SeaTreaderPoop, TechType.Lithium, TechType.Lithium, TechType.AluminumOxide, TechType.Quartz, TechType.Titanium, TechType.Diamond }; PoopBattery = new CbBattery() { EnergyCapacity = Values.PoopBatteryEnergy, ID = "PoopBattery", Name = "Reefback Enzyme-Charged Poop Battery", FlavorText = "A battery fuelled by a potent chemical reaction between a Reefback's pod enzymes and a specific combination of minerals and organic compounds found in a Sea Treader's alien feces", CraftingMaterials = Config.Complement ? complementPoopBattery : nonComplementPoopBattery, UnlocksWith = TechType.SeaTreaderPoop, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "PoopBattery.png")), AddToFabricator = false, }; abyssBatteries.Add(PoopBattery.TechType); List <TechType> complementAmpSquidBattery = new List <TechType> { PoopBattery.TechType, TechType.Shocker, TechType.CrabSquid, TechType.CopperWire, TechType.Silicone }; List <TechType> nonComplementAmpSquidattery = new List <TechType> { TechType.Shocker, TechType.CrabSquid, TechType.CopperWire, TechType.WiringKit, TechType.Gold, TechType.Silicone, TechType.BloodOil, TechType.Quartz, TechType.Titanium }; AmpSquidBattery = new CbBattery() { EnergyCapacity = Values.AmpSquidBatteryEnergy, ID = "AmpSquidBattery", Name = "High Voltage Electro-Magnetic Battery", FlavorText = "This Battery combines the Ampeel's tremendous bioelectric capacity with the complex EMP organ of the CrabSquid, harnessing the resulting energy and sorting it into a single, portable, rrechargeable source", CraftingMaterials = Config.Complement ? complementAmpSquidBattery : nonComplementAmpSquidattery, UnlocksWith = Config.Complement ? TechType.CopperWire : TechType.Gold, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "AmpSquidBattery.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true } }; abyssBatteries.Add(AmpSquidBattery.TechType); List <TechType> complementFossilBattery = new List <TechType> { AmpSquidBattery.TechType, TechType.SpineEel, TechType.MesmerEgg, TechType.RedGreenTentacleSeed, TechType.Sulphur, TechType.Sulphur, TechType.Nickel }; List <TechType> nonComplementFossilBattery = new List <TechType> { TechType.SpineEel, TechType.MesmerEgg, TechType.RedGreenTentacleSeed, TechType.Sulphur, TechType.Sulphur, TechType.Sulphur, TechType.Nickel, TechType.Nickel, TechType.UraniniteCrystal, TechType.Titanium, TechType.Quartz }; FossilBattery = new CbBattery() { EnergyCapacity = Values.FossilBatteryEnergy, ID = "FossilBattery", Name = "Fossil-Fueled Battery", FlavorText = "A battery made out of an assortment of creatures and minerals found in the Lost River", CraftingMaterials = Config.Complement ? complementFossilBattery : nonComplementFossilBattery, UnlocksWith = TechType.MesmerEgg, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "FossilBattery.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true } }; abyssBatteries.Add(FossilBattery.TechType); List <TechType> complementGhostBattery = new List <TechType> { FossilBattery.TechType, TechType.Lithium, GhostDNA.TechTypeID, TechType.AdvancedWiringKit, TechType.PrecursorIonCrystal }; List <TechType> nonComplementGhostBattery = new List <TechType> { TechType.Lithium, GhostDNA.TechTypeID, TechType.AdvancedWiringKit, TechType.AluminumOxide, TechType.AluminumOxide, TechType.AluminumOxide, TechType.Titanium, TechType.Quartz, TechType.PrecursorIonCrystal, TechType.PrecursorIonCrystal, TechType.Diamond }; GhostBattery = new CbBattery() { EnergyCapacity = Values.GhostBatteryEnergy, ID = "GhostBattery", Name = "Ghost-Charged Plasma Battery", FlavorText = "A mysterious golden substance runs deep through the Ghost Leviathan's veins, which, when combined with its natural bioelectricity produces a plasma of unprecedented power.", CraftingMaterials = Config.Complement ? complementGhostBattery : nonComplementGhostBattery, UnlocksWith = ghostPiece.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "GhostBattery.png")), AddToFabricator = false, CBModelData = new CBModelData { CustomTexture = ImageUtils.LoadTextureFromFile(Path.Combine(AssetsFolder, "GhostBatteryskin.png")), CustomIllumMap = ImageUtils.LoadTextureFromFile(Path.Combine(AssetsFolder, "GhostBatteryillum.png")), CustomSpecMap = ImageUtils.LoadTextureFromFile(Path.Combine(AssetsFolder, "GhostBatteryspec.png")), UseIonModelsAsBase = true, CustomIllumStrength = 1.5f }, EnhanceGameObject = new Action <GameObject>((go) => EnhanceGameObject(go)) }; abyssBatteries.Add(GhostBattery.TechType); List <TechType> complementThermalBattery = new List <TechType> { GhostBattery.TechType, TechType.Kyanite, TechType.Kyanite, dragonScale.TechType, TechType.PrecursorIonCrystal }; List <TechType> nonComplementThermalBattery = new List <TechType> { dragonScale.TechType, TechType.Kyanite, TechType.Kyanite, TechType.PrecursorIonCrystal, TechType.PrecursorIonCrystal, TechType.PrecursorIonCrystal, TechType.Aerogel, TechType.Aerogel, TechType.Quartz, TechType.Titanium, TechType.Diamond, TechType.Diamond }; ThermalBattery = new CbBattery() { EnergyCapacity = Values.ThermalBatteryEnergy, ID = "ThermalBattery", Name = "Dragon-Energized Thermal Battery", FlavorText = "This Battery combines state-of-the-art Alterran thermal-charging technology with the superlative heat-resistant qualities of Sea Dragon scales.", CraftingMaterials = Config.Complement ? complementThermalBattery : nonComplementThermalBattery, UnlocksWith = dragonScale.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "ThermalBattery.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true } }; abyssBatteries.Add(ThermalBattery.TechType); #endregion #region PowerCells List <TechType> complementJellyCell = new List <TechType> { TechType.PowerCell, JellyBattery.TechType, TechType.Titanium }; List <TechType> nonComplementJellyCell = new List <TechType> { JellyBattery.TechType, JellyBattery.TechType, TechType.Silicone }; JellyCell = new CbPowerCell() { EnergyCapacity = JellyBattery.EnergyCapacity * 2, ID = "JellyPowerCell", Name = "Cavernous Jellyshroom Power Cell", FlavorText = "A Power Cell composed of a strange, organic filament found on Crabsnake eggs and the incredibly high-energy content seeds of Jellyshrooms, as well as an assortment of minerals found in the Jellyshroom Caves.", CraftingMaterials = Config.Complement ? complementJellyCell : nonComplementJellyCell, CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "JellyCell.png")), UnlocksWith = JellyBattery.TechType, AddToFabricator = false, }; abyssBatteries.Add(JellyCell.TechType); List <TechType> complementPoopCell = new List <TechType> { JellyCell.TechType, PoopBattery.TechType, TechType.Titanium }; List <TechType> nonComplementPoopCell = new List <TechType> { PoopBattery.TechType, PoopBattery.TechType, TechType.Silicone }; PoopCell = new CbPowerCell() { EnergyCapacity = PoopBattery.EnergyCapacity * 2, ID = "PoopPowercell", Name = "Poop Power Cell", FlavorText = "A Power Cell fuelled by a potent chemical reaction between a Reefback's pod enzymes and a specific combination of minerals and organic compounds found in a Sea Treader's alien feces", CraftingMaterials = Config.Complement ? complementPoopCell : nonComplementPoopCell, UnlocksWith = PoopBattery.TechType, AddToFabricator = false, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "PoopCell.png")), }; abyssBatteries.Add(PoopCell.TechType); List <TechType> complementAmpSquidCell = new List <TechType> { PoopCell.TechType, AmpSquidBattery.TechType, TechType.Lead }; List <TechType> nonComplementAmpSquidCell = new List <TechType> { AmpSquidBattery.TechType, AmpSquidBattery.TechType, TechType.Silicone }; AmpSquidCell = new CbPowerCell() { EnergyCapacity = AmpSquidBattery.EnergyCapacity * 2, ID = "AmpSquidCell", Name = "High Voltage Electro-Magnetic Power Cell", FlavorText = "This Power Cell combines the Ampeel's tremendous bioelectric capacity with the complex EMP organ of the CrabSquid, harnessing the resulting energy and sorting it into a single, rechargeable, portable source", CraftingMaterials = Config.Complement ? complementAmpSquidCell : nonComplementAmpSquidCell, UnlocksWith = AmpSquidBattery.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "AmpSquidCell.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true } }; abyssBatteries.Add(AmpSquidCell.TechType); List <TechType> complementFossilCell = new List <TechType> { AmpSquidCell.TechType, FossilBattery.TechType, TechType.Lead }; List <TechType> nonComplementFossilCell = new List <TechType> { FossilBattery.TechType, FossilBattery.TechType, TechType.Silicone }; FossilCell = new CbPowerCell() { EnergyCapacity = FossilBattery.EnergyCapacity * 2, ID = "FossilCell", Name = "Fossil-Fueled Power Cell", FlavorText = "A Power Cell made out of an assortment of creatures and minerals found in the Lost River", CraftingMaterials = Config.Complement ? complementFossilCell : nonComplementFossilCell, UnlocksWith = FossilBattery.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "FossilCell.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true } }; abyssBatteries.Add(FossilCell.TechType); List <TechType> complementGhostCell = new List <TechType> { FossilCell.TechType, GhostBattery.TechType, TechType.Lithium }; List <TechType> nonComplementGhostCell = new List <TechType> { GhostBattery.TechType, GhostBattery.TechType, TechType.Silicone }; GhostCell = new CbPowerCell() { EnergyCapacity = GhostBattery.EnergyCapacity * 2, ID = "GhostPowercell", Name = "Ghost-Charged Plasma Power Cell", FlavorText = "A mysterious golden substance runs deep through the Ghost Leviathan's veins, which, when combined with its natural bioelectricity produces a plasma of unprecedented power.", CraftingMaterials = Config.Complement ? complementGhostCell : nonComplementGhostCell, UnlocksWith = GhostBattery.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "GhostCell.png")), AddToFabricator = false, CBModelData = new CBModelData { CustomTexture = ImageUtils.LoadTextureFromFile(Path.Combine(AssetsFolder, "GhostCellskin.png")), CustomIllumMap = ImageUtils.LoadTextureFromFile(Path.Combine(AssetsFolder, "GhostCellillum.png")), UseIonModelsAsBase = true, CustomIllumStrength = 1.5f }, EnhanceGameObject = new Action <GameObject>((go) => EnhanceGameObject(go)), }; abyssBatteries.Add(GhostCell.TechType); List <TechType> complementThermalCell = new List <TechType> { GhostCell.TechType, ThermalBattery.TechType, TechType.Lithium }; List <TechType> nonComplementThermalCell = new List <TechType> { ThermalBattery.TechType, ThermalBattery.TechType, TechType.Silicone }; ThermalCell = new CbPowerCell() { EnergyCapacity = ThermalBattery.EnergyCapacity * 2, ID = "ThermalPowerCell", Name = "Dragon-Energized Thermal Power Cell", FlavorText = "This Power Cell combines state-of-the-art Alterran thermal-charging technology with the superlative heat-resistant qualities of Sea Dragon scales.", CraftingMaterials = Config.Complement ? complementThermalCell : nonComplementThermalCell, UnlocksWith = ThermalBattery.TechType, //CustomIcon = ImageUtils.LoadSpriteFromFile(Path.Combine(AssetsFolder, "ThermalCell.png")), AddToFabricator = false, CBModelData = new CBModelData { UseIonModelsAsBase = true }, }; abyssBatteries.Add(ThermalCell.TechType); #endregion }