public DiverDefenceMk2_FromBrokenChip() : base("DiverDefenceMk2_FromBrokenChip", "Diver Defence System Mk2", "Protects a diver from hostile fauna using electrical discouragement. Can be recharged multiple times.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public ExosuitLightningClawGeneratorModule() : base("ExosuitLightningClawGeneratorModule", "Exosuit Lightning Claw Generator", "An electrical pulse generator which ties into the Exosuit's claw arm, electrocuting anything struck by it.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public HoverbikeSelfRepairModule() : base("HoverbikeSelfRepairModule", "Self-Repair Module", "Nanotech repair system passively repairs damage to Snowfox systems. Consumes energy while in use.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public SeatruckThermalModule() : base("SeatruckThermalModule", "SeaTruck Thermal Charger", "Recharges SeaTruck power cells in hot zones. Does not stack.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public SeatruckRepairModule() : base("SeatruckRepairModule", "SeaTruck Repair Module", "Passively repairs damaged Seatruck and modules for modest energy cost; in active mode, rapidly repairs damage, but at significant energy cost") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public HoverbikeSolarChargerModule() : base("HoverbikeSolarChargerModule", "Snowfox Solar Charger", "Recharges the Snowfox's battery while in sunlight. Does not stack.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public ExosuitLightningClawPrefab() : base("ExosuitLightningClawArm", "Exosuit Lightning Claw", "Lightning Claw upgrade adds an electrical generator to the claw, delivering an electrical jolt to anything struck by it.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public HoverbikeDurabilitySystem() : base("HoverbikeDurabilitySystem", "Hoverbike Durability System", "Energy field reduces incoming damage, and nanotech repair system passively repairs damage to Snowfox systems. Consumes energy while in use.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public CoralSample() : base("CoralSample", "Coral Shelf Sample", "A sample of coral from the Twisty Bridges.") { OnFinishedPatching += () => { KnifePatches.AddHarvestable(TechType.TwistyBridgesCoralShelf, 200f); Main.AddModTechType(this.TechType); CraftDataHandler.SetHarvestOutput(TechType.TwistyBridgesCoralShelf, this.TechType); CraftDataHandler.SetHarvestType(TechType.TwistyBridgesCoralShelf, HarvestType.DamageAlive); CraftDataHandler.SetTechData(TechType.Bleach, new SMLHelper.V2.Crafting.RecipeData() { craftAmount = 1, Ingredients = new List <Ingredient>() { new Ingredient(this.TechType, 1), new Ingredient(TechType.Salt, 1) } }); CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.Bleach, new string[] { "Resources", "BasicMaterials" }); CraftDataHandler.SetTechData(TechType.DisinfectedWater, new SMLHelper.V2.Crafting.RecipeData() { craftAmount = 2, Ingredients = new List <Ingredient>() { new Ingredient(TechType.Bleach, 1) } }); CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, TechType.DisinfectedWater, new string[] { "Survival", "Water" }); KnownTechHandler.SetAnalysisTechEntry(this.TechType, new TechType[] { TechType.Bleach }); KnownTechHandler.SetAnalysisTechEntry(TechType.Bleach, new TechType[] { TechType.DisinfectedWater }); LanguageHandler.Main.SetTechTypeTooltip(TechType.Bleach, "NaClO. Sodium hypochlorite bleach. Sanitizing applications."); }; }
/*protected override Sprite GetItemSprite() * { * return SpriteManager.Get(TechType.VehicleArmorPlating); // Placeholder * }*/ public HoverbikeStructuralIntegrityModule() : base("HoverbikeStructuralIntegrityModule", "Structural Integrity Field", "Consumes energy to reduce damage taken by the Snowfox by half. Does not stack.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public HoverbikeWaterTravelModule() : base("HoverbikeWaterTravelModule", "Water Travel Module", "Increases the power of the Snowfox's hover pads, allowing travel over water in exchange for increased energy consumption.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public PowerglideFragmentPrefab() : base("PowerglideFragment", "Powerglide Fragment", "Damaged Powerglide") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public ExosuitSprintModule() : base("ExosuitSprintModule", "Exosuit Sprint Module", "A hydraulic system that allows the Exosuit's jump jets to angle for horizontal travel.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); }; }
public SeatruckSolarModule() : base("SeatruckSolarModule", "SeaTruck Solar Charger", "Recharges SeaTruck power cells in sunlight. Limited stacking ability.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); SeaTruckUpgradesPatches.AddMaxModuleOverride(this.TechType, MaxSolarModules); }; }
public DiverPerimeterDefenceChip_Broken() : base("DiverPerimeterDefenceChip_Broken", "Diver Perimeter System (damaged)", $"Protects a diver from hostile fauna using electrical discouragement.\n\nChip has been discharged and is non-functional.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); CoroutineHost.StartCoroutine(PostPatchSetup()); }; }
public PowerglideEquipable() : base("PowerglideEquipable", friendlyName, description) { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); PlayerToolPatches.AddToolSubstitution(this.TechType, TechType.Seaglide); }; }
public HoverbikeEngineEfficiencyModule() : base("HoverbikeEngineEfficiencyModule", "Snowfox Engine Efficiency Module", "Optimises Snowfox power use, reducing battery consumption by 35%. Stacks up to twice.") { OnFinishedPatching += () => { HoverbikeUpdater.AddEfficiencyMultiplier(this.TechType, efficiencyModifier, maxUpgrades: maxUpgrades); Main.AddModTechType(this.TechType); }; }
public SeaTruckSonarModule() : base("SeaTruckSonarModule", "SeaTruck Sonar Module", "A dedicated system for detecting and displaying topographical data on the HUD.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); CraftDataHandler.SetEnergyCost(this.TechType, EnergyCost); }; }
public HoverbikeMobilityUpgrade() : base("HoverbikeMobilityUpgrade", "Snowfox Mobility Upgrade", "Allows Snowfox to jump, travel on water, and provides a modest bonus to speed, without increasing power consumption. Does not stack with Speed Module or Efficiency Upgrade.") { OnFinishedPatching += () => { HoverbikeUpdater.AddEfficiencyMultiplier(this.TechType, efficiencyModifier, upgradePriority, maxStack); HoverbikeUpdater.AddMovementModifier(this.TechType, speedMultiplier, cooldownMultiplier, upgradePriority, maxStack); Main.AddModTechType(this.TechType); }; }
public HoverbikeSpeedModule() : base("HoverbikeSpeedModule", "Snowfox Speed Module", "Increases Snowfox speed, but also significantly increases power consumption. Does not stack.") { OnFinishedPatching += () => { HoverbikeUpdater.AddEfficiencyMultiplier(this.TechType, powerConsumptionModifier); HoverbikeUpdater.AddMovementModifier(this.TechType, speedMultiplier, cooldownMultiplier, maxStack); Main.AddModTechType(this.TechType); }; }
public SeatruckSolarModule(string classID = "SeatruckSolarModule", string friendlyName = "SeaTruck Solar Charger", string description = "Recharges SeaTruck power cells in sunlight. Limited stacking ability.") : base(classID, friendlyName, description) { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); SeaTruckUpgradesPatches.AddMaxModuleOverride(this.TechType, MaxSolarModules); }; }
public ShadowLeviathanSample() : base("ShadowLeviathanSample", "Shadow Leviathan Sample", "A sample of chitin and ichor from a deadly predator.") { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); CraftDataHandler.SetHarvestOutput(TechType.ShadowLeviathan, this.TechType); CraftDataHandler.SetHarvestType(TechType.ShadowLeviathan, HarvestType.DamageAlive); }; }
public ReinforcedColdGloves() : base("ReinforcedColdGloves", "Reinforced Cold Gloves", "Reinforced insulating gloves provide physical protection and insulation from extreme temperatures.") { OnFinishedPatching += () => { int coldResist = TechData.GetColdResistance(TechType.ColdSuitGloves); DWEquipmentBonanza.Reflection.AddColdResistance(this.TechType, System.Math.Max(10, coldResist)); DWEquipmentBonanza.Reflection.SetItemSize(this.TechType, 2, 2); Log.LogDebug($"Finished patching {this.TechType.AsString()}, found source cold resist of {coldResist}, cold resistance for techtype {this.TechType.AsString()} = {TechData.GetColdResistance(this.TechType)}"); Main.AddSubstitution(this.TechType, TechType.ColdSuitGloves); Main.AddSubstitution(this.TechType, TechType.ReinforcedGloves); Main.AddModTechType(this.TechType); }; }
public DWUltraGlideSwimChargeFins() : base("DWUltraGlideSwimChargeFins", friendlyName, description) { OnFinishedPatching += () => { Main.AddModTechType(this.TechType); EquipmentPatch.AddSubstitution(this.TechType, TechType.SwimChargeFins); UnderwaterMotorPatches.AddSpeedModifier(this.TechType, 3f); Reflection.AddCompoundTech(this.TechType, new List <TechType>() { TechType.SwimChargeFins, TechType.UltraGlideFins }); CoroutineHost.StartCoroutine(PostPatchSetup()); }; }
public HighCapacityBooster() : base("HighCapacityBooster", "High Capacity Booster Tank", "Booster tank with increased oxygen capacity.") { OnFinishedPatching += () => { Main.AddSubstitution(this.TechType, TechType.SuitBoosterTank); Main.AddSubstitution(this.TechType, TechType.HighCapacityTank); Main.AddModTechType(this.TechType); KnownTech.CompoundTech compound = new KnownTech.CompoundTech(); compound.techType = this.TechType; compound.dependencies = new List <TechType>() { TechType.SuitBoosterTank, TechType.HighCapacityTank }; Reflection.AddCompoundTech(compound); CoroutineHost.StartCoroutine(PostPatchSetup()); }; }
public InsulatedRebreather() : base("InsulatedRebreather", "Insulated Rebreather", "Rebreather equipped with insulation helps slow the onset of hypothermia") { OnFinishedPatching += () => { int coldResist = TechData.GetColdResistance(TechType.ColdSuitHelmet); DWEquipmentBonanza.Reflection.AddColdResistance(this.TechType, System.Math.Max(20, coldResist)); DWEquipmentBonanza.Reflection.SetItemSize(this.TechType, 2, 2); Log.LogDebug($"Finished patching {this.TechType.AsString()}, using source cold resist of {coldResist}, cold resistance for techtype {this.TechType.AsString()} = {TechData.GetColdResistance(this.TechType)}"); Main.AddSubstitution(this.TechType, TechType.ColdSuitHelmet); Main.AddSubstitution(this.TechType, TechType.Rebreather); Main.AddModTechType(this.TechType); Reflection.AddCompoundTech(this.TechType, new List <TechType>() { TechType.Rebreather, TechType.ColdSuit }); }; }
public ReinforcedColdSuit() : base("ReinforcedColdSuit", "Reinforced Cold Suit", "Reinforced, insulated diving suit providing physical protection and insulation from extreme temperatures.") { OnFinishedPatching += () => { int coldResist = TechData.GetColdResistance(TechType.ColdSuit); Reflection.AddColdResistance(this.TechType, System.Math.Max(50, coldResist)); Reflection.SetItemSize(this.TechType, 2, 3); Log.LogDebug($"Finished patching {this.TechType.AsString()}, found source cold resist of {coldResist}, cold resistance for techtype {this.TechType.AsString()} = {TechData.GetColdResistance(this.TechType)}"); Main.AddSubstitution(this.TechType, TechType.ColdSuit); Main.AddSubstitution(this.TechType, TechType.ReinforcedDiveSuit); Main.AddModTechType(this.TechType); Reflection.AddCompoundTech(this.TechType, new List <TechType>() { TechType.ReinforcedDiveSuit, TechType.ColdSuit }); }; }
protected virtual void OnFinishedPatch() { //Main.AddSubstitution(this.TechType, TechType.Stillsuit); foreach (TechType tt in substitutions) { Main.AddSubstitution(this.TechType, tt); } Main.AddModTechType(this.TechType); PlayerPatch.AddSurvivalSuit(this.TechType); if (CompoundDependencies.Count > 0) { KnownTech.CompoundTech compound = new KnownTech.CompoundTech(); compound.techType = this.TechType; compound.dependencies = CompoundDependencies; Reflection.AddCompoundTech(compound); } //SurvivalPatches.AddNeedsCapOverride(this.TechType, SurvivalCapOverride); }
public PlasteelHighCapTank() : base("PlasteelHighCapTank", "Plasteel Ultra Capacity Tank", "Lightweight tank with high oxygen capacity") { OnFinishedPatching += () => { Main.AddSubstitution(this.TechType, TechType.PlasteelTank); Main.AddSubstitution(this.TechType, TechType.HighCapacityTank); Main.AddModTechType(this.TechType); Reflection.AddCompoundTech(this.TechType, new List <TechType>() { TechType.PlasteelTank, TechType.HighCapacityTank }); CoroutineHost.StartCoroutine(PostPatchSetup()); UnderwaterMotorPatches.AddSpeedModifier(this.TechType, -0.10625f); Main.AddCustomOxyExclusion(this.TechType, true, true); Main.AddCustomOxyTank(this.TechType, -1f, icon); }; }
public InsulatedRebreather() : base("InsulatedRebreather", "Insulated Rebreather", "Rebreather equipped with insulation helps slow the onset of hypothermia") { OnFinishedPatching += () => { int coldResist = TechData.GetColdResistance(TechType.ColdSuitHelmet); CombinedItems.Reflection.AddColdResistance(this.TechType, System.Math.Max(20, coldResist)); CombinedItems.Reflection.SetItemSize(this.TechType, 2, 2); Log.LogDebug($"Finished patching {this.TechType.AsString()}, found source cold resist of {coldResist}, cold resistance for techtype {this.TechType.AsString()} = {TechData.GetColdResistance(this.TechType)}"); Main.AddSubstitution(this.TechType, TechType.ColdSuitHelmet); Main.AddSubstitution(this.TechType, TechType.Rebreather); Main.AddModTechType(this.TechType); KnownTech.CompoundTech compound = new KnownTech.CompoundTech(); compound.techType = this.TechType; compound.dependencies = new List <TechType>() { TechType.Rebreather, TechType.ColdSuit }; Reflection.AddCompoundTech(compound); }; }