92 Commits
Author SHA1 Message Date
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
MrMelbertandGitHub 229910f33d Adds job palette system to loadout / Adds jobs colored overalls to loadout (#93312)
## 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 
/🆑
2025-10-17 16:32:14 +02:00
SmArtKarandnevimer 16aa15a136 Changes human name updates to be request-based instead of being automatically done every single tick (#92393)
## 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
2025-08-08 15:34:22 -04:00
SmArtKarandGitHub 87e1ef6f64 Changes human name updates to be request-based instead of being automatically done every single tick (#92393)
## 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
2025-08-08 13:01:12 -05:00
SmArtKarandRoxy 0f01987115 Refactors ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK out of inventory code (#90869)
<!-- 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. -->
2025-05-15 16:14:06 -04:00
SmArtKarandGitHub 352c7ecdd7 Refactors ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK out of inventory code (#90869)
<!-- 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. -->
2025-05-15 01:07:41 +01:00
+3 77616e8b0e Add Proteans to the game. (#3449)
## 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


![NVIDIA_Overlay_bC6M2FThJP](https://github.com/user-attachments/assets/cb8c8594-f82c-408b-a9a1-e86a61bf8a0f)


![NVIDIA_Overlay_dbhHrYltOH](https://github.com/user-attachments/assets/cb643365-5512-465f-8582-337e24211b9f)

## 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>
2025-05-13 15:05:46 -04:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
Penelope HazeandGitHub b67a0901f2 Fix issues discovered via TypeMaker (#87596)
## 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.
2024-11-19 15:24:52 -05:00
ProfakosandGitHub 9f7d6dea62 Outfits that put items in your hand now respect if the outfit is visual only (#87355)
## 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
/🆑
2024-10-24 15:09:50 +02:00
WaterpigandMajkl-J bb70889f6e TG Upstream Part 1
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
2024-10-19 08:04:33 -07:00
Waterpig 4c4930c71d Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit 2024-09-08 00:59:39 +02:00
MrMelbertandGitHub 33aed2aa50 Belt contents copypasta fix (#85989)
## About The Pull Request

#85945 and #85319
2024-08-25 03:53:44 -04:00
8f2f92781b [MIRROR] Wardrobe preloads backpack contents (#29471)
* 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>
2024-08-21 06:32:04 +07:00
carlarctgandGitHub 2f69fe6190 Adds three new deathmatch maps - Ragnarok, Lattice Battles, Species Showdown (#85319)
## 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


![ragnarok](https://github.com/user-attachments/assets/b20b0974-b1e3-4d1f-9c46-03c56da3eebf)

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


![spleef](https://github.com/user-attachments/assets/03391656-4544-4230-8a40-ab6349a1458c)

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


![species_warfare](https://github.com/user-attachments/assets/35b4acc5-10db-403b-ac0f-78fac8d41e8a)

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.
/🆑
2024-08-19 13:47:27 +00:00
MrMelbertandGitHub ae4927c44f 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
2024-08-18 21:11:49 -06:00
3dfded5c3a [MIRROR] Standardizes formatting in vv_do_topic() [MDB IGNORE] (#25316)
* Standardizes formatting in vv_do_topic()

* Update human.dm

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-28 21:45:11 +00:00
Xander3359andGitHub d17e0754cb Standardizes formatting in vv_do_topic() (#79914)
## 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
2023-11-28 13:04:05 -05:00
2b38953932 [SEMI-MODULAR] Underwear and Bra split (#23269)
* First go, should be all set.

* Adds SKYRATS additions

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* code markings

* modular code markings

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* modular code markings

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* shuffle socks and undershirt color

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* adds a space and sanitizes

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* various comment and modular fixes

* more spacing

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* more spacing

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* various spacing fixes

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* variable comment

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Fixes a dumb oversight

* fixes the return list.

* converts the bras properly

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* fixes the overlaying issue.

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* adds the space

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* adds the descrptiors to changling vars

* Fixes a small oversight

* hard resolves the conflict by merging safekini

* Removed a duplicated proc

* Reverted Baby-Doll to Babydoll (for simplicity in the future)

* Implement the migration for bras from the various sources it could come from

Also cleans up some of the code in that file, so that should help nicely.

* Fixed the bikini underwear update

* Fixed issue with migrating the safekini

* sets the binder to be a bra.

* disables the bra as a undershirt

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-09-23 13:40:30 -04:00
4d7ba6ebcb [MANUAL MIRROR] Reworks Duffel Bags (Zippers) (#22363)
* Reworks Duffel Bags (Zippers)

* Update backpack.dm

* Duiffel Spotfix

* error fixes

* Update backpack.dm

* Update code/modules/antagonists/cult/cult.dm

* Update backpack.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-20 23:12:57 -04:00
LemonInTheDarkandGitHub 8c2c72b0ed Duiffel Spotfix (#76442)
## 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 #76407
Closes #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)
/🆑
2023-07-01 15:36:26 +01:00
58e4288ace [MIRROR] Add extra clothing options to equip mob outfits [MDB IGNORE] (#21295)
* 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>
2023-05-19 15:01:23 -04:00
TimandGitHub e2d4263d27 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.
/🆑
2023-05-18 22:17:27 -07:00
2437fb9d8e [MANUAL MIRROR] Outfit manager now searches more thoroughly for the user's ID (#75310) (#21071)
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>
2023-05-10 22:53:49 -07:00
RhialsandGitHub c23caa0486 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.
2023-05-10 14:03:58 -05:00
8f134af3e6 [MIRROR] Adds plasmaman support to mob spawners [MDB IGNORE] (#19054)
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>
2023-01-31 13:52:18 +00:00
ff3f61985f 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: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-31 09:47:41 +01:00
6eaf3ef66e [MIRROR] Internals Bugfixes & Internals-Compatible Helmets [MDB IGNORE] (#17267)
* Internals Bugfixes & Internals-Compatible Helmets

* Hotfix for Upstream Merge 70750 & Anesthetic Machine (#17296)

* Remove Skyrat edit (PR #14452)

* Remove MASK_EXTEND_RANGE clothing flag, bugfix mask adjustment on anesthetic machine, change to use open_internals and close_externals procs

* Change vox spawner to use open_internals

* Fixed bug allowing anesthetic machine to stay on when mask was adjusted

* Automatic changelog generation for PR #17296 [ci skip]

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-04 15:13:27 -04:00
Dani GloreandGitHub 0a81ea5bf9 Internals Bugfixes & Internals-Compatible Helmets (#70750)
* 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.
2022-10-31 12:04:52 +01:00
603cc0116d [MIRROR] fixes chameleon card reset issues and makes nuke op trim have a hud icon [MDB IGNORE] (#15339)
* 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>
2022-08-01 14:16:53 -07:00
FikouandGitHub 499f9463cd fixes chameleon card reset issues and makes nuke op trim have a hud icon (#68879)
* partial fix

* outfits now update ids
2022-08-01 16:46:39 -04:00
f076aeb061 [MIRROR] Fix outfit equipping not working [MDB IGNORE] (#10246)
* Fix outfit equipping not working

* Update outfit.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-12-25 13:39:17 +00:00
58f82b5161 [MIRROR] [Ready] MODsuits [MDB IGNORE] (#10244)
* [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>
2021-12-25 13:32:49 +00:00
MothblocksandGitHub 82ff5e344c Untested: Fix outfit equipping not working (#63606) 2021-12-24 22:27:20 +01:00
FikouandGitHub 7b38dd4ff7 MODsuits (#59109) 2021-12-24 12:00:24 -08:00
b894ce42d4 [MIRROR] Super Mega Mob Spawn Refactor [MDB IGNORE] (#10075)
* Super Mega Mob Spawn Refactor

* Super Mega Mob Spawn Refactor

* Update modular changes

* update kilo

* i wish unit tests would work on my machine

* fix kilo...?

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-12-23 02:30:55 +00:00
tralezabandGitHub 82615e7462 Super Mega Mob Spawn Refactor (#63279)
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
2021-12-15 11:13:21 +13:00
b7164873d4 [MIRROR] Speeds up the preference menu, significantly. Adds object pooling, other stuff too [MDB IGNORE] (#9962)
* Speeds up the preference menu, significantly. Adds object pooling, other stuff too

* First fixes

* Feex

* Quick fix for the unit test to shut up

* Fixing the runtime with randomly-colored jumpsuits

* Fixes that one hard del

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-12-10 02:22:41 +00:00
9b605b9cc0 Speeds up the preference menu, significantly. Adds object pooling, other stuff too (#63225)
* 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>
2021-12-08 16:20:03 -08:00
fa519bdde3 [MIRROR] cleanup _HELPERS/_lists.dm and all the necessary files [MDB IGNORE] (#8783)
* cleanup _HELPERS/_lists.dm and all the necessary files

* Epbic

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-10-13 21:07:35 +01:00
GhilkerandGitHub 95c8e00af7 cleanup _HELPERS/_lists.dm and all the necessary files (#61827)
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)
2021-10-12 14:48:51 +01:00
68e84c432e Skyrat Prefs Menu: Fixing everything to work correctly (#8350)
* Skyrat Prefs Menu: Fixing everything to work correctly

* whoops haha

* Examine menu!

* haha whoops

* Mutant Parts in tgui prefs

* fug

* LIMBS, MARKINGS, LANGUAGES

* EEEE FUCK

* Update tgui_prefs_migration.dm

* Update tgui_prefs_migration.dm

* FUCK

* Proper migration

* Update preferences.dm

* Final fixes for this shit

* Update LoadoutManager.js

* adds cursed shit

* e

* Update preferences.dm

* fixes examine panel

* adds // SKYRAT EDIT to bullshit

* sabshesgawgzxghsv

* wargesthgeargfea

* stegresgdytfrw

* EEE

* Update species_features.tsx

* EEE

* Update cursed_shit.tsx

* fixed taurs

* body size is now a 0.01 step

* Fixes some bugs

* Some required changes.

* Update examine.dm

* actually nekked

* Update code/modules/client/preferences/middleware/jobs.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/client/preferences/middleware/limbs_and_markings.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/client/preferences/middleware/limbs_and_markings.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/client/preferences/middleware/limbs_and_markings.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/modules/loadouts/loadout_ui/loadout_manager.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/skyrat/species_features.tsx

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* More fixes

* Donator items no show

* EEE

* fixes rapier sheaths

* gender =/= body type

* Loadout fixes

* Skintone

* Update skin_tone.dm

* Slick it up

* Update loadout_manager.dm

* Fixes typing indicator

* SSD indicator fixes

* fixes

* oops

* Fix this.

* Fixing the Occupations Menu

* Fixing NT Rep's alt-titles

* Update tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/janitor.ts

Co-authored-by: death and coding <58394696+thestubborn@users.noreply.github.com>

* Update code/controllers/subsystem/language.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/research_director.ts

Co-authored-by: death and coding <58394696+thestubborn@users.noreply.github.com>

Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: death and coding <58394696+thestubborn@users.noreply.github.com>
2021-09-29 15:24:30 +01:00
5dd513f23f [MIRROR] Custom Outfits can now remember their trims (#6104)
* 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>
2021-06-04 09:18:08 +12:00
GoldenAlpharexandGitHub 604f3f39d7 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.
2021-06-03 11:04:03 -03:00
835dee4581 [MIRROR] TGUI Outfit Manager and Editor (#4828)
* TGUI Outfit Manager and Editor

* Update persistence.dm

Co-authored-by: Trigg <36010999+TriggeredBoi@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-11 23:12:40 +01:00
1542aa66bc TGUI Outfit Manager and Editor (#58125)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 20:47:03 +03:00
84004f66c3 [MIRROR] Organize the order of items under outfits (#4130)
* 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>
2021-03-13 17:34:54 +00:00
GuillaumePrataandGitHub 5318cc77cd 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.
2021-03-13 11:22:25 -05:00
c01e5fc7c6 [MIRROR] ID trims no longer apply to cards when visualsOnly is TRUE on equip() (#3906)
* 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>
2021-03-06 00:56:25 +00:00
TimberpoesandGitHub 70bcd513bd ID trims no longer apply to cards when visualsOnly is TRUE on equip() (#57436) 2021-03-05 16:25:52 -08:00