Commit Graph

1818 Commits

Author SHA1 Message Date
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
paganiy
115609c113 Adds a new item to the chef traitor's uplink: Molt'Obeso sauce. (#87103)
## About The Pull Request
A new item for 2 TC has been added to the chef's traitor uplink –
Molt'Obeso sauce!
Buying it, you get a bottle for 50 units, filled with this sauce. After
eating Molt'Obese, you'll think you're still hungry. It also removes the
limit on how much food you can eat, so you can just keep going and
going, but you never get full. Plus, Molt'Obeso helps your body absorb
more nutrients from food, so the food is even more nourishing with it.
## Why It's Good For The Game
The Syndicate sabotages the NT station by making everyone fat?
## Changelog
🆑
add: Add a new item to the chef traitor's uplink: Molt'Obeso sauce. A
sauce that makes people want to eat too much.
/🆑
2024-11-28 16:23:18 +01:00
Cruix
9a739f358f Fixed advanced camera consoles runtiming on eye init (#87993)
## About The Pull Request

Currently when the camera eye of an advanced camera console is
initialized, it tries to send COMSIG_HUD_Z_CHANGED while the eye is
still in nullspace. Added an if to make sure the eye has a valid
location.
2024-11-24 19:56:19 +01:00
jimmyl
b10a9d26fc removes quiet succumb as it actually works now (#88060)
## About The Pull Request

removes RMB quiet succumb as it actually works now


https://github.com/user-attachments/assets/d59351e5-3d1c-4743-95d9-99b52629e133


## Why It's Good For The Game

the trimtext bug was patched out both in our code and additionally byond
515.1647

## Changelog
🆑
del: removed quiet succumb which is pointless now that the bug got fixed
/🆑
2024-11-21 23:29:59 +01:00
tonty
d8450b4933 Camera eyes have been lightly refactored (among other things...) (#87805)
## About The Pull Request

* A generic /mob/eye/camera type has been made, containing everything
needed to interface with a cameranet
* /mob/eye/ai_eye has been refactored into a generic /mob/eye/camera
instance
* Advanced cameras no longer inherit from AI eyes, splitting off
behaviour
* Camera code has been somewhat cleaned up
* Probably some more stuff I'm forgetting right now

## Big man Southport:

![image](https://github.com/user-attachments/assets/de6e6ff0-ca99-4636-bdec-5e0b2d6b8037)

## Changelog

🆑
code: made /proc/getviewsize() pure

refactor: mob/eye/ai_eye has been restructured, now inheriting from a
generic mob/eye/camera type
refactor: advanced cameras and their subtypes are now
mob/eye/camera/remote subtypes
code: the cameranet no longer expects the user to be an AI eye
code: remote camera eyes have had their initialization streamlined
code: remote cameras handle assigning and unassigning users by
themselves now
code: remote cameras now use weakrefs instead of hard referencing owners
and origins
code: also the sentient disease is_define was removed (we don't have
those anymore)
fix: AI eyes no longer assign real names to themselves, fixing their
orbit name
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-21 12:55:38 +01:00
jimmyl
ee271daf46 clickable alerts glow + the slimed status effect now actually tells you how to get it off without water in the description (#87902)
## About The Pull Request

 clickable alerts glow (regex: /atom/movable/screen/alert/.*/Click)

## Why It's Good For The Game

people are much more likely to look at the chat or anywhere else than
the status effect (really, its usually never worth reading 99% of them
so they end up ignored)

## Changelog
🆑
qol: alerts that do stuff when clicked glow gold
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-11-20 02:07:05 +01:00
MrMelbert
d3bc3e8cb4 Being drunk or having a broken arm hurts accuracy with ranged weapons. Also cleans up a fair bit of hand handling to be more readable (#87904)
## About The Pull Request

1. Having a broken arm will affect your accuracy when firing a weapon
with that arm, even potentially causing damage to you if it's a weapon
with recoil. This effect is not applied under the effects of a
painkiller.

2. The sister effect of this (punching someone with a broken arm) now
also has an interact with painkillers (it can no longer block your
attack).

3. Being drunk heavily affects ranged weapon accuracy, unless you're the
bartender

4. A lot of hand handling cleanup, using new macros to make it a lot
more readable at a glance

## Why It's Good For The Game

We have this system for modifying firearm accuracy but we don't really
use it commonly, and I feel like it slots in well with a lot of places

For broken arms, it adds some more depth to the wound system, in the
same way that trying to punch someone with a broken arm causes pain. (I
actually want to expand this to melee weapon accuracy and attacking with
melee weapons in general, but that's for a later time)

For drunkenness, it just adds to the drunk shenanigans. It also slightly
reduces the effectiveness of drinks as combat healing chemicals, such as
quadsec - makes it a bit more of a trade off.

## Changelog

🆑 Melbert
balance: Having a broken arm affects your accuracy with ranged weapons
fired with that arm. Utilizing a painkiller will nullify this effect,
however.
balance: Painkillers will prevent your punches from being cancelled due
to having a broken arm. You'll still take damage, though.
balance: Being drunk now affects your accuracy with ranged weapon. The
bartender is immune to this effect via their skillchip.
code: A lot of code involving left and right hand handling has been
cleaned up, easier to read. Report any oddities, like left and rights
being flipped
/🆑
2024-11-19 19:31:06 +01:00
BurgerLUA
3ae53becb9 Reworks the Druggy visual effect to cause less eye strain (#87811)
## About The Pull Request

Reworks the Druggy visual effect to cause less eye strain.
The visual effect now targets the lighting layer and now adds color
blending operations to it, based on a custom sprite. It is also
code-animated!




https://github.com/user-attachments/assets/2ab2fcf3-9859-4951-a834-3cb52c3c6695




## Why It's Good For The Game

Makes it so that people with Light Sensitivity (me) can no longer get
blinded by getting injected with weed or breathing in n2o. Other than
that, I think the effect is cooler (probably biased) and feels more in
line with the "woah pretty colors dude" meme.

If people find this is too intense, it can easily be adjusted via code
to reduce the color change effect.

## Changelog

🆑 BurgerBB
qol: Reworks the Druggy visual effect to cause less eye strain.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-17 03:51:34 +00:00
Lucy
b8013f5e76 Rebuild plane masters after client login if switching between 515 and 516 (#87889)
## About The Pull Request

This makes `/datum/player_details` properly track BYOND version and
build separately, as opposed to just the full version string.

Whenever a client logs in, and their BYOND version is 516, while their
previous version was 515, or vice versa, it'll set a newly added client
var, `rebuild_plane_masters`, to TRUE.

During the `COMSIG_MOB_LOGIN` signal handler of a mob's HUD
(`/datum/hud/proc/client_refresh`), it will check to see if
`rebuild_plane_masters` is TRUE - if so, it will set the appropriate
`relay_loc` of (based on client BYOND version) of its plane master
groups, and rebuild their plane masters.

## Why It's Good For The Game

Makes testing stuff across 515 and 516 easier, as your screen won't
break when switching between the two.

## Changelog

516 is _still_ in private alpha, so no user-facing changes.
2024-11-14 19:50:35 +01:00
harryob
f6fc5824e6 fix clicking other ghosts' screen alerts (#87830)
closes #87572

## About The Pull Request

usr does not necessarily mean owner for screen alerts, thanks Observe

## Why It's Good For The Game

shouldn't be teleporting other ghosts around
2024-11-12 18:05:07 -06: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
SyncIt21
0107198799 Fixes for borg attack chain interactions (#87705)
## About The Pull Request
- Fixes #87612 by returning the correct define when
`COMSIG_ATOM_ATTACK_ROBOT_SECONDARY` blocks the attack
- Borg `UnarmedAttack()` now checks for modifiers (i.e. are we left or
right clicking) this allows `redirect_attack_hand_from_turf` (which
calls `UnarmedAttack()`) component to call either `attack_robot()` or
`attack_robot_secondary()` correctly so you can now turn the fire alarm
on & off by attacking its mounted wall as a borg
- Borg's `attack_robot_secondary()` now checks for `interaction_range`
just like `attack_robot()` so you can't do shinanigens like resetting a
fire alarm/turning on or off the conveyer switch from an infinite
distance like through camera's & such
- Removed Borgs `RangedAttack()` proc which called `attack_robot()`
because it violates `interaction_range` for the proc

## Changelog
🆑
fix: No runtime when clicking on a fire alarm's mounted wall as a borg
fix: You can turn the fire alarm on & off (And not just on) as a borg
via left & right click on its mounted wall
fix: certain secondary interactions of items & borgs now respect the
borgs interaction range
/🆑
2024-11-08 00:31:58 +01:00
tonty
7a0c7078e9 You can succumb quietly by right-clicking the UI (#87683)
## About The Pull Request

fixes #87662 
Right-clicking the succumb alert will let you succumb without a message
also fixes a few bugs

## Fucked Up Looking Dog

![fucked-up-looking-dog-spookston](https://github.com/user-attachments/assets/9715ecfe-977f-41e1-b45b-050a111c6b54)

## Changelog

🆑
qol: you can now right-click the succumb action button to succumb
silently
qol: the succumb inputs have a few more titles to choose from now
fix: the succumb text input now shows the actual correct number of
characters you can say
fix: attempting to cancel a succumb will no longer kill you
spellcheck: the text for failing to succumb is now spanned
/🆑
2024-11-07 05:05:41 +01:00
grungussuss
42885dcc37 UI sounds try 2 (#87523)
## About The Pull Request
completes
https://github.com/orgs/tgstation/projects/19/views/1?pane=issue&itemId=84390831


https://github.com/user-attachments/assets/da9536df-71af-4222-b0df-0ae5bdee96a8

## Why It's Good For The Game
It sounds cool!
## Changelog
🆑 grungussuss
sound: The lobby menu now click sounds.
/🆑
2024-11-03 14:41:22 +01:00
Xackii
3641316ebe Fix perks not shown in roundend and also perks sprites and hud. (#87296)
## About The Pull Request

Fixes that perks not shown in wizard purchases in roundend report.
Added perks sprites: they show up when you buy them.
![Снимок экрана 2024-10-18
161649](https://github.com/user-attachments/assets/8ddadf83-1103-4cb3-9634-4862290f686d)
Ingame:
![Снимок экрана 2024-10-18
195713](https://github.com/user-attachments/assets/f85ca8bb-d17b-49a3-a29d-861e63ade3a3)

## Why It's Good For The Game

Fixes is good. 
Sprites to understand what perks you bought.

## Changelog

🆑
qol: Purchased perks now shown in hud.
fix: Perks purchased by a wizard now shown in roundend report.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-02 12:59:17 +00:00
Sealed101
ddb54dad8d Restores kiltborg model select icon, fixes spawned-in kiltborgs runtiming, fixes model select icon not updating for spawned-in model borgs (#87615)
## About The Pull Request

We've lost soul for kiltborgs (for some reason in #56601). We're also
runtiming when we spawn in a kiltborg and try equipping a module for it,
which tries to open the borg's module storage; since we don't initialize
a hud for a mob until they are logged in, this didn't work. We also have
an issue where a spawned-in borg with any module would not update the
model select button to the model's because that is done in
`transform_to()` at a point where no mob is logged in and there is no
hud once again, in `update_module_innate()`.
So this PR remedies allat. Snazzy.

## Why It's Good For The Game

Restores soul
Fixes #60399
Spawned-in model borgs will show their correct model icon when a player
is placed in control

## Changelog

🆑
fix: fixed a runtime when spawning in a kiltborg
fix: fixed spawned-in borgs with a pre-selected model not having their
correct model select icon
image: KILTBORGS ONCE AGAIN HAVE THEIR OWN MODEL SELECT ICON!!!!!!!
/🆑
2024-11-02 13:50:33 +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
grungussuss
93bb49479f you can now die (#87490)
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/87479
## Changelog
🆑 grungussuss
fix: it is now possible to succumb without speaking
/🆑
2024-10-27 15:05:22 +01:00
Lucy
6700880a5b [NO GBP] Fix overlay lighting messing up alert overlays (#87362)
## About The Pull Request

Closes https://github.com/tgstation/tgstation/pull/87357

Adds a `IS_LIGHTING_UNDERLAY` define, and a `strip_light_underlays`
helper that uses it (thanks @Kapu1178 for the code)

### Before

![2024-10-21 (1729553782) ~
dreamseeker](https://github.com/user-attachments/assets/da2778f9-40e0-4760-85aa-a17a7d05f01c)

### After

![2024-10-21 (1729553540) ~
dreamseeker](https://github.com/user-attachments/assets/dd240c83-faf9-4e55-b913-58743aa764f0)

## Changelog
🆑 Absolucy, Kapu
fix: Fix overlay lighting (such as lanterns) messing up alert overlays,
i.e the rod of asclepius alert.
/🆑
2024-10-23 02:46:19 +02:00
Lucy
0c519008cb Master-overlayed screen alerts (i.e aura healing) now use appearance cloning instead of directly overlaying the master (#87281)
## About The Pull Request

This reworks the `/mob/proc/throw_alert(new_master = ...)` to use
appearance cloning instead of just directly adding the master atom as an
overlay.

There's several advantages to this:
- We don't have to change anything about the original target at all
- Setting the plane/layer, adding the overlay, then resetting it to
before (as it does without this PR), feels like an awful hack ngl.
- We can ensure the target is always facing south, and has no pixel
x/y/z shift.

<details>
<summary><h3>Proof of testing / screenshots</h3></summary>

I had the healing rod holder standing on a table when the alert was
added, to ensure that the pixel_x/y/z reset worked.

![2024-10-17 (1729221218) ~
dreamseeker](https://github.com/user-attachments/assets/664abbef-d543-4d13-99ec-3264e05edfd8)
![2024-10-17 (1729221245) ~
dreamseeker](https://github.com/user-attachments/assets/6073dcd4-75e0-404a-bea1-6bea5fbd7591)

</details>

## Why It's Good For The Game

Ensures the aura healing alerts and such always look consistent - no
pixel offsets, always facing south, with more reliable code.

## Changelog
🆑
refactor: Refactored how some screen alerts, such as aura healing, show
atom overlays.
/🆑
2024-10-20 16:26:31 +02:00
MrMelbert
3e3b6a09bc All melee weapon damage temporarily slows cyborgs rather than just thrown weapon damage (#87119)
## About The Pull Request

Cyborgs will now be temporarily slowed down when hit with **any melee
weapon**, based on the strength of the weapon.

Thrown weapons maintain their behavior of slowing cyborgs, and they also
now scale based on strength of the weapon.

Thrown weapon slowdown is also stronger (3x stronger) than just hitting
them. So you are still incentivized(?) to use the existing mechanic. To
catch up to them, I guess.

## Why It's Good For The Game

So, this mechanic was added as a new counterbalance to cyborgs due to no
longer being stunned in a single flash.
But 1 year later I polled the community, and the results speak for
themself:


![image](https://github.com/user-attachments/assets/bafb043f-2201-4122-8c68-ccc746046c0a)


![image](https://github.com/user-attachments/assets/f71b7048-1b98-4c05-aebb-0b8393572f7e)

It is my opinion that this mechanic is too obscure and a bit obtuse to
work as a "mechanical counter" to the cyborg.
"Yeah to catch up to a cyborg you have to throw a floor tile or a potted
plant at them."
"You mean I can't just *hit* them with the potted plant?"
"No, you gotta chuck it."

This PR aims to address that by tweaking the mechanic to trigger on any
weapon attacks. Which in my mind, makes sense. "Hitting borgs with stuff
will slow them down temporarily" is easier to parse and observe in
practice than "THROWING stuff at borgs will slow them down".


## Changelog

🆑 Melbert
balance: Cyborgs are now slowed down when hit with any melee weapons,
rather than ONLY when they are hit by THROWN melee weapons. The stronger
the weapon, the stronger the slowdown. Thrown weapons are still more
effective at slowing than just hitting them directly, however.
/🆑
2024-10-15 23:02:21 +02:00