Commit Graph

269 Commits

Author SHA1 Message Date
MrMelbert e0bdfc3f5f Dynamic Rework (#91290)
Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic
from the ground-up

- Dynamic configuration is now vastly streamlined, making it far far far
easier to understand and edit

- Threat is gone entirely; round chaos is now determined by dynamic
tiers
   - There's 5 dynamic tiers, 0 to 4.
      - 0 is a pure greenshift.
- Tiers are just picked via weight - "16% chance of getting a high chaos
round".
- Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be
selected".
- Tier determines how much of every ruleset is picked. "Tier 4 (High
Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3
latejoins".
- The number of rulesets picked depends on how many people are in the
server - this is also configurable[2]. As an example, a tier that
demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and
will not spawn 2 rulesets if population <= 25.
- Tiers also determine time before light, heavy, and latejoin rulesets
are picked, as well as the cooldown range between spawns. More chaotic
tiers may send midrounds sooner or wait less time between sending them.

- On the ruleset side of things, "requirements", "scaling", and
"enemies" is gone.
- You can configure a ruleset's min pop and weight flat, or per tier.
- For example a ruleset like Obsession is weighted higher for tiers 1-2
and lower for tiers 3-4.
- Rather than scaling up, roundstart rulesets can just be selected
multiple times.
- Rulesets also have `min_antag_cap` and `max_antag_cap`.
`min_antag_cap` determines how many candidates are needed for it to run,
and `max_antag_cap` determines how many candidates are selected.

- Rulesets attempt to run every 2.5 minutes. [3]

- Light rulesets will ALWAYS be picked before heavy rulesets. [4]

- Light injection chance is no longer 100%, heavy injection chance
formula has been simplified.
- Chance simply scales based on number of dead players / total number
off players, with a flag 50% chance if no antags exist. [5]

[1] This does not guarantee you will actually GET 3-4 roundstart
rulesets. If a roundstart ruleset is picked, and it ends up being unable
to execute (such as "not enough candidates", that slot is effectively a
wash.) This might be revisited.

[2] Currently, this is a hard limit - below X pop, you WILL get a
quarter or a half of the rulesets. This might be revisited to just be
weighted - you are just MORE LIKELY to get a quarter or a half.

[3] Little worried about accidentally frontloading everything so we'll
see about this

[4] This may be revisited but in most contexts it seems sensible.

[5] This may also be revisited, I'm not 100% sure what the best / most
simple way to tackle midround chances is.

Other implementation details

- The process of making rulesets has been streamlined as well. Many
rulesets only amount to a definition and `assign_role`.

- Dynamic.json -> Dynamic.toml

- Dynamic event hijacked was ripped out entirely.
- Most midround antag random events are now dynamic rulesets. Fugitives,
Morphs, Slaughter Demons, etc.
      - The 1 weight slaughter demon event is gone. RIP in peace.
- There is now a hidden midround event that simply adds +1 latejoin, +1
light, or +1 heavy ruleset.

- `mind.special_role` is dead. Minds have a lazylist of special roles
now but it's essentially only used for traitor panel.

- Revs refactored almost entirely. Revs can now exist without a dynamic
ruleset.

- Cult refactored a tiny bit.

- Antag datums cleaned up.

- Pre round setup is less centralized on Dynamic.

- Admins have a whole panel for interfacing with dynamic. It's pretty
slapdash I'm sure someone could make a nicer looking one.

![image](https://github.com/user-attachments/assets/e99ca607-20b0-4d30-ab4a-f602babe7ac7)

![image](https://github.com/user-attachments/assets/470c3c20-c354-4ee6-b63b-a8f36dda4b5c)

- Maybe some other things.

See readme for more info.

Will you see a massive change in how rounds play out? My hunch says
rounds will spawn less rulesets on average, but it's ultimately to how
it's configured

🆑 Melbert
refactor: Dynamic rewritten entirely, report any strange rounds
config: Dynamic config reworked, it's now a TOML file
refactor: Refactored antag roles somewhat, report any oddities
refactor: Refactored Revolution entirely, report any oddities
del: Deleted most midround events that spawn antags - they use dynamic
rulesets now
add: Dynamic rulesets can now be false alarms
add: Adds a random event that gives dynamic the ability to run another
ruleset later
admin: Adds a panel for messing around with dynamic
admin: Adds a panel for chance for every dynamic ruleset to be selected
admin: You can spawn revs without using dynamic now
fix: Nuke team leaders get their fun title back
/🆑

(cherry picked from commit 4c277dc572)
2025-06-26 20:12:17 -04:00
Kashargul 68b687b13f some more 516 compat fixes (#89766)
Ports the helpers from
https://github.com/BeeStation/BeeStation-Hornet/pull/12240

This should fix some more of the 516 issues that I've seen while giving
a quick check through the code

The remaining browse should work now.

Also fixing another sass warning while being on it.

## About The Pull Request
## Why It's Good For The Game
## Changelog
🆑
fix: tgui say 516 will no longer change channels when the button is used
to drag it
fix: tgui say 516 will no longer leak radio messages into the wrong
channel
fix: runechat flickering when faded up messages fade out
/🆑
2025-03-12 17:10:23 -04:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
John Willard 2e4d70afe5 Updates href uses for 516 (#88699)
## About The Pull Request

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

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

## Why It's Good For The Game

More work towards 516.

## Changelog

Nothing player-facing.
2024-12-24 11:42:20 -08:00
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
nevimer fa65d517dd fixups 2024-04-28 19:24:33 -04:00
SpaceLoveSs13 7aa6664021 Mirror (#27453)
* Fix Conflicts

* Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530)

Most people should not be using this define

* New Battle Arcade (#81810)

Remakes Battle Arcade from just about the ground up, with exceptions
taken for emagged stuff since I didn't really want to touch its
behavior.

The Battle Arcade now has stages that players can go through, unlocking
a stage by beating 2 enemies and the boss of the previous one, but this
must all be done in a row. You can choose to take a break between each
battle and there's a good chance you'll sleep just fine but there's also
a chance it can go wrong either through an ambush or robbery.

The Inn lets you restore everything for 15 gold and you can buy a sword
and armor, each level you unlock is a new sword and armor pair you can
buy that's better than the last, it's 30 gold each but scales up as you
progress through levels. They are really worth getting so it's best to
try to not lose your money early in.

The battle system is nearly the same as how it was before but I removed
the poor combo system that plagued the old arcade as one big knowledge
lock, now it's more just turn based. The game is built on permadeath so
dying means you restart from the beginning, but if you are going to lose
you can try to escape instead which costs you half of your gold.

Getting to higher levels increases the difficulty of enemies but also
increases the gaming exp rewards which could make this a better way to
get exp if you can get good at it.

Gaming EXP is used to increase chances of counterattacking but doesn't
give any extra health to the player.

I also removed the exploit of being able to screwdriver arcade cabinets
because people would do that if they thought they were on the verge of
losing to bypass the effects of loss. I instead replaced it with a new
interaction that the Curator's display case key can be used to reset
arcade cabinets (there's several keys on the chain so it made sense to
me), which I added solely because I thought Curators would be the type
of person to have run an actual arcade.

This is some gameplay

https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede

As a misc sidenote, I also split up the arcade file just like how Orion
Trail was before, just for neat code organization.
The Inn keeper is straight up just a photo of my localhost dude, he's
not a player reference or anything it's not my actual character.
I also have no idea how well balanced this is cause I suck at it lol.

Battle Arcade is one of 3 last machines in my hackmd here to turn into
TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
I've always thought the current version of battle arcade is quite lame
and lacks any progression, like Orion Trail I thought that since I was
moving this to TGUI, it would also be a perfect opportunity to revamp it
and try to improve on where it failed before, especially since the
alternative (NTOS Arcade) is also lame as hell and is even lamer than
HTML battle arcade (spam mana, then spam health, then just spam attack,
rinse and repeat).
This will hopefully be more entertaining and give players sense that
they are getting through a series of tasks rather than doing one same
one again and again.

🆑 JohnFulpWillard, Zeek the Rat
add: Battle Arcade has been completely overhauled in a new progression
system, this time using TGUI.
add: The Curator's keys can now reset arcade cabinets.
balance: You now need to be literate to play arcade games, except for
Mediborg's Amputation Adventure.
fix: You can no longer screwdriver emagged arcade consoles. Accept your
fate.
fix: Silicons can no longer play Mediborg's Amputation Adventure.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>

* Change setting item weight class to a setter to patch some weight class related shenanigans (#82494)

## About The Pull Request

Fixes #81052 
Fixes #58008

Setting weight class of items is now done via `update_weight_class`.

I updated as many occurrences of manually setting `w_class` as I could
find but I may have missed some. Let me know if you know of any I
missed.

This is done to allow datums to react to an item having its weight class
changed.

Humans and atom storage are two such datums which now react to having an
item in its contents change weight class, to allow it to expel items
that grow to a weight class beyond what is normally allowed.

## Changelog

🆑 Melbert
fix: You can't fit items which are normally too large for a storage by
fitting it in the storage when it is small, then growing it to a larger
size.
/🆑

* Material datum color update, plus touching up some material items (knight armor, tiles) (#82500)

## About The Pull Request

Tries to bring the material datum colors in closer approximation to the
stacks they're attached too. I literally used the colors on the stacks.
some might need to be lighter or darker, but for the most part they'll
look...closer to their actual material hues.

![material datum stuff
2](https://github.com/tgstation/tgstation/assets/40847847/a3a5968f-cab3-43dd-8699-3dae879b21fb)

I've also tweaked the sprites of both the tile object and the actual
material tile turf to give it the right shading.


![image](https://github.com/tgstation/tgstation/assets/40847847/56489479-8774-492b-b8cc-aeabc6c0a67f)

In addition to the tiles, I've also updated the knight armor and helmet
to look closer to the much higher quality plate armor already in the
game.

## Why It's Good For The Game

It bothered me that the material datum coloring was inconsistent with
the actual colors used for the material stacks. When they were updated,
and even before they were updated, material datum stuff just never
looked _right_. I wanted to change that so that it looks just right.

I did not like the old material knight armor whatsoever. It was a
dithered mess, and seemed to already use parts of the standard plate
armor but with all the actual shading removed or replaced with the wrong
colors. This fixes that so that the armor is actually readable for what
it is.

## Changelog
🆑
image: Updates the colors of various material datum to bring them closer
in-line with their actual material stacks
image: Improves the sprites for the material knight armor and helmet.
/🆑

* LateInitialize is not allowed to call parent anymore (#82540)

## About The Pull Request

I've seen a few cases in the past where LateInitialize is done cause of
the init return value being set to do so for no real reason, I thought I
should try to avoid that by ensuring LateInitialize isn't ever called
without overriding.

This fixes a ton of machine's LateInitialize not calling parent
(mechpad, door buttons, message monitor, a lot of tram machines,
abductor console, holodeck computer & disposal bin), avoiding having to
set itself up to be connected to power. If they were intended to not
connect to power, they should be using ``NO_POWER_USE`` instead.

Also removes a ton of returns to LateInit when it's already getting it
from parent regardless (many cases of that in machine code).

## Why It's Good For The Game

I think this is better for coding standard reasons as well as just
making sure we're not calling this proc on things that does absolutely
nothing with them. A machine not using power can be seen evidently not
using power with ``NO_POWER_USE``, not so much if it's LateInitialize
not calling parent.

## Changelog

🆑
fix: Mech pads, door buttons, message monitors, tram machines, abductor
consoles & holodeck computers now use power.
/🆑

* Fix table top deconstruction (#82508)

## About The Pull Request

Edited: updated changelog, read comments for changes in implementation
details

So previously, tables would let you use a wrench to fully deconstruct
them, or a screwdriver to take off only their top.
This, however, broke in two different ways in #82280, when their
deconstruction logic got changed.

First off, deconstructed tables would only drop the materials for their
top and not their frame.
For this, the primary culprit seems to be on line 307:

https://github.com/tgstation/tgstation/blob/c34d56a45b0461f5e0fad3cc75e81580c3357119/code/game/objects/structures/tables_racks.dm#L300-L307
Where `new framestack(target_turf, framestackamount)` accidentally got
an extra indent, and ended up in the less common half of the if-else
chain.
Just moving this outside of the if-else chain again fixes it.

Secondly, tables had their own special deconstruction logic, which got
'standardized'.
Issue. This was special to accommodate for having two different
deconstruction logics: full or top only.
With `deconstruct(...)` no longer being overridable, I feel it's awkward
to attempt to proxy that information to the new `atom_deconstruct(...)`
So we introduce a new method, `deconstruct_top`, for the screwdriver to
use, which handles deconstructing only the top.
```dm
/obj/structure/table/proc/deconstruct_top()
	var/obj/table_frame = new frame(loc)
	if(obj_flags & NO_DECONSTRUCTION)
		table_frame.obj_flags |= NO_DECONSTRUCTION
	else // Mimic deconstruction logic, only drop our materials without NO_DECONSTRUCTION
		var/turf/target_turf = get_turf(src)
		drop_top_mats(target_turf)
	qdel(src)
```
Mimicking the `NO_DECONSTRUCTION` logic of normal deconstruction, and
copying over the flag onto its frames if need be.
This fixes screwdriver deconstruction.
## Why It's Good For The Game

Fixes #82503.
We can now deconstruct the table top separately again, AND get the right
materials back too.

## Changelog
🆑 00-Steven, SyncIt21
fix: Wrench table deconstruction gives the right materials again.
fix: Screwdriver table deconstruction only deconstructs the top again.
/🆑

* [NO GBP] Reagent grinders display reagents on examination (#82535)

## About The Pull Request
- Fixes #82531

Somehow omitted this during the general maintenance thing

## Changelog
🆑
fix: Reagent grinders display reagents of its beaker on examination
/🆑

* Monkeys now use height offset (and monkey tail works) (#81598)

This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).

This reverts a lot of changes from
https://github.com/tgstation/tgstation/pull/73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.

I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).

Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):

Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)

* Gets [weird] with (spies) by adding protect and deuteragonist-flavored objectives. (#82447)

## About The Pull Request

What are their goals? Why are they doing this? gets weird with Spy
objectives - namely by adding a lot more ways spies might be asked to
affect various targets around the station.

the first of these is by several flavors of Protecting targets (these do
NOT print a success at roundend in keeping with Spy design:)
- Protect (get a humanoid target off alive)
- Protect Nonhuman (get an entity off alive)
- Jailbreak (make sure a humanoid target escapes free)
- Detain (make sure a humanoid target gets taken out arrested)

the second of this is by a new escape condition: 
- Exile (get off-station or off the Z-level by the end of the shift -
sometimes it's not just pods, you need to fuck off to space to win.)

the third is through a massive increase in the number of possible:
- objective templates 
- departments to target (Command + Service added)
- specific locations to target
- general classes of objects to target (medicines, floor tiles, critical
infrastructure, etc.)
- efforts to target (such as meals, mechs, public supplies)
- ways to leave (you can be asked to abscond from the scene of your
crimes?)

## Why It's Good For The Game

More goofy and weird prompts to do more interesting things with Spies.
One thing I think we're sorely missing in our lineup is antagonists that
can act a bit more as deuteragonists - very possibly helping the crew
under certain conditions and frustrating the Hell out of them in others.

Since there's no way to check their objectives, and they get their
gear/progression through stealing shit, they're still very much an
antagonist and exist under the suspicion of doing bad... but, just going
by their objectives, introducing more varied (and in some cases even
benign) goals for them creates suggestions pointing to a lot more varied
and interesting stories if people choose to run with it.

* Adds anosmia quirk (#82206)

## About The Pull Request

Adds anosmia quirk. Anosmia, also known as smell blindness, is the loss
of the ability to detect one or more smells.

I tried to find all smells action and (most likely) update all of them,
unfortunately I can't change descriptions for this quirk.

## Why It's Good For The Game

Some characters will be able to not feel smells
That affect:
* Gases feelings and alerts (CO2, Plasma, miasm) - you don't feel them
* Bakery and cooking
* Changeling ability to feel other changelings by smell
* Some unimportant spans

* Explosions Part I - Directional Explosions (#82429)

## About The Pull Request

Adds the ability for explosions to be directional. This is achieved by
adding an angle check to `prepare_explosion_turfs()` to drop any turfs
outside the cone of the explosion. If the arc covers a full 360 degrees,
as is the default, it will accept all the turfs without performing the
angle check.

Uses this functionality to rework both rocket launcher backblast and X4
explosions. Rocket launcher backblast has been changed from a shotgun of
indendiary bullets to a directional explosion of similar length. X4 now
uses a directional explosion to "ensure user safety".

Apparently the old method of moving the explosion one tile away didn't
even work, as it blew up `target` before trying to check its density for
the directional behaviour.

https://youtu.be/Mzdt7d7Le2Y

## Why It's Good For The Game

Directional explosions - Useful functionality for a range of potential
use cases, which can be implemented with minimal extra processing cost
(Worst case scenario being very large directional explosions)

Backblast - Looks way cooler than a bunch of projectiles, and should be
significantly more functional in high-lag situations where projectile
code tends to get fucky

X4 - More predictable for players wanting to use it as a breaching
charge, you can actually stand near the charge and not have to worry
about being hoist upon your own petard.

## Changelog
🆑
add: Added support for directional explosions.
add: Rocket launcher backblast is now 271% more explosive, check your
six for friendlies!
add: X4 charges now explode in a cone away from the user when placed on
a sufficiently solid object.
fix: X4 charges will now behave correctly when placed on dense atoms
(note: don't try to read a variable from an atom you just blew up)
/🆑

* Add balloon alerts to plunging (#82559)

## About The Pull Request

Makes all plunging actions (pretty much anything using `plunger_act`)
have a visible balloon alert.

## Why It's Good For The Game

Makes sense that others would easily notice you plunging the shit out of
something.

Also, more people might finally learn that you can plunge the vent clogs
instead of welding them.

## Changelog
🆑
qol: Added balloon alerts whenever you start plunging something (i.e )
/🆑

* Fixes spurious runtime on Icemoon caused by turf calling unimplemented LateInitialize() (#82572)

## About The Pull Request

As of https://github.com/tgstation/tgstation/pull/82540 this runtime was
happening,


![image](https://github.com/tgstation/tgstation/assets/13398309/4d838fda-c157-4e33-ae64-77eafca1806f)

`/turf/open/openspace/icemoon/` can be changed to
`/turf/open/misc/asteroid/snow/icemoon/do_not_chasm` before
`Initialize()` returns, which resulted in it `INITIALIZE_HINT_LATELOAD`
getting returned on a turf that does not have an implementation of that
proc.

This should fix that.

## Why It's Good For The Game

Fixes CI error

* Blueprints tgui (#82565)

Blueprints now use a TGUI panel instead of the old HTML one.
Also did general code improvement and maintaining to blueprints in
general and also destroyed the ``areaeditor`` level, repathing it to
just 'blueprints'.
Also adds a sound when you look at structural data cause why not

Video demonstration:

https://github.com/tgstation/tgstation/assets/53777086/861773fd-3d57-472d-bc94-d67b0d4f1dbd

The 4 blueprint types:

![image](https://github.com/tgstation/tgstation/assets/53777086/bfd68eb5-c430-4608-a3f7-d6ac86727882)

Another HTML menu dead underground.
This is more responsive and doesn't require constant updating to see
which area you're in, feels less OOC (instead of saying "the blueprints
say", just say it, you ARE the blueprints).

Like, come on

![image](https://github.com/tgstation/tgstation/assets/53777086/fcf1b8b6-37c3-4c94-969f-3b121c983dc0)

Look at all this wasted space

![image](https://github.com/tgstation/tgstation/assets/53777086/1d3e61cd-bc56-4280-a3bb-0c66604e75b3)

🆑
refactor: Blueprints now use TGUI.
qol: Blueprints can now be used while lying down.
/🆑

* General maintenance for chem master (#82002)

**1. Qol**
- Adds screen tips & examines for screwdriver, wrench, crowbar & beaker
insertion, removal & replacing actions
- Analyzing reagents is now a client side feature & not a back end mode,
meaning one person can see details of a reagent while the other can
print stuff and do other operations so it's a non blocking operation.
This also means 2 players can see information of 2 different reagents in
their own screens, With that the overlay for analysis mode has been
removed
- You cannot do any tool acts on machines while printing. Balloon alerts
will be displayed warning you of that.
- The preferred container for the master reagent in the beaker is now
showed in both condiment & chem master. It can be enabled/disabled via a
CheckBox

**2. Code Improvements**
- Removed defines like `TARGET_BEAKER` , `TARGET_BEAKER` etc. ther
functionality is implemented as params in the `transfer_reagent()` proc
directly
- Removed all variables relating to analyzing reagents like
`reagent_analysis_mode`, `has_container_suggestion` etc. all memory
savings
- `printable_containers` now stores static values that can be shared
across many chem masters
- Updates only overlays and not the whole icon during operations for
efficiency

**3. Fixes**
- You can hit the chem master with the screwdriver, wrench, crowbar &
beaker when in combat mode
 - You cannot insert hologram items into the chem master
- Deconstructing a condiment master will give you the circuit board
already pre-programmed with that option selected so you don't need to
use a screwdriver to re program it
- `printing_amount` is now the maximum number of containers that can be
printed at a time. Presently this number with upgraded parts would print
out empty containers especially for patches. This is because
`volume_per_item` does not take into consideration this var. Also this
var would not give control to the player on exactly how many containers
to print as whatever amount the player entered would be multiplied with
this value producing a lot of waste & worse empty containers. Now this
var determines exactly how many containers you can print and is imposed
on the client side UI as well

**4. Refactors (UI performance)**
- Beaker data is compressed into a single entity & sent to the UI. This
is set to null if no beaker is loaded thus saving data sent
- Reuses Beaker props from chem synthesizer to reduce code
- reagent REF replaced with direct type converted to text and later
converted with `text2path()` cause its much faster

🆑
qol: Adds screen tips & examines for screwdriver, wrench, crowbar &
beaker insertion, removal & replacing actions
qol: Analyzing reagents no longer blocks other players from doing other
operations. Multiple players can analyze different reagents on the same
machine
qol: You cannot do any tool acts on the machine while printing to
prevent any side effects.
qol: The preferred container for the master reagent in the beaker is now
showed in both condiment & chem master. The feature can be
enabled/disabled via a check box
code: removed defines for reagent transfer, vars for reagent analyzis to
save memory. Autodoc for other vars & procs
fix: You can hit the chem master with tools like screwdriver, crowbar,
wrench & beaker in combat mode
fix: You cannot insert hologram items into the chem master
fix: Deconstructing a condiment master will give you the circuit board
already pre-programmed with that option
fix: You now print the exact amount of containers requested even with
upgraded parts without creating empty containers. Max printable
containers is 13 with tier 4 parts able to print 50 containers.
refactor: Optimized client side UI code & chem master as a whole.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* Wraps `lowertext()` to ensure proper stringification. (#82442)

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.

* Clowns can now make balloon... toys. And also mallets and hats. (#82288)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

Clowns will now start with a box of 24 random long balloons and a
skillchip in their noggin allowing them to create balloon animals by
combining two of them of different colour together. Owners of the
skillchip also gain access to crafting recepies of balloon mallets,
vests, helmets and tophats, all created from long balloons. A crate of
long balloons, with a box of balloons inside, can be bought at cargo, in
case the clown runs out. I might edit this once I wake up, its 3 in the
morning right now.
Oh also, resprited how balloons look in inventory.

![image](https://github.com/tgstation/tgstation/assets/122572637/2d7ce955-c787-48a5-bfda-4613d2eed837)

Balloon animals funny.
Silly features are my favourite kind of features, and this one's
open-ended too.
Someone on the coder chat recommended someone would do it that one time,
here it goes.

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Added long balloon box to the clown's starting inventory, and a
skill-chip of long lost honk-motherian knowledge to their brain.
add: Added long balloons. Consequently, added balloon animals to make
from such balloons. Also, balloon top hat, vest, helmet, and a mallet.
Don't ask about the mallet.
add: A long balloons box harvested fresh from the farms on the clown
planet will be able to be shipped in a crate to the cargo department
near you!
add: As per requests; water balloons can now be printed at service
lathe, and entertainment modsuit can now blow long balloons!
image: Balloons will now have an unique sprite when in the inventory,
compared when to on the ground.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>

* Quick spellcheck 'steall' (#82560)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/82447 quick followup to
this, caught it while glancing through the code.

* Fix

* merge conflicts

* Revert "Monkeys now use height offset (and monkey tail works) (#81598)"

This reverts commit 5cfdc5972d16c6b509220e8874a927696249d36a.

* fix

* Fixed lateinitialize

* This should cut it

* Oh right

* There?

* Damn, here?

* There

* [NO GBP] Fixes spurious runtime caused by icemoon (again) (#82582)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/82572 I tried to fix this
but there was an unaccounted race condition which just caused a separate
runtime...


![firefox_GxGibAO281](https://github.com/tgstation/tgstation/assets/13398309/f251aecc-ef17-4bae-a741-5aade40de423)

Since the type is being changed mid-execution `replacement_turf` will
become out of scope. My bad--this should fix it now for good.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Higgin <cdonny11@yahoo.com>
Co-authored-by: NeonNik2245 <106491639+NeonNik2245@users.noreply.github.com>
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-04-26 01:22:24 +02:00
nevimer 45e52eb774 Merge remote-tracking branch 'skrat/master' into new-bubbermaster
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
#	_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm
#	_maps/map_files/Birdshot/birdshot.dmm
#	_maps/map_files/Deltastation/DeltaStation2.dmm
#	_maps/map_files/IceBoxStation/IceBoxStation.dmm
#	_maps/map_files/MetaStation/MetaStation.dmm
#	_maps/map_files/NorthStar/north_star.dmm
#	_maps/map_files/VoidRaptor/VoidRaptor.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	_maps/shuttles/pirate_ex_interdyne.dmm
#	code/__DEFINES/mobs.dm
#	code/__HELPERS/~skyrat_helpers/is_helpers.dm
#	code/datums/mood.dm
#	code/game/objects/effects/spawners/random/random.dm
#	code/modules/admin/verbs/adminhelp.dm
#	code/modules/clothing/head/jobs.dm
#	code/modules/mob/living/brain/brain_say.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly.png
#	code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_stargazer.png
#	code/modules/uplink/uplink_items/job.dm
#	config/lavaruinblacklist.txt
#	icons/mob/actions/actions_changeling.dmi
#	icons/mob/clothing/mask.dmi
#	icons/obj/mining.dmi
#	modular_skyrat/master_files/code/modules/client/preferences/headshot.dm
#	modular_skyrat/master_files/code/modules/mob/living/examine_tgui.dm
#	modular_skyrat/master_files/code/modules/research/techweb/all_nodes.dm
#	modular_skyrat/master_files/icons/mob/clothing/under/skirts_dresses.dmi
#	modular_skyrat/master_files/icons/obj/clothing/under/skirts_dresses.dmi
#	modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi
#	modular_skyrat/modules/colony_fabricator/code/appliances/space_heater.dm
#	modular_skyrat/modules/company_imports/code/armament_datums/deforest_medical.dm
#	modular_skyrat/modules/hyposprays/code/hypospray_kits.dm
#	strings/traumas.json
#	tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/skyrat/headshot.tsx
2024-04-20 22:19:03 -04:00
SkyratBot 42f6f57dc0 [MIRROR] Replaces even more deciseconds with SECONDS (#27205)
Replaces even more deciseconds with SECONDS

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Waterpig <wtryoutube@seznam.cz>
2024-04-16 12:58:35 +02:00
san7890 c403a6eccc Wraps lowertext() to ensure proper stringification. (#82442)
## About The Pull Request

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.
2024-04-10 12:19:43 -07:00
Jeremiah 9723b4b317 Replaces even more deciseconds with SECONDS (#82438)
## About The Pull Request
Using these search regexes:

Ending in 0:
`addtimer\((.*),\s?(\d{1,3})0\b\)`
replacement:
`addtimer($1, $2 SECONDS)`

Two digit ending in odd:
`addtimer\((.*), (\d)([1-9])\)$`
replacement:
`addtimer($1, $2.$3 SECONDS)`

Single digit ending odd:
`addtimer\((.*), ([1-9])\)$`
replacement:
`addtimer($1, 0.$2 SECONDS)`

## Why It's Good For The Game
Code readability

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-06 15:18:49 -06:00
nevimer 9102c49c27 Squashed commit of the following:
commit 2abf1c919f05b34cfee752677431a864bc22f12e
Merge: c9636f2bea7b 1c9f9a3527
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Sun Mar 10 20:44:55 2024 +0100

    Merge branch 'master' into upstream-2024-3

commit 1c9f9a3527
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Mar 10 15:53:58 2024 +0100

    Automatic changelog for PR #1238 [ci skip]

commit d13b12a0fa
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date:   Sun Mar 10 09:53:33 2024 -0500

    Cat cyborg sprite changes (#1238)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    Refreshes the Engineer cat borg sprite

    Adds 2 sprites one Peacekeeper and one Spider clan sprite.

    Reverts the Syndicat borg back to their proper security type

    Reverts the Security cat borg back to their combat usage for the
    Syndicate

    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->

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

    ## Why It's Good For The Game

    <!-- Argue for the merits of your changes and how they benefit the game,
    especially if they are controversial and/or far reaching. If you can't
    actually explain WHY what you are doing will improve the game, then it
    probably isn't good for the game in the first place. -->

    Some of the Cat Borg sprites don't match their types or didn't have
    types and I decided to fix that.

    Also fixes the custom open panel overlay from not showing up on Cat
    Borgs

    ## Proof Of Testing

    ![dreamseeker_9PPPBiWrZ9](https://github.com/Bubberstation/Bubberstation/assets/78038207/5fa3293d-d539-4f53-8d64-d2a64d3f2bd4)

    ![dreamseeker_Hpg5CpG6yq](https://github.com/Bubberstation/Bubberstation/assets/78038207/9c1b6abe-6ea6-4d70-a913-e1922f661ca1)

    ![dreamseeker_EHrPulUtci](https://github.com/Bubberstation/Bubberstation/assets/78038207/c339cb8f-5273-4511-ad9c-b548b8632c53)

    ![dreamseeker_u0z38dclfF](https://github.com/Bubberstation/Bubberstation/assets/78038207/3fc15611-656c-4c60-84c5-4546375d70e1)

    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑
    add: +Peacekeeper cat borg sprites, Spider clan cat borg sprites,
    Engineer cat borg refreshed sprites
    fix: Cat cyborg panels not working
    image: +Peacekeeper cat borg sprites, Spider clan cat borg sprites,
    Engineer cat borg refreshed sprites
    code: -Duplicate code
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit c6b2f531dc
Author: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Date:   Sat Mar 9 12:58:23 2024 +0700

    some loadout item mishab (#1252)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    Item were not in the correct category

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    N/A

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit c9636f2bea7bb8d4b20a72c9c2c7f660ff798dad
Merge: fdec76aa07c0 edd12dd29060
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 14:14:33 2024 +0100

    Merge branch 'upstream-2024-3' of https://github.com/Majkl-J/Bubberstation into upstream-2024-3

commit fdec76aa07c09827c2eb57006498d8fe826334ca
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 14:14:23 2024 +0100

    Yet again fixes TG's shitty mapvotes

commit edd12dd290606fa94e7d311eed47ad12b1853690
Merge: 314437533a1f 1b8b7e7904
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Fri Mar 8 12:43:11 2024 +0100

    Merge branch 'master' into upstream-2024-3

commit 1b8b7e7904
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 12:32:29 2024 +0100

    Automatic changelog for PR #1248 [ci skip]

commit c157dd8102
Author: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Date:   Fri Mar 8 18:12:19 2024 +0700

    Fix idma clothing again (#1248)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request
    fixes the icon add back mishanok to the item whitelist
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    :cl:EspeciallyStrange
    fix: IDMA donor clothing being improperly offsetted and not correctly
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit 314437533a1f691935c067f9294a76965931d695
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 12:09:58 2024 +0100

    Fix zender's map again

commit ebe666293312b41b49d6e74947809182589a876a
Merge: ebad5cf24025 a7c86eb5e619
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 12:02:51 2024 +0100

    Merge branch 'upstream-2024-3' of https://github.com/Majkl-J/Bubberstation into upstream-2024-3

commit ebad5cf240253a18c5131725c5e8e25d6fe05fe6
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 11:53:12 2024 +0100

    This should fix burger's reactor

commit a7c86eb5e6190853db804763c82dbe7a5cb1f70c
Author: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Date:   Fri Mar 8 17:47:44 2024 +0700

    Update reactor.dm

commit 3abe64a4fab5a851d977d45a191ced47ddc70a38
Merge: 5578e5cea484 61ed57d83b
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Fri Mar 8 11:00:23 2024 +0100

    Merge remote-tracking branch 'upstream' into upstream-2024-3

commit 61ed57d83b
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date:   Thu Mar 7 20:33:57 2024 -0500

    bubber always message staffchat ahelps (#935)

    internal change test, we might get sick of it

    ---------

    Co-authored-by: iero-builder-kobold <kobold>

commit c7a406b3f7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:28:22 2024 +0100

    Automatic changelog for PR #1226 [ci skip]

commit c5397e0281
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:27:42 2024 +0100

    Automatic changelog for PR #1229 [ci skip]

commit 6a0af094ff
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:26:30 2024 +0100

    Automatic changelog for PR #1246 [ci skip]

commit 8f32718eb7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:25:38 2024 +0100

    Automatic changelog for PR #1245 [ci skip]

commit c3d5392270
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:24:48 2024 +0100

    Automatic changelog for PR #625 [ci skip]

commit 7584b19392
Author: Return <donwest947@gmail.com>
Date:   Thu Mar 7 19:17:46 2024 -0600

    Updates NTC offices slightly because Gavla did it better (#1226)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request
    This PR swaps out nearly every NTC's office's carpet with green carpet,
    which is much less flashy and looks a lot better.

    Additionally, it expands the windows in each office, and changes their
    privacy shutters to pod ones, that look better.
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->

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

    ## Why It's Good For The Game
    Green carpet looks good, more windows means people can see what is going
    on inside.

    <!-- Argue for the merits of your changes and how they benefit the game,
    especially if they are controversial and/or far reaching. If you can't
    actually explain WHY what you are doing will improve the game, then it
    probably isn't good for the game in the first place. -->

    ## Proof Of Testing

    ![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/f1c62207-bec1-48cd-9d2b-ae960791d6ba)

    ![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/51738afc-b5e4-4970-b9b0-ad34239b8525)

    ![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/d20dbbf5-e568-47e2-8d5f-7b480abb72b8)

    ![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/da18531a-8739-4d99-8df6-6498ef73293f)

    ![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/a9ff82fb-155c-4934-96df-51df911f1e8b)

    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑 ReturnToZender
    add: NTC offices have had their carpet changed out to something less
    over-the-top. The windows have been expanded as well.
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit 39e807e6dd
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Thu Mar 7 17:15:49 2024 -0800

    Fixes traitor announcer double-sanitizing. (#1229)

    ## About The Pull Request

    Fixes traitor announcer double-sanitizing.

    ## Why It's Good For The Game

    Fixes traitor announcer double-sanitizing.

    ## Proof Of Testing

    ![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/11789cb0-d513-4711-8c40-92310eb742ad)

    ## Changelog

    🆑 BurgerBB
    fix: Fixes traitor announcer double-sanitizing.
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit ded2033415
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Fri Mar 8 01:15:11 2024 +0000

    Moonstation tram sprites/fixes (#1246)

    ## About The Pull Request

    Adds Moonstation variants of the required tram components, resolving
    various graphical issues with the signs and controls

    ## Proof Of Testing

    ![image](https://github.com/Bubberstation/Bubberstation/assets/83487515/90c480ff-16e3-4ede-b742-104497bc4a7d)

    ## Changelog

    🆑 LT3
    image: Added Moonstation specific tram sprites
    fix: Fixed Moonstation references to Tramstation's tram
    /🆑

commit 4a0c68191c
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Thu Mar 7 17:14:52 2024 -0800

    Fixes missing telecomms wire in Moonstation (#1245)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    Fixes missing telecomms wire in Moonstation

    ## Why It's Good For The Game

    Fixes missing telecomms wire in Moonstation

    ## Proof Of Testing

    Fixes missing telecomms wire in Moonstation

    ## Changelog

    🆑 BurgerBB
    fix: Fixes missing telecomms wire in Moonstation
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit 2c7d148856
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date:   Thu Mar 7 20:14:26 2024 -0500

    Contractor and Ninja Modsuits have a deployable microbomb (Enable the DNA lock and hit Lock on the modsuit to arm) (#625)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    Alternatives to blowing up. You can drain the cells with EMP, you and
    acid them off... but you gotta work for it.

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

    ## Why It's Good For The Game

    They're not supposed to be loot bags.

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑
    balance: contractor and ninja modsuits have DNA locked microbombs
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    ---------

    Co-authored-by: iero-srv <>
    Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>

commit b2b825f19a
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date:   Thu Mar 7 20:11:52 2024 -0500

    force atmos hack (#1108)

    Forces the atmos MC to run in two different ways. Very bad, but the MC
    doesn't work and this is a byond native fallback to keep rounds at least
    going.

commit f9e71b80b7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:09:23 2024 +0100

    Automatic changelog for PR #1225 [ci skip]

commit e8d92666e2
Author: Return <donwest947@gmail.com>
Date:   Thu Mar 7 19:07:26 2024 -0600

    Restores Smol42's donator item to its whitelist (#1225)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->
    On request, this PR makes the graceful trenchcoat cloak no longer
    available to all donators :( sad

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

    ## Why It's Good For The Game
    <!-- Argue for the merits of your changes and how they benefit the game,
    especially if they are controversial and/or far reaching. If you can't
    actually explain WHY what you are doing will improve the game, then it
    probably isn't good for the game in the first place. -->
    It's not, other than to be polite

    ## Proof Of Testing
    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑 ReturnToZender
    del: Donors' graceful trenchcoat
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>

commit fe8bc28650
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Mar 8 02:04:46 2024 +0100

    Automatic changelog for PR #1061 [ci skip]

commit d0a4544e96
Author: Arturlang <24881678+Arturlang@users.noreply.github.com>
Date:   Fri Mar 8 03:04:23 2024 +0200

    [DONE] A bunch of bloodsucker changes (#1061)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request
    This adds a bunch of things as a addition to my original bloodsucker PR,
    there's still one PR in the plans to refactor bloodsucker abilities.
    #What this adds:
    - Bloodsuckers loosing the heart or brain is lethal, before you could
    simply walk around without a heart. Does not however cause a final death
    - bloodsucker vampire bats will no longer /list you when attacking, and
    are also just as fast as human runspeed
    - Blood cost for vassalizing was almost completely removed, now only
    taking tiny amounts of blood to do so.
    - Dullahans can't be bloodsuckers since... their head isn't attached.
    - ....buuuut bloodsuckers now kinda become helpless dullahans just with
    no body if they get decapicated! Funny talking head go!
    - Level up cost is now 15% of max blood, down from 20%
    - The stat bar will show you the threshold for exiting frenzy now too
    when you are frenzying.
    - Maximum blood volume is shown in the stat menu as well
    - Hopefully fixes some torpor loops related to frenzy
    - Tremere now also get informed of how much blood they need to pay for
    level ups.
    - Fortitude now gives you burn resistance, just 20% less than brute
    resistance
    - Bloodsucker abilities now will show their level when you hover over
    them. Trust me, this was really neccessary.
    - Hopefully fixes cryoing or deleted bloodsuckers not removing vassals.
    - Can longer use veil while unconcious or dead
    - Caps humanity lost to 50, this means a maximum of 500 blood to enter
    frenzy/ 10 fully drained people with clients, at this point you also
    loose the masquerade ability.
    - Admins can now ban bloodsuckers and vassals.
    - Bloodsuckers can now mesmerize mimes
    - Fat bloodsuckers are no longer unable to enter coffins. Now they
    resize their lair's coffin. Very obviously.
    - Lizards are no longer fucked if they are on fire, they are no longer
    forever too hot to survive
    - Going into torpor in a coffin will extinguish and set your temperature
    to normal
    - bloodsuckers will no longer accrue toxin damage from not having a
    liver or having a failing one, even though they had the toxin immune
    trait
    - synths will now heal their prosthetic limbs
    - torpor start now checks for oxygen and toxin damage, and heals both
    completely on it's end
    - Haste will remove stuns at level 3, and do a non-stunning dash
    - Tremere dominate vassalizing now actually works!
    - Fixes ventrue objectives not succeeding properly
    - Refactors the heart thief objective and improves it by requiring it to
    be non-monkey hearts and letting bloodsuckers examine hearts to see if
    they are valid, even uses the same logic, too!
    - Ventrue favorite vassal batform now has night vision, and it's spawned
    bats despawn once the cooldown refreshes, and halves it's cooldown to 1
    minute
    - Traits added to vassals get removed once they loose their antag datum,
    ie favorite vassal traits, or the ones gained in the process of ventrue
    sire-ing.
    - Favorite vassals now clean up propertly when the antag datum is
    removed, tremere, and malkavian clean up their related additions.
    - Refactors how the blood display updates, instead it now updates every
    time your blood level is changed, making it update far faster and only
    when it's needed.
    - Stakes now have different properties, the normal stake is fast to
    stick in someone, but can fall out on it's own, the burnt one takes
    longer to be put in, but doesn't fall out, the silver stake is the
    slowest to be stuffed in someone's heart, and is the only stake to be
    able to cause a Final Death to a sleeping or dead bloodsucker
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->
    closes #1180, closes #1208
    <!-- Please make sure to actually test your PRs. If you have not tested
    your PR mention it. -->

    ## Why It's Good For The Game

    <!-- Argue for the merits of your changes and how they benefit the game,
    especially if they are controversial and/or far reaching. If you can't
    actually explain WHY what you are doing will improve the game, then it
    probably isn't good for the game in the first place. -->

    ## Proof Of Testing
    The way I develop is always run a local server and test the changes that
    I do, takes awhile but won't have as many bugs as a result
    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑
    add: Decapacitated bloodsuckers can now talk!
    add: The stat bar will show you the threshold for exiting frenzy now too
    when you are frenzying.
    add: Bloodsucker abilities now will show their level when you hover over
    them. Trust me, this was really neccessary.
    add: Tremere now also get informed of how much blood they need to pay
    for level ups.
    add: At level 3, haste will now remove stuns and do a non-stunning dash
    add: Bloodsucker blood display now always updates when a bloodsucker's
    blood level is changed
    add: Bloodsuckers can now examine hearts to see if they are valid for
    the heart thief objective
    add: Bloodsucker vassals now clean up any traits gained from their
    tenure as a vampire's minion.
    add: Favorite vassals now properly clean up their effects once the antag
    datum is lost.
    add: Bloodsucker synths will be able to heal their prosthetic limbs, but
    normal bloodsuckers still cannot.
    add: When you exiit torpor as a bloodsucker, you will completely heal
    any toxin and oxygen damage, as you should already be immune to it. This
    is a safety feature.
    add: Entering a coffin will normalize your temperature and extinguish
    you if you're on fire, if you are a bloodsucker.

    fix: bloodsucker vampire bats will no longer /list you when attacking
    fix: Hopefully fixes some torpor loops related to frenzy
    fix: Hopefully fixes bloodsuckers cryoing not removing vassal datums
    fix: Bloodsuckers can no longer use veil of many faces while unconcious
    fix: lizard bloodsuckers will no longer suffer from heat for a long time
    fix: The ventrue objective now properly succeeds if you have sired a
    vampire
    fix: Livers are no longer required for bloodsuckers to live, as it
    caused them toxin damage which overrode the trait that made them immune
    to toxins.
    fix: Entering torpor now accounts for all damage types, even when you
    should be immune to them. This is to ensure you enter torpor to heal
    those damage types in the case of odd behaviour.

    balance: coffins should now set your temperature to normal and
    extinguish you.
    balance: bloodsucker level up cost is now 15% of max blood, down from
    20%
    balance: Caps humantiy loss at 50 humanity/500 blood to frenzy, and
    makes it remove your masquerade ability.
    balance: Bloodsucker bats now have human runspeed
    balance: Blood cost for vassalizing was almost completely removed, now
    only taking tiny amounts of blood to do so.
    balance: Fortitude now gives you burn resistance, just 20% less than
    brute resistance
    balance: Can no longer gut bloodsuckers
    balance: Bloodsuckers loosing their heart will make the vampire unable
    to use their abilities or even regenerateor revive via torpor, you can
    however regain your heart if you sleep in a coffin with a heart.
    balance: Stakes now have different properties, the normal stake is fast
    to stick in someone, but can fall out on it's own, the burnt one takes
    longer to be put in, but doesn't fall out, the silver stake is the
    slowest to be stuffed in someone's heart, and is the only stake to be
    able to cause a Final Death to a sleeping or dead bloodsucker

    del: Dullahans can't be bloodsuckers since... their head isn't attached
    admin: Bloodsuckers and vassals can now be banned like other antags.

    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit 5578e5cea484f8147e195c6db60be46b4213d966
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 12:21:08 2024 +0100

    Update screenshot ci

commit db15206076abea9afb7829f5d93e8b29bd4dc237
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 11:39:25 2024 +0100

    oh yea the ntrep

commit aef32982b9c927ad88527f75088f8ed517a58ffd
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 11:37:37 2024 +0100

    krill me

commit b2b50d591103125fc56893f137b8f42f3d86fa97
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 11:22:18 2024 +0100

    New skill unlocked

commit 9fe9c8cfd0bf95c01d76b76f6e9685cf5d2d77df
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 11:12:41 2024 +0100

    Okay skyrat maps just decided to conflict

commit 0a093b3092bb95fbe345489b7adbe5f58a01ad79
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 11:10:47 2024 +0100

    I had to do these manually

commit e559e7b4268ce83263205da007ce7b9413fbe21a
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 10:58:59 2024 +0100

    I chose the wrong map version it seems

commit 028c79ab3a07812777f0160de99b3490915e1907
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 08:47:33 2024 +0100

    these

commit 2de5dd3359f7413b2caaf875202612e045dc165b
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 08:46:51 2024 +0100

    Hopefully didnt break anything

commit 00f5c0acd6a75d74f8e90f8fb04a90fd868f34f9
Merge: 1e7d317fc7de 0a5740f577
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 08:28:23 2024 +0100

    Merge remote-tracking branch 'upstream' into upstream-2024-3

commit 1e7d317fc7de139b85e490fb76599ede24aea28a
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Wed Mar 6 08:18:53 2024 +0100

    Oh my fucking god

commit 0a5740f577
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Mar 4 21:18:04 2024 +0100

    Automatic changelog for PR #1224 [ci skip]

commit cb09b2de3b
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Mon Mar 4 12:17:41 2024 -0800

    Adds Ashwalkers to Moonstation (#1224)

    ## About The Pull Request

    Adds Ashwalkers to Moonstation. Also adds a funny temple right next to
    the ashwalker nest so they can traverse z-levels and ~~raid~~ hunt
    around the station.

    ## Why It's Good For The Game

    People wanted it.

    ## Proof Of Testing

    Trust it me it works bro I forgot to take screenshots trust me bro.

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑 BurgerBB
    add: Adds Ashwalkers to Moonstation
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit a658dd6cc99e23562c1147179f9fe29c653058a0
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Mon Mar 4 17:08:33 2024 +0100

    These were added upstream

commit f4b02265ac9a4bbccf445bf5acce87ed731ad8d1
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Mon Mar 4 11:25:47 2024 +0100

    aaaaaaaa

commit dad21ec088baff50a54dda601fa01b2fd7c217bd
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Mon Mar 4 11:10:46 2024 +0100

    Another check fixed

commit 6afb158ca5a4e0cdca8b89f9e511754d512753c9
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Mon Mar 4 10:34:11 2024 +0100

    Waddlefix

commit a155568d1138ce379fb3c6df79111ad5f3310b74
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Mon Mar 4 08:45:19 2024 +0100

    Makes it compile

    - Stuff to check: Arcade code

commit a4afaa6d19
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Mar 4 04:05:56 2024 +0100

    Automatic changelog for PR #1116 [ci skip]

commit 439e521f3c
Author: Swift <jackwars4@gmail.com>
Date:   Sun Mar 3 20:54:28 2024 -0600

    Stop spamming logs when engineers lovingly feed the supermatter pipes by the hundreds. (#1116)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    Title

    Also the method I went about this adds a flag to the game, which means
    in the future if people find another way to spew even more items into
    the supermatter that spam the log, we can just add the flag to those
    items.

    ## Why It's Good For The Game

    I got bwoinked this one time because I was spamming the admin log and I
    told them I'd look for a solution.

    This might not be _the_ solution but it is **a** solution.

    ## Proof Of Testing

    this is what my IC chat tab looked like

    ![image](https://github.com/Bubberstation/Bubberstation/assets/26744576/bf7e5b9e-daf5-451c-b839-3232ae0a6317)

    This is what my logs tab looked like

    ![image](https://github.com/Bubberstation/Bubberstation/assets/26744576/5c820074-a16e-47d1-83cc-606fe6874eb0)

    It still logs pipes for initial startup so we good there.
    I also verified that other items still set off the log function as
    expected.

    ## Changelog

    🆑
    admin: Will no longer receive supermatter ate a pipe spam in the log.
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
    Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>

commit 739bfe1433
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Mar 3 22:43:02 2024 +0100

    Automatic changelog for PR #1217 [ci skip]

commit 5beacd224e
Author: Return <donwest947@gmail.com>
Date:   Sun Mar 3 15:42:41 2024 -0600

    Makes F-list's image host provide headshots (#1217)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->
    Currently, only two websites are accepted by the headshot regex. This
    fixes a problem that is occurring with Discord right now, where images
    have started being deleted after a certain amount of time.
    <!-- Please make sure to actually test your PRs. If you have not tested
    your PR mention it. -->

    ## Why It's Good For The Game
    <!-- Argue for the merits of your changes and how they benefit the game,
    especially if they are controversial and/or far reaching. If you can't
    actually explain WHY what you are doing will improve the game, then it
    probably isn't good for the game in the first place. -->
    Gyazo sucks as an image host, so while it does technically serve its
    purpose, we want to expand our pool of potential options. F-list
    properly verifies that what it receives is an image (furries winning yet
    again) and so it should fit our criteria for new headshots.

    ## Proof Of Testing

    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->

    ## Changelog
    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and it's effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑 ReturnToZender (code)
    add: F-list headshots are now accepted
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    ---------

    Co-authored-by: Esixdotnet <156951974+Esixdotnet@users.noreply.github.com>
    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
    Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
    Co-authored-by: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
    Co-authored-by: thegrb93 <grbrown93@sbcglobal.net>
    Co-authored-by: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>

commit e6b48cbe7fa87c0dd052245be5f2a829a00d10e8
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Sun Mar 3 20:01:46 2024 +0100

    resolve-4

commit cc2b53503137fe3d95224ccd19d480dde05eff62
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Sun Mar 3 19:58:41 2024 +0100

    resolve-3

commit 7930a8b5c932313bec7a8614e4bc0b5f3b8065d6
Merge: 93635c534d8e 2aa4805942
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Sun Mar 3 19:06:44 2024 +0100

    Merge branch 'master' into upstream-2024-3

commit 2aa4805942
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Mar 3 18:45:53 2024 +0100

    Automatic changelog for PR #1078 [ci skip]

commit 93635c534d8ed3eca796778eee67675eb4948b4c
Merge: ec27c845532f 47aa5c2d31
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Sun Mar 3 18:45:50 2024 +0100

    Merge branch 'master' into upstream-2024-3

commit 47aa5c2d31
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Sun Mar 3 09:45:30 2024 -0800

    Nerfs Lichdom because someone messaged me on discord about it once (#1078)

    ## About The Pull Request

    After 3 Lichdom resurrections, announcements will be made about your
    general phylactery location (the area) when you die.
    Phylactery binding now requires the object to be at least bulky in size,
    and it cannot be fireproof, lava proof, or indestructible.

    ## Why It's Good For The Game

    Lichdom is insanely strong, even with the drawbacks that make you
    generally weaker. Items can be hidden away in space (skeletons are
    immune to space!) and can be small or hard to see objects such as pens
    or cigarette butts. Some items can be fireproof and acid proof as well,
    requiring usage of mechanics that delete objects entirely (very limited
    and easy to sabotage, maybe the supermatter is reliable but that can be
    sabotaged too).

    Regardless this PR should make lichdom less crazy.

    ## Proof Of Testing

    Untested and in a draft because feedback is needed.

    ## Changelog

    🆑 BurgerBB
    balance: After 3 Lichdom resurrections, announcements will be made about
    your general phylactery location (the area) when you die. Phylactery
    binding now requires the object to be at least bulky in size, and it
    cannot be fireproof, lava proof, or indestructible.
    /🆑

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit 3bc08a656c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Mar 3 18:11:45 2024 +0100

    Automatic changelog for PR #1188 [ci skip]

commit 603f714998
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Sun Mar 3 09:11:21 2024 -0800

    Fixes some Moon Station bugs, such as the funny engineering bridge access bug and a lack of cigarette/coffee vendors. (#1188)

    ## About The Pull Request

    Fixes some Moon Station bugs, such as the funny engineering bridge
    access bug and a lack of cigarette/coffee vendors.

    ## Why It's Good For The Game

    Bugfixes good.

    ## Proof Of Testing

    If it compiles, it werks.

    ## Changelog

    🆑 BurgerBB
    fix: Fixes some Moon Station bugs, such as the funny engineering bridge
    access bug and a lack of cigarette/coffee vendors.
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit 757796bc5e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Mar 3 17:38:34 2024 +0100

    Automatic changelog for PR #1219 [ci skip]

commit cd0af8e862
Author: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com>
Date:   Sun Mar 3 08:38:13 2024 -0800

    Limits Powersinks + Crab-17 purchases to once each per traitor per round. (#1219)

    ## About The Pull Request

    Limits Powersinks and Crab-17 purchases to once each per traitor per
    round.

    ## Why It's Good For The Game

    Powersink and Crab spam is pretty awful. A lot of people recently have
    been spamming these two objectives and then doing nothing of substance
    with them. Traitors should be using their TC to further the round and
    create meaningful conflict instead of what can basically be described as
    being in a constant state of soft grief.

    ## Proof Of Testing

    If it compiles, it werks.

    ## Changelog

    🆑 BurgerBB
    del: Limits Powersinks + Crab-17 purchases to once each per traitor per
    round.
    /🆑

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit ec27c845532fc6deeab200d7107842dc4a59f603
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Sun Mar 3 16:14:28 2024 +0100

    resolve-2

commit ff457077fadcd08040a15b90aef5a8226f67630b
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Sun Mar 3 16:09:01 2024 +0100

    Resolve 1
2024-03-10 21:52:03 -04:00
SkyratBot 84e42fd0eb [MIRROR] Removes some code soul (IF YOU ARE COPY PASTING THIS...), replaces it with a macro [MDB IGNORE] (#25272)
* Removes some code soul (`IF YOU ARE COPY PASTING THIS...`), replaces it with a macro (#79935)

## About The Pull Request

Replaces all instances of `SSblackbox.record_feedback\("tally",
"admin_verb", 1, (.+)\)` with `BLACKBOX_LOG_ADMIN_VERB($1)`

This makes so the funny comment isn't necessary.

It also reveals one location which someone did not heed the comment, the
`debug_controller` proc copy+pasted the line but did not change the
fourth argument. PEOPLE DON'T READ!

* Removes some code soul (`IF YOU ARE COPY PASTING THIS...`), replaces it with a macro

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-11-27 01:02:37 -05:00
MrMelbert 566c7ba9c2 Removes some code soul (IF YOU ARE COPY PASTING THIS...), replaces it with a macro (#79935)
## About The Pull Request

Replaces all instances of `SSblackbox.record_feedback\("tally",
"admin_verb", 1, (.+)\)` with `BLACKBOX_LOG_ADMIN_VERB($1)`

This makes so the funny comment isn't necessary. 

It also reveals one location which someone did not heed the comment, the
`debug_controller` proc copy+pasted the line but did not change the
fourth argument. PEOPLE DON'T READ!
2023-11-26 20:17:04 -07:00
SkyratBot cfe6805e55 [MIRROR] Player Ticket History - A Synopsis At A Glance [MDB IGNORE] (#21688)
* Player Ticket History - A Synopsis At A Glance

* fix

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-07 15:42:44 +00:00
Zephyr 89f5992a4c Player Ticket History - A Synopsis At A Glance (#75830)
## About The Pull Request

Adds a new front-end for viewing player ticket history stored in the
connected database.
Also adds a button to directly query for previous tickets from the
ticket panel.

## Pictures


![image](https://github.com/tgstation/tgstation/assets/12817816/4c01fb8b-3cf0-4d6c-a281-8eef2ff8f37c)

![image](https://github.com/tgstation/tgstation/assets/12817816/739f8b11-c064-4e90-bdae-22a4cc50c63d)

![image](https://github.com/tgstation/tgstation/assets/12817816/e4665d98-7bf9-4806-9d78-c8133682f7ae)

![image](https://github.com/tgstation/tgstation/assets/12817816/450edafc-b3b1-4013-8511-8328d944f440)
## Why It's Good For The Game

Gives admins the ability to look at a players behaviour in-game without
the need for external tooling, (statbus)
## Changelog

🆑
admin: Player Ticket History - view a player's ticket history without
the need to use external tooling.
/🆑
2023-06-07 10:51:26 +12:00
SkyratBot ae475697c0 [MIRROR] Corrects record_feedback()'s copy/paste comment [MDB IGNORE] (#20777)
* Corrects record_feedback()'s copy/paste comment (#74962)

## About The Pull Request

Corrects `record_feedback()`'s copy/paste comment.

## Pointless history

Originally being added in e2a8a5e, it kept its name and args for quite a
few years, that was until #32188 which had it renamed to
`record_feedback` and its args pretty much doubled. In between these
times the known copy/paste comment was already around, but that wasn't
updated, until now apparently.

* Corrects record_feedback()'s copy/paste comment

---------

Co-authored-by: Zandario <zandarioh@gmail.com>
2023-04-25 22:38:37 -07:00
Zandario 77db52dc6b Corrects record_feedback()'s copy/paste comment (#74962)
## About The Pull Request

Corrects `record_feedback()`'s copy/paste comment.

## Pointless history

Originally being added in e2a8a5e, it kept its name and args for quite a
few years, that was until #32188 which had it renamed to
`record_feedback` and its args pretty much doubled. In between these
times the known copy/paste comment was already around, but that wasn't
updated, until now apparently.
2023-04-25 20:20:02 -06:00
SkyratBot 2a89a9f3af [MIRROR] Implement TGS DMAPI 6.1.0 features [MDB IGNORE] (#20201)
* Implement TGS DMAPI 6.1.0 features

* Update ticker.dm

* E

* Revert "E"

This reverts commit 23e33ae17d0a2ff58063940ca7c115113c0a02aa.

---------

Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-31 14:50:32 +01:00
Jordan Dominion 958ce2be83 Implement TGS DMAPI 6.1.0 features (#74341)
Mainly just addressing warnings #74324 (36396bb4c2) added
2023-03-30 16:17:23 -06:00
Yaroslav Nurkov 2c0094e852 Adminhelps into mentorhelps converting. (#17788)
* basement

* change a variant of adminhelp converting. like on screenshots

* Removing mentor converting. More modularisation. More describe to proc

* Small part in mentorhelp which i forget to remove

* Comment

* Another comment about skyrat.

* Update modular_skyrat/master_files/code/modules/admin/admin.dm

Good Idea

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-05 21:02:16 +00:00
lessthanthree 12d989be4c [MANUAL MIRROR] Adds an Escape Menu (#19217)
* Adds an Escape Menu (#72906)

* suicide

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-08 02:20:09 +00:00
Mothblocks 9d0cdfe909 Adds an Escape Menu (#72906) 2023-01-26 00:25:16 -08:00
SkyratBot c5ca08fd01 [MIRROR] Adds spaces around logical operators [MDB IGNORE] (#18776)
* Adds spaces around logical operators

* Update code/modules/admin/verbs/admingame.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-21 22:16:43 -08:00
Jeremiah 872e64fb05 Adds spaces around logical operators (#72603)
## About The Pull Request
Part of a prior PR that was closed (#72562). This version does not add
the check in CI.
## Why It's Good For The Game
The work is already done, so I figured why not.
## Changelog
N/A Nothing player facing

Co-authored-by: Jeremiah Snow <jlsnow301@pm.me>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-16 16:56:35 -08:00
SkyratBot 257feb1be7 [MIRROR] More horrible 515 proc compatibility. [MDB IGNORE] (#17671)
* More horrible 515 proc compatibility.

* Feex

* Hopefully we're done now

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-27 14:46:36 -08:00
AnturK 84f69359a0 More horrible 515 proc compatibility. (#71333)
So i left over some basic `/whatever/proc/format` uses in the original
PR this fixes it.

Notable exceptions to the rule:
- Paths in add_verb/remove_verb, we need full path instead of a name
there to access verb metadata so we can't use proc ref macros there.
- regex.Replace, found out that it does not accept call by name. Instead
i added new REGEX_REPLACE_HANDLER so we can at least try to mark these.

There's still leftover global procs that do not use GLOBAL_PROC_REF but
they functionally equivalent so that's for later.

I don't see any reasonable way to grep for this. But if you got any
ideas please share.
2022-11-22 07:55:43 +00:00
Zonespace f7c26bbf25 515 Compat (#17465)
* ONLY SKYRAT CHANGES

* ACTUALLY SKYRAT CHANGES

* yolo, revert later

* Update alternate_byond_versions.txt

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-15 06:59:06 +00:00
GoldenAlpharex f162639d09 Fixes various issues with Admin Ticket Handling (#17408)
Fixes various issues with admin ticket handling
2022-11-09 18:14:17 +00:00
SkyratBot dd8931e60a [MIRROR] Adds a quick way to view notes from ticket panel [MDB IGNORE] (#16366)
* Adds a quick way to view notes from ticket panel (#69988)

* Adds a quick way to view notes from ticket panel

One thing that I hear be thrown around administration channels a lot is "If I had checked the notes, I would have been more fair on their ban!". Well, have a fast way to keep checking those notes!

* Adds a quick way to view notes from ticket panel

Co-authored-by: san7890 <the@san7890.com>
2022-09-23 17:05:38 +01:00
san7890 c1ef0ce461 Adds a quick way to view notes from ticket panel (#69988)
* Adds a quick way to view notes from ticket panel

One thing that I hear be thrown around administration channels a lot is "If I had checked the notes, I would have been more fair on their ban!". Well, have a fast way to keep checking those notes!
2022-09-22 03:52:16 -04:00
Yaroslav Nurkov b4719d7147 Adminping fix w/ server config option (#15904)
* the mop can only absorb liquid within 1 tile

* return back tickets ping with config

* Revert "the mop can only absorb liquid within 1 tile"

This reverts commit 2cdd22363349835c6eab10a7f45403e41be27a59.

* mhm

* add init

* some changes

* some mistakes

some mistakes

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-09-08 08:45:55 -04:00
SkyratBot 3f76c3f5b8 [MIRROR] [GBP No Update] Perish, individual logging runtime [MDB IGNORE] (#15525)
* [GBP No Update] Perish, individual logging runtime (#69024)

missed 2 or 3(lol it was more when I look back at the files), LOG_GAME tags on the log_message line, and did some cleaning up since i was looking through every log_message again

Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>

Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>

* [GBP No Update] Perish, individual logging runtime

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
2022-08-11 08:12:08 -04:00
Mooshimi a3121f15c4 [GBP No Update] Perish, individual logging runtime (#69024)
missed 2 or 3(lol it was more when I look back at the files), LOG_GAME tags on the log_message line, and did some cleaning up since i was looking through every log_message again

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2022-08-10 07:56:40 -07:00
SkyratBot 6016cf97b4 [MIRROR] individual LOG_GAME [MDB IGNORE] (#15401)
* individual LOG_GAME

* e

* Update teleporter.dm

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:11:55 +01:00
Mooshimi b09f3868f8 individual LOG_GAME (#68683)
About The Pull Request

    replaces a ton of log_game with user.log_message so the log is added to individual and global logs.
    adds a few logs for individual LOG_VICTIM, LOG_ATTACK etc logging.
    adds logging for bluespace launchpad's tele coords being changed.
    took the word "has" out of log_combat, as it's extra and just lengthens the log.

Why It's Good For The Admins

It's extremely laggy to open game.txt so an alternative is individual game logs
Changelog

cl
admin: A lot of game logs will now also be in individual game logs, for convenience in log diving.
admin: Added logging for bluespace launchpad x and y offset changes, which go to individual game logs.
admin: Attack logs will now be slightly shorter, one useless word was removed.
/cl
2022-08-05 09:32:02 +12:00
SkyratBot def879e5b4 [MIRROR] Refactors admin PMs to be hopefully more resilient [MDB IGNORE] (#15348)
* Refactors admin PMs to be hopefully more resilient

* autoconflict resolution

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-04 15:47:52 +01:00
LemonInTheDark 59285861dd Refactors admin PMs to be hopefully more resilient (#68344)
* Begins refactoring admin pms, with a focus on runtime safety and ease of understanding

There's more I want to do here, mostly with spans and cleaning up sone
logic flow to be easier to understand

The primary thrust of it is making explicit any assumptions we make about values
This is important because this is sensitive code, and runtimes are not acceptable, since they both leak information and could lead to dropped ahelps, which is almost worse.

I'm also splitting the proc up into subsections, in an attempt to make it easier to reason about and work with
As a side effect of this, some operations need to be done more then once to avoid potential debugger escalation.

Related to this, I'm also no longer directly passing around client references through the procs. I instead pass the result of a pretty basic proc into each, to avoid issues with sleeping and such.

Oh, and I fixed a bug that made it impossible to reply to remote ahelp
responses. I hate this place.

* Converts all uses of the linkify span to a macro. One of these doesn't have a closing span, not sure if that's a bug or a feature

* Cleans up more logic embedded inside data, since this is critical code

Changes the backup for replying to someone who logs out, instead of
using the first person to send something to the ticket as our backup, we
use the recipient's ckey.

* some cleanup

* Converts a few more things over to the pattern

Reorganizes and deocuments sends_adminpm_message to be less hard to
track/read

* Cleans up a hanging proc that needed filtering

* Does a passthrough over tgs, makes stealthmin keys actually unique

* cleanup, screed at the top of the file

* cleanup, comments, etc

* Thanks trash, I can in fact not spell

* ok yeah I really can't spell

* updated comment to explain how code works

* messsage -> message spellcheck

* Nullchecking prevention

if for whatever reason someone in the future adds code that lummox says can sneakily allow for Logout() to execute between this and the last time client was checked, this could potentially runtime without nullchecking

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-08-01 20:58:15 -07:00
SkyratBot 0cd6d5fc1b [MIRROR] Ports the player ticket panel from skyrat [MDB IGNORE] (#13765)
* Ports the player ticket panel from skyrat

* keeps admin ping and handle function

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-23 20:52:10 +01:00
Seth Scherer 2baeb1b635 Ports the player ticket panel from skyrat (#66954)
* Ports the player ticket panel from skyrat
Adds a player side panel to view active admin tickets, this will make it
easier for players to find previous admin messages, remember what they
said previously etc. This is especially good for the cases that TGchat
drops messages
2022-05-20 15:15:32 -04:00
SkyratBot a840d4e205 [MIRROR] fixes admin ticket linking bad href [MDB IGNORE] (#13587)
* fixes admin ticket linking bad href

* Update adminhelp.dm

Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-05-15 19:43:12 -07:00
magatsuchi 6bddf82ad8 fixes admin ticket linking bad href (#66910)
Fixes a bad admin href in help tickets
2022-05-13 10:56:55 -04:00
GoldenAlpharex 6dfe650f1a Finally fixed the issues with handling ahelps (#13078)
* Finally fixed the issues with handling ahelps

* Applied suggestion

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-04-25 14:34:40 +01:00
Zonespace 5f8ed2e49b aaa (#12576) 2022-04-09 01:16:59 +01:00
SkyratBot fb24e440a6 [MIRROR] Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code [MDB IGNORE] (#12475)
* Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code (#65634)

About The Pull Request

Continuing on the work started in #65154 and 61712, this PR expands what asay linking can be used for and improves the code for it. You can now link tickets in asay by saying #[ticket ID] like #1. This shows the ticket's status and who filed the ahelp. Might remove the ticket filer if it's not really useful.

This also fixes an oversight of mine with datum linking, with how mobs and certain other datums (armor datums, landmarks) don't follow the memory address format for their tag values. Datum linking now uses a @ [tag] format, so you can link to a mob by saying @ mob_702 and such.

dreamseeker_2022-03-22_21-51-41.png
Why It's Good For The Game

More robust admin tools
Changelog

cl Ryll/Shaps
admin: You can now link tickets in asay with #[ticket ID], like #1 and #5.
admin: asay datum linking now functions by saying '@ [datum's tag value]`, whether it's a normal datum (@ 0x2001169) or a mob (@ mob_702) or whatever else.

Discord_2022-03-16_23-38-09.png
(old pic)

* Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-04-07 15:42:34 +01:00
Ryll Ryll 111cdf100e Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code (#65634)
About The Pull Request

Continuing on the work started in #65154 and 61712, this PR expands what asay linking can be used for and improves the code for it. You can now link tickets in asay by saying #[ticket ID] like #1. This shows the ticket's status and who filed the ahelp. Might remove the ticket filer if it's not really useful.

This also fixes an oversight of mine with datum linking, with how mobs and certain other datums (armor datums, landmarks) don't follow the memory address format for their tag values. Datum linking now uses a @[tag] format, so you can link to a mob by saying @mob_702 and such.

dreamseeker_2022-03-22_21-51-41.png
Why It's Good For The Game

More robust admin tools
Changelog

cl Ryll/Shaps
admin: You can now link tickets in asay with #[ticket ID], like #1 and #5.
admin: asay datum linking now functions by saying '@[datum's tag value]`, whether it's a normal datum (@0x2001169) or a mob (@mob_702) or whatever else.

Discord_2022-03-16_23-38-09.png
(old pic)
2022-04-01 14:54:43 +13:00
Gandalf f58530db36 Upstream merge 65625 (#12452)
* Pingbus changes and improvements

* Update adminhelp.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-04-01 01:15:48 +01:00
Watermelon914 7e32bdfca1 Pingbus changes and improvements (#65625)
Adds new configs for non-urgent ahelps to be sent to a channel when no admins are on. This will include urgent ahelps too.
Adds a response message that is sent to discord when an ahelp is responded to in any way
Player counts are now sent in the embed.
2022-03-30 15:13:02 +01:00
Zonespace 0541d62642 [HOST] [MODULAR] Pings admins every 3 minutes if there are unhandled open tickets or OPFOR applications (#12091)
* a

* opfor 1 -> 5

* vastly better

* damn you terneries

* sure

* hnng

* h

* new sound
2022-03-18 03:58:11 +00:00
Zonespace 02ad30b6d5 [SEMI-MODULAR] Adds a "view OPFORs" admin verb and lets you get to it via the tickets tab (#12070)
* woo

* better

* woo
2022-03-18 03:40:42 +00:00