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

Smartfridge tgui #1623

Merged
merged 13 commits into from
Dec 10, 2022
Merged

Conversation

mullenpaul
Copy link
Contributor

@mullenpaul mullenpaul commented Nov 20, 2022

About The Pull Request

Migrates the smart fridge to TGUI and reworks internal logic.

Adds a standard component to use for displaying an electrical access panel for hacking. The goal is to indicate that there is an access panel and to try and make the UI more immersive.

Why It's Good For The Game

Smartfridge with some items loaded
image

Smartfridge with panel open and wire status lights active. Solid green for good or flashing red for bad.
image

Changelog

🆑
fix: fixed bug in turing autodispensor so that pill bottles can be in local smart fridge
refactor: migrated smart fridge to tgui
refactor: added common electrical panel for tgui components
/:cl:

@github-actions
Copy link
Contributor

You currently have a negative Fix/Feature pull request delta of -3. Maintainers may close this PR at will. Fixing issues or improving the codebase will improve this score.

@github-actions github-actions bot added UI deletes nanoui/html Fix Fix one bug, make ten more Refactor Make the code harder to read labels Nov 20, 2022
@harryob
Copy link
Member

harryob commented Nov 20, 2022

also - imo it needs to be a fluid element for the wires

@mullenpaul
Copy link
Contributor Author

updated pictures to represent changes

@github-actions github-actions bot added the Merge Conflict PR can't be merged because it touched too much code label Nov 23, 2022
@github-actions github-actions bot removed the Merge Conflict PR can't be merged because it touched too much code label Nov 29, 2022
@fira fira requested a review from harryob November 30, 2022 17:18
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
code/game/machinery/kitchen/smartfridge.dm Outdated Show resolved Hide resolved
@stanalbatross stanalbatross marked this pull request as draft December 1, 2022 00:20
@mullenpaul mullenpaul marked this pull request as ready for review December 1, 2022 20:10
@stanalbatross stanalbatross merged commit 7890e46 into cmss13-devs:master Dec 10, 2022
github-actions bot added a commit that referenced this pull request Dec 10, 2022
github-actions bot added a commit that referenced this pull request Dec 10, 2022
NoKohi added a commit to NoKohi/cmss13 that referenced this pull request Dec 12, 2022
commit 2a77e048108207888527d4dc55357278c3b04962
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Dec 12 05:22:52 2022 +0000

    Automatic changelog for PR #1917 [ci skip]

commit 6f933c5af7c7d96f5c74dad21397018d8229d491
Author: forest2001 <41653574+realforest2001@users.noreply.github.com>
Date:   Mon Dec 12 05:22:32 2022 +0000

    Change ingame Discord links (#1917)

commit 1fcbb4a1fed574ff1b87208630b42b5492569c4c
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Dec 12 04:44:04 2022 +0000

    Automatic changelog for PR #1766 [ci skip]

commit 2e9c7444d8512a0af9b620ba148e8fce607ee140
Author: NoKohi <115217891+NoKohi@users.noreply.github.com>
Date:   Mon Dec 12 13:43:45 2022 +0900

    Adds a preference for vendors vending directly into your hand. (#1766)

    ## About The Pull Request

    This adds a preference (should be on by default) for vendors vending
    items directly into your hand when applicable. Toggling it off means you
    no longer have items vend into your hands.

    ## Why It's Good For The Game

    Originally I wasn't going to PR this, but Stan said he'd be fine with
    it. A few people were complaining about the recent QOL change by
    ThePiachu, which gave vendors the VEND_TO_HAND flag. This preference
    lets those people have the option of doing things the old way. This is
    consistent with other preferences, and it's nice to let people have the
    option.

    ## Changelog

    :cl:
    qol: added a "Toggle Vendors Vending to Hands" to preferences
    /:cl:

commit b99e6c826bbaa6e23c45f1442ebaff84b03982e1
Author: Changelogs <action@github.com>
Date:   Mon Dec 12 01:35:28 2022 +0000

    Automatic changelog compile [ci skip]

commit bda893fb99f967a46837e75521f7ff65b1fd400a
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sun Dec 11 09:56:48 2022 +0000

    Automatic changelog for PR #1901 [ci skip]

commit 70bcd3b6fbcf17b4c26640321f23c83da0ab80a3
Author: carlarctg <53100513+carlarctg@users.noreply.github.com>
Date:   Sun Dec 11 06:56:29 2022 -0300

    Queen eye shuffles weed sprites when passing over them. (#1901)

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

    # About the pull request

    Queen eye shuffles weed sprites when passing over them.

    Fixed some single letter vars so the mantainer agenda can't delay this
    PR from merging.

    <!-- 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

    > Queen eye shuffles weed sprites when passing over them.

    It's a way for marines to know there's an entire queen eye looking over
    them. Basically means an MD isn't 100% necessary to know the queen will
    broadcast the location of your flank to the entire hive.

    https://streamable.com/kmnd72

    It's more subtle than i wanted it to be, but WCYD. Also doesn't work on
    corner sprites.

    Also, it looks fucking creepy as hell! It's awesome.

    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    add: Queen eye shuffles weed sprites when passing over them.
    fix: Fixed some single letter vars so the mantainer agenda can't delay
    this PR from merging.
    /:cl:

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

commit 355585c63c5e61e72d85a05dc26ad2c803d83f19
Author: Changelogs <action@github.com>
Date:   Sun Dec 11 01:39:01 2022 +0000

    Automatic changelog compile [ci skip]

commit 0143f446b0f81e07d60734482907689b091bb8f3
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 20:38:05 2022 +0000

    Automatic changelog for PR #1760 [ci skip]

commit 04e89c71598a08aa7dbb1e8b2a59b7e5bcd15347
Author: naut <55491249+nauticall@users.noreply.github.com>
Date:   Sun Dec 11 04:37:44 2022 +0800

    CO's Deagle and Mateba Rebalance (#1760)

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

    ## About The Pull Request

    Rebalances the CO's weapons, the Desert Eagle and Mateba, to be able to
    play off each other's strengths instead of one being statistically
    better than the other in every aspect.

    **Both** weapons have received a rebalance in ammo distribution. **All
    ammunition is now high-impact capable**, being able to stun and perform
    battlefield executions if the wielder is capable of doing so.

    Both weapons have high-impact and high-impact AP ammo in their belts at
    a ratio of 3:2/4:2. AP ammo has higher armor penetration at the cost of
    lower overall damage. **Note that AP ammo is also high-impact capable
    and can still execute**.

    AP ammo is available in the CO vendor for 20 points, while standard
    high-impact is available for 15 points. Non-impact ammo for both the
    Deagle and the Mateba are found in their civilian/ERT counterparts only.

    ![image](https://user-images.githubusercontent.com/55491249/204478835-b8582f91-91c0-463d-8c1b-1e535c61e663.png)

    ![image](https://user-images.githubusercontent.com/55491249/204479018-35f78caf-0c8d-425d-a36e-b4398cbd12aa.png)

    The **Mateba** has been rebalanced into a slower but more powerful
    weapon, having more damage per shot and higher accuracy at the cost of
    lowered fire rate, higher recoil and lower ammo capacity (6 in the
    chamber).
    ```
    fire_delay = FIRE_DELAY_TIER_2
    burst_amount = BURST_AMOUNT_TIER_3
    burst_delay = FIRE_DELAY_TIER_7
    accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_2
    accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_5
    scatter = SCATTER_AMOUNT_TIER_7
    burst_scatter_mult = SCATTER_AMOUNT_TIER_6
    scatter_unwielded = SCATTER_AMOUNT_TIER_2
    damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_10
    recoil = RECOIL_AMOUNT_TIER_2
    recoil_unwielded = RECOIL_AMOUNT_TIER_2
    ```

    The **Desert Eagle** has been rebalanced into a gun that shoots faster,
    holds more ammo and has lower recoil, but trades that for lower damage
    per shot, lower accuracy (meaning you have to get close to make all
    shots land), and shorter stun duration.
    ```
    fire_delay = FIRE_DELAY_TIER_5
    accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
    accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7
    scatter = SCATTER_AMOUNT_TIER_6
    burst_scatter_mult = SCATTER_AMOUNT_TIER_4
    scatter_unwielded = SCATTER_AMOUNT_TIER_3
    damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_8
    recoil = RECOIL_AMOUNT_TIER_3
    recoil_unwielded = RECOIL_AMOUNT_TIER_2
    ```
    Do note that very few of these stats are a _straight_ upgrade from their
    previous incarnations; numbers have just been shuffled around to make
    the weapons feel and play differently than each other.

    And, yes, this was run through with the CO Council beforehand. I don't
    see why it wouldn'tve been considering I'm its head.

    ## Spritesheet

    ![image](https://user-images.githubusercontent.com/55491249/204480299-20f11f0b-2000-47c6-b961-dd59037f6ff3.png)

    ![image](https://user-images.githubusercontent.com/55491249/204480243-f58336ce-2beb-4fed-809a-b865ff638e98.png)

    ## Why It's Good For The Game

    Currently in the CO's arsenal, the Desert Eagle, by design oversight, is
    better than the Mateba in most aspects and is the superior option for
    taking into combat, with the Mateba being more for style points instead
    of actual use. This PR aims to make both weapons have their own
    strengths and weaknesses and have them play differently from each other,
    instead of them feeling samey.

    The ammunition rebalance also serves to eliminate the throwaway
    non-impact Mateba/Deagle ammo that was used, in practice, as simply a
    last resort for when you ran out of actual high-impact stuff. This
    replaces that with ammo that's much more useful and pertinent to the
    weapon at hand, making sure you use the whole belt and not just a
    fraction of it.

    ## Testmerge This
    Values are arbitrary, and they're likely gonna need quite a bit of
    tweaking before the weapons' stats both feel right or distinguishable
    from each other. I don't wanna just make the problem worse, so this
    should be TM'ed before it actually makes it in. Just in case.

    ## Changelog

    <!-- 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. -->

    <!-- 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. 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: nauticall
    balance: Rebalanced the CO's Mateba and Desert Eagle so that each have
    their own strengths and weaknesses.
    balance: Compared to each other, the Mateba has higher damage per shot
    and better accuracy at the cost of lower ammo count and lower firerate.
    balance: The Deagle, by contrast, fires faster and has more ammo, but
    has less damage per shot and lower accuracy.
    balance: All CO sidearms now come with high-impact ammunition only in
    their vendors. AP ammo available as a sidegrade.
    add: Adds high-impact AP ammo to the Deagle and Mateba that offers much
    higher armor penetration in exchange for decreased overall damage.
    /:cl:

    <!-- Both :cl:'s are required for the changelog to work! You can put
    your name to the right of the first :cl: if you want to overwrite your
    GitHub username as author ingame. -->

    Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>

commit 58990b84019a510b5b650cce6e746fb2990d7da4
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 19:40:03 2022 +0000

    Automatic changelog for PR #1623 [ci skip]

commit 7890e46f46515c2f079c087d6bb78f6eebebc21d
Author: Paul Mullen <101871009+mullenpaul@users.noreply.github.com>
Date:   Sat Dec 10 19:39:43 2022 +0000

    Smartfridge tgui (#1623)

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

    ## About The Pull Request

    Migrates the smart fridge to TGUI and reworks internal logic.

    Adds a standard component to use for displaying an electrical access
    panel for hacking. The goal is to indicate that there is an access panel
    and to try and make the UI more immersive.

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

    ## Why It's Good For The Game

    Smartfridge with some items loaded

    ![image](https://user-images.githubusercontent.com/101871009/202933478-2c1df4d2-970c-4fbb-b9aa-ba590046aadf.png)

    Smartfridge with panel open and wire status lights active. Solid green
    for good or flashing red for bad.

    ![image](https://user-images.githubusercontent.com/101871009/202933496-03b22590-b8a8-4ef4-89d7-30c63a941fb3.png)

    <!-- 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. -->

    ## Changelog

    <!-- 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. -->

    <!-- 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. 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:
    fix: fixed bug in turing autodispensor so that pill bottles can be in
    local smart fridge
    refactor: migrated smart fridge to tgui
    refactor: added common electrical panel for tgui components
    /:cl:

    <!-- Both :cl:'s are required for the changelog to work! You can put
    your name to the right of the first :cl: if you want to overwrite your
    GitHub username as author ingame. -->

commit c4c291fd66510db0162e6dabbba75a6a836886d7
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 15:13:13 2022 +0000

    Automatic changelog for PR #1863 [ci skip]

commit 96a8835ef886d9f94c70e99973a65f69832e2641
Author: Unknownity <83834638+Unknownity@users.noreply.github.com>
Date:   Sat Dec 10 16:12:55 2022 +0100

    Research Nerfs (#1863)

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

    # About the pull request

    This PR brings in some changes to cut down a few things.
    one monkey cube box has been removed to cut down the maximum xenomorphs
    researchers can make (from 21 xenomorphs total to 11, excluding CL
    monkey cubes and including pooled).

    A corrupted hive's biggest advantage over the regular hive is that they
    are teamed up with the marines, so if a corrupted hive managed to get
    ALL the monkey cubes for their hive, they would effectively be 1:1 with
    the rival hive with the addition of being allied to the marines, an USCM
    allied hive still has the advantage over the regular hive by being
    allied to marines and being able to plan out their castes for XvX than
    XvH.

    This change will now make the regular hive atleast have a chance
    fighting off the corrupted hive in a scenario with marines and be
    slightly better when the corrupted are alone (if the regular hive has
    more xenos).

    If you are upset that you lost more monkeys to "experiment" on that isnt
    just infecting them with huggers, keep in mind that there is no way you
    can permamently lose a monkey unless you decapitate them or leave them
    for dead instead of reviving them. No I will not make special monkeys
    that cannot be infected, use your monkeys as intended for experiments,
    they are not only for making a corrupted hive.

    second change is increasing the rarity of Musclestimulating (MST) and
    Nervestimulating (NST) from Uncommon to Rare (1 tier up). Lately if not
    for a very long time, Research seems to only ever make stimulants, we
    have cut down a lot of ways to get them (by removing Synaptizine and
    Hyperzine and other changes etc.) and currently you can still obtain
    them quite easily and the whole research meta was to always make NST MST
    instead of utilizing literally any other beneficial property and now
    with anti xenomorph interactions, they still make stimulants only
    because it has been ingrained in their brain for too long.

    Increasing their rarity makes the properties no longer appear in botany
    chems, so you will now have to wait for colony vials/papers, a xeno
    corpse and max your clearance or buy a C3+ paper.

    The final change is replacing the Ultrazine Pill Bottle the CL has with
    an Ultrazine Auto-Injector, the pill bottle contained 5 pills with 5u
    each, the new injector contains 25u of the stimulant and gives 5u each
    injection. The only difference being is that the Ultrazine the CL has is
    now in a liquid injection than pill form, it will begin affecting you
    instantly and the main reason I made this change, you can no longer
    obtain the chemical from it as you could with pills by dissolving them
    which granted an easy scan for MST, since we are making MST rarer, the
    CL should not have pills but an auto-injector.

    # Explain why it's good for the game

    Cuts down corrupted numbers to prevent easy stomps whenever marines get
    them
    An attempt to change the stim meta (by making it rarer) to encourage
    other properties to be used.

    # Testing Photographs and Procedure
    Checked on using the briefcase to spawn the new autoinjector to make
    sure it spawns, and tested it to make sure it has the correct values.
    Checked that the removed monkey cube box is actually gone. Checked that
    MST and NST are now actually Rare by scanning them and seeing their
    rarity type in the simulator.

    # 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. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl: Unknownity
    del: Removed one monkey cube box from Research.
    balance: Increased rarity of MST and NST from Uncommon to Rare.
    balance: Replaced the Ultrazine Pill Bottle with an Ultrazine
    auto-injector in the CL Vendor Briefcase.
    /:cl:

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

    Co-authored-by: Unknownity <a>
    Co-authored-by: Stan_Albatross <66756236+stanalbatross@users.noreply.github.com>

commit 00546dd2f4f6271b08d2c060802aac3080a05436
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 13:22:14 2022 +0000

    Automatic changelog for PR #1519 [ci skip]

commit 9163cf55eea1d512f8fad3802abc5dc4e6416276
Author: ThePiachu <ThePiachu@gmail.com>
Date:   Sat Dec 10 05:21:52 2022 -0800

    Added some more recharge stations to Fiora, Kutjevo, Solaris Ridge (#1519)

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

    ## About The Pull Request

    I've recently played the Fiora map as a synthvivor and noticed I
    couldn't find any Recharge Stations. I checked the map and the only one
    I could find was this:

    ![image](https://user-images.githubusercontent.com/964559/201466966-a157c813-4620-4b7d-a008-0312fce2064a.png)

    So I added three more to the map in various areas. Kutjevo didn't have
    any Recharge Stations, so I added a few. Finally, someone mentioned
    Solaris Ridge could use a Recharge Station in Engineering, so added that
    as well.

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

    ## Why It's Good For The Game

    It's a QoL upgrade for synthetics to be able to use these rather than
    having to slowly repair themselves or telling engis what to apply where.
    This makes their life a little bit easier.

    <!-- 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. -->

    ## Changelog

    <!-- 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. -->

    <!-- 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. 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:
    add: Added three more Recharge Stations to Fiora Science Annex
    add: Added four Recharge Stations to Kutjevo Refinery
    add: Added one more Recharge Station to Solaris Ridge
    /:cl:

    <!-- Both :cl:'s are required for the changelog to work! You can put
    your name to the right of the first :cl: if you want to overwrite your
    GitHub username as author ingame. -->

commit 894b9d3732538191ecc98b9e53b74ce52363c1da
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:55:24 2022 +0000

    Automatic changelog for PR #1687 [ci skip]

commit 767ddec9e023cae2c0699ac091fea596e78b561e
Author: Googles-Hands <59937074+Googles-Hands@users.noreply.github.com>
Date:   Sat Dec 10 09:55:06 2022 +0100

    Whiskey Outpost fixes and rank changes (#1687)

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

    ## About The Pull Request
    This adds to a small PR of mine and makes it into a larger one which
    contains the following: spelling fixes, changes to two job descriptions
    and a minor shuffle in the ranks of four jobs (Ground Commander,
    Lieutenant Commander, Quartermaster and Mortar Crew).
    Fixes: #1682
    removes the welding goggles from the Squad Engineers, as they already
    have welding helmets
    <!-- Describe The Pull Request. Please be sure every change is
    documented or this can delay review and even discourage maintainers from
    merging your PR! -->

    ## Why It's Good For The Game
    ### Spelling fixes
    Always good to have
    ### description changes
    Changes a reference to the Lieutenant Command who was called a "Gunnery
    Sergeant" when that is not his current rank (Captain) or the rank that I
    am changing him to (Second Lieutenant). He is just now referenced as his
    job title, Lieutenant Commander
    ### Rank changes
    As I've explained in a discord post, the CO having the rank of Major
    while Captain Naiche, the canonical Commander of all marine forces on
    LV, is giving them orders.
    This a leftover from the rank rework when the Ground Commander just had
    the rank of Commander, which put him one rank below the Captain.
    Dropping the CO to the difference from before, which in this case is
    First Lieutenant remedies this lore conflict.
    Entailing this also forces me to drop the XO (who was a captain) to
    Second Lieutenant and the QM (who was a First Lieutenant) to First
    Sergeant. I don't think these changes are a detriment to the game as all
    marines besides the CO, XO and QM were enlisted men anyhow, which means
    it doesn't really matter if the CO is a Captain or First Lieutenant. The
    QM is still the third highest ranking marine, just no longer an officer.
    I am also elevating the Mortar Crew from PFC to Lance Corporal as I
    think a man that went through specialized training which is now his
    dedicated assignment ought to outrank a rifleman, like a squad engie or
    medic.
    <!-- 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. -->

    ## Changelog
    :cl: Googles_Hands
    fix: Changed the WO CO, XO, QM and Mortar Crew ranks to be more lore
    friendly
    fix: Changed the WO reinforcement announcement to be more lore friendly
    fix: Fixed the description of the WO XO and CMP in reference to the XO's
    title
    spellcheck: Fixed a few misspellings in WO announcements
    fix: removes redundant welding protection from squad engies
    /:cl:

commit 405a25283b1e9bb8d0946e9654949d22775f1268
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:52:31 2022 +0000

    Automatic changelog for PR #1865 [ci skip]

commit 54c6547e964e411b3c3b136f1582e971a96c7a95
Author: carlarctg <53100513+carlarctg@users.noreply.github.com>
Date:   Sat Dec 10 05:52:14 2022 -0300

    Post-Merge Spitter tweaks (#1865)

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

    # About the pull request

    Spitter's Charge Spit's cooldown has been reduced from 15 to 12 seconds.

    Spitter Tail Stab injects 5u monomolecular acid.

    <!-- 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

    > Spitter's Charge Spit's cooldown has been reduced from 15 to 12
    seconds.

    Spitter's rework was meant to make it actually menacing, and it is! But
    it really feels like this cooldown being so long inhibits the combat
    power of the caste a bit too much, it feels sluggish atm. I think this
    small tweak might be just enough.

    > Spitter Tail Stab injects 5u monomolecular acid.

    Boiler doing this is awesome and it makes sense that Spitter would
    inject a reduced amount, as Geeves said, more castes should have unique
    tail stabs.

    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    balance: Spitter's Charge Spit's cooldown has been reduced from 15 to 12
    seconds.
    add: Spitter Tail Stab injects 5u monomolecular acid.
    /:cl:

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

commit b3487fb78a4b51423666a92cd85d5bb54fa61677
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:45:24 2022 +0000

    Automatic changelog for PR #1889 [ci skip]

commit dfb8e704fbb753abe7592e6665560fc39bfc65ce
Author: MidwayAtom <21342688+MidwayAtom@users.noreply.github.com>
Date:   Sat Dec 10 08:45:03 2022 +0000

    Fixing Reqs Computer w/ Grammar & Capitalisation  (#1889)

    # About the pull request

    Noticed some spelling and capitalization of the "Restricted Equipment"
    portion. Thus this is a simple fix with no other changes.

    # Explain why it's good for the game

    Spelling and Capitalization keeps people calm.

    # 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. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: Fixed the spelling and capitalisation of stuff on the Req Computer.
    /:cl:

commit 7023f6d20870974f8ec10a537132a4899781ffcf
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:44:54 2022 +0000

    Automatic changelog for PR #1890 [ci skip]

commit e9100a3798cef85a0e00a19658862ff8c36d5df2
Author: forest2001 <41653574+realforest2001@users.noreply.github.com>
Date:   Sat Dec 10 08:44:34 2022 +0000

    Minor Admin QOL (#1890)

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

    # About the pull request
    Adds an easier way to update fax options for staff.
    Fixes the Santa and UPP presets to use appropriate paygrades and
    equipment
    Removes legacy code for snowflake masks
    <!-- 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

    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: UPP Spy and Santa presets now have the correct equipment and
    paygrades.
    add: Added a new proc to update fax options, rather than relying on
    Initialize.
    code: Removes the legacy code checking for snowflake Yautja masks.
    /:cl:

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

commit e202897f08e5766e3447c7aea26f80db3f5a32b1
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:42:07 2022 +0000

    Automatic changelog for PR #1891 [ci skip]

commit 78c099802248a8d6c73695d3a00e1202834f8e25
Author: Segrain <Segrain@users.noreply.github.com>
Date:   Sat Dec 10 12:41:49 2022 +0400

    Fix for accuracy falloff. (#1891)

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

    # About the pull request

    Followup to #1541, in the sense that all the complaints about spitters
    being unable to land any hits at intended 7 tile range finally made me
    clear this single line off my todolist. Discovered more weirdness in
    need of fixing in the process, but that is a story for another day.

    # Explain why it's good for the game

    ![image](https://user-images.githubusercontent.com/4447185/206509415-b3d7d042-563f-4cba-9fa5-213b70030190.png)

    # 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. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: Projectiles no longer experience an unintended massive drop in
    accuracy immediately past their maximum accurate range.
    /:cl:

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

commit 282426fcbe1ed20dc3f3fd0057cac4d09be15e3c
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Dec 10 08:41:14 2022 +0000

    Automatic changelog for PR #1892 [ci skip]

commit 3451ba0fe39c1b4d4db20732b191866913a2e714
Author: RenaRenaRe <118639975+RenaRenaRe@users.noreply.github.com>
Date:   Sat Dec 10 08:40:55 2022 +0000

    Research chem fire fix (#1892)

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

    # About the pull request
    Fixes Issue #1706
    Burn color was not being set correctly for chems created by the research
    Synthesizer, which was causing runtime errors that broke OT nades that
    used them.
    <!-- 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
    Bugs are bad
    <!-- 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
    Using the research Synthesizer create from scratch (not relate) a chem
    with Oxidising (or other fire chems as long as it has positive
    intensity). Then use that chem in an OT nade and observe that it now
    works properly
    <!-- Include any screenshots/videos/debugging steps of the modified code
    functioning successfully, ideally including edge cases. -->

    # 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. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: Research chems created via the synthesizer now work properly in
    chemical fires
    /:cl:

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

commit 15c4f019fc1123b5b0ea289bd8b7e17c62ada85e
Author: Changelogs <action@github.com>
Date:   Sat Dec 10 01:22:43 2022 +0000

    Automatic changelog compile [ci skip]

commit e246ab62dca5bf19731ac88dbe29c1b735243e6e
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 14:37:43 2022 +0000

    Automatic changelog for PR #1840 [ci skip]

commit 8a0aba990ba03bc35704f6b70e36553677649a6e
Author: sleepynecrons <106241650+sleepynecrons@users.noreply.github.com>
Date:   Fri Dec 9 08:37:25 2022 -0600

    Resin Whisperer sprites (and tiny fixes for reg. Hivelord) (#1840)

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

    # About the pull request

    Gives Resin Whisperer unique sprites, as well as fills in a few empty
    spots on the base Hivelord sprites.

    # 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>

    ![f6s8wKo](https://user-images.githubusercontent.com/106241650/205587699-065746a9-87c0-4568-8c2a-cf5ed4a32515.png)

    </details>

    # Explain why it's good for the game

    sprites goodd

    # 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. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl: Sleepynecrons
    imageadd: added new sprites for Resin Whisperer
    /:cl:

commit c90cad411fc5040ddeced56cb80719c6755a65f7
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 14:18:14 2022 +0000

    Automatic changelog for PR #1873 [ci skip]

commit 6b201f0a501b93532123ca6cb27dd805038d6ed3
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 14:18:01 2022 +0000

    Automatic changelog for PR #1801 [ci skip]

commit dacc96e934205543200888c41717cd4eabf2b3ab
Author: ThePiachu <ThePiachu@gmail.com>
Date:   Fri Dec 9 06:17:52 2022 -0800

    Fixed synths having no paygrade (#1873)

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

    # About the pull request

    Synths having no paygrade caused a runtime error with the new money
    changes. So I gave them one. Asked the Synth Council and they couldn't
    agree what rank they should have, so I added a Synth placeholder
    paygrade to tide them over for now that can be changed later.

    Fixes #1866

    <!-- 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

    Less runtimes more better.

    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: Fixed a runtime caused by Synths having no paygrade.
    /:cl:

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

commit a2cd4e5bb84a0a36d89e9959fcb538e97b1ef806
Author: ThePiachu <ThePiachu@gmail.com>
Date:   Fri Dec 9 06:17:42 2022 -0800

    Replaced power use magic numbers with proper defines (#1801)

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

    ## About The Pull Request

    While looking at #1692 I noticed we are using magic numbers for
    `update_use_power`, so I changed them to nice defines so we don't have
    some wrong calls like that issue was fixing.

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

    ## Why It's Good For The Game

    Less magic numbers makes code more understandable.

    <!-- 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. -->

    ## Changelog

    <!-- 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. -->

    <!-- 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. 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:
    code: Replaced magic numbers around power usage with proper defines.
    /:cl:

    <!-- Both :cl:'s are required for the changelog to work! You can put
    your name to the right of the first :cl: if you want to overwrite your
    GitHub username as author ingame. -->

commit 2b81766e8e76191ebd18f7fb5919bc62d7e921de
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 11:01:59 2022 +0000

    Automatic changelog for PR #1880 [ci skip]

commit d4ee9a8b99a26eece43e0a9145173f61ab886398
Author: moltoretardo <53326609+moltoretardo@users.noreply.github.com>
Date:   Fri Dec 9 06:01:37 2022 -0500

    Revamp light floor tiles (#1880)

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

    # About the pull request
    When I initially fixed the light tiles, I found many unused sprite of
    different colors, decided to add them and change a bit how it works.
    Here are the different options:

    ![lights](https://user-images.githubusercontent.com/53326609/206292023-632e6188-f172-476b-9f64-b681ea3dc23a.png)

    - Multitools now change the color by clicking on the tile
    - Click on them to turn on/off
    - Tiles can now be broken by xenos and environment (tested with
    grenades)
    - To repair the floor tile, put a normal light bulb in it

    ![lightbulb](https://user-images.githubusercontent.com/53326609/206291879-e612c41c-ce2a-44c8-b77d-9b2fad3f940b.png)
    - Use a crowbar to remove the tile, if it's broken it'll simply destroy
    it
    - Build one by using wire on glass and then one metal (unchanged)
    - Their current light emission is the same as a flashlight, may be
    tweaked eventually to be less
    - Currently the broken sprite and the off sprite is the same, should get
    a broken sprite eventually...
    - Most of the old code wasn't used at all or didn't work, rewrote most
    of it

    <!-- 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 think it's a good addition in the toolbelts of Maintenance
    Technicians, they can decorate rooms and use them for signalization
    instead of drawing with crayons on the floor. There shouldn't be any
    balance issues since it's basically a costly flashlight, light bulbs
    are, as far as I know, only obtainable from the autolathe making it not
    very reliable. Auto-light replacer doesn't work purposely so it doesn't
    get weaponized, their purpose is solely to embellish rooms.

    It's hardly something that is used, and if it gets abused I'll simply
    nerf them down to ashes (can't have nice things)

    ![arroww](https://user-images.githubusercontent.com/53326609/206297351-4f082a63-2237-40de-b5b6-f8ea30167c74.png)

    <!-- 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. -->
    I've tested everything I could think of, everything should work.
    <details>
    <summary>Screenshots & Videos</summary>

    Nade breaking some of the tiles

    ![beforenade](https://user-images.githubusercontent.com/53326609/206292733-4dc3576a-d55b-43eb-a50b-3483238f88b1.png)

    ![nade
    destroy](https://user-images.githubusercontent.com/53326609/206292761-a31c5fde-702f-4aac-8c10-109d32ac5231.png)

    </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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl: Molto
    add: Readded the different light floor colors, use multitool to cycle
    through them
    fix: Fixed light tiles being indestructible unless using a crowbar
    code: Moved some part of the code that were only used by light tiles in
    floors.dm into light.dm directly
    refactor: Made one letter variables more lettered
    /:cl:

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

commit 5863a8e571cfdfc1a528e7eefd62d73e92bae1c5
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 10:24:14 2022 +0000

    Automatic changelog for PR #1779 [ci skip]

commit 81324b4e98eb122be20c28e6c9f83e0293b3e0c9
Author: ThePiachu <ThePiachu@gmail.com>
Date:   Fri Dec 9 02:23:54 2022 -0800

    Remove wrong max_w_class comment (#1779)

commit 9d3ee53590675349b184d5397f22a76ce797e00a
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 07:20:13 2022 +0000

    Automatic changelog for PR #1882 [ci skip]

commit f94a0874685b76815ff0ee053c2875adb9cc04db
Author: ThePiachu <ThePiachu@gmail.com>
Date:   Thu Dec 8 23:19:54 2022 -0800

    Fixed DME file order (#1882)

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

    # About the pull request

    DME is not ordered so whenever people use Dream Maker they get a change.
    So fixed it.

    <!-- 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

    Less busy work for devs when making PR is good.

    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    code: Fixed DME file references being in wrong order.
    /:cl:

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

commit 40204e99e7a0634d46ce77b750459cd370aa34cc
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 9 02:17:28 2022 +0000

    Automatic changelog for PR #1881 [ci skip]

commit 466a09988ea23d575729848f90dca7428a3187cd
Author: BeagleGaming1 <56142455+BeagleGaming1@users.noreply.github.com>
Date:   Thu Dec 8 21:17:05 2022 -0500

    Re adds the monocle to the COs safe (#1881)

    # About the pull request

    Gives the COs safe the monocle back
    (Why does it keep changing the dme)

    # Explain why it's good for the game

    Fortelian told me to do it

    # Changelog

    :cl:
    add: Puts a monocle back in the COs safe after "popular" demand (one
    person asked me to do it)
    /:cl:

commit 3c774f82ccdae949b3db406ffdca0eac018771d1
Author: Changelogs <action@github.com>
Date:   Fri Dec 9 01:35:16 2022 +0000

    Automatic changelog compile [ci skip]

commit 55e321f411adff25252a8dc2ed43bcfa862f5037
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Dec 8 20:27:55 2022 +0000

    Automatic changelog for PR #1874 [ci skip]

commit 81fe116a4dc0a8c21b9178e1f9360b4ef0efdd3a
Author: forest2001 <41653574+realforest2001@users.noreply.github.com>
Date:   Thu Dec 8 20:27:37 2022 +0000

    Infiltrator Synthetic opportunities (#1874)

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

    # About the pull request
    Changes infiltrator synths to show up as human in the follow list.
    Also allows for staff to use random-spawn crates to hide mobs.
    <!-- 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
    Consistency and stops dead people immediately finding out.
    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    add: Infiltrator Synths now display as human in Follow.
    add: Supply crates/barrels can now have mobs placed inside them by staff
    without the mob being deleted.
    /:cl:

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

commit 7633066811307ed76cdacf3f7763c18913573614
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Dec 8 20:27:27 2022 +0000

    Automatic changelog for PR #1879 [ci skip]

commit 68ba84419624366956ae5f9bde67f1e33287301a
Author: RenaRenaRe <118639975+RenaRenaRe@users.noreply.github.com>
Date:   Thu Dec 8 20:27:07 2022 +0000

    Cross-ciphering fix (#1879)

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

    # About the pull request
    Fixes the cross-ciphering property so it actually works instead of
    producing a never ending stream of runtime errors and a broken larva
    that never develops. I'm deliberately being vague about what it does
    because I think it's supposed to be a secret, the wiki tells you to
    "find out in game!", but you can just read the code since it isn't
    complicated.
    This is my first time using github so sorry if I've fucked something up.

    <!-- 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
    Things should function the way they're supposed to.
    Cross-ciphering is an extremely hard to get property that I'm not sure
    if anyone has ever actually made in game, now on the incredibly rare
    occasion that somebody actually makes it it should work correctly.
    <!-- 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
    mark your PRs to prevent unnecessary GBP loss. 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. Be sure to properly mark your PRs to prevent unnecessary
    GBP loss. Maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. -->

    :cl:
    fix: Cross-ciphering now works correctly
    /:cl:

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

commit 6fee3fd3a488af757f1c39ce5742e78e1520e09a
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Dec 8 20:26:36 2022 +0000

    Automatic changelog for PR #1878 [ci skip]

commit bb71dc08060990066a77e606de4c220778295883
Author: sleepynecrons <106241650+sleepynecrons@users.noreply.github.com>
Date:   Thu Dec 8 14:26:16 2022 -0600

    Oppressor sprite fix (#1878)

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

    # About the pull request

    Oppressor's "running" sprites weren't updated to the newer approved
    version. Walking and running should match now.

    # Explain why it's good for the game

    buh

    # 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 m…
github-merge-queue bot pushed a commit that referenced this pull request May 19, 2024
# About the pull request

This PR is a follow up to #5493 and ultimately is aimed at bringing us
back into parity with TG's version of the TGUI components again. For the
most part this PR is done via diffing TG's TGUI folder with ours. The
PRs listed below are what I found in blames and I double checked to see
what files if any they affected outside the TGUI folder.

**It is recommended to close VSC and run bin/clean.cmd and then
bin/build.cmd if you try out this branch**. You will be using the wrong
node & prettier version otherwise.

This at least partially ports these PRs (and likely many others - but
these I explicitly checked for how they affected other files):
- tgstation/tgstation#67935
- tgstation/tgstation#74638
- tgstation/tgstation#75029
- tgstation/tgstation#75431
- tgstation/tgstation#75463
- tgstation/tgstation#75534
- tgstation/tgstation#78879
- tgstation/tgstation#79322
- tgstation/tgstation#79895
- tgstation/tgstation#79898
- tgstation/tgstation#79974
- tgstation/tgstation#79991
- tgstation/tgstation#80044
- tgstation/tgstation#80057
- tgstation/tgstation#80189
- tgstation/tgstation#80304
- tgstation/tgstation#80430
- tgstation/tgstation#80453
- tgstation/tgstation#80454
- tgstation/tgstation#80920
- tgstation/tgstation#81354
- tgstation/tgstation#81381
- tgstation/tgstation#81495
- tgstation/tgstation#82334
- tgstation/tgstation#82377
- tgstation/tgstation#82385
- tgstation/tgstation#82417
- tgstation/tgstation#82420
- tgstation/tgstation#82527
- tgstation/tgstation#82571
- tgstation/tgstation#82792
- tgstation/tgstation#82854
- tgstation/tgstation#83098
- tgstation/tgstation#83096
- tgstation/tgstation#83218

Additionally it ports the new base components from: 
- tgstation/tgstation#71531
- tgstation/tgstation#71847
- tgstation/tgstation#74544
- tgstation/tgstation#74704 (just a fix to
above)
- tgstation/tgstation#80743
- tgstation/tgstation#82181 (just a fix to
above)
- tgstation/tgstation#82533
- tgstation/tgstation#83179 (just a fix to
above)

But these are missing documentation in the components readme, and we do
not have any interface that utilizes them yet. I wanted to explicitly
mention them separately so people can see what they can do.

Changes I still intend to do in this PR or investigate:
- [X] Fix Button.Confirm not properly handling clicks (Sort of stumped
on this atm)
- [X] Fix Relay Viewer buttons not always updating
- [X] Port TGSay 1.1 & TextArea changes
(tgstation/tgstation#75431)
- [X] Fix ByondUI in Drop pod panel
- [X] Check parity with TG again and port anything else that may have
been done during the creation of this PR
- [X] Find a way to prevent TGSay passthrough when hotkeying InputList
(and maybe others)? tgstation/tgstation#75463

Other notable changes not directly related to the above ports, but done
as I was fixing other problems:
- Strip panel is now larger with sprites at 64x64 instead of 48 because
as an Image component now they didn't alias the same.
- VOX panel's second tab now doesn't overlap the other buttons
- Wiring panel from #1623 is
now restored to use circular indicators again instead of the regression
to ColorBox in #2641
- Smart fridge interface is more in line with sorted inventories as far
as layout & tooltips
- Tacmap drawing interface is tweaked a little to deal with the changes
to dropdowns + clicking the tab is now disabled again until the tacmap
is ready (It needs minimap subsystem to fire to have icons when
flattening the map to be up to date)
- Fixes runtimes when quickly switching between tgsay categories
- Basically reverts #5651 in
favor of how TG ended up solving it via
tgstation/tgstation#81495
- Rolls back SWC to the version TG is currently using because of
#6196 (comment)
- Adds these commands from
tgstation/tgstation#81381 though I also have it
check jsx files that somereason TG doesn't do (needs to have been built
once to function - just run build.bat):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ed107278-93ee-4a2a-bbf2-b38e60417099)
- Chat: Adds a clear chat button clearing the current tab, mute button
to disable unread notifications for a tab, and updates the word
highlight regex for case sensitivity. I left out one of the Cyrillic
fixes since we shouldn't normally be handling Cyrillic anyways.
- Ship manipulator window can now replace any existing shuttle and
generally is polished up more than it was.
- Ports TGSay 1.1 though I discarded basically all the layout changes
they did.
- TGUI modals can now accept a ui_state in case you want an alert for
say a mob that might qdel while it is open.
- Finishes porting the reservation changes to shuttles.dm from
tgstation/tgstation#73261 that some reason were
absent from #5165
- Fixes F5 refreshing a window if default is prevented (e.g. when the
hotkey interface is waiting for a key press).
- All depreciated useLocalState is now removed. In almost all situations
I could useState, but a few things for MFD on CAS I needed to use
sharedState.

# Explain why it's good for the game
Prepares us for 516 (though still more changes will be necessary) and
finalizes the react port.

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

New list modal w/ duplicate key handling:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/b84e2db6-4e42-42d3-9b6d-4ae418f63c60)

Fixed VOX panel (sound files used to overlap type select):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/a3cde1ea-1816-4187-b7a4-040803e52d4e)

Updated shuttle manipulator window:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f978c2e2-9174-4635-9da7-6d2768f9fbff)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/607a0b91-5c64-4ca0-9256-d981c7073fb9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9b69cfb2-d4c2-4caf-846d-1d32f965cff0)

With replace any shuttle support: 

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ace7f58a-0991-4147-b13f-d2be2d012b21)

Erase current tab chat history:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9554ccfe-43da-4eee-b9ae-ad5cbec0523b)

Working case sensitivity highlights: 

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/182971ac-a0f2-42de-ad41-fa12991d760c)

Unread counter toggle per tab:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9de5b9ae-5cb2-4905-9592-556e9cf45ad2)

Larger strip panel:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/2229c7d4-935a-427e-9699-942acae1cfbf)

Tacmap panel polish (button positioning + dropdown text color when
highlighted):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/dcdf86fa-ba48-4d6f-bd42-bb8f3c1dd2bf)

Minor tweak to camera panel:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/930d64b8-1c36-4cc4-a24d-900d57c642b0)

Dropdowns will now display above if too little space below: 

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/3f4916d9-f020-489d-8494-277bde9cd741)

Kitchen sink works again (F12 w/ tgui-dev):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/aa3bd2c7-b320-4158-ae8f-cea4896f0a9c)

Layout mode works again (F11 w/ tgui-dev):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cb683cd2-e62b-4cdf-bb38-10e7e1902030)

New checkbox modal (with theme support):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ddc2da93-8987-44f2-be3f-1c2694d9489e)

![checkbox](https://github.com/cmss13-devs/cmss13/assets/76988376/6a6ddab9-25b6-47cb-b833-295b3b7bf6c2)

New handling for button sizes in alert modals (stacked list since
options wanted to use more horizontal space than limit):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/976a2a86-c1c6-421a-bb7a-80f20cc8f22d)

Polished smart fridge + restore wiring panel:
![smart
fridge](https://github.com/cmss13-devs/cmss13/assets/76988376/5524132f-c657-45d2-a7bc-aa09e00eb45b)

Fixed byondui in supply pod menu:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/18555668-34fe-4aa7-83aa-c1045bc54dd0)

TG Say:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cc66a143-22ba-4f90-865a-0c00e7dd8bfa)

Some unchanged panels (to just show working):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/adb8e0cb-64a4-45c4-9bac-1cecc6791667)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/d330bd51-995b-48f4-8f18-5aedd0e2adaf)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cb5edc05-949d-4564-9548-f255971bb0f8)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/0559cd17-8b5e-4585-8152-d8ac67a82f35)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/31bf0233-dd05-408c-b2c6-5ebee9b2381c)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/314fdec8-cc5c-4815-9ca9-b85422880a29)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/36bf1d5e-91fd-4cb0-8ce5-07ce4746902f)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/b63ee6aa-e80c-4928-9295-05d0e6314a16)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9b93df2e-a92d-4eeb-a5d4-07018c848c54)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/7b45ba04-30c7-405c-90c2-d52ca99d7890)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f3ae0b6d-ca77-4dd8-bfc7-8616018211d1)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9aa28a52-e86d-4bb0-be23-a9ee1b39d97c)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8108494f-9ce9-44dd-b94b-5306c9ef7e09)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/996b5dd3-89fa-4d19-bebc-de52774de23b)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/2bccace6-2a68-4f8f-ada6-c231aab836f9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8362f2ff-b38f-4682-a5c7-b26934e5972e)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8584e849-8d8d-4ff2-9ff8-932749ea6da5)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/813b21e2-9705-4b5f-8710-e452384c56d9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/dcd933c5-65bd-41a2-b8c9-e1dcba446231)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/1d81b490-168c-4f88-9d88-099f768cd665)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/1dbe39d6-08fc-4734-bdf6-afc71fef6e6f)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f7fc5461-5138-4427-ab1a-89627baefb4b)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/032cc12c-802e-4d0a-b8d3-568a48f7d469)

![dropship](https://github.com/cmss13-devs/cmss13/assets/76988376/c85a4ed3-b4a9-4c44-a34b-1990f7ac7d31)

</details>

# Changelog
:cl: Drathek, mullenpaul
ui: Finalizes the TGUI React port and brings us back into parity again
with TG's interface components
ui: Strip panel is now larger with sprites at 64x64 instead of 48
because as an Image component now they didn't alias the same.
ui: VOX panel's second tab now doesn't overlap the other buttons
ui: Wiring panel for some machines is now restored to use circular
indicators again
ui: Smart fridge interface is more in line with sorted inventories as
far as layout & tooltips
ui: Tacmap drawing interface is tweaked a little to deal with the
changes to dropdowns + clicking the tab is now disabled again until the
tacmap is ready (It needs minimap subsystem to fire to have icons when
flattening the map to be up to date)
ui: Reworks RestrictedInput number handling
ui: Adds the DMIcon, VirtualList (deferred lazy list), Dialogue,
MenuBar, StyleableSection, and Checkbox TGUI components (but nothing
uses them yet)
ui: Chat: Adds a clear chat button clearing the current tab, mute button
to disable unread notifications for a tab, and updates the word
highlight regex for case sensitivity
ui: Updates the ship manipulator window to allow replacing any Shuttle
ui: Fixes the supply pod panel not displaying its byondui map correctly
ui: Fixes the research terminal duplicating papers in display old mode.
ui: Updates the tgui_input_list to for new features like hotkey
selection, duplicate key handling, etc
fix: Fixes thinking runtimes when quickly switching between tgsay
categories
code: Shuttle subsystem now is less aggressive with reservations
(skipping deletion if below a threshold, delaying reservation if above a
threshold)
fix: Fixes F5 key still refreshing a TGUI window even if default was set
to be prevented (e.g. Hotkey interface)
/:cl:

---------

Co-authored-by: Jerm <jlsnow301@pm.me>
Doubleumc pushed a commit to Doubleumc/PvE-CMSS13 that referenced this pull request Jul 25, 2024
This PR is a follow up to #5493 and ultimately is aimed at bringing us
back into parity with TG's version of the TGUI components again. For the
most part this PR is done via diffing TG's TGUI folder with ours. The
PRs listed below are what I found in blames and I double checked to see
what files if any they affected outside the TGUI folder.

**It is recommended to close VSC and run bin/clean.cmd and then
bin/build.cmd if you try out this branch**. You will be using the wrong
node & prettier version otherwise.

This at least partially ports these PRs (and likely many others - but
these I explicitly checked for how they affected other files):
- tgstation/tgstation#67935
- tgstation/tgstation#74638
- tgstation/tgstation#75029
- tgstation/tgstation#75431
- tgstation/tgstation#75463
- tgstation/tgstation#75534
- tgstation/tgstation#78879
- tgstation/tgstation#79322
- tgstation/tgstation#79895
- tgstation/tgstation#79898
- tgstation/tgstation#79974
- tgstation/tgstation#79991
- tgstation/tgstation#80044
- tgstation/tgstation#80057
- tgstation/tgstation#80189
- tgstation/tgstation#80304
- tgstation/tgstation#80430
- tgstation/tgstation#80453
- tgstation/tgstation#80454
- tgstation/tgstation#80920
- tgstation/tgstation#81354
- tgstation/tgstation#81381
- tgstation/tgstation#81495
- tgstation/tgstation#82334
- tgstation/tgstation#82377
- tgstation/tgstation#82385
- tgstation/tgstation#82417
- tgstation/tgstation#82420
- tgstation/tgstation#82527
- tgstation/tgstation#82571
- tgstation/tgstation#82792
- tgstation/tgstation#82854
- tgstation/tgstation#83098
- tgstation/tgstation#83096
- tgstation/tgstation#83218

Additionally it ports the new base components from:
- tgstation/tgstation#71531
- tgstation/tgstation#71847
- tgstation/tgstation#74544
- tgstation/tgstation#74704 (just a fix to
above)
- tgstation/tgstation#80743
- tgstation/tgstation#82181 (just a fix to
above)
- tgstation/tgstation#82533
- tgstation/tgstation#83179 (just a fix to
above)

But these are missing documentation in the components readme, and we do
not have any interface that utilizes them yet. I wanted to explicitly
mention them separately so people can see what they can do.

Changes I still intend to do in this PR or investigate:
- [X] Fix Button.Confirm not properly handling clicks (Sort of stumped
on this atm)
- [X] Fix Relay Viewer buttons not always updating
- [X] Port TGSay 1.1 & TextArea changes
(tgstation/tgstation#75431)
- [X] Fix ByondUI in Drop pod panel
- [X] Check parity with TG again and port anything else that may have
been done during the creation of this PR
- [X] Find a way to prevent TGSay passthrough when hotkeying InputList
(and maybe others)? tgstation/tgstation#75463

Other notable changes not directly related to the above ports, but done
as I was fixing other problems:
- Strip panel is now larger with sprites at 64x64 instead of 48 because
as an Image component now they didn't alias the same.
- VOX panel's second tab now doesn't overlap the other buttons
- Wiring panel from cmss13-devs/cmss13#1623 is
now restored to use circular indicators again instead of the regression
to ColorBox in cmss13-devs/cmss13#2641
- Smart fridge interface is more in line with sorted inventories as far
as layout & tooltips
- Tacmap drawing interface is tweaked a little to deal with the changes
to dropdowns + clicking the tab is now disabled again until the tacmap
is ready (It needs minimap subsystem to fire to have icons when
flattening the map to be up to date)
- Fixes runtimes when quickly switching between tgsay categories
- Basically reverts cmss13-devs/cmss13#5651 in
favor of how TG ended up solving it via
tgstation/tgstation#81495
- Rolls back SWC to the version TG is currently using because of
cmss13-devs/cmss13#6196 (comment)
- Adds these commands from
tgstation/tgstation#81381 though I also have it
check jsx files that somereason TG doesn't do (needs to have been built
once to function - just run build.bat):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ed107278-93ee-4a2a-bbf2-b38e60417099)
- Chat: Adds a clear chat button clearing the current tab, mute button
to disable unread notifications for a tab, and updates the word
highlight regex for case sensitivity. I left out one of the Cyrillic
fixes since we shouldn't normally be handling Cyrillic anyways.
- Ship manipulator window can now replace any existing shuttle and
generally is polished up more than it was.
- Ports TGSay 1.1 though I discarded basically all the layout changes
they did.
- TGUI modals can now accept a ui_state in case you want an alert for
say a mob that might qdel while it is open.
- Finishes porting the reservation changes to shuttles.dm from
tgstation/tgstation#73261 that some reason were
absent from cmss13-devs/cmss13#5165
- Fixes F5 refreshing a window if default is prevented (e.g. when the
hotkey interface is waiting for a key press).
- All depreciated useLocalState is now removed. In almost all situations
I could useState, but a few things for MFD on CAS I needed to use
sharedState.

Prepares us for 516 (though still more changes will be necessary) and
finalizes the react port.

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

New list modal w/ duplicate key handling:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/b84e2db6-4e42-42d3-9b6d-4ae418f63c60)

Fixed VOX panel (sound files used to overlap type select):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/a3cde1ea-1816-4187-b7a4-040803e52d4e)

Updated shuttle manipulator window:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f978c2e2-9174-4635-9da7-6d2768f9fbff)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/607a0b91-5c64-4ca0-9256-d981c7073fb9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9b69cfb2-d4c2-4caf-846d-1d32f965cff0)

With replace any shuttle support:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ace7f58a-0991-4147-b13f-d2be2d012b21)

Erase current tab chat history:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9554ccfe-43da-4eee-b9ae-ad5cbec0523b)

Working case sensitivity highlights:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/182971ac-a0f2-42de-ad41-fa12991d760c)

Unread counter toggle per tab:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9de5b9ae-5cb2-4905-9592-556e9cf45ad2)

Larger strip panel:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/2229c7d4-935a-427e-9699-942acae1cfbf)

Tacmap panel polish (button positioning + dropdown text color when
highlighted):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/dcdf86fa-ba48-4d6f-bd42-bb8f3c1dd2bf)

Minor tweak to camera panel:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/930d64b8-1c36-4cc4-a24d-900d57c642b0)

Dropdowns will now display above if too little space below:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/3f4916d9-f020-489d-8494-277bde9cd741)

Kitchen sink works again (F12 w/ tgui-dev):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/aa3bd2c7-b320-4158-ae8f-cea4896f0a9c)

Layout mode works again (F11 w/ tgui-dev):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cb683cd2-e62b-4cdf-bb38-10e7e1902030)

New checkbox modal (with theme support):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ddc2da93-8987-44f2-be3f-1c2694d9489e)

![checkbox](https://github.com/cmss13-devs/cmss13/assets/76988376/6a6ddab9-25b6-47cb-b833-295b3b7bf6c2)

New handling for button sizes in alert modals (stacked list since
options wanted to use more horizontal space than limit):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/976a2a86-c1c6-421a-bb7a-80f20cc8f22d)

Polished smart fridge + restore wiring panel:
![smart
fridge](https://github.com/cmss13-devs/cmss13/assets/76988376/5524132f-c657-45d2-a7bc-aa09e00eb45b)

Fixed byondui in supply pod menu:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/18555668-34fe-4aa7-83aa-c1045bc54dd0)

TG Say:

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cc66a143-22ba-4f90-865a-0c00e7dd8bfa)

Some unchanged panels (to just show working):

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/adb8e0cb-64a4-45c4-9bac-1cecc6791667)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/d330bd51-995b-48f4-8f18-5aedd0e2adaf)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/cb5edc05-949d-4564-9548-f255971bb0f8)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/0559cd17-8b5e-4585-8152-d8ac67a82f35)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/31bf0233-dd05-408c-b2c6-5ebee9b2381c)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/314fdec8-cc5c-4815-9ca9-b85422880a29)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/36bf1d5e-91fd-4cb0-8ce5-07ce4746902f)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/b63ee6aa-e80c-4928-9295-05d0e6314a16)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9b93df2e-a92d-4eeb-a5d4-07018c848c54)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/7b45ba04-30c7-405c-90c2-d52ca99d7890)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f3ae0b6d-ca77-4dd8-bfc7-8616018211d1)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/9aa28a52-e86d-4bb0-be23-a9ee1b39d97c)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8108494f-9ce9-44dd-b94b-5306c9ef7e09)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/996b5dd3-89fa-4d19-bebc-de52774de23b)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/2bccace6-2a68-4f8f-ada6-c231aab836f9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8362f2ff-b38f-4682-a5c7-b26934e5972e)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/8584e849-8d8d-4ff2-9ff8-932749ea6da5)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/813b21e2-9705-4b5f-8710-e452384c56d9)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/dcd933c5-65bd-41a2-b8c9-e1dcba446231)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/1d81b490-168c-4f88-9d88-099f768cd665)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/1dbe39d6-08fc-4734-bdf6-afc71fef6e6f)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/f7fc5461-5138-4427-ab1a-89627baefb4b)

![image](https://github.com/cmss13-devs/cmss13/assets/76988376/032cc12c-802e-4d0a-b8d3-568a48f7d469)

![dropship](https://github.com/cmss13-devs/cmss13/assets/76988376/c85a4ed3-b4a9-4c44-a34b-1990f7ac7d31)

</details>

:cl: Drathek, mullenpaul
ui: Finalizes the TGUI React port and brings us back into parity again
with TG's interface components
ui: Strip panel is now larger with sprites at 64x64 instead of 48
because as an Image component now they didn't alias the same.
ui: VOX panel's second tab now doesn't overlap the other buttons
ui: Wiring panel for some machines is now restored to use circular
indicators again
ui: Smart fridge interface is more in line with sorted inventories as
far as layout & tooltips
ui: Tacmap drawing interface is tweaked a little to deal with the
changes to dropdowns + clicking the tab is now disabled again until the
tacmap is ready (It needs minimap subsystem to fire to have icons when
flattening the map to be up to date)
ui: Reworks RestrictedInput number handling
ui: Adds the DMIcon, VirtualList (deferred lazy list), Dialogue,
MenuBar, StyleableSection, and Checkbox TGUI components (but nothing
uses them yet)
ui: Chat: Adds a clear chat button clearing the current tab, mute button
to disable unread notifications for a tab, and updates the word
highlight regex for case sensitivity
ui: Updates the ship manipulator window to allow replacing any Shuttle
ui: Fixes the supply pod panel not displaying its byondui map correctly
ui: Fixes the research terminal duplicating papers in display old mode.
ui: Updates the tgui_input_list to for new features like hotkey
selection, duplicate key handling, etc
fix: Fixes thinking runtimes when quickly switching between tgsay
categories
code: Shuttle subsystem now is less aggressive with reservations
(skipping deletion if below a threshold, delaying reservation if above a
threshold)
fix: Fixes F5 key still refreshing a TGUI window even if default was set
to be prevented (e.g. Hotkey interface)
/:cl:

---------

Co-authored-by: Jerm <jlsnow301@pm.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Fix Fix one bug, make ten more Refactor Make the code harder to read UI deletes nanoui/html
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants