<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Added new mechanics or gameplay changes
add: Added more things
del: Removed old things
qol: made something easier to use
balance: rebalanced something
fix: fixed a few things
sound: added/modified/removed audio or sound effects
image: added/modified/removed some icons or images
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
config: changed some config setting
admin: messed with admin stuff
server: something server ops should know
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
This uses a browser skin element to spy on the command bar and report
back to the server what verb is currently in it and how many characters
it has. it skips reporting if the text hasn't changed since the last
report.
im intentionally not providing the full text in the command bar to the
server, while designing the system so new verbs can be given typing
indicators by editing DM code, not html code.
The report rate is once a second but this could be lowered or tweaked.
Both the tgui say window being open and this system being active because
the command bar starts with `say "` is undefined behavior, mostly the
first one to end the indicator will just freeze indicators for the other
one until it too ends its current indicator session.
The system waits until something besides the `"` is in the argument to
say.
It is enabled for verbs `say`, `me`, and `whisper`.
I don't actually know if this is the case for tgui say. this is a one
line tweak anyways so let me know if this should be changed.
[(This pr closes a
bounty)](https://tgstation13.org/phpBB/viewtopic.php?p=726634#p726634)
🆑 MrStonedOne & Lilah Novi
add: Say commands typed in the command bar now trigger typing indicators
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
We needed to replace our maptext font. Closes
https://github.com/tgstation/tgstation/issues/73002
Replaced with a pair of new fonts, made some improvements and fixes
while we're at it.
- Two new maptext fonts: Grand9K and TinyUnicode
- These two scale cleanly with BYOND icon sizes, so no antialiasing of
already tiny fonts making it look bad when enlarged on screen
- Fixed size fonts now have metrics to be used properly on overlays
(such as status display) where a client (a requirement for MeasureText)
is not feasible
- VCR OSD Mono still here, usable as a variable size font with larger
text
- Synchronizes status display scrolling speed between lines
- Fixed special maptexts for yelling, clown, redtext, greentext
https://github.com/tgstation/tgstation/assets/83487515/7dbaf1d1-f1d5-46ff-8903-d95cab059ed8
## Why It's Good For The Game
Maptext looks like crap if you're one of the players who no longer have
the old font. Even if you do have Small Fonts, this looks better.
## Changelog
🆑 LT3
refactor: Refactored maptext (those floating words)
fix: Fixed special chat bubbles for yelling, clown, redtext, greentext
fix: Fixed alignment of status display text
code: Status displays now synchronize their message lines when scrolling
/🆑
## About The Pull Request
I think it was previously named "goon" in relation to "goonchat", but
that was phased out three years ago, so it's just confusing to have a
"goon" folder especially when historically those tend to refer to
specialized folders meant for containing content under a non aGPL
license
However, everything in this folder appears to just be styles ported from
goonchat when tgchat was created, which is fine, but it's just confusing
since none of the stuff is licensed under anything from goon- just an
odd name to my eyes.
## Why It's Good For The Game
It's a much more fitting name as to what these files specifically
pertain too, rather than be an arcane reference to a system that has not
been used in quite a while...
## Changelog
nothing that concerns players
# Requires https://github.com/tgstation/tgstation/pull/72320
## About The Pull Request
https://user-images.githubusercontent.com/35135081/209700892-e54be6cf-d18c-4d12-acd1-e5eb46e9d82d.mp4https://user-images.githubusercontent.com/35135081/209700911-751b8a0e-d770-49fa-a6eb-ce50aa0fa670.mp4
---
Adds a system for tutorials that:
- Are contextually given
- Are not given again after completion
- Can optionally not trigger for anyone who first played before a
certain date
Uses this system for a tutorial for switching hands/dropping items. This
tutorial is triggered when you try to click on an item with another
item, and `afterattack` return FALSE. In order for this to work as
smoothly as possible, I'm going to open a separate PR that cleans up the
`afterattack` on everything to either return TRUE/FALSE.
## Why It's Good For The Game
SS13 is an extremely confusing game, being able to do tutorials in a
non-intrusive way (like a separate tutorial mode) is nice.
The system in place is going to be perfectly usable for introducing
mechanics to both fresh players and experienced players alike (such as
for future content).
## Changelog
🆑
qol: New players will now get a contextual tutorial for how to switch
hands and drop items.
/🆑
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
## About The Pull Request
Blob UI refactor that started from sorting blobs into their appropriate
orbit section.
Original issue:
Permanently hostile antags like blob can produce minions, but these lil
guys don't actually get an antag datum and thus don't get sorted into
the proper section in the orbit menu.
Now:
- Blob minions also go in "Biohazards" section of orbit UI
- Blob helper text is now an antag info UI
- Blobs get their own text span type instead of boring big chat
- Blob minions get actual objective: Protect the core
<details>
<summary>View the OUTDATED blob antag info screen:</summary>

</details>
## Why It's Good For The Game
Orbit menu will now properly sort player controlled blob minions into
the biohazard sections, making it easier to distinguish the bad guys
Blob antag info is a little easier to read, much more in line with the
other antags
## Changelog
🆑
fix: Blob minions are now sorted into biohazards in orbit UI.
add: Blobs now get antag info screens.
add: Blob minions get objectives (protect the core!).
add: Adds blob style text for victories, etc.
refactor: Refactors some blob & blob minion code.
/🆑
About The Pull Request
Moves the Help menu to the end of the menu bar, like every app that has ever had a Help menu.
image
Makes Hotkeys Help actually do something, given the verb that menu item calls was removed 3 years ago.
It now show all of your hotkeys, as set in preferences, in a TGUI table. They're in Binding sort order, as opposed to the preferences window, which may be of use to people.
image
Why It's Good For The Game
halp how do i standup
Changelog
cl
add: Re-added the Hotkeys-Help verb, and linked the Hotkeys menu item to it.
qol: Move Help menu to the end of the menu bar.
/cl
About The Pull Request
Same vein (although a lot larger than) #64118
On the tin. This moves them into their own folders and the paths were updated in the code.
Why It's Good For The Game
It's not exactly good visuals for stuff that can be placed elsewhere to just be sitting in the root. Organization is nice.
Changelog
cl
fix: For those of you into code, some stuff with the icon pathing has been shuffled around so it's no longer in the roots of the icon/ folder. If you aren't into code, that's fine too.
/cl
* Optimizes MouseEntered
Moves status_bar_set_text into the interface definition itself. We don't need to use MouseEntered for this
anymore, since lummy added an on-status paramerter to the main window This saves us a little under half our cpu
time
Gets rid of a needless ?. check, caches a datum var access, inlines a text define.
These all lower the cost of MouseEntered to some degree, though to be perfectly honest with you I really think
we should be doing everything on the client side.
The only reason I'm not moving screentext over there too is because there are plans to expand on screentips to
be contextual, which wouldn't be possible. Though now that I think about it maybe that's not even true....
Anyway, I'm doing what I can to not change behavior for now. Really kinda cheesed about this though.
* Some people are saying this (Cleans up the html a bit, tnx mothman)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
About The Pull Request
Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.
Splits game preferences into its own window.
Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.
This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.
Fixes#60823Fixes#28907Fixes#44887Fixes#59912Fixes#58458Fixes#59181
Major TODOs
Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc
A lot of specialized testing so that people's real data don't get corrupted
Changelog
cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
* FINALLY IT IS DONE FUCK
* tip of the round into ooc
* adds cyopod chat messages to the info chat filter
* last one I promise probably, mob spawner messages to info filter
* holoparasite, round will start in x and keybinding conflict to respective filters
* removed motd from constants, made it infoplain surrounded instead
* changed info to infoplain
This pull request converts the changelog to TGUI.
Note: Old unused changelog files will be automatically removed on the next changelog run
Why It's Good For The Game
More consistent UI, ability to view all historic logs.
Changelog
cl Celotajs
refactor: Converted the changelog popup to TGUI
/cl
This pull request adds a map loader as well as new maps to CTF. When a game starts a CTF map will be selected at random and will be playable by ghosts.
As well as this new functionality CTF now fully supports 4 teams. A green and yellow team have been added complete with both standard and instagib gear.
At current five maps are planned:
Classic - the original map we all know and love
Four Side - A four team CTF map where all teams compete over one flag
Downtown - Terrestrial city themed map
Limbo - Wizard themed map featuring portals and uses KOTH rather than CTF
Cruiser - Space themed map utilizing the powerup system
Random maps are selected on game load
Support for four teams added
Why It's Good For The Game
CTF has been more or less the same on the surface since its creation. This PR allows for some much needed map variety which will increase replay value. CTF is far more regularly played then mafia due to its fast rounds and common use during round end delays and I believe that it deserves a boost in content.
Changelog
cl
add: CTF can now selects a random map at game start
add: CTF now supports four teams
add: Gear for yellow and green CTF teams has been added
add: CTF ID cards for all 4 teams have been added - courtesy of maxymax13
add: a new CTF map, Four Side has been added
add: a new CTF map, Downtown has been added
add: a new KOTH map, Limbo has been added
add: a new CTF map, Cruiser has been added
fix: KOTH capture points retain their sprites after being claimed
/cl
About The Pull Request
This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:
Disarm and Grab intents have been removed.
Harm/Help is now combat mode, toggled by F or 4 by default
The context/verb/popup menu now only works when you do shift+right-click
Right click is now disarm, both in and out of combat mode.
Grabbing is now on ctrl-click.
If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)
Minor interaction changes:
Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game
Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.
As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.
As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.
In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.
The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog
cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
The emote CSS class was no longer in use, it has been unitalicized and made into the actual emote class, back into local.
A CSS class for info has been created which has no special CSS.
The who verb has been put into info. (infoplain CSS class)
PDA message receiving has been put into info (PDA message sending was already in info). (infoplain CSS class)
Supply radio has been properly placed into radio.
Service radio has been properly placed into radio.
Binary talk has been placed into radio.
A CSS class for minor announcements has been created.
Minor announcements (shuttle purchases, head of staff office announcements, silicon announcements, etc) have been placed into radio (major announcements are already in radio). (minorannounce CSS class)
Fixed and improved the bug report template use when the 'Report Issue' button is used in-game. It now uses the correct template location, as well as automatically filling in the round ID and testmerges.
We also now show [s] PRs that are testmerged, as ok-d by oranges, as this is an unofficial label that anyone can apply and doesn't necessitate hiding. It also makes debugging rounds where this was present but not reported more difficult.
Adds TGUI-based alerts to replace the old tgalert system. Replaces all uses of tgalert with tgui_alert except for one, the 'Report Issue' button, as people were (understandably) concerned that this button using tgui will prevent a tgui bug from being easily reported.
These windows have a nice little progress bar indicator of how much time they have left, and will automatically close themselves after this time elapses.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Optimizes stat panel code for better performance, including icon caching and removing some unnecessary processing
Also fixes#53432fix#53381fix#53724
Changelog
add: icons are back on alt clicks
fix: horrible performance from alt clicking turfs with multiple objects
tweak:browser should notify the SS when it's ready to receive data
* Update statbrowser.html
* Apply suggestions from code review
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* hidden = TRUE
* almost ready
* Browser should notify when ready to receive data
* Apply MSO's suggestions
* reset cache if something in it gets deleted
* Fix runtime
* fix my stupid code
* send href_token when adding admin tabs
* fix an issue with cyborg suit topic
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
By clicking yourself with grab intent while targeting a limb of yours that's bleeding, you'll "grab" onto it with your free hand to apply pressure. This takes 1.5 seconds to do, takes up a hand while you do so, and applies a slowdown while you're holding it. In return, that limb will bleed 30% less while you're holding it (though it won't clot any faster). This stacks with the 25% reduction in bleeding you get from being horizontal, so laying down clutching your gushing gut while waiting for help is now both thematic and viable!
Other fixes and changes
I also made some other changes to wounds of various importance. Here's a quick list
-Most wound treatments now respect thick clothing/materials, so you can no longer suture slashes through spacesuits.
-Using sutures on slashes and pierces now actually use up sutures, and regen mesh must be opened to treat wounds with
-Infectious zombies (romerol) can now be wounded as intended
-Coagulant has been nerfed again to reduce bleeding less for every wound it's reducing bleeding on. This'll still need more love and attention later, but I need to find a good middle point where medipens are good for bleeding in an emergency without being a way to sidestep any and all bleeding wounds in one go.
-I added a recipe for improvised coagulant in the Wounds 2 PR using baked pulped banana peels and salglu, but then realized that recipe sucked and was overly complicated. You can now drink straight up ground/juiced banana peels to help close up slashes and piercings. Yuckm!
-You can no longer repeatedly disembowel people who have already lost their internal organs
-Whetstones now make things edged sharp rather than pointy sharp, fixing a carryover from when sharpness = 2 used to be accurate sharpness. This'll have the effect of making sharpened weapons less sucky at chopping people apart since slashing is usually more devastating than piercing
I've also made a few tweaks to scars, mostly making them a bit smaller. It now takes twice as much scar severity to reach "absolutely fucked up" when examined, and the other steps have been raised a few points as well. Minor scar examine text is a tad smaller text-wise, and the precise locations for the scars are a bit more procedural as well (more location modifiers like upper/lower/inner/outer wrist/whatever). These changes will hopefully add a bit more variety to the scarring you see on random crew members, since it's pretty easy to hit max examine severity as is.
Rewrites the asset_cache system to handle sending assets to a CDN via a webroot.
see https://github.com/MrStonedOne/tgstation/blob/asset-cdn/code/modules/asset_cache/readme.md
Fixed a lot of bugs with assets, removed some dead code.
Changes:
Moved asset cache code to transport datums, the currently loaded one is located at SSassets.transport, asset cache calls made before the config is loaded use the simple browse_rsc transport.
Added subsystem call for when the config loads or reloads.
Added a webroot CDN asset transport. assets are saved to a file in a format based on the file's hash (currently md5).
Assets that don't use get_asset_url or get_url_mappings (such as browser assets referred to by static html files like changelog.html or static css files) can be saved to browse_rsc even when in cdn asset mode by setting legacy to TRUE on the datum returned by register_assets
Added a system for saving assets on a cdn in a hash based namespace (folder), assets within the same namespace will always be able to refer to each other by relative names. (used to allow cdn'ing font awesome without having to make something that regenerates it's css files.).
The simple/namespaced asset cache datum helper will handle generating a namespace composed of the combined md5 of everything in the same datum, as well as registering them properly.
Moved external resource from a snowflake loaded file to a config entry, added it to resources.txt
To ensure the system breaks in local testing in any situation that wouldn't work in cdn mode, the simple transport will mutate the filenames of non-legacy and non-namespaced assets and return this with get_asset_url.
Simple transport's passive send of all roundstart assets to all clients is now a config that defaults to off. this is to break race conditions during local testings from devs accidentally relying on this instead of using send() properly.
cl
refactor: Interface assets (js/css/images) can now be managed using an external webserver instead of byond's one at a time file transfer queue.
admin: Adds admin verb toggle-cdn that allows admins to disable the external webserver asset transport and revert to the old system. Useful if the webserver backing this goes down (thanks cloudflare).
config: New config file, resources.txt, (must be loaded by an $include statement from the main config)
server: The external_rsc_urls.txt config has been moved to the main config system.
/cl
Porting notes:
Interface webpages must refer to their assets (css/js/image/etc) by a generated url, or the asset must register itself as a legacy asset. The system is designed to break in localtest (on simple/legacy mode) in most situations that would break in cdn mode.
Requires latest tgui.
The webserver must set the proper CORS headers for font files or font awesome (and other fonts) won't load.
/tg/'s webserver config: https://gist.github.com/MrStonedOne/523388b2f161af832292d98a8aad0eae
* pierce the heavens
* starts doing projs
* continue pierce
* before armor
* before sharpness redefine
* rename sharp defines, before further implementation
* finishing undoing atk_type back to sharpness
* neatens up sharpness defines, FALSE -> SHARP_NONE
* more piercing, removes brute damage bleed, bubblegum no longer wound
* starts letting embeds get in on the fun
* half with embed
* work on dismembering
* continued embed work
* more moving bandaging to limbs
* more dismemberment work
* removing embed pierce stuff
* tweaking bullets
* more docs and work on dismemberment
* spans, piercing, guns
* dismemberment and scar fixes
* bee changes
* bullets embedding
* more bullet and dismember work
* dismemberment, surgery, piercing, formaldehyde,
* pleases travis
* pierce smite
* nicer on blood
* Auto stash before rebase of "tgstation/master"
* more neatening
* wounds only consider up to 35 damage, wounds on l6 and 762
* updates hulk
* balance
* defines
* lower slug to 50 brute to accommodate wounds
* adds differentiation for having flesh/bones/both in mobs
* moves scar descs to json, renames organic_state
* excises removed healing skill
* fixes logs, inconsistencies, some balance changes
* untab
* slight compress
* a
* kills pointed global list
* dmdoc
* halfway through roh
* finishes roh review
* okay NOW i finished roh's reviews
* roh roh roh your boat
* gently down the stream
* global lists
* list ops, fix scanner for bone gel improvised fix
* travis moment
* sounds added and moved
* pellet clouds can join the fun fully, slight gun balancing for wounds
* doc moment
* unconflicts myself
* update hulk
* Update code/_onclick/item_attack.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* crying ascii face
* final rohview
* oops
* final final
Co-authored-by: Rohesie <rohesie@gmail.com>
* Part 1: Arcane is challeneged to rewrite all of economy at 4am on a wednesday, accepts
* Miasma? DUNKED
Bounties? CHUNKED
Hotel? TRIVAGO
* End of day... 2? 3? lockdown has ruined me
* Day 3. I cannot unto bogdanoff. Send help.
* So far so good.
* Day 4, in the ghost house. I've resprited a beloved machine with soul in it. There is a chance, I am losing my mind. Sometimes I hear the words, "When is economy done, arcane", and I look over my shoulder, and oranges isn't there, because he lives in New Zeland. Probably.
* We'll throw the technodes and mapchanges in too.
* Okay lets keep this a friendly debug item then
* yeah on second thought lets not make a precision testing instrument on a 50% success ratio.
* Newscaster updates.
* TGUI Rebuild 1 start counting fokes
* Runtime BEGONE FROM ME, fckn typepaths
* Cleans up autodocs, and other areas
* Updates tgui because I feel nothing anymore
* Recompiling tgui for that green check
* dunks the whole mint out of the code, get that hothead outta here.
* Green checkmark daily update.
* Should be decent from here.
* Resolves machine_design conflict
* Rebuilds TGUI again for the epic pogs
* Sweeping changes 2: See additional changelog
* Haunting insurance plus changes the define comment.
* Rounded vending prices, made bounties appear on examine, polish
* Atmos tanks now specify their mole requirements.
* TGUI 4.0 Updated.
* ACTUALLY updates to TGUI 4.0 standards.
* ThE bUiLd DiFfErS fRoM oUrS
* Ah, I didn't see the testmerge get re-upped.
* TGUI Rebuild.
* Shuffles some security-assistant bounties around
* Datumizes all uses of change_view
* Cleanup and helper procs
* tweaks values to match the format, hint hint, (value - 0.5) works just fine
* And there's the rest
* woop, braindamage
* and one more
* fuck you menu file
* woops
* we should apply that
* fixes tooltip drift, thank you goon coders
* you can shake but you can't zoom
byond is injecting html to load js shims into json files returned by xhr. this will get fixed in a later byond release, but this disables the functionality for the asset cache skin control today
* first-version
* let's do those recommendations first
* color moment
* reorganization, prefs
* certified layer moment
* virtual speakers BEGONNE
* remove naughty bits, better sizing
* gimme the message mode
* rename that pesky pref and hide chat bubbles
* exponential decay moment
* async moment
* fixes
* fixes
* the players have decided they don't want to hear themselves on radio
* Fix bug with holograms incorrectly rendering messages
* rohesie's suggestion
* Color tweaks
* hallucinating now shows message properly
* pref moment
* updates
* rohesie's suggestions
* fix moment number 5
* less smelly more epic
* unfix the fixes and refix them
* a conscious change
* return of the prefs
* 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
* Map initial
* removes abstract
ok
* cleanup+Ninja fixes
* Update map_popups.dm
Fixes some runtimes.
* Update map_popups.dm
* coded cringe
gonna lose
* WIP
Adds spyglasses, fixes a pretty major bug.
* more bugfixes
* more bugfixes
* fixes the lighting issue.
* fixes tracking/reorganizes it
just need to do the polishing now. I'll do it when I wake up.
* fixes and shit
should be good to go now. didn't impliment the cloning, mostly because I'd feel it'd be kinda OP.
* feedback for dummies
Fuck the entire "For Dummies" series of books seriously the way that dumb fucker on the cover looks pisses me off it's like his eyes are some shitty anime girl but without any of the ass or thighs present on normal anime girls, literally all the minuses without a smidgen of a plus god FUCK I hate him. He knows it too, the smug bastard is smiling. "tee hee" he thinks, point up at some text we OBVIOUSLY can't see without noticing his smug ass mentioning it. "What a dumbass, can't even see the text" well guess what, idiot. I CAN see it, and I hate you all the more for it.
* ‼️
* background
remember when this was just to get a hacktoberfest tshirt lmao