* Rebuilds Luxury Shuttle (mostly), makes it emag-only (#72940)
## About The Pull Request

Changes the really goofy old lux shuttle to a cooler layout with some
additions to make it a luxury and not just
"anti-poor-people protection + food"
Shuttle was made bigger to make it less cramped for the luxury class,
pool was moved to its own room, added an arcade
and a bar corner, has real lasers to shoot poors with (20c each shot),
has fire extinguishers now
Adds a new preopen variant of hardened shutters
Adds a paywall pin subtype for the luxury shuttle, and a laser gun
subtype
Made emag-only at a price of 10000 credits
## Why It's Good For The Game
The old luxury shuttle looked REALLY awful with its pool, was pretty
cramped even in the luxury section and BARELY resembled a luxury..
This luxury shuttle provides luxuries such as a less poorly designed
pool, more space for legs, arcade, to make it resemble a luxury unlike
the old one
## Changelog
🆑
add: Luxury Shuttle is now bigger, and less ugly! Poor people still get
it rough though...
/🆑
* Rebuilds Luxury Shuttle (mostly), makes it emag-only
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Fixes an edge case where you can get incurable plasma damage, & fixes healing sources that don't have biotype restrictions not working if the mob doesn't have the MOB_ORGANIC biotype (#73017)
## About The Pull Request
Fixes#72962
The plasma river applies toxins damage to a mob as it transforms
individual limbs into plasmaman ones.
Once all limbs have been transformed, the mob's species changes to
plasmaman.
This currently leads to incurable toxin damage as antitoxin drugs do not
work on plasmamen. Made it so that upon transforming fully, the toxin
damage is cleared.
Also fixed an issue where healing sources that do not have a
required_biotype parameter (e.g. `adjustToxLoss(-5)` vs
`adjustToxLoss(-5, required biotype=whatever)`) will not work on mobs
that do not have the `MOB_ORGANIC` biotype (e.g. plasmamen) due to it
defaulting to `MOB_ORGANIC`. For now those use the `forced` param to
accomplish this.
## Why It's Good For The Game
Incurable damage is no good.
## Changelog
🆑
fix: fixed getting incurable tox damage when fully transformed into a
plasmaman via plasma rivers
fix: fixed rod of asclepius/medibeam etc not being able to heal tox
damage despite not having biotype restrictions
/🆑
* Fixes an edge case where you can get incurable plasma damage, & fixes healing sources that don't have biotype restrictions not working if the mob doesn't have the MOB_ORGANIC biotype
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
* The toy crossbow nolonger floats nearby your hand when you hold it. (#73140)
## About The Pull Request
The toy crossbow had its inhand dimensions set incorrectly to 64 causing
the inhand sprites to be offset incorrectly, I've set them to 32.
## Why It's Good For The Game
Bugfix.
## Changelog
🆑
fix: Toy crossbows have had their offset fixed and will now correctly
display in your hand.
/🆑
* The toy crossbow nolonger floats nearby your hand when you hold it.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Clarifies that TRAC bullets are not teleporter compatible (#73141)
## About The Pull Request
The detective's TRAC bullets embeds tracking implants into people. This
implants works similarly to the injectable tracking implant, such as
with the Prisoner Console or the Bluespace Locator. However, it has
`allow_teleport` set to false, preventing it from being used on the
teleporter. This has not been communicated in game, unless if you take
out the implant from whoever you shot, and stuck it inside the implanter
pad to read its in detail description.
This PR updates the ammo box and the design datum's description, to make
this clearer.
## Why It's Good For The Game
Closes#73121 , if a future detective examines the box, they will know
not to walk into the teleporter room to set up an ambush.
## Changelog
🆑
spellcheck: Clarifies that TRAC bullets are not teleporter compatible
/🆑
* Clarifies that TRAC bullets are not teleporter compatible
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Documents bolt_types and fixes Mosin Nagant Sprite (#72448)
## About The Pull Request
For an unknown period of time, `/obj/item/gun/ballistic` used the wrong
type of sprite for it's `bolt_type`, so anyone trying to make a new gun
and using it as an example wouldn't be able to make it work. Being an
abstract item, it used `BOLT_TYPE_STANDARD` when it had a
`BOLT_TYPE_LOCKING` icon state.
If you spawn it in and look at it, it looks like this.

But if you VV `bolt_bolt` type to `4` ( `BOLT_TYPE_LOCKING`), it looks
correct.

Same with the Mosin, which now has a visible bolt, so you can tell if
it's open or not now!

So basically:
- Changes the Mosin to use the correct bolt type, `BOLT_TYPE_LOCKING`.
- Makes the abstract `/obj/item/gun/ballistic` use the correct type of
sprite. It comes in designer _Debug Purple checkerboard_.

- Adds `bolt_types_explained.md`. As the name implies, this explains in
detail what all the bolt types do, and what you should name the
iconstates for them when you're trying to make a new gun.
- Various comment changes in `ballistic.dm`, and the `combat.dm`
defines.
- De-souls the `boolets` variable name to `bullets` in the ammo counter
proc
- Adds a new parameter `handle_modifications = TRUE` to `sawoff()` When
set to false, it allows you to still use the sawing logic, but bypasses
all the snowflake code for variable changes, and only sets `sawn_off` to
true. This is helpful if you want to allow a weapon to be sawed off, but
don't want your icon forcibly set to `lefthand_file =
'icons/mob/inhands/weapons/guns_lefthand.dmi` or the weight class set to
normal.
## Why It's Good For The Game
Documentation is always good I hear. Also if you're trying to make a new
gun or fix a sprite issue, now you can look at the base type to
understand how it works!
## Changelog
🆑
fix: Mosin Nagant bolt sprites are now visible. It's like 5 pixels so
not a surprise nobody noticed for years.
/🆑
* Documents bolt_types and fixes Mosin Nagant Sprite
* Fixes our speargun overlay sprites
Co-authored-by: Stonetear <89315023+Stonetear@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. (#72110)
So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!
Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.
But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.
It also made it much harder to organize new memories keep it clean for
stuff like downstreams.
So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.
Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.
This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.
To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.
Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?
🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑
* Modular!
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Experiment with holding hard references to objects being qdeleted in 515 (saves 1.1+ seconds on init times, more on prod) (#72033)
## About The Pull Request
Adds `EXPERIMENT_515_QDEL_HARD_REFERENCE`, which will queue to the GC
subsystem using hard references rather than `\ref`. This is only
possible in 515 because of the new `refcount` proc. `\ref` is very very
slow and has some nasty knock on effects, so removing its usages where
possible is good.
This is an explicit opt in define because I want to give us the ability
to test 515 on live while only testing 515 itself, not our experimental
changes. We have a few more of these we want to do so I made a separate
file for them. They're auto-defined in unit tests so we see them with
the alternate test runner. In a perfect world we'd test both on and off,
but eh.
Closes https://github.com/tgstation/dev-cycles-initiative/issues/10
* Experiment with holding hard references to objects being qdeleted in 515 (saves 1.1+ seconds on init times, more on prod)
* fix missed underbarrels
* HEV radio
* Keeps gc_destroyed from getting updated on every step thru the gc queue. (#72401)
Keeps gc_destroyed from getting updated on every step thru the gc queue.
Fixes logic that assumed gc_destroyed is the time the object first
qdel'ed. it used to get updated on each stage of the garbage controller
and there are 3 stages.
Added list index defines for the inner gc item list.
* test fix
* final fix
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars
* merge conflicts
* adjust_eye_blur and set_eye_blur_if_lower
* adjust drowsiness overdoses
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Clean up something else which was failing CI (#72299)
## About The Pull Request
Well my last PR passed the CI but everything else is still failing and I
want a little tick next to my pull requests.
So I guess I'm whacking moles until everything that 515 doesn't know how
to dispose of is disposed of?
I'll be honest I don't know what change makes this a requirement when it
wasn't before but it seems like a logical thing to be doing.
Unfortunately running this test locally doesn't produce a failure for me
so my only solution is to keep getting the CI to do it and hope that it
doesn't report a false positive again.
## Why It's Good For The Game

## Changelog
Not player facing
* Clean up something else which was failing CI
* modular m90
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Crafting/Cooking menu update
* Yeeted away all of the merge conflicts, time to fix the code
* Okay, now it compiles, and after testing, it seems to work just fine
* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu
* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock
* merge conflict
* Surplus balance, Consolidated our surplus crate and the new tg one to just use our stats
* use upstream surplus loot crates
* syndicrate
Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Adds an engraving to the staff of healing regarding proper healing beam usage. (#72403)
🆑
fix: Adds an engraving to the staff of healing regarding proper healing
beam usage.
/🆑
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Adds an engraving to the staff of healing regarding proper healing beam usage.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Changes the missing food icon test to cover ALL /obj's
* Update implant.dm
* Hopefully fixes all the failing integration tests!
* Fixes more missing icons
* Even more icon fixes
* Hopefully that was all of them
* Okay now SURELY that's all of them
* I'm tired of this shit man
* Hopefully that's all, for real this time!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
fixes neurotoxin newtonian movement and alien hud hand icons (#72269)
neurotoxin now properly moves u
also the alien spit shot by simplemob xenos is now a subtype of normal
because it was fucking stupid
also the nt hud pr broke the hud hand icons so fixes that
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* The Indestructible objective energy guns protect their contents, preventing them from bricking (#71976)
## About The Pull Request
Stops the two objective firearms from having their contents destroyed by
bombs. This isn't important for any other firearms, as they're all
destroyed by those explosions rather than surviving them, only to have
their contents deleted instead.
## Why It's Good For The Game
An everpresent consequence of oversimulation in firearms is that they're
prone to stupid shit like this happening. Since you can't replace the
power cell in these weapons, it just bricks the guns.
You can certainly replace the firing pin in the gun if that's destroyed,
but I figured it would be better to just wholesale make this no longer a
problem for these weapons.
## Changelog
🆑
fix: Stops strong enough explosions from bricking the objective energy
guns permanently.
/🆑
* The Indestructible objective energy guns protect their contents, preventing them from bricking
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Getting hit by a nuclear particle will always irradiate you. (#71812)
## About The Pull Request
Makes nuclear particles directly irradiate people.
## Why It's Good For The Game
Getting hit by a nuclear particle should be a death sentence.
## Changelog
🆑
balance: Nuclear particles will always irradiate you on hit.
/🆑
* Getting hit by a nuclear particle will always irradiate you.
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Fixes changeling tentacle secondary behaviour (#71686)
## About The Pull Request
Fixes#69013
## Why It's Good For The Game
## Changelog
🆑
fix: fixed using the changeling tentacle arm via right mouse click
holding people up instead of firing it. Now it will fire like normal
/🆑
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
* Fixes changeling tentacle secondary behaviour
* update modular
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Radial menu to remove PKA modkits with a right click from an empty hand. (#71603)
## About The Pull Request
You can choose and remove one at a time, code blatantly stolen from the
shotgun cabinet.
The crowbar functionality stays because Cyborgs need it to empty their
PKA.
## Why It's Good For The Game

This gives more control for miners to swap modkits from one fight to the
next or possibly mid fight.
Miners often have a favorite PKA setup that they use for most shifts, by
making swapping easier we have a little more freedom to add modkits that
are only useful occasionally (say a specific fauna counter) and these
are more likely to be used with an easier swaps system.
The old way to remove modkits was just pain, it would remove every
modkit at once and dump them on the floor.
Something something UX.
And hey, excuse to give better sprites to each modkit in the future.
## Changelog
🆑 Guillaume Prata
qol: Right clicking a PKA with an empty hand will show a radial menu
that lets you remove modkits one at the time.
/🆑
* Radial menu to remove PKA modkits with a right click from an empty hand.
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* Psykers (#71566)
## About The Pull Request
Finishes #66471
At burden level nine (or through a deadly genetic breakdown), you now
turn into a psyker.
This splits your skull in half and transforms it into a weird fleshy
mass. You become blind, but your skull is perfectly suited for sending
out psychic waves. You get potent psy abilities.
First one is brainwave echolocation, inspired by Gehennites (but not as
laggy).
Secondly, you get the ability of Psychic Walls, which act similarly to
wizard ones, but last shorter, and cause projectiles to ricochet off
them.
Thirdly, you get a projectile boost ability, this temporarily lets you
fire guns twice as fast and gives them homing to the target you clicked.
Lastly, you get the ability of psychic projection. This terrifies the
victim, fucking their screen up and causing them to rapidfire any gun
they have in their general direction (they'll probably miss you)
With most of the abilities being based around guns, a burden level nine
chaplain now gets a new rite, Transmogrify. This lets them turn their
null rod into a 5-shot 18 damage .77 revolver. The revolver possesses a
weaker version of antimagic (protects against mind and unholy spells,
but not wizard/cult ones). It is reloaded by a prayer action (can also
only be performed by a max burdened person).
General Video: https://streamable.com/w3kkrk
Psychic Projection Video: https://streamable.com/4ibu7o

## Why It's Good For The Game
Rewards the burdened chaplain with some pretty cool stuff for going
through hell like losing half his limbs, cause the current psychics dont
cut it as much as probably necessary, adds echolocation which can be
used for neat stuff in the future (bat organs for DNA infuser for
example).
## Changelog
🆑 Fikou, sprites from Halcyon, some old code from Basilman and
Armhulen.
refactor: Honorbound and Burdened mutations are brain traumas now.
add: Psykers. Become a psyker through the path of the burdened, or a
genetic breakdown.
add: Echolocation Component.
/🆑
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Psykers
* commented out stuff is now in
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* noooo more 9mm peacekeeper
* 10mm too
* advanced this advanced that
* advanced ammo boxes still curse me from the grave
* I HATE BLACK MESA!!!!!!!!
* de-autos the 10mm
* Adds ion carbine inhands as well as fixes pink sproite belt/suit storage sprites (#71572)
Unique inhands for the ion carbines and makes sure that the ion carbine has a defined worn sprite.
* Adds ion carbine inhands as well as fixes pink sproite belt/suit storage sprites
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* What if meteorslugs were mini cannonballs (#71137)
## About The Pull Request
Meteorslug shells fire effectively mini cannonballs. They're not as
strong, but they tear through everything they shoot, including walls and
airlocks. They're not as lethal as the real deal or go nearly as far
(range of 7, not even a screens length), but they are still pretty
destructive. They don't fling people, but they could potentially barrel
over several people, which I think is a good trade-off.
Meteorslugs need gunpowder (for a bigger shot) and rum (yarr) to
construct.
## Why It's Good For The Game
Only through sleep deprivation do I get such diabolical ideas.
Also, the original functionality wasn't very interesting except for
like, maybe a few niche silly things, but the real value was using them
to get into places. This version still definitely does that. But it's
_cooler_.
(The object displacement was pretty jank and I think this accomplishes a
very similar effect without actively harming why people would look to
use meteorslugs)
## Changelog
🆑
balance: Meteorslugs are now miniature cannonballs. They also need more
gunpowder and rum to be constructed.
/🆑
* What if meteorslugs were mini cannonballs
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fixes Riot Dart Damage Exploit (#71261)
Fixes an issue where riot darts would do damage even if they had no pen
in them if recovered after being fired while modified to be able to
accept pens
## About The Pull Request
Fixes an issue where riot darts would do damage even if they had no pen
in them if recovered after being fired while modified to be able to
accept pens
Fixes#71084
## Why It's Good For The Game
bug bad
## Changelog
🆑
fix: Riot darts no longer do damage with no pen inserted if recovered
after being fired while modified to accept pens.
/🆑
* Fixes Riot Dart Damage Exploit
Co-authored-by: SkeletalElite <skeletalelite0@gmail.com>
* [NO GBP] More balloon alerts for guns + fixes a wrong alert (#71136)
## About The Pull Request
Turns out I missed a few to_chats in #70398. Also I accidentally
inverted one so it said close the cover instead of open it. Oops!
## Why It's Good For The Game
Same reason as the original PR, balloon alerts are handy for stuff you
care about right now and not in 5 minutes. Also they should probably not
tell you to do the opposite of what you actually need to do.
## Changelog
🆑 VexingRaven
fix: Fixed a few balloon alerts for guns and moved a few more chat
messages to balloon alerts
/🆑
* [NO GBP] More balloon alerts for guns + fixes a wrong alert
* update modular
Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* (hopefully) improvements to use of scope and kinesis module (#70934)
## About The Pull Request
so, scope and kinesis are the only things in the game (other than the
body zone selector) which use the function MouseMove. this tracks every
mouse movement, which meant we had to stuff a cooldown on it to not
calculate a ton of useless stuff. this time can misalign if you move
your mouse fast, not registering at all, as well as not working out with
the 0.2 second processing time of the things handling it (the scope
component and kinesis module)
instead of doing that, we are now keeping the mouse parameters as a
variable, which we update with every mousemove to the current
parameters. then we handle the calculations right as we need them (in
the kinesis/scope) module, rather than relying on mousemove cooldowns,
this should hopefully feel way better
## Why It's Good For The Game
😁
## Changelog
🆑
qol: sniper scopes and kinesis module should feel better to use
/🆑
* (hopefully) improvements to use of scope and kinesis module
* seconds
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Missile Sanity Checking: I made it explode better? (#70813)
* Fixes robotics and nukies gaining access to the wrong type of exosuit missiles, renames the BRM-6 to the PEP-6 (Precision Explosive Projectile), ensures the defines match to which gun goes where, also renames the ammo paths to also prevent the same confusion, swaps around a whole lot of the pathing for what missile is the baseline and what is the parents, makes the PEP use the missile procs instead of its own snowflake code, inadvertently makes the missile a borg murder device but fuck it they're dense objects
* Missile Sanity Checking: I made it explode better?
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Carrying a null rod no longer disables the ability to use the traitor chef's meat hook (#70783)
override meat_hook's inherited antimagic flags
Co-authored-by: SeigaSeiga <seigacomm@ gmail.com>
* Carrying a null rod no longer disables the ability to use the traitor chef's meat hook
Co-authored-by: SeigaSeiga <seigashearwood@gmail.com>
Co-authored-by: SeigaSeiga <seigacomm@ gmail.com>
* Fixes Type Mismatch Causing Infinite Irrevocable Welding (#70670)
* Fixes Type Mismatch Causing Infinite Irrevocable Welding
(and plasma cutters too, because that seemed to be broken as well).
Hey there,
Behavior introduced in #70235 caused this shit to break, causing infinite welding that you could never undo, with an overlay that could never be removed. This was due to a type_mismatch runtime that plagued servers for a bit, I just stole the pattern from Lemon and used LAZYADD/LAZYREMOVE and that seemed to have fixed the issue.
* fixes plasmacutter since it had the same broken pattern
* Fixes Type Mismatch Causing Infinite Irrevocable Welding
Co-authored-by: san7890 <the@san7890.com>