* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708)
* fixes poopy bronze tiles sstuff
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Allows the connect_loc element to have a listener different from the tracked object (#58276)
* Allows the connect_loc element to have a listener different from the tracked object
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Empty graves can now be spawned (#58200)
* i walked along the no mans road
POV: you got fucked on a previous branch from something stupid
* Update code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
Co-authored-by: Fikou <piotrbryla@ onet.pl>
* Update code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Empty graves can now be spawned
Co-authored-by: ishitbyabullet <deathzombine@outlook.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* you can no longer sentience potion human mobs (#57761)
* You can no longer sentience potion humanoid simplemobs
Co-authored-by: Fikou <piotrbryla@onet.pl>
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#57263)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes tags on ordered pizza (#56369)
Box tags
Fixes bug where box tags weren't updating correctly on creation
Adds box tag flavours for the pizzas without them (i.e. Donk Pocket -> Bangin' Donk, Dank -> Fresh Herb, Sassysage -> Sausage Lovers, Arnold -> 9mm Pepperoni)
Randomised pizza crates
Pizza crates can now come with any five pizzas, weighted by disruptiveness
Small chance of getting one pizza bomb in a pizza crate (either armed or not) per shift
Armed pizza bomb
Adds an armed variant of the bomb pizza box, which has the boxtag "Meat Explosion", contains a meat pizza and explodes 5 seconds after opening
Makes the pizza party spawner use the armed bomb pizza box, instead of giving whoever a free syndicate pizza bomb they probably aren't allowed to use anyway
Secure kitchen crate
Adds the secure kitchen crate from my previous PR
Adds a secure pizza crate variant to KiloStation's cargo warehouse where the freezer crate was, which contains the pizza party and is locked with kitchen access
Ghost examines
Adds ghost examine messages for pizza boxes with bombs or the nanomachine pizza in them
* Fixes tags on ordered pizza
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* renames metal sheets to iron sheets
* Merge branch 'master' into upstream-merge-56643
* yay metal
* Update DeltaStation2_skyrat.dmm
* a
* Update CentCom_skyrat_z2.dmm
* a
* a
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Refactors how floors turfs set broken/burnt states + fixes glass plating turning invisible when damaged (#56200)
adds sprites for both normal and reinforced glass plating (i reduced it to 2, from 5, from when the image was taken), the sprites arent the absolute best but arent terrible imho,
refactor to floor code to not dumbly hardcode an initialization for broken_state list sprites, as well as moves burnt and broken states to procs, and has an override to all floor turfs which have both a broken and/or burnt icons unique to it
also changed how certain tiles react when broken, now, instead of magically turning into iron plating when stuff like dirt, lavaland basalt, sand, water, wasteland tiles, you name it. when they break, they will just use their basic icon (typically, wont change), rather than turn into iron plating magically. when asteroid turfs (lavaland basalt, icebox snow, asteroid sand etc..) which have a dug icon break, they change to their dug version instead
* Refactors how floors turfs set broken/burnt states + fixes glass plating turning invisible when damaged
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* [READY] Nukes archeology component and icon_plating and environment_type in favor of base_icon_state. Dig behaviour code improvement (#55819)
* aa
* Removes archeology component. Nukes icon_plating and environment_type in favor of base_icon_state
* Actually maybe lets not use a proc for updating asteroid icon state when its dugged up
* Update plating.dm
* [READY] Nukes archeology component and icon_plating and environment_type in favor of base_icon_state. Dig behaviour code improvement
Co-authored-by: Azarak <azarak10@gmail.com>
* Merge pull request #55730 from Ghommie/patch-6
The cursed hot spring no longer polymorphs incorporeal critters.
* The cursed hot spring no longer polymorphs incorporeal critters.
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
* Tweak typography of elephant graveyard ruin (#55445)
Fixes a missing space, a double space, and a missing hyphen.
* Tweak typography of elephant graveyard ruin
Co-authored-by: Tad Hardesty <tad@platymuus.com>
* Planetary Atmos Changes (#55398)
This PR sets several Icebox turfs to be planetary atmos turfs, such as the openspace, to return the gas mix to a standard, and reduce the number of active turfs overall. To aid in this, planetary atmos calculations are a seperate share from the main 4 turf share now, and instead re-archive and share 4/5 of their difference in moles to the atmosphere, as well as temperature sharing with a higher heat capacity. This should result in the planetary atmos turfs returning to their standard much faster than before.
Before at most planetary turfs would keep 0.8 of their difference after sharing, compared to the 0.2 difference they will keep now, log(0.2) / log(0.8) showing this is sharing about 7 times faster in getting rid of gas diffs. This should also reduce the effects of continuous fires and limit their active turfs to a certain region on the planet, ex: the incinerator outlet wouldn't spread to the entire planets turfs. This also makes behavior more like space for the purposes of cooling and venting gas for toxins.
This might also make gas farming slightly faster since the gas will also come back faster, but considering most of the expensive gasses have been removed and this will also reduce the lag from gas farms, I think it is a worthwhile change. It can't be worse than making the turfs immutable anyways since that would be the fastest.
Reduces lag and makes gameplay more in-line with space stations in ways that improve quality of life but still preserve uniqueness by not making the planetary turfs completely immutable.
* Planetary Atmos Changes
Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
* Graveyard graves now sound like they're being dug open/closed. (#55080)
* Graveyard graves now sound like they're being dug open/closed.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Removes capitalism and communism golems [the sun sets on freedom] [fall of the iron curtain] (#54637)
About The Pull Request
Removes commie and cappy golems, and all connected parts and features.
Why It's Good For The Game
You're downloading 5 mb of capitalist and communist songs and talk sounds every time you log into a server, which makes it take much longer to actually join the game. While this was a good meme and became even better when cappy golems would fight the communist ones, they are:
Really really underused for what they are
Really really boring and simple without all the special sounds
Really really not worth keeping gutted
Changelog
🆑
del: Capitalism (golem) and Communism (golem) are dead.
/🆑
* Removes capitalism and communism golems [the sun sets on freedom] [fall of the iron curtain]
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Standardizes attack chain signal returns and fixes a tk bug (#54475)
The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.
In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.
Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack
Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.
Also cleaned some code here and there.
* Standardizes attack chain signal returns and fixes a tk bug
Co-authored-by: Rohesie <rohesie@gmail.com>
* Hilbert's Hotel orb now has a bunch of checks to prevent users pulling shenanigans (#54229)
Hilbert's Hotel now does some basic level of sanity checking after the input to cut down on a number of shenanigans.
The following are all the new changes:
Hilbert's cannot be activated via telekinesis. It must be activated by direct player attack.
If the item isn't adjacent to the target after their input, it aborts.
If the player attempting to enter the hotel is incapacitated after their input, it aborts.
If the user no longer has the item in their possession after their input, it aborts even if there is a different target.
If the user is also the target, it will attempt to drop the item normally. If the item fails to drop, it may be teleported to the hotel with the user. The item can fail to drop when it is in the user's possession but not in their hands, or when it has TRAIT_NODROP.
When the item enters a hotel room created by itself, it will now recursively check for the first mob in its loc stack. It will gib this mob before teleporting away.
This prevents the warp-whistle effect where a user could put the item in their backpack at INCREDIBLY low risk to themselves (0.135685% chance of anything bad happening) to enter a hotel room and have the orb warped away at random. They could then immediately leave for a free warp whistle effect.
* Hilbert's Hotel orb now has a bunch of checks to prevent users pulling shenanigans
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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>
* 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>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Rebalances space loot and space exploration (#53916)
* Rebalances space loot and space exploration
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Custom statues and sculpting changes. (#53154)
### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.
* Custom statues and sculpting changes.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Completely removes Hilbert's Hotel and its associated ruin from the game. (#53790)
The Hotel is a runtime machine. When it swaps rooms, its turfs runtime. When people are actively using it, things in it constantly runtime. It's half broken, half buggy. Turfs don't remember contents. Sometimes blank rooms spawn. Sometimes nothing at all.
It's not worth the time and effort to fix or maintain it.
I'm opening this PR to completely remove it.
* Completely removes Hilbert's Hotel and its associated ruin from the game.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#53305)
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Fix sleep lint and use tabs in hilberthotel.dm (#53586)
* Fixes master lint and makes hilberthotel.dm use tabs instead of spaces
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Icon smooth refactor (#52864)
bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.
canSmoothWith list turned into a bitflag list.
smoothing_groups list added to substitute the type path list.
smoothing procs turned into atom procs, refactored and optimized a bit.
smooth directions redefined in order to fit in 8 bits for a future smoothing system
some variable names changed, foreseeing a second smoothing system
SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.
SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.
Does very minor code cleanup.
Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.
Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.
Could be tested a bit to see if I missed any icons not properly smoothing.
* Icon smooth refactor
Co-authored-by: Rohesie <rohesie@gmail.com>