* tgui Preferences Menu + total rewrite of the preferences backend
* nah, we dont need to ping those people
* trying to remove the funny stuff
* unmodularizing this
* prefs reset
* this may need to be reverted, who knows
* okay, this part
* perhaps
* EEEEEEEEE
* unsanitary
* E
* Stage 1 + loadout system
* more fixes
* E
* I mean, it launches?
* More fixes and reorganisation
* E
* customisation code is spaget.
* disable ERP prefs
* Update erp_preferences.dm
* Update erp_preferences.dm
* E
* Slowly getting there
* It may be time for help :)
* tri...colors... help
* preferences now pass preferences
* Update dna.dm
* Fuck this man
* missing savefile return, set_species works, removed dumb stuff from updateappearance
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8199
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8224
* https://github.com/tgstation/tgstation/pull/61519
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8278
* e
* le butonAZARAK HELLO
* hhh
* Proper recognition where it's due, MrMelbert!
* EEEE
* examine block
* Better gen hit sounds from whitedream
* final loadout touches, more bug fixes im sure to come
* i said there would be bugfixes
* Update LoadoutManager.js
* Missing preferences in the html menu
* LIVE TESTING PHASE BABY
* Update LoadoutManager.js
* EEE
* LAUNCH TEST FIRE
* Update job.dm
* Update new_player.dm
* 50gb DAY ONE PATCH
* EEE
* Update preferences.dm
* buggle fixes
* Update examine.dm
* >LOOC starts on
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)
* Mirror
* genetically-editable mutant bodyparts and colors - skyrat edition
Co-authored-by: Funce <funce.973@gmail.com>
* Makes it so changeling legs copy digitigrade/normal, try number 2 (#59832)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Makes it so changeling legs copy digitigrade/normal, try number 2
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds an error for setting species post qdel (#59433)
Co-authored-by: Jordan Brown <Cyberboss@ users.noreply.github.com>
* Adds an error for setting species post qdel
* Mirror!
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Jordan Brown <Cyberboss@ users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Purges two redundant proc calls. (#57421)
Title. dna.species.handle_body() calls remove_overlay(BODY_LAYER) already. I added a comment about the other one.
* Purges two redundant proc calls with human icon updates.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* DNA fix (#55669)
This PR fixes a problem where DNA proc "is_same_as" always returned FALSE because of bad assoc list comparison.
The use of the proc mentioned above is very limited, and only practical effect will be that changelings cannot extract DNA they already have stored, which is intended limitation as per can_absorb_dna proc in the changeling antagonist datum.
* DNA comparison fix
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
* 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>
* Fully removes devil and affiliated shitcode (#53612)
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
* Fully removes devil and affiliated shitcode
* weh
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Initial work on tgui conversion for DNA Consoles
* Some initial button logic complete
TODO: Scanner Open button should disable while scanner is locked
TODO: Scramble DNA should disable while on cooldown
* Tabs for the tab God
* Dropdown changes, genetic sequencer modifications
* Mutation and genetic sequencer functionality
Almost complete. Need to implement Advanced Injectors still.
* Mostly done, converted most of genetic makeup code
* Tactical pocket linting
* More changes
* Everything except advanced injectors complete
* First complete alpha version
* Fixed debug/testing change
* Removal of more debugging code
* Fix pulse bug
* Bugbusters
* Fix for accidental changes
* Fix broken genetics disk changes, fix list of lists
* Squash tgui tab-key bugs and clean up attackby
* Code documenting, refactoring, bugfixing, spellcheck
* Documentation and misc bug squashes and runtime error fixes
* Fixes, features and tweaks
* Special check for those who have shuffled off this mortal coil
* New interface concept for console storage
* Mini code refactor
* Massive refactoring of DnaConsole interface (WIP)
- De-spaghettifying of LawyerCode
- Fixed the flex-basis bug, and removed ForcedBox since it's no
longer needed.
- Added a Divider component.
* Implemented requested changes.
Removed list() versions of strings.
Removed used TGUI-exclusive constants from data object. Currently unused ones still remain, can be removed if they're no longer necessary.
Fixed other DM data structures to serialise as JS Arrays instead of Objects.
Minor TGUI logic fixes for various edge cases.
Added some comments in DnaConsole.js outlining some minor notes and TODOs.
* Fixes "Save to X" being disabled.
* Included 2px outline CSS
* Additional minor logic patches
Don't want certain buttons active unless the mutation relation to them is also active
* Makes these transforms use a timer
* Fixed transformation race condition and stuff.
* Mutation source defined in DM. Conditional formatting improvements.
* Custom cache directory with BYOND_CACHE env var
* Fix gene cycler on index of -1
* Framework and TODO for next interface element. Cleared TODO list a bit.
* Fix 1px shift in gene cycle buttons
* Pass raw event with GeneCycler
* More robust combining logic
* Fix some cycler bugs, start working on enzymes
* Conditional highlighting for unsolved mutations and X'd genes.
* Lint for the Lint God
* Enzyme UI and more refactoring incoming
* Finish tgui refactoring, enzymes injectors done
* Whack-a-Bug
* Unlinted. Advanced injectors moved and improved. Implemented disk genetic data readout.
* Partial linting
* Assorted bug fixes
* Remove debugging code
* DNA Consoles are now more conversational. Initial state set.
* Final tweaks, implemented mutation combining, complete?
* Fixes tooltop, re-enables delayed enzyme transfer, cleans up some data params
* 10 Fix a bug, 20 make a bug, 30 goto 10
* The definition of irony
* Don't drink and derive, kids || How I learned to stop coding while drunk and rely on stylemistake to Flex on my formatting.
* uniqBy
* Add support for dropdowns with disabilities.
* Cleanup
* Remove current mutation from combinations
* Dividing
* Document BYOND_CACHE env var
* Outline cleanup
* Declare radiation constants since they were removed in DM
* Combine mutations only after checking for null
* Advanced Injectors actually work now.
* Comment cleanup, DMDOC, stard and end processing at appropriate times
* Pressing Ctrl-S occasionally helps things
* Fix enzyme mutator timeout bug, added injector timeout display.
* Rebuild tgui
* Rebuild tgui
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
* Removed from code
* Removes cloners from maps
* Some more references, now compiles.
* Reduces availability of replica pods
* DNA scanner and tech disk rebranding
* pubby door name, cargo pack description
* Unicode support Part 2 -- copytext()
This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.
I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````
with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.
This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.
* Makes the code functional
* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.
* Removes ninjaspeak since it's unused
* Selectively randomisable characters
* it's a list now
* this doesn't work
* it's totally fucking fucked mate big time
* it works
* so sick of this goddamn pull request and yes i know this is a retarded way to do this it didn't work the other way
* anturk forestalls the inevitable suicide
'associative lists are more performant'
* final changes anturk requested
'remove all the "in randomise" and it's ready'
* Brain damage works on organ damage procs, some defib reworks
* Heart and Lung damaging effects and failure, liver damage and failure moved to its organ again
* Cleans up reused global
* Organ damage procs on living and living/carbon
* Changes brain damage procs again
* SR heals all organs on revive, no decay for cybernetic implants, stomach damage and fail effects.
* Damage and failure effects for the appendix, ears, and some touchups on the stomach
* Committing changes so I don't lose them
* Organs now cease decaying in the proper containers
* Organ Fridges
* Reverts map changes
* Adds coronary bypass, lobectomy, trying to deal with organ_stat runtime
* Actually fixes merge conflict
* Smartfridge tweaks
* Think I figured out map merger
* Evidently not
* Still runtiming with glass shards even after I remove the map changes?
* Fixes runtime error with brain_item
* Runtime fix on living/carbon/life
* Cleaning up old PR code
* Brain damage fix, moves defines to actually be in _DEFINES, under DNA since that's where organ slots were
* Wrong math operation used
* Brains in MMIs no longer decay
* Removes redundant variable, and defibs no longer work on heart attacks caused by failing hearts
* Removes misleading comment
* init freezes organs in case organ crates are added, morgue corpses are frozen, removes adjustLiverLoss
* Removes random spaces, scanners check brain damage severity now
* Swaps numbers for defines, fixes brain surgery, rebalances coronary bypass bleed since that was insane last I tested it
* List change
* Runs off of an index instead of using cut
* Brains can be put into organ fridges
* Fixes minor type, hotfix for cloning problem
* Removes pointless check
* Demon hearts no longer decay
* Nightmare hearts no longer decay
* Removes istype() check on process, sets can_decompose instead
* Condenses organ damage report
* Removes organ failure messages
* Less organ damage spam, implements organ threshold messages instead
* Brain damage messages go to owner, not source
* Self-examine shows damaged organs
* Minor code cleanup, adds autodoc comments to the new procs
* Inverts standard organ vars to prevent random organs decaying, adds a few more autodoc comments.
* Merged the booleans into a set of flags
* Healthy living improves organ healing rates
* dunno why this didn't update
* my actions have consequences
* Sets ORGAN_SYNTHETIC for overlooked robotics organs
* Doubles heart decay time
* 3 minute heart decay
* Lobectomy/Coronary_Bypass heal more
* removes hivemind spells from the changes
Credits to Europaisch for help finding all the records stuff
Fixes a few issues I was not aware of with my initial PR
* Being agender is now a distinct DNA value (fixes agender spessmen
turning female when having their DNA referenced, like during cloning
and some rudimentary transformations)
* Neatens up preference code, more in line with previous code, fixes
an issue with male underwear not surviving preference loading and
defaulting to female underwear
* Allows agender spessmen to change their facial hair with mirrors
* Change medical, personnel, and security records from sex to gender
and add "Other" option (they currently display "plural" even for
agendered species like ethereals)
* The -san honorific now applies to plural gender instead of just
neuter with the Chinese Cartoons admin secret (highly important)
I have never really played genetics and only tested the DNA code with
cloning and rudimentary transformations while still in a body (which
causes it to reference the old body's DNA, like with cloning). Please
let me know if there's a better way to do this and/or if this is apt
to create issues.
About The Pull Request
This PR removes speech message and span hooks from dna, mutations, pierrot throat disease, species, tongues, masks, hats, held items, brain traumas and a carbon proc overload handling tonguelessness.
Tonguelessness is now handled by tongue removal registering for the speech signal and the hook being deregistered by having a tongue put in.
Also cleans up some /atom/movable/proc/get_spans() overloads that called the empty parent or overloaded the parent to do the exact same thing as the parent proc did.
Also cleans up calls to radio.talk_into() where the caller would often, as a result of copypasta, provide the proc with fresh copies of the proc's default values for proc args, and makes say_quote() better by giving it a default spans value so that none of the callers have to provide the same default one.
Why It's Good For The Game
Changelog
cl Naksu
code: Cleaned up saycode
/cl
* start with this
* oh man this looks so good
* hats are dead
* /obj/item/proc/speechModification is dead
* brain traumas and get_held_item_speechspans() are dead
* these should be static
* unfortunately we still need this
* /mob/living/carbon/treat_message(message) is kill
* clean up get_spans()
* dunk get_spans, modifies_speech for brain traumas, some superfluous static stuff
* move stuff around
* return values
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
* makes genetic meltdown a little more interesting
* uses SLIME toxin and maybe melting your skin doesnt kill
* adds more genemelt effects
* removes accidental snail
* fixes .dme
* dir to dirextion and splits the spawn into a seperate proc
* 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
GENETICS
The random hexadecimal rng game has been replaced with gene sequencing from goon.
Adds mutation activators and mutators
You can now store mutations
Everyone now has their own set of unique mutations
Limited mutations per person to 8 (including one always being monkey)
Adds race specific mutations (See fire breathing for lizads)
You can inspect discovered mutations, undiscovered mutations use an alias to recognize them by
Adds a sequence analyzer. Can be used to scan someones genes sequence. Useful for determing what mutations they can safely have and or collecting data for very difficult sequences
Adds mutation combining. It's currently only RADIOACTIVE + STRONG = HULK (So yes you will now need 2 mutations for to get hulk)
Adds several other mutations. Telepathy, firebreath, glowy, radioactive and strength
cl Time-Green
add: Goon genetics!
add: More mutations! Fire breath for lizards! Radioactive! Telepathy! Glowy! Strength, though its cosmetic and should be combined with radioactivity instead! Fiery sweat!
add: Adds void magnet mutation by @tralezab !
/cl
* refactors deathsounds, adds 2 new ones
- deathsounds are sounds played when *deathgasp is used, either manually or automatically
- deathsounds are a var on /mob
- made xenos use the var
- removed the hack for xenos deathsound in the deathgasp emote and made it use the var
- 2 new deathsounds: one for lizards, one for borgs
* fixes and balance
- alt species now get their deathsound properly and have it set in their species datum
- people who are silent (poisoned, mimes, or otherwise) wont make a deathsound
- people who have over 50 oxyloss when they die wont make a deathsound (to allow silent kills)
* addresses review
makes some comments prettier/better, drops a .loc
* new borg deathsound
with credits.txt
* moves simple animal death_sound to new deathsound
code for simple animal deathsound has been changed around in simple_animal.dm to tie it to deathgasp like everything else
* Catpeople are nyow a species
* Fixes a runtime
* Fixes the issues with being forced ears when you chose none
* Neko --> Felinid
* P2
* Update
* Working this time I promise