one of three things.
1. They don't use RegisterWithParent or UnregisterFromParent to unregister
and register signals
2. They use callbacks which refer to a source object, which is usually deleted
on transfer, or lost in some manner, or simply makes no sense at all to be
transferred
3. the component was never designed to be transferred at all
TransferComponents gave no shits about any of this and just blindly transferred
all components, if they were actually capable of it or not.
I only noticed this because it was causing chairs to break as they would not register signals
and verbs correctly for rotation after being picked up and then placed down, and a player
reported that issue via ahelp.
Luckily we caught it before the rot got anywhere, only chairs and the shuttle subystem
tend to use this proc (Shuttle uses it on turfs), can you imagine if everything was using
this LMAO
Which is good because it's more dangerous than a loaded gun
I have added a can_transfer var, that is true when a component is valid to
actually transfer, which means the dev has actually thought about what happens when
you take the parent object away and swap it for another and all the crazy that is entailed
by this
I have done my best to audit what components are actually
transferable, but things are basically a hot mess (Thanks @Cyberboss )
The following components required edits:
Forensics:
did not register/deregister the clean_act signal properly, did not checkblood on new parent
Rotation:
did not use RegisterWithParent or UnregisterFromParent, turned out
to not be transferable anyway due to having callbacks that can be
passed in to the parent with unknown sources that we can't feasibly
reuse (i.e if you're transferred from a chair to a bed, your old rotation
call backs are no longer valid). Turns out the use case it was for (just chairs)
didn't need it anyway, so I just made it non valid for transfer.
Wet Floor:
Honestly this one is just a hot mess, it should be a subtype of the slippery
component with the extra wet turf handling.
As it is it basically manages a slippery component on top of it's own extra
functionality, so that's a major code smell.
I added registration/unregistration of the signals, and made it's pretransfer
remove the slippery component and the posttransfer add it back (via update_flags)
Components that seem transferable without issues
mirage_border
orbiter
decal
spill
storage (I hope to earth)
Meant to be part of #42864 , but got a little big so I'll add it to wichever gets merged last.
[Snailcrawl demonstration](https://youtu.be/IL7WFpfRo4c)
PROS
- Gets snailcrawl, wich makes them greatly faster and gives them a lube trail
- Their blood is spacelube
- They get a cool armored nodrop snail shell
- They don't slip
CONS
- Very slow
- Punch is pathetic
- Tttaaalllkkk llliiikkkeee ttthhhiiisss
- Extremely vulnerable to salt
- Can't wear glasses
Adds gastrolisis, wich is pretty much [this](https://www.youtube.com/watch?v=lFbPi8o0OEU) spongebob episode where they slowly turn into snails
You can also get gastrolisis by random_reagent_id, so maintpills and botany
🆑
add: Adds snailpeople as a rare genetics accident.
sprite: Snailshell sprites by nickvr628
/🆑
Snailshell sprites by @nickvr628
Why: It's a silly gimmicky race and it's a rare occurence. Also extremely highly requested for some reason
* Changes the PAI loudnessBooster to a piano_synth, allows choosing of instrument. (#42910)
* Changes the pAI 'Loudness Booster' to allow instrument selection.
* New trait: Unstable
* New trait: Unstable (#42904)
* nice.
* They exist to cease.
* "They've got eyes inside my head!"
* frick
* unstable insanity
* Just try taking this bull by the horns. (eyeballs)
* It's a thankless job, and you'll probably die in an explosion. But the pay is pretty good.
* "The best denials are simply that: a beginning and end unchanged, a dream with no memory."
* fixes the dme
* Update negative.dm
* Logging tweaks and fixes (#42817)
* Add a virus log, plus a log for facehuggers
Logs each infect event and contains detailed descriptions of the virus
I also added a log message for printing virus culture bottles including
who printed them
Finally i tacked on a change to adding a game log entry for facehuggers
because why not
* Further logging fixes and updates
Medbots now combat log
combat log no longer tries to run keyname on an object because that
doesn't make much sense
* Dead say no longer logs twice
* tabs to spaces
* Logging tweaks and fixes
* this is why tg shouldnt change spaces 4no raisin
* fix footstep sounds from being played while buckled (#42788)
Fixes the crawling sound from being played from moving buckled/mounted mobs.
## Why It's Good For The Game
Apparently I didn't catch the crawling sounds being played from buckled mobs that are moving. Examples include the Janitor on their pimpin' ride or some assistant piggy-backing off of a cyborg.
* Fixes crawling sounds from being played from buckled mobs
* Fix some variables with 'list' in the wrong place
* Merge pull request #42869 from AutomaticFrenzy/patch/list-order
Fix some variables with 'list' in the wrong place
* one
* ???
* big
* sprites
* it is done
* oofs
* no more bad jokes
* location -> reception
* i forgot a feature lmao
* yo lemme nerf this op power
* adjust removal and makes panic less insane
* hey i forgot another feature
* one mind removals
* *laser eyes meme*
* Disables multiple one minds for real this time
* adds the antenna power to genetics
it gives you an innate radio
* adds paranoia and mind reader
* foil hat interaction, sprites, tweaks
* upstream change
never webedit, kids
* fixes conflict-fixing error
* [READY]New Side Antagonist: Space Dragon (#42551)
* Add files via upload
* Rename space_dragon.dm to code/modules/events/space_dragon.dm
* Adds Space Dragon
* Adds Space Dragon Event
* Remove Copied File
* Put antagonist definition in proper location for space dragon
* Update space_dragon.dm
* Removed passive health regen from space dragon
* Updated Weight and Earliness for Space Dragon
* Added Objective to Space Dragon, Updated Starting Blurb
* Cleaned Up the Objective Determiner
* Actually fix the space dragon objectives
* Fix the objective display for the space dragon's target
* Updated Space Dragon Intro Blurb
* Updated Centcom Message When Space Dragon Spawns
* Updated Space Dragon's description with new lore
* Clean Up Space Dragon's OnFire()
* Add Space Dragon Sprites
* Sprite in wrong location
* Properly adds Space Dragon Sprites
* Adds Space Dragon Tiny Sprite to be Carp
* Space Dragon Uses New Sprites, Tiny Form Updated
* Increased Time Til' Dragon Spawn
* Drake's Tail Sweep Now Uses Prebuilt Spell
Thanks to Cobblestone for the head's up on this.
* [READY]New Side Antagonist: Space Dragon
* why the fuck doesnt the mirror bot do this automatically
* [GOONETICS] Chromosomes (#42151)
* adds chromosomes
* Makes the framework nice and functional
* Adds chromosome interaction
* Makes chromosomes work
* removes the double instability update
* Apply suggestions from code review
Co-Authored-By: Time-Green <timkoster1@hotmail.com>
* more review stuff
also fixed some inconsistencies in chromosomes
* unfucks defines
* Fixes saved mutations runtiming with empty pods
* Adds stability to the dna console and advanced health scanner
* removes a random bug i stumbled upon
* Update code/game/machinery/computer/dna_console.dm
Co-Authored-By: Time-Green <timkoster1@hotmail.com>
* makes chromosomes harder to get
fixes double mutations, adds reinforcer and nerfs stabilizer
* fixes edge case where fireballs would be harmless
* cleans up find/replace all mess and 1 in 10 trillion chance of fireball breaking
* [GOONETICS] Chromosomes
* fuck you mirror bot
Nobody made a report but I noticed this issue: Downed players being dragged are playing footstep sounds, specifically the bare footstep sounds via their hands from what I noticed.
Fixes (hopefully) footstep sounds from being played from incapacitated mobs that are being moved (via dragging for example). Instead, lying mobs will play a crawling sound when moving.
## Why It's Good For The Game
Footstep sounds shouldn't be played when mobs are being dragged.
* does the thing
* adds the regen thing to the sprayer
* adds a quite important addition to a comment
* capitalizes janitorial response
Co-Authored-By: VileBeggar <edmir995@gmail.com>
* adds cobby's process suggestion
Idea and instructions by @Razharas, many thanks.
This PR only implements the framework required to catalog as well as play the sounds. Their to_chat text, and icons (if any) are not included, are to be pushed in a separate PR.
This PR does not remove the old playsound_local system, it is kept for the sake of not necessitating a direct changeover of every single playsound in the code, which will surely cause a lot of merge conflicts. It does however, replace bike horns' and toy nukes' means of playback to this datum, purely as proof of concept.
Playsound_local may remain in the code to support playback of admin-uploaded sounds that do not have an inherent datum. Playsound will likely be renamed to something else in the next PR to reflect its new, more universal function. We will see.
New process for adding sounds:
Create a new datum/outputs subtype.
If you wish, write down some supporting text; this gives further meaning to the sound.
Add multiple sounds to the sounds list, and weight them as you wish. (New)
Add a sound icon if you wish, it defaults to a generic sound circle anyways though.
playsound(/datum/outputs/new_subtype, receiver), and it will deliver, icon, sound, and text to the receiver.
Maintaining implication is that from now on playsound should only be processing datum/outputs
This pr intends to gut to_chats that are added alongside playsounds in the code.
This pr eliminates the need to initialize sounds in a list so that you can weight them or have the game play them randomly from the list.
Sound Rings
Currently, only mobs with the audiolocation var may view them. Sound icons have an alpha that depends on the volume of the sound, louder sounds create a more opaque image
Sound rings are completely modular and may be changed to any image.
In addition to renaming playsound to reflect its new function. I intend to give blind people sound icons at the cost of their small view, but that is for another PR.
cl Basilman
refactor: refactored how sounds are stored and played
add: Added sound rings and supporting text
/cl
* Traumas are copied when a person is cloned
🆑 coiax
add: When a person is cloned, any mental traumas are cloned as well.
/🆑
If the cloner is going to recreate your delicate personality, it's going
to have to recreate anything wrong with your brain as well. After all,
where does one greytider's legitimate fear of security end, and another
one's irrational fear begin?
Essentially, traumas could be easily gotten rid of by cloning, or death
would rob a person of a rare positive trauma. Now you're stuck with them
until you get rid of them.
* Suggested changes
* Added the Virology Blanket (new bedsheet option)
* Provides a defib to Syndie Lavaland Base Medical, and adds a piece of syndi-cake trash to it's maint
* Adds virology bedsheets to Virology, adds Orange Bedsheets to Brig, and also fixes#4332
* Adds the include for the new Yogs bedsheet_bin.dm file.
* Removes the weird bedsheet clipped into Courtroom wall
* Added the new Prisoner's Blanket! Now there is an official bedsheet for NT Brig Cells.
* Rolls out Prisoner's Blankets to Brigs in all four Yogs maps!
* Modularized the lavaland_surface_syndicate_base1.dmm for Yogs
* Somehow Dream Maker deleted a red corner from YogsDelta. Fixed.
🆑
add: Adds the Paraplegic quirk for -3 points. You start with unhealable leg paralysis
(persists through cloning), and have a wheelchair to move around the station.
/🆑
This is really popular for some reason.
This required a surprising amount of small code tweaks for it to "feel"
right in edge cases like being a job that had items in their hands or
joining on the arrivals shuttle.
Justification for -3 points: You move REALLY slowly, in a game that's
about generally running from security/the guy with the esword. And if
you die and get cloned and don't have your chair, you move even slower.