changes:
Removed shim for old spark system.
Converted all calls to old spark system with calls to new one.
Processor-based effects are no longer pooled, as it had minimal performance impact and was breaking things.
Tweaked some visible_messages for rogue drones.
PB effects' handling of location is now done at the /datum/effect_system level.
- Now uses percentage instead of fixed value when determining whether charging at full capacity, or only partially.
- Adds new overlay for "Disconnected or No Charge" output status. Outputting overlay is now displayed correctly.
- Exception to this are SMESs that are intended to output - engine room, AI core, atmospherics, telecommunications, all asteroid outposts. This is why map changes had to be made.
- SMESs will now try to balance their inputs and outputs. This will correct the situations where some SMESs charge at full rate, starving other SMESs who are trying to charge from the same power net. In terms of output, multiple SMESs (such as, solar SMESs) will try to provide equal amount of power to the powernet.
- SMESs processing is now slightly different. UI now displays a "Disconnected or No Charge" error when the SMES does not have cable connection to output to, or when stored charge is zero. Once this problem is resolved (either by charging the SMES or by connecting it via wires) it will automatically begin outputting again.
- The only tiny bug i have registered so far is related to number precision. It is possible that powernets may gain or lose few watts (talking about 1-5 watts per powernet at most, it is negligible)
- Instead, they simply won't output until some power is regained.
- This prevents, for example, solar SMESs from shutting down when they reach zero charge when the array is shadowed by the station. The SMES simply won't output any power until the array begins generating again.
However, ghosts can now also only view objects in range to ensure that the NanoUI window count is kept low.
Admins do not suffer this restriction and may also interact with these windows.
- Gridcheck random event is updated. Core behavior remains the same, but mechanism it uses to achieve power outage is changed.
- Both SMESs and APCs have new variable which is set by gridcheck. This variable decrements by 1 every tick, and until it is back to zero the APC/SMES won't work.
- SMESs are disabled for 60-120 seconds (random for each SMES). APCs for 120-240 seconds.
- Both SMESs and APCs show error UI with timer counting down until the device restarts (begins working again).
- Both SMEss and APCs may be manually restarted, on per-device basis, by clicking restart button in the UI. This is useful if you urgently need one or two devices back online, for example, medical treatment facilities, etc. This immediately skips the X second timer and restores the device to working state, while keeping the original intention of this event - allowing antagonists to use lack of power to enter areas they don't normally have access to.
- Re-implements Destroy() for SMES units. This time moves relevant (de)construction code all the way up to obj/machinery/. This should fix any potential GC issues with deconstruction of component-based machines.
- Implements Destroy() for breaker boxes.
- Fixes SMES units lacking disconnect_terminal(), causing GC errors.
- Adds Red and Blue simple pipes for mapping use.
- Adds empty CO2 PH and N2O canisters for mapping use.
- Reworks asteroid outpost areas. Old areas kept in separate file for downstream compatibility
- Modifies engineering shuttle to work with next commit.
- SMESs no longer have to be charged above certain level (~5%?) to actually begin outputting power.
- Fixes SMES related bug caused by previous commit
- Changed SMES NanoUI Online/Offline switch to reflect the current state
it is set to
- UI now also displays it's output status:
- Outputting = SMES is switched online and outputting normally
- Not Outputting = SMES is switched to offline
- Stored energy too low = SMES is set to online but can't output because
it doesn't have enough charge
- Adds CELLRATE (and SMESRATE for SMESs) into drain_power proc.
- Adds "amount" parameter to drain power proc, sets the powersink module to 40kW draw (80 cell charge/s), which should correspond with normal cell recharger.
- Removes drain_power from all machinery, and adds drain_power to machinery/power. This means you can only drain from machines that have something to do with wiring or electricity.
- Allows remote control of SMES units and Breaker Boxes.
- Adds wires to SMES units. Wires may be cut/pulsed for various effects. Signallers are supported.
- RCON console(s) may be used to monitor the SMES units (which have RCON enabled) remotely, showing output loads and charge percentages.
- SMESs may be quickly discharged by cutting the grounding wire. This however comes with little risk of overload which may damage APCs on output powernet.
This should have little/no gameplay effect right now, just paving the
way for directional lights.
Replaced handle_rotation() on buckly things with this.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
- Atmospherics, north solar and outpost SMESs remapped to be of /smes/buildable type instead of /smes/ which can't be upgraded and/or disassembled.
- Added warning which shows in the log when non-magical or non-buildable SMES is mapped in/spawned. This should *hopefully* remind mappers that regular SMESs are not suposed to be mapped in unless specifically needed.
Generalized all ninja power and gear code to work with new rig system.
Added shurikens, weapon mount, more work on deployable items.
Readded energy nets and energy blades.
Grenade launcher/charge stuff, interface stuff.
Renamed previously existing rigs to voidsuits, restructured rig and voidsuit files.
Refactored the energy net and teleportation proc.
Totally rewrote AI core/intellicard transfer procs.
Added rig sprites by Mordeth221, added step by steap suit sealing/inability to interfere with suit sealing process.
Updated map paths to use voidsuits.
Added chemical dispenser functionality, added power sink, added atom/drain_power() proc for later use.
Added rigsuit verbs, added voice changer.
Renamed MASKINTERNALS to AIRTIGHT, added internals checks for airtight helmets.
Added drain_power() procs to vulnerable machinery.
Reimplemented data theft.
Added suit maluses for losing your cell while wearing one.
Transitioned the rig suits to a back-mounted item that also controls a chestpiece.
Converted rig module to a storage item, convert ERT voidsuits to hardsuits.
- SMES now shows "Partially Charging" in UI when it has at least some input, but not enough to charge at set rate.
- Added yellowish-orange overlay which is used instead of the normal one if the SMES is partially charging, so you can visually see it without having to open the UI.
- UI input/output rate fields are now 20px wider. This fixes issues with values that exceed 1 000 000 W. Such values are possible with multi-coiled SMESs.
- Fixes issues caused when makepowernets() was somehow called.
- Substations (or read, breakerboxes) work properly now. Tested.
- Powernets no longer decide to randomly stop working when stuff is being modified.
- Mostly temporary fix until next devmerge which will (hopefully) add /tg/ powernet code.
Now possible to configure 3 different kind of Z-levels.
Station levels: Which Z-levels the station exists on.
Contact levels: Which Z-levels are typically affected by, for example, Code Red which alters the visual state of fire alarms.
Player levels: Which Z-levels a character can typically reach.