## About The Pull Request
### Adds job palette system to loadout
Loadout items now have a system for coloring the equipped item based on
job palettes.
Job palettes are generically defined but can be overriden on a per-job,
per-department basis for subtypes.
### Adds overalls to the Loadout
These use the job palette system.
<img width="956" height="954" alt="image"
src="https://github.com/user-attachments/assets/7cc03eec-11c6-48e1-ace5-7097bf820a57"
/>
Some notes:
- Assistant always picks black. Initially I was going to go full grey,
but black fits grey and colored jumpsuits.
- Clown is a bit of a sin, but it's kind of unavoidable.
- Jobs with suit storage items will attempt to relocate them - Either to
the backpack, belt slot, or one of the two hands. If all of these fail
it'll just delete the suit storage item.
- Before anyone says "The botanist color doesn't fit!!", that's
LITERALLY the color we already give them in their vendor
## Why It's Good For The Game
The job palette system lets us add more variety to loadouts, opening up
player customization without harming the indetifiability of jobs at a
glance.
In this case, overalls are a retro sci-fi stable (see: Paranoia ttrpg)
but we couldn't hand them out willy-nilly as they were fully recolorable
- A scientist could have bright red overalls, looking more like a
security officer. But the palette system gives the scientist a dark
purple set of overalls, which makse them very obviously scientist.
Colors are subject to change.
## Changelog
🆑 Melbert
add: Adds job-colored overalls to the loadout
/🆑
## About The Pull Request
Changes human name to update whenever anything that could result in
their visible name changing occurs, such as changing IDs, equipping
gasmasks, picking potted plants, etc. Currently name updates occur every
``Life()`` tick and in a few "special" cases, which causes a lot of name
changes from sources such as equipment to not apply until the mob ticks,
and makes us waste a tiiiny bit of CPU time on name updates.
I've also slighly cleaned up human /Life() and made species'
``spec_life()`` not run when the mob is dead, as it was causing certain
unintended interactions, such as slimepeople regenerating blood while
dead.
## Why It's Good For The Game
Microoptimization, ensures that correct names are always used (in case
something could update their name but the mob hasn't ticked yet), plus
its just a cleaner implementation
(cherry picked from commit 87e1ef6f64)
# Conflicts:
# code/game/data_huds.dm
## About The Pull Request
Changes human name to update whenever anything that could result in
their visible name changing occurs, such as changing IDs, equipping
gasmasks, picking potted plants, etc. Currently name updates occur every
``Life()`` tick and in a few "special" cases, which causes a lot of name
changes from sources such as equipment to not apply until the mob ticks,
and makes us waste a tiiiny bit of CPU time on name updates.
I've also slighly cleaned up human /Life() and made species'
``spec_life()`` not run when the mob is dead, as it was causing certain
unintended interactions, such as slimepeople regenerating blood while
dead.
## Why It's Good For The Game
Microoptimization, ensures that correct names are always used (in case
something could update their name but the mob hasn't ticked yet), plus
its just a cleaner implementation
<!-- 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
So yesterday I've spotted that we had wrong SLOTS_AMT value set, and
went a bit down a rabbit hole and found how abhorrent our
ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK usage is. They're not real
inventory slots, but just "hints" at items being located in backpacks or
belts, or instructions to put an item into a belt/backpack. This PR
rewrites all usages of them as "hints", and adds an equip_to_storage
proc used to equip an item into a storage positioned in a certain slot,
so ``equip_to_slot_if_possible(item, ITEM_SLOT_BACKPACK)`` is now
``equip_to_storage(item, ITEM_SLOT_BACK)``
## Why It's Good For The Game
Its really stupid and we shouldn't have those as slot flags,
ITEM_SLOT_HANDS at least makes sense but those two are just absurd.
Should make equipping things into non-backpack storage a bit easier too,
in case we end up going through with the idea of suit/uniform pockets
being a major part of player inventory.
## 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. -->
🆑
refactor: Refactored how backpack and belt contents are handled in mob
inventory code, report any issues with lingering item effects or
inability to equip things into them!
/🆑
<!-- 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. -->
<!-- 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
So yesterday I've spotted that we had wrong SLOTS_AMT value set, and
went a bit down a rabbit hole and found how abhorrent our
ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK usage is. They're not real
inventory slots, but just "hints" at items being located in backpacks or
belts, or instructions to put an item into a belt/backpack. This PR
rewrites all usages of them as "hints", and adds an equip_to_storage
proc used to equip an item into a storage positioned in a certain slot,
so ``equip_to_slot_if_possible(item, ITEM_SLOT_BACKPACK)`` is now
``equip_to_storage(item, ITEM_SLOT_BACK)``
## Why It's Good For The Game
Its really stupid and we shouldn't have those as slot flags,
ITEM_SLOT_HANDS at least makes sense but those two are just absurd.
Should make equipping things into non-backpack storage a bit easier too,
in case we end up going through with the idea of suit/uniform pockets
being a major part of player inventory.
## 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. -->
🆑
refactor: Refactored how backpack and belt contents are handled in mob
inventory code, report any issues with lingering item effects or
inability to equip things into them!
/🆑
<!-- 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. -->
## About The Pull Request
Adds the funny nanite blob dudes from Vigro code into the game. It's
more of a port of the idea since they're coded from the ground up. They
will be more of a utility focused species then a combat focused species.
**They are fragile.**
- Eats metal. You need metal to live and you need metal to heal.
- Healed by materials. You feed Proteans metal to heal them.
- Difficult to kill, but extremely fragile. They are considered a
deathless species but they are stuck in their suit if they die. **You
have to order a new refactory from cargo to revive them**
**Order Refactory > Screwdriver suit > Insert refactory > Wait 5
minutes.**
- Easily dismembered. They have 30 seconds to recover their limbs and
pop them on or they will melt into nothingness. Can do a lengthy heal
which replaces missing limbs and easy to replace organs.
- Without a refactory, you will wither away.
- Without an orchastrator, you will have a lot of issues moving.
- You can lock your suit on someone. (OOC escape will work)
- You can assimilate modsuits.
- [x] OOC escape
- [x] Suit Transformation fixes
- [x] Modsuit Assimilation
- [x] Ensure organs are working
- [x] Species info and lore
- [x] Antag Proteans
- [x] Custom damage. Disable various surgeries.
- [x] Testing, polish, feedback.
- [x] Runtime and CI fixing.
- [ ] Live testing and balance.
## Why It's Good For The Game
This was the second to top vote on species people wanted to see added
and this is more custom mechanics then what is just a human reskin.
## Proof Of Testing


## Changelog
🆑 StrangeWeirdKitten, Majkl-J
add: New species: Proteans
/🆑
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: aKromatopzia <94389683+aKromatopzia@users.noreply.github.com>
Co-authored-by: Jinshee <96621959+Jinshee@users.noreply.github.com>
Co-authored-by: Jinshee <manastra2536@gmail.com>
Co-authored-by: JustMeTheIInd <145101584+JustMeTheIInd@users.noreply.github.com>
Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com>
Co-authored-by: Odairu <39929315+Odairu@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
## About The Pull Request
Fixes issues with var typing and proc arguments, discovered using
OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd
upstream yet).
## Why It's Good For The Game
Codebase maintenance.
## About The Pull Request
On a downstream, we have an antagonist, that is a less competent
wizards. This antagonist's preview outfit has a beer bottle in their
hand, which has caused runtimes, as the bottle did not have any reagents
instantiated, and it tried check its length for sloshing. After putting
in a check for the `initial` argument of `on_equip`, I have noticed that
the problem goes deeper: the various procs that handle putting something
in your hand do not pass along if the items is put in your hand as a
preview or not. This PR adds a new optional var to these procs, ensuring
that unwanted behaviour during previews won't trigger.
I also swapped `visualsOnly` to snake case, as it looked inconsistent
with the rest of the code style.
## Why It's Good For The Game
Making the argument that ensures avoiding side effects during previews
work with all kinds of items is good.
## Changelog
🆑
fix: if an outfit puts a reagent container in the preview dummy's hand,
it will not try to slosh
code: outfits putting items in your hand will respect the visual_only
argument
/🆑
3591 individual conflicts
Update build.js
Update install_node.sh
Update byond.js
oh my fucking god
hat
slow
huh
holy shit
we all fall down
2 more I missed
2900 individual conflicts
2700 Individual conflicts
replaces yarn file with tg version, bumping us down to 2200-ish
Down to 2000 individual conflicts
140 down
mmm
aaaaaaaaaaaaaaaaaaa
not yt
575
soon
900 individual conflicts
600 individual conflicts, 121 file conflicts
im not okay
160 across 19 files
29 in 4 files
0 conflicts, compiletime fix time
some minor incap stuff
missed ticks
weird dupe definition stuff
missed ticks 2
incap fixes
undefs and pie fix
Radio update and some extra minor stuff
returns a single override
no more dupe definitions, 175 compiletime errors
Unticked file fix
sound and emote stuff
honk and more radio stuff
* Wardrobe preloads backpack contents (#85945)
## About The Pull Request
`backpack_contents` is a list of typepaths, so this type definition
means this loop is doin' nothing. 3 year old bug
* Wardrobe preloads backpack contents
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Adds three new deathmatch maps.
### Important nonDM Balance Changes
Cult daggers fit on belts.
Heretic blades fit on belts.
Veil shifters fit on belts.
I really don't know why these didn't, it makes inventory management
rather annoying at times. It also screwed my loadouts over.
Cursed Blades fit on cult robes. They're cult equipment after all.
Bronze suits fit toy watches!!
### Ragnarok

A vicious battle in the jungle, between the three major religious sects:
Prove your deity's might! And try not to upset any primates. Or fall
into the chasm.
Going clockwise:
**Cultist Invoker**: Wielding a mirror shield, shielded robes, a sword,
and some bolas, this cultist has a 'well-balanced' set of equipment to
annihilate their opponents.
**Cultist Artificer**: This set harnesses the blood magicks - with
spells of stunning, blood rites, and ranged hallucinations, with a
wicked Cursed Blade and Veil Shifter as implement, and Berserker Robes
to finish the look.
**Holy Crusader**: Nullifying most, but certainly not all, of the
fearsome arsenal of the opponents with the null rod at their belt, the
Crusader packs a dangerous claymore and armor to protect them from the
demons.
**Rat'var Apostate**: Hey, what's that guy doing there in the dark? They
don't have any magic because their god is Fucking Dead, but they're
still going to show up for a token effort. Good luck!
**Heretic Scribe**: This mad soul wields an antique rifle and an
assortment of other dangerous relics, with a set of magic geared towards
staying far apart, picking enemies off from range and evading their
attacks for the final blow.
**Heretic Warrior**: With the deadliest of Mansus Magic at their
disposal, this warrior is only limited by their ability to juggle all
their spells at once - don't get overwhelmed sorting your spells while
an Invoker runs at you with a sword and shield and makes you cry
yourself to death.
### Lattice Battles

A fresh change of pace: In this pacifist map, the only way to kill your
opponents is to snip the lattices and catwalks from under them. Watch
your step.
### Species Warfare

Prove the might of your static by duking it out with every other kind of
crewmember out there. Features a messy dorms, a ticking-timebomb atmos,
a rather sterile robotics, a slippery closet, a fluffy medbay, and an
energetic bridge.
Mirror Shields now shatter on throw (which stuns and hurts)
## Code changes
Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC.
Added these as an OR to respective IS_X checks. Added new GET_X checks
for them, which do not check the trait.
Tidied up the file those are in.
Added belt_contents() to outfits, but it dosen't work....
Added a heretic rust sister-type to rust walls and floors.
Fixed a typo in cult ascension.
## Why It's Good For The Game
These maps all aim to do something interesting and unique with DM rather
than the usual deathfest and hugging of random crates.
Ragnarok allows players to practice unusual and rare magical mechanics,
similar to Ragin' Mages.
Lattice Battles adds SPLEEF to the game, which I think is awesome.
Species Warfare is, I think, fun and funny. Each 'department' has
incredibly chaotic and thematically-appropiate content for the species
its meant to symbolize, and I look forward to the chaos that every round
in it is inevitably going to have.
> Mirror Shields now shatter on throw.
I'm surprised they didn't! Since they aren't used anywhere I can do what
I want with them.
## Code changes
> Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC.
Added these as an OR to respective IS_X checks. Added new GET_X checks
for them, which do not check the trait.
I think this is a clever solution to the problem of 'what if I want
someone who acts as the antag, but isn't?' Some procs do need the datum
to modify it, so there's GET_X, but those aren't common and don't seem
likely to be an issue.
> Added belt_contents() to outfits, but it dosen't work....
Help would be very much appreciated, I don't know what I'm doing wrong
here. It's only used for the heretic scribe's unfathomable curio.
Some post-PR cleanup coming up.
## Changelog
🆑
add: Added three new DM maps - Ragnarok, Lattice Battles, Species
Showdown.
/🆑
## About The Pull Request
Standardizes vv_do_topic() procs on subtypes
Mostly formatting changes
- Add a !. check for every subtype
- Add a space in between each href_list
- Standardize !check_rights(), default is !check_rights(NONE) in the
event that something isnt specified
## About The Pull Request
Gives duffelbags their proper slot count
They inherited this from backpacks, but I sorta just forgot about that
[Creates "levels" of locked objects, uses that to make locked duffels
work](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3)
[c613c00](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3)
Turns locked into something that holds defines, this makes life a lot
easier.
Requires a lot of boilerplate because of how many uses of these procs
there are and all the passthrough and shit.
Adds a few outfit subtypes to avoid this class of failure in future.
Renames the args in a few but not all touched procs, one thing at a time
Closes#76407Closes#76430 Had the lock check in the wrong place
Closes#76441 GOD I HATE TK SO MUCH
Wrote half the pr without glasses so if it's weird gimme some grace
yeah?
## Changelog
🆑
fix: Fixes some fuck with duffelbags, them not holding enough + issues
with spawning gear in them (job shit and all)
/🆑
* Add extra clothing options to equip mob outfits (#75360)
## About The Pull Request
This adds some extra clothing categories as options when selecting
custom uniforms to equip a mob with. There was also a change of one
letter vars to be more descriptive.
## Why It's Good For The Game
More customization for uniforms.
## Changelog
🆑
code: Add extra clothing options to equip mob outfits. Replaced many
one-letter vars in file with better descriptions.
/🆑
* Add extra clothing options to equip mob outfits
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
## About The Pull Request
This adds some extra clothing categories as options when selecting
custom uniforms to equip a mob with. There was also a change of one
letter vars to be more descriptive.
## Why It's Good For The Game
More customization for uniforms.
## Changelog
🆑
code: Add extra clothing options to equip mob outfits. Replaced many
one-letter vars in file with better descriptions.
/🆑
Outfit manager now searches more thoroughly for the user's ID (#75310)
The outfit manager will now search more thoroughly for a user's ID when
attempting to change its trim. This prevents a runtime when attempting
this on a user with a PDA/Wallet/non-ID item in their ID slot.
The instance causing problems in my case was the nuclear operative
outfit -- Attempting to make a player a nuclear operative from the
player panel while they are wearing a wallet would fuck up the
outfitting process.
If you are wearing a wallet it will modify the trim of whichever ID is
in the wallet's first slot.
Co-authored-by: Rhials <Datguy33456@gmail.com>
The outfit manager will now search more thoroughly for a user's ID when
attempting to change its trim. This prevents a runtime when attempting
this on a user with a PDA/Wallet/non-ID item in their ID slot.
The instance causing problems in my case was the nuclear operative
outfit -- Attempting to make a player a nuclear operative from the
player panel while they are wearing a wallet would fuck up the
outfitting process.
If you are wearing a wallet it will modify the trim of whichever ID is
in the wallet's first slot.
Adds plasmaman support to mob spawners (#73068)
## About The Pull Request
A very minor change but one that will save headache down the line. Adds
plasmaman support to mob spawners, meaning they will be guaranteed to
get their internals and suit upon spawning from those.
Modified the equip proc to be able to automatically turn hand slot
internals on without the need for snowflakey open_internals checks
everywhere, as that should already handled by the it (shown below). Just
modified it to work on hand slots.
https://github.com/tgstation/tgstation/blob/4b832e7d01c079e2548940d352fb089bb336ec54/code/datums/outfit.dm#L245-L248
## Why It's Good For The Game
Adds support for present and future mob spawners involving plasmapeople.
## Changelog
🆑
qol: prevents mob spawner plasmamen from spawning without their suit and
internals.
code: the equip proc can now find internals in the hand slot and
automatically open them, allowing for less snowflakey code down the
line.
/🆑
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
A very minor change but one that will save headache down the line. Adds
plasmaman support to mob spawners, meaning they will be guaranteed to
get their internals and suit upon spawning from those.
Modified the equip proc to be able to automatically turn hand slot
internals on without the need for snowflakey open_internals checks
everywhere, as that should already handled by the it (shown below). Just
modified it to work on hand slots.
https://github.com/tgstation/tgstation/blob/4b832e7d01c079e2548940d352fb089bb336ec54/code/datums/outfit.dm#L245-L248
## Why It's Good For The Game
Adds support for present and future mob spawners involving plasmapeople.
## Changelog
🆑
qol: prevents mob spawner plasmamen from spawning without their suit and
internals.
code: the equip proc can now find internals in the hand slot and
automatically open them, allowing for less snowflakey code down the
line.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Core internals refactor. Add open/close_internals procs to /obj/item/tank. Add open/close_internals, can_breathe_internals, and invalid_internals procs to /mob/living/carbon. Fixed bug in human_stripping.dm preventing changing internals for breathing tube users. Fixed bug in /obj/item/tank/toggle_internals that was auto-adjusting non-internals masks. Fixed bug in slements/strippable that caused two mobs to breathe from the same internals.
* fixes chameleon card reset issues and makes nuke op trim have a hud icon (#68879)
* partial fix
* outfits now update ids
* fixes chameleon card reset issues and makes nuke op trim have a hud icon
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* [Ready] MODsuits
* we dont need to add these people as codeowners, goodness gracious
* have to remove this because upstream
* part 1 of these fixes
* EEEE
* Update peacekeeper_clothing.dm
* E
* E
* Auto stash before merge of "upstream-merge-59109" and "origin/upstream-merge-59109"
* E
* Update expeditionary_trooper.dm
* more removal
* nice
* modsuti modstui modusuti
* fixes
* E
* ITS MODsuit not HARDSUIT
* more hardsuit references
* MODSUIT NOT HARSUITEDSA
* Maps
* More ,map
* oop
* e
* oo aa
* 0
* ting tang
* Update modsuit_tailsprites.dm
* hi fikou
* bs tech update
Co-authored-by: Fikou <23585223+Fikou@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: Tom <8881105+tf-4@users.noreply.github.com>
About The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor
The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor is my attempt to clean up the file structure, the code, and the type tree for mob spawns.
Splits mob spawn types into corpses (dead spawns) and ghost roles (living spawns you can possess). The vars that didn't make sense for corpses and vice versa for ghost roles are now appropriately there
Because of above, there are no longer the fucking "death, roundstart, and instant" vars. thank god
Removes a lot of single or very few used vars, whose properties can be applied on special().
All Mob Spawns are given fitting folders instead of just being stuck in a single ghost roles file. Corpses are in the corpse folder, Ghost Roles are in the ghost role folder. Only exception are drones which should stay near their respective homes
Just generally cleaner all around you know
spider structures file renamed to spiderwebs now that spider eggs are gone
Why Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor Is Good For The Game
The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor cleans up so many terrible cases and uses
Changelog For The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor
cl armhulen
refactor: Mob spawns are refactored, no more assortment of "random, instant, and roundstart" vars on every mob spawn type
refactor: if there are some minimal differences in how mob spawners feel, that's why!
/cl
* Removes like 50% of the cost of using the ui, it turns out that the storage component is fucking moronic. Likely significantly reduces the overtime of typecacheof
* Reduces the cost of reloading the dummy by ~50%
Turns out just initializing and deleting organs was like half the cost of reloading a default dummy.
It occured to me (Mothblocks) that we don't actually care about any organs we can't see or that don't effect visuals. So almost all of our organ loading can just be skipped.
This saves a significant chunk of cpu time, items next!
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Bring _HELPERS/_lists.dm to latest standards by:
-Adding proper documentation and fixing existing one
-Giving vars proper names
-Procs now use snake case as per standard (many files that use those procs will be affected)
* Custom Outfits can now remember their trims (#59446)
So, someone did an oopsie and forgot to change outfit saving code, which meant that you couldn't save a custom outfit's ID trim. So, here I go, fixing that, so we can actually customize what job our outfit would start as.
Less copy-pasting for admins, and feex good.
Also, I was worried that it might not be compatible with previous custom outfits, and it's 100% compatible with old .json files for outfits that didn't have an id_trim set.
* Custom Outfits can now remember their trims
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
So, someone did an oopsie and forgot to change outfit saving code, which meant that you couldn't save a custom outfit's ID trim. So, here I go, fixing that, so we can actually customize what job our outfit would start as.
Less copy-pasting for admins, and feex good.
Also, I was worried that it might not be compatible with previous custom outfits, and it's 100% compatible with old .json files for outfits that didn't have an id_trim set.
* Organize the order of items under outfits (#57385)
Outfits are a mess, each one has their items in different orders and the only thing that is consistent is that the first item in the list is the outfit name.
Some have ID first, others the ID is in the middle, things that should stay together like ID and ID_trim have random things like gloves between them...
Simply put, it's hard to find mistakes because it's hard to read.
So I went around and organized it in an order that I think works well based on "priority"
ID > Uniform > Suit > Backpack > Other clothing in alphabetical order > Pockets > Hands > Others
If this gets merged, I will go around organizing all other outfits in game.
Also... since I was touching the ERT files, I did something small that I wanted to do for a while, just make them spawn with their hardsuit helmets down so you can look at the face of your squad mates before you all go die horribly.
* Organize the order of items under outfits
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Outfits are a mess, each one has their items in different orders and the only thing that is consistent is that the first item in the list is the outfit name.
Some have ID first, others the ID is in the middle, things that should stay together like ID and ID_trim have random things like gloves between them...
Simply put, it's hard to find mistakes because it's hard to read.
So I went around and organized it in an order that I think works well based on "priority"
ID > Uniform > Suit > Backpack > Other clothing in alphabetical order > Pockets > Hands > Others
If this gets merged, I will go around organizing all other outfits in game.
Also... since I was touching the ERT files, I did something small that I wanted to do for a while, just make them spawn with their hardsuit helmets down so you can look at the face of your squad mates before you all go die horribly.
* ID trims no longer apply to cards when visualsOnly is TRUE on equip() (#57436)
* ID trims no longer apply to cards when visualsOnly is TRUE on equip()
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>