Commit Graph

1838 Commits

Author SHA1 Message Date
Mothblocks
f340c5a62f Explicitly set lobby background layer (#91160)
Right now this is based on insertion order which is a bit gross and
breaks event-base. No difference for us though
2025-05-16 15:28:03 -06:00
SmArtKar
13e1c49c7d Planemaster Debugger Refactor (#91094)
## About The Pull Request

Rewrote the planemaster debugger to be more legible and useful. Planes
are now clustered based on their dependants, all buttons have been moved
to the header, connections are highlighted when hovering over nodes and
you can see filter type and blend mode when clicking the node (deleting
a connection is done through a button in the tooltip)


![HIvL79iDn0](https://github.com/user-attachments/assets/b6a94c01-8f3b-416e-9fd2-e91cb4499740)

## Why It's Good For The Game

Old planemaster debugger is horrifically jank to use, has broken visual
offsets for all nodes, connections and buttons, and is in a single
thousand line long file.

## Changelog
🆑
refactor: Refactored the planemaster debugger tool
/🆑
2025-05-15 22:51:19 -07:00
John Willard
57693b319c Fixes HUDs for people with 4 hands (#90921)
## About The Pull Request

Just found out we actually had 4 handed people in-game now and looked at
it in-game just to find out the basic things of the drop button and
opening inventories were off, so this fixes that.


https://github.com/user-attachments/assets/5521d5f8-a16e-4ce4-8cf1-92b70d154a94

6 hands works too

![image](https://github.com/user-attachments/assets/12db43b3-84af-402d-8c7a-8aa342296225)

Before:

![image](https://github.com/user-attachments/assets/400e652a-55fa-4583-8e7c-1dffca7a4d16)

## Why It's Good For The Game

Four hands work a little better wahoo

## Changelog

🆑
fix: Four handed wizards now have a drop button & open inventory above
their hands.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-05-02 22:51:51 +00:00
Wallem
a2e65c5235 Xenobio tubes, QOL, & visual tweaks (#90775)
## About The Pull Request


https://github.com/user-attachments/assets/1b129bac-459f-47ed-b88f-fa0d295aa690

Xenobio no longer has slimes "warping around", but rather all mobs will
be suctioned up and out of a tube system.
This is functionally identical; the visual aspect is PURELY visual and
as such you can deposit a slime that's still visually being suctioned,
which is intentional for the sake of an easier user experience.
Additionally, slime consoles have a little HUD on the side now that
displays the amount of monkeys & the amount of currently stored slimes
inside of it. Nice for if you don't want to have to guess your current
monkey count.

Slime processors suction a maximum amount of slimes depending on their
matter bin level. This means that at a tier 1 bin it'll be the same as
current, but with a tier 4 you can suck up 4 slimes at a time per
processing tick. Doesn't really do any functionally different stuff
besides lowering the time you need to wait before you can start the
processor.

Monkey Recyclers have purple stripes to visually distinguish them from
meat grinders.
## Why It's Good For The Game

I want a funny claw-machine-esque contraption for xenobio.
## Changelog
🆑 Wallem
add: Xenobio consoles now work off a tube system instead of sudden
teleportation
qol: Xenobio consoles have a new HUD to show monkey/slime amounts, and
slime processors can now suck up more than 1 slime at a time depending
on their matter bin
image: Added some stripes to the monkey recycler to make it a little
more obvious it's not a meat grinder
/🆑
2025-04-29 22:07:04 +00:00
Roxy
80a1872eb8 Fix hard delete related to resist buttons (#90883)
## About The Pull Request

Ensure that `resist_icon` is nulled in `/datum/hud/Destroy()`

## Why It's Good For The Game

```
## REF SEARCH Beginning search for references to a /atom/movable/screen/resist, looking for 1 refs.
## REF SEARCH Finished searching globals
## REF SEARCH Finished searching native globals
## REF SEARCH Finished searching atoms
## REF SEARCH Found /atom/movable/screen/resist [0x20081e0] in list Datums -> /datum/controller/subsystem/garbage [0x21000018] -> queues (list) -> /list (list) -> /list (list).
## REF SEARCH Datums -> /datum/controller/subsystem/garbage [0x21000018] -> queues (list) -> /list (list) -> /list (list) does not count as a ref for our count
## REF SEARCH Found /atom/movable/screen/resist [0x20081e0] in /datum/hud/human's [0x2103d74f] resist_icon var. Datums -> /datum/hud/human
## REF SEARCH All references to /atom/movable/screen/resist [0x20081e0] found, exiting.
## REF SEARCH Finished searching datums
```

## Changelog

N/A
2025-04-29 13:48:23 -07:00
Bloop
3d01e86e29 There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request


This PR:

- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.

- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.

- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.

- For the admins: Adds a clown blood smite.

My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.

I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.

This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
2025-04-28 00:57:59 -05:00
Ghom
339616ae78 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...

...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!

I also tried to replace some of those single letter vars/args but there
are just way too many of them.

## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.

## Changelog

🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
2025-04-23 20:18:26 +00:00
John Willard
90f019fe81 player hud stays post roundstart, has more info (#90632)
## About The Pull Request

Once the round starts, the TV's text shows the current map, how much
time it is in-game, how many players are connected, and what the
overflow job is (if the station trait is on). video as demonstration but
the overflow text has changed to "[job] overflow" instead of "Overflow
job: [job]"


https://github.com/user-attachments/assets/fe74b28b-06de-4827-9c4d-ca2e51f1e0b9

Closes https://github.com/tgstation/tgstation/issues/90651

## Why It's Good For The Game

Gives useful info on the TV instead of having it just magically
disappear (which currently doesn't work cause I forgot to deactivate it
on initialize for latejoiners) which will become more useful if the stat
panel is removed. Also makes overflow job more obvious, the TV is just a
good place to put info useful for new players though round time
personally was just put there to make the TV feel more full.

Wanted to put this in the original PR but wanted to try to match parity
to the stat panel in case this wasn't wanted.

## Changelog

🆑
qol: The TV on the title screen has round info once the round has
started or ended.
fix: The TV now fits on non-widescreen screens.
/🆑
2025-04-21 03:02:04 +02:00
LT3
40f644d6d4 Preference menu buttons are disabled until subsystem initializes (#90685) 2025-04-18 22:00:32 +00:00
Holoo
0cadafe8e5 [NO GBP] Fixes camera consoles crashing clients (#90523)
## About The Pull Request
Fixes client crashes when closing windows with byond rendered content.
The issue was reintroduced by
https://github.com/tgstation/tgstation/pull/90460
Closes: https://github.com/tgstation/tgstation/issues/89330
It does work. (sometimes?)
I didn't manage to reproduce the issue locally, but it exists live. 
## Why It's Good For The Game
Less bugs
## Changelog
🆑

fix: camera consoles, admin supply pod launcher etc. no longer close
game when they are closed
/🆑
2025-04-15 19:47:00 -07:00
John Willard
f6cf7a03c5 Removes Blob HUD as a var on every single hud (#90588)
## About The Pull Request

Blob Overminds & Blobbernauts use a HUD that shows them the overmind's
health, which is currently a var called ``blobpwrdisplay`` and exists on
every single HUD in the game. This moves them to the respective mobs,
removing the need to do this.

## Why It's Good For The Game

Modularizes HUDs a bit more and removes a bad special var on base hud
datum. pmo.

## Changelog

Nothing player-facing.
2025-04-15 04:19:37 +00:00
John Willard
634fc3170e removes martial art hud as something on base hud (#90589)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/90588 - but for martial
arts. Currently only 3 martial arts has a combo system, yet every single
hud for every living & human has an invisible martial art hud on them
24/7, "just in case".

The HUD in question

![image](https://github.com/user-attachments/assets/a332b406-18bd-4853-b8ce-200342df4093)

## Why It's Good For The Game

Removes having a HUD on every player 24/7 when in most cases it'll never
be used, and removes an unnecessary var on the base hud datum.

## Changelog

Nothing player-facing.
2025-04-14 21:05:04 -07:00
John Willard
7728bbc92a Adds a blood level hud for vamp & soulscythe (#90578)
## About The Pull Request

Replaces the stat panel entries for soulscythes & vampires to show their
blood level, with a HUD instead.
The sprite was taken from Bloodsuckers which they use to also show their
own blood level, which is what gave me the idea.

Also makes soulscythe use the living level ``blood_volume`` instead of
their own snowflake var meant to do the same thing.

Vampire

![image](https://github.com/user-attachments/assets/4ec75929-ad58-44ec-a817-1fd1ec5a4f11)

Soulscythe

![image](https://github.com/user-attachments/assets/5d04a8d5-0cfc-46a8-ab2c-c0a08f4e6d00)

## Why It's Good For The Game

Helps move away reliance on the stat panel & makes this information more
obvious to the player. The stat panel in general isn't a good place to
put this stuff as it obfuscates it as a feature for players who either
are on a different tab or simply don't know to look there.

## Changelog

🆑 TheSwain, JohnFulpWillard
qol: Soulscythes and Vampires now have a blood hud on the left side of
their screen rather than a stat panel entry stating how much blood they
have.
/🆑
2025-04-13 14:19:27 -06:00
John Willard
6ff440bbc2 Lobby info is now part of the hud instead of stat panel (#90572)
## About The Pull Request

Removes ``/mob/dead/get_status_tab_items()``, replaces it with a lobby
hud icon showing the same information

TV sprite made by Kryson, scanline and static taken from ``effects.dmi``
which I then blew up to fit the size.


https://github.com/user-attachments/assets/99733ae6-c596-42b1-bcae-d1a8d8f094c3

## Why It's Good For The Game

I want to try to remove as much reliance from the stat panel as possible
so we can hopefully remove it, as it takes up 1/3 of the screen for
nothing.

## Changelog

🆑 Kryson, JohnFulpWillard
qol: Lobby info is now on the title screen rather than being hidden in
the stat panel.
/🆑
2025-04-13 14:18:37 -06:00
MrMelbert
af0d361465 Demolition mod is inverted vs "soft" structures like spider webs (#90464) 2025-04-13 11:08:17 +02:00
Holoo
8f3f0851be Drops support for 515. Bumps compile ands tests to 516 (#90460)
## About The Pull Request
Title. If compiled on 515 the game screen will be black
## Why It's Good For The Game
There is no reason for it to exist if connecting from 515 is not allowed
2025-04-08 00:03:15 +02:00
MrMelbert
df19931edb Hunger bar is now animated and updates as you eat (#90446)
## About The Pull Request

Hunger bar is now dynamic rather than 4 static sprites

Hunger bar now accounts for food you have yet to metabolize, meaning it
updates as you eat


https://github.com/user-attachments/assets/06269da7-f07d-4738-98b2-ca6bde8ba0fe

Other changes:

- Adds a hunger tier between hungry and starving

## Why It's Good For The Game

Overeating happens so often simply because this bar is trash, so let's
give it some love

## Changelog

🆑 Melbert
fix: All humans no longer have a baseline "75" ghost nutrition (which
means you can eat more)
qol: Hunger bar update! It's now dynamic and updates as you eat.
qol: Adds a hunger tier between hungry and starving (for mood)
/🆑
2025-04-06 14:20:13 -06:00
TiviPlus
a0fa2dda57 Stub new undocumented 516 m4/m5 (#90404)
## About The Pull Request
Lummox added these and didnt document them so these are leftclicking rn

## Changelog
🆑
fix: Mouse4 and Mouse5 no longer leftclick
/🆑

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-04-05 16:51:13 +02:00
SmArtKar
16ae1a7059 Fixes weather from Z levels above rendering over players' UI (#90324)
## About The Pull Request

Because these didn't have PLANE_CRITICAL_DISPLAY they got cut off if you
had multiz culling enabled, which resulted in weather from planes above
getting rendered ontop of your UI.

Also renamed "Multi-Z Detail" to "Multi-Z Depth" and elaborated on what
it does, as "Standard" is a very confusing setting (it actually disables
multi-z culling)

## Why It's Good For The Game

I had no idea what this setting did until like 2 months ago when I dove
into planecube code, I bet none of our players (or even most
maintainers) know what it does.

## Changelog
🆑
fix: Fixed weather from Z levels above rendering over players' UI
qol: Multi-Z Detail setting has been renamed to Multi-Z Depth with an
explanation on what it does. "Standard" setting has been renamed to "No
Culling"
/🆑
2025-03-30 21:20:39 +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](4b77cd487d)
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
Aylong
2df73da53e Fix ByondUI small map preview (#90277)
## About The Pull Request
This PR should fix the problem of small previews in TGUI once and for
all (I hope).

What was causing it? Because TGUI takes a long time to open, that's why
previews were generated broken (small).

On Byond 515 this problem was not so noticeable as the interfaces opened
faster, but with the release of 516 it became much worse.
Previews were generated inside a window that was not yet open, so the
scale was broken, sometimes the window would open before the preview was
done and sent, usually with small interfaces, or when reopening.

I'm not very good at working with signals, and to tell the truth this is
my second experience with them, so I hope I did it right.

## Why It's Good For The Game
No more small map previews

<details> <summary> Video </summary>


https://github.com/user-attachments/assets/834f3820-cc6a-4f65-90e5-d6bb2a118bcf

</details>

## Changelog

🆑
fix: Fixed small character preview, color matrix preview, mech preview,
and other previews with uses ByondUI map
/🆑

---------

Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
2025-03-28 05:26:48 +01:00
LemonInTheDark
77823ad210 Pathfinding Visualization, JPS fixes, Misc Improvement (#90233)
## About The Pull Request

[cleans up poor namespacing on light debugging
tools](93cc9070d5)

[Implements a pathfinding visualization
tool](ed91f69ac4)

It holds a set of inputs from the client, and uses them to generate and
display paths from source/target. Left click sets the source, right
click sets the target.

Pathmap support too, if no target is set we display the paths from every
turf in the map to the source, if one is set we build a path TO it from
the source.

I had to add COMSIG_MOB_CLICKON to observers to make this work (tho idk
why it didn't exist already), I also removed the everpresent colorblind
datum from admin datums, only needs to exist if they're using it.

[Adds a mutable_appearance helper that dirlocks them, wallening port
which I thought might be useful here, and will likely be useful
elsewhere in
future](87f752e7c3)

[Fixes an infinite loop in pathmaps if we tried to pull a cached path to
an unreachable target, && not ||
4head](10086a655d)

[Fixes JPS not dealing with border objects properly. They violate some
of the assumptions JPS makes, so we need to backfill them with checks.
These basically read as (if the thing that should normally take this
path can't reach this turf, can
we?)](f56cc4dd43)

## Why It's Good For The Game

Maybe deals with #80619?

Adds more robust testing tools for pathfinding, should allow people to
better understand/debug these systems. I added this with the idea of
adding multiz support but I don't have the time for that rn.

JPS will work around thindows better, that's nice.

https://file.house/IrBiR0bGxoKw1jJJoxgMRQ==.mp4

## Changelog
🆑
fix: Fixed our pathfinding logic getting deeply confused by border
objects
admin: Added clientside displayed pathfinding debug tools, give em a go
/🆑
2025-03-28 01:51:57 +02:00
SmArtKar
8ec049e857 [NO GBP] Fixes blue space on lower Z levels (#90251)
## About The Pull Request

Closes #90191

## Changelog
🆑
fix: Fixed blue space on lower Z levels
/🆑
2025-03-27 14:34:55 +11:00
MrMelbert
eb0e842320 Hallucination revamps and additions (#89865)
## About The Pull Request

1. Hallucination effects are now tiered

Hallucinations now all have tiers, ranging from common to special. 
If you are just hallucinating a teeny bit, you will not experience the
more extreme hallucinations, like bubblegum or your mom.
But if you're hallucinating off your butt, you will be a bit more likely
to experience them.

2. Hallucination rate has been tweaked

Default hallucination cooldown is now 20-80 seconds, up from 10-60
seconds.
However the cooldown will *also* vary depending on just how much you're
hallucinating, going down to 10-40 seconds.

3. RDS is now capped a bit lower (meaning you don't see the higher tiers
like bubblegum).

But I added a preference to uncap it. For the people who actually like
bubblegum visits.

4. If a hallucination fails to trigger, the cooldown will partially
reset. (by 75%)

5. "Fake chat" hallucination will pick more viable subjects.

Fake chat will try to find someone who can actually speak your language,
rather than make a monkey speak mothic or something.
(I may revisit this so if you're super-hallucinating it reverts to old
behavior though.)

6. Adds a hallucination: Fake blood

You hallucinate that you start bleeding, very simple.

7. Adds a hallucination: Fake telepathy

You hallucinate a random telepathic message, similar to fake chat.

8. Adds a hallucination: Eyes in the Dark

A nearby dark turf will have a set of glowing red eyes shine through the
dark. A classic.

9. Adds some new sub-hallucination: PDA ringtone (fake sound), summon
guns/magic (fake item)

Funny prank.

10. Makes mindbreaker a bit more effective at combating RDS.

Pretty much does nothing right now unless you gulp like 50u.

## Why It's Good For The Game

Hallucinations are pretty one note if you experience them for longer
than 10 minutes.

This is due to two fold:
- Many hallucinations are goofy, and not subtle
- Hallucinations trigger very rapidly

You will never fall for a hallucination because in between "You see John
Greytide put the blueprints away", you get your mom yelling at you,
everyone looking like syndies (again), and bubblegum

This pr addresses it by
- Limiting the wacky hallucinations for when you're really off your
gourd
- Reducing the period between triggers
- Adding a few hallucinations

If the wackier hallucinations are reserved for when you're really off
your rocker, this lets the more subtle ones sink in over time, leaves
more room for second guessing

## Changelog

🆑 Melbert
add: Adds 4-5 new hallucinations. Collect them all.
balance: If you are only hallucinating a little bit, the game will
prefer to pick more subtle hallucinations. If you are hallucinating a
ton, it will prefer the more wacky hallucinations.
balance: If you are only hallucinating a little bit, the cooldown
between hallucinations is longer. If you are hallucinating a ton, it
will be shorter.
balance: If a hallucination fails to trigger (such as a deaf person
getting a sound hallucination) the next one will be a lot sooner.
balance: RDS hallucination amount is capped at mid tier hallucinations.
This means bubblegum and co. will be a lot rarer, or will even never
show. HOWEVER, there is now a preference allowing you to uncap your RDS
hallucinations.
balance: Mindbreaker toxin is more effective at suppressing RDS.
balance: Some hallucinations effects have been tweaked up or down
according to the new thresholds. Madness mask as an example.
fix: "Fake Fire" Hallucination works again, and now has a unique message
for if you stop-drop-roll that other people see.
/🆑
2025-03-20 21:36:56 +00:00
Holoo
7139367e0d Separate windows for AI multicam (#90119)
## About The Pull Request
Adds a button to create popup window out of multicam cameras




https://github.com/user-attachments/assets/b4efef52-af53-4058-83eb-a5bd5e134b85
## Why It's Good For The Game
AI is always watching you
## Changelog
🆑
add: AIs now can create a popup window via multicam

/🆑
2025-03-20 15:30:27 +01:00
SmArtKar
0b2279d696 Obliterating Obscure Overlay Opalescence: Overlay Lighting Rework (#89868)
## About The Pull Request

Turns overlay lighting into fake-weighted additive lighting, making it
look similar to our current tile lighting.


![dreamseeker_DOFpgyculg](https://github.com/user-attachments/assets/abc2aada-2755-4a9c-b16e-248147ad490c)

<details>

<summary>More pictures</summary>


![dreamseeker_iCYPFgOISk](https://github.com/user-attachments/assets/581f4c02-5e16-450c-8889-adb55b0723f1)

This also allows overlay light colors to blend together nicely


![dreamseeker_7GoTVx6esA](https://github.com/user-attachments/assets/9342f016-9c85-4107-ac1a-963fb533a0aa)


![dreamseeker_3OjuXX0dEK](https://github.com/user-attachments/assets/b5c58ee2-e00c-487c-9938-b4259d5c7c9b)

</details>

Additionally, flashlights can now be spray-painted as blobs of darkness
will no longer be a major issue. Non-overlay sources of blobby darkness
haven't been affected.

## Why It's Good For The Game

Our current overlay lights kinda suck, and there's no way to control how
much color they contribute to total lighting.


![image](https://github.com/user-attachments/assets/51c94259-d31d-46af-85b2-c60955421df5)

Also, when two light overlays meet, whichever one is positioned higher
on the y axis (due to sidemap), or has been dropped last if they're
positioned equally, would completely remove the other one, which looks
really bad.

## Changelog
🆑
refactor: Refactored how overlay lights work - having one in your pocket
will no longer color air around you into piss
qol: Painted flashlights once again emit colored light.
/🆑
2025-03-20 14:58:24 +01:00
The Sharkening
b8ed3e74e4 [No GBP] Bumps the sleep on the map_popup load hack from 0.1 seconds to 0.2 seconds. (#90083)
## About The Pull Request

Bumps the sleep time from 0.1 seconds to 0.2 seconds on #89933 so it
more consistantly fixes the zoom on your character in the creator.

## Why It's Good For The Game

I know it's a little more ugly with a slight increase in time, but it
will be more consistant since players are needing to close and reopen
their UI still. This is way more intrusive then a brief pause before it
loads.

## Changelog

Not really needed.
2025-03-18 17:53:25 -04: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
The Sharkening
4e131fd24e HACK: Fixes 516 small character creator bug by shaking screen_loc. (#89933)
## About The Pull Request

So basically there's some byond bug that has made character previews
small and things like cameras offset for the longest time when you open
them.

Basically when ``/atom/movable/screen/proc/set_position`` is called and
it has an ``assigned_map``, sleep, add three to the x and y offset,
sleep, then reset it. Sorry @Mothblocks but your original code to update
the character after a second doesn't seem to work anymore.


![dreamseeker_a1EDRWfgDA](https://github.com/user-attachments/assets/b7940fa9-ef92-40cd-a700-b22aefdfa286)



## Why It's Good For The Game

This is not good for the game

## Changelog


🆑
fix: Character creator preview being miniature
/🆑
2025-03-10 21:00:40 -07:00
SmArtKar
0b7b276bd2 Adds better feedback to localhost Start Now button (#89602)
## About The Pull Request

Going through my TODOs, been told that the button seems to not work due
to a lack of feedback when used during init. Pops you a message now.

## Changelog
🆑
admin: Added better feedback to localhost Start Now button
/🆑
2025-02-22 14:12:49 +01:00
Jackraxxus
0ec9ab3a17 Adds a Config for Auto-Deadminning on Ready Up and Latejoining (#89522)
## About The Pull Request
Fixes #89458
Adds a config for auto-deadminning admins who ready up before the round
starts, or click join game after.
The deadminning happens as soon as the button is pressed, not when a job
is selected or the round starts. I figure it's better to do it straight
away since both have opportunities for metainfo to be posted in admin
chat. Before there's admins messing with dynamic config / plotting
events etc. and during the round there's basically everything that gets
posted to admin logs.

I've had to add a typecheck to the auto_deadmin proc, since the lobby
menu technically happens on the centcom Z-level, and there's a pref for
ignoring deadminning on centcom Z, so it checks to see if the admin is a
new player mob.

Changed the old config from auto_deadmin_player to auto_deadmin_always
to make it less deceptive.
Was suggested a pref could be added to do this. I can do that if people
want it maybe, but it's not in this PR at the time of posting it.

Is now a pref
<img src="https://i.ibb.co/211sBMYd/Deadmin-Prefs1.png">
<img src="https://i.ibb.co/r20Srbw4/Deadmin-Prefs2.png">

I dunno if the latejoin proccall is in the right spot in the click
sequence thing I can move it if people want.
## Why It's Good For The Game

Admins spawning themselves on station is very important for both
shenanigans and troubleshooting. It's annoying to have to click readmin
every time and I'm too lazy to figure out how to perms escalate my way
into disabling that config every round (Though I have tried).

This PR is marginally more likely to convince Timber to turn that off
than cussing him out in adminbus.
## Changelog
🆑
admin: Added a new config to force admins to deadmin when readying up or
latejoining the round.
/🆑
2025-02-21 18:54:05 +00:00
Holoo
90970eb42d Fixes camera consoles crushing client on 516 (#89380)
## About The Pull Request
Closes: https://github.com/tgstation/tgstation/issues/89330
Replaced old hacky workaround
https://github.com/tgstation/tgstation/pull/80818 with brand new hacky
workaround.
## Why It's Good For The Game
It is
## Changelog
🆑
fix: fixed camera consoles, spyglasses etc. client crush on 516
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-02-07 22:16:34 +00:00
Holoo
498665f0f4 Fixes broken shadows on 516 (#89280)
## About The Pull Request
Bandaid fix of broken shadows on 516. 
Renamed refresh button to rebuild for consistency in plane debugger
(Edit/Dubug-Planes).
Rebuild now also reapplies parallax, so it will not be turned off after
rebuild.
Closes #89230 
## Why It's Good For The Game
faster 516 adoption
## Changelog
🆑
fix: fixed shadows on 516
/🆑
2025-01-30 13:22:07 +01:00
Penelope Haze
d0a7f955f8 Fix various issues with names in string interpolation (#89246)
## About The Pull Request
Commit messages should be descriptive of all changes.
The "incorrect `\The` macro capitalization" was intentional when it was
added, but as far as I know TG says "the supermatter" rather than "The
Supermatter," so it's incorrect now.
This is completely untested. I don't even know how you'd go about
testing this, it's just a fuckton of strings.
Someday I want to extract them and run NLP on it to catch grammar
problems...

## Why It's Good For The Game
Basic grammar pass for name strings. Should make `\the` work better and
avoid cases like `the John Smith`.
2025-01-29 17:46:03 +01:00
SmArtKar
2a08b94796 Fixes crafting menu not changing the cursor when hovered over (#89227)
## About The Pull Request

Closes #89206

## Changelog
🆑
fix: Fixed crafting menu not changing the cursor when hovered over
/🆑
2025-01-28 21:56:47 -08:00
SmArtKar
155f0fecbf Action palette no longer disappears while you have floating actions (#89175)
## About The Pull Request

Closes #88701

## Changelog
🆑
qol: Action palette no longer disappears while you have floating actions
/🆑
2025-01-23 19:27:49 +01:00
John Willard
89ead63f7d AIs can now examine. (#89146)
## About The Pull Request

AIs can now examine things that don't have a specific shiftclick
interaction, which is solely APCs and airlocks.
Also fixes Dullahans not being able to examine through their head,
because that's a thing I found accidentally.

## Why It's Good For The Game

AIs only being able to examine things near its core has always been very
annoying, and you're currently able to examine things through security
cameras anyways so it's not like we're consistent on how much details
the cameras are able to see. This at least makes it a consistent "yes,
you can examine through cameras".
AIs also don't really have enough ShiftClick interactions to block all
of examine just for their existence.

## Changelog

🆑
balance: AIs can now examine through their eye.
fix: Dullahans can also examine through their head again.
/🆑

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-01-23 18:34:44 +01:00
Penelope Haze
8196190aa1 Removes a a at at be be of of and and have have (#89155)
## About The Pull Request
I just had to one-up https://github.com/tgstation/tgstation/pull/89127.

## Why It's Good For The Game
Removes a a at at be be of of and and have have

## Changelog
N/A
2025-01-22 08:09:57 +11:00
tonty
d3866d01f1 Moves and documents AI's definition (+ minor cleanup) (#88928)
## About The Pull Request

The AI's definition is big and unorganized, which makes figuring out
what does what really annoying, so I took the time to document and
organize the file

Some vars have been renamed to better communicate what they actually do
when reading code
Unused vars have been deleted:
* var/chnotify
* var/waypoint
* var/interfaceButton

### Misc changes:
The check to see if malf modules could be used was written incorrectly,
and therefore all malf modules could be used without cooldown. The check
has been fixed, so actions which used to have no cooldown should now

AI bot summoning was supposed to have a cooldown, but it was broken and
not implemented for basic bots. This has been removed instead of fixed,
since I found it was an unnecessary limitation for something so simple.

## Changelog

🆑
fix: Malf modules correctly use action cooldown (affects camera repair
and detonate RCDs)
code: Minor (extremely minor) AI code maintenance
/🆑
2025-01-15 13:37:54 +00:00
SmArtKar
9aec2007a2 Adds a localhost-only "Start Now" lobby button (#88973)
## About The Pull Request

Adds a new extremely high quality lobby button on which we spent all of
2025's coderbus budget. It shows up only for localhost users and starts
the round immediately.


![image](https://github.com/user-attachments/assets/fdabe880-465e-4e24-9e50-dd955585311b)

## Why It's Good For The Game

Ensures that maintainers don't accidentally commit a funni on live
servers.

## Changelog
🆑
admin: Added a localhost-only "Start Now" lobby button
/🆑
2025-01-14 15:48:06 +01:00
Lucy
d4551fa3c7 [NO GBP] *Properly* rebuild plane masters after client login if switching between 515 and 516 (#88829)
## About The Pull Request

so i discovered this downstream, but forgot to pr upstream til now, the
proper way to rebuild planemasters is `rebuild_hud`, not directly
calling `rebuild_plane_masters`

## Why It's Good For The Game

whoopsie breaking graphics is bad

## Changelog
🆑
fix: Fixed graphics getting screwed up when reconnecting with BYOND 515
after playing on BYOND 516.
/🆑
2025-01-06 18:15:02 -08:00
SmArtKar
3499727a6d Implements datumized embedding handlers in place of element-component-datum triad (#88511)
## About The Pull Request

This PR completely rewrites our embedding system in favor of embedding
datum handlers which acts as containers for all embedding-related data
and logic.

Currently embedding logic relies on an element-component-datum triad,
where elements on the items handle embedding logic, singleton datums
store embedding data and components (which get assigned to ***mobs*** in
whom the item embedded) handle pain and the item being ripped out. How
do we access all the procs? By using comsigs as procs, which is really
bad. This code was written back in 2020 when DCS was hot stuff but in
hindsight this implementation was a mistake, as it heavily restricts
custom embedding behaviors unless you're willing to constantly run
GetComponent (bad, ugly, incarnation of evil)

This PR rewrites all that logic to be handled by lazyloaded
``/datum/embedding``, which is stored similarly to current
``/datum/embed_data``. Upon being requested, it is initialized and
assigned to a parent from whom all the logic is handled, from being
embedded to pain and having the item ripped out. On projectiles this
only handles one proc, after which it copies itself down to the shrapnel
item instead and runs the chain further from there.
Ideally, most embedding-related logic now should be handled purely
datum-side - in most cases items should not be hooking up to themselves
like they did before (unless said logic is for when the item is made
sticky or smth) and instead the code should be handled by the embedding
datum (see sholean grapes implementation in this PR). This should allow
us to do fancy stuff like syringe guns embedding syringes into targets
and injecting them that way, and fix some bugs along the way.

Closes #88115
Closes #87946

Also fixed a bug with scars not displaying when examined closely from
#86506 because i was in the area anyways
2025-01-02 23:18:27 +00:00
_0Steven
59988256ab Give alert spelling fix (#88742)
## About The Pull Request

Changes `examiante` to `examine` in the give alert description.
## Why It's Good For The Game

`examiante` ain't a word and, uh, `examinate` I don't think actually
fits here either.
## Changelog
🆑
spellcheck: Give alert 'examiante' > 'examine'.
/🆑
2024-12-27 22:56:24 -08:00
Aylong
7a817300fd Improve and extend fieldset_block and examine_block (#88678)
## About The Pull Request
Maked `fieldset_block` and `examine_block` more stylish and neat, also
`fieldset_block` no longer has a centred title.
Renamed `examine_block` to `boxed_message` and adds
`custom_boxed_message` which can be colored.

- AdminPMs, admin tickets and vote results has been wrapped into
`fieldset_block` for comfort and visibility
- Health Analyzer results painted to blue
- Vote notice and tips of the round wrapped to purple
`custom_boxed_message`
- Tooltip text border color, now uses text color, not just white

## Why It's Good For The Game
Demonstration in both themes

<details><summary>Dark</summary>


![image](https://github.com/user-attachments/assets/7175379b-b053-4fb7-bd25-65c744a21c56)

![image](https://github.com/user-attachments/assets/1728e72b-0110-4b81-9d61-8779f5fdc3a0)

![image](https://github.com/user-attachments/assets/5e6f9604-35b8-4840-b6b4-35a68f49a997)

</details>

<details><summary>Light</summary>


![image](https://github.com/user-attachments/assets/6a3d693b-e0dc-4a4b-b4d7-2ded54ce0d67)

![image](https://github.com/user-attachments/assets/c4f5e089-180f-4d13-806a-fa64f01740a3)

![image](https://github.com/user-attachments/assets/a46d52c4-ad37-4637-8cae-c4b00139efc1)

</details>

## Changelog

🆑
qol: AdminPMs, admin tickets, vote results and started vote notification
are now much more visible in the chat.
qol: Boxed messages in chat (like examine), has been restyled.
/🆑
2024-12-24 11:32:38 -08:00
Ben10Omintrix
efe62c5a72 Pet Commands QOL . makes pet commands easier to use (#88495)
## About The Pull Request
this PR improves the UX of pet commands a bit. i decided to expand on
their radial menu. You can now hold shift and hover over your pet to
display a menu of commands which you can choose from. alternatively, you
can still type out commands in chat


https://github.com/user-attachments/assets/9da7f7ea-58a3-4fd6-b040-45cc05cda51d



## Why It's Good For The Game
makes pet commands easier to give out when you're managing more than 1
pet. also fixes the fishing command not working.

## Changelog
🆑
qol: holding shift and hovering over your pet will display a list of
commands you can click from
fix: fixes the fishing pet command not working
/🆑
2024-12-22 03:05:30 +01:00
SmArtKar
188af3c2a9 Fixes shoes slot being semi-transparent when you have digitigrade legs (#88600)
## About The Pull Request

You can now wear shoes with digitigrade legs thanks to #88096, but UI
slots weren't informed of this change.

## Changelog
🆑
fix: Fixed shoes slot being semi-transparent when you have digitigrade
legs
/🆑
2024-12-21 22:13:15 +01:00
MrMelbert
e66c32e709 Fix lobby buttons not updating sprites correctly (#88574) 2024-12-20 01:54:51 +01:00
SmArtKar
960ed29b0a Major UI update and theme redesign (#88498)
## About The Pull Request

This PR completely overhauls Midnight and Midnight-derived UIs, as well
as does some adjustments to the UI layout.


![image](https://github.com/user-attachments/assets/369a812a-9b6c-4d3f-8a5e-ba4fbc9f4d64)

### Major changes:
* All UI elements for Midnight/Midnight-derived themes have been redrawn
to be cleaner, with consistent palettes and up-to-date sprites
* Tiny equip E is gone - Drop action has been moved in its place,
freeing some space in the bottom right corner
* Four minor menu keys have been bundled with actions, now-vertical
floor change element taking their place
* Action palette (wide thing in the top left corner) is now hidden when
it has zero actions bound to it and the player isn't currently dragging
an action button.

I've also fixed some minor issues with how hand elements are rendered,
and given feedback to resist button (it now lights up when pressed or
when the hotkey is held down)

<details>

<summary>Some screenshots of new UIs</summary>


![image](https://github.com/user-attachments/assets/afc62225-2a21-45c7-8382-d35fe4ec9d6c)


![image](https://github.com/user-attachments/assets/d2ea6f1a-a9f6-4b98-8fc8-663b1e97a38f)


![image](https://github.com/user-attachments/assets/52ffa40d-f982-4ab1-8c81-1225666363ab)

Redrawn UIs now have themed clothing slots


![image](https://github.com/user-attachments/assets/a9421e2f-3979-4aec-b2cb-7066d2b997ce)


![image](https://github.com/user-attachments/assets/0bcb5e8e-a626-44ce-b7f3-2a195c128213)


![qrd5eRR](https://github.com/user-attachments/assets/356b7bf8-5f54-4f92-bea6-4a8ac36aa2e7)

</details>

## Why It's Good For The Game

Our UI icons are very outdated and compressed, with very large palettes
and odd transparency quirks, making adding new elements or redesigning
current ones quite hard and frustrating. A fresh coat of paint can take
user experience a long way.

As for moved elements, most people either equip things manually or use
the equip hotkey - E button is rather obscure and rarely used, while
drop button makes sense to be located near hands. Action palette just
takes up screen space most of the time, so there's no reason to not hide
it when you don't have any use for it.

## Changelog
🆑
qol: Resist button now has visible feedback.
qol: Readjusted UI layout.
image: Completely redrawn Midnight and Midnight-derived UIs!
/🆑
2024-12-18 21:54:57 +00:00
SmArtKar
7ddc30783a Adds better attack animations and alternate attack modes (#88418)
## About The Pull Request

This is the first PR in a series attempting to modernize our damage and
armor, both from a code and a gameplay perspective. This part implements
unique attack animations, adds alternate attack modes for items and
fixes some minor oversights.

Items now have unique attack animation based on their sharpness - sharp
items are now swung in an arc, while pointy items are thrust forward.
This change is ***purely visual***, this is not swing combat. (However,
this does assign icon rotation data to many items, which should help
swing combat later down the line).

Certain items like knives and swords now have secondary attacks - right
clicks will perform stabbing attacks instead of slashing for a chance to
leave piercing wounds, albeit with slightly lower damage - trying to
stick a katana through someone won't get you very far!

https://github.com/user-attachments/assets/1f92bbcd-9aa1-482f-bc26-5e84fe2a07e1

Turns out that spears acted as oversized knives this entire time, being
SHARP_EDGED instead of SHARP_POINTY - in order for their animations to
make sense, they're now once again pointy (according to comment,
originally they were made sharp because piercing wounds weren't very
threatening, which is no longer the case)

Another major change is that structure damage is now influenced by armor
penetration - I am not sure if this is intentional or not, but attacking
item's AP never applied to non-mob damage.

Additionally, also fixes an issue where attack verbs for you and
everyone else may differ.
2024-12-17 12:35:52 -06:00
MrMelbert
7e55bba4fb Hud elements and certain in-world objects will now change your cursor to indicate they are clickable (windows style) (#88470)
## About The Pull Request

Basically just goes through and adds `mouse_over_pointer =
MOUSE_HAND_POINTER` to a bunch of screen elements (player hud and lobby
menu)

Also adds it to very small wall mounted objects like buttons, fire
alarms, and light switches


https://github.com/user-attachments/assets/c501cd3d-8efd-4fd0-a486-a53f2102a2cb


https://github.com/user-attachments/assets/89f7cdcb-b40c-4ef3-b578-fee66ddf1ce2

## Why It's Good For The Game

- Makes interacting with screen elements a bit more tactile
- Makes it a bit easier to click on tiny buttons and such (being able to
know when you're actually hovering the thing)
- Maybe can be expanded to more world objects to indicate they are
clickable vs non-interactable?

## Changelog

🆑 Melbert
qol: Hovering over clickable screen elements will now update your mouse
cursor to indicate they're clickable
qol: Hovering over small wall mounts (light switches, buttons, fire
alarms) will now update to mouse cursor indicating you're hovering them
/🆑
2024-12-12 19:32:33 +01:00