* Trimming the fat
* Trimming the fat
* Update mushpeople.dm
* Adds colorblindness as a mild brain trauma (#76527)
What the title says.
The brain trauma makes the whole screen monochrome until cured.

I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).
🆑
add: Added colorblindness as a mild brain trauma.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fix species `var/hair_color` not being used for, well, hair color (#82168)
`var/hair_color` for species was intended to be used as a "this species
uses this type of hair color thing"
But at some point that got completely lost and now it's only used for
sprite accessories
This fixes that. That means Slimepeople now have properly slimey hair.
And Ethereals are less snowflake once more.
🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors.
/🆑
* Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)"
This reverts commit c4cb756.
* Revert "Adds colorblindness as a mild brain trauma (#76527)"
This reverts commit eb815f5.
* Update _species.dm
* unused var
* Caps list..
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Attempts to fix CI errors
* Update cap.dm
* Update _external_organ.dm
* Update monkey.dm
* Revert "Update monkey.dm"
This reverts commit 29f54c8.
* Revert "Update _external_organ.dm"
This reverts commit 8de5ea7.
* Update _external_organ.dm
* Revert "Update _external_organ.dm"
This reverts commit 644cc56.
* Fix CI maybe?
* Update cap.dm
* Update DNA.dm
* Some cleanup/updating to upstream
* Update global_lists.dm
* Mush
* Update mushpeople.dm
* Hopefully the last fix
* Doing this differently
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* OK
* Update organ.dm
* Update podpeople.dm
* maybe
* Hm
* Hm
* Will this break things?
* Revert "Will this break things?"
This reverts commit bd288c6.
* Test
* Update organ.dm
* Update organ.dm
* Revert "Update organ.dm"
This reverts commit ca77ff9.
* Update organ.dm
* .
* .
* .
* Update snail.dm
* Monkeys now use height offset (and monkey tail works) (#81598)
This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).
This reverts a lot of changes from
tgstation/tgstation#73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.
I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).
Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):
Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)
* Removes unneeded files
* Revert "Removes unneeded files"
This reverts commit 6469d37.
* .
* ok
* Update tails.dm
* Update monkey.dm
* Fix monkey screenshot test
* Update species.dm
* Update reinf_walls.dm
* Maintenance
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
* 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#73438Closes#75789Closes#80634Closes#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
d38f9385b8/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.
466b3df048/code/__DEFINES/mobs.dm (L292-L299)7fa8daad63/code/__DEFINES/mobs.dm (L285-L292)
However! This forgot to update the rate at which Ethereals passively
discharge.
7fa8daad63/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm (L11-L14)7fa8daad63/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`.
c34d56a45b/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.
d38f9385b8/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!
d38f9385b8/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>
* MODsuit now uses spacesuit cell hud element (#81985)
## About The Pull Request
Rather than using screen alerts, MODsuits will now use the spacesuit
cell hud element, which normal space suits use to show how much cell is
left.
Also adds some new states to the cell hud icon to accommodate.
## Why It's Good For The Game
1. Less clutter in the alerts tab. Allows for higher priority screen
alerts to be displayed, such as being on fire.
2. Less confusing for Ethereals using MODsuits.
3. Consistency with normal space suits.
## Changelog
🆑 Melbert
add: MODsuits now use the "suit charge" HUD element to show how much
charge they have left, rather than a screen alert
/🆑
* MODsuit now uses spacesuit cell hud element
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Circuit action button refactor (#80379)
## About The Pull Request
This PR makes several changes to how circuit action buttons work:
- The MOD action and BCI action components have been merged into a
single component.
- MOD circuit actions can be pinned from the configuration menu. This
works the same way as pinning individual modules, and can be done both
by the wearer and a suit AI.
- Action components have an output pin for the user of the action. This
allows MOD module circuits to distinguish between the wearer and an AI.
- Creates a supertype for `/datum/action/item_action/mod/pinned_module`
named `/datum/action/item_action/mod/pinnable`, which implements common
functionality for pinned modules and pinned circuit module actions.
## Why It's Good For The Game
The prior functionality of circuit MOD actions was somewhat unintuitive,
requiring the user to select an action from a radial menu *after*
activating the module, whether from a pinned action or from the module
radial. Providing similar pinning functionality to modules themselves
makes MOD actions more readily usable.
Merging the two different types of circuit components into one was made
with the idea that adding new types of shells with equipment actions
would inflate the number of subtypes of
`/obj/item/circuit_component/equipment_action` without adding much
meaningful functionality.
## Changelog
🆑
qol: MOD wearers and internal AIs can pin the individual actions in a
MOD circuit module in a similar way to how they can pin modules. Circuit
module actions can be pinned from the configuration menu of the circuit
refactor: The MOD action and BCI action components have been merged into
one component - the Equipment Action component.
/🆑
* Circuit action button refactor
---------
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Disables mod links from virtual modsuits [NO GBP] (#80038)
## About The Pull Request
Via discussion in discord:

## Why It's Good For The Game
Virtual entities, however suited up they are, shouldn't be able to
communicate station side with crew or with syndicate entities.
## Changelog
🆑
fix: Mod links are now disabled in the virtual realm.
/🆑
* Disables mod links from virtual modsuits [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* MODLink System (+ NWTLMM) (#77639)
## About The Pull Request
A pact made with `@ Kapu1178`
Small changes you should not care about:
RD MODsuit outfit (admin only) no longer has a beret that blocks the
activation of the suit
The beret used by death squad officers no longer is blocked from being
put on a hat stabilizer module
Admins can now Shear matrices of objects in Modify Transform
Multitool buffers have been a little refactored to use a setter proc
that saves them from causing hard dels
Cooler stuff:
A revival and remake of [Nobody Wants To Learn Matrix
Math](https://github.com/tgstation/tgstation/pull/59103), this time with
additional tooling for quick matrix calculations.

The MODLink system, available through every MODsuit and MODLink scryers
(a neck item obtainable from advanced modsuit research or
charliestation)
Let's you make a holographic call with any other MODLink user, where you
can chat in realtime and see what's up with em


## Why It's Good For The Game
Adds a fun way for the crew to communicate with each other that can be
done in real-time with relative privacy compared to radio.
## Changelog
🆑 Fikou, Armhulen, Sheets (+rep for Mothblocks and Potato)
fix: RD MODsuit outfit (admin only) no longer has a beret that blocks
the activation of the suit
fix: The beret used by death squad officers no longer is blocked from
being put on a hat stabilizer module
admin: Admins can now Shear matrices of objects in Modify Transform
admin: Admins now have access to Test Matrices in the VV dropdown, an
all-in-one tool for editing transforms.
add: MODLink system, available through scryers (from RnD and Charlie
Station) and through MODsuits. Lets you call people with holographs!
/🆑
* MODLink System (+ NWTLMM)
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* pAIs can be inserted into a MODsuit
* Update MODsuit.tsx
* Update objective_items.dm
* Update mod_actions.dm
* Update mod_activation.dm
* Update mod_control.dm
* Update mod_ui.dm
* Update MODsuit.tsx
* Update modules_ninja.dm
* prettier
* Update mod_control.dm
* This is torture
* Removes most of the overrides for pAIs in MODsuits, to use the procs from upstream (and reduce the amount of clutter/duplication)
* Damnit keyboard
* Good catch Vinyl!
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts
* Update communications.dm
* Modular override
* Some modular adjustments, removes 'emagged' vars in favor of obj_flags
* whoops, mobs don't have obj_flags.
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Makes hoods into a component (#75977)
## About The Pull Request
Refactors the behaviour of "one clothing item deploying another clothing
item" from `/obj/item/clothing/suit/hooded` and makes it into a
component.
This allows you to make hooded items which are not part of that
typepath. It also means you could make (for instance) a hat which can
deploy a pair of sunglasses into the eye slot or a jumpsuit with
deployable clown shoes or something.
I need to pass in an assload of callbacks because we have a bunch of
special hoodies that want to do things when you raise and lower the
hood, but for a normal item you would not need these.
## Why It's Good For The Game
Frees people from the tyrrany of typepaths, mostly.
Plausibly you could use it to do something fun we don't currently do.
## Changelog
Not player facing, hopefully. As long as I did this all right.
* Makes hoods into a component
* [no gbp] Fixes item action buttons
* Update items.dm
* Fix mirror 22129
* Some last minute updates -- comment and small optimization
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Fixes some stupid airlock sleeps
* Fixes the conflicts before checking the merge conflicts
* Converts another wires = to set_wires() and removes another issue
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* The Debug and Admin MODsuits now take a lot less time to (de)activate. (#76261)
## About The Pull Request
Read the title. An equivalent 'activation_step_time' variable has been
added to the mod theme datum to accomplish that.
## Why It's Good For The Game
Why do we have to wait over 10 seconds for a debug suit to activate or
deactivate on top of everything else that comes with coding,
programming, bugfixing etc? It now takes about 2 seconds to do so, which
should be enough to notice the effects of modules such as the springlock
anyway. The admin one takes 0.5 seconds, as it's by all means a better
debug suit.
## Changelog
🆑
admin: The Debug and Admin MODsuits now take a lot less time to
(de)activate. 2 and 0.5 seconds respectively, compared to the default of
10s.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* The Debug and Admin MODsuits now take a lot less time to (de)activate.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* worn overlays proc sends a signal (#73101)
what the title says, it sends the list of overlays to be edited and some
other stuff
makes modsuits use this
* worn overlays proc sends a signal
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* some modsuits now have some modules pinned by default (#72258)
## About The Pull Request
cleans up some modsuit code i dont like about their modules
removes mod theme blacklists, they are unused and weve not needed them
at all so far
adds support for premade suits to have modules they pin by default
the default pins currently are:
advanced suit: jetpack
loader suit: clamp, magnet, hydraulic arms
mining suit: sphere transformation
safeguard suit: jetpack
magnate suit: advanced jetpack
traitor suit: armor booster, jetpack
elite traitor suit: armor booster, advanced jetpack
nukie suit: armor booster, advanced jetpack
elite nukie suit: armor booster, advanced jetpack
spetsnaz pyro suit: armor booster, advanced jetpack, flamethrower
prototype suit: tether, kinesis
apocryphal suit: jetpack
chrono suit: timestopper, rewinder, timeline jumper, kinesis plus,
timeline eradication
ninja suit: advanced stealth, star dispenser, emp pulse, weapon recall,
adrenaline boost, energy net
## Why It's Good For The Game
quickens some stuff up
## Changelog
🆑
qol: some modsuits now have some modules pinned by default
/🆑
* some modsuits now have some modules pinned by default
* SR modsuits
* word
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* initial test
* continued cleanup
* hide mutant part refactor
* slight oopsie
* ux
* more ux
* even more ux
* mask
* mod stuff
* almost done with the code
* 🤠
* fixes
* time for art
* fixes
* forgor
* optimize
* more optimizing
* better rendering
* hardlight tex
* another tex
* file name change
* oopsie with the names
* better colors
* transparency edit
* Revert "transparency edit"
This reverts commit 2c8700ec64e469283d685003997e1413fc4a2bce.
* technically TM ready
* review
thank you!
* small
* test
* Revert "test"
This reverts commit 6abda60fc3a82a19a43e323371afff0dd6cccc16.
* the lizard incident
* Revert "the lizard incident"
This reverts commit 5951a3b0eb324a73538f9ca95ef5caeedd10e0cf.
* updates the liz screenshot cuz apparently i fixed something
* art done
* is_hidden ear fix
* write it better
* extra streamlining
* adds two more mod_themes
* a fix and texture tweak
* Upgrades the Modsuit Adapter Shell (#70286)
Code improvements are much appreciated as some things may be rather hacky.
Adds more options to the currently very limited modsuit adapter shell. Right now you can only select a module and activate (not deploy) the suit.
This has some major problems as you literally can't even deploy the suit to activate it so that's rendered useless and selecting a module is like... kind of a weird input anyways but I won't judge so I left it in. Please comment down below if you'd like for me to add an "Activate Selected Module" input and "On Module Activated" output as those are certainly possible to do. I was just a little torn on how balanced that would be.
Changes:
"Module to Select" input is now an option. You can still use a string input, but simply inserting it into the suit and activating it, then accessing the circuit that way will give you a list of all modules that the modsuit has.
Modsuit quick deploy (RMB) no longer tries to deploy the rest of the pieces when used while the suit is only partially deployed. It will now instead retract the extended pieces. This makes the "Toggle Deployment" input less prone to errors. (Why was it like this in the first place? Having to manually retract the already extended pieces sucks ass.)
Added Inputs:
"Toggle Deployment" is a new signal input that does exactly what it says it does. It simply tries to extend or retract all pieces of the modsuit depending on it's current state.
Added Outputs:
"Activated" is a new number output that outputs 1 if the suit is activated and 0 if it's not.
"Deployed" is a new number output that outputs 1 if all parts of the suit are extended and 0 if they aren't.
"Deployed Parts" is a new string list output that outputs a list of the names of all currently deployed parts.
"On Deploy" is a new signal output that outputs a signal whenever all parts of the suit are deployed or retracted, regardless of the method used.
"Finished Toggling" is a new signal output that outputs a signal whenever the suit has finished activating or deactivating, regardless of the method used.
* Upgrades the Modsuit Adapter Shell
Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
* Captain Jetpack now fits on suit storage slot. (#70107)
* Adds a base modsuit chestplate allow list, cutting down on copy paste
* Allows Jetpacks to work while equipped to a de-hardcoded slot_flags list
* Allows the Captain's jetpack to fit on space suits and MODsuits by default
* Makes the Captain's jetpack fit on the Suit storage slot.
* Captain Jetpack now fits on suit storage slot.
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033)
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs
* wew
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Completely removes `proc_holders` from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code.
* our changes
* yes
* 0
* Update blackmesa.dmm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* fixes modsuits fucking up when unequipping every item (wabbajack) (#67533)
sad
* fixes modsuits fucking up when unequipping every item (wabbajack)
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* MODsuit module update: new stuff and improved old stuff (#67042)
Doubles the range of the MOD Pathfinder AI
Fixes modules rendering below the suit.
Adds the ability for modules to be used when inactive.
Documents/cleans up some code.
Updates some old descriptions and explains some concepts better.
Armor Booster and Ash Accretion can no longer boost your speed over no slowdown at all.
Makes flashlight module start with 4 instead of 3 range, so it's better for people that don't know about configuration.
Doubles t-ray module range, from 2 to 4 (t-ray scanner is 3).
Puts the noslip module lower in progression, lowers its' price to 2.
New sprites for the magnetic harness module by Onule.
Brings back the holster module, it can now be used when the suit is inactive, can be printed with security suit research.
Adds the power kick module for the ERT Commander. It's a powerful kick.
* MODsuit module update: new stuff and improved old stuff
* should be all
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Allows for MODsuit control units to be worn on slots that isn't the bag slot and actually work.
So far no MODsuits will actually use this, but I would like to add one in the future, I'm just not motivated to do the MODsuit itself, so I'm adding the support for it at least to see if it would be approved.
Lawyer tie modsuit will be real in 2023.
This doesn't really change the game much so I don't know how much I actually have to explain here.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* genericizes modsuit parts more
* Fixed merge conflict in CODEOWNERS
* Resolved the merge conflicts
* Fixed the modsuit tails
* Added a feedback variable for the remove_pai() proc, to try and clear out some issues
* Fixed the issues with the linter by splitting remove_pai in extract_pai and remove_pai
* Very simple fix to ensure all parts use the overslot
* Update modular_skyrat/modules/modsuit_pai/code/mod_pai.dm
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Replaces AIs in MODsuits with pAIs
* Whoops forgot to remove that
* Lmao begone spellcheck shit
* I may be stupid
* Removing comments that commented code when they didn't really need to.
* Stupid linters
* Fixed the fact that mod wasn't a variable of the module anymore
* Fixes modsuit charging and sphere transformation in 0 gravity (#64857)
Handles modsuit borg recharging on the standard core itself instead of the modsuit modsuit, as it should.
* fixes modsuit charging
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>