Commit Graph
397 Commits
Author SHA1 Message Date
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
FalloutFalconandGitHub d25c6201f4 Standerdizing currency symbols Part 2 (#94259)
## About The Pull Request
Converts almost all non-constant, non-tgui usages of all variantions of
"credit" and "cr"

Everything seems in order, tested most the currencies.
<img width="905" height="119" alt="image"
src="https://github.com/user-attachments/assets/3fa005a7-a114-426c-9646-b81f68bc2dec"
/>
<img width="255" height="128" alt="image"
src="https://github.com/user-attachments/assets/14c83b54-4fd9-4bee-838f-5b1c03939d9a"
/>


## Why It's Good For The Game
Same justification as https://github.com/tgstation/tgstation/pull/94128
Just easier to mantain/adjust the grammer/names of our money
## Changelog
🆑
spellcheck: minor cleanup on some usecases of "credits"
/🆑
2025-12-13 21:00:19 -05:00
GhomandGitHub 0b0c5ea91e Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.

## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.

Currently a WIP as I slowly deal with the unit test reports.

## Changelog

🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
2025-12-02 18:29:01 -05:00
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
373e2e2c9b Agent IDs autofill their user's age and display custom jobs upon inspection (#93533)
## About The Pull Request

Exactly what it says on the tin. When you're forging an Agent ID if
you're a human your age will autofill. If you aren't a human (tested as
a gorilla) it will autofill the minimum age, which is what it currently
always does. This just makes forging quicker, you probably aren't using
an Agent ID to pass off as someone way older than yourself.

Also, when you inspect someone and check their displayed ID it'll show
you the job they entered while forging it and not the job that their
trim is associated with. I'm assuming this fixes an oversight because
you can already rename the ID to display a custom job, the inspection on
examine feature just lets you ignore this for some reason.

<img width="373" height="238" alt="Screenshot 2025-10-20 005151"
src="https://github.com/user-attachments/assets/38345d4b-65cf-4d01-bd88-015321687810"
/>

This lets you display jobs that don't exist. If I tried this on live
servers the job would be listed as "Admiral" while the ID's name would
still be "Nyaria Luma (Nuclear Disk Inspector), making it a dead
giveaway that the ID is fake.

## Why It's Good For The Game

Qol, also enables funny gimmicks.

## Changelog

🆑
qol: Agent IDs autofill the user's current age if they have one
fix: Agent IDs can display custom jobs upon close examination
/🆑

---------

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2025-10-29 16:39:58 +01:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
Xander3359andGitHub bbe729aef7 Converts more attackby's to interactions (#93106)
## About The Pull Request
Converts the following:
- Medical Kiosk
- Implant case
- Flamethrower
- Chemical implant case
- Pappercutter

Also I've looked at some alt click procs and adjusted some of their
returns
2025-10-12 22:40:42 -05:00
dieandGitHub 0204ab8fdd Canreach refactor (#93165)
## About The Pull Request
ports https://github.com/DaedalusDock/daedalusdock/pull/1144
ports https://github.com/DaedalusDock/daedalusdock/pull/1147

full credit to @Kapu1178 for the juice

instead of `reacher.CanReach(target)` we now do
`target.CanBeReachedBy(reacher)`, this allows us to give special
behavior to atoms which we want to reach, which is exactly what I need
for a feature I'm working on.
## Why It's Good For The Game
allows us to be more flexible with reachability
## Changelog
🆑
refactor: refactored how reaching items works, report any oddities with
being unable to reach something you should be able to!
/🆑
2025-10-07 20:28:59 +02:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
KrysonismandGitHub 79da15581c The Roulette Refinement Reconfiguration. Poker Chips, Bugs fixed. Coins redeemable, Payouts animated and Bag expanded., (#92905) 2025-09-29 04:07:04 +10:00
xPokee 9b282a850e Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-17 11:45:44 -04:00
MrMelbertandGitHub 7c0973ccf4 Refactors names and voices / potted plants no longer conceal voice (just appearance) / honorifics show on examine (#92781)
## About The Pull Request

Closes #92778
Closes #86829

<img width="347" height="39" alt="image"
src="https://github.com/user-attachments/assets/c50bd1ff-8c00-47a7-a31a-617fae2adc5b"
/>

1. Splits `TRAIT_UNKNOWN` into `TRAIT_UNKNOWN_APPEARANCE` and
`TRAIT_UNKNOWN_VOICE`

2. Renames some stuff like `getvoice` and `getspecialvoice`

3. Gets rid some crummy signals around `get_visible_name` and
`get_voice`

4. Heads now apply the disfigured trait when relevant (rather than
snowflake checking for damage amount)

5. Ling voice refactored into using special voice (it was only used by a
viro symptom anyways; I don't anticipate this overlap being problematic)

6. Mask voice changer refactored into a trait

## Why It's Good For The Game

Potted plants shouldn't have magical voice concealing powers -
especially not over radio, but not over in person either. It's a damn
plant

So I addressed this by refactoring our face and voice system. Overall
things should be a lot cleaner and easier to use.

## Changelog

🆑 Melbert
refactor: Refactored a lot of code relating to human face and voice, ie,
what shows up in examine and in say. Report anything odd when examining
people, with ID cards, when talking over radio, or when disguised
refcator: Refactored how you get disfigured when your head's super
damaged
refactor: Refactored ling mimic voice and traitor voice changer
del: Potted plants no longer hide voice. They still hide appearance,
though
qol: Honorifics now show in examine / in world, rather than only when
speaking.
/🆑
2025-09-12 17:11:06 +02:00
SimplyLoganandGitHub a1fdc715df Request Emergency Temporary Access - RETA (#92753)
<img width="819" height="348" alt="image"
src="https://github.com/user-attachments/assets/0424ec76-2648-43d3-8e94-d44558b44bcf"
/>

## About The Pull Request

Follow up from #92751 - Not to conflict with it but as an idea on how to
change it for the long run.

Paramedics currently start with broad department access. This proposal
replaces that by granting temporary department access only when an
emergency is called.

When a player presses "Call X" on a Requests Console, responders called
receive temporary access to the common work areas of that department.

![image](https://hackmd.io/_uploads/r1xNOv0Fle.png)
> [Security] The Automated Announcement System coldly states, "SECURITY
EMERGENCY in Research Lab! (Called by Sloan Keppel, Scientist) RETA door
access granted to responders."

> [Science] The Automated Announcement System coldly states, "RETA
activated (Called by Sloan Keppel, Scientist). Security personnel now
have temporary access to your areas."

They do not receive access to sub rooms or high risk areas.

- Access lasts 5 minutes (configurable)  
- Access is removed when the timer expires or the emergency is resolved
- No mapping changes are required (uses existing request consoles)  
- Removes Paramedics round start access but gives them external access
to rescue bodies in space by default
- Flashing blue lights on doors affected by temporary access
<img width="897" height="837" alt="image"
src="https://github.com/user-attachments/assets/97980cb4-3481-44b6-9f96-fc241ca16f57"
/>


**The full document is here:
https://hackmd.io/@NM8HxpG_Toahg5pimrpsKw/Hk0tKq3Yxe**

**Wiki documentation for players and admins:
https://wiki.tgstation13.org/Guide_To_RETA**


## Why It's Good For The Game

- Removes paramedics’ broad “Doctor+” access.
- Keeps them effective as emergency responders.
- Responders must be called in OR access upgraded.
- Keeps sensitive areas secure.
- Prevents spam or stacking through cooldown.
- Scales across all maps without mapper work.
- Gives admins a new tool for temp department wide access
- Dedicated logging file and unit tests
- Very performant, only affects living players with connected mind
- Gives Request Consoles more use as an alarm button and further utility
- Imagine later on "Request Janitor" which sorts access and tells
Janitor where needed

## Changelog
🆑
add: RETA System - Request Consoles give temporary access to responders
when used for some areas. Paramedics lose broad access but get external
space access.
qol: Request consoles now show name and job role on call message &
Cooldown on spamming calls + sound prompt
qol: Medibot access no longer based on Paramedic trim ID - Still has
original access
image: Added "lights_reta" for temporary door access when in effect
admin: Gives admins "RETA door access" verb for giving department wide
area access on maps.
config: New config settings for RETA

/🆑
2025-09-10 23:33:40 +00:00
MrMelbertandnevimer 5f35bdee00 [MDB Ignore] Re-add hop console second ID slot (#92157)
## About The Pull Request

<img width="491" height="301" alt="image"
src="https://github.com/user-attachments/assets/a3b5b19f-edf5-4de9-9201-9cbfab9e8827"
/>

Mod computers with the access changing software installed have a
secondary ID slot once again. This ID slot doesn't contribute to access.
You can insert IDs into the slot with right click and remove them with
alt-right click.

Also removes the "New IDs and you" memo paper.

Also tweaks PDA on_deconstruct so contents are dropped on when they're
deconstructed with assembly.

Fixes #92151

## Why It's Good For The Game

Changing IDs is very unnecessarily clunky with the one slot. Insert hop
id, log in, remove hop id, insert crew id, change access, remove crew
id, log out.

We had it right back when we had two slots. Insert hop ID, insert crew
id, log in. It just works.

This also allows for mobile HoPs to change access without necessitating
removing their ID from their PDA.

Other changes:

The "New IDs and you" memo is very old. They haven't been new for 4
years now. I don't think anyone reads it and they served their purpose.

I found it odd that, if your PDA was melted or blown up, it would delete
your ID. If this is a hold-over from old PDA behavior feel free to let
me know but otherwise it seems sensible that it'd spit out the contents
as you would expect.

## Changelog

🆑 Melbert
qol: The access changing software (the HoP console) now has ID two slots
again (one for the HoP's id and one for the ID being changed). You can
insert IDs in the secondary slot via the UI or right click, and remove
them via the UI or alt-right click.
qol: If your PDA is destroyed via acid or bombs, your ID (and similar
contents such as disks) are spit out instead of being deleted
del: Deletes the "New IDs and you" memo in the HoP's office. They
haven't been new for 4 years.
fix: Engineering sub-tab in the access changing software no longer looks
messed up
fix: Fix reversed alt-click logic for mod pcs
/🆑
# Conflicts:
#	code/modules/modular_computers/computers/item/computer.dm
2025-08-19 22:32:57 -04:00
MrMelbertandGitHub 5df4de3f71 [MDB Ignore] Re-add hop console second ID slot (#92157)
## About The Pull Request

<img width="491" height="301" alt="image"
src="https://github.com/user-attachments/assets/a3b5b19f-edf5-4de9-9201-9cbfab9e8827"
/>

Mod computers with the access changing software installed have a
secondary ID slot once again. This ID slot doesn't contribute to access.
You can insert IDs into the slot with right click and remove them with
alt-right click.

Also removes the "New IDs and you" memo paper. 

Also tweaks PDA on_deconstruct so contents are dropped on when they're
deconstructed with assembly.

Fixes #92151

## Why It's Good For The Game

Changing IDs is very unnecessarily clunky with the one slot. Insert hop
id, log in, remove hop id, insert crew id, change access, remove crew
id, log out.

We had it right back when we had two slots. Insert hop ID, insert crew
id, log in. It just works.

This also allows for mobile HoPs to change access without necessitating
removing their ID from their PDA.

Other changes: 

The "New IDs and you" memo is very old. They haven't been new for 4
years now. I don't think anyone reads it and they served their purpose.

I found it odd that, if your PDA was melted or blown up, it would delete
your ID. If this is a hold-over from old PDA behavior feel free to let
me know but otherwise it seems sensible that it'd spit out the contents
as you would expect.

## Changelog

🆑 Melbert
qol: The access changing software (the HoP console) now has ID two slots
again (one for the HoP's id and one for the ID being changed). You can
insert IDs in the secondary slot via the UI or right click, and remove
them via the UI or alt-right click.
qol: If your PDA is destroyed via acid or bombs, your ID (and similar
contents such as disks) are spit out instead of being deleted
del: Deletes the "New IDs and you" memo in the HoP's office. They
haven't been new for 4 years.
fix: Engineering sub-tab in the access changing software no longer looks
messed up
fix: Fix reversed alt-click logic for mod pcs
/🆑
2025-08-11 19:08:18 +00: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
Da Cool BossandRoxy 915c41497e Rewrites description of agent IDs, splits limited-slot and unlimited-slot IDs more cleanly (#92097) 2025-07-19 20:29:27 -04:00
Da Cool BossandGitHub af45bab672 Rewrites description of agent IDs, splits limited-slot and unlimited-slot IDs more cleanly (#92097) 2025-07-15 18:50:35 -06:00
7cd9515823 Refactors pdapainter attackby into item_interaction. (#91548)
## About The Pull Request

This mostly just refactors the pdapainter `attackby(...)` into our
modern item interaction system, and adds screentips for such.
On the side it does a minor amount of cleanup/improvements.

Notable changes include:
- It felt odd that almost all id cards could be put in here, despite
them not really being traditionally changeable. Like, the cargo
departmental budget card probably shouldn't be able to get a trim put on
it, and neither should pretty much all non-advanced IDs with preset
trims and no visual nor explained ability to change them. Hence, this
limits it to advanced cards.
- I didn't remove the `to_chat(...)` upon id insertion failure, as I
felt the balloon alert wouldn't actually communicate the problem
sufficiently, but leaving _just_ the `to_chat(...)` felt like it didn't
give enough direct feedback on click. Hence, it uses both.
## Why It's Good For The Game

Less jank, more screentips, more feedback, less use of `attackby(...)`
when we shouldn't.
## Changelog
🆑
refactor: Refactored tablet/ID painter item interactions. Please report
any issues.
fix: You can no longer circumvent the block on inserting chameleon IDs
into tablet/ID painters by inserting them via the UI.
fix: You can no longer insert non-advanced IDs into the tablet/ID
painter and change their trims.
sound: Inserting IDs into tablet/ID painters is no longer silent.
qol: You can repair tablet/ID painters when they're damaged, instead of
just when they're broken.
qol: Improved feedback for tablet/ID painter interactions.
qol: Added screentips to tablet/ID painters.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-06-15 15:54:22 -04:00
7fd97ede74 Refactors pdapainter attackby into item_interaction. (#91548)
## About The Pull Request

This mostly just refactors the pdapainter `attackby(...)` into our
modern item interaction system, and adds screentips for such.
On the side it does a minor amount of cleanup/improvements.

Notable changes include:
- It felt odd that almost all id cards could be put in here, despite
them not really being traditionally changeable. Like, the cargo
departmental budget card probably shouldn't be able to get a trim put on
it, and neither should pretty much all non-advanced IDs with preset
trims and no visual nor explained ability to change them. Hence, this
limits it to advanced cards.
- I didn't remove the `to_chat(...)` upon id insertion failure, as I
felt the balloon alert wouldn't actually communicate the problem
sufficiently, but leaving _just_ the `to_chat(...)` felt like it didn't
give enough direct feedback on click. Hence, it uses both.
## Why It's Good For The Game

Less jank, more screentips, more feedback, less use of `attackby(...)`
when we shouldn't.
## Changelog
🆑
refactor: Refactored tablet/ID painter item interactions. Please report
any issues.
fix: You can no longer circumvent the block on inserting chameleon IDs
into tablet/ID painters by inserting them via the UI.
fix: You can no longer insert non-advanced IDs into the tablet/ID
painter and change their trims.
sound: Inserting IDs into tablet/ID painters is no longer silent.
qol: You can repair tablet/ID painters when they're damaged, instead of
just when they're broken.
qol: Improved feedback for tablet/ID painter interactions.
qol: Added screentips to tablet/ID painters.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-06-13 16:13:48 -06:00
_0StevenandRoxy 73587184ae Add more screentips to ID cards (#91321)
## About The Pull Request

While I was working on #91319 I noticed ID cards don't actually have
screentips for inserting cash... or a bunch of their other stuff.
This just adds those interactions as screentips as well.
## Why It's Good For The Game

More accurate screentips good.
## Changelog
🆑
qol: Added screentips for inserting cash into and recolouring ID cards.
qol: Added screentips for copying access directly from a card using a
chameleon ID card.
qol: Added screentips for setting prisoner ID sentence time.
qol: Added screentips for forging cardboard ID cards.
/🆑
2025-05-29 16:16:10 -04:00
_0StevenandGitHub 9f40358b19 Add more screentips to ID cards (#91321)
## About The Pull Request

While I was working on #91319 I noticed ID cards don't actually have
screentips for inserting cash... or a bunch of their other stuff.
This just adds those interactions as screentips as well.
## Why It's Good For The Game

More accurate screentips good.
## Changelog
🆑
qol: Added screentips for inserting cash into and recolouring ID cards.
qol: Added screentips for copying access directly from a card using a
chameleon ID card.
qol: Added screentips for setting prisoner ID sentence time.
qol: Added screentips for forging cardboard ID cards.
/🆑
2025-05-26 13:40:12 +00: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
grungussussandRoxy 38ac020e16 agent id card covert action is hidden do_after (#90985) 2025-05-08 19:19:40 -04:00
grungussussandGitHub 410f22c87c agent id card covert action is hidden do_after (#90985) 2025-05-05 09:37:14 -04:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
MrMelbertandGitHub 0e174664db HoP has a platinum card which has infinite common slots but limited command slots (#90065)
## About The Pull Request

HoP spawns with a platinum ID card, an intermediate between gold and
silver. It's one-of-a-kind, has Infinite common slots, 2 command slots,
1 prv command slot (dedicated to their office).

HoP doesn't spawn with all those common slots filled though, they have
to do that manually.

This means they can give themselves access to all common areas on the
station, all the time - but are still limited to a selection of 2
command locations (armor, ai sat, vault, etc)

## Why It's Good For The Game

1. Sovl
2. HoP has taken too many Ls lately
3. HoP already has functional AA by either making multiple cards or by
changing their card's access on the fly via their PDA and I think this
is functionally a bit healthier (at least healthier than the pda thing)
4. Gives the HoP more of an identity as a second in command, being able
to be almost anywhere the captain can be
5. Adds a target back on the HoP's head (not many people gank them for
access anymore)

## Changelog

🆑 Melbert
add: HoP now spawns with a platinum ID card which can hold infinite
common access slots, but is still limited in amount of command slots.
/🆑
2025-03-19 19:47:14 +00:00
7d3888b0a5 fixes chameleon IDs not actually making you untrackable by the AI (#89786)
## About The Pull Request

No idea how long this has been broken for.

## Why It's Good For The Game

its supposed to do this and it doesnt which is called a bug

## Changelog
🆑
fix: chameleon IDs actually prevent AI tracking now
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-03-12 17:11:02 -04:00
TheRyeGuyWhoWillNowDieandRoxy 4156bbb8e8 removes wildcard limit from agent IDs (#89709)
With the trim system added years ago, agent IDs have become essentially
worthless. This is because they can only hold SIX COMMON ACCESSES, TWO
COMMAND ACCESSES, AND ONE CAPTAIN LEVEL ACCESS. This leads to the
current situation, where agent IDs are essentially legacy content
included in certain bundles like Contractor, but ultimately go entirely
unused, with players instead opting to simply steal ID cards off of
people and juggle them around.

This PR makes them act more like they used to, where scanning an ID with
one will let you take all of the access codes on the ID card, and add
them to your agent ID.

Having your ID card stolen is extremely frustrating. It's also very
frustrating for traitors to need to carry literally a box of stolen ID
cards to have access to various parts of the station, and it also
hinders stealthy gameplay, since the stealthy ID card doesn't actually
hold access.

🆑
balance: wildcard limits have been removed from Agent ID cards
balance: the specops crate gets a variation of the agent ID card which
can only hold limited access (same as it is now)
/🆑
2025-03-12 17:06:53 -04:00
SmArtKarandRoxy 589cf0a904 Refactors how item actions are handled (#89654)
## About The Pull Request

This PR tackles our piss-poor item action handling. Currently in order
to make an item only have actions when its equipped to a certain slot
you need to override a proc, which I've changed by introducing an
action_slots variable. I've also cleaned up a ton of action code, and
most importantly moved a lot of Trigger effects on items to do_effect,
which allows actions to not call ui_action_click or attack_self on an
item without bypassing IsAvailible and comsigs that parent Trigger has.
This resolves issues like jump boots being usable from your hands, HUDs
being toggleable out of your pockets, etc. Also moved a few actions from
relying on attack_self to individual handling on their side.

This also stops welding masks/hardhats from showing their action while
you hold them, this part of the change is just something I thought
didn't make much sense - you can use their action by using them in-hand,
and flickering on your action bar can be annoying when reshuffling your
backpack.

Closes #89653

## Why It's Good For The Game
Makes action handling significantly less ass, allows us to avoid code
like this
```js
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
	if(istype(action, /datum/action/item_action/halt))
		halt()
	else
		adjust_visor(user)
```
2025-03-12 16:53:44 -04:00
Singul0andRoxy 34310e680e Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)
Adds a space ruin revolving around a studio where ghost roles can
provide entertainment to the station, the studio has a bunch of
construction stuff and costume vendors to create any set and portray any
character you'd want. Features 3 stages and a radio station (neutral
aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors.
1 director.

![image](https://github.com/user-attachments/assets/d78c3565-b5b1-494b-a566-7a6c451a62a3)
Studio also has a sizable living quarters and a mini-medbay for basic
provisions. a couple of paper fluff texts are strewn about on the
noticeboards

The cast:

![image](https://github.com/user-attachments/assets/5a56273e-8665-4daa-b8b0-77c8ede4d0f0)

In terms of things that can be balance-breaking, I can only name the gas
masks and agent ID actors/directors spawns in. But I think its a
necessary sacrifice for them to play "characters"
I think too many of the ghost roles have too little interactions with
the main station, this is for good reasons obviously, balance and
metagrudges and all that. But, say. what if we can have a ghost role
that interacts and give something to the station besides being their own
little isolated game? it can't be anything material of course. so what
if we have the ghost role centered around giving entertainment? which is
how this PR came to be
🆑
add: After some light bit of restructuring, the local TV station,
serving SPACE SECTOR 13 has opened up again!
/🆑
2025-03-12 16:37:13 -04:00
MrMelbertandRoxy b4396a0230 Honorific don't care about mononyms (#89452)
## About The Pull Request

Currently if you have a hyphenated name, either being a lizard
(`Wines-And-Dines`) or as someone with a joined name (`Jessica
Smith-Rose`), and choose a "Full Name" honorific, your name gets a
little butchered, producing `Cpt. Wines` or `Cpt. Jessica Rose`
respectively

I find this odd - you ask for "full name" and you only get most-to-some
of your name under some circumstances. So this PR just makes the "Full
name" honorifics actually use the full name, thus including middle
names, hyphenated names, and whole lizard names.

If you are a lizard and only want your first name (current behavior),
you can just select "first name", anyways.

The only thing I can think of that this would negatively affect are
people who have a middle name, and don't want it displayed. But if that
*is* a notable problem, we can introduce a setting for `Full name sans
middle name` or something.

## Why It's Good For The Game

Full name means full name!

## Changelog

🆑 Melbert
del: Honorific "full name" setting no longer cares about mononyms,
meaning Lizards and people with similarly hyphenated names will no
longer get their name butchered.
/🆑
2025-03-12 16:00:08 -04:00
RengaN02andRoxy 85ce60b0eb Fixes flipped detectives id's assignment (#89388)
## About The Pull Request
Fixes this 

![image](https://github.com/user-attachments/assets/29eda981-8e98-4ec2-afc0-135e6cd2526d)

And fixes a runtime 

![image](https://github.com/user-attachments/assets/10e0f7a7-dad6-4a9d-920f-25d8ce91d923)
## Why It's Good For The Game

People can recognize the detective beacuse of this, so i wanted to fix
it
Fixes are goooood!!

## Changelog
🆑 Rengan
fix: When you cast examine to the disguised detective, its assignment
will now display correctly.
/🆑
2025-03-12 15:45:43 -04:00
edc5d72822 fixes chameleon IDs not actually making you untrackable by the AI (#89786)
## About The Pull Request

No idea how long this has been broken for.

## Why It's Good For The Game

its supposed to do this and it doesnt which is called a bug

## Changelog
🆑
fix: chameleon IDs actually prevent AI tracking now
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-03-04 18:23:24 -07:00
TheRyeGuyWhoWillNowDieandGitHub 4595995563 removes wildcard limit from agent IDs (#89709)
## About The Pull Request

With the trim system added years ago, agent IDs have become essentially
worthless. This is because they can only hold SIX COMMON ACCESSES, TWO
COMMAND ACCESSES, AND ONE CAPTAIN LEVEL ACCESS. This leads to the
current situation, where agent IDs are essentially legacy content
included in certain bundles like Contractor, but ultimately go entirely
unused, with players instead opting to simply steal ID cards off of
people and juggle them around.

This PR makes them act more like they used to, where scanning an ID with
one will let you take all of the access codes on the ID card, and add
them to your agent ID.

## Why It's Good For The Game

Having your ID card stolen is extremely frustrating. It's also very
frustrating for traitors to need to carry literally a box of stolen ID
cards to have access to various parts of the station, and it also
hinders stealthy gameplay, since the stealthy ID card doesn't actually
hold access.

## Changelog
🆑
balance: wildcard limits have been removed from Agent ID cards
balance: the specops crate gets a variation of the agent ID card which
can only hold limited access (same as it is now)
/🆑
2025-03-02 16:47:46 +01:00
SmArtKarandGitHub 4dd6cdeb72 Refactors how item actions are handled (#89654)
## About The Pull Request

This PR tackles our piss-poor item action handling. Currently in order
to make an item only have actions when its equipped to a certain slot
you need to override a proc, which I've changed by introducing an
action_slots variable. I've also cleaned up a ton of action code, and
most importantly moved a lot of Trigger effects on items to do_effect,
which allows actions to not call ui_action_click or attack_self on an
item without bypassing IsAvailible and comsigs that parent Trigger has.
This resolves issues like jump boots being usable from your hands, HUDs
being toggleable out of your pockets, etc. Also moved a few actions from
relying on attack_self to individual handling on their side.

This also stops welding masks/hardhats from showing their action while
you hold them, this part of the change is just something I thought
didn't make much sense - you can use their action by using them in-hand,
and flickering on your action bar can be annoying when reshuffling your
backpack.

Closes #89653

## Why It's Good For The Game
Makes action handling significantly less ass, allows us to avoid code
like this
```js
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
	if(istype(action, /datum/action/item_action/halt))
		halt()
	else
		adjust_visor(user)
```
2025-03-01 12:02:07 -06:00
Majkl-J 254cd32c93 Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-02a 2025-02-25 06:56:39 -08: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
Singul0andGitHub 14a1b5e1e8 Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)
## About The Pull Request
Adds a space ruin revolving around a studio where ghost roles can
provide entertainment to the station, the studio has a bunch of
construction stuff and costume vendors to create any set and portray any
character you'd want. Features 3 stages and a radio station (neutral
aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors.
1 director.

![image](https://github.com/user-attachments/assets/d78c3565-b5b1-494b-a566-7a6c451a62a3)
Studio also has a sizable living quarters and a mini-medbay for basic
provisions. a couple of paper fluff texts are strewn about on the
noticeboards

The cast:

![image](https://github.com/user-attachments/assets/5a56273e-8665-4daa-b8b0-77c8ede4d0f0)


In terms of things that can be balance-breaking, I can only name the gas
masks and agent ID actors/directors spawns in. But I think its a
necessary sacrifice for them to play "characters"
## Why It's Good For The Game
I think too many of the ghost roles have too little interactions with
the main station, this is for good reasons obviously, balance and
metagrudges and all that. But, say. what if we can have a ghost role
that interacts and give something to the station besides being their own
little isolated game? it can't be anything material of course. so what
if we have the ghost role centered around giving entertainment? which is
how this PR came to be
## Changelog
🆑
add: After some light bit of restructuring, the local TV station,
serving SPACE SECTOR 13 has opened up again!
/🆑
2025-02-19 17:48:10 -07:00
MrMelbertandGitHub e19460ce5c Honorific don't care about mononyms (#89452)
## About The Pull Request

Currently if you have a hyphenated name, either being a lizard
(`Wines-And-Dines`) or as someone with a joined name (`Jessica
Smith-Rose`), and choose a "Full Name" honorific, your name gets a
little butchered, producing `Cpt. Wines` or `Cpt. Jessica Rose`
respectively

I find this odd - you ask for "full name" and you only get most-to-some
of your name under some circumstances. So this PR just makes the "Full
name" honorifics actually use the full name, thus including middle
names, hyphenated names, and whole lizard names.

If you are a lizard and only want your first name (current behavior),
you can just select "first name", anyways.

The only thing I can think of that this would negatively affect are
people who have a middle name, and don't want it displayed. But if that
*is* a notable problem, we can introduce a setting for `Full name sans
middle name` or something.

## Why It's Good For The Game

Full name means full name!

## Changelog

🆑 Melbert
del: Honorific "full name" setting no longer cares about mononyms,
meaning Lizards and people with similarly hyphenated names will no
longer get their name butchered.
/🆑
2025-02-13 17:15:35 +01:00
RengaN02andGitHub c013cd8710 Fixes flipped detectives id's assignment (#89388)
## About The Pull Request
Fixes this 

![image](https://github.com/user-attachments/assets/29eda981-8e98-4ec2-afc0-135e6cd2526d)

And fixes a runtime 

![image](https://github.com/user-attachments/assets/10e0f7a7-dad6-4a9d-920f-25d8ce91d923)
## Why It's Good For The Game

People can recognize the detective beacuse of this, so i wanted to fix
it
Fixes are goooood!!

## Changelog
🆑 Rengan
fix: When you cast examine to the disguised detective, its assignment
will now display correctly.
/🆑
2025-02-11 04:03:10 +01:00
SebastionateandGitHub afed1a552e Lizard Gas Atmos Fix/I.D transferred to Modular File (#3049)
<!-- 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
The Lizard Gas Ghost roles use Omni pressure tanks, these are ass in
game and don't have layers properly coded in. Also the loop is currently
not hooked up. Also the Liquid plasma tank network has been changed to
have an exterior store-house, because immediately upon people trying to
fix atmos- sparks from the RPD caught the tank on fire and torched the
entire backroom, maintenance room, and manager's office in a roaring
plasma/trit fire 😔

p.s the Lizard Gas I.D was added to a non-modular file on accident, this
PR switches it to modular.

The mapsize was not altered to accommodate these changes overall and it
remains a 25x25 Ghost Role ruin (as it's always been.)

TL;DR:

-Atmos Pipes are colored Red and Blue for Scrubbers and Air Supply, as
God intended
-Exterior Scrubber added to suck Oxygen out of the air and store it in
the network/a connected Atmos Oxygen Cannister
-Mapping Error corrected, interior vent in the central room was set to
layer 4, and not hooked up.
-Exterior storage closet added for liquid plasma supply following
ridiculous flammability INSIDE of the structure (risks torching the
ENTIRE gas station because of a single spark.)
-Moves Lizard Gas I.D `item` to Modular folder, is currently (and
unnecessarily) in Non-Modular folder without being noted. No bueno.
-Grants access to alter their own air alarm
-Additional Air Scrubber and Vent added to Maintenance backroom
-Additional Air Scrubber and Vent added to Bathroom
-Moves Oxygen Atmos can inside instead of outback, pretty sure the heat
of Lavaland damages it/causes it to leak.

Edit: 
-Edited the Note that formerly mentioned the omni pressure tanks, as
manually fixing the atmos is no longer required as they have been
removed!
-Added Connector port for giant fucking plasma gas tank outside.
Formerly was only for looks, now can actually inject more plasma into
the tank (no one ever will probably but it makes more sense than having
it just, not hooked up to anything)
-Actually connected plasma tank to Plasma connectors of the gas station.
They weren't. For some reason.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->

## Why It's Good For The Game
Overall it fixes a blatant mapping error and prevents a Ghost role from
being scorched/burned out so easily. Pretty sure I don't have to
elaborate on the modular part
<!-- 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. -->

## Proof Of Testing
Tested Locally/It's a very minor map edit. I.D still functions the same,
it's only a movement of the code to a modular folder. No new Run-Time
Errors.
<!-- Compile and run your code locally. Make sure it works. This is the
place to show off your changes! We are not responsible for testing your
features. -->
<details>
<summary>Screenshots/Videos</summary>


![atmospr1](https://github.com/user-attachments/assets/b1d7649b-12ed-4a07-9c41-c74785ca5b2a)

![image](https://github.com/user-attachments/assets/43710ecd-c13d-4722-98aa-d1015f6b7e98)

p.s the fluid ducting as been moved to connect horizontally instead of
vertically, instead of as defined in the pictures.

</details>



<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
2025-02-03 14:18:09 -08:00
SebastionateandGitHub 263eca1dd1 Lavaland/Ice Moon Gas Station Ghost Role Overhaul (#3027)
## About The Pull Request
This PR Overhauls the Gas Station Attendant Ghost role on Ice
Moon/Lavaland oriented maps, featuring a number of changes to overall
orient the role to be more roleplay-related and enjoyable for its
players.
-Mini holo-fans added to each entrance to protect small-space atmos

-Back entrance airlock added, for hooking up the S.O.F.I.E Generator

-TGR Generator replaced with Flatpacked S.O.F.I.E generator, needs to be
set-up outback and has a note explaining such

-60 Sheets of Solid Plasma added for powering S.O.F.I.E generator

-Breakroom Extended by a two tiles to accommodate new flat-packed
machines and current ones, also for the additional cryopod. The map-tile
itself was not extended for this, it had spare space on Ice Moon. The
Lavaland Ruin file however, was, to the same size as the Ice moon ruin.

-An additional gas station employee spawner has been added, and the gear
has been doubled in the locker.

-Two 'Lizard Gas Satchels' have been added to the locker.

-Two 'Double Emergency Air Tank Extended' have been added to the locker
(The former Oxygen tanks could not be attached to the winter coats'
backs on Icemoon, and on Lavaland they have no coat to equip an
airtank).

-An Atmos Oxygen canister has been added behind the Store for refilling
Oxygen tanks.

-Door bolts have been added to the Bathroom, and a new area, the
'Manager's Office' for privacy.

-New area added, the 'Manager's Office', which features 1000 credits of
space cash with a note stating to count it, a desk, an Ancient Circuit
Printer, a wall safe, a fax machine, and a GPS signal in a filing
cabinet.

-The store now has a fax machine, which is hooked up to the NT network
of faxes. Located in Manager's office.

-A GPS has been added named 'Lizard Gas', making the location visitable
and more open to rp. Located in Manager's Office.

-The Gas Station Laser Muskets have been entirely replaced with PKA
Pistols following repeated complaints about their ineffectiveness
against mobs on Lavaland.

-Atmos fixes. Multiple vents were missing/turned off, giving the store
HORRIBLE atmos when anyone entered/exited, or if damage came to its
hull. Fixed piping/vent error, hooked scrubber network to a passive vent
outside, added Omni Nitrogen Pressure tank to ensure atmos remains
flowing with airmix.

-'Lizard Gas Circuit Imprinter' (Ancient Circuit Imprinter) added to
Manager's office

-Added reinforced windows infront of the welding tanks out front,
protecting them from accidental detonation. (THIS HAPPENS A LOT AS A
RESULT OF MOBS ATTACKING THEM/CROSSFIRE. UTTERLY RUINS THE ROLE UPON
DETONATION.)

-Added a smuggler's satchel in the restroom, for tweakers

-Added 'Lizard Gas Employee' card, an I.D for the Ghost role. Comes with
their name and an attached bank account with a starting balance of 0.
This is so they make use of their LustWish vendor in their bathroom, and
store money they make from transactions.

-Enabled the Ghost Role to allow characters to spawn with their
loadouts. It makes no sense not to allow this as most, MOST of it is
cosmetic, and what isn't can quickly be obtained by the readily
available fabricator the base Gas Station, pre-PR, already provides.

-Labeled Airlocks on interior of Gas Station

-Added New Area, 'Abandoned Storehouse', contains the flatpacked
colonist machines from the standard, pre-PR, locker that spawns in the
Gas Station, these items have been removed from the locker itself.

-A crate full of resources has been added to the 'Abandoned Storehouse',
containing the following:
20 iron
10 Gold
25 glass
10 Uranium
10 Titanium
50 wood
20 Plastic
15 Silver

-A wooden shelf in the 'Abandoned Storehouse' was added, containing the
following:

2x Conscript Mining Duffles
2x Orange Hard Hats

(The above was added as currently they only spawn with a Pickaxe and
nothing else, making the role incredibly ridiculously hard to do
anything other than blindly mine and devote to that gameplay loop for
the first half of the round.)

-'Dead Miner' added to Store House along with Russian Revolver. A paper
on the inside of the Gas Station, left by Store Manager Rekinov, details
that they've legally acquired the property recently.

-'Tweaker Gas Station Rat' mob added out back as a controllable NPC. Has
resistances that permit it to survive Lavaland/Ice Moon's
storms/environment. Functions as standard Regal Rat with a bit of
Atmos/Weather resistance. Still dies to burning in Lavaland Round-Start
storm, still playable on round start if you enter the gas station fast
enough.

-'Organics Material Printer' flatpack added to 'Abandoned Storehouse',
let's them print clothes better suited for the environment if their
usual Outfit isn't cutting it

-Hydroponics Starter Crate with Portable Seed Extractor added to allow
farming to the role.

-SMES starts at 0% charge, needs to be powered by the Generator.

-APC starts at 100% charge still. Even if it were to drop to 0%, or is
destroyed, due to Ruin Area Code, the doors will always remain powered
to allow for power-restoration.

-Fixed Run-Time Error regarding Mapping Light Helper on Ice Moon.

-Removed some of the empty/loot crates out back as they were unnecessary
and were taking up space.

-Added a fence with gate outback, looks better/Protects you from mobs
while setting up the Generator. Has a gate you can open.

## Why It's Good For The Game

The Gas Role is incredibly difficult/boring for no reason. It's not a
survival role. That's what Hermit is for. The Gas Station Role is a
funny Ghost Role with the plot/gameplay loop of isolated development,
mixed in with the general combat/mining loop of the planetside of the
station, while also offering potential roleplay to anyone that may be in
the area (It ONLY spawns on the top layer of Ice Moon, i.e the Station's
Z-Level, and Lavaland, making it very visitable by Miner roles/other
Ghost Roles that spawn around said areas)

These changes, overall, make for a duo-oriented roleplay position that
has no other responsibility than what they make of it. The additional
spawner is most certainly the easiest benefit of this Overhaul, seconded
by the GPS that miners and any role can now discover with ease should
they wish to stop by for a chat/roleplay scenario.

## Proof Of Testing

The maps and I.D code have been tested repeatedly with no error. I won't
cover every little detail mentioned above in my screencaps but rather
the broad strokes of such in-game on my local-host.

Here are some screenshots, additionally here are the mapfiles if you'd
like to pop them into an editor to have a look for yourselves:

[icemoon_surface_gas_bubber.zip](https://github.com/user-attachments/files/18612116/icemoon_surface_gas_bubber.zip)

[lavaland_surface_gas_bubber.zip](https://github.com/user-attachments/files/18612117/lavaland_surface_gas_bubber.zip)
<details>
<summary>Screenshots/Videos</summary>


![gasoverhaul1](https://github.com/user-attachments/assets/5b27bd15-d676-44d4-91b8-9278882e1c2d)

![gasoverhaul2](https://github.com/user-attachments/assets/630ee3a9-1cfd-4f4b-b147-9b80720a7d7b)

![gasoverhaul3](https://github.com/user-attachments/assets/03050691-cf40-4d10-bf36-f88e675465dd)

![gasoverhaul2](https://github.com/user-attachments/assets/ecc25274-2fb5-4e80-bdcd-1d3292d28164)

![gasoverhaul6](https://github.com/user-attachments/assets/2ca4472a-2ef0-486d-99f7-ee848a24cb5d)

![gasoverhaul7](https://github.com/user-attachments/assets/9d3eb8b0-6079-4bb1-adb9-82dfc5592e79)

</details>

## Changelog
-Overhaul to the 'Gas Station Attendant' Ghost Role. 
🆑 Rathen Ivanonv
add: Added more supplies/gear to Gas Station Attendant Ghost Role
add: Added I.D/Bank Account to Gas Station Attendant Ghost Role
add: Added an additional spawn to Gas Station Attendant Ghost Role
add: Added a Regal Rat spawn to Lavaland/an additional one to Ice Moon
add: Many more beneficial changes to the Gas Station Attendant Ghost
Role
map: Overhauled Lavaland/Ice Moon Gas Station with three new areas
balance: Removed Laser Musket from Gas Station Ghost Role, replaced with
PKA Pistols
/🆑
2025-02-03 02:24:33 +02:00
SmArtKarandGitHub fa396269ba Fixes head IDs not giving large pointers while slotted into a wallet or PDA (#89177)
## About The Pull Request

Closes #88618
Head IDs now keep the large pointer effect when slotted into a PDA or
displayed as the front ID in a wallet

## Changelog
🆑
fix: Head IDs now keep the large pointer effect when slotted into a PDA
or displayed as the front ID in a wallet
/🆑
2025-01-25 23:07:35 +11:00
RhialsandGitHub 2e7be24aad Honor-riffic: Adds toggleable honorific titles to certain job ID trims (#88309)
## About The Pull Request

This implements a new, minor, but flavorful system to IDs -- Honorifics.
Does going by your full name not suit you? Do you demand respect for the
position on Space Station 13 that you've earned and want to be addressed
by your title? Do you take yourself WAY too seriously? This is for you.

Toggled by ctrl-clicking your ID, honorifics append a title to your name
depending on your position. Certain titles (Captain, Officer, Doctor,
etc.) will only append to the start (replacing or including the
first/last name), while others (PhD., Esq.) can only be appended at the
end.


![image](https://github.com/user-attachments/assets/3ae22744-5f6e-4d12-9ea8-ecd60456b5a9)

Each job TRIM has a set honorific and positions it can be assigned to. A
doctor can be "Doctor Peterson" or "Doctor Peterson Bungle" or "Doctor
Bungle". A Lawyer can only choose to be "Peterson Bungle, Esq.".

This will only occur when the speaker's voice is the same identity as
the one written on the ID's registered name. This should not interfere
with Unknown voice obfuscation, stolen ID shenanigans, or anything
gameplay-oriented. Hopefully.

This feature is also mononym friendly!


![image](https://github.com/user-attachments/assets/21555023-5dd0-49e0-acd5-2dd0a06ae621)

This also makes `first_name()` and `last_name()` global procs, and adds
one to check if a passed string has spaces/dashes/whitespace/whatever.

All of this is compatible with ID name changes, but the voice name must
align with the card name to display the honorific. If you are "Peter
Stinkypants" with your honorific set to display "Doctor Stinkypants",
and your ID's registered name is changed to "Peter Stinker", you show up
as "Peter Stinkypants (as Peter Stinker)" with no honorific provided. If
you become "Peter Stinker" and have a "Peter Stinker" ID, you will show
up as "Doctor Stinker" once again.

That all make sense? Great.

<details>
<summary>So about the ID name stuff...</summary>
<br>
So, when you activate an honorific on your ID, it DOES change the actual
object's name. Not the registered name, but the ID's name will go from
"Peter Dawson's ID card" to "Captain Dawson's ID card" when an honorific
is applied. This, as far as I've tested, does not mess with anything
important, but I can totally see it doing so in a way that makes
ctrl-Fing through logs harder than it needs to be. This could probably
be changed without too much effort so if the issue does arise I can fix
it. If not I am totally fine with reverting this PR until I can make it
work (if I can at all).
<br>


Admittedly this doesn't have much testing with holopads/radios, but I'm
confident the message composure is handled well enough to only display
the right names under the right circumstances. If this fucks up logging
or naming in any way tell me ASAP because I have a sinking feeling it
will in a way more catastrophic than I could ever predict. This PR has
been tested thoroughly but I have my limits.
</details>
2025-01-20 20:18:49 +00:00
SmArtKarandGitHub 175e8bd7d7 Fixes chameleon cards not updating sechud icons (#88899)
## About The Pull Request

Closes #88510
Also fixed incorrect icon positioning on Big Brother's trim (Human AI)
and medieval punpun icon flickering

## Changelog
🆑
fix: Fixed chameleon cards not updating sechud icons
image: Fixed human AI's and medieval punpun's ID trims
/🆑
2025-01-11 18:37:22 +01:00
grungussussandlessthanthree fc7018deac Id card handling sounds (#87193) 2024-11-16 00:42:14 -08:00
grungussussandGitHub 0e1524c432 Writing sound (#87772)
## About The Pull Request
completes
https://github.com/orgs/tgstation/projects/19/views/1?pane=issue&itemId=85235611


https://github.com/user-attachments/assets/087c88bd-9ddd-4e57-972d-fe66084d19bc
## Why It's Good For The Game
maybe now someone will notice you wrote something
## Changelog
🆑 grungussuss
sound: writing something now produces sound
/🆑
2024-11-10 17:52:29 -05:00