## About The Pull Request
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
## Why It's Good For The Game
No more error icons in SDMM and loadout.
## Changelog
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request

- Space Carps and Space Dragons no longer speak Common.
- Space Carps and Space Dragons now speak Carptongue, a language native
to Space Carps.
- Space Dragons also speak Draconic.
- Space Dragons can still understand common, they just can't speak it.
- Space Craps cannot understand common, unless they're a special carp
(Cayenne, Lia, Magicarps, those spawned from plushies)
- Ash Drakes and Ice Whelps also no longer speak Common, and instead
speak Draconic. They can still understand common.
- Carp Infusion now lets you speak and understand Carptongue.
- Fish Infusion now lets you speak and understand Carptongue.
- Fire Sharks now speak Carptongue instead of Common. They can still
understand common (to receive directions).
## Why It's Good For The Game
#89032 made me think "hey why CAN carps speak Common?"
So I thought "What if the Space Dragon spoke Draconic instead since it's
a big lizard"
But naturally the Space Dragon still needs to communicate verbally to
its carps and, well, carps aren't really lizards so they shouldn't get
Draconic right?
So I thought "Why not add a Fish language"
Now, various aquatic space creatures have a language that they can speak
between one another in privacy, while the Space Dragon can still
communicate to the crew for gimmicks via the curator (or draconic if
they want to speak to lizards)
## Changelog
🆑 Melbert
add: Adds Carptongue language, spoken by Space Carps.
del: Space Carps no longer speak or understand Common. Special carps
like Cayenne and Lia can still understand common.
add: Space Dragons can speak Draconic and Carptongue.
del: Space Dragons no longer speak Common. They can still understand it.
add: Ash Drakes and Ice Whelps now speak Draconic.
del: Ash Drakes and Ice Whelps no longer speak Common. They can still
understand it.
add: Fire Sharks now speak Carptongue.
del: Fire Sharks no longer speak Common. They can still understand it.
add: Fish and Carp Infusion now grant Carptongue, letting you speak to
(and understand) Space Carps.
add: Sleeping Carp grants you Carptongue, but as most human tongues
can't speak it, you'll only be able to understand Space Carps unless you
steal a fish tongue.
/🆑
## About The Pull Request
Wow we're finally here. This turns carp into Basic Mobs instead of
Simple Animals.
They use a variety of behaviours added in previous PRs to act in a
marginally more interesting way than they used to.
But don't worry there's still 2 or 3 PRs to follow this one until I'm
done with space fish.
Changes in this PR:
Carp will try to run away if they get below 50% health, to make use of
their "regenerate if not attacked" component.
Magicarp have different targetting behaviour for spells depending on
their spell;
- Ressurecting Carp will try to ressurect allied mobs.
- Animating Carp will try to animate nearby objects.
- Door-creating Carp will try to turn nearby walls into doors.
You can order Magicarp to cast their spell on something if you happen to
manage to tame one.
The eating element now has support for "getting hurt" when you eat
something. Carp eating can rings and hating it was too soulful not to
continue supporting.
## Why It's Good For The Game
Carp are iconic beasts and I think they should be more interesting.
Also we just want to turn mobs into basic mobs anyway.
## Changelog
🆑
add: Carp will now run away if their health gets low, meaning they may
have a chance to regenerate.
add: Lia will now fight back if attacked instead of letting herself get
killed, watch out!
balance: Magicarp will now aim their spells more intelligently.
add: Tame Magicarp can be ordered to use their spells on things.
refactor: Carp are now "Basic Mobs" instead of "Simple Mobs"
fix: Dehydrated carp no longer give you a bad feeling when they're your
friend and a good feeling when they're going to attack you.
balance: Tamed carp are now friendly only to their tamer rather than
their whole faction, which should make dehydrated carp more active.
Order them to stay or follow you if you want them to behave around your
friends.
/🆑
Makes the code compatible with 515.1594+
Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword
And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.
@tgstation/commit-access Since the .proc/stuff is pretty big change.
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
About The Pull Request
Reorganizes the entire icons/mob folder.
Added the following new subfolders:
nonhuman-player (this was initially just called "antag", but then I realized guardians aren't technically antags)
simplemob
silicon
effects (for bloodstains, fire, etc)
simplemob/held-pets (for exactly that -- I wasn't sure if this should go in inhands instead)
species/monkey
Moves the following stuff:
All human parts moved into species, with moth, lizard, monkey, etc parts moved to corresponding subfolders. Previously, there were some moth parts in mob/species/moth, and others just loose in mob. Other species were similar.
icemoon, lavaland, and jungle folders made into subfolders of simplemob
All AI and silicon stuff, as well as Beepsky et al. into the silicon folder, simplemobs into the simplemob folder, aliens into the nonhuman-player folder, etc.
Split up animal_parts.dmi into two bodyparts.dmi which were put in their respective folders (species/alien and species/monkey)
Code changes:
Filepath changes to account for all of this
Adds a check when performing surgery on monkeys and xenos, because we can no longer assume their limbs are in the same file
Turns some hardcoded statues and showcases that were built into maps into objects instead
Things I'd like to do in the future but cant be assed right now:
Remove primarily-antag sprites from simplemob/mob.dmi (Revenant, Morph, etc.) and put them in the nonhuman-player folder
Split up mutant_bodyparts.dmi into different files for Tizirans, Felinids, monkeys, etc and put them in their own folders. Those may have once been meant primarily for mutated humans but that's now how they're being used right now.
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)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm
We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.
There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.
Hi codeowners!
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
About The Pull Request
This PR ports Baystation color carps. In short, normal carps can now spawn in variety of colors,
This only affects normal carps, not special ones like magicarps or megacarps, these retain their own unique sprite. There are also some pretty rare color variant for carps and our friendly Syndicate carp Cayenne has increased chance to get it.
Why It's Good For The Game
Better aesthetics and immersion.
Changelog
cl
imageadd: Normal carps now spawn with a random color! There might even be some really rare color variant.. try asking Cayenne about it.
/cl
* New squeaky datum and plushies
new plush subtype
clown shoes, bike horns, and mice slightly changed to use the datum
* narsie and ratvar plushes
* fixes duplicate obj/item/attack_self()
and other misc requested changes
* moves the sounds into initialize
* adds gauze reaction, partially refactors sink water interactions
* Hey guys scarce here
Apparently it takes bandit more than 3 days to make one simple change
* Update watercloset.dm
asdf
* Makes qdeleted and qdestroying macros
* Makes QDELETED and QDESTROYING uppercase
* Swap qdel checks istype's for != null's
* Fix it
* How was this missed?
* Beginning of new side-tag
First bit of code to implement the Syndicate Lawyer, a single-man antag
with a plethora of abilities and armor to help him including:
>Turning unimplanted crew into gang members
>Disguising himself as a crew member to implanted folks
>Ripping open doors and blast shields
This commit includes:
>Rudimentary event code
>WIP ganger code
>Clothing defines
And modifies the default gang_datum, which will be relevant when ganger
code is finished.
* Makes Dehydrated Carp more malleable for fun
Allows admins to change what mob spawns from dehydrated carp via var
editing.
* removes bloat
Wew this commit history will look wack
* wew
* wew number 2
* Revert "wew"
This reverts commit 75dce9ec56bc8c69c1e7a338d98d4f9e64f3cf9d.
* Revert "removes bloat"
This reverts commit 55a456593709d67a030f15c5b10e5d9aa6042f87.
* Revert "Revert "removes bloat""
This reverts commit 1994fdd08ecb51cd1fd9e09973954c9800ed0f54.
* makes codebase great again
* Final destination for codebase fixes
WEW LADS
* Fixes compiler errors
* Actually properly fixes compile errors
* Fixes missed incorrect variable
This is starting to get ridiculous for a simple feature
* This is starting to get embarrassing.