Power Is Too Cheap
Posted: Mon Jan 13, 2020 7:40 pm
Power Is Too Cheap
Idea
I think power is too cheap on the station. By that I mean a default round start SM setup generally powers everything without any problems. The idea is as machines are upgraded, they drain more power. This would give engineers reasons to wire solars, get turbine producing power, and creating more robust sm setups.
This is something I plan on coding up myself and wanted to get feedback from the community before I dive in further.
Why this is good for the game
- Gives engineers a reason to generate more power
- Possibly slows power creep and thus extends round times
- new antag options
- get to hear folks scream "I NEED MORE POWER!!!"
Constraints
- default sm setup (wiki setup) should work fine until 80% of (critical) machines are upgraded to t2 parts
- Thanks to TheFinalPotato for letting me know it's around 300-400
- It will work on a tier based system.
Tiers
- default sm = 0 | 80% (critical) machines at t2
- default sm + 2 solar = 1 | 80% (critical) && (trivial) machines at t2
- default sm + 4 solars = 2 | 80% (critical) machines at t3
- default sm + 4 solars + default turbine (wiki) = 4
- byond the pale, all of the above plus or minus some crazy sm setup = 5 | 80% (critical) && (trivial) machines at t4
These tiers represent a suggestion and obviously custom sm setups can quickly satisfy higher tiers.
If you know what you are doing.
Math
TODO: research the actual numbers to define the tiers above correctly
- need power output of a wiki defined default SM setup
- figure out which parts I want to apply `power_coefficent` too. Currently thinking lasers, scanners and manipulators will do the trick and makes sense in universe. i.e. better lasers need more power
Machine Splits
The only reason I chose to split machines into two groups like this is to have way to calculate the coefficents correctly i.e. how many parts are in each machine to reach each tier level. Only round start machines will be listed. Most power generation items will be excluded too. This list is speculative for now and will change as the math is researched.
Critical Machines
- Each department should have at least one thing on this list except kitchen/sec
Totals
MM - 12, MB - 8, ML - 5, SM - 5, C - 2
- Ore Redemption Machine
- 1mm,1mb,1ml
- Plant DNA Manipulator
- 1ml,1sm,1mm
- Chem Dispenser
- 2mb,1c,1mm
- Protolathe
- 2mm,2mb
- Circuit Imprinter
- 1mb,1mm
- Cloning Pod (only here until it is removed or something)
- 2mm,2sm
- Limb Grower
- 1mm
- Destructive Analyzer (may move down)
- 1mm,1sm,1ml
- DNA Scanner
- 1mb,1mm,1sm,1ml
- Microwave
- 1ml,1mb
- Lifeform Stasis Unit
- 1c,1mm
- Surgery (I can't remember if these get upgraded?)
Trivial Machines
- Recycler
- 1mm,1mb
- Biogenerator
- 1mb,1mm
- Chemical Heater
- 1ml
- Cryogenics Tube
- 1mb
- Cyborg Recharing Station (may move up)
- 2c,1mm
- Exosuit Fabricator
- 1mm,2mb,1ml
- Freezer/Heater
- 2mb,2ml
- Gas Turbine generator
- 6c
- Gas Turbine Compressor
- 6mm
- Hydroponics Tray
- 2mb,1mm
- Mech Bay Power Port
- 5c
- Gibber
- 1mb
- Food Processor
- 1mb
- Smart Fridge
- 1mb
- Protolathe
- 2mm,2mb
- RnD Server
- 1sm
- Nanite Chamber
- 2sm,2ml,1mm
- Public Nanite Chamber (round start exception)
- 2ml,1mm
- Nanite Program Hub
- 1mb,1mm
- Nanite Programmer
- 2mm,2ml,1sm
Part Power coefficient
- Basically to achieve the idea. I'm going to need to modify `active_power_usage` in a lot of places.
- To do this each part will have a power coefficient prop (is that the right word in DM?) added to it
### Example `power_coefficient`
### Example power modifications on machines
Thanks cobby for the code snippets
### Notes
I would love to hear everyone's feedback before I dive into coding this up. I know I still need to workout the math on this idea too. I don't want to create a situation where everyone is running out of power constantly BUT I do want to create a tiny push for engineers to seek new and exciting methods of generating new power. I imagine the `power_coefficient` will be very very small to start with, but further testing and math are required before I can lock that down for sure. Also sorry for formatting, I wrote this up in markdown initially before realizing the forums hated that.
Idea
I think power is too cheap on the station. By that I mean a default round start SM setup generally powers everything without any problems. The idea is as machines are upgraded, they drain more power. This would give engineers reasons to wire solars, get turbine producing power, and creating more robust sm setups.
This is something I plan on coding up myself and wanted to get feedback from the community before I dive in further.
Why this is good for the game
- Gives engineers a reason to generate more power
- Possibly slows power creep and thus extends round times
- new antag options
- get to hear folks scream "I NEED MORE POWER!!!"
Constraints
- default sm setup (wiki setup) should work fine until 80% of (critical) machines are upgraded to t2 parts
- Thanks to TheFinalPotato for letting me know it's around 300-400
- It will work on a tier based system.
Tiers
- default sm = 0 | 80% (critical) machines at t2
- default sm + 2 solar = 1 | 80% (critical) && (trivial) machines at t2
- default sm + 4 solars = 2 | 80% (critical) machines at t3
- default sm + 4 solars + default turbine (wiki) = 4
- byond the pale, all of the above plus or minus some crazy sm setup = 5 | 80% (critical) && (trivial) machines at t4
These tiers represent a suggestion and obviously custom sm setups can quickly satisfy higher tiers.
If you know what you are doing.
Math
TODO: research the actual numbers to define the tiers above correctly
- need power output of a wiki defined default SM setup
- figure out which parts I want to apply `power_coefficent` too. Currently thinking lasers, scanners and manipulators will do the trick and makes sense in universe. i.e. better lasers need more power
Machine Splits
The only reason I chose to split machines into two groups like this is to have way to calculate the coefficents correctly i.e. how many parts are in each machine to reach each tier level. Only round start machines will be listed. Most power generation items will be excluded too. This list is speculative for now and will change as the math is researched.
Critical Machines
- Each department should have at least one thing on this list except kitchen/sec
Totals
MM - 12, MB - 8, ML - 5, SM - 5, C - 2
- Ore Redemption Machine
- 1mm,1mb,1ml
- Plant DNA Manipulator
- 1ml,1sm,1mm
- Chem Dispenser
- 2mb,1c,1mm
- Protolathe
- 2mm,2mb
- Circuit Imprinter
- 1mb,1mm
- Cloning Pod (only here until it is removed or something)
- 2mm,2sm
- Limb Grower
- 1mm
- Destructive Analyzer (may move down)
- 1mm,1sm,1ml
- DNA Scanner
- 1mb,1mm,1sm,1ml
- Microwave
- 1ml,1mb
- Lifeform Stasis Unit
- 1c,1mm
- Surgery (I can't remember if these get upgraded?)
Trivial Machines
- Recycler
- 1mm,1mb
- Biogenerator
- 1mb,1mm
- Chemical Heater
- 1ml
- Cryogenics Tube
- 1mb
- Cyborg Recharing Station (may move up)
- 2c,1mm
- Exosuit Fabricator
- 1mm,2mb,1ml
- Freezer/Heater
- 2mb,2ml
- Gas Turbine generator
- 6c
- Gas Turbine Compressor
- 6mm
- Hydroponics Tray
- 2mb,1mm
- Mech Bay Power Port
- 5c
- Gibber
- 1mb
- Food Processor
- 1mb
- Smart Fridge
- 1mb
- Protolathe
- 2mm,2mb
- RnD Server
- 1sm
- Nanite Chamber
- 2sm,2ml,1mm
- Public Nanite Chamber (round start exception)
- 2ml,1mm
- Nanite Program Hub
- 1mb,1mm
- Nanite Programmer
- 2mm,2ml,1sm
Part Power coefficient
- Basically to achieve the idea. I'm going to need to modify `active_power_usage` in a lot of places.
- To do this each part will have a power coefficient prop (is that the right word in DM?) added to it
### Example `power_coefficient`
Code: Select all
// code/modules/research/stock_parts.dm
/obj/item/stock_parts/capacitor
name = "capacitor"
desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor"
custom_materials = list(/datum/material/iron=50, /datum/material/glass=50)
power_coefficient = 1 // NEW THING HERE
### Example power modifications on machines
Code: Select all
// various machine files like code/game/machinery/autolathe.dm
/obj/machinery/autolathe/RefreshParts() // the function were looking for
for(var/obj/item/stock_parts/the_stockpart in component_parts) // for each part in it's parts
active_power_usage += (the_stockpart.power_coefficient * the_stockpart.rating) // increase power usage of machine
Thanks cobby for the code snippets
### Notes
I would love to hear everyone's feedback before I dive into coding this up. I know I still need to workout the math on this idea too. I don't want to create a situation where everyone is running out of power constantly BUT I do want to create a tiny push for engineers to seek new and exciting methods of generating new power. I imagine the `power_coefficient` will be very very small to start with, but further testing and math are required before I can lock that down for sure. Also sorry for formatting, I wrote this up in markdown initially before realizing the forums hated that.