681 Commits

Author SHA1 Message Date
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
MrMelbert 5765f259ef Fixes human skeleton pirates, Refactors ghost spawns (#94138)
## About The Pull Request

`create_from_ghost` can be called from stuff like... dynamic executing a
ruleset, so putting a sleep/user input within it causes problems

So I refactored ghost spawns a fair bit, creating a clear delineation
between where you can and can't put user input

## Changelog

🆑 Melbert
fix: Pirates will no longer randomly spawn as human
fix: Servant Golems have numbered names again
refactor: Refactored ghost spawns (like spider eggs or pirate spawners),
report any oddities
/🆑
2025-11-25 19:52:19 -07:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
MrMelbert 4a618934e9 Removes message arg from Hear, free performance (#93020)
## About The Pull Request

The first argument of `Hear` is `message`, the message heard

OR SO YOU'D THINK

Actually the first argument doesn't do anything but get overridden by
ALL implementations of `Hear`

No other uses as far as I and Ephe can tell. Removing it makes it a ton
easier to understand and gives us some free performance in radio code by
not rendering messages twice

## Changelog

🆑 Melbert
code: Removed some redundant code from core hearing code. Report if you
hear anything weird.
/🆑
2025-09-20 12:29:40 +02:00
John Willard 78cffc2101 Adds a new halloween species: Spirits (#90711)
Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.

https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
(cherry picked from commit 096c032402)
2025-06-26 19:54:02 -04:00
John Willard 096c032402 Adds a new halloween species: Spirits (#90711)
## About The Pull Request

Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

### The difference between Spirits and Ghosts

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.


https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

## Why It's Good For The Game

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

## Changelog

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2025-06-22 10:02:06 +02:00
John Willard 2a79d6424e Removes widescreen config (#91419)
19x15 forever, or 15x15 if you're non widescreen user.

Idek why this is a config
2025-06-21 22:38:18 -04:00
Bloop ac3a9d3d24 Adds back a couple ghost verbs (#91654)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/91619 missed a couple that I
use and I want them back!!

Also unhides the report-issue verb as it's kind of a pain to get to now
with the removal of the ever present button above stat panel.

## Why It's Good For The Game

Reee give me back my verbs

## Changelog

🆑
qol: "Spawners Menu" and "Minigames Menu" are back as chat verbs for
power users
qol: report-issue is now a verb that can be used in chat to open the
issue report prompt for power users
/🆑
2025-06-21 22:21:55 -04:00
John Willard 4c82b029c7 Removes widescreen config (#91419)
## About The Pull Request

19x15 forever, or 15x15 if you're non widescreen user.

## Why It's Good For The Game

Idek why this is a config
2025-06-22 01:14:55 +00:00
Bloop 5f2d40389e Adds back a couple ghost verbs (#91654)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/91619 missed a couple that I
use and I want them back!!

Also unhides the report-issue verb as it's kind of a pain to get to now
with the removal of the ever present button above stat panel.

## Why It's Good For The Game

Reee give me back my verbs

## Changelog

🆑
qol: "Spawners Menu" and "Minigames Menu" are back as chat verbs for
power users
qol: report-issue is now a verb that can be used in chat to open the
issue report prompt for power users
/🆑
2025-06-17 09:29:02 -06:00
John Willard a370710836 Ghost lighting now updates prefs (#91592) 2025-06-15 15:54:32 -04:00
SmArtKar e08086ba8d Brings back ghost verbs (chatbar only) (#91619)
## About The Pull Request

Partially rolls back #91370 by reintroducing ghost verbs, but for the
chatbar only. Doesn't clutter up the statpanel, but powerusers can
quickly type them in without navigating the menu.

## Why It's Good For The Game

The change massively fucked over our powerusers (aka admins, which are
already suffering from poor UX) who were used to typing out the verbs in
the chat. No reason to remove functionality, the menu is neat but if you
remember commands by heart its faster to type them out.

## Changelog
🆑
add: Ghost verbs are back in the chatbar, you can now type out things
like "Orbit" or "T-ray-scan" once again as a ghost.
/🆑
2025-06-15 15:54:22 -04:00
LemonInTheDark d5be02ecee Mob ckey sanity check now respects insano aghost code (#91517)
## About The Pull Request

I HATE THIS PLACE DUDE, aghosting sets your ckey/key to your normal
ckey/ckey but with @ prefixed. hhhhhhhhh.
2025-06-15 15:52:38 -04:00
John Willard d8a032cb56 Ghost lighting now updates prefs (#91592) 2025-06-14 00:16:37 -06:00
SmArtKar 5ecd40b16d Brings back ghost verbs (chatbar only) (#91619)
## About The Pull Request

Partially rolls back #91370 by reintroducing ghost verbs, but for the
chatbar only. Doesn't clutter up the statpanel, but powerusers can
quickly type them in without navigating the menu.

## Why It's Good For The Game

The change massively fucked over our powerusers (aka admins, which are
already suffering from poor UX) who were used to typing out the verbs in
the chat. No reason to remove functionality, the menu is neat but if you
remember commands by heart its faster to type them out.

## Changelog
🆑
add: Ghost verbs are back in the chatbar, you can now type out things
like "Orbit" or "T-ray-scan" once again as a ghost.
/🆑
2025-06-13 16:12:51 -06:00
LemonInTheDark c8701aa056 Mob ckey sanity check now respects insano aghost code (#91517)
## About The Pull Request

I HATE THIS PLACE DUDE, aghosting sets your ckey/key to your normal
ckey/ckey but with @ prefixed. hhhhhhhhh.
2025-06-08 15:09:54 -06:00
John Willard 25da3e86a6 Ghost settings UI (#91370)
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw

Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings

Default look

![image](https://github.com/user-attachments/assets/7b97287d-5f8b-40a4-b574-98ecaafa8533)

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

![image](https://github.com/user-attachments/assets/3ee9bb9b-389c-452c-8ff5-fbd0ee677fef)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.

Removes the "Ghost" tab from the stat panel entirely, this replaces it.

The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.

🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
2025-05-29 16:17:39 -04:00
John Willard ca96a9e2cd Ghost settings UI (#91370)
## About The Pull Request

This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw

Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings

Default look

![image](https://github.com/user-attachments/assets/7b97287d-5f8b-40a4-b574-98ecaafa8533)

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

![image](https://github.com/user-attachments/assets/3ee9bb9b-389c-452c-8ff5-fbd0ee677fef)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.

Removes the "Ghost" tab from the stat panel entirely, this replaces it.

## Why It's Good For The Game

The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.

## Changelog

🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
2025-05-29 10:21:29 -07:00
John Willard 0babfe8098 Spirit realm ghosts can't observe (#90556) 2025-04-29 17:52:31 -06:00
John Willard 0a49e07859 Spirit realm ghosts can't observe (#90556) 2025-04-14 23:31:12 -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
Waterpig d3d3a12540 The big fix for pixel_x and pixel_y use cases. (#90124)
## About The Pull Request

516 requires float layered overlays to be using pixel_w and pixel_z
instead of pixel_x and pixel_y respectively, unless we want
visual/layering errors. This makes sense, as w,z are for visual effects
only. Sadly seems we were not entirely consistent in this, and many
things seem to have been using x,y incorrectly.

This hopefully fixes that, and thus also fixes layering issues. Complete
1:1 compatibility not guaranteed.

I did the lazy way suggested to me by SmArtKar to speed it up (Runtiming
inside apply_overlays), and this is still included in the PR to flash
out possible issues in a TM (Plus I will need someone to grep the
runtimes for me after the TM period to make sure nothing was missed).
After this is done I'll remove all these extra checks.

Lints will probably be failing for a bit, got to wait for [this
update](https://github.com/SpaceManiac/SpacemanDMM/commit/4b77cd487d0a7b6a069df20356b701af5b20489d)
to them to make it into release. Or just unlint the lines, though that's
probably gonna produce code debt

## Why It's Good For The Game

Fixes this massive 516 mess, hopefully.

closes #90281

## Changelog
🆑
refactor: Changed many of our use cases for pixel_x and pixel_y
correctly into pixel_w and pixel_z, fixing layering issues in the
process.
/🆑

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: SmArtKar <master.of.bagets@gmail.com>
2025-03-28 14:18:45 +00:00
Holoo 2c49da04c7 Fixes auto observe parallax being white (#89885)
## About The Pull Request
Fixed parallax being white when observing someone in auto observe mode
Closes https://github.com/tgstation/tgstation/issues/43866
Closes https://github.com/tgstation/tgstation/issues/75855
Proof:


https://github.com/user-attachments/assets/72ce4ffd-e319-443d-aa6b-ed31cd2c2c69
## Why It's Good For The Game
I prefer not to be flashbanged when observing  
## Changelog
🆑
fix: fixed white space when observing in auto observe mode
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-03-14 10:19:27 -07:00
Kapu1178 b9c803a9d8 Base implementation of /datum/persistent_client (#89449)
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).

Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.

Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.
2025-03-12 16:47:54 -04:00
Kapu1178 a0e862d575 Base implementation of /datum/persistent_client (#89449)
## About The Pull Request
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).

Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.

## Why It's Good For The Game
Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.
2025-02-25 13:52:24 -06: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
John Willard 2e4d70afe5 Updates href uses for 516 (#88699)
## About The Pull Request

Was just scrolling through the Paradise github since they seem to have
more work done for 516 to see if there's anything I can port over, found
this and thought why not.

Ports parts of https://github.com/ParadiseSS13/Paradise/pull/25105
Specifically, updaing all hrefs to use the internal ``byond://``, and
adding it to grep.

## Why It's Good For The Game

More work towards 516.

## Changelog

Nothing player-facing.
2024-12-24 11:42:20 -08:00
Jerry defb6e2c4a Better ghost tray scan (#87143)
## About The Pull Request

Partially improves:
* #46002 

Previously, the ghost's "t-ray view" acted as a toggle, even though the
scan only occurred once. This PR changes it to function as an action
rather than a toggle, removing the need to press the button twice.

While the ideal solution would be for the t-ray scan to work on the
process tick, my attempt to give ghosts their own t-ray scanner and to
toggle it on upon using the verb did not work as expected because the
scanner didn't recognize the ghost as its holder (`mob/viewer` in the
code).

This update serves as an improvement to the current behaviour, but in
the future, the t-ray scan verb should function like a normal t-ray
scanner, instead of just a one-time scan.
## Why It's Good For The Game

Improves the t-ray verb, before it acted as a toggle even though it only
worked once upon toggling on. Improves user experience using this verb.
## Changelog
🆑
fix: the ghost "t-ray view" no longer requires a double press to
activate a second time.
qol: renamed "t-ray view" to "t-ray scan" for clarity.
/🆑
2024-11-16 00:30:47 -08:00
tonty d5daa9c9b8 [NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684)
## Why It's Good For The Game

Clarity and consistency regarding DM's systems. 
Internally, `eye` is used for anything that controls the client's view.

![image](https://github.com/user-attachments/assets/7d1291e1-7a6a-4736-a14b-97834e89846f)
How `eye` is used in DM is consistent with how we use the term, so I
figured this would add clarity.

Being named mob/camera also makes it unclear exactly what it's doing.
The name implies that it would function similar to how mob/camera/ai_eye
does, but most of the time it's only used as... an eye.

My ulterior reason for this PR is that I want to clean up
mob/camera/ai_eye and it's subtypes after this.
## Changelog

🆑
server: mob/camera has been renamed to mob/eye, which may break
downstreams
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-09 10:57:45 +00:00
carlarctg 55a07d99b8 Fixed being unable to aghost while corpselocked (#87594)
## About The Pull Request

Fixed being unable to aghost while corpselocked, via adding another
parameter to ghostize that checks if it's an aghost or not

## Why It's Good For The Game

i wana leave my body when testing as ethereal

## Changelog

🆑
fix: Fixed being unable to aghost while corpselocked
/🆑
2024-11-01 13:22:25 +01:00
Ghom 778ed9f1ab The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.

This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).

And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.

## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.

Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.

Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

![immagine](https://github.com/user-attachments/assets/2bb625c9-9233-42eb-b9b8-e0bd6909ce89)

## Changelog

🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
2024-10-30 08:03:02 +01:00
Majkl-J 62d91fbd65 There is like an infinite amount of sound repaths 2024-10-24 02:58:06 -07:00
Majkl-J e59d8ba64b Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b 2024-10-23 23:27:16 -07:00
Majkl-J f8faccd70a Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-24-10a 2024-10-20 04:12:02 -07:00
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00
Jerry 6639857bce Better ghost tray scan (#87143)
## About The Pull Request

Partially improves:
* #46002 

Previously, the ghost's "t-ray view" acted as a toggle, even though the
scan only occurred once. This PR changes it to function as an action
rather than a toggle, removing the need to press the button twice.

While the ideal solution would be for the t-ray scan to work on the
process tick, my attempt to give ghosts their own t-ray scanner and to
toggle it on upon using the verb did not work as expected because the
scanner didn't recognize the ghost as its holder (`mob/viewer` in the
code).

This update serves as an improvement to the current behaviour, but in
the future, the t-ray scan verb should function like a normal t-ray
scanner, instead of just a one-time scan.
## Why It's Good For The Game

Improves the t-ray verb, before it acted as a toggle even though it only
worked once upon toggling on. Improves user experience using this verb.
## Changelog
🆑
fix: the ghost "t-ray view" no longer requires a double press to
activate a second time.
qol: renamed "t-ray view" to "t-ray scan" for clarity.
/🆑
2024-10-12 17:15:45 +02:00
tonty 3f0b4abb8d Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request

All usages of world.icon_size in code have been replaced with new
`ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on
context

Replaces some "32" magic numbers with the defines

A few bits of code have been modified to split up x/y math as well

## Why It's Good For The Game

Magic number bad, code more readable, code more flexible and I'm told
there's an access cost to doing world.icon_size so minor performance
gains

## Changelog

🆑 tonty
code: made some code relating to the world's icon size more readable
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-29 13:28:32 +00:00
Waterpig 4c4930c71d Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit 2024-09-08 00:59:39 +02:00
SkyratBot c84fc8201b [MIRROR] Heretic Influences use alt appearances (so ghosts can now see them (semi-transparent)) (#29646)
Heretic Influences use alt appearances (so ghosts can now see them (semi-transparent)) (#85932)

## About The Pull Request

Removes the rather overcomplicated system behind heretic influences and
makes them use alt appearances

Fixes a few bugs involving alt appearances that I noticed in making them

I made this PR 7 months ago and forgot to Pr it

## Why It's Good For The Game

Less complex codes and lets observers get a cut in on the action.

Should fix #77530

## Changelog

🆑 Melbert
refactor: Refactored heretic influences a tiny bit, now ghosts can see
them! Report any oddities.
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-09-06 10:56:32 +07:00
MrMelbert aefa22166c Heretic Influences use alt appearances (so ghosts can now see them (semi-transparent)) (#85932)
## About The Pull Request

Removes the rather overcomplicated system behind heretic influences and
makes them use alt appearances

Fixes a few bugs involving alt appearances that I noticed in making them

I made this PR 7 months ago and forgot to Pr it

## Why It's Good For The Game

Less complex codes and lets observers get a cut in on the action.

Should fix #77530

## Changelog

🆑 Melbert
refactor: Refactored heretic influences a tiny bit, now ghosts can see
them! Report any oddities.
/🆑
2024-09-05 15:00:01 +02:00
StrangeWeirdKitten 132f9363e4 Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into fuck-fuck-fuck
# Conflicts:
#	_maps/map_files/Birdshot/birdshot.dmm
#	_maps/map_files/NorthStar/north_star.dmm
#	_maps/map_files/VoidRaptor/VoidRaptor.dmm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/modules/cargo/packs/imports.dm
#	html/changelogs/archive/2024-07.yml
2024-07-31 21:19:46 -06:00
SkyratBot 604ab42fb8 [MIRROR] fixes ghost huds (#29002)
* fixes ghost huds (#85164)

## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/85120
I think it was introduced by
https://github.com/tgstation/tgstation/pull/84984
## Why It's Good For The Game
fix good
## Changelog
🆑

fix: fixed ghost huds

/🆑

* fixes ghost huds

---------

Co-authored-by: Holoo <38228316+Holoo-1@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-27 22:33:48 +05:30
SpaceLoveSs13 a1be42f412 [MIRROR] HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits (#29072)
[MIRROR] HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits [MDB IGNORE] (#3861)

* HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits (#84984)

Currently if you want to apply a HUD you usually add both its trait and
the HUD itself. Only exceptions are things like simplemobs where you
should avoid adding the hud trait since it adds security/med DB access
and such, but there is no cases where you'd want to apply the trait and
not apply the hud.

Requested by Melbert about a week ago.

![image](https://github.com/user-attachments/assets/8af3e9cc-ea22-4cee-86ec-54c397291727)

This makes working with HUDs significantly easier, as you no longer have
to bother with manually adding/removing them. Also potentially removes
an edge case where if your hud could get removed while keeping the
trait.

🆑
refactor: HUD traits now apply their corresponding hud automatically
/🆑

* Modular changes

* rest of the modular stuff

* no bot path hud actually

standard diag glasses don't give this, for some reason

---------

Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
2024-07-27 21:45:47 +05:30
StrangeWeirdKitten 38c3a6336d Merge branch 'master' of https://github.com/skyrat-ss13/skyrat-tg into upstream-7-24/204 2024-07-25 00:08:53 -06:00
Holoo f4ea731e09 fixes ghost huds (#85164)
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/85120 
I think it was introduced by
https://github.com/tgstation/tgstation/pull/84984
## Why It's Good For The Game
fix good
## Changelog
🆑

fix: fixed ghost huds

/🆑
2024-07-22 13:10:12 +02:00
SmArtKar dfb12f91d6 HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits (#84984)
## About The Pull Request

Currently if you want to apply a HUD you usually add both its trait and
the HUD itself. Only exceptions are things like simplemobs where you
should avoid adding the hud trait since it adds security/med DB access
and such, but there is no cases where you'd want to apply the trait and
not apply the hud.

Requested by Melbert about a week ago.

![image](https://github.com/user-attachments/assets/8af3e9cc-ea22-4cee-86ec-54c397291727)

## Why It's Good For The Game

This makes working with HUDs significantly easier, as you no longer have
to bother with manually adding/removing them. Also potentially removes
an edge case where if your hud could get removed while keeping the
trait.

## Changelog
🆑
refactor: HUD traits now apply their corresponding hud automatically
/🆑
2024-07-19 01:24:07 +02:00
SkyratBot 4161f712df [MIRROR] Stopping orbiting now automatically breaks you out of autoobserve (#28889)
* Stopping orbiting now automatically breaks you out of autoobserve (#84987)

## About The Pull Request

If you move off someone you automatically stop autoobserve (stop viewing
their UI and seeing from their perspective)

## Why It's Good For The Game

Only way to stop autoobserve right now is via orbit UI, and following in
chat does not break you out of it either. And if you have closed your
orbit window, you need to open it from ghost tab as you no longer have a
button for it, which can be annoying.

## Changelog
🆑
qol: Stopping orbiting now automatically breaks you out of autoobserve
/🆑

* Stopping orbiting now automatically breaks you out of autoobserve

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2024-07-17 21:04:46 +05:30
SmArtKar c3f66f6274 Stopping orbiting now automatically breaks you out of autoobserve (#84987)
## About The Pull Request

If you move off someone you automatically stop autoobserve (stop viewing
their UI and seeing from their perspective)

## Why It's Good For The Game

Only way to stop autoobserve right now is via orbit UI, and following in
chat does not break you out of it either. And if you have closed your
orbit window, you need to open it from ghost tab as you no longer have a
button for it, which can be annoying.

## Changelog
🆑
qol: Stopping orbiting now automatically breaks you out of autoobserve
/🆑
2024-07-17 09:14:07 +02:00
Waterpig 00aa495320 Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-24-07a 2024-07-02 23:57:38 +02:00
SkyratBot 5ea82d6fd5 [MIRROR] Ambience Buzz Handling Changes + Ambience buzz requires enviorment power (#28537)
* Ambience Buzz Handling Changes + Ambience buzz requires enviorment power

* Update areas.dm

---------

Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-01 10:47:29 -06:00