Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

check_grep.sh part ??: adds all global vars to the global controller #4940

Merged
merged 24 commits into from
Nov 25, 2023

Conversation

harryob
Copy link
Member

@harryob harryob commented Nov 16, 2023

per title really

god willing no player facing changes

@harryob harryob requested a review from fira as a code owner November 16, 2023 18:14
@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Nov 16, 2023
@cm13-github
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@cm13-github
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@cm13-github cm13-github removed the Merge Conflict PR can't be merged because it touched too much code label Nov 16, 2023
Copy link
Member

@fira fira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally, just found a few minor things to cut pretty much

code/__DEFINES/atmospherics.dm Outdated Show resolved Hide resolved
code/__HELPERS/cmp.dm Outdated Show resolved Hide resolved
code/__HELPERS/logging.dm Outdated Show resolved Hide resolved
code/_globalvars/misc.dm Outdated Show resolved Hide resolved
code/_globalvars/misc.dm Outdated Show resolved Hide resolved
code/modules/mob/living/silicon/ai/freelook/read_me.dm Outdated Show resolved Hide resolved
code/modules/mob/living/silicon/ai/logout.dm Show resolved Hide resolved
code/modules/shuttles/marine_ferry.dm Outdated Show resolved Hide resolved
html/changelogs/archive/2020-10.yml Outdated Show resolved Hide resolved
html/changelogs/archive/2020-10.yml Outdated Show resolved Hide resolved
@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Nov 17, 2023
@cm13-github
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@cm13-github cm13-github removed the Merge Conflict PR can't be merged because it touched too much code label Nov 17, 2023
@cm13-github
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Nov 22, 2023
@cm13-github
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@cm13-github cm13-github removed the Merge Conflict PR can't be merged because it touched too much code label Nov 22, 2023
@cm13-github
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Nov 22, 2023
@cm13-github
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@fira
Copy link
Member

fira commented Nov 23, 2023

Let's TM this a few rounds quick to make sure no accident and get it in

@fira fira added the Testmerge Candidate we'll test this while you're asleep and the server has 10 players label Nov 23, 2023
@cm13-github
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@cm13-github cm13-github removed the Merge Conflict PR can't be merged because it touched too much code label Nov 24, 2023
@fira fira added this pull request to the merge queue Nov 25, 2023
Merged via the queue into cmss13-devs:master with commit 1989719 Nov 25, 2023
26 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Dec 6, 2023
# About the pull request

This PR fixes an unintended change made in #4940 where the flag for the
nano subsystem was changed. If Initialize was used instead of New this
change would be correct, but using New is intentional.

# Explain why it's good for the game

Fixes: `Initialized Nano UI subsystem with errors within 0 seconds!` and
`[20:19:57]WARNING: Nano UI subsystem does not implement Initialize() or
it returns ..(). If the former is true, the SS_NO_INIT flag should be
set for this subsystem.`

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![image](https://github.com/cmss13-devs/cmss13/assets/76988376/5b32237a-cc7e-4bd6-95fc-1a3ac41c382b)

</details>


# Changelog
:cl: Drathek
fix: Fix some errors regarding the nano subystem
/:cl:
github-merge-queue bot pushed a commit that referenced this pull request Dec 23, 2023
# About the pull request

Fixes #5077.
This was caused by a green lighting filter which was accidentally
included in #4940.

If someone wants to add it properly then another PR could be opened
after this, or maybe this one could be treated as a sort of 'reverse PR'
and closed in order to keep the overlay.

# Explain why it's good for the game

It's technically a bug rather than a feature at the moment.

# Testing Photographs and Procedure
<details>
<summary>Screenshots</summary>

**Before:**

![UneAhPrK3C](https://github.com/cmss13-devs/cmss13/assets/57483089/3eb7fe0e-d526-4f56-aba8-09bafca8ad9c)

**After:**

![GZ9ZBPx3n1](https://github.com/cmss13-devs/cmss13/assets/57483089/34ee98a9-05f5-473a-b158-2af44912586b)

</details>


# Changelog
:cl:
del: Removed the green overlay from camera consoles.
/:cl:
Fray2 pushed a commit to RU-CMSS13/RU-CMSS13 that referenced this pull request Jan 11, 2024
* Automatic changelog for PR #5241 [ci skip]

* Additional ui_act checks for tacmap (#5255)

# About the pull request

This PR adds additional checks for the ui_acts when using the tacmap
interface.

# Explain why it's good for the game

Should shore up most flaws allowing weird usage of it.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![image](https://github.com/cmss13-devs/cmss13/assets/76988376/efbf579c-814d-41fd-bea4-d2581b4bf4f7)

</details>


# Changelog

No player facing changes.

* Fix Santa Hats breaking due to map camouflage (#5268)

# About the pull request

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->
Simple as it can be - the map camouflage was applied on santa helmets
when they don't have camouflage variants

# Explain why it's good for the game
Spirit of holidays and all that

# Testing Photographs and Procedure
Spawn on a camo-enabled map


# Changelog
:cl:
fix: Fix Xmas helmets getting overriden by map camouflage.
/:cl:

---------

Co-authored-by: Drathek <[email protected]>

* Automatic changelog for PR #5268 [ci skip]

* minor tacmap ui change (#5264)

# About the pull request
it's kind of been bothering me for a bit, just some minor tacmap ui
changes.

# Explain why it's good for the game

I got ocd, please merge. 

# Testing Photographs and Procedure
<img width="534" alt="Screen Shot 2023-12-20 at 3 24 17 PM"
src="https://github.com/cmss13-devs/cmss13/assets/122310258/72b17b85-0453-49cc-94a7-dfe944b3cbb7">

<img width="389" alt="Screen Shot 2023-12-20 at 3 27 20 PM"
src="https://github.com/cmss13-devs/cmss13/assets/122310258/6f87f439-b8b8-4167-9bd3-c98af2fc8b2f">

# Changelog
:cl:
ui: tacmap ui tweaks
/:cl:

* Automatic changelog for PR #5264 [ci skip]

* Hopefully fixes hijack bug (#5261)

# About the pull request
Will hopefully stop hijack ending the round prematurely.
<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Hijack should no longer end the round immediately.
/:cl:

* Automatic changelog for PR #5261 [ci skip]

* Ghost listening device preference (#5219)

# About the pull request
Ghosts can now toggle between hearing and not hearing listening devices.

## THIS DEFAULTS TO OFF

# Explain why it's good for the game
Bit of peace of mind, a lot of text can be duplicated by hearing
listening devices as a ghost.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
add: Ghosts can now toggle hearing listening devices or not. This is
dependant on hearing radios and will not function to allow hearing
devices without also hearing radios.
/:cl:

---------

Co-authored-by: Drathek <[email protected]>

* Automatic changelog for PR #5219 [ci skip]

* Fixes NE DS doorgun deployment bug (#5213)

# About the pull request
fixes #5236
fixes the issue that makes DS doorgun deploy itself into DS when placed
on NE gunslot

# Explain why it's good for the game

doorgun in wall bad


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog

:cl:
fix: bad DS doorgun placement
/:cl:

---------

Co-authored-by: Drathek <[email protected]>
Co-authored-by: harryob <[email protected]>

* Automatic changelog for PR #5213 [ci skip]

* Fixes fire resist spamming (#5253)

# About the pull request

Fixes #5247 and fixes #5124 by changing the
`if(!is_mob_incapacitated(TRUE))` check near the end of
`/mob/living/verb/resist()` to `if(mobility_flags & MOBILITY_MOVE)`.
This was causing the bug because `is_mob_incapacitated()` doesn't check
for the `WEAKEN` effect, which is what is added by `resist_fire()`.
(Editing `is_mob_incapacitated()` so that it checks for it would
probably work too, but since TG uses the `MOBILITY_MOVE` thing and this
system is ported from there, I figured I'd just go with that.)

# Explain why it's good for the game

Fixes fire being too easy to remove.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Before:**


https://github.com/cmss13-devs/cmss13/assets/57483089/0b5b6777-4286-4eb1-9293-09ffcaa4fb4b

**After:**


https://github.com/cmss13-devs/cmss13/assets/57483089/84097909-a081-4c4f-8400-59e955b8a443

(Ignore the "There are no pipes within range" message, that's from one
of my macros.)

</details>


# Changelog
:cl:
fix: Fixed being able to remove multiple stacks of fire by spamming
resist.
/:cl:

* Automatic changelog for PR #5253 [ci skip]

* Refactors Get_Angle() and related procs (#5212)

# About the pull request

To begin, fixes https://github.com/cmss13-devs/cmss13/issues/5206.
`Get_Compass_Dir()` needed atoms with valid coordinates, but didn't test
for them. Adding some checks and `get_turf`s resolved that issue.

But then if `Get_Compass_Dir()` needed those checks, `Get_Angle()` did
too. And `get_angle()` (lowercase!). And `get_angle_raw()`. And half of
`Get_Compass_Dir()` was just duplicated code from `Get_Angle()`. And--

So I took inspiration from how TG and TGMC did it and refactored the
lot.

https://github.com/tgstation/tgstation/blob/32fb42d19e0c763f7e5e3dafb9844d0f05e86630/code/__HELPERS/maths.dm#L1-L17

https://github.com/tgstation/TerraGov-Marine-Corps/blob/3963b2d5b89dd60b88a7a1534ee77bd654abe953/code/__HELPERS/unsorted.dm#L99-L159

REMOVED:
- `get_angle_raw()` - never used
- `get_angle()` - used 3 places, identical use case to `Get_Angle()`
- `get_pixel_angle()` - used once, replaced by `delta_to_angle()`

ADDED:
- `angle_to_dir()` - pulls out the only unique thing `Get_Compass_Dir()`
actually did
- only difference from TGMC is it retains our angle breakpoints instead
of theirs
- `delta_to_angle()` - the only thing that actually calculates an angle,
uses the 2-argument version of `arctan()`

CHANGED:
- `Get_Angle()` - removed the `tile_bound` branch (never used), added
checks and `get_turf`s, position deltas passed to `delta_to_angle()`
- only difference from TGMC is it retains `return 0`s instead of
`CRASH`es, retains `get_pixel_position_x`/`y`, and passing to
`delta_to_angle()`
- `Get_Compass_Dir()` - gutted, now just a convenience function of
`Get_Angle()` piped into `angle_to_dir()`

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game

Having multiple unused or barely used functions trying to do the same
thing makes code maintenance harder.
# Testing Photographs and Procedure
- [x] doesn't crash
- [x] security tuner APC detection works
- [x] SL/queen tracker works
- [x] bullets face the right way


# Changelog
:cl:
fix: Fixed security tuner not dispalying direction to room's APC
refactor: Refactored code handling angles
/:cl:

* Automatic changelog for PR #5212 [ci skip]

* Automatic changelog compile [ci skip]

* Liason typo fix and Goon construction buff. (#5227)

# About the pull request

Liason is not spelt like that, fixes the USS Almayer area and the ICC
path.

Goon could not build cades due to skills = and not additional_skills
allowing the parent, survivor, to give construction one to it's
subpaths.

# Explain why it's good for the game

Spell check good

I am pretty sure that the Goon is the only survivor not being able to
build basic cades, I don't see why we restrict that considering that all
the other security survivors are able to build them.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: rebalanced goon skillset to include construction 1
spellcheck: fixed Liason area typos to Liaison
spellcheck: fixed the ICC Liason to ICC Liaison typo
/:cl:

---------

Co-authored-by: Jeff Watchson <[email protected]>

* Automatic changelog for PR #5227 [ci skip]

* nerfs window frames (#5267)

# About the pull request

any xeno can now apply acid ~~or slash~~ reinforced/normal window frames



# Explain why it's good for the game

Currently, building as a drone is extremely difficult in maps such as
New Valdero and Chances Claim due to your complete inability to clear
window frames, forcing you to yell at the AFK warriors in hive to spend
5 minutes clicking on a window frame. I don't see a good reason for
window frames to be completely invulnerable to smaller xenomorphs.


# Testing Photographs and Procedure

</details>


# Changelog



:cl:
balance: xenos can now acid all window frames.
/:cl:

* Automatic changelog for PR #5267 [ci skip]

* Fix Xmas barricade decorator not working (#5270)

# About the pull request

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->
Decorator changed the main icon of barricades. Not only this is bad due
to the file not being up to date, but also wiring doesn't care and
reuses the builtin icon file.

# Explain why it's good for the game
Event code not working

# Testing Photographs and Procedure
Spawn in, test


# Changelog
:cl:
fix: Fixed X-mas barricade wiring not applying properly.
/:cl:

---------

Co-authored-by: Drathek <[email protected]>

* Automatic changelog for PR #5270 [ci skip]

* Automatic changelog compile [ci skip]

* Allows Xenomorphs to turn off the dropship's launch alarm (#5210)

# About the pull request

Allows Xenomorphs to turn off the dropship's launch alarm without the
queen needing to launch.

# Explain why it's good for the game

Occasionally (2-3 times that I can think of, at least) someone turns on
the dropship's launch alarm after the queen calls it down, resulting in
a situation where if the queen wants to wait for evolutions or something
else, the entire hive has to listen to a beeping noise for multiple
minutes.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


https://github.com/cmss13-devs/cmss13/assets/57483089/9014b2bb-a68a-4ef8-b7ee-1f3e03ce2575

</details>


# Changelog
:cl:
add: Allowed Xenomorphs to turn off the dropship's launch alarm by
hitting the nav computer.
/:cl:

* Automatic changelog for PR #5210 [ci skip]

* Fixes Flight Control Operator surv + gave him a windbreaker and one more access. (#5257)

# About the pull request

Gives him a jacket, some flight W-Y flight control access and fixed the
type path.

# Explain why it's good for the game

I forgot to give him a jacket in the previous PR, fixes always good +
he's a flight control operator and should have access to at least the WY
flight control doors.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
add: Added a windbreaker to the Flight Control Operator surv.
add: Added W-Y Flight Control access to the Flight Control Operator
surv.
fix: fixed the Flight Control Operator path.
/:cl:

Co-authored-by: Jeff Watchson <[email protected]>

* Automatic changelog for PR #5257 [ci skip]

* Camera console green-ness fix (#5271)

# About the pull request

Fixes #5077.
This was caused by a green lighting filter which was accidentally
included in #4940.

If someone wants to add it properly then another PR could be opened
after this, or maybe this one could be treated as a sort of 'reverse PR'
and closed in order to keep the overlay.

# Explain why it's good for the game

It's technically a bug rather than a feature at the moment.

# Testing Photographs and Procedure
<details>
<summary>Screenshots</summary>

**Before:**

![UneAhPrK3C](https://github.com/cmss13-devs/cmss13/assets/57483089/3eb7fe0e-d526-4f56-aba8-09bafca8ad9c)

**After:**

![GZ9ZBPx3n1](https://github.com/cmss13-devs/cmss13/assets/57483089/34ee98a9-05f5-473a-b158-2af44912586b)

</details>


# Changelog
:cl:
del: Removed the green overlay from camera consoles.
/:cl:

* Automatic changelog for PR #5271 [ci skip]

* adds forced scream emote after warrior lunge (#5273)

# About the pull request

~~Created a new emote called panic, it's very similar to scream and
inherits virtually all of its properties and methods however the ogg
files are of course different.~~
Added a scream emote whenever a warrior lunges and grabs a human mob,
also added one more ogg audio file to the scream list.

# Explain why it's good for the game

~~Initially I just wanted to add a forced a scream emote whenever a
warrior lunged at a human mob, but I sort of found the existing scream
ogg sounds to be kind of lack luster. However, they are iconic in their
own right and removing them or modifying them would be a detriment to
the game. I chose to create a new emote entirely rather than adding
audio files to the existing one. The emote which is similar to scream
but the sounds are more "authentic" and erm, immersive. So far it's just
two sounds for each gender but this will be changed once I find more
audio files to add.~~

Warrior lunges at marines should be a traumatic experience that gives
them ptsd.

# Changelog

:cl:
add: human mobs now scream whenever they get lunged at by a warrior.
soundadd: added a new scream sound and put it into the existing scream
list.
/:cl:

* Automatic changelog for PR #5273 [ci skip]

* Fix Crusher Pass Flags (#5266)

# About the pull request

This PR is a followup to #5175 that overlooked that the usage of
throw_atom will by default add either `PASS_OVER_THROW_MOB` or
`PASS_OVER_THROW_ITEM` to the pass flags unless `LOW_LAUNCH` is used
instead.

# Explain why it's good for the game

Fixes #5220 

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![croosh](https://github.com/cmss13-devs/cmss13/assets/76988376/dac2e275-e261-475a-b52d-8823e14d0bc4)

</details>


# Changelog
:cl: Drathek
fix: Fix crusher charge and tumble abilities going over unwired cades
/:cl:

* Automatic changelog for PR #5266 [ci skip]

* New Healer Drone Ability: Sacrifice, another go (#5173)

# About the pull request

New healer drone skill — sacrifice. If things get really bad, the healer
can instantly transfer 75% of its current health, but for the great cost
of the healer’s own life.

The sacrifice ability is an emergency button. You don’t have to use it,
but at some point you may find that sacrifice is a right thing to do, so
it’s a nice option to have. I want to emphasize that this skill is not a
necessary part of the healer gameplay. You don’t have to trade your life
for the life of another xeno. But you can if you are willing to.

Also healer drones gets a counter of the health it has transferred. If
healer drone transfers at least 10 000 health points, it will be able to
respawn after using the sacrifice ability (like acid runner after
kaboom).

# Explain why it's good for the game

Saving fellow xenos is the most satisfying part of healer drone’s
gameplay. This ability allows to save others in really dire situations,
but for the great cost. It’s still fitting, because drone already can
use heal ability until it goes into crit or dies, in some situations
it’s a worthy risk. Also rewards long living healer drones with the
opportunity to use the ability without dying.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl: ihatethisengine
balance: New healer drone ability — sacrifice. Healer drone can
instantly transfer 75% of its current health, but for the great cost of
the healer’s own life.
/:cl:

---------

Co-authored-by: ihatethisengine <[email protected]>
Co-authored-by: harryob <[email protected]>
Co-authored-by: Drathek <[email protected]>

* Automatic changelog for PR #5173 [ci skip]

* DS doorgun no longer drops the gun when destroyed (#5211)

# About the pull request

this bug has been around for a looong time, someone might be tempted to
abuse it with the MG changes

# Explain why it's good for the game

moveable m56d with 1500 rounds that can shoot over cover is not intended


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog

:cl:
fix: DS doorgun no longer drops the gun when destroyed
/:cl:

---------

Co-authored-by: vincibrv <[email protected]>
Co-authored-by: Drathek <[email protected]>

* Automatic changelog for PR #5211 [ci skip]

* Makes `xenoboldnotice` actually bold (#5279)

# About the pull request

Makes the `xenoboldnotice` span class actually bold, rather than italic.
Interestingly, it's correct on the 'old chat' stylesheet, so presumably
it just got missed when TG-chat was added.

https://github.com/cmss13-devs/cmss13/blob/53f62c436dabcea7970fcfde1faaa1dcc37a4229/code/stylesheet.dm#L102

# Explain why it's good for the game

The class called 'xenoboldnotice' should be bold.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Before:**

![before](https://github.com/cmss13-devs/cmss13/assets/57483089/46fa54cc-1ee6-4046-ba86-2f75deadc7fe)

**After:**

![after](https://github.com/cmss13-devs/cmss13/assets/57483089/896a8119-fcec-4c9f-be11-86e7cd95ac44)

<hr>

**Current 'old chat' version, for reference:**

![old](https://github.com/cmss13-devs/cmss13/assets/57483089/d14538d4-7abf-4b20-8b83-076863248cfc)

</details>


# Changelog
:cl:
spellcheck: Made the `xenoboldnotice` span class bold rather than
italic.
/:cl:

* Automatic changelog for PR #5279 [ci skip]

* Areas almayer qol (#5254)

# About the pull request
added some more areas to almayer
reworked lower engi areas position giving them parent for being lower
etc...
remove an extra light

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
More areas allow to make it easier to navigate the ship and make the
localisation system more efficient...
better parent avoid repeating lines of code and make it easier to
maintain/change it in the future.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: removed an extra light in bravo cryo room(to do just saw it)
maptweak: added more areas (stern_point_defense, Lower Deck Stern Hull,
Upper Deck port Hallway Upper Deck starboard Hallway)
/:cl:

---------

Co-authored-by: Julien <[email protected]>

* Automatic changelog for PR #5254 [ci skip]

* Automatic changelog compile [ci skip]

* Further vanguard tweaks that drop the root from 2.5 to 1.8 (#5215)

# About the pull request
I believe the latest buff pr i overtuned the root a bit too much,
thinking it wouldnt be too hard since you can still technically act.
# Explain why it's good for the game

2.5 root is a bit too much currently so im bringing it down to 1.8 so
its still good but not busted like 2.5

# Testing Photographs and Procedure
<details>
it works
</details>


# Changelog

:cl:
balance: Tweaks down the buffed root of vanguard down to 1.8 from 2.5
/:cl:

Co-authored-by: InsaneRed <[email protected]>

* Automatic changelog for PR #5215 [ci skip]

* Automatic changelog compile [ci skip]

* Dropship weapons console TGUI (#4812)

# About the pull request

Migrates the dropship weapons panel to TGUI. Design is primarily
inspired by the MultiFunction Displays used in modern aircraft.

The UI consists of two identical and independent panels. The pilot can
choose which panels to display.

Code wise this PR introduces the MFD which is a reusable component.

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
nanoui bad tgui good
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.
## Update - Some styling improvements
Improving the overall look and feel, making the background a dark grey
over a black, rounding the edges. Making inactive buttons appear greyed
out.

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/0965b5cb-21b0-4b7f-84ea-40651e83a02e)



## Welcome screen - blurb for lore

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/5872dcb6-ba87-485e-a736-8de0b3e5e36d)

## Equipment panel and map 

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/85fde5cc-e4a8-439e-8c55-d010a4780d8c)

## Equipment panel with camera

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/034a2833-d37c-4c6b-8b08-64e3e09aefb0)

## Weapon panel and Camera 

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/ce246258-a879-4220-b481-3d5fbc800651)

## Target Acquisition with camera

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/2778b9da-76f9-4c37-b3ba-9d45a1bdc625)
 
## Medevac lift with stretcher camera

![image](https://github.com/cmss13-devs/cmss13/assets/101871009/7e9ef10b-811c-4922-9f24-ae805bae24d9)


</details>


# Changelog
:cl:
ui: tgui dropship weapons console
refactor: added MFD panel
refactor: creates datum component to manage camera code
qol: CAS weapons operator can see camera in UI
add: CAS can offset in X and Y coordinates
refactor: CAS can offset in different direction to attack vector
/:cl:

---------

Co-authored-by: fira <[email protected]>

* Automatic changelog for PR #4812 [ci skip]

* Executive Officer's Weapons Vendor + More Belt Options (#5179)

# About the pull request

This PR adds a new 'weapons' vendor for the Executive Officer to acquire
a suite of personal gear for their use. It also adds a new belt category
to their uniform vendor to give the Executive Officer more options in
what kind of belt they want to take.

The XO can chose to vend either a MK1 M41A weapon's kit, equilivant to
the armoury, or a MK221 shotgun kit which comes with a box of buckshot
and slug rounds each.

# Explain why it's good for the game

The Executive Officer exists as a sort of stepping stone to the
Commanding Officer to a degree, because of this, it has been somewhat
languishing in-between the Commander and Staff Officers.

The CO has a full suite of personal vendors and unique equipment to pick
from, and the Staff Officers have their own unique weapons vendor and
ancillary equipment from the armoury they can select, including special
medical and engineering kits.

The Executive Officer only has a uniform vendor to draw from, but
otherwise they are forced to skim off of the armoury and the staff
officer's equipment.

Due to the recent rule changes that allow the XO to deploy more freely
groundside, as well as deploying during a Nuclear weapon deployment, I
feel the time is now to address the issue.

Ergo, this PR adds a new vendor to give the XO more options on what
equipment they can take for when they deploy, or for hijack. The
equipment is somewhat in keeping with what the CO gets, minus the
special equipment. Ergo, it can help an aspiring CO get a better idea of
how their setup works for the CO just as it does for a XO.

In terms of abuse, I do not believe this will be a issue. The XO is held
to the highest standards of roleplay outside of whitelisted roles, an XO
already has the power to loot the armoury or requisitions, I do not
believe this will enable something negative considering they already
have that ability if they want to.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

![Screenshot 2023-12-10 16 24
09](https://github.com/cmss13-devs/cmss13/assets/6595389/67eea32f-8192-406f-9684-fe70e22b6542)

![Screenshot 2023-12-10 16 24
02](https://github.com/cmss13-devs/cmss13/assets/6595389/74cb5419-c34d-4c53-beb9-eb3e57fdb4e2)


</details>


# Changelog
:cl:
add: The Executive Officer now has a personal weapons vendor. It
includes the ability to acquire a full suite of combat and support gear,
giving the XO more agency in customizing their loadout.
add: Adds a new set of belts to the Executive Officer's uniform vendor. 
/:cl:

---------

Co-authored-by: Steelpoint <[email protected]>

* Automatic changelog for PR #5179 [ci skip]

* Fix acid resisting (#5288)

# About the pull request

This PR is a follow up to #5253 which happened to alter how acid was
detected, and it didn't do it correctly.

# Explain why it's good for the game

Resisting acid is intended.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![acid](https://github.com/cmss13-devs/cmss13/assets/76988376/553ed812-1858-4713-8a28-30725bea527e)

</details>


# Changelog
:cl: Drathek
fix: Fixed resisting acid
/:cl:

* Automatic changelog for PR #5288 [ci skip]

* Fix queen death not readmitting banished xenos fully (#5281)

# About the pull request

This PR fixes either an oversight, or a recent bug that I've not been
able to find the source, of where the death of a queen resets the hive's
banished keys list, but doesn't fully unbanish those xenos leaving them
in a state that they can't be banished properly again nor readmitted.

# Explain why it's good for the game

A queen should retain her ability to banish and readmit all xenos freely
and not be beholden to the will of some former queen.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![free](https://github.com/cmss13-devs/cmss13/assets/76988376/5817bf86-e7d1-4f05-a7ee-412cd0d7d25f)

</details>


# Changelog
:cl: Drathek
fix: Fix queen death not fully readmitting any banished xenos
/:cl:

* Automatic changelog for PR #5281 [ci skip]

* Fixes Yautja bracer lock (#5282)

# About the pull request
Preds can now unlock thrall bracers again. Whoops.
<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
I stoopid
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Yautja bracer lock can now properly unlock thrall bracers.
/:cl:

* Automatic changelog for PR #5282 [ci skip]

* SStechtree startup optimisation (#5218)

# About the pull request

Optimises the initialisation time of the 'Tech Tree' subsystem.

Currently, `/datum/controller/subsystem/techtree/Initialize()` is
changing the turf of every tile on the tech tree's z-level to
`/turf/closed/void`, presumably so that it all appears black rather than
space-y. However since it's calling `ChangeTurf()` on the *entire*
z-level (300x226, or 67,800 turfs), this is pretty performance
intensive.

This PR fixes that by just... not changing the turfs, instead only
adding a few `/turf/closed/void`s around the edge of the tech tree area
so that it still looks the same in-game. This changes the subsystem's
init time from 6.4 seconds(ish), to 0.15 seconds(ish).

**Before:**
![before
1](https://github.com/cmss13-devs/cmss13/assets/57483089/b7423bfd-7cbf-434b-ac2b-49765d5a78cc)

**After:**
![after
1](https://github.com/cmss13-devs/cmss13/assets/57483089/543f1ef6-bf61-46c5-90f5-f85b171631bd)

Players viewing the tech tree through the console won't notice anything
different, as the remaining layer of `/turf/closed/void`s block their
view of the rest of the z-level.

# Explain why it's good for the game

About 6 seconds knocked off of the server's init time. (10%!) *(At least
on my end)*


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>
<hr>

### Before/after init times from a few different tests:
**Before:**
![before
1](https://github.com/cmss13-devs/cmss13/assets/57483089/2c81c7d2-6376-4bea-a7c4-8e071cf09e3f)
![before
2](https://github.com/cmss13-devs/cmss13/assets/57483089/06d21d9a-1c86-4246-bf2b-f0108875713a)
![before
3](https://github.com/cmss13-devs/cmss13/assets/57483089/5590723d-291e-48c9-b0ae-10fef6b05410)

**After:**
![after
1](https://github.com/cmss13-devs/cmss13/assets/57483089/481324cd-fc0d-4876-9359-d9544fcc37c6)
![after
2](https://github.com/cmss13-devs/cmss13/assets/57483089/ffb8c2c7-a09f-4b15-806e-481927a5099d)
![after
3](https://github.com/cmss13-devs/cmss13/assets/57483089/1e9cb315-56b6-47a6-a0be-2a7973b25f88)

<hr>

### Teleporting to it as an observer, there *is* a visible difference:

**Before:**

![(null)scrnshot2](https://github.com/cmss13-devs/cmss13/assets/57483089/a133f889-7020-4477-84e5-e49c8cde03aa)

**After:**

![(null)scrnshot1](https://github.com/cmss13-devs/cmss13/assets/57483089/b7fd8ca6-220c-4366-b367-115c339fe207)

<hr>

### But viewing it IC, it all works exactly the same as before:


https://github.com/cmss13-devs/cmss13/assets/57483089/14fc7b05-5279-489f-99df-e9acc83b1420

<hr>

### The new `/turf/closed/void` tiles highlighted for reference:


![techtreebounds](https://github.com/cmss13-devs/cmss13/assets/57483089/02159fee-bbe4-4c8a-b0b7-4ba7963f233d)

</details>


# Changelog
:cl:
code: Made the Tech Tree subsystem initialise faster.
/:cl:

* Automatic changelog for PR #5218 [ci skip]

* ARES Death and Consequences; The Prequel (#5275)

# About the pull request

Implements some backend stuff for planned Project ARES processor/death
gameplay.

- Destruction of ARES now disables the various functionalities ARES
provides (additional ones will be added, but makes it so ARES cannot
bioscan, cannot use radio, and cannot talk/log data)
- ARES Apollo proc and ARES alive check proc added
- ARES now plays an announcement upon death

Outside of ARES dying turning off the subsystems, there isn't any other
major consequences people will see. Plan is for ARES to handle systems
such as autopilot, and for that to be affected as well

ARES being destroyed also prevents it from speaking in APOLLO or over
radio, but this was already a thing. Feedback to admins over this has
been added

# Explain why it's good for the game

ARES dying was always meant to have consequences, this lays additional
groundwork for further changes, and has ARES's death have an impact
outside of making Working Joes cry.
 
# Changelog

:cl:
add: If ARES is destroyed, systems such as bioscan also shut down, this
will be expanded in the future
add: ARES plays an announcement when destroyed
code: Procs to check for APOLLO processor and if ARES is alive added
refactor: ARES subsystems modified to utilize new procs
admin: Prompt to force a Marine Bioscan only shows when ARES is unable
to perform the bioscan.
/:cl:

* Automatic changelog for PR #5275 [ci skip]

* Automatic changelog compile [ci skip]

* Removes unused crystal code for xenos (#5287)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->

# About the pull request

Removes a bunch of unused code for a historical resource collection
system.

# Explain why it's good for the game

<!-- Please add a short description of why you think these changes would
benefit the game. If you can't justify it in words, it might not be
worth adding, and may discourage maintainers from reviewing or merging
your PR. This section is not strictly required for (non-controversial)
fix PRs or backend PRs. -->


# Testing Photographs and Procedure
<!-- Include any screenshots/videos/debugging steps of the modified code
functioning successfully, ideally including edge cases. -->
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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
label your changes in the changelog. 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. -->
<!-- If you add a name after the ':cl', that name will be used in the
changelog. You must add your CKEY after the CL if your GitHub name
doesn't match. Maintainers freely reserve the right to remove and add
tags should they deem it appropriate. -->

:cl:
del: Removed old crystal code from xenos
code: Renames still used vars from crystal to plasma
code: Removes crystal define in place of plasma string
/:cl:

<!-- Both :cl:'s are required for the changelog to work! -->

* Automatic changelog for PR #5287 [ci skip]

* More WE/YOU fixes (#5276)

# About the pull request

fixes a few more stuff i missed

# Explain why it's good for the game

connsistency is good

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

it works

</details>


# Changelog
:cl:
spellcheck: More WE/YOU fixes for xenomorph side.
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>

* Automatic changelog for PR #5276 [ci skip]

* lowers DS sentrygun to 200 from 500 (#5225)

# About the pull request
lowers price of DS installed sentrygun to 200 from 500.

# Explain why it's good for the game

Based on git lense, the cost of 500 points has been fixed for at least 6
years ( from what I understand form the moment the fabricator was
added?). The sentryguns are not worth 500 points at the slightest, from
dozens of rounds of experience I can say that the fire off 20 shots max
before they die ( unless you do some DS hold after hijack, but that
hardly counts). The main issue anyone has with it is when you install 3
of them in south part of DS and I am willing t take suggestions how to
adress this issue, but it is minor one, as xenos never realy have to
fight them as they basicly get to shoot only while marines are pushed
into DS and are about to evac and queen can hijack without getting
anywhere near them ( or can just let marines evac and then take out the
sentryguns with ease after she calls the ship back down). More marines
evacing thanks to sentrguns might make the hijack more enjoyable for
both sides. Also lowering the price will only mean you see sentryguns
installed on ds more often, buying 20 of them will have no bigger effect
then 7.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: DS installed sentrygun price lowered to 200
/:cl:

Co-authored-by: Zonespace <[email protected]>

* Automatic changelog for PR #5225 [ci skip]

* gets launchbay price in line with other equipment (#5224)

# About the pull request

reduces price of launchbay to 200, getting it in line with fulton and
medevac. Aims to set ground for omnisentry price changes ( and possible
further utility additions to launchbay?)

# Explain why it's good for the game

every other eqipment costs around 200 points and there is not any reason
to ever have more then one launchbay and you can sell it after you use
all the omnisentryguns you want (but that is pain, it counts as weapon
and all FMs that you made with it installed need to be remade). Unlike
with fulton, medevac and rappel that have real use when you buy second
or third one.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog

:cl:
balance: launchbay price 400 -> 200
/:cl:

Co-authored-by: Zonespace <[email protected]>

* Automatic changelog for PR #5224 [ci skip]

* Fixes CAS killing players with ammo crates instead of bullets (#5205)

# About the pull request

Fixes #3211 by making GAU-21 and Laser Cannon ammo pass the weapon to
its `cause_data` rather than the ammo crate/battery.

# Explain why it's good for the game

The dropship is meant to be firing the ammunition inside the crate, not
the crate itself. (Although that is fun to imagine)

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixed the death message from GAU-21 and Laser Cannon strikes saying
that the player was killed by the ammo crate.
/:cl:

* Automatic changelog for PR #5205 [ci skip]

* Spitter ability bugfix (#5296)

# About the pull request

Properly recalculates armor for when the ability is being used /
deactivated


# Explain why it's good for the game

bugfix

# Testing Photographs and Procedure
<details>
it works
</details>


# Changelog

:cl:
fix: Spitter's charge spit abiltiy now properly adds and removes the 5
armor like its supposed to initially.
/:cl:

Co-authored-by: InsaneRed <[email protected]>

* Automatic changelog for PR #5296 [ci skip]

* Fixes carriers being unable to reduce their 'reserved facehuggers' number (#5286)

# About the pull request

Fixes carriers being unable to reduce their 'reserved facehuggers'
number.
This was caused by `carrier.huggers_reserved` being set as the *minimum*
of the `tgui_input_number()`.

I've also changed the `default` argument from 0 to
`carrier.huggers_reserved` so that you can see the current number before
you change it.

# Explain why it's good for the game

Sometimes you might want to decrease the number.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixed carriers being unable to reduce their 'reserved facehuggers'
number.
/:cl:

* Automatic changelog for PR #5286 [ci skip]

* Admin audio cue toggle. (#5185)

# About the pull request
Changes the toggle for ARES interface pings to also include prayers (and
renames it due to this)
Also moved it from logs category to sound, because it's for sounds...
Added SPAN_BIGNOTICE which combines bold & big classes to get rid of
"<b><big></big></b>"

# Explain why it's good for the game

Admin QOL, the sound can be overly intrusive and larger text gets the
point across.

# Testing Photographs and Procedure

<details>
<summary>Screenshots & Videos</summary>

Test to confirm it works as intended.

</details>


# Changelog
:cl:
code: Added a new span class that combines bold and big.
code: Tweaked the way prayer sends notifications to be more efficient.
admin: Moved the prayer notification sound to a toggle preference,
combined with ARES Interface notifications.
/:cl:

* Automatic changelog for PR #5185 [ci skip]

* Fix xeno wounds layering over weeded xenos (#5289)

# About the pull request

This PR is a follow up to #5118 to fix the xeno wounds object appearing
above their weeded appearance. It now synchronizes its plane and layer
with the mob using vis_flags.

# Explain why it's good for the game

Fixes (defender near wall):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/186acf03-c686-4114-9d53-c82687e0129c)

Fixes (drone under door):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/49301147-d1cd-49fc-b977-df2c446cdf45)


# Testing Photographs and Procedure

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/e5c4d69b-e9a3-429b-a2d5-e7a5915c5fee)

# Changelog
:cl: Drathek
fix: Fix xeno wounds layering over weeds when merged with the weeds
/:cl:

* Automatic changelog for PR #5289 [ci skip]

* Fixes being able to vend infinite alcohol (#5305)

# About the pull request

Fixes #5291.
This was caused by the booze vendor returning a brand new list of
products every time something asked for them with
`get_listed_products()`, rather than making a single list when
initialised in `populate_product_list()` and returning that.

I also edited the `get_listed_products()` proc of the 'Experimental
Tools' vendor (fancy synth items), since it seemed to be the only one
not returning a global list.
*(I feel like those would all be better as static variables on each
vendor, but there's probably a good reason that they're not.)*

# Explain why it's good for the game

Infinite booze is... bad? 🤔

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixed being able to vend infinite alcohol.
/:cl:

* Automatic changelog for PR #5305 [ci skip]

* Fixes the Queen Eye being stuck as immature (#5299)

# About the pull request

Makes the 'Queen Eye' mob update its name when the Queen passes the
'Immature' stage, by adding a `COMSIG_MOB_REAL_NAME_CHANGED` signal.

This would be better if it was more similar to TG's
`COMSIG_ATOM_UPDATE_NAME`, but from looking into that it would take a
*big* refactor to implement `update_name()`/`update_appearance()`, so
this'll probably do for the time being.

# Explain why it's good for the game

Fixes the queen eye being stuck as immature unless the queen toggles it
on and off.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Before:**


https://github.com/cmss13-devs/cmss13/assets/57483089/329b8e92-29b3-4629-bd94-c0096bea6508

**After:**


https://github.com/cmss13-devs/cmss13/assets/57483089/49746267-03f5-4e62-aa5b-6f36927cc3e9

</details>


# Changelog
:cl:
fix: Fixed the Queen Eye still showing as "Immature" after the Queen
ages.
/:cl:

* Automatic changelog for PR #5299 [ci skip]

* Automatic changelog compile [ci skip]

* Fixes synths being unlungeable while in "critical state" (#5303)

# About the pull request

Synths were given immunity to dragging from old code back when they
could go into 'crit' so they dont get dragged to hell, however they no
longer have a crit state but still keep the immunity lunges also do not
work because of this. this is not intended.

# Explain why it's good for the game

bugfix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>
yeah i tested it also no you cant get dragged while dead

</details>


# Changelog
:cl:
fix: Synths are no longer immune to lunges / dragging while in 'critical
state' since they dont go into crit.
/:cl:

Co-authored-by: InsaneRed <[email protected]>

* Automatic changelog for PR #5303 [ci skip]

* Fixes a simple race condition in XRF Setup (#5312)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->

# About the pull request

As seen on ~~TV~~ Live game

Someone can remove the vial during the do_after, bricking the machine as
it runtimes and is stuck with processing = TRUE

# Changelog

:cl:
fix: Fixed XRF Scanner bricking if people were adding and removing vials
at same time.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! -->

* Automatic changelog for PR #5312 [ci skip]

* Shoe item storage refactor (#5263)

# About the pull request

Refactors shoe item storage to fix #5245, adds a bit of documentation,
and generally just makes it a bit neater.
(The overall 'Files changed' view looks a bit messy, so I've tried to
keep each commit atomic to help with reviews.)

# Explain why it's good for the game

Code works gooder.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Inserting a knife manually:**


https://github.com/cmss13-devs/cmss13/assets/57483089/adf6267c-7a30-4c00-ae32-37524048ddc6

**Inserting a knife with the (un)holster hotkey:**


https://github.com/cmss13-devs/cmss13/assets/57483089/b66824cb-5ad8-433e-a732-4854c0f68ff4

**Inserting a knife while holding the shoes:**


https://github.com/cmss13-devs/cmss13/assets/57483089/0db1ac5c-7375-478a-9464-449657c7b659

**Picking up/dropping the shoes, and inserting a knife while they're on
the ground:**


https://github.com/cmss13-devs/cmss13/assets/57483089/404a8199-dee0-4cd0-92a9-d2a46cadfac6

**Trying a few different things with two pairs of shoes:**


https://github.com/cmss13-devs/cmss13/assets/57483089/c5aab994-1002-4ffe-80e9-ddbaff4f95af


</details>


# Changelog
:cl:
fix: Fixed inserting/removing an item from shoes sometimes acting
weirdly.
refactor: Refactored shoe item storage.
/:cl:

* Automatic changelog for PR #5263 [ci skip]

* Automatic changelog compile [ci skip]

* new sprites for predalien (abomination) and co. (#5269)

# About the pull request

this PR replaces the predalien sprites with some that i think match the
look of the rest of our xenos a bit better
also replaces the sprites for the predalien larva, adds wounded
overlays, and updates the corpse weed sprites


![paulblart](https://github.com/cmss13-devs/cmss13/assets/106241650/68ed6d5c-5536-41e2-9239-04917b6caea4)

# Explain why it's good for the game

visual consistency good 

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![46QUJQC](https://github.com/cmss13-devs/cmss13/assets/106241650/6813bc51-f009-4525-8fe8-f513642f5edf)

</details>


# Changelog

:cl:
imageadd: new sprites for predalien, predlarva and weeded corpse
imageadd: added predalien wound overlays
/:cl:

* Automatic changelog for PR #5269 [ci skip]

* Automatic changelog compile [ci skip]

* north facing m56d shooting angle fix (#5308)

# About the pull request

prevents m56d from shooting anywhere to the right when facing north

# Explain why it's good for the game

fix good


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: m56d can not longer shoot backwards when facing north
/:cl:

Co-authored-by: vincibrv <[email protected]>

* Automatic changelog for PR #5308 [ci skip]

* Makes the designation of a tunnel display in chat when entered (#5315)

# About the pull request

Makes the designation of a tunnel display in chat when a player enters
it.

# Explain why it's good for the game

I've quite often gone through a tunnel to drop a capture off at the
hive, and then had no idea which tunnel to select in order to get back.
It is possible to examine a tunnel before you go through it to see its
name, but this just streamlines the whole process.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Before:**

![before](https://github.com/cmss13-devs/cmss13/assets/57483089/de1a4a73-0d39-456a-a7fd-b0ddf401dc4f)

**After:**

![after](https://github.com/cmss13-devs/cmss13/assets/57483089/75d139eb-5ea2-41b1-a003-e42b52d08ecd)

</details>


# Changelog
:cl:
qol: Made the designation of a tunnel display in chat when a player
enters it.
/:cl:

* Automatic changelog for PR #5315 [ci skip]

* Fixes a laser cannon bug which I added (#5319)

# About the pull request

Fixes CAS lasers only setting fire to a single tile, rather than in a
7x7 range around the target.

This was caused by me somehow incorrectly setting the target turf in
#5205.

# Explain why it's good for the game

uh, whoops

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixed the CAS laser cannon only setting fire to a single tile,
rather a 7x7 range.
/:cl:

* Automatic changelog for PR #5319 [ci skip]

* Moves around "Remove Splints" and "View playtime" (#5323)

# About the pull request
This pr moves "View Playtimes" under the "Records" tab of OOC and
"remove splints" into "IC" tab .

# Explain why it's good for the game

viewplaytimes s a record, and "remove splints" should be under IC for
new players, not even i remember where to look for it sometimes because
under objects doesnt make sense

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
qol: "View Playtime" is now under the "Records" section under OOC
qol: "Remove Your Splints" is now under the "IC" section.
/:cl:

Co-authored-by: InsaneRed <[email protected]>

* Automatic changelog for PR #5323 [ci skip]

* Tutorial System: Retutorializing (#5030)

# About the pull request
Reopening of #4442

Adds a tutorial system to the game, accessible from the lobby screen.
The tutorial system is entirely isolated from the main game, allowing
players to get a curated experience to be taught the mechanics of SS13
or specific roles within CM. The tutorial system is fully capable of
supporting a theoretically infinite amount of players at once, each
getting their own instance.

See below video for an example of the in-dev "Marine - Basic" tutorial.

https://www.youtube.com/watch?v=aWEtd6EAZWk 

# Explain why it's good for the game
Teaching new players how to play the game has always been a tough bit
for us, so why not add a full-on tutorial system to get people into the
know?


# To-Do:
This list is alive and will change over time.
If you are interested in coding a tutorial, know that it's very easy and
that most of the heavy lifting's done for you! You can find a [tutorial
creation guide
here](https://hackmd.io/@mRAdleXgRfmKqh97O8ixSA/BJQsmO8kT), and you can
additionally contact me on discord at any time with questions.

Also, you can find an example tutorial
[here](https://github.com/cmss13-devs/cmss13/pull/4442/files#diff-843b2f84360b9b932dfc960027992f2b5117667962bfa8da14f9a35f0179a926).

Backend:
- [x] TGUI
- [x] Add finished tutorials to save files
- [x] Communicate to players with little playtime
- [x] Suppress combat logs and similar done in tutorials

SS13:
- [x] Basics
- [x] Intents

Marine:

- [x] Basics
- [x] Medical
- [ ] Weaponry
- [ ] Comtech - Basics
- [ ] Medic - Basics
- [ ] FTL - Basics
- [ ] Smartgunner - Basics
- [ ] Specialist - Demolitionist
- [ ] Specialist - Scout
- [ ] Specialist - Pyrotechnician
- [ ] Specialist - Grenadier
- [ ] Specialist - Sniper
- [ ] Squad Leader - Basics

Xenomorph:

- [ ] Basics
- [ ] Builder Caste - Basics

# Changelog
:cl:
add: Added a tutorial system for various roles (and just general
information), find it in the lobby screen.
/:cl:

---------

Co-authored-by: fira <[email protected]>

* Automatic changelog for PR #5030 [ci skip]

* Fixes immobilized mobs being able to buckle onto chairs (#5317)

# About the pull request

#5277, fixes the issue outlined here, incapacitated marines should not
be able to buckle themselves.

# Explain why it's good for the game

bug bad

# Changelog

:cl:
fix: fixes immobilized mobs being able to buckle themselves
/:cl:

* Automatic changelog for PR #5317 [ci skip]

* migrated js components to jsx (#5307)

# About the pull request

First round of refactors for TGUI-5 migration. Here all TGUI interfaces
and components have been changed from .js to .jsx. This is to closer
align us to the standards of tgstation. Within the components themselves
there are no functional changes.

Files of interest:

- tgui/webpack.config.js
- tgui/packages/tgui/routes.jsx
- tgui/packages/tgui/interfaces/Filteriffic.jsx
- tgui/packages/tgui/debug/KitchenSink.jsx

The rest of the file changes should just be .js -> .jsx

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game

Groundwork prep for TGUI 5
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
refactor: tgui js components now jsx
/:cl:

* Automatic changelog for PR #5307 [ci skip]

* Fixes runtime in stripping (#5320)

# About the pull request

The dummy as an example doesn't have skills so we runtime when stripping
them.

```
[2023-12-27 21:52:42.147] runtime error: Cannot execute null.get skill level().
 - proc name: get strip delay (/mob/living/carbon/human/proc/get_strip_delay)
 -   source file: code/modules/mob/living/carbon/human/inventory.dm,498
 -   usr: (src)
 -   src: Jack Samerus (/mob/living/carbon/human)
 -   src.loc: the floor (140,46,3) (/turf/open/floor/almayer)
 -   call stack:
 - Jack Samerus (/mob/living/carbon/human): get strip delay(Jack Samerus (/mob/living/carbon/human), Professor DUMMY the Medical Ma... (/mob/living/carbon/human))
 - Jack Samerus (/mob/living/carbon/human): stripPanelUnequip(Professor DUMMY tablet (/obj/item/device/professor_dummy_tablet), Professor DUMMY the Medical Ma... (/mob/living/carbon/human), "r_hand")
 - Professor DUMMY the Medical Ma... (/mob/living/carbon/human): Topic("src=\[0x3000232];item=r_hand", /list (/list))
 - **** (/client): Topic("src=\[0x3000232];item=r_hand", /list (/list), Professor DUMMY the Medical Ma... (/mob/living/carbon/human))
```

# Explain why it's good for the game
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Runtime in inventory.dm
/:cl:

* Automatic changelog for PR #5320 [ci skip]

* Fixes the failure message when trying to switch pyro fuels (#5321)

# About the pull request

Edits the pyro spec's fuel pack a bit to make it *slightly* more
bug-proof, and to fix it sometimes giving weird failure messages like
these:

![image](https://github.com/cmss13-devs/cmss13/assets/57483089/2fa746d0-acc6-402b-ad17-e8fff5f4e3cd)

![image](https://github.com/cmss13-devs/cmss13/assets/57483089/67cef060-55a4-4897-9e52-f6d01e43d3d1)

This was caused by me in #5121, presumably because I misread how the
check was handled.

# Explain why it's good for the game

I broked it (sorry)

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixed the pyro spec's fuel pack sometimes giving weird failure
messages when trying to switch fuel.
/:cl:

* Automatic changelog for PR #5321 [ci skip]

* Automatic changelog compile [ci skip]

* Fixes the Hive Status error when the Queen dies (#5316)

# About the pull request

Fixes the Hive Status window showing an error message when the Queen
dies.

For xeno players, the interface just closes.
For observing players, the interface will show 'The Hive has no Queen!'
where the queen's location was previously.
(The bug actually causing the error should be fixed too now)

(Note: I'm not quite sure what the `tgui-panel.bundle.css` diff is from,
but it kept modifying itself whenever I compiled so I figured it was
something related to this.)

# Explain why it's good for the game

Fixes #4330

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

**Testing queen spawn and death as the queen, as an observer, and as a
xeno:**


https://github.com/cmss13-devs/cmss13/assets/57483089/ba3b2960-d4ce-4be4-af6b-6daae2d10ac1

</details>


# Changelog
:cl:
fix: Fixed the Hive Status window showing an error message when the
Queen dies.
/:cl:

* Automatic changelog for PR #5316 [ci skip]

* gives trucker construction skills (#5231)

# About the pull request
Gives trucker engineering construction skills

# Explain why it's good for the game

It is strange to have engineering survivor who can not build cades and
walls and it sucks when you have 3 truckers but none able to build
openable cades. Giving more skills to survivors should make playing
survivor more fun. Trucker still has other diferent skill and gets
diferent loudout from engineer

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: gives trucker engineer level construction skill
/:cl:

* Automatic changelog for PR #5231 [ci skip]

* CL Headsets can utilize two more keys. (#5234)

# About the pull request

CLs have access to more keys now for CL purposes. This bump should allow
them to utilize the new keys without feeling awkwardly limited by the
key count.

# Explain why it's good for the game

You use utility by having limited key access, this should allow people
who use keys more frequently to take part in broader information spaces.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
add: Max CL Headset radio keys from 3 to 5.  (+2 increase)
/:cl:

* Automatic changelog for PR #5234 [ci skip]

* Refactors some other xeno throws to throw_carbon() (#5237)

# About the pull request

Reduce boilerplate

# Explain why it's good for the game
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
code: Refactors some code to new throw_carbon proc
/:cl:

* Automatic changelog for PR #5237 [ci skip]

* Adds a verb to hide action buttons (#5304)

# About the pull request

Adds a verb on /client to show/hide action buttons
Makes it a new variable, as var/hidden also prevents the action from
being used


![image](https://github.com/cmss13-devs/cmss13/assets/56142455/1d78441c-5085-4165-a2b7-f7c3e9f7e2c3)

# Changelog

:cl:
qol: Adds the ability to hide your action buttons
/:cl:

* Automatic changelog for PR #5304 [ci skip]

* sentry laptop now uses camera manager (#5309)

# About the pull request

The sentry laptop had a bunch of custom code for handling gunsight
cameras. This PR refactors it to exclusively use the camera_manager
component.

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game

Reduction of duplicated code.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
refactor: sentry laptop now uses camera manager component
/:cl:

* Automatic changelog for PR #5309 [ci skip]

* Fixes a couple of runtimes with xenos dying (#5322)

# About the pull request

Trying to call `post_attack()` on something which has already been
qdeleted within gib()

```
[2023-12-27 22:10:14.636] runtime error: Cannot read null.comp_lookup
 - proc name: UnregisterSignal (/datum/proc/UnregisterSignal)
 -   source file: code/datums/components/_component.dm,219
 -   usr: null
 -   src: Hide (/datum/action/xeno_action/onclick/xenohide)
 -   call stack:
 - Hide (/datum/action/xeno_action/onclick/xenohide): UnregisterSignal(null, "mob_statchange")
 - Hide (/datum/action/xeno_action/onclick/xenohide): post attack()
 - Hide (/datum/action/xeno_action/onclick/xenohide): unhide on stat(Veteran Facehugger (896) (/mob/living/carbon/xenomorph/facehugger), 2, 0)
…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Testmerge Candidate we'll test this while you're asleep and the server has 10 players
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants