Commit Graph
1460 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
ee388c204f More love to paramedic: revamping/adding paramedic offices, new access and more! (#93457)
## About The Pull Request

most of info in changelog, here i'll pin some screenshots. 
(also didnt touch catwalk on purpose since its medbay in process of
rework)

<details><summary>Screenshots</summary>


### Example of paramedic dispatch area, before it was used only on 2
maps:
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/ca6f0ba6-93ed-4386-a94d-63b90985ef27"
/>
   
### Example of how I changed pallete to match paramedic outfit: dark
color mixed with blue
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/e7acef94-2fd3-4fb4-9abf-5b83fd5cd738"
/>

### Icebox
<img width="463" height="320" alt="image"
src="https://github.com/user-attachments/assets/3e12aa10-caac-4b6e-89e8-81690d979150"
/>

(moved chem storage south)
<img width="534" height="476" alt="image"
src="https://github.com/user-attachments/assets/863a0644-520b-40a7-9deb-f1174b252757"
/>


### Tramstation
<img width="518" height="504" alt="image"
src="https://github.com/user-attachments/assets/f410f6c8-e2ee-423e-838c-03643ea1499f"
/>

(removed elevator and replaced with some public atmos equipment)
<img width="353" height="727" alt="image"
src="https://github.com/user-attachments/assets/df635bb5-5692-4367-b2b6-7c8df3c6c9a4"
/>

(theres new hall to replace the elevator path)
<img width="857" height="725" alt="image"
src="https://github.com/user-attachments/assets/15d12685-c9a0-44b5-a916-41766b12677c"
/>


### New locker that has all kind of stuff for emergencies!
<img width="186" height="155" alt="image"
src="https://github.com/user-attachments/assets/c1e40fd6-44f7-48e0-a5e4-ecb9fc562627"
/>


</details>

## Why It's Good For The Game

Since paramedic got more attention now, I feel it would be wise to
separate paramedic content (jaws and medical suit) from general medbay
and doctors.
<img width="382" height="135" alt="image"
src="https://github.com/user-attachments/assets/750e0d4c-7011-41e5-8ec4-d5f05f6c3515"
/>

For locker part: I think paramedic should have own locker with all kind
of emergency items/drip items instead of bloating items on the tables.


## Changelog

🆑
add: Added new medical access for paramedics.
map: Added paramedic dispatch on: TramStation and IceBox, removed
elevator from Tram and moved chemstorage on IceBox.
map: Paramedic dispatch area is used on every paramedic office now.
map: Medical MODsuit and Jaws of Recovery moved to paramedic office.
map: Redesigned northern medbay on MetaStation.
sprite: Paramedic locker was added.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-10-22 23:37:24 +00: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
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
MrMelbertandGitHub e85674d366 Unified CMO blues slightly, updates garment bags slightly, updates CMO locker contents slightly (#93321)
## About The Pull Request

### CMO palette update

Before - after

<img width="533" height="324" alt="image"
src="https://github.com/user-attachments/assets/c8a843a6-875d-4796-8c62-d24dd509147b"
/>

Logical follow up to #93313 and #91902

CMO now has a backpack which matches their teal palette rather than
re-using the medical doctor's blue backpack

CMO now starts with white sneakers instead of blue sneakers

### Garment bag update

Garment bags can hold backpacks, duffels, etc. 

However they CANNOT store backpacks which have ANY contents, so no risk
of storage nesting memes here.

### Misc

Removed the defib mount from the CMO's closet

Minor bugfix for being unable to swap storage positions of items which
were instantiated in a storage

## Why It's Good For The Game

- Much like the Paramedic, the CMO has had many cooks which have not
always been on the same page, so this makes their sprite a bit more
coherent.

- Heads with unique packs just tossed them in their closet which is
pretty spammy given we have four variants now. Putting them in the
garment back makes sense.

- Defib mount in CMO's locker hasn't been necessary for a while now that
all treatment centers spawn with defib mounts.

- Bugfix.

## Changelog

🆑 Melbert
image: CMO now has unique backpack/satchel/etc. sprites which matches
their teal palette.
image: CMO spawns with white sneakers instead of blue sneakers.
qol: Garment bags can hold empty backpacks/satchels/etc.
del: Defib mount removed from CMO's locker.
fix: Items stocked in a storage item by default can be
mouse-drag-swapped like any other item.
/🆑
2025-10-13 00:16:49 +02:00
necromanceranneandGitHub 8166d8f357 Turns the chaplain's energy swords into...energy swords. (#93394)
## About The Pull Request

The chaplain's energy swords were weird fake energy swords that couldn't
be turned on or off. This is largely because, in the past, we couldn't
easily convert other objects into null rods conveniently. Though we did
get the transforming component, it never was added to the chaplain
weapons. Maybe because there would be a lot of copypasted code.

Now, with the ``nullrod_core`` element, we can easily turn an object
into a null rod. So I did that. It's now an energy sword AND a null rod.
The future is now.

For clarity, the stats on the null rods are identical to before. The
only difference being that it has the ability to switch on and off, and
it now emits light. That's it really. If there are any extra stats I
missed, let me know.

Also adds the carp'sie plushie to the list of wearable objects for
chaplain suit storage.

## Why It's Good For The Game

This has bugged me like, for a really, really long time. And we now have
a lot of the bits and pieces to make more of the null rods actually
closer to the objects they're ripping off.

## Changelog
🆑
qol: The chaplain energy swords now work like energy swords. Turn them
on and off! Light your way with the blade. Light a cigarette with your
blade like a badass. Feel bad that it isn't a REAL energy sword.
fix: The carp'sie plushie now fits in chaplain suit storage.
/🆑
2025-10-12 05:37:29 +02:00
GhomandGitHub aa4cf2b136 The nullrod refactor (the carp-sie plushie is now actually a plushie) (#93311) 2025-10-10 13:42:33 +11:00
necromanceranneandGitHub 204ba28c18 Changes the vorpal scythe to use attack_modifiers (#93356)
## About The Pull Request

What it says on the tin. Otherwise, no functionality change.

## Why It's Good For The Game

This actually cleanly resolves an edge case bug, and this is a weapon
that benefited from this refactor quite nicely.
2025-10-09 12:39:05 -05:00
GhomandGitHub f72eb75a6f Handcuffs can now be used to bind certain items (briefcases, toolboxes, etc.) to your hand. (#93305)
## About The Pull Request
Technically, this PR introduces the cuffable_item element and the
cuffed_item status effect and their relative code.

In more player-friendly terms, this allows the ability to use handcuffs
to bind certain items to your hands by right-clicking it with a pair of
handcuffs in your active hand. This makes the item unable to be dropped,
for better or worse, until you or someone else remove said cuffs. And
no, this doesn't conflict with the ability to be handcuffed if you're
silly enough to think that.

There are more than one way to remove the cuffs. For the player with the
item cuffed to their hand, to remove the cuffs they can either click the
status alert, or examine the item and click the relative hyperlink. The
second option is good to have if for some reason the status alert
doesn't show up (too many alerts etc.).

For other people, they can remove the cuffs by opening the strip
inventory menu (the one you open by click-dragging the sprite of person
with the item onto yours). It's an alternative action specific to this
status effect (therefore only held items). Until the cuffs are removed,
trying to remove the item **directly** will bring you nowhere **because
the item is stuck to their hands**, duh. Alternatively you can just chop
their arm off. You do what you do.

For a list of items that can be bound with cuffs (suggestions welcome):
- briefcases
- toolboxes
- lockboxes
- first aid kits
- shields (they generally have handles and all. gameplay-wise they
already take away one hand slot to use. Using cuffs seals the deal: no
swapping items on the go, so no two-handed weapons, but you won't drop
the shield until it's broken)
- jerrycans (Kryson's suggestion)
- soup pots (ditto, kinda weird)
- coffee mugs, and the mauna mug (ditto)
- buckets
- plushes (silly stuff, if you ever want to arrest a plush or test the
feature)
- pet carriers
- mining drills
- swords with closed guards (ERT chainsaw-sword, cap's sabre, parsnip
sabre, cutlass, e-cutlass...)
- crutches and the white cane
- baskets
- flashlights and lamps (not subtypes like flares, glowsticks and
torches)
- TTVs
- chairs

## Why It's Good For The Game
This opens up for some emergent use for handcuffs beside people (or
prisoner shoes). Inspired by a scene of some 1998 action movie, where
one of the bad guys had the mc guffin briefcase latched to his wrist
with a pair of handcuffs.

Codewise, it was also a reason to refactor bits of code like handcuffs
and screen alerts slightly. On a sidenote, actual sprites for
cult/heretic shackles.

## Changelog

🆑
add: You can now bind certain items like briefcases, toolboxes, medkits,
shields, jerrycans etc. to your hand with a pair of handcuffs,
preventing them from being dropped. You can remove said binds at any
time unless incapacitated, and so can others through the strip inventory
menu.
qol: The appearance of a screen alert now updates if the object it
represents (like, an item offered by another player) changes appearance.
imageadd: The shadow shackles item (from cult magic and heretic
sacrifices) now has its own icon.
/🆑
2025-10-07 05:24:20 -06:00
MrMelbertandGitHub 601f6faea5 Chainsaw nullrod fix (#93283)
## About The Pull Request

Fixes #93280

It would give you the null rod arm, then equip the null rod, then try to
give you the null rod arm again, which removed your null rod arm and
caused... problems

## Changelog

🆑 Melbert
fix: Fixed chainsaw nullrod
/🆑
2025-10-05 16:24:35 -06:00
xPokee 8aa39b75f0 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-04 05:28:09 -04:00
MrMelbertandGitHub 90f2b92c0f Fix latejoin seccies teleporting to departments (#93259)
## About The Pull Request

Don't send latejoins to their departments, let them ride the shuttle

Why did this break? My GUESS Is that this uses `Move` for some reason
instead of `forceMove`, and as latejoiners spawn buckled, it stopped
them from moving

Meaning #93250 also fixes it but let's just nip the issue in the bud and
NOT teleport latejoiners

## Changelog

🆑 Melbert
fix: Latejoin officers no longer teleport
/🆑
2025-10-04 04:36:28 +02:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
MrMelbertandGitHub 44acefa73f More things use trait huds over raw hud management (#93084) 2025-10-02 21:36:40 +02:00
3ea7b03369 Accentuate the positive with **Personality**: A (soft) mood rework (#92941)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-10-02 19:00:13 +00:00
ArchemagusandGitHub 6f834fb418 AAS code cleanup (#93158)
## About The Pull Request

- Added full support for RETA system
- Categorized all configs for search purposes
- Added channel check for most usages of get_announcement_system() calls
## Why It's Good For The Game
## Changelog
🆑
code: Little AAS code cleanup. Added full RETA support. Grouped configs
for search purposes.
/🆑
2025-10-02 18:17:38 +00:00
John WillardandGitHub d3dd437437 Lobby TV screen shows an icon of the overflow job (#93023)
## About The Pull Request

Hey so remember that TV thing I added, and I wanted it to be useful for
overflow jobs so I added it in, but couldn't make it look good with
runechat so I made it only appear post-roundstart, rendering it utterly
useless?

Yeah, I do too, so I've come back to fix it with the help of stealing
other people's code (I'm a lazy individual) - Taking Absolucy's work in
https://github.com/Monkestation/Monkestation2.0/pull/4589 for this.

Now it shows an icon of the job with an active overflow under the TV's
effects, and has a tooltip if you hover over in case you don't
understand what it's demonstrating.


https://github.com/user-attachments/assets/97489f93-f40d-47f9-aea2-6cc32c8fcba3

## Why It's Good For The Game

The TV shows overflow information before the round starts, allowing
people to actually see and react to the information rather than only
being shown to latejoiners. I prefer it this way as I don't want to have
to ensure the different things we may put on the TV's runetext all shows
up properly.

## Changelog

🆑 Absolucy, JohnFulpWillard
image: The Lobby TV now shows an icon of the overflow job.
/🆑
2025-10-02 20:04:39 +02:00
John WillardandGitHub fd752f043d Easy multi-z support for alarm console (+spawn changes) (#93198)
## About The Pull Request

Station alarm consoles now register to all Station Z levels+Areas if
they were created on a station Z level (this doesn't include mining, but
station ones will see mining areas), otherwise will be a "local" console
to that Z level only.

Mostly the same applies for Cyborg/AI, but if they were built on a
non-station Z level then they have their Z level added on top of Station
Z levels, so example Nukie saboteur borgs will see alarms they might
need, while a Golem/Oldstation AI will also be able to see their own
alarms.

Because of how alarms and spawning in worked, Cyborgs/AIs had CentCom's
Z level as something it would detect, so we simply create the mob at the
spawn location rather than on the title screen during Initialization,
fixing that issue as well.

## Why It's Good For The Game

Adds easy multi-z support for station alarms and removes the previous
bandaid of having to deconstruct your board and multitool it or map in
every single station alarm console to allow station alerts (which is
quite silly) which was done in
https://github.com/tgstation/tgstation/pull/88343.

Closes https://github.com/tgstation/tgstation/issues/61592
Closes https://github.com/tgstation/tgstation/issues/83042
Closes https://github.com/tgstation/tgstation/issues/69314

I find this solution better since it catches pretty much all use cases
without the need for special subtypes and needing players to actually
know the difference between these things.

## Changelog

🆑
fix: Cyborgs and AIs will now see alerts of the whole station rather
than solely the Z level they were spawned on.
fix: Cyborgs and AIs will no longer get alerts about Thunderdome.
/🆑
2025-10-02 18:12:57 +02:00
589a98038b Makes Bridge Assistant Permanent instead of a trait (#4537)
## About The Pull Request

Re-adds Bridge Assistant as an available role, for 30 days (Potentially
permanently, if staff approve). This also spawns a coffeemaker aboard
the Bridge each shift. :3

## Why It's Good For The Game

So, per debates on Discord, we've run into concerns around Blueshield
player quality, and concerns that BS is oftentimes very popular because
it's a method of flirting with Command staff. Additionally, BA is very
beloved as a trait, and I'll be honest, it's a relatively harmless role
to add. You solely have access to the Bridge, and you're basically there
to fetch coffee, do paperwork, and be Command's sleeve. You know what I
mean by that. ;3c

My personal opinion is that we should keep it permanently, regardless of
what happens with Blueshield. A role dedicated to literally doing
nothing but idle RP with Command should help for those who want to just
RP and relax, and it's fitting to have an assistant fetching you coffee,
running paperwork for you, and potentially turning traitor. (Right now,
it can't roll traitor, but we can enable that on request.)

## Proof Of Testing

N/A, but it's in the occupation list along with a long list of alt
titles. :3

## Changelog

🆑 Luna/Rykka
add: Adds Bridge Assistant back to Occupations
/🆑

---------

Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com>
Co-authored-by: nevimer <foxmail@protonmail.com>
2025-10-02 00:00:30 +03:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
c0f8e7bb5c Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.

To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).

Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.

Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.

Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).

## Why It's Good For The Game

The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.

More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.

## Changelog

🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 08:10:35 +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 65852c9362 Removes Captain from the security department (still under sec in the ban panel) (#92940)
## About The Pull Request

Removes the security department from the Captain 

Captain still remains under Security in jobbans

<img width="436" height="74" alt="image"
src="https://github.com/user-attachments/assets/ffac3488-282c-458e-80f1-82fd316fb006"
/>

## Why It's Good For The Game

There seemed to be a common misconception that the Captain was
officially integrated into security as a consequence of the Captain
gaining security department for the purpose of jobban sorting

However, Captain is *not* a member of Security.

## Changelog

🆑 Melbert
del: Captain's no longer sorted under Security in places such as the
manifest or job selection
/🆑
2025-09-11 23:05:04 -07:00
xPokee 939f2fc9ac Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync 2025-09-10 14:12:16 -04:00
Xander3359andGitHub b78fefd4d4 Replaces T2 Tools with T1 Versions in CE Toolbelt (#92872)
## About The Pull Request
Removes the T2 tools from CE belt
## Why It's Good For The Game
The T2 tools are bad because:
1. It encourages heads to play their subdepartment’s roles instead of
their own, which is to manage their department, delegate tasks, and
teach newer players.
2. It encourages bad command players to take the role for the gear
instead of leaving it for the people who want it for the command.

This also sets a bad precedent, people always point at the CE for reason
why other heads should get more advanced gear, so this would be a hard
bandaid to rip off but I think it is necessary.
## Changelog
🆑
balance: Downgraded CE tools to T1 instead of T2
/🆑
2025-09-07 20:50:16 -04:00
nevimer b348b617a3 Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts:
#	README.md
#	code/__DEFINES/admin.dm
#	code/__DEFINES/melee.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/economy.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/elements/crusher_loot.dm
#	code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
#	code/modules/clothing/suits/_suits.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/mining/equipment/mineral_scanner.dm
#	code/modules/mob/living/living.dm
#	code/modules/plumbing/plumbers/pill_press.dm
#	tgui/packages/tgui/interfaces/Vending.tsx
2025-09-07 00:37:52 -04:00
nevimer c9956892db Merge remote-tracking branch 'origin/master' into pupstream-08-19-keepsha
# Conflicts:
#	_maps/map_files/BoxStation/BoxStation.dmm
#	code/_globalvars/lists/flavor_misc.dm
2025-09-03 21:03:51 -04:00
67d27ffe91 Accounting Glowup: Advances, Pay raises and cuts, and more (#92419)
## About The Pull Request

Fixes #92188

1. The Accounting console now has a new UI

<img width="757" height="486" alt="image"
src="https://github.com/user-attachments/assets/0c6ce73f-ae1c-4a54-b6ba-bcc3b3232d13"
/>

2. The Accounting console can now dish out advances on paychecks, giving
you for full paycheck early. You can give up to 3 advances. This of
course means your next paycheck is not paid out when relevant.

3. The Accounting console can now change paycheck sizes of crewmembers -
up to 1.5x and down to 0.5x.

## Why It's Good For The Game

- Gives the HoP some more duties, now being able to dish out money on
request, reward good behavior, or punish bad behavior.

## Changelog

🆑 Melbert
add: Accounting Console: New UI!
add: Accounting Console: Now can give advances to crewmembers
add: Accounting Console: Can now give pay raises or pay cuts
add: Accounting Console: Now only printable in the security lathe
add: Accounting Console: A spare board is now now found in secure tech
storage.
fix: Fix vending machines adding payments to audit log twice.
fix: Non-crewmembers are no longer shown in the accounting console
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2025-09-02 18:57:20 -07:00
Col.RiceandGitHub 9aecebe231 [BOUNTY] Add frontier clothing from organic printer to the loadout menu [2.0 - Electric boogalo] (#4593)
## About The Pull Request
This add frontier equipment that is found in the frontier organic
printer.

The PR has been tested and functional codewise.
## Why It's Good For The Game
Created because of a bounty on Discord by user mrgloopy. This add no
advantage variant of the frontier clothing pieces such as jacket,
gloves, mask and hat. The original pieces are still kept if the
player(s) require armoured variant. These variants are solely for drip
purpose. Of which the user has stated in their bounty. This sentiment is
shared among other players. After all... Drip is good.

## Proof Of Testing

<img width="375" height="555" alt="image"
src="https://github.com/user-attachments/assets/2e48d1d5-577f-465f-af7b-7462af2c6376"
/>

<img width="299" height="575" alt="image"
src="https://github.com/user-attachments/assets/bf015a07-ec9d-4555-884b-5e199f0535f2"
/>

<img width="180" height="156" alt="image"
src="https://github.com/user-attachments/assets/25e1be7c-f6f7-4574-ab95-9a9d0e62b090"
/>

<img width="218" height="300" alt="image"
src="https://github.com/user-attachments/assets/63d74ddf-ba82-4989-bb13-536f09d2aec2"
/>

<img width="598" height="230" alt="image"
src="https://github.com/user-attachments/assets/1085230c-fe46-46b7-8a75-d2115cca6e2c"
/>

<img width="603" height="190" alt="image"
src="https://github.com/user-attachments/assets/6bb3616d-c610-4af1-9d63-ec173998e080"
/>

<img width="1100" height="837" alt="image"
src="https://github.com/user-attachments/assets/08580f6d-d34f-4669-89a9-b4945998fa66"
/>

## Changelog

🆑
add: frontier caps.
add: frontier jacket.
add: frontier gas mask.
add: frontier jackboots.
add: frontier jumpsuit.
add: frontier bags.
add: frontier gloves.
code: added new define for frontier bags in character creation menu.
code: added icon define for frontier bags.
code: added frontier bags to spawn roundstart from character creation.
🆑
2025-09-02 12:07:40 +03:00
Thunder12345andnevimer 20118ad747 Converts a bunch of time/delay vars to use time defines (#92495)
## About The Pull Request

Converts as many time vars expressed in deciseconds as I could find to
use time defines.

## Why It's Good For The Game

Makes these values neater and more readable.

## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
# Conflicts:
#	code/modules/clothing/head/hat.dm
#	code/modules/clothing/shoes/boots.dm
#	code/modules/clothing/suits/utility.dm
2025-08-19 22:38:55 -04: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
Thunder12345andnevimer ee72a60e34 Makes chaplain armour have consistent wound protection (#92477)
## About The Pull Request

Eliminates the separate armour datums for chaplain helmets and clock
armour, which were identical to the regular suits apart from a missing
wound protection. These items now use the same armour datus as everthing
else.

Incidentally removes a useless redefinition of a var to the parent's
value, and adds missing time defines.

Fixes #92448

## Why It's Good For The Game

It makes more sense for these values to be consistent between matching
suits and helmets, and also between otherwise functionally identical
clock around and all the other sets.

## Changelog
🆑
fix: Chaplain helmets and clockwork armour now have the same wound
protection as the other chaplain body armours.
/🆑
2025-08-19 22:30:40 -04:00
Thunder12345andGitHub 260960d6f4 Converts a bunch of time/delay vars to use time defines (#92495)
## About The Pull Request

Converts as many time vars expressed in deciseconds as I could find to
use time defines.

## Why It's Good For The Game

Makes these values neater and more readable.

## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
2025-08-12 18:30:25 -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
Thunder12345andGitHub 376b3e07ae Makes chaplain armour have consistent wound protection (#92477)
## About The Pull Request

Eliminates the separate armour datums for chaplain helmets and clock
armour, which were identical to the regular suits apart from a missing
wound protection. These items now use the same armour datus as everthing
else.

Incidentally removes a useless redefinition of a var to the parent's
value, and adds missing time defines.

Fixes #92448

## Why It's Good For The Game

It makes more sense for these values to be consistent between matching
suits and helmets, and also between otherwise functionally identical
clock around and all the other sets.

## Changelog
🆑
fix: Chaplain helmets and clockwork armour now have the same wound
protection as the other chaplain body armours.
/🆑
2025-08-11 20:38:43 +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
panvxvandnevimer 2ae097d92d Chaplain's armors fixes and tweaks - matching body parts covered with coresponding sprites (#92446)
## About The Pull Request
Matching body parts covered of chaplain's armor to sprites. I think a
leftover from times when those armours where subtype of riot armour.

<img width="75" height="69"
alt="474691928-183826a3-79e5-431e-aed5-b9a02a2c382e"
src="https://github.com/user-attachments/assets/072228c8-6b04-4aef-b656-aae757af6a7a"
/>

Adept armor was covering arms, hands and feet yet it sprite wasn't
covering those parts. In exchange gave bone bracers to the kit so it
wasn't the worst choice.
<img width="66" height="77" alt="obraz"
src="https://github.com/user-attachments/assets/f3b3ab73-df07-4dc9-890a-47122163f3f5"
/>

Same for Divine Archer coat. It's unique boots and bracers now have
armor. Boots provide less protection to keep the archer comfortable
while on the move (RP reason). (Real reason: so armor from coat and
boots don't give too much legs protection)

## Why It's Good For The Game
Makes Chaplain's armor less confusing. No exposed arms with secret 50%
melee resist. Exposed limbs are actually exposed.
Profane Kit getting something unique - really strong helmet against
melee.
## Changelog
🆑
add: Bone bracers to Divine Adept kit
qol: Adept robes doesn't cover arms, hands and feet as to match the
sprite
qol: Ancient armour doesn't cover hands as to match the sprite
qol: Divine Archer coat doesn't cover arms, hands and feet as to match
the sprite
qol: Divine Archer bracers now have the same armor as Divine Archer coat
balance: Divine Archer boots have their own unique armor
/🆑

(cherry picked from commit 255801a668)
2025-08-08 15:32:33 -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
panvxvandGitHub 255801a668 Chaplain's armors fixes and tweaks - matching body parts covered with coresponding sprites (#92446)
## About The Pull Request
Matching body parts covered of chaplain's armor to sprites. I think a
leftover from times when those armours where subtype of riot armour.

<img width="75" height="69"
alt="474691928-183826a3-79e5-431e-aed5-b9a02a2c382e"
src="https://github.com/user-attachments/assets/072228c8-6b04-4aef-b656-aae757af6a7a"
/>

Adept armor was covering arms, hands and feet yet it sprite wasn't
covering those parts. In exchange gave bone bracers to the kit so it
wasn't the worst choice.
<img width="66" height="77" alt="obraz"
src="https://github.com/user-attachments/assets/f3b3ab73-df07-4dc9-890a-47122163f3f5"
/>

Same for Divine Archer coat. It's unique boots and bracers now have
armor. Boots provide less protection to keep the archer comfortable
while on the move (RP reason). (Real reason: so armor from coat and
boots don't give too much legs protection)

## Why It's Good For The Game
Makes Chaplain's armor less confusing. No exposed arms with secret 50%
melee resist. Exposed limbs are actually exposed.
Profane Kit getting something unique - really strong helmet against
melee.
## Changelog
🆑
add: Bone bracers to Divine Adept kit
qol: Adept robes doesn't cover arms, hands and feet as to match the
sprite
qol: Ancient armour doesn't cover hands as to match the sprite
qol: Divine Archer coat doesn't cover arms, hands and feet as to match
the sprite
qol: Divine Archer bracers now have the same armor as Divine Archer coat
balance: Divine Archer boots have their own unique armor
/🆑
2025-08-07 14:13:15 +00:00
SmArtKarandRoxy ad3493ea32 Fixes fire arrow ritual not appearing, and certain nullrods not being considered valid for dispelling/conversion purposes (#92375)
We have multiple "nullrods" which aren't actually ``/obj/item/nullrod``
subtypes, which causes runtimes when selecting them, which prevented the
signal from being sent out and the global variable from being assigned.
Additionally, we have multiple interactions which directly typecheck for
the nullrod item, which blocked multiple interactions (dispelling
heretic runes, rends, haunted items, psyker revolver and cult blade
conversion), which I fixed by instead converting those interactions to
check for ``TRAIT_NULLROD_ITEM`` which is assigned to all nullrods and
non-nullrod weapons spawned from the nullrod.
- Closes #77373

🆑
fix: Fixed fire arrow ritual not being accessible
fix: Fixed certain nullrod types not being usable for certain holy and
unholy interactions
/🆑
2025-08-04 20:53:37 -04:00
SmArtKarandGitHub 8bd66b1d21 Fixes fire arrow ritual not appearing, and certain nullrods not being considered valid for dispelling/conversion purposes (#92375)
## About The Pull Request

We have multiple "nullrods" which aren't actually ``/obj/item/nullrod``
subtypes, which causes runtimes when selecting them, which prevented the
signal from being sent out and the global variable from being assigned.
Additionally, we have multiple interactions which directly typecheck for
the nullrod item, which blocked multiple interactions (dispelling
heretic runes, rends, haunted items, psyker revolver and cult blade
conversion), which I fixed by instead converting those interactions to
check for ``TRAIT_NULLROD_ITEM`` which is assigned to all nullrods and
non-nullrod weapons spawned from the nullrod.
- Closes #77373

## Changelog
🆑
fix: Fixed fire arrow ritual not being accessible
fix: Fixed certain nullrod types not being usable for certain holy and
unholy interactions
/🆑
2025-08-01 02:52:51 +02:00
MrMelbertandRoxy 6e1e5f9880 Allows set_blood_type to take strings (#92242) 2025-07-30 17:37:42 -04:00
NickandRoxy 87e6b50ea2 Makes both chefs spawn roundstart instead of just 1(correct branch edition) (#92314)
## About The Pull Request
This PR allows both chefs spawn roundstart

## Why It's Good For The Game
Only 1 chef can spawn roundstart where the other can only latejoin i
think its dumb to be restrictive like that, theres alot of arguements
that two chefs is fucking ass to play in a kitchen, but that shouldn't
mean it should be restrictive like this either pick a poison let both
chefs spawn roundstart or just dont have two chefs at all

## Changelog

🆑 Ezel
qol: Both chefs can now spawn roundstart
/🆑
2025-07-30 17:37:40 -04:00
MrMelbertandRoxy 72f4ca3498 HoP traitors may get an objective to kill the Captain and steal their ID (#92153)
## About The Pull Request

HoP traitors have a chance to get an objective to "replace the captain"
requiring they assassinate the captain and steal their (or any) gold id.

It can only be rolled if there's a captain (obviously) 

## Why It's Good For The Game

Figured we could give certain jobs fun unique objectives which lean into
some common sci fi tropes, like "untrustworthy second in command". In
this case, it'd be pretty fitting for a hop to have enough and try to
take over the station themself.

However I kept the flavor pretty broad - for some they might take the
objective as "I'm becoming the new captain", for others it might be "I'm
jealous of their cool ID card".

## Changelog

🆑 Melbert
add: HoP traitors can get an objective to "replace the captain" -
requiring they assassinate the captain and steal their id.
/🆑
2025-07-30 17:37:36 -04:00
Joshua KidderandRoxy 9ad0a0f14d Vars .outfit and .plasmaman_outfit on /datum/job are typed to datum/outfit and datum/outfit/plasmaman respectively (#92289)
## About The Pull Request
I noticed that these two variables defined on the job datum are plain
root variables rather than being typed; and so, I modified them to be
typed to what they should otherwise always be set to.

## Why It's Good For The Game
Implements something approaching slightly more type safety and inference
for these vars.

## Changelog
🆑 Bisar
code: The .outfit and .plasmaman_outfit variables on the job datum are
now defined to their expected types.
/🆑
2025-07-30 17:37:33 -04:00
MrMelbertandGitHub dba39d33c7 Allows set_blood_type to take strings (#92242) 2025-07-28 05:15:07 +02:00
NickandGitHub 211d5971da Makes both chefs spawn roundstart instead of just 1(correct branch edition) (#92314)
## About The Pull Request
This PR allows both chefs spawn roundstart

## Why It's Good For The Game
Only 1 chef can spawn roundstart where the other can only latejoin i
think its dumb to be restrictive like that, theres alot of arguements
that two chefs is fucking ass to play in a kitchen, but that shouldn't
mean it should be restrictive like this either pick a poison let both
chefs spawn roundstart or just dont have two chefs at all

## Changelog

🆑 Ezel
qol: Both chefs can now spawn roundstart
/🆑
2025-07-27 14:15:11 -04:00
MrMelbertandGitHub 1fae9d4ab4 HoP traitors may get an objective to kill the Captain and steal their ID (#92153)
## About The Pull Request

HoP traitors have a chance to get an objective to "replace the captain"
requiring they assassinate the captain and steal their (or any) gold id.

It can only be rolled if there's a captain (obviously) 

## Why It's Good For The Game

Figured we could give certain jobs fun unique objectives which lean into
some common sci fi tropes, like "untrustworthy second in command". In
this case, it'd be pretty fitting for a hop to have enough and try to
take over the station themself.

However I kept the flavor pretty broad - for some they might take the
objective as "I'm becoming the new captain", for others it might be "I'm
jealous of their cool ID card".

## Changelog

🆑 Melbert
add: HoP traitors can get an objective to "replace the captain" -
requiring they assassinate the captain and steal their id.
/🆑
2025-07-27 00:18:04 +02:00
Joshua KidderandGitHub 330144b2b5 Vars .outfit and .plasmaman_outfit on /datum/job are typed to datum/outfit and datum/outfit/plasmaman respectively (#92289)
## About The Pull Request
I noticed that these two variables defined on the job datum are plain
root variables rather than being typed; and so, I modified them to be
typed to what they should otherwise always be set to.

## Why It's Good For The Game
Implements something approaching slightly more type safety and inference
for these vars.

## Changelog
🆑 Bisar
code: The .outfit and .plasmaman_outfit variables on the job datum are
now defined to their expected types.
/🆑
2025-07-25 20:16:18 -06:00
OrionTheFoxandRoxy dd00941e32 Makes the Organ Jar printable, lowers it chemical capacity and makes it pour large amounts at once (#92003)
## About The Pull Request

A note to start: the coroner's mail goodie is untouched. They still get
their brain-in-a-jar, prefilled with formaldehyde and with the
ghostrole-brain.

**First part is fairly simple. It's printable now.**

![image](https://github.com/user-attachments/assets/e11d0845-9002-4707-8b12-80ab0f0ede65)

**Balance is hopefully also simple...**
Originally it could store 150u, which just made it an improvement over
most of the other basic beakers... but it shouldn't even be useful in
chemistry, it's rather unshapely for that!

So the balance is as follows:
- It stores 120u of chemicals, printable roundstart.
_Identical to the X-Large Beaker - even in cost, needing some plastic
(which makes it shatter-proof. i guess.)_
- The unwieldy lip means it can only pour in large amounts (20, 40, 60,
120)
_It's not ideal for mixing in chemistry... This will **hopefully**
discourage using it where it'd look out-of-place.
Why juggle big numbers when you can use easier to handle, equivalent
X-Large Beaker?_
 
If players so choose they **can**, of course, still mix their spacedrugs
soaking in a bottle with a Felinid Liver. It's just not a preferred
shift-start beaker.

_Also it's a /beaker subtype now because I wanted to inherit some
things, like the pickup/drop sounds.
This technically means it works as a component in machines, but since
it's equal to an X-Large beaker that doesn't really mean anything. Just
a funny interaction._
## Why It's Good For The Game

I can finally torment my patients without having to hope the Mail Gods
deem me (or the department Coroner) worthy.
The idea of gifting them their inflamed appendix in a preserved jar
makes me happy.


![image](https://github.com/user-attachments/assets/fc0bc9db-28dd-4a13-a3b7-47c51389759f)
## Changelog
🆑
add: Medical (and Science) can now print Organ Jars from their
protolathes! Their shatter-proofing requires some plastic, though.
balance: Organ Jar capacity lowered to 120u, and they can only pour in
large quantities (have you ever tried pouring out of a jar with a lip
like that? Disaster. Such a mess.).
/🆑
2025-07-11 18:04:49 -04:00