* 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>
* Fixes slices on pizza and resizes some foods (#54353)
fix: you can no longer cut pizza into bugged slices
fix: some small foods are actually small again
* Fixes slices on pizza and resizes some foods
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Converts some unique and typelists into stringlists (#54237)
* Converts some unique and typelists into stringlists
Co-authored-by: Rohesie <rohesie@gmail.com>
* Finishes the job on null rod sprites hopefully once and for all (#54235)
* One more pass on null rod sprites + null rod storage sanity pass
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Null rods no longer vanish when selecting a new holy weapon skin. (#54321)
Put null rod in active hand > Bring up radial menu to select new skin > Swap active hands to hand that is full > Select new skin > Nullrod spawns in nullspace, can't be put in active hand, stays in nullspace, old rod deleted > Chaplain has no null rod.
Now we (redundantly) spawn the new null rod at the holder's drop_location instead of nullspace.
We use put_in_hands which will attempt to put it in the active hand, followed by any free hand, followed by the drop_location if all else failed (told you the above was redundant, probably good practice to do though)
* Null rods no longer vanish when selecting a new holy weapon skin.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* BSbodybags inherit heaviest item weight + Easier to escape the disarm/BSbodybag combo (#54065)
Bodybags now inherit the weight of their heaviest item. If it doesn't have a weight (people), we assume bulky since things like people can be firecarried or whatever.
It now takes less time to get out of a bag (20 > 12 secs), and the progress bar is unbreakable unless you get incapacitated. This means people interested in using it to kidnap can still do so but it requires considerably more effort that isnt based on a latency difference and a quick disarm. The timer still runs down if you open the bag and try to put them back in but good attempt😏.
This also fixes an issue with the BSB where it was picking up or otherwise doublecalling checks from inheritance.
* BSbodybags inherit heaviest item weight + Easier to escape the disarm/BSbodybag combo
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
* Adds Alloy Materials (#53623)
Adds and implements alloy materials
Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.
Materials added:
Plasteel
Plastitanium
Plasmaglass
Titaniumglass
Plastitanium Glass
Alien Alloy
Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.
Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.
(Lemons note: Adds a regeneration component, used for alien alloy)
* Adds Alloy Materials
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* [s]Showers now properly react with 10u per tick instead of 1000u. (#54236)
Turns out what I thought was reagent units used per reaction was actually reaction multiplier in #53377, and it flew under the radar until literally 15 minutes ago.
This adjusted the reaction quantity down to 0.05, which with the 200 unit reagent volume of the showers, equates to about a 10u reaction per tick, ya know, rather high but reasonable considering that before it was mistakenly set to *5 instead, which meant you could de-husk a patient in a literal single tick with 1 unit of synthflesh.
* [s]Showers now properly react with 10u per tick instead of 1000u.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)
overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214
Some of these are wacky but overall this pr is harmless
signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code
overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr
* Fixes some potential sleeps as detected by SpacemanDMM improvements
Co-authored-by: spookydonut <github@spooksoftware.com>
* Converts Pizza to use the new food component. (#53641)
pizzas now use processing component
* Converts Pizza to use the new food component.
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
* Fixes the supply console not inheriting contraband and emag status from its circuit (#54177)
Added an abstract proc for circuits intended to be used to allow a circuit to configure a machine.
Overrode this proc for supply console boards (behaviour inherited by express boards)
Call this proc in supply console on_construction (behaviour inherited by express supply consoles)
Allows all supply consoles to inherit their circuit's emag and contraband status.
Doesn't look like any other circuits use this sort of functionality, but if they do I'll fix 'em up too.
* Fixes the supply console not inheriting contraband and emag status from its circuit
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* RPD unwrench upgrade (#53615)
* Most OP atmos tool. RPD that can unwrench pipes.
Adds reverse wrench mode upgrade to the RPD.
Attention, due to budget cuts, the mode is hard linked to the destroy mode control button.
Now /obj/machinery/atmospherics/deconstruct(disassembled = TRUE) return created obj/item/pipe
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* RPD unwrench upgrade
Co-authored-by: Dennok <Deneles@yandex.ru>
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* Tile Reskinning: Allows you to make prettier in-game building projects (#54184)
* Tile Reskinning: Allows you to make prettier in-game building projects
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
* Nerfs uranium material effects, and changes how effective materials are on sheets and statues (#54178)
* Nerfs uranium material effects, and changes how effective materials are on sheets and statues
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Sign language fixes (#53890)
If your hands are full, you make a visual attempt to sign, so others know you at least tried. If you have no hands, you simply cannot sign at all.
Having one arm gone and the other full properly makes one unable to sign
Runechat!
Uses TRAIT_HANDS_BLOCKED now
Any organ with ORGAN_UNREMOVABLE as a flag is no longer removed by aheals or full heals. Currently this only affects tied tongues, as no other organ really has that flag yet.
If you can't sign from your hands being full, you won't stand there silently staring at whoever you try to talk to.
People will actually see that you can't sign thanks to runechat
I finally fixed sign language for lings & xenobio mains
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Sign language fixes
Co-authored-by: Wallemations <66052067+Wallemations@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune (#53975)
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
* Add stasis beds
* Fix forcefields going away, leading to hull breaches
* Use set instead of list
* Use subtype for forcefield walls
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Merge pull request #54127 from Tlaltecuhtli/peniss
tray belt and worn sprite
* tray belt and worn sprite
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Merge pull request #53702 from zxaber/kiltborg
[READY] Highlander mode now includes silicons
* [READY] Highlander mode now includes silicons
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
* Completely FIX Hilbert's Hotel and its associated ruin to the game. (#53830)
Reverts the removal in #53790.
Broken in #53586.
Because turfNumber++ must be incremented on turf, not on every ATOM it
EVERY TURF, and anyway it don't trigger since first turfs don't have
atoms in it.
Fix#53794, Hilbert's Hotel peephole runtime.
Fix#53795, hhmysteryRoomNumber generates only once.
* Completely FIX Hilbert's Hotel and its associated ruin to the game.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Makes some things that rely on atmos adjacency more sane/faster. (#54096)
* Replaces some CANATMOSPASS calls with a new define that checks if the turfs are in each others atmos adjacent list, as that's the same info that they want.
* Makes some things that rely on atmos adjacency more sane/faster.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes monkeycube size and organ callback and microwaves (#54095)
* fixes
* dumb runtime
* fixes eggs
* Fixes monkeycube size and organ callback and microwaves
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Restores some functions food had (#53892)
Synthmeat steaks are a subtype of plain so that they can be used in burgers the way they could before
Colored burgers have color again, as they were just the greyscale sprite
* Restores some functions food had
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
* Nice, Corgi Pinning Action for the whole family. (#53913)
Adds pin the tail on the corgi, a basic party game last seen at the summer ball, that I had lying around on one of my branches since then. The corgi is a poster that functions like most other posters, but has an interaction with the fake "Corgi tail" object, which can be pinned onto the poster to visually place the tail onto the poster.
Are you a bad enough dude to pin the tail on the corgi blindfolded?
Fun, cheap entertainment. Might make for a cheap thrill, or help set the scene of a birthday party. Works as a very player driven basic activity.
Also, the tail pins are harmless embeds. I'll leave that here for you to think about.
* Nice, Corgi Pinning Action for the whole family.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* You can now throw things over raillings. (#54062)
Any movable atom with an attached thrownthing datum can now pass harmlessly over railings, and potentially fall safe down to the z-level below.
* You can now throw things over raillings.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes up addictions reporting on scanners, and admin full heal (#54056)
* Fixes up addictions reporting on scanners, and admin full heal
Co-authored-by: NightRed <nightred@gmail.com>
* Atmos Machinery Variants (#54015)
Adds variants for a bunch of atmos machinery that were missing them:
unary tanks
atmos filters
atmos control computers (and circuit boards)
atmos tank turfs
atmos tank outlet injectors
atmos tank siphon vents
gas miners
* Atmos Machinery Variants
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Reimagines Venus Human Traps (#53880)
Venus human traps now have a new sprite, new sprite for their bud, new sprite for their vines, their bud has icons according to how grown it is, they get sounds for hitting, getting hit, and dying.
oh yeah and I renamed the path flower_bud_enemy >flower_bud
* Reimagines Venus Human Traps
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fixes whiteship console losing GPS signal (#53998)
Deconstructing and rebuilding the whiteship console will switch it back to the GPS-less subtype. Added a new board and assigned it to the whiteship bridge console to remedy this.
* Fixes whiteship console losing GPS signal
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes for Syndicate Forgotten Ship (#53832)
* Fixes missing implant on Syndicate Ship Captain:
Syndicate Ship Crew Members have their implants. There are 2 boxes of syndicate firing pins in captains locker, but captain can't use them. This change fixes that. Captain had implant initially, but it was removed accidentally in #50597
Fixes spare magazines spawned in lockers:
Captain has 2 mags for APS instead of 9mm mags in their locker.
Crewmembers have 9mm mags instead of 10mm mags.
10mm ammoboxes replaced with 9mm.
Why do we even have 10mm mags, if crew spawns with makarov and captain spawns with APS.
* Fixes for Syndicate Forgotten Ship
Co-authored-by: antropod <antropod@gmail.com>
* Fixes mapstart and random arcade machines (#53958)
Randomly generated arcade machines were getting random boards and initing properly, but they weren't re-built as the appropriate subtype.
This oversight has been remedied. A new subtype has been created for random arcade machines which exists purely to pick a random circuit then create a machine from that circuit's build path before returning that it should be qdel'd.
This new subtype has been appropriately regex find-and-replaced into all maps.
* Objectify
* Fixes mapstart and random arcade machines
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>