* Pirates now speak piratespeak. (#61215)
Apparently we have had this thoughtless (like many other small features) language datum ever since late 2018 that only costume pirate hats use: Piratespeak . Space pirates don't even use it also because their hats aren't a subtype of the costume pirate hat for good reasons like armor and EVA. Yea, this is also an oversight since space pirates were added before the language.
* Pirates now speak piratespeak.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Restores Ethereal Taste (#61238)
Restores Ethereals' sense of taste, as was removed in #48309. It is slightly more sensitive than the human sense of taste.
Approved by Mothblocks, I can't get an image of it so if @ Mothblocks could confirm in the comments that would be wonderful
* Restores Ethereal Taste
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary) (#61231)
#60479 changed the attach argument "vary" into "sound_vary" but didnt change the two associative arguments for vary to sound_vary. this does that. now Attach() wont runtime for the footstep element
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary)
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* makes rslve button in admin help panel not wrap around (#61239)
makes admin help panel wider so rslve doesnt wrap around to the bottom line
* makes rslve button in admin help panel not wrap around
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Gibber will now give 3 pieces of meat at tier 1 (#61222)
* Update gibber.dm
* Update gibber.dm
* Update code/modules/food_and_drinks/kitchen_machinery/gibber.dm
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* Update gibber.dm
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* Gibber will now give 3 pieces of meat at tier 1
Co-authored-by: jughu <melvin2626@live.nl>
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* Fixes a regression about skeleton pirates not having milk bottles. (#61217)
* Fixes a regression about skeleton pirates not having milk bottles.
* aaaa
* Fixes a regression about skeleton pirates not having milk bottles.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes can_interact() (#61211)
when i refactored can_interact() I thought ". = ..()" meant it would return with whatever the return value of the parent is... turns out thats not true, and i didnt catch it because there was only TWO machines that had issues from this, namely operating computer had unlimited range to view its tgui, and protolathes let you build things from unlimited range, provided the html window was open (you couldnt click any buttons out of range, except build buttons, weird, but whatever)
i also broke admin AI checks on machines, i added an explicit check back in
I also removed a redundant fingerprint from protolathes, their parent call already adds a fingerprint, they dont need to add it again
* Fixes can_interact()
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Uncouples the cultist red eye trait examine text from requiring cultist status or a certain eye colour. (#61199)
Renames TRAIT_CULT_EYES to TRAIT_UNNATURAL_RED_GLOWY_EYES.
This trait now always displays a (slightly modified) message about unnatural glowy red eyes regardless of if the person is a cultist and regardless of what their eye colour is.
The examine is decoupled from eye colour because as it turns out, players can select the bloodcult red eye colour as part of character prefs. Anything that gave this trait set the eye colour to red anyway. Because there's now no guarantee the eyes themselves are red with this trait, the examine has been reworded slightly to reinforce that the eyes are merely glowing red and not necessarily are red themselves.
The examine is also decoupled from being a cultist. The trait can be added from multiple sources. Removing the cultist check means other things that want to tread the line of cult paranoia can add it too. Like Chaplain maint sect eyes and admin shennanigans.
This now means that the Chaplain's maint sect night vision eyes actually add the examine flavour text, instead of what they did before which is only add the examine flavour text if the player was a cultist that had bloodcult red coloured eyes. In other words, if they were risen and already had glowy eyes.
* Uncouples the cultist red eye trait examine text from requiring cultist status or a certain eye colour.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Using a soulstone on a construct shell no longer destroys it and the shade if no option is taken. Plus code improvement
* Fixed the merge conflicts.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fix broken mech delay (#61163)
This seems to have been supposed to be a delay for god knows what reason
I assume it was supposed to slow you down or something but its not needed or useful and currently breaks changes your speed
* Fix broken mech delay
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Replaces bees and hivelord MOUSE_OPACITY_OPAQUE with a component. (#61032)
I have replaced the mouse opacity setting for bees and hivelord, its brood and legion skulls with a component that adds an almost (has to be 1 alpha to catch the click) invisible underlay to its target that doesn't block the entire turf.
The component prevents the underlay from shrinking or expanding above/below certain boundaries when the attached atom transform matrix is vv'd by an admin or if it's a mob being resized.
The component can be added to any atom, though there's no common signal for when objects are resized.
* Replaces bees and hivelord MOUSE_OPACITY_OPAQUE with a component.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes mousetraps causing mice to become invisible when splatted (#61201)
* Fixes mousetraps causing mice to become invisible when splatted
Co-authored-by: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
* Refactors how components are triggered and refactors how ports are ordered (#60934)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors how components are triggered and refactors how ports are ordered
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes the protect objective.dm (#61037)
A ternary operator was screwing things up. I have also replaced some . path operators with ?. to avoid runtime errors. And yes, I have tested it.
* Fixes the protect objective
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes scanner gates (#61138)
Scanner gates will now properly function when anchored. This is done by having the signal id be COMSIG_MOVABLE_SET_ANCHORED instead of COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH.
Shells that require anchoring will now say they require anchoring.
* Fixes scanner gates
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Added permission verification to the change_admin_rank proc. (#61137)
Checks if usr has R_PERMISSION before going any further in the change_admin_rank proc.
* Added permission verification to the change_admin_rank proc
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Pen & Paper Bin minor resprite (#61159)
sprites for thing that didn't have one, and they look better i think probably
* Pen & Paper Bin minor resprite
Co-authored-by: Kokonut <38844529+maxymax13@users.noreply.github.com>
* Adds in asexual-themed socks. (#61175)
Adds in the asexual socks, called the ace socks because i like the abbreviation as it makes it sound cooler.
Also fixes bee socks being ordered improperly in the code.
* Adds in asexual-themed socks.
Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
* RPD default pipe color change (#61162)
New default color is green, also grey has been renamed to omni to ease new players without code diving (or changelog reading)
Moved the colors so that green is the first and the omni is the last
* RPD default pipe color change
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* mechas have their 5 default damage back (#61167)
mechas used to have 5 force, this was broken in the mecha refactor making the non-combat ones do no damage with punches
* mechas have their 5 default damage back
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Reorder the POPUP button (#61174)
Hurts muscle memory in a way I didn't anticipate. New version puts it behind the REJT button.
* Reorder the POPUP button to be behind closure links
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Cayenne can now strip people (#61160)
Cayenne was given the ability to pick up the disk in their mouth with #57395, which also gave them the trait advancedtooluser for them to strip.
A while later, the ability to strip people was moved to a separate trait, which removed Cayenne's ability to strip.
This PR restores that functionality, and also makes Cayenne able to drop the nuke disk without deleting it.
Also cayenne putting the nuke disk down would runtime and just delete the disk entirely, so this fixes that also.
* Cayenne can now strip people
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* adds a gun circuit shell (#61156)
adds the circuit gun shell, every projectile it hits with outputs the shot mob, everytime its shot charge from an attached circuit is transferred to it, it deals no damage
increases the range of the to string circuit to 7 tiles from 5, now should get everything in view range
* adds a gun circuit shell
* Update gun.dm
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fix dir delay when riding something and turning (#61056)
Fixed invalid arguments being passed into vehicle_moved
* Fix dir delay when riding something and turning
Co-authored-by: BraveMole <bsouchu@gmail.com>
* [s] Audits object say() uses to make handling text more safe (#61147)
Made all say()s deal with encoding, audited all uses of say() to prevent double encoding or like, manually inserting span().
I left some stuff without sanitize that only draws from the code, since it's hell to clean up otherwise. That
and I let admins do whatever the fuck they want
* [s] Audits object say() uses to make handling text more safe
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Free up smart pipe direction on disconnect (#61135)
Previously, a smart pipe that was attached in a given direction would
continue to hog that direction even if the attached piece was removed.
* Free up smart pipe direction on disconnect
Co-authored-by: esainane <esainane+github@gmail.com>
* Vents and scrubbers get unique name tags again (#61133)
You used to be able to mouse over a vent or scrubber to see its ID tag, in order to match it to its entry in an air alarm panel. However, this id tag is currently missing from the name.
* Vents and scrubbers get unique name tags again
Co-authored-by: esainane <esainane+github@gmail.com>
* Time to see if this helps master
* A fix to the stack trace about clothes continuing to burn
* Trying to update the maps a bit for less conflicts
* Removes some Deltastation merge conflicts
* Fixes more bugs in maps.
* Yet another bug
* One less runtime, maybe?
* Tried to fix some uniforms icon_state to fix CI
* Update DeltaStation2_skyrat.dmm
* Update DeltaStation2_skyrat.dmm
* Please tell me this does it.
* Reverting the icon change, as it's addressed better somewhere else
* I SWEAR IF THIS FIXES IT
* Gonna try this this time
* Actually fuck off let's see if this is the problem (I just realised it might be)
* The nail in the coffin, for now.
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fixed the Bloodcrawl spell not ejecting users if somehow lost. (#61076)
* Fixed the Bloodcrawl spell not ejecting users if somehow lost.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* large refactor of machine/power code to cut down on processing time and wasted lists (#60317)
original pr here: #59789 (Closed because he didn't think it was good enough)
came back to this because i realized that
all machines were area sensitive, meaning they had a list with at least a reference to themselves (assuming they arent in the contents of another movable which most arent) for the purposes of handling power differences when their area changes
pipes are machines
there are ~14k machines and ~6k pipes
i made this problem worse with a recent pr by making it a nested list
so i needed to track what machines needed power, and this pr had work already done that could be used for that purpose. now machines that have use_power == NO_POWER_USE do not have this extra memory overhead for no reason
currently every machine that uses power draws that amount from its area from a dynamic channel via auto_use_power() which is called every SSmachines fire(), then in apc/process() the area's dynamic power draw is reset and the power is used. with static power its not calculated then reset every loop, its just taken from the grid. so now machines handle updating their static power usage from their current area (this doesnt touch power machines that require a wire connection). in order to allow this, use_power, idle_power_usage, and active_power_usage have setters to track state correctly and update the static power usage on the machines current area and handle area sensitivity.
also goes through a lot of heavy abusers of SSmachine processing time and tries to make it faster. makes airalarm/process() into a signal handler for COMSIG_TURF_EXPOSE since air alarms only need to process for changes.
Why It's Good For The Game
SSmachines isnt the heaviest hitter in terms of total cpu and certainly not in terms of overtime, but its not a lightweight. it frequently takes > 50ms to complete a run and seems to be in the top 5 or so of subsystem costs looking at some round profilers
also gets rid of a few thousand lists since every pipe no longer has two useless lists each (and any other machines that dont use power)
Love ya kyler
Co-authored-by: Rohesie <rohesie@ gmail.com>
* large refactor of machine/power code to cut down on processing time and wasted lists
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Fixes a plasmaman autoignition oversight (#61083)
Adds a check to see if there are any organic plasmaman limbs or any plasmaburnt limbs (which are obtained by exposure to plasma lava on icebox) before igniting plasmemes so that a plasmeme with fully replaced limbs can stop burning
* Fixes a plasmaman autoignition oversight
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>