mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-11 08:06:33 +01:00
docker-container
34 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
aefec7cb2b |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
59d74624b1 |
Upstream power stuff combined and shit (#27284)
* Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579) Removes all arbitrary energy and power units in the codebase. Everything is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you are going to multiply by time. This is a visible change, where all arbitrary energy units you see in the game will get proper prefixed units of energy. With power cells being converted to the joule, charging one joule of a power cell will require one joule of energy. The grid will now store energy, instead of power. When an energy usage is described as using the watt, a power to energy conversion based on the relevant subsystem's timing (usually multiplying by seconds_per_tick or applying power_to_energy()) is needed before adding or removing from the grid. Power usages that are described as the watt is really anything you would scale by time before applying the load. If it's described as a joule, no time conversion is needed. Players will still read the grid as power, having no visible change. Machines that dynamically use power with the use_power() proc will directly drain from the grid (and apc cell if there isn't enough) instead of just tallying it up on the dynamic power usages for the area. This should be more robust at conserving energy as the surplus is updated on the go, preventing charging cells from nothing. APCs no longer consume power for the dynamic power usage channels. APCs will consume power for static power usages. Because static power usages are added up without checking surplus, static power consumption will be applied before any machine processes. This will give a more truthful surplus for dynamic power consumers. APCs will display how much power it is using for charging the cell. APC cell charging applies power in its own channel, which gets added up to the total. This will prevent invisible power usage you see when looking at the power monitoring console. After testing in MetaStation, I found roundstart power consumption to be around 406kW after all APCs get fully charged. During the roundstart APC charge rush, the power consumption can get as high as over 2MW (up to 25kW per roundstart APC charging) as long as there's that much available. Because of the absurd potential power consumption of charging APCs near roundstart, I have changed how APCs decide to charge. APCs will now charge only after all other machines have processed in the machines processing subsystem. This will make sure APC charging won't disrupt machines taking from the grid, and should stop APCs getting their power drained due to others demanding too much power while charging. I have removed the delays for APC charging too, so they start charging immediately whenever there's excess power. It also stops them turning red when a small amount of cell gets drained (airlocks opening and shit during APC charge rush), as they immediately become fully charged (unless too much energy got drained somehow) before changing icon. Engineering SMES now start at 100% charge instead of 75%. I noticed cells were draining earlier than usual after these changes, so I am making them start maxed to try and combat that. These changes will fix all conservation of energy issues relating to charging powercells. Closes #73438 Closes #75789 Closes #80634 Closes #82031 Makes it much easier to interface with the power system in the codebase. It's more intuitive. Removes a bunch of conservation of energy issues, making energy and power much more meaningful. It will help the simulation remain immersive as players won't encounter energy duplication so easily. Arbitrary energy units getting replaced with the joule will also tell people more meaningful information when reading it. APC charging will feel more snappy. 🆑 fix: Fixes conservation of energy issues relating to charging powercells. qol: APCs will display how much power they are using to charge their cell. This is accounted for in the power monitoring console. qol: All arbitrary power cell energy units you see are replaced with prefixed joules. balance: As a consequence of the conservation of energy issues getting fixed, the power consumption for charging cells is now very significant. balance: APCs only use surplus power from the grid after every machine processes when charging, preventing APCs from causing others to discharge while charging. balance: Engineering SMES start at max charge to combat the increased energy loss due to conservation of energy fixes. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Corrects Suit Storage Unit charge rate (#82192) ## About The Pull Request Adjusts SSU charge rate according to the new conversion ratio. Betcha didn't know SSUs recharge suit and MOD cells? This number is actually supposed to be equal to the rate a recharger station does it. I don't know if we have some macro for it. ## Changelog 🆑 Melbert fix: Fixed Suit Storage Unit cell charging rate /🆑 * Corrects EVA thermal regulator cell cost (#82195) ## About The Pull Request Another unit not converted to watts / joules ## Changelog 🆑 Melbert fix: Fixed space suit thermal regulators cell usage. /🆑 * Fixing cell power usage (Part 1) (#82197) ## About The Pull Request Yeah i am not about to create 30 different PR's to address 1 issue at a time. The changes are small enough to be grouped together in bulk. This fixes the following issues specified in #82196 - Borg & exosuit RCD (Fixes #82193) - Motorized wheelchair - Canister shielding - Electrolyser - Potato cell - Space heater - Microwave ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 1). See PR 82197 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 2) (#82198) ## About The Pull Request Continuation of #82197. Fixes these issues in #82196 - Cyborg self repair - Cyborg lollipop dispenser - Mauna mug - Plasma cutter (Initial charge not the number of laser shots so partial fix) ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 2). See PR 82198 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 3) (#82204) ## About The Pull Request Continuation of #82198 Fixes these issues in #82196 - Borg hypo spray - Borg projectile dampen - Borg chameleon - Firelance - MODlink scryer - Emergency light usage ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 3). See PR 82204 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * [NO GBP]Fixes static power usage not always drawing the remaining energy of an APC cell. (#82205) ## About The Pull Request Makes APC static power draw consume the remaining energy of the cell if there's not enough energy. ## Why It's Good For The Game Prevents a niche issue where an area composed entirely of static power users with no dynamic users from running forever with no power supply. ## Changelog 🆑 fix: Fixes static power usage from being able to not draw power. /🆑 * Fixes recharge stations charge rates (#82191) ## About The Pull Request - Fixes #82190 Have to now use the assigned constants and not magic number `10000`. Also stuff will take the exact charge needed without any wastage. ## Changelog 🆑 fix: recharge stations draw the same amount of power as before but directly from grid(without using apc cell power) and won't waste any excess power /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes space heater power usage (#82208) ## About The Pull Request Related to https://github.com/tgstation/tgstation/issues/82196 fixes the space heater power cell usage relating to power per tile heated. Space heater calculates the amount of power required to heat a tile, but only uses power at the end of the processing loop. Fixes so the power consumption matches the calculated usage per tile. Reverts changes to space heater power efficiency in https://github.com/tgstation/tgstation/pull/82197 that causes the heater to instantly drain the cell. Fixes https://github.com/tgstation/tgstation/issues/82228 ## Changelog 🆑 LT3 fix: Fixes Schrödinger's space heater, where a space heater both consumes a power cell instantly while also not consuming power when heating adjacent tiles /🆑 * General maintenance for reagent grinder (#82161) ## About The Pull Request **1. Qol** - Adds examines & screentips for screwdriver, crowbar & wrench acts. - Adds examines & screentips for inserting, replacing & removing beaker, Also for inserting items from bags or directly - Adds an off icon overlay for when the reagent grinder is either screwed open or loses power, **2. Code Improvements** - Replaced `attackby()` with `item_interaction()` so we can end the attack chain early for non combat operations like inserting beakers/ ingredients for grinding etc. - Removed custom shake animations & replaced it with the global `Shake()` proc cause it did the same thing - Removed constructed version of reagent grinder. We instead just check `mapload` to see if we need the beaker to be created or not for round start reagent grinders - Grinding & Juicing use the same `operate_for()` rather than having seperate procs for each operation - Removed trait `TRAIT_MAY_CONTAIN_BLENDED_DUST`. Why do we have this? Its just used to change the grinder description to warn it may contain dust. It's a waste. **3. Fixes** - You cannot insert hologram items into the grinder. Rather than destroying that item & making it vanish you simply won't be allowed to put it inside the grinder so you can save that item - You can hit the grinder with items like screwdriver, wrench, crowbar, beaker & even with stuff you would normally put in the grinder when in combat mode - Adds `can_interact()` checks for using the UI & other stuff - Fixes #46356. All items of type `obj/item/grown` can be put from any bag into the grinder - The item "and its contents" are now grinded/juiced recursively to get all the reagents it has to offer just like a real grinder would - An AI/Human with AI access examining the reagent grinder now actually works. **4. Refactors** - The grinder now measures its available capacity based on the "total weight" of all items present & not its number. This is more realistic because the grinder has limited space inside & so inserting huge items should have greater impact rather than deciding on an arbitrary number like 10(The grinder having the capacity for 10 items of any size inside its small compartment makes no sense). Examines are displayed to show how much capacity of the grinder has been filled. Upgrading the grinder with better matter bins will allow for higher storage capacities. - Total power consumed is measured based on the duration & weight of all items grinded cause you know its realistic. 🆑 qol: adds examines & screentips for tool acts & other operations for reagent grinder qol: adds an off icon for when the grinder panel is open/not powered code: auto docs vars & procs. Shared common proc for grinding or juicing code: removed trait for blended dust, changed some item interactions to end the attack chain early & save time fix: no inserting hologram items into the reagent grinder fix: you can hit the reagent grinder tools like screwdriver, wrench, crowbar & even beakers/ingredients etc when in combat mode fix; adds sanity checks for when & how mobs interact with the reagent grinder fix: examining a reagent grinder by an AI/Human with AI access now actually works. fix: you can insert Nova flowers & other food items from any bag type fix: reagent grinder now grinds all the contents of an item recursively to produce maximum reagents like a real grinder would refactor: reagent grinder now measures available capacity to store items as total weight of stored items & not number. Capacity can be increased with upgraded matter bin refactor: reagent grinder power usage is now a function of duration & total weight of items blended, meaining blending more number of items/larger items will consume more power refactor: reagent grinder code has been optimized overall. Report bugs on github /🆑 --------- Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> * Suit Storage Units / Inducers can charge MODsuits without necessitating them be screwdrivered opened (#82194) ## About The Pull Request So MODsuits do this thing here with `get_cell` in that they don't return anything when they're closed  And I... can't tell why they do this. I looked through every use of `get_cell` and the only things affected by this are A. Suit Storage Units, which I believe have always been intended to charge MODsuits? and B. Inducers So I removed the `open` check. Allowing both Inducers and Suit Storage Units to charge mods without needing you screwdriver their panel open first. I also took the opportunity to allow SSUs to charge multiple items at once (divvying charge accross all items) ## Why It's Good For The Game I asked Fikou and they said it was "probably not" intended that you need to screwdriver them open so yeah. I think I remember charging my MODs during the original test merges years back but I can't remember if I opened the suit first when I did or not. Either way, it's not super intuitive. Though it's already not very intuitive that SSUs charge things. ## Changelog 🆑 Melbert qol: Suit Storage Units charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Inducers can charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Suit Storage Units will charge all items within simultaneously (if possible) /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes modular computer boot-up (#82254) ## About The Pull Request Fixes a bug where modular computers (specifically PDAs) will fail to start up if there is zero required application power draw. PDA will now consume base active power usage during startup. Related https://github.com/tgstation/tgstation/issues/82196 Fixes https://github.com/tgstation/tgstation/issues/82245 Fixes https://github.com/tgstation/tgstation/issues/82229 ## Changelog 🆑 LT3 fix: Fixed modular computers failing to boot up using cell power (eg: contractor tablet) /🆑 * Fixing cell power usage (Part 4) (#82227) ## About The Pull Request Continuation of #82204 Fixes these issues in #82196 - Cyborg Electroadaptive Pseudocircuit - Defib EMP - Cell EMP - `/datum/action/cooldown/mob_cooldown/charge_apc` stuff - Mecha movement, melee, light ,weapon & tool energy drains - Ninja drain ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 4). See PR 82227 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 5) (#82296) ## About The Pull Request Continuation of #82227 Fixes these issues in https://github.com/tgstation/tgstation/issues/82196 and others that weren't noticed. - Batton emp protection - Cyborg stun arm - Cyborg energy sword - Cyborg hug attack - Mechanical god religious sect charge check - Mecha fixes - Phasing energy drain - Short circuit energy drain - Durand shield damage energy drain - Plasma engine recharge rate - Mechbay recharge power rate - Recharge station charge rate Stuff that was already working & didn't require fixing. - Plasma cutter energy shots - Botany cell charging ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 5). See PR 82296 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Ties power limit of anchored circuits to 20 * standard cell charge to make it consistent with power changes. (#82287) ## About The Pull Request It just makes the power requirement 20 * standard cell charge instead of 20000 ## Why It's Good For The Game This is too restrictive to make anything with. https://github.com/tgstation/tgstation/assets/62126254/e39dcf27-8793-42b0-84a0-7f747e95efcc ## Changelog 🆑 fix: anchored circuits no longer blow up after 2 components are used. /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Space heater power and heating tweaks (#82344) ## About The Pull Request - Fixes #82342 - Space heater computes total power for heating adjacent turfs and uses cell energy once rather multiple times per turf - Improvised space heater actually works & uses beaker heat capacity and not a constant of 200 for heating beaker contents ## Changelog 🆑 SyncIt21,Pickle-Coding fix: space heater(including improvised) turns off when cell is drained fix: optimized power usage for both improvised and main space heater. Improvised heater now works & uses beaker heat capacity /🆑 * Improved lathe error message (#82260) ## About The Pull Request Improves the auto/protolathe low charge error message. Instead of simply saying low power, it will tell you how long until it has enough charge to print.  ## Why It's Good For The Game Less mashing the lathe over and over with no idea how much APC charge it needs to start printing again ## Changelog 🆑 LT3 code: APCs can now calculate time-to-charge qol: Overloaded lathes will now tell you the wait time until they're ready to print again /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes issues with multitools on power objects (#82389) ## About The Pull Request So at some point the power object's `multitool_act(...)` proc was set to _always_ block, for what I could find to be no discernable reason. ### The Main Thing https://github.com/tgstation/tgstation/blob/d38f9385b863e49f83455a227764d302629e2867/code/modules/power/power.dm#L62-L74 Now, of course, it shouldn't, because this cuts the entire chain short and thus blocks any other multitool interactions. Like opening the wires panel with a multitool, in this case. Even if `can_change_cable_layer` were to be false and thus the object would never actually care about having this interaction, it'd _still_ block it. So we don't do that. But what _do_ we do? I decided to just split off the actual cable changing part into its own proc, `cable_layer_act(...)`. ```dm /obj/machinery/power/proc/cable_layer_act(mob/living/user, obj/item/tool) var/choice = tgui_input_list(user, "Select Power Line For Operation", "Select Cable Layer", GLOB.cable_name_to_layer) if(isnull(choice)) return ITEM_INTERACT_BLOCKING cable_layer = GLOB.cable_name_to_layer[choice] balloon_alert(user, "now operating on the [choice]") return ITEM_INTERACT_SUCCESS ``` Which is then called on `multitool_act(...)`, if `can_change_cable_layer` is true. ```dm /obj/machinery/power/multitool_act(mob/living/user, obj/item/tool) if(can_change_cable_layer) return cable_layer_act(user, tool) ``` Which continues with the chain if we can't change layers by default, and otherwise lets `cable_layer_act(...)` work out whether we should block or continue. Notably, we've removed the `cable_layer_change_checks(...)` proc from the equation, and just let inheritors override it to add their own preconditions and what flags they should return. On its own this fixes the APC wire panel interactions, but also lets us just return `NONE` when we need to. ```dm /obj/machinery/power/emitter/cable_layer_act(mob/living/user, obj/item/tool) if(panel_open) return NONE if(welded) balloon_alert(user, "unweld first!") return ITEM_INTERACT_BLOCKING return ..() ``` ### The OTHER Things While doing this I noticed there's actually very little sanity checks after we close our input list. ```dm var/choice = tgui_input_list(user, "Select Power Line For Operation", "Select Cable Layer", GLOB.cable_name_to_layer) if(isnull(choice)) return ITEM_INTERACT_BLOCKING ``` We only care about whether we made a choice! Testing this, lo and behold, this can cause runtimes if the power object gets qdeleted before you close the menu. As a funny side, it _also_ doesn't care about whether you're on the other side of the station, while your multitool is on a different z-level, or just doesn't exist anymore. So we just add a few basic sanity checks while we're at it. ```dm var/choice = tgui_input_list(user, "Select Power Line For Operation", "Select Cable Layer", GLOB.cable_name_to_layer) if(isnull(choice) || QDELETED(src) || QDELETED(user) || QDELETED(tool) || !user.Adjacent(src) || !user.is_holding(tool)) return ITEM_INTERACT_BLOCKING ``` That's all. Having done some basic testing, I believe the behaviour is otherwise unaffected. ## Why It's Good For The Game It's annoying to need to swap to an empty hand or wirecutters to interact with APC, emitter, or tesla coil wires. This fixes that. (Fixes #81745.) ...and then a few other tidbits I realized existed. ## Changelog 🆑 fix: Fix using a multitool on a power object with wires not actually opening the wires menu when it should. fix: Fix a runtime from a power object being deleted before selecting what cable layer to put it at. fix: Fix power object cable changing not caring about whether you were still adjacent, still holding your multitool, or whether it even still existed after the selection menu was closed. /🆑 * Updates cyborg cells created from borgifier to the SI standard (#82437) ## About The Pull Request Unchanged value in transformer.dm resulted in borg charge draining to zero immediately after forced conversion in the borgifer. Changing the value of robot cell charge to 5 MJs to fix this. ## Why It's Good For The Game Fixes #82426 ## Changelog 🆑 fix: changed value of cell charge from 5000 to 5 megajoules /🆑 * cell chargers now bypass APCs (#82309) ## About The Pull Request This makes cell chargers and suit storage units draw from the grid before the local apc ## Why It's Good For The Game Upgraded Cell chargers have a charging power of 1MW leading to them instantly draining the apc of any room they are in, this Pr makes them draw from the grid preventing immediate blackout. This is a stopgap until someone smarter than me changes power values so a pocket-sized battery won't require the same power to charge then over 600 average suburban homes. ## Changelog 🆑 balance: suit and cell chargers should draw from grid preventing instant apc blackouts in most cases. /🆑 * Let ethereals starve again (#82308) ## About The Pull Request Ethereals use energy as 'food', so of course #81579 had to touch them. To bring them in line with the new standard, the Ethereal charge levels were updated to be in megajoules. https://github.com/tgstation/tgstation/blob/466b3df0483162c3900e411c25dfe15c2320786e/code/__DEFINES/mobs.dm#L292-L299 https://github.com/tgstation/tgstation/blob/7fa8daad63f49a11e22ab64a984d29b35619852c/code/__DEFINES/mobs.dm#L285-L292 However! This forgot to update the rate at which Ethereals passively discharge. https://github.com/tgstation/tgstation/blob/7fa8daad63f49a11e22ab64a984d29b35619852c/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm#L11-L14 https://github.com/tgstation/tgstation/blob/7fa8daad63f49a11e22ab64a984d29b35619852c/code/__DEFINES/mobs.dm#L437 Meaning it's effectively a thousand times less with the new charge levels. So we simply update this define to be in kilowatts. ```dm #define ETHEREAL_CHARGE_FACTOR (0.8 KILO WATTS) //factor at which ethereal's charge decreases per second ``` ## Why It's Good For The Game Fixes issue with ethereal hunger caused by #81579. ## Changelog 🆑 fix: Ethereal starvation has been updated to the new joules/watts standard. Congratulations Ethereals! You can starve again! /🆑 * [NO GBP]Fixes ethereal charging and recharge station charge speed. (#82483) ## About The Pull Request Fixes many instances of things not charging ethereals properly. Scales all things that are meant for charging/taking from the ethereal stomach by STANDARD_CELL_CHARGE, so we never run into this issue again. Ethereal stomachs now store a cell inside them, and uses that for the charge instead of tracking a variable. Fixes recharging stations not being able to charge ethereal stomachs. The ethereal signal proc attempted to feed a callback datum to adjust_charge(), which caused a runtime. Changes that by invoking the charge_cell callback instead. Also fixes recharge station charging speed. They weren't converted correctly. Also formats their charging speed in their description, and displays power rather than referencing cycles. ## Why It's Good For The Game So ethereals charge properly. Closes #82470 ## Changelog 🆑 fix: Fixes many instances of energy sources for ethereals supplying a thousand times less energy than intended. fix: Fixes recharging stations not being able to charge ethereals. fix: Fixes recharge stations charging too fast. qol: Recharge stations display their recharging speed in formatted power, rather than unformatted energy per cycle. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Update lead acid batteries charge values (#82510) ## About The Pull Request So during the whole power consistency update thing, it seems lead acid batteries were entirely forgotten about. Which, well, is easy, because they never actually used `STANDARD_CELL_CHARGE`. https://github.com/tgstation/tgstation/blob/c34d56a45b0461f5e0fad3cc75e81580c3357119/code/game/objects/items/maintenance_loot.dm#L32-L33 Looking into it, the previous value for `STANDARD_CELL_CHARGE` seemed to have been 1000, so we convert it directly: ```dm maxcharge = STANDARD_CELL_CHARGE * 20 chargerate = STANDARD_CELL_CHARGE * 1.4 ``` But, comparing this to the normal power cells, it seems their charge rates got _halved_ during the update. So, we do that too. ```dm maxcharge = STANDARD_CELL_CHARGE * 20 chargerate = STANDARD_CELL_CHARGE * 0.7 ``` And that fixes it. ## Why It's Good For The Game Fixes lead acid batteries still using the old power amounts, and not being relative to `STANDARD_CELL_CHARGE`. ## Changelog 🆑 fix: Lead acid batteries have had their power values fixed. /🆑 * This should do for modular code, for now. * Fixing cell power usage (Part 5) (#82296) Continuation of #82227 Fixes these issues in https://github.com/tgstation/tgstation/issues/82196 and others that weren't noticed. - Batton emp protection - Cyborg stun arm - Cyborg energy sword - Cyborg hug attack - Mechanical god religious sect charge check - Mecha fixes - Phasing energy drain - Short circuit energy drain - Durand shield damage energy drain - Plasma engine recharge rate - Mechbay recharge power rate - Recharge station charge rate Stuff that was already working & didn't require fixing. - Plasma cutter energy shots - Botany cell charging 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 5). See PR 82296 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * [NO GBP]Fixes some mapped SMES starting with low energy. (#82203) ## About The Pull Request Scales them all by up to 20 to account for removing the dumb SMESRATE define. This isn't a 100% conversion for every SMES because it would go beyond their capacity (old SMES use to duplicate cell energy, so they had a higher capacity than their cell parts imply). Also removes instances of varediting their capacity to fucking 1e+600 and replaces them with magical SMES. ## Why It's Good For The Game So lavaland and crap don't instantly run out of power. Also I don't think we should be varediting anything to 1e+600. ## Changelog 🆑 fix: Fixes lavaland SMES and other crap from not starting with enough energy. fix: The pirate SMES are now magical instead of secretly infinite. /🆑 * Mechbay & modsuit recharger tweaks (#82337) ## About The Pull Request - Both mechbay & modsuit rechargers now waste a small amount of energy as heat like it did before - Fixes #82332. Mechbay recharger displays the energy of the mech in joules & charges the cell with the exact energy required directly from the grid thus not causing the room to blackout ## Changelog 🆑 fix: Mechbay & modsuit rechargers waste a small amount of energy as heat fix: Mechbay recharger console displays mech charge as joules & charges directly from the grid thus sparing the rooms apc cell from huge loads /🆑 * Refactor APCs interaction chain from attackby to item_interaction (#82390) ## About The Pull Request For how many lines this is, there's not a lot to really say. In general, we simply move all item interactions from `attackby(...)` to `item_interaction(...)`, split each item interaction off into a separate proc, and make them all return the proper item interaction flags. We _do_ kill some probably dead code, and remove a call to `attackby(...)` elsewhere. Then, for clarity, we move the cell check below the ID check so it can be next to the other item type checks, as the priority between cell and ID is unlikely to matter anyway. Other than what's described above and detailed below, each section's functionality should be the same. Now, for the parts that _do_ need to be explained more. ### Killing Probably Dead Code Alright, so, the first part that does not have the cleanest transition. https://github.com/tgstation/tgstation/blob/d38f9385b863e49f83455a227764d302629e2867/code/modules/power/apc/apc_attack.dm#L22-L23 Whatever the fuck this is. Asking around, this seems to just be dead code. For sanity's sake removing it and testing, silicon interactions with it seem to work just fine. So we kill it. We just kill it. We Just Kill It. Closest we could find requires the distance check there to be false, so it wouldn't apply. But it _does_ bring us to the second bit of weird code. ### Calling APC Attackby Elsewhere? So wallframes let you screwdriver them to put them up, which from a comment seems to be because of cyborgs. APC wallframes of course override this with their own implementation, that allows you to also replace a damaged cover or frame like that! https://github.com/tgstation/tgstation/blob/d38f9385b863e49f83455a227764d302629e2867/code/game/objects/items/apc_frame.dm#L29-L39 ...By just calling the wholeass `attackby(...)` proc on the APC and calling it a day. But hey, this is where our previous splitting up comes in handy, because we just have a `wallframe_act(...)` proc! So we just call that instead. ```dm var/obj/machinery/power/apc/mounted_apc = locate(/obj/machinery/power/apc) in get_turf(user) mounted_apc.wallframe_act(user, src) return ITEM_INTERACT_SUCCESS ``` ...And not use single letter variables, while we're at it. That should be all. Remember to get snacks and drinks. ## Why It's Good For The Game Split off 178 line `attackby(...)` item interaction chain into separate procs called in `item_interaction(...)`. Screwdrivering APC wallframes no longer calls the wholeass `attackby(...)` on the APC, but just call the new sub-proc for the specific interaction it cares about. ## Changelog 🆑 refactor: APCs have had their item interaction chain refactored. This should functionally be the same, but please report any issues. /🆑 * [NO GBP]Cells will only consider 0.1% of their charge when shocking a user. (#82456) ## About The Pull Request Makes cells only consider 0.1% of their charge when calculating the damage for shocking someone. This makes the minimum damage 20, and goes up to 22 (previous behaviour, even though that's a shockingly small difference) with a 50 MJ cell, which is the highest capacity crew can get. This makes it inversely scale with the standard cell charge define, so if that gets changed, cells will use a different composition of their charge to consider. ## Why It's Good For The Game Airlocks instantly critting people when shocked regardless of what's in the grid wasn't previous behaviour. * Oops. There we go. * Oh, these two too. --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Archie700 <archie712@hotmail.com> Co-authored-by: Blacklist897 <149209377+Blacklist897@users.noreply.github.com> |
||
|
|
9361376345 |
PDA update (Messenger works while dead, Microwave works, etc). (#80069) [REMIRROR] (#25829)
* PDA update (Messenger works while dead, Microwave works, etc). (#80069) This is an update that touches many more things all at once (compared to my other PRs) meant to make PDAs in general feel more consistent and not take away from one of the experiences we want to encourage: interaction between players. 1. Replaced all checks of a 'pda' with a 'modular pc'. This means technically (though not done in-game currently) other modpcs can hold an uplink, and microwaves can charge laptops. 2. Speaking of microwave, they now don't break and require deconstruction if the cell is removed mid-charge. 3. When a Mod PC is out of power, it will now allow the Messenger to work (which now also doesn't consume any additional power), if the app exists on the PC. Here's a video demonstration https://github.com/tgstation/tgstation/assets/53777086/7ae12f81-a271-49b8-95fa-2ba54d2e2d1f 4. Flashlights can't be turned on while the cell is dead 5. I replaced a bunch of program vars with ``program_flags`` and renamed ``usage_flags`` to ``can_run_on_flags``. 6. Added a debug modPC that has every app installed by default. Mafia had some issues in the past that were unknown because Mafia wasn't preinstalled with any tablet so was never in create & destroy nor in any other unit test. This was just an easy solution I had, but PDAs should get more in-depth unit tests in the future for running apps n stuff- I just wanted to make sure no other apps were broken/harddeling. Currently when a PDA dies, its only use is to reply to PDA messages sent to you, since you can still reply to them. Instead of just fixing it and telling players to cope, I thought it would be nice to allow PDA Messenger to still work, as it is a vital app. You can call it some emergency power mode or whatever, I don't really mind the reason behind why it is this way. When I made cells used more on PDAs, my main goal was to encourage upgrading your PDA and/or limiting how many apps you use at once, I did not want this to hit on players who use it as a form of interaction. This is the best of both worlds, I think. The rest of the changes is just for modularity, if some downstream wants to add tablets, phone computers, or whatever the hell else, they can still get just as far as PDAs should be able to get to, hopefully. 🆑 add: PDAs with a dead power cell are now limited to using their Messenger app. fix: Microwaves now stop charging PDAs if the cell was removed mid-charge. fix: Microwaves can now charge laptops. fix: PDA Flashlights can't be turned on while the PDA is dead. fix: You can now hold a laptop up to a camera (if it has a notekeeper app installed) like PDAs already could. /🆑 --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> * ok --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
d34aab9be3 |
[MIRROR] PDA general maintenance (NTNet downloader rework) [MDB IGNORE] (#25133)
* PDA general maintenance (NTNet downloader rework) * Update modular_computer.dm * e * weh * Update archive_viewer.dm * Update three_layer_hats.json --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
a5818dd539 |
[MIRROR] Renames vars on pdas and removes ntnet_relays glob [MDB IGNORE] (#24960)
* Renames vars on pdas and removes ntnet_relays glob (#79595) ## About The Pull Request - replaces the ntnet_relays global list with ``get_machines_by_type`` - renames ``transfer_access`` var on PDA to ``download_access`` & ``required_access`` to ``run_access`` to better describe what they do, because on more than one ocassion I've confused myself with the two terms and ended up doing something unintentional (see: https://github.com/tgstation/tgstation/pull/74269) ## Why It's Good For The Game Kills a useless global list and makes pda code a little less confusing. ## Changelog Nothing player-facing. * Renames vars on pdas and removes ntnet_relays glob --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
9a594755f3 |
[MIRROR] Renames delta time to be a more obvious name [MDB IGNORE] (#20507)
* Renames delta time to be a more obvious name * updates to our code --------- Co-authored-by: oranges <email@oranges.net.nz> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
cb3b675bae |
[MIRROR] Tablets don't close their UI when changing program (and some fixes) [MDB IGNORE] (#19600)
* Tablets don't close their UI when changing program (and some fixes) (#73635) ## About The Pull Request - Tablets now refresh their page when changing programs, this means the UI will no longer close and reopen itself several times (or even have several UIs open if shit broke hard enough). - Removed tablet's attack self because interact already does everything it had to do. - Header programs now close when minimized (as there's no button to close them in the main menu. - Removed a lot of program UI stuff, it's now handled by the PC itself, such as header data and ui host. - Cut off asset sending from TGUI into it's own proc so I can re-send assets when changing programs - Added an ejection button for machine computers - Fixed ID not ejecting into the user's hand when using 'Eject ID' - Fixes a minor runtime when opening the MODsuit application without a MODsuit already connected. ## Why It's Good For The Game Fixes some bugs that I found with tablets UIS now won't be flickering as bad in front of them, or have inconsistent placement (like when you move your main menu UI, go to Messenger, then it's back to the center of the screen). Video of it in action https://user-images.githubusercontent.com/53777086/221301417-78321149-0c10-475e-bd29-79f5a4ba0597.mp4 ## Changelog 🆑 fix: Being in an application now properly uses the tablet's battery. fix: Messenger and Themify apps now close when minimized, so don't count towards the running app limit. fix: Tablet UIs will now no longer spam open/close the UI when changing applications fix: Using the Eject ID button on tablets now ejects into your hand. fix: Computers now have an Eject ID button refactor: Cut down a lot of copy paste in tablet & program code, now it's mostly done by the tablet. /🆑 * Tablets don't close their UI when changing program (and some fixes) * Update contractor_tablet.dm * wew --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
d0b706c041 |
[MIRROR] Removes AI and Charge parts from tablets, adds support for more later. [MDB IGNORE] (#16381)
* Removes AI and Charge parts from tablets, adds support for more later. * merge conflict * remove modular tablet loadout item * fix SR maps referencing tablets, add clear PDA instead of modular tablet loadout * remove pda loadout item Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
96761dae1a |
[MIRROR] [MDB IGNORE] APC controller and Power Monitor/AmpCheck fixes, aka How do I write PR titles [MDB IGNORE] (#15987)
* [MDB IGNORE] APC controller and Power Monitor/AmpCheck fixes, aka How do I write PR titles (#69146) About The Pull Request bgug fix stuff APC controller UI has its elements section'ed off. The backend has been redone to make the behaviour of the APC controller a bit less janky. The console should be more stable, and all the soul has been removed from the code and the UI. before this PR stales out from nobody wanting to review my pr, I should probably outline what exactly changed: APC controller consoles have had their APC code almost entirely reworked. They no longer have to hold a reference to the person using the controller currently, and APCs themselves no longer hold a reference to the controller, instead to the person directly. A lot of code was moved to APC themselves to make it a lot more stable. APC controller used to call toggle_breaker without passing args, causing a runtime. Fixed in Fixes the power flow control console not actually being able to toggle breakers #69343 APC controller UI has had the Window.Content tags moved up to the top component, and a lot has been sectioned off to make the UI more sane. AmpCheck used to look for a wire on it's turf, or as a fallback look for the Area APC. A check to see if the APC has a terminal did so on a weakref, causing a runtime and preventing the program from ever finding a valid APC in it's area, making it show nothing. This has been fixed. On the other hand, the power monitor console did not store the ground wire or APC terminal as a weakref, this has been updated. As a fallback, if there are still no APCs in the powernet, the UI will show a dimmer popup. There was a "secret" power monitor variation in code so PDAs could not access monitors in hidden places. With the removal of PDAs, this control console is useless. Why It's Good For The Game Tiny bit of (much needed) polish on some useful tools in the engineering department. Changelog cl fix: Fixed runtime when using AmpCheck without connecting the console with a wire. fix: Fixed a few runtimes that could occur when using APC controller consoles. qol: Sucked soul out of APC controller code and UI. del: Removed "secret" power monitor console. /cl * [MDB IGNORE] APC controller and Power Monitor/AmpCheck fixes, aka How do I write PR titles * update paths Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> |
||
|
|
2059781c34 |
[MIRROR] PDAs open their messenger when replying to messages through chat [MDB IGNORE] (#15022)
* PDAs open their messenger when replying to messages through chat * Update code/modules/modular_computers/hardware/hard_drive.dm * Actually fixes the merge conflict and the compile errors Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
eab84b1475 |
[MIRROR] Removes power monitor from tablets [MDB IGNORE] (#13901)
* Removes power monitor from tablets (#67245) * Removes power monitor from tablets Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
aca9ded0e0 |
[MIRROR] [MDB IGNORE] Reformats Access IDs for accessibility and futureproofing [MDB IGNORE] (#13751)
* [MDB IGNORE] Reformats Access IDs for accessibility and futureproofing * ok * fuck * eh * ew * e * this sucked * e Co-authored-by: Son-of-Space <63861499+Son-of-Space@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
81db26ba94 |
[MIRROR] [MDB IGNORE] Removes tablet cartridges + reworks a ton more [MDB IGNORE] (#13539)
* [MDB IGNORE] Removes tablet cartridges + reworks a ton more (#66505) - All tablets who previously had apps in a cartridge now has them built-into their tablet instead. This means it costs space for it. - Rebalances the sizes of several apps to help them fit on Command tablets (Cargo ordering costed 20!!) - Removes tablet cartridges, they've been reworked into a regular old portable disk (the same you use for toxins/borgs) - Removes Signaller (the module required to run the signaller app) from tablets (likely will remove more in the future) - Refactors the health/chem scanning app to not be as bad - Dehardcodes detomatix resistance - Ability to send PDA's to all is now tied to your access rather than a cartridge - Moves 'eject disk' button to the very top of the UI * [MDB IGNORE] Removes tablet cartridges + reworks a ton more * wew * wew * ok * Update nanotrasen_consultant.dm * Update nanotrasen_consultant.dm Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
2508c3c818 |
[MIRROR] The Science Hub app for research is now available for science employees in addition to heads of staff. [MDB IGNORE] (#11912)
* The Science Hub app for research is now available for science employees in addition to heads of staff. (#65035) * The Science Hub app for research is now available for science employees in addition to heads of staff. Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> |
||
|
|
65b8082678 |
[MIRROR] Harddel Fix Pack #42 + Better Live Reftracking Support [MDB IGNORE] (#10639)
* Harddel Fix Pack #42 + Better Live Reftracking Support * awooga Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
cc93b11d23 |
[MIRROR] _HELPERS/unsorted.dm has been sorted [MDB IGNORE] (#8627)
* _HELPERS/unsorted.dm has been sorted * Feexing conflicts Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
1231c6fa58 |
[MIRROR] Add local APC cache to /area [MDB IGNORE] (#8550)
* Add local APC cache to /area (#61655) About The Pull Request for(var/obj/machinery/power/apc/APC in GLOB.apcs_list) in get_apc makes chuck norris shed a tear Why It's Good For The Game tears are bad Changelog cl code: /area now retains a local reference to the APC in the area, if any /cl * Add local APC cache to /area Co-authored-by: esainane <esainane+github@gmail.com> |
||
|
|
de89c62c63 |
[MIRROR] NTDownloader UI revamp (#3246)
* NTDownloader UI revamp (#56704) Revamp of the software downloader program for modular computers. Changes: - Programs are now sorted alphabetically with incompatible ones in the end of the list. - Installed programs are now displayed in the list. - Added program icons. - Moved the error messages in place of the download button. - Only the most important error message is displayed now. Priority: compatibility, access, free space. - Syndicate programs are now displayed in the same list, but have a warning message from NT (There are no warning messages on syndicate OS). - Added program categories to improve navigation. The default option "All" contains items from all categories. - Download progress bar moved in place of the Disk usage bar. Disk usage is updated only after the download is complete, so the information was inaccurate during download. And the download bar now always visible regardless of selected category. - The old download progress bar (next to the corresponding program) is replaced with "Downloading" indicator with a spinner. Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com> * NTDownloader UI revamp Co-authored-by: Andrew <mt.forspam@gmail.com> Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com> |
||
|
|
b8d9874c27 |
[MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342) Implements the ?. operator, replacing code like A && A.B with A?.B BYOND Ref: When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call. * Converts all A && A.B into A?.B Co-authored-by: ZeWaka <zewakagamer@gmail.com> |
||
|
|
f8ce14a9a6 |
[MIRROR] Makes Modular PC icons not hardcoded in NtosMain.js, and fixes them not showing up (#1151)
* Unhardcodes Modular PC icons (#54158) * Changes modPC program icons to not be hardcoded * icons * tgui.bundle.js, we meet again * Makes Modular PC icons not hardcoded in NtosMain.js, and fixes them not showing up Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> |
||
|
|
5e6fcd041b |
[MIRROR] Updates modular PC program names to have some flavor (#216)
* Updates modular PC program names to have some flavor (#52492) * Better program names * Forgot a few things. * oops * Updates modular PC program names to have some flavor Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> |
||
|
|
0cf00a2645 |
tgui 4.0 (#52085)
* tgui 4.0 hyper squash * Upgrade dependencies |
||
|
|
b5dfd8880d | id to component name | ||
|
|
ac1f4d74c6 |
More NtOS interfaces, random fixes, client-side theming (#47836)
* General tgui fixes * Handle ui_style on client side * NtOS Net Downloader * Rebuild tgui * Fix regression on Tabs * Fix bools |
||
|
|
e87b6c6701 |
Tgui error reporting, Keyboard passthrough, RPD, NtOS, Power Monitor (#47749)
* Improve tgui fatal error reporting * Keyboard passthrough in tgui * New Rapid Pipe Dispenser interface * Update README with new components * Release held keys when browser window loses focus * Power Monitor Interface, NtOS theme and core components * Yet another CSS rework * Fix Table, Chart stubs for IE8 * NtOS Main interface * Supermatter Monitor interface * Tweak NT color, color + sort gas bars |
||
|
|
60238ecd51 |
[s] Power monitor tweaks and fixes (#38005)
* Power monitor tweaks and fixes * Crouching tiger, hidden power monitor * flavor text |
||
|
|
2427f217f7 | Standardized power displays | ||
|
|
ca59ca6c23 | Changes all access const to be a define (#29260) | ||
|
|
a5d6f6d8aa | Refactor of modular PC UIs | ||
|
|
9e1ef0ffe2 |
Global variable wrappers (#25325)
* Add the system for managed global variables * Travis ban old globals * So you CAN inline proccall, that's neat * Fix that * master.dm * Remove the hack procs * Move InitGlobals to the proper spot * configuration.dm * Fix the missing pre-slash * clockcult.dm * This is probably for the best * Doy * Fix shit * Rest of the DEFINES tree * Fix * Use global. for access * Update find_references_in_globals Always hated that proc Whoever made it must've bee a r e a l idiot... * __HELPERS tree * Move global initialization to master. Fix the declaration * database.dm * Dat newline * I said DECLARATIVE order! * Here's something you can chew on @Iamgoofball * game_modes.dm * Fix this * genetics.dm * flavor_misc.dm * More stuff * Do it mso's way. Keep the controllers as global * Make master actually see it * Fix * Finish _globalvars/lists * Finish the rest of the _globalvars tree * This is weird * Migrate the controllers * SLOTH -> GLOB * Lighting globals * round_start_time -> ticker * PAI card list -> pai SS * record_id_num -> static * Diseases list -> SSdisease * More disease globals to the SS * More disease stuff * Emote list * Better and better * Bluh * So much stuff * Ahh * Wires * dview * station_areas * Teleportlocs * blood_splatter_icons * Stuff and such * More stuff * RAD IO * More stuff and such * Blob shit * Changeling stuff * Add "Balance" to changelogs * Balance for changelog compiler + Auto Tagging * Update the PR template * hivemind_bank * Bip * sacrificed * Good shit * Better define * More cult shit * Devil shit * Gang shit * > borers Fix shit * Rename the define * Nuke * Objectives * Sandbox * Multiverse sword * Announce systems * Stuff and such * TC con * Airlock * doppllllerrrrrr * holopads * Shut up byond you inconsistent fuck * Sneaky fuck * Burp * Bip * Fixnshit * Port without regard * askdlfjs; * asdfjasoidojfi * Protected globals and more * SO MANY * ajsimkvahsaoisd * akfdsiaopwimfeoiwafaw * gsdfigjosidjfgiosdg * AHHHHHHHHHHHHHHHHHHHHHHH!!!!! * facerolll * ASDFASDFASDF * Removes the unused parts of dmm_suite * WIP * Fix quote * asdfjauwfnkjs * afwlunhskjfda * asfjlaiwuefhaf * SO CLOSE * wwwweeeeeewwwww * agdgmoewranwg * HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!? * Fix syntax errors * 100 errors * Another 100 * So many... * Ugh * More shit * kilme * Stuuuuuufffff * ajrgmrlshio;djfa;sdkl * jkbhkhjbmjvjmh * soi soi soi * butt * TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING * lllllllllllllllllllllllllllllllllllllllllll * afsdijfiawhnflnjhnwsdfs * yugykihlugk,kj * time to go * STUFFF!!! * AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!! * ngoaijdjlfkamsdlkf * Break time * aufjsdklfalsjfi * CONTROL KAY AND PRAY * IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * Goteem * Fix testing mode * This does not belong in this PR * Convert it to a controller * Eh, fuck this option * Revert controllerization Ill do it some other time * Fix * Working controllerization * FOR THE LOVE OF CHRIST PROTECT THE LOGS * Protect admins and deadmins * Use the inbuilt proc |
||
|
|
1b138562b4 |
Minor runtimes fixes. (#25566)
* Fixes power monitor runtime * Fixes reagent data runtime * Nullspace is no smoking zone |
||
|
|
8035651400 |
Finishes id computer
adds designs for computer parts to rnd and cases to the autolathe. |
||
|
|
4ebeec67d6 |
Adds header icons
Does some fixes and cleanup Some consoles added to the map and tablets added to job loadouts for testmerging. |
||
|
|
0c9554cd35 |
Base systems pretty much done.
Still need to convert the id computer program. |