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

[IDB IGNORE] Heretic, ported from TG. #27873

Open
wants to merge 220 commits into
base: master
Choose a base branch
from

Conversation

Qwertytoforty
Copy link
Contributor

@Qwertytoforty Qwertytoforty commented Jan 7, 2025

What Does This PR Do

Ports heretic from TG station.
Please look at https://discord.com/channels/145533722026967040/1302766254750433413

For wiki, look at https://paradisestation.org/tgwiki2/index.php?title=Heretic

This is just me showing it is being worked on as I have to go through each bloody file to get it working.
This will be filled out SIGNIFICANTLY MORE once it is done.

Why It's Good For The Game

See above.

A new antagonist focused on evasion over holding ground, with antistun being tied towards paths vs roundstart like cling or vampire or traitor

Testing

This is going to need a lot of testing. It will be robust.

It needs to compile first though.


Declaration

  • I confirm that I either do not require pre-approval for this PR, or I have obtained such approval and have included a screenshot to demonstrate this below.

image

TODO:

  • Have it compile
  • Test the shit out of it
  • Make balance changes / tune for para
  • Deal with QWERTODO
  • Get it reviewed
  • Other needed changes per the proposal
  • TM it.
  • Balance further.

Changelog

// TODO: Credit most TG contributors to heretic here, such as Djiq, and fill this out.
🆑
add: Heretics. This should be filled out way more before TM
/:cl:

@DGamerL DGamerL added Large PR This PR will lag you if you try to review it Feature This PR is a new addition to the game Balance This PR will modify how effective something is or isnt labels Jan 7, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally Sprites This PR modifies the game sprites Sound This PR modifies the game sound labels Jan 7, 2025
@github-actions github-actions bot added the Merge Conflict This PR is merge conflicted label Jan 7, 2025
Copy link
Contributor

@Contrabang Contrabang left a comment

Choose a reason for hiding this comment

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

I claim first review

@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting approval This PR is waiting for approval internally and removed -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally labels Jan 8, 2025
@lewcc lewcc added Requires Space Law Update This PR requires an update to Space Law. Requires Wiki Update Useful for Wiki Contributers to search for things that need updating labels Jan 8, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Requested This PR has a pending testmerge request label Jan 9, 2025
@github-actions github-actions bot removed the Merge Conflict This PR is merge conflicted label Jan 12, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Active This PR is currently testmerged on production label Mar 2, 2025
timothymtorres pushed a commit to timothymtorres/Armok_SS13 that referenced this pull request Mar 2, 2025
## About The Pull Request

Reported by ParadiseSS13/Paradise#27873 ,
shoutout to them

We used to check this in the distant past but it was lost across the
reworks. Kinda important
@ParadiseSS13-Bot ParadiseSS13-Bot removed the Testmerge Active This PR is currently testmerged on production label Mar 2, 2025
@github-actions github-actions bot added the Merge Conflict This PR is merge conflicted label Mar 2, 2025
timothymtorres pushed a commit to Armok-Station/Armok_SS13 that referenced this pull request Mar 3, 2025
## About The Pull Request

Reported by ParadiseSS13/Paradise#27873 ,
shoutout to them

We used to check this in the distant past but it was lost across the
reworks. Kinda important
timothymtorres pushed a commit to Armok-Station/Armok_SS13 that referenced this pull request Mar 3, 2025
## About The Pull Request

Reported by ParadiseSS13/Paradise#27873 ,
shoutout to them

We used to check this in the distant past but it was lost across the
reworks. Kinda important
timothymtorres pushed a commit to Armok-Station/Armok_SS13 that referenced this pull request Mar 3, 2025
## About The Pull Request

Reported by ParadiseSS13/Paradise#27873 ,
shoutout to them

We used to check this in the distant past but it was lost across the
reworks. Kinda important
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Active This PR is currently testmerged on production label Mar 4, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added Testmerge Active This PR is currently testmerged on production and removed Testmerge Active This PR is currently testmerged on production labels Mar 4, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot removed the Testmerge Active This PR is currently testmerged on production label Mar 5, 2025
@github-actions github-actions bot added Merge Conflict This PR is merge conflicted and removed Merge Conflict This PR is merge conflicted labels Mar 5, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Active This PR is currently testmerged on production label Mar 5, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot removed the Testmerge Active This PR is currently testmerged on production label Mar 6, 2025
SpaceCatSS13 added a commit to SpaceCatSS13/Bubberstation that referenced this pull request Mar 6, 2025
commit ed9d2d66cf3cb34a109b4e7f20cd370a89d8cd32
Merge: 26bbab8da1a b3c1bb46a99
Author: Waterpig <[email protected]>
Date:   Wed Mar 5 15:02:32 2025 +0100

    Merge branch 'master' into upstream-25-02a

commit 26bbab8da1ace9abe2aa741a3fbd7a9c022ba3d0
Author: Majkl-J <[email protected]>
Date:   Mon Mar 3 00:20:26 2025 -0800

    use tg coffeemaker sprites

commit cbdd4fcf83d4423c8afd8741d051e1f421189f2f
Author: Waterpig <[email protected]>
Date:   Wed Mar 5 13:16:43 2025 +0100

    Preference updating

commit 7600837c59486de5773a31a2884c0ef0953f6af2
Author: Roxy <[email protected]>
Date:   Wed Mar 5 02:56:38 2025 -0500

    Upstream lint fixes (#3186)

    Fixes all the failing grep checks in #3157, doesn't fix the define
    sanity fails because im tired

    ![image](https://github.com/user-attachments/assets/b40fc081-a5c9-4f46-9cf5-18ed85199435)

commit 3c991829e6b15caeaebf3325a2b827e1e34dca28
Author: Artur Lang <[email protected]>
Date:   Tue Mar 4 23:53:10 2025 +0200

    typescript errors fixed

commit 6bf797e2928db566b7661e7b738d4ff91afaa97e
Author: Majkl-J <[email protected]>
Date:   Tue Mar 4 13:41:53 2025 -0800

    Fixes weird overlaying things

commit cf0912e0b03e0e3028717ff56006d1a68ed1920b
Author: Artur Lang <[email protected]>
Date:   Tue Mar 4 23:42:13 2025 +0200

    runs prettier on SurgeryInitiator

commit 918db29b2f69e61876043f552ae543b8e5196e9f
Author: Artur Lang <[email protected]>
Date:   Tue Mar 4 23:36:59 2025 +0200

    add commmenting to indicate and move display logic to the initial jsx instead of func call

commit ab05cdae25695f9e962c60b5dc9b2c3c78f14c97
Author: Artur Lang <[email protected]>
Date:   Tue Mar 4 23:19:12 2025 +0200

    fix build and tgui issues i found

commit 5e9564978695ddbb163a155fd875ebe94935b8bf
Author: Majkl-J <[email protected]>
Date:   Tue Mar 4 03:55:26 2025 -0800

    Map fixes - Updatepaths

    Map fixes - Dwarf moonfish

    Map fixes - Box station map checks

    Map Fixes - Special Skyrat Zombies

    Map Fixes - Biodome

    Map Fixes - VoidRaptor

    Map fixes - Moonstation, Kilostation, Spacehotel

    Map Fixes - Dauntless, Tarkon, Skyrat syndi base

commit 892dfe468fcbac0c6c5a9b2b1c628b39d3a2aa66
Author: Majkl-J <[email protected]>
Date:   Tue Mar 4 01:26:54 2025 -0800

    Upstream - Organ insert/remove fixes

    Temp fixes another race condition inside NIF code

commit 90a4473d3fb8bb389d6f26375554b431540aa927
Author: Majkl-J <[email protected]>
Date:   Mon Mar 3 00:15:01 2025 -0800

    Some borer, and ciberimp fixes

commit b3c1bb46a99fd2bd77916806ad58ae2a8c804445
Author: Bubberbot <[email protected]>
Date:   Wed Mar 5 01:54:41 2025 +0100

    Automatic changelog for PR #3185 [ci skip]

commit 25700886f41dfae30ff47d6dbab86fd31a18905a
Author: BurgerLUA <[email protected]>
Date:   Tue Mar 4 16:54:18 2025 -0800

    Reduces the weight of round-start malf ai from 10 to 2. (#3185)

    ## About The Pull Request

    Reduces the weight of round-start MALF from 10 to 2.

    ## Why It's Good For The Game

    I was told that MALF "rolls every round" so I went to investigate and
    discovered that roundstart malf has a weight of 10. For reference,
    heretic has a weight of 3. Traitors have a weight of 16. Changeling has
    a weight of 8. 10 is really common compared to the rest of things that
    can roll.

    MALF shouldn't be more common than Changeling or Heretic, especially
    considering that malf ai is an extremely destructive antag type.

    ## Proof Of Testing

    If it compiles, it werks.

    ## Changelog

    :cl: BurgerBB
    del: Reduces the weight of round-start malf ai from 10 to 2.
    /:cl:

commit 3ceb8659b126d0eeadfa3277f460007387d1add7
Author: Bubberbot <[email protected]>
Date:   Tue Mar 4 23:22:35 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 5bb57e657279515f89c841c95fb90f7989af3de7
Author: Bubberbot <[email protected]>
Date:   Tue Mar 4 09:05:10 2025 +0100

    Automatic changelog for PR #3175 [ci skip]

commit 35bfa9b6f0d96df31ad92e72fab49cf8bd9387fe
Author: Elizabeth <[email protected]>
Date:   Tue Mar 4 03:04:41 2025 -0500

    Fix cryopods dropping prosthetic bodyparts (#3175)

    ## About The Pull Request
    Uses `mob_occupant.get_equipped_items()` instead of
    `mob_occupant.contents`. This results in skipping
    Also, abstract items will not be stored, similar to how `DROPDEL` items
    aren't stored.

    ~~Currently untested, but it will at least solve the linked issue,
    assuming it doesn't introduce any new ones.~~
    I tested it, works fine.

    ## Why It's Good For The Game
    Fixes https://github.com/SPLURT-Station/S.P.L.U.R.T-tg/issues/158.

    ## Proof Of Testing

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

    ![image](https://github.com/user-attachments/assets/3a3eaf2c-f943-4da6-a885-20ae76a94d14)

    </details>

    ## Changelog

    :cl:
    fix: fixed cryopods dropping prosthetic bodyparts of despawned mobs
    /:cl:

commit 347870df30a753fb68da3b083da260d6b1b46eed
Author: Bubberbot <[email protected]>
Date:   Mon Mar 3 23:22:23 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 386d34082ed6c43483186adbabe7030b0ecfd64a
Author: Bubberbot <[email protected]>
Date:   Mon Mar 3 19:17:17 2025 +0100

    Automatic changelog for PR #3177 [ci skip]

commit 4aaa8c3acc0ca4d6c9ae13fbb8c8daa1e5bf25bd
Author: The Sharkening <[email protected]>
Date:   Mon Mar 3 10:16:49 2025 -0800

    Makes CI require a client to activate (#3177)

    ## About The Pull Request

    CI should only work while the mob has an active client

    ## Why It's Good For The Game

    Due to how basic AI works, it also flashes CI. This is stupid. Let's be
    less stupid.

    ## Proof Of Testing

    It works

    ## Changelog
    :cl:
    del: Clientless mobs should no longer flash CI.
    /:cl:

commit 54b28528113ade3ff942d985e4394b7eadf8e1e5
Author: lessthanthree <[email protected]>
Date:   Mon Mar 3 10:02:21 2025 -0800

    fix airlock unit test runtime

commit 2e6047ed53fedaebf64c130aa6262aff7b67e5cf
Author: Majkl-J <[email protected]>
Date:   Sun Mar 2 04:24:28 2025 -0800

    cortical borer organ and nifsoft cheap fixes

commit faaa0b1f624e6e578314c50776bd021c4398d638
Author: Waterpig <[email protected]>
Date:   Sat Mar 1 19:53:23 2025 +0100

    Missing aesthetics icons, thanks to Cepha

commit 8ae696155e224e5f86c4d9fe3237000e90235de8
Author: Waterpig <[email protected]>
Date:   Sat Mar 1 14:23:24 2025 +0100

    Fixes missed TG icons

commit 5b9cb06edafcc23416ed7f6850210bb860ad5023
Author: Waterpig <[email protected]>
Date:   Fri Feb 28 21:47:50 2025 +0100

    lost carpenter hammer icons

commit 1eb0f2b1f04d0e25d54d1d88c73dede44e154acd
Author: Waterpig <[email protected]>
Date:   Fri Feb 28 18:43:06 2025 +0100

    zombies removed from simple animal unit test

commit c776d691db5208fe693b1d809e9375ca58539a19
Author: Waterpig <[email protected]>
Date:   Fri Feb 28 17:54:08 2025 +0100

    missed mining icons + reordering extinguisher mount sprites

commit 9142a3568db38f2334aea21dfaa722a2c1ecef46
Author: Majkl-J <[email protected]>
Date:   Fri Feb 28 07:17:21 2025 -0800

    zombie repaths

commit 3b917fabf1463b93e114ffccc9be215452bbb0d8
Author: Majkl-J <[email protected]>
Date:   Fri Feb 28 07:08:45 2025 -0800

    status effect checks

commit ceac93c9dab47d9583ee1e1498cdf3960f2fcd97
Author: Majkl-J <[email protected]>
Date:   Fri Feb 28 04:25:31 2025 -0800

    Fixes fish and monkey tail runtimes

commit afbe76034293f6e3b3849afd5ffb776dde531999
Author: Majkl-J <[email protected]>
Date:   Fri Feb 28 03:17:11 2025 -0800

    The funny liquids now use reagent colors

commit 510f496b15a02a7d70da131d57c219e38b3564d9
Author: Waterpig <[email protected]>
Date:   Fri Feb 28 12:16:26 2025 +0100

    missing brain_jar sprite added back

commit 2422a212affdea9816d8c2fa10e26ab028459e08
Author: Majkl-J <[email protected]>
Date:   Fri Feb 28 03:06:16 2025 -0800

    Stops breeding from runtiming, and also examining commandable pets

commit 3a8eed4eb23129ba19e914c02fce06c5ad359f1b
Author: Majkl-J <[email protected]>
Date:   Thu Feb 27 04:45:08 2025 -0800

    fixes a single missing indent in thesync

commit 0e48bb6486c03207a953c6a40ccfef7caa5ff09f
Merge: 6181add3086 0877b4b31d3
Author: Waterpig <[email protected]>
Date:   Thu Feb 27 13:39:30 2025 +0100

    Merge branch 'master' into upstream-25-02a

commit 6181add3086e3dcc48761f00f89934e8287ddf18
Author: Majkl-J <[email protected]>
Date:   Thu Feb 27 01:03:51 2025 -0800

    Fixes crusher runtime

commit dd52ac079c6e724e8bd6630054720965b4c439c3
Author: Majkl-J <[email protected]>
Date:   Thu Feb 27 00:16:35 2025 -0800

    Fixes missing fish icons

commit dff72efb1edc30ae92bcea0a3e6fa7552f86777e
Author: Waterpig <[email protected]>
Date:   Wed Feb 26 22:45:06 2025 +0100

    [NO-GBP] Stops the charging defib mount from runtiming when there's no defib (#89688)

    ## About The Pull Request

    Let this be a lesson to check your runtimes when testing your own
    bugfixes.

    I simply assumed that the charging defib mount only processes with a
    defib in it (This is how the process() was written before #89299
    anyhow). Seems this is not the case for some reason.
    ## Why It's Good For The Game
    1 less runtime

    I promise Ill come back to refactor this hellish process() timewaster.
    ## Changelog
    :cl:
    fix: The charging defib mount no longer runtimes when there's no defib
    /:cl:

commit 1289ccf9dee453cc1985f84d1c56d6db7e78f7a9
Author: Majkl-J <[email protected]>
Date:   Wed Feb 26 02:25:38 2025 -0800

    fixes byond href styles

commit 136c0d48692ac25239519184ee9b90d497d88e5b
Author: Majkl-J <[email protected]>
Date:   Wed Feb 26 02:16:32 2025 -0800

    [EXPERIMENTAL] expands some linter checks to modular folders

commit 29dbb3c46de8833d124d2c778e96608ce2433b12
Author: Majkl-J <[email protected]>
Date:   Wed Feb 26 01:55:27 2025 -0800

    more lint checks

commit 2068971161de205f1cd000202de30231f5f65ee1
Author: Majkl-J <[email protected]>
Date:   Wed Feb 26 01:24:12 2025 -0800

    Fixes lints

commit 8d8113cd9e20d8fcff6dbbb2ec6558d0bda0b2ef
Author: Majkl-J <[email protected]>
Date:   Wed Feb 26 00:19:25 2025 -0800

    Removes the skyrat crusher overrides for the sake of code stability and because nobody's maintaining it

commit c1e70a2a9e1249ba5e5808da03ce72911fd7f1f3
Merge: 07daef9517a 00c983e4b9c
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 14:09:47 2025 -0800

    Merge branch 'upstream-25-02a' of https://github.com/Bubberstation/Bubberstation into upstream-25-02a

commit 07daef9517a879f04281fe4b97b69d4f9a6d2338
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 14:09:45 2025 -0800

    finish up character prefs menu

commit 00c983e4b9c1e5fc7d24290b9bf587780ba03ed8
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 12:59:44 2025 -0800

    Fixes prefcode again

commit b8c4ffc640b44c59209197adfbeb7fffe1241981
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 12:01:15 2025 -0800

    loadout/occupations

commit 8fa6528b59242e8b7a52ad25cf92af54483433b6
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 11:34:05 2025 -0800

    preferences character page

commit fba9ad7c37b85e7a59da2e79b0b468b9182265e4
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 10:33:26 2025 -0800

    character prefs menu

commit bbaf3452e145b3ebaa4d4edd382989912f49ff89
Author: lessthanthree <[email protected]>
Date:   Tue Feb 25 10:18:05 2025 -0800

    fix time clock tgui

commit c7b07c463fef517b3cb6b1436fa3cfe887390df7
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 10:15:17 2025 -0800

    Survival pod returfing

commit 2264926453ab9d2667059dfbf28f4987a2f3480b
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 10:15:07 2025 -0800

    More organ fixes

commit 254cd32c9368dd4b409bc4d1b21be2fa684508b7
Merge: ca02c32f86f 22c656f76ea
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 06:56:39 2025 -0800

    Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-02a

commit ca02c32f86fd028c98d7eea70dbd68b4b4035aff
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 04:53:22 2025 -0800

    vending argument

commit f4858901d1bec5b93182535e77eb940c0f5bef0d
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 04:39:41 2025 -0800

    Karl fish now have the correct caught type id

commit 99e420b450b8e52a19de418147251be7883ce9ec
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 04:32:29 2025 -0800

    adds regenerate_icons to our on_species_gain

commit 42aeb658d5fad063b1d0ad45493bb24e102a6f1a
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 04:13:05 2025 -0800

    Moves the skyrat ambience sound global list override so it actually initializes

commit 0715397515206c0393056178d02c1b034716ec6f
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 04:12:05 2025 -0800

    Temporarily fumbles around with crusher overrides so we compile and can fix bigger issues first

commit 3e4cdbfa8ed64c17e94f3a314a8fdcfc021b1a30
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 03:37:44 2025 -0800

    generic var removals/renames

commit 0dba774d686351e77c59cec25488b63e29c64f53
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 03:37:25 2025 -0800

    cameranets globals

commit ab992d3b49bcd51f045736e972d1cb305f241cd7
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 03:13:22 2025 -0800

    Digi squishing, adds some code skyrat just deleted because they cant conflict resolve

commit 8b391f1abad2b90dcbb04b597fe52474e9b1c75f
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 03:07:11 2025 -0800

    Icon cached height

commit f377154ef78b86dab52d9ac3c9017a2f712d7975
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 02:59:16 2025 -0800

    gun maint kit

commit e9384bcd37132d8b6354d29a5e1a2f8eff448f0c
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 02:57:59 2025 -0800

    voidwalker skull repath

commit 575b72cee9ba12d48207ed27ab509ac91adaa720
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 02:56:38 2025 -0800

    embeds

commit b095723a30279ad182b14bde6c966c368c69a387
Author: Majkl-J <[email protected]>
Date:   Tue Feb 25 02:43:23 2025 -0800

    Fixes the type_proc_ref

commit d1ffe0b381f8133bbac8a4f5e5138b813dc89662
Author: Majkl-J <[email protected]>
Date:   Mon Feb 24 05:00:08 2025 -0800

    smuggling COMSIG_REAGENTS_HOLDER_UPDATED

commit de12b51a01c5eb3bd8631be87819896366f9a2f0
Author: Majkl-J <[email protected]>
Date:   Mon Feb 24 04:12:03 2025 -0800

    human icon update fixes

commit f5b97c95ae66db452a28d2382f2658803b133848
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 12:38:08 2025 -0800

    coffin sound

commit de52a6452d6379722eaf4e673bd5666aadf31aa5
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 12:35:22 2025 -0800

    cursed spring repath

commit 6189d8ea0502c934e7a0a7315be43958758ee9f3
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 12:32:33 2025 -0800

    vatbeast

commit bfe4c65b8c87f10ce0609f9d6925aaddb5edb421
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 12:13:11 2025 -0800

    fix BST RPED

commit 2275f1729f5956cc125044546e5bdc76cbdb4271
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 12:04:50 2025 -0800

    Update standard.dm

commit 8a29cb07bb9ff29d32121357c7a2ecc656254253
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 11:06:38 2025 -0800

    fix cyborg pulling

commit 6b69e9de3cabf920e01ba15116b4b9c423b73884
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 11:02:05 2025 -0800

    Update pill_press.dm

commit 842132b82fad129b54f6f18a576da4a485df3377
Merge: 8aef7dcb4ca cbcaa4a57f1
Author: Majkl-J <[email protected]>
Date:   Sun Feb 23 01:06:28 2025 -0800

    Merge branch 'upstream-25-02a' of https://github.com/Bubberstation/Bubberstation into upstream-25-02a

commit cbcaa4a57f1ac44666afd59277d977e96cc8ae78
Author: lessthanthree <[email protected]>
Date:   Sun Feb 23 00:58:22 2025 -0800

    remove reagent_state

commit fcab4f0ce4402e44d3cd706f0a080dcfbea0de77
Author: lessthanthree <[email protected]>
Date:   Sat Feb 22 19:05:58 2025 -0800

    Update game_kit.dm

commit e1456776559a906caad7819d2fa61531efcca918
Author: lessthanthree <[email protected]>
Date:   Sat Feb 22 19:03:10 2025 -0800

    gravity

commit 98cd4e28a407dd7708c40f91fef271b64b33ffdb
Author: lessthanthree <[email protected]>
Date:   Sat Feb 22 18:58:49 2025 -0800

    fix examine_block to boxed_message

commit 7ad09602b5e800de02c92eae9f479e880d7a3fa4
Author: nevimer <[email protected]>
Date:   Sat Feb 22 20:01:09 2025 -0500

    fixes and allows tgui to work

commit 7c1c45cae672a8ed016c85534a80e218665676dd
Author: nevimer <[email protected]>
Date:   Sat Feb 22 18:42:21 2025 -0500

    switch our stuff to tgui-core

commit 8aef7dcb4cab6ffa4c5ca9dcde6c7440c610ae7a
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 05:04:54 2025 -0800

    get_mob_height -> mob_height

commit 9b739ccd613edf17f055afae5dde439b4f089a12
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 05:02:29 2025 -0800

    medigun embeds

commit 7f23d4395a8e29c7c483e4051c15721f2d7dfb3b
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 04:44:32 2025 -0800

    additional_module -> additional_modules

commit fe82a59b601f62786b96c5db74c35d15f5d7805f
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 04:35:58 2025 -0800

    examine_block -> boxed_message

commit 7f6db757749b7ef4099ec9e3449d5af39e51cdc4
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 04:33:15 2025 -0800

    first_name refactor

commit ebffa1cd27e25c08b46c90d7fe3064afb303974b
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 04:25:33 2025 -0800

    UPSTREAM - changes custom_price on vending products to price

commit 001c5fedd286e4e67ca7d0e3f0f0ac9a326b8913
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:58:09 2025 -0800

    small upstreamfix on shuttle_move

commit e45acd4381ca55effa484abc1a434fa81757ad51
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:51:22 2025 -0800

    top_paper

commit 831afcfecc43539d1b579a7f0f4c537cf75f3567
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:46:23 2025 -0800

    embed_data -> embedding

commit 81663ec475de49225e28e242048af228608501e0
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:35:03 2025 -0800

    reagents_holder_updated

commit f8afcf8532ca19fa45a72d2f10994770e1dd95b9
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:29:33 2025 -0800

    belt_icon_state -> inside_belt_icon_state

commit 9cb48d166cd8ae841908744603d0f6ce2f929465
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:29:04 2025 -0800

    UPSTREAM -25-02 - Accidental double eye wounds

commit f17144e7979d70aa684dc327006e8af2d3549477
Author: Majkl-J <[email protected]>
Date:   Mon Feb 3 07:37:39 2025 -0800

    Fixes huds, a single loadout button, some modsuit overlay stuff

commit ae98dfcb28504db859dac13d75eefc5dccdc1d21
Author: Majkl-J <[email protected]>
Date:   Mon Feb 3 04:02:28 2025 -0800

    fixes the new lung stuff

commit 0ed454f631e1c37e24e2c0ce3037ee8904b4e445
Author: Majkl-J <[email protected]>
Date:   Mon Feb 3 04:02:18 2025 -0800

    Fixes the tgui

commit dc38e1a4bc9789619ab5cb94bc2864e73fba1fe1
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 09:20:33 2025 -0800

    finish_activation -> control_activation

commit 2229358d3c9198dbff0275a3436064aa8a501710
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 09:14:12 2025 -0800

    fish updates, fixes ancient issue with biodome having two fish sources

commit 833185f93224d0a10ac204329a1c2d991d0626a2
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 09:12:35 2025 -0800

    Repairbots, fish feed repaths

commit 6411901503f58b1546aaa0579db2ef167c077e47
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 09:07:01 2025 -0800

    Scanner edit miss, ears, leash, vampires

commit 4d3ad0f618487a460364f0c0cc1eec1307ee90db
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:55:40 2025 -0800

    Extra sound things

commit 2086bc41659d1a8c1c20496bf5fcfed6ea95f465
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:46:44 2025 -0800

    sound things

commit 42b4684d0d08108b391b0cf10350e308fd9ef492
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:37:54 2025 -0800

    Projectile dampener rework pt 1

commit 02410171653ef9a29eb9ad2a57930ed5a7e81698
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:23:16 2025 -0800

    whitelisted_turfs is gone

commit da71f5a6c1eb4b27e3156428e12427e9c6a90443
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:14:35 2025 -0800

    Fox ears

commit 69eeee4e980e67116dff12fe5179987a31f6288c
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:15:55 2025 -0800

    item_path into purchase_path

commit 389c1fb08b3fbb547acbda2ae9ed87b1f0d4b33b
Author: Majkl-J <[email protected]>
Date:   Fri Jan 31 08:14:51 2025 -0800

    Hot springs are now on TG

commit 8eb0832fe9700caa84480e885921941b99762c0b
Author: Majkl-J <[email protected]>
Date:   Wed Jan 29 11:12:48 2025 -0800

    Somehow down to 48 compiletime errors

commit ba5a9a3c5c231fab37fb595776db9c1c85082c56
Author: Majkl-J <[email protected]>
Date:   Wed Jan 29 11:04:14 2025 -0800

    I'm dumb

commit 2e25ad3082c0b64efd983867459cb8ece2156c41
Author: Majkl-J <[email protected]>
Date:   Wed Jan 29 11:03:02 2025 -0800

    ai eye repath

commit 3be0f55e62d6be668319ff023927a11c4f783226
Author: Majkl-J <[email protected]>
Date:   Wed Jan 29 11:00:08 2025 -0800

    Small fixes

commit 38d25a6e3612cc7a0c2530710dc64dedfc61bddf
Author: Majkl-J <[email protected]>
Date:   Wed Jan 29 10:59:59 2025 -0800

    More organ things

commit 6ffc602747b875da1ae7d5aea81729de6db79509
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 10:15:28 2025 -0800

    More status effect updates

commit 06fafcc5f19eec71462773aad25f66c734e3df21
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 10:06:50 2025 -0800

    Infinite is gone

commit f0695dfb8804c455efe113932c220b1d17327a5d
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 09:59:15 2025 -0800

    Modsuit procs, limb coloring

commit 39343ba0711b080fbceb8dadfb5124909c15f803
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 09:37:46 2025 -0800

    quick and dirty projectile changes

commit fda12d30ba4f0b063b34627e089f789e5b4d2a0c
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 09:33:49 2025 -0800

    fixes small issues with some vars

commit 835de86ec31263dfbc31f3d4a16b637a9b9aaf76
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:07:04 2025 -0800

    makes surgtray not scream

commit 225199e26b44af7ac1d80ac11afbd3fd5f21f396
Author: Majkl-J <[email protected]>
Date:   Sun Jan 26 09:28:59 2025 -0800

    Moves all the organcode down to obj/item/organ

commit 05012a4b3d4dc01b4e0e6ba99a697acd6d055dab
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:00:40 2025 -0800

    Labcoat allowed

commit b6b8306fdab36094aa00eccfc08b2b9fbe38b00d
Merge: 719fa8a30e9 5414cc325c4
Author: Majkl-J <[email protected]>
Date:   Thu Feb 20 00:00:19 2025 -0800

    Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a

commit 5414cc325c470dab86bf3c418f2d80ebc4de5197
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sun Feb 9 15:52:20 2025 +0000

    Automatic changelog for PR #89376 [ci skip]

commit 6c63b37b975abca478abb6a451768ae8e5a19c38
Author: necromanceranne <[email protected]>
Date:   Mon Feb 10 02:37:51 2025 +1100

    [NO GBP] Fixes a input stall in the traitor guncase (#89376)

    ## About The Pull Request

    What it says on the tin

    ## Why It's Good For The Game

    When I read the new standards documentation and my mistake is the
    example being used

    ![image](https://github.com/user-attachments/assets/d07ee775-5fb6-4639-b180-4f11a6fdc78c)

    ## Changelog
    :cl:
    fix: The traitor guncase properly checks for condition changes before
    letting a player activate the time bomb.
    /:cl:

    ---------

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

commit 88f9d9ca493e53dfa48a9d72119340a8de517d50
Author: Jordan Dominion <[email protected]>
Date:   Sun Feb 9 08:31:02 2025 -0500

    Separate the server linking behavior from the displayed TGS address (#89421)

    DDoS prevention stuff

commit a2655fdcfa9f74b89344a088a3e39c6920dc20d2
Author: Jordan Dominion <[email protected]>
Date:   Sun Feb 9 04:36:19 2025 -0500

    Fire off a synchronous TGS event before rebooting (#89394)

    This is to support configuration syncing in the new environment

commit e17155899e4fbd2745af55d8ab75acd38d65c17b
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sun Feb 9 00:32:22 2025 +0000

    Automatic changelog compile [ci skip]

commit b93ac934f0e8a97ac4e94d8a6ba4a99320840f91
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 23:55:43 2025 +0000

    Automatic changelog for PR #89257 [ci skip]

commit 1bcd44f8ccf7392df8656c33f75c1433aee6cf67
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 23:55:21 2025 +0000

    Automatic changelog for PR #89315 [ci skip]

commit f307c48b779681d2fc18758bd3683bf373781f64
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 23:55:11 2025 +0000

    Automatic changelog for PR #89334 [ci skip]

commit e9b93769d396a71fd9c57393cb20a3b38cfc7972
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 23:55:05 2025 +0000

    Automatic changelog for PR #89366 [ci skip]

commit a2afa509aa544928bb28016de48e2b3bc88233e1
Author: MrMelbert <[email protected]>
Date:   Sat Feb 8 17:35:11 2025 -0600

    Adds two fantasy affixes (#89257)

    ## About The Pull Request

    - Adds a fantasy affix that makes your attacks with the item cause a
    chain lightning, which shocks people. The damage, distance, and limit
    are all based on quality.
    - Adds a fantasy affix that makes your attacks with the item slow the
    target's click cd, making them take longer between attacks. The penalty
    is based on quality.

    ## Why It's Good For The Game

    BiS for main tanks

    ## Changelog

    :cl: Melbert
    add: Adds two fantasy affixes
    /:cl:

commit f8f3f698ae83a34c3c37df89aa2ceaf17b06f7a8
Author: necromanceranne <[email protected]>
Date:   Sun Feb 9 10:26:00 2025 +1100

    Removes a variable in the riddable creature component that shouldn't be doing what it was doing. (#89315)

    ## About The Pull Request

    This isn't how that works.

    ## Why It's Good For The Game

    They trained me wrong. As a joke.

    🐱
    🧠

    ## Changelog
    :cl:
    code: Removes a variable in the riddable creature component that
    shouldn't be doing what it is doing.
    /:cl:

commit 62a658b94248acd8353db6652878fbd57a78c5b7
Author: Likteer <[email protected]>
Date:   Sun Feb 9 00:25:03 2025 +0100

    Adds the resin mister module to the (single?) roundstart atmos MODsuit (#89334)

    ![obraz](https://github.com/user-attachments/assets/21c80f72-21bc-4375-b030-10aa166ca7c0)

    ![obraz](https://github.com/user-attachments/assets/d7495ea2-80c7-4804-98d6-91fdd436483b)

    ![obraz](https://github.com/user-attachments/assets/94e77fb7-a240-4223-aaa6-d57d2ba63ed0)

    _They don't know I don't have enough GBP to feed my kids & make it
    through winter..._ 😔
    Can I pass this off as QoL?
    ## About The Pull Request
    So you see, the suit locker DOES contain a resin mister... the backpack
    one... the one that's in every other locker... and goes in the same slot
    as the MODsuit...

    ![obraz](https://github.com/user-attachments/assets/983adce0-5cda-4dee-b537-15d3ca312ff3)
    It's like a spit in the face, isn't it?
    ## Why It's Good For The Game
    I feel it's exasperating how neglected this was.
    Sure, the original resin mister isn't that commonly used because it
    takes up the backslot.
    Neither is the MODsuit, because it has little to offer and slows you
    down.

    But first someone kept that resin backpack in the same suit storage
    instead of giving it the module...
    And then a quick carry module was added instead & it's seemingly the
    only thing that differentiates it from the engineering MODsuit!
    Why?
    ## Changelog
    :cl:
    qol: Added the resin mister module to the roundstart atmos MODsuit.
    /:cl:

    ---------

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

commit d09acf9d4ca1d17adab1688b3007275e83072a53
Author: Tim <[email protected]>
Date:   Sat Feb 8 17:20:40 2025 -0600

    Add logging to screenshot CI test failure (#89366)

    ## About The Pull Request
    This adds an error log message whenever a CI screenshot test is failed
    due to it not pre-existing. It took me forever to figure out what the
    problem was while I was scanning through CI test failures and had to
    look through error logs of other downstreams repos.

    ## Why It's Good For The Game
    N/A

    ## Changelog
    :cl:
    code: Add error message logs to screenshot CI test failure when
    screenshots do not exist.
    /:cl:

commit 0d3c813c679ed504673ae17f36afc79b1586f2bf
Author: MichiRecRoom <[email protected]>
Date:   Sat Feb 8 18:19:53 2025 -0500

    [NO GBP] Fix-up a line I missed during refactoring in my `icon_exists` optimization PR (#89374)

    ## About The Pull Request
    While porting https://github.com/tgstation/tgstation/pull/89357 over to
    monkestation, I found that I missed refactoring a couple lines in
    `code\modules\asset_cache\assets\vending.dm`. This PR fixes that.

    The changed code is all behind `if
    (PERFORM_ALL_TESTS(focus_only/invalid_vending_machine_icon_states))`.
    This means the changed code will only be executed if unit tests are
    enabled *and* `invalid_vending_machine_icon_states` is a test that will
    be run.

    Despite that, I feel this code may be marginally faster, as the use of
    `icon_states()` is now behind `!icon_exists()`.

    ## Why It's Good For The Game
    Gotta go ever so slightly faster.

commit 9dd0220470a1f5324ecde31dd30043a8382585ec
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 20:14:25 2025 +0000

    Automatic changelog for PR #89326 [ci skip]

commit 24b0a89d4c18ee0dffeace3a0b00582ca3f0322d
Author: grungussuss <[email protected]>
Date:   Sat Feb 8 22:59:16 2025 +0300

    Makes me soundtainer (#89405)

    ## About The Pull Request
    adds me to the sound folder codeowners
    ## Why It's Good For The Game
    I've done a lot of changes to the sound folder and I'd like to be
    notified when people open a pr changing sound stuff, so I can review or
    give tips.
    In fact, 15% of all merged prs with the sound label in the codebase were
    made by me.

    ![image](https://github.com/user-attachments/assets/f3ac8b71-6052-4377-ae35-e2de809a9daa)

    ![image](https://github.com/user-attachments/assets/0ddcf525-d185-4c20-9e92-cfd7fdd1d70b)

commit c2622d0cbf1b17daa5e2a2109119f14ae3c4888c
Author: SmArtKar <[email protected]>
Date:   Sat Feb 8 20:37:57 2025 +0100

    Hydrogen Peroxide and Eldritch Essence rust turfs (#89326)

    ## About The Pull Request

    Hydrogen Peroxide can rust plating and normal (non-reinforced) walls
    when 1.5+ units are splashed. Eldritch Essence can heretically rust all
    turfs when 1.5+ units are splashed, and rust plating regardless of
    amount. (Same rust as the one that's created by aggressive spread). You
    cannot rust already rusted turfs with the latter since that would break
    down all walls in the area. 1.667 is the amount that sprayers spread per
    turf, so you can effectively rust areas with those (but not with
    high-range smoke machines)

    Also some spellchecks, yeah.

    ## Why It's Good For The Game

    I think its a neat interaction which makes sense that could allow for
    some neat gimmicks (as there's no way to rust turfs as of now to my
    knowledge)

commit 51f63af2f972be7f14906e0aa1f2190b88bca591
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 06:04:07 2025 +0000

    Automatic changelog for PR #89345 [ci skip]

commit d757649fc82f2179d138f9cf3fefdc4c70522d73
Author: Roxy <[email protected]>
Date:   Sat Feb 8 00:02:36 2025 -0600

    Fix crystallizer pipe connectors missing (#89345)

    ## About The Pull Request

    Fixed a visual bug wherein the crystallizer wouldn't show the two pipe
    connectors it has when there was no pipe connected to them.

    | Before | After |
    --------|--------
    |
    ![image](https://github.com/user-attachments/assets/b34ac8b2-88e8-4431-98e0-8d7b916a5914)
    |
    ![image](https://github.com/user-attachments/assets/ce6f4017-1470-4545-b866-df480041fc80)
    |

    ## Why It's Good For The Game

    Bug fix is nice

    ## Changelog

    :cl:
    fix: Fixed the crystallizer missing pipe connectors
    /:cl:

commit 648bb03b536421251aebd12315a51d9962d100ae
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 04:19:20 2025 +0000

    Automatic changelog for PR #89295 [ci skip]

commit af66da3690c4907bf581b511b8d0f9dbe72fe25e
Author: grungussuss <[email protected]>
Date:   Sat Feb 8 07:19:01 2025 +0300

    Bandage sounds (#89295)

    ## About The Pull Request
    a `heal_begin_sound` and `heal_end_sound` has been added to medical
    healing items, they will play when a heal is begun and once it is
    successfully complete, so far sounds only for gauze.

    github is having issues at the time of this post so you'll have to do
    with a discord link for preview for now:
    https://discord.com/channels/326822144233439242/326831214667235328/1334538845227585648
    ## Changelog
    :cl: grungussuss
    sound: gauze now makes sounds when applied
    /:cl:

commit e6672540d20efc865158296910484afec2c25b6c
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 00:58:36 2025 +0000

    Automatic changelog for PR #89309 [ci skip]

commit 7471e98969613f43510ac0eee2aa8d2d2e2fd15d
Author: SimplyLogan <[email protected]>
Date:   Sat Feb 8 00:58:16 2025 +0000

    Pyro Slime Objective Test (#89309)

    ## About The Pull Request

    Pyro Slime is a fairly common role on TG station but many new players
    may be unfamiliar to vent crawl or what they need to do, i.e feeding
    energy, splitting, this gives a little explainer text to it to make it
    easier.
    ## Why It's Good For The Game

    Regular players will know how to play slime well, this gives new players
    more of a possible advantage as the role often comes up most rounds as a
    ghost role.
    ## Changelog
    :cl:
    qol: Pyro Slime Objective Text Edit
    /:cl:

commit 5b60c3e7b0907c47c1a825c008a9343bbebb64aa
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Sat Feb 8 00:25:09 2025 +0000

    Automatic changelog compile [ci skip]

commit 6c3803ca0ffaec395756f0142dc224a0c38db5a2
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 23:07:08 2025 +0000

    Automatic changelog for PR #89378 [ci skip]

commit 9286cbe79d4d082440be6c1e0a8a83e77368a9bd
Author: necromanceranne <[email protected]>
Date:   Sat Feb 8 10:06:47 2025 +1100

    Hunter Boxing maintenance; direct heals rather than reagents, no speed up combos throwing you off your game, rounding issues (#89378)

    ## About The Pull Request

    Rather than injecting you with a healing chem, hunter boxing crits
    instead directly heals you for a third of applied damage. This heals
    brute, burn and stamina damage. (worth noting this only works against
    non-humanoids)

    A successful combo and block no longer speed up your next attack, which
    actually counterproductively caused most people to whiff their combos.

    Ensures we round to the nearest 1 on experience gain.

    ## Why It's Good For The Game

    In practice, the martial art wasn't performing correctly due to some bad
    decisions on my part, and also needed some more maintenance. It's not a
    good thing that the more you get better at the martial art the more it
    is likely to kill you on accident. This resolve that by pulling out the
    problem parts.

    ## Changelog
    :cl:
    balance: Hunter boxing now directly heals you instead of injecting you
    with healing chems on a successful crit.
    balance: Your combos no longer cause you to screw up your next combo by
    changing your attack speed for exactly one punch.
    code: Fixes up a bit of odd rounding that occurs in the experience gain
    totals and uses division instead of multipliers where it makes sense.
    /:cl:

commit 974cc883aa3f55e28638c9737bbd7d44d3614ef9
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 22:16:54 2025 +0000

    Automatic changelog for PR #89380 [ci skip]

commit 90970eb42da7d29ed28f0ed604807a856b25e3f6
Author: Holoo <[email protected]>
Date:   Sat Feb 8 00:16:34 2025 +0200

    Fixes camera consoles crushing client on 516 (#89380)

    ## About The Pull Request
    Closes: https://github.com/tgstation/tgstation/issues/89330
    Replaced old hacky workaround
    https://github.com/tgstation/tgstation/pull/80818 with brand new hacky
    workaround.
    ## Why It's Good For The Game
    It is
    ## Changelog
    :cl:
    fix: fixed camera consoles, spyglasses etc. client crush on 516
    /:cl:

    ---------

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

commit 3219c3f3b2fbfa1acbb414fe1e9c7093706369f3
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 22:08:33 2025 +0000

    Automatic changelog for PR #89381 [ci skip]

commit 822207f58522137da577e4a9b889fb8f2c50e53f
Author: Bloop <[email protected]>
Date:   Fri Feb 7 17:07:31 2025 -0500

    Makes parasitic eggs show up on advanced medical scanners (#89381)

    ## About The Pull Request

    For some reason they didn't before. This will make xeno embryos,
    headslugs, etc show up as a 'Harmful Foreign Body' when using an
    advanced medical scanner.

    ## Why It's Good For The Game

    I could have sworn these showed at some point.

    ## Changelog

    :cl:
    qol: alien eggs (xeno embryos, headslugs, etc) will now show up on the
    advanced medical scanner
    /:cl:

commit ba7f720eaaeaae46b8fb070a4abd60eb40aa1b01
Author: MichiRecRoom <[email protected]>
Date:   Fri Feb 7 14:54:26 2025 -0500

    CI now uses `actions/setup-node` to setup Node and restore the Yarn cache (#89363)

    ## About The Pull Request
    This PR changes CI to use `actions/setup-node` to setup Node, instead of
    using `tools/ci/install_node.sh`. The version given to this action is
    the same as specified in `dependencies.sh`.

    This fixes the issue of CI not using the node version provided in
    `dependencies.sh`. Previously, it was using the system-wide Node, which
    at the time of this PR is `v20.18.2`.

    This change is NOT applied across all jobs, but is applied at minimum to
    any jobs where the game is compiled. For example, any integration test
    jobs now use `actions/setup-node` - but the "Remove guide comments" job
    is untouched.

    This PR has the additional following effects:
    * The node install is no longer cached - it is instead downloaded from
    <https://github.com/actions/node-versions> (or
    <https://nodejs.org/dist/> if that fails). Being that the CI runner
    needs to contact Github anyways to obtain the cached Node install, this
    should make no difference.
    * We no longer have to perform Yarn caching ourselves -
    `actions/setup-node` does it for us! However, a side effect of this is
    that the Yarn cache uses a different cache key now. I would have set up
    the action to pull from the existing cache, but unfortunately that
    wasn't an option.

    Speaking of caching - the new action, `.github/actions/setup_node`, will
    NOT restore the Yarn cache unless the `restore-yarn-cache` input is
    `true`. This saves a couple seconds where we need node, but don't need
    the yarn cache (such as in integration tests).

commit 8a1c511dee45feb0a07ac2c71717631960dddd75
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 18:55:41 2025 +0000

    Automatic changelog for PR #89114 [ci skip]

commit 25cfb96dfd4d1095c3693c4722c8b9699c29ca0d
Author: Andrew <[email protected]>
Date:   Fri Feb 7 21:55:15 2025 +0300

    Tile context menu tweaks (Loot panel) (#89114)

    ## About The Pull Request

    https://github.com/user-attachments/assets/7e81b46b-1ed7-4ef1-b246-0188846711a5

    Changed the loot panel style to show items in a similar style to the
    regular shift context menu.

    Also made the window resize with contents.

    ## Why It's Good For The Game

    Better UX

    ## Changelog

    :cl:
    qol: Tile context menu tweaks (Loot panel)
    /:cl:

commit 0724d6aa3cb087a704c34b9b3a7db9ba41a291d6
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 18:54:40 2025 +0000

    Automatic changelog for PR #89360 [ci skip]

commit bf61287cdb5259792c9274f70db0a39fc04309b3
Author: Wallem <[email protected]>
Date:   Fri Feb 7 13:54:21 2025 -0500

    Makes integrated circuit nodes more colorful (#89360)

    ## About The Pull Request
    Makes it so nodes in an integrated circuit are colored depending on
    their category in the component menu.

    Before:

    ![1212121212121212](https://github.com/user-attachments/assets/aec4602f-c837-415f-8f42-0dcfb9e0e4aa)

    After:

    ![452345235345](https://github.com/user-attachments/assets/2a28f471-f0c1-4fda-9727-41db18894cb1)

    All categories (BCI has been changed to solid black since this for
    contrast purposes)

    ![e](https://private-user-images.githubusercontent.com/66052067/410190943-b66d26b0-29b5-4b3f-8e65-35e6a44b74d1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg3OTU0OTIsIm5iZiI6MTczODc5NTE5MiwicGF0aCI6Ii82NjA1MjA2Ny80MTAxOTA5NDMtYjY2ZDI2YjAtMjliNS00YjNmLThlNjUtMzVlNmE0NGI3NGQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA1VDIyMzk1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI5MzMxOWUyMzUxMmRkZTQwMThkOTNiNTk3OTEyOTExNWY4NjNkODE0YWJjZjE0MTQwYzM2YTZjYjY0ZGQ4ZDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uRa_SkIjdhzEbedzzLI1hDzOK-vpgC2ZNoQtvxo4ijE)

    If I was some sort of tgui magician I'd try to implement a way to add
    comment fields, but since I'm nowhere near that, I figured this was the
    least I could do.

    ## Why It's Good For The Game
    This makes it far easier to read integrated circuits and remember what
    they do. While there's still inherently some amount of confusion due to
    the nature of how node-based programming visually works, hopefully
    having it so nodes aren't all the same color helps a bit.
    ## Changelog
    :cl: Wallem
    qol: Integrated Circuit nodes are now colored depending on their type.
    /:cl:

commit 80d3d8a230bba7cb41fba11c7bd75831935c8698
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 14:36:52 2025 +0000

    Automatic changelog for PR #89371 [ci skip]

commit 686cff0061a719f039499c538a61ff8857ebf914
Author: Thunder12345 <[email protected]>
Date:   Fri Feb 7 14:36:31 2025 +0000

    Removed the mounted machine gun from the meta central domain (#89371)

    ## About The Pull Request

    See title, ding dong the machine gun is gone.

    ## Why It's Good For The Game

    It turned out to be a bad idea to put a mounted MG right next to a
    hostile player spawn in a low difficulty domain. Removing it should make
    the pirate spawn less capable of wiping the entire bitrunning squad
    before they clear the first pack of mobs.

    ## Changelog
    :cl:
    map: Removed a mounted machine gun from the Meta Central bitrunning
    domain, expect 85% less instant wipes.
    /:cl:

commit 2b89a0493932fab70fd0affbc0a9faf5e220740e
Author: MichiRecRoom <[email protected]>
Date:   Fri Feb 7 02:53:02 2025 -0500

    Unit Test failures now output a job summary, making it easier to see what the failures are. (#89284)

    This change was requested by Absolucy, of catgirl fame.

    ## About The Pull Request
    The CI is very useful for figuring out if you made any errors with your
    changes. Among other things, it runs unit tests on a variety of maps and
    BYOND versions, making sure everything still works as expected.

    Unfortunately, figuring out the specific errors you got in CI is a bit
    of a pain. You could scroll through the individual logs - but the logs
    are so long, it'd take forever.

    You could also use the annotations section, but that's gets filled with
    generic error messages:

    ![image](https://github.com/user-attachments/assets/0c01374d-65fd-4586-8bea-e71725e3ffe5)

    This PR helps on this matter, by adding [a job
    summary](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#adding-a-job-summary)
    whenever a failure is detected. Here's an example where I intentionally
    generated fails:

    ![image](https://github.com/user-attachments/assets/6f0fd948-125f-4685-9230-20fa48b2b357)

    (If you want to see how it looks on your own screen, have a look:
    <https://github.com/LikeLakers2/tgstation/actions/runs/13026959405>)

    As it is set up currently, each integration test job will generate its
    own summary; each summary contains one section per failed test; each
    section will contain the associated failure message(s) in a code block.

    This system is pretty basic currently (for example, breaking something
    across all maps will cause many job summaries to be generated), but it's
    a step up from what we had previously. Ideally, I'll come back to this
    later, and improve on the job summary output - for example, by merging
    identical errors across maps, and having the failures generated as a
    singular job summary.

    ## Why It's Good For The Game
    Having all the failures summarized in one place, without generic failure
    messages splattered in-between, can make it easier to diagnose issues
    detected by CI.

commit 911e19c67b9f9e33e0997f34f2e383053e91cd5c
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 03:19:36 2025 +0000

    Automatic changelog for PR #89373 [ci skip]

commit 8b8e5f5e0fce55e14da325961363832a91b66593
Author: Lucy <[email protected]>
Date:   Thu Feb 6 22:19:13 2025 -0500

    [NO GBP] fix my whoopsies from the void cloak fix pr (#89373)

    ## About The Pull Request

    thanks @MrMelbert for pointing out the mistake in my sleep deprived code
    - I accidentally registered `SIGNAL_ADDTRAIT(TRAIT_EXAMINE_SKIP),
    SIGNAL_REMOVETRAIT(TRAIT_EXAMINE_SKIP)` instead of
    `SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON),
    SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)`

    also, I accidentally left this in:

    ```
    item.add_traits(list(TRAIT_NO_STRIP, TRAIT_NO_WORN_ICON), REF(src)) // i'd use examine hide but its a flag and yeah
    ```

    after making `TRAIT_EXAMINE_SKIP` a trait, so I added that.

    ## Why It's Good For The Game

    this should work properly

    ## Changelog

    :cl:
    fix: Fixed some mistakes I made while fixing the void cloak.
    /:cl:

commit ef655e440a5c402dc7cfc09450f1ce4bb7b78a1d
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 02:30:34 2025 +0000

    Automatic changelog for PR #89205 [ci skip]

commit ad5a70eac632f37125dd000d146df69af889fdfe
Author: necromanceranne <[email protected]>
Date:   Fri Feb 7 13:30:13 2025 +1100

    Refactors gun repair and maintenance. Gun maintenance kits; available in cargo or the security equipment vendor (#89205)

    ## About The Pull Request

    Misfire chance, gun jamming (currently only on boltaction rifles) and
    integrity repairs are now handled by gun maintenance kits. Using a kit
    on a gun resets any misfire chance or jamming, and restores the weapon's
    integrity back to full.

    You can find gun maintenance kits in security equipment vendors, or
    order a crate of them from cargo.

    You can also make a maint version to retain the improvised nature of the
    previous cleaning functionaltiy.

    ## Why It's Good For The Game

    Firstly, clearing misfires was always a little confusing for most
    players, as it required a bolt of cloth to fix. That's really on me for
    making that as confusing as possible.

    We ended up with multiple firearm degradation mechanics, so
    consolidating their restoration makes it easier for future code
    maintenance.

    I disliked that the kits existed but were mostly only for the sake of an
    extremely niche interaction. And that interaction was, at best, kind of
    niche. Expanding out their use to gun maintenance generally is honestly
    better design.

    ## Changelog
    :cl:
    refactor: Gun maintenance is now consolidated into a single item, the
    gun maintenance kit, rather than multiple different item interactions.
    It is handled on the maintenance kit itself, and not in gun code.
    qol: You can order maintenance kits from cargo, and get some out of the
    security equipment vendor. Helpful if someone spilled acid onto your
    disabler. You can also make a makeshift one from maintenance trash.
    /:cl:

commit 2ee02682f7a840115ad2edaa05733b7bf5ba6160
Author: Lucy <[email protected]>
Date:   Thu Feb 6 20:44:10 2025 -0500

    Converts most other usages of `block()` to x/y/z format (#89290)

    ## About The Pull Request

    The sequel to https://github.com/tgstation/tgstation/pull/89234

    > someone should do the rest at some point

    guess what, I'm that someone :3

    ## Why It's Good For The Game

    Same reasoning as the previous PR:

    > less cluttered code is nice, and it should in theory be more optimized
    as we avoid the need to run min, max, and locate.

    ## Changelog

    No user-facing changes

commit 25b686fb2d2bf6e12c1a8d6a5cbd0a8c9307e048
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Fri Feb 7 00:26:13 2025 +0000

    Automatic changelog compile [ci skip]

commit d19a667717410fb41e96a5642326f302f477b7c4
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Thu Feb 6 18:58:12 2025 +0000

    Automatic changelog for PR #89348 [ci skip]

commit a9fa5df0cd17e8fcb1f153bcbe45f043bc432f36
Author: TiviPlus <[email protected]>
Date:   Thu Feb 6 19:57:48 2025 +0100

    Fixes DB admin ranks being 16 bits wide instead of 24 (#89348)

    ## About The Pull Request
    smallint is 2 bytes, increased it to mediumint which is 3 bytes
    Issue has not cropped up yet as theres only 15 flags right now, but
    there can be up to 24 in dm side soooo

    ```
    DEBUG-SQL: MySqlError { ERROR 1264 (22003): Out of range value for column 'flags' at row 1 } | Query used: INSERT INTO admin_ranks
     - (rank, flags, exclude_flags, can_edit_flags)
    ```

    my mysql is broken so I havent tested the update query but how bad can
    it be :clueless:
    ## Changelog
    :cl:
    server: An issue where more than 16 admin flags could not exist in the
    DB has been corrected
    /:cl:

    ---------

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

commit b9924c43b24d3607554dfcdce025f163a10a5774
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Thu Feb 6 05:10:29 2025 +0000

    Automatic changelog for PR #89319 [ci skip]

commit 6ae890675881e2276f733b9e24590797e858bfa5
Author: SmArtKar <[email protected]>
Date:   Thu Feb 6 06:10:09 2025 +0100

    Stops fishing achievement cheese (#89319)

    ## About The Pull Request

    By putting bought/dead/evolving and fishing it out, you could get a
    fishing achievement for any type of fish, which kinda ruined the
    challenge of fishing out rare sorts of fishes like Mastadons.

    ## Why It's Good For The Game

    Fishing cheevos should be indicative of what cool fishes you've caught,
    not of how much you've cheesed the game.

    ## Changelog
    :cl:
    balance: Removed an oversight which allowed you to farm fishing
    achievements
    /:cl:

    ---------

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

commit 67f6b0476bb8b49017cef8aeb29575e106de4106
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Thu Feb 6 04:38:58 2025 +0000

    Automatic changelog for PR #89313 [ci skip]

commit d7130a459894b3a28e2059454ffd1677d3db4f70
Author: Runi-c <[email protected]>
Date:   Wed Feb 5 21:37:22 2025 -0700

    Make slips eligible for shove stuns (#89313)

    ## About The Pull Request

    Adds slips to the list of existing shove stun methods originally set in
    https://github.com/tgstation/tgstation/pull/84640 (wall shoves,
    telebaton, mansus grasp), and also reifies this concept as the "dazed"
    status effect.

    This makes it so that being knocked down from a slip from any source
    (e.g. wet floor, clown stuff, lube, foam, oil, butterdog) gives the
    dazed visual effect and makes you eligible for being shove stunned. The
    status always lasts for 3 seconds even if e.g. slipping on lube knocks
    you down for 15, but this can be customized per slip.

    ## Why It's Good For The Game

    Further rewards environmental play and provides another feasible means
    of fighting back against better equipped opponents, both in line with
    the original PR. Also the visual cue fits well as an immediate signal
    that you're dazed and can't get up.

    ## Changelog
    :cl:
    balance: slips now make you eligible for being shove stunned
    /:cl:

    ---------

    Co-authored-by: Roryl-c <[email protected]>

commit 348413a8a66b30ba39a6713bca080030739cdfa1
Author: Lucy <[email protected]>
Date:   Wed Feb 5 20:27:55 2025 -0500

    Add a `DISABLE_DREAMLUAU` define, for disabling dreamluau at compile-time (#89359)

    ## About The Pull Request

    this adds a new define, `DISABLE_DREAMLUAU` (commented out by default),
    which does... exactly what it says on the tin. it fully disables any
    dreamluau-related code (the "Open Lua Editor" admin verb is left in,
    albeit just giving the user a warning saying Lua is disabled, just so
    there's no confusion about the verb itself being missing)

    when compiling with OpenDream outside of CI (so dreamluau code will
    still be linted), `DISABLE_DREAMLUAU` will be defined by default, tho.

    ## Why It's Good For The Game

    makes OpenDream testing easier

    ## Changelog

    no user-facing changes. or even code changes for most cases.

commit 0261ad2997087b8e7364829a665de27a66ac4e93
Author: MrMelbert <[email protected]>
Date:   Wed Feb 5 18:33:55 2025 -0600

    Small heretic patch (#89369)

    ## About The Pull Request

    Reported by https://github.com/ParadiseSS13/Paradise/pull/27873 ,
    shoutout to them

    We used to check this in the distant past but it was lost across the
    reworks. Kinda important

commit 96a0a39d97229a33415b2ececa05ca5a6811359a
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Thu Feb 6 00:28:10 2025 +0000

    Automatic changelog compile [ci skip]

commit 19ac93c72ac781103c9dff6885348882a8ed0816
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Wed Feb 5 23:53:38 2025 +0000

    Automatic changelog for PR #89356 [ci skip]

commit 402065c19442ca04e2bbfb0dfd7a0cad03a16c78
Author: SmArtKar <[email protected]>
Date:   Thu Feb 6 00:53:18 2025 +0100

    Fixed wrong area/wall in Icemoon Underground - Round 3 (#89356)

    ## About The Pull Request

    ![StrongDMM_u12oSaxu6Q](https://github.com/user-attachments/assets/72df4f86-f0fb-4254-99c8-85b23701ac91)

    (No funny screenshot of me malding in-game this time)

    ## Changelog
    :cl:
    fix: Fixed wrong area/wall in Icemoon Underground
    /:cl:

commit dd2197b293ff862d7bd976a2e7027b71f4ad85fe
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Wed Feb 5 23:00:38 2025 +0000

    Automatic changelog for PR #89342 [ci skip]

commit f16b3279ca928db1e0957275a78ee2264347a66a
Author: Gaxeer <[email protected]>
Date:   Thu Feb 6 00:53:22 2025 +0200

    Cleanup supply packs contents (#89342)

    ## About The Pull Request

    fix image display in `NT IRN` PDA app

    <details>

    <summary>
    Images present!
    </summary>

    ![image](https://github.com/user-attachments/assets/b9a5e733-9bc8-498e-bdaa-3531e0b142e5)
    </details>

    ## Why It's Good For The Game

    Bug fixes good

    ## Changelog

    :cl:
    fix: fix image display in `NT IRN` PDA app for preview and contents
    /:cl:

commit 45e8c53cbeb14bf22ae62bd769fef26848d7a302
Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Date:   Wed Feb 5 19:10:05 2025 +0000

    Automatic changelog for PR #89323 [ci skip]

commit e7efdddf48542fe5d208be4aad6e76cd0105cf35
Author: Lucy <[email protected]>
Date:   Wed Feb 5 14:06:11 2025 -0500

    Fix runtimes with `REMOVE_TRAITS_IN` (#89344)

    ## About The Pull Request

    ok so `REMOVE_TRAITS_IN` would sometimes run with like `type mismatch:
    null -= /list (/list)`

    credit to @RikuTheKiller for actually figuring this out and fixing it,
    here's their explaination on what caused the issue:
    > okay so
    > its due to linked traits
    > like knocked out which adds other traits
    > when knocked out is removed, it sends a removed signal
    > but sending that signal modifies the list mid for loop
    > so now when it tries to index it on the next iteration with a trait
    key thats already gone
    > it returns null, and tries to remove a list from a null
    > and it runtimes

    ## Why It's Good For The Game

    `REMOVE_TRAITS_IN` is a handy macro, and it'd be nice if it reliably
    worked

    ## Changelog

    no user-facing changes

commit 25eb08420a0247bfa7456a6ccd74c1e9e1304abf
Author: Y0SH1M4S73R <[email protected]>
Date:   Wed Feb 5 14:01:42 2025 -0500

    Temporary bodies return players to minds without bodies (#89323)

    ## About The Pull Request

    There are a couple of cases where ghost roles that give the temporary
    body component prevent you from returning to the round when they really
    shouldn't. The particular cases are:
    - You entered a temporary body while you had no body, but could be
    recovered via means such as podcloning
    - You enter a temporary body, and while in that body, your original body
    is permanently removed while your mind could be recovered via means such
    as podcloning
    - Basketball

    This PR addresses those cases by allowing the temporary body component
    to operate with a null `old_body`, and allowing the temporary body
    component to be given to ghosts whose minds don't have bodies.

    ## Why It's Good For The Game

    Erroneous DNRs caused by code oversights are probably very undesirable
    to the playerbase.

    ## Changelog

    :cl:
    fix: Joining a minigame or taking certain ghost roles, while you have a
    mind without a body, will no longer DNR you, just in case you can be
    resurrected by some means.
    fix: If your old body is permanently destroyed while you are playing a
    minigame or as certain ghost roles, you will still return to your
    character's original mind, just in case you can be resurrected by some
    means.
    fix: The basketball minigame now gives its players and referee temporary
    bodies.
    /:cl:

commit 584d6b2fc7fd0f6b2000a74c215a1c24ddc0ba97
Author: Roxy <[email protected]>
Date:   Wed Feb 5 13:00:42 2025 -0600

    Fix silicon state laws window for 516 (#89354)

    ## About The Pull Request

    Switch the state laws UI for silicons to use the browser datum cause
    it's just raw HTML on 516

    ## Why It's Good For The Game

    They gotta state those laws

    ## Changelog

commit 344d3b62664baac5ef48a9d7253aed8240bc7777
Author: MichiRecRoom <[email protected]>
Date:   Wed Feb 5 14:00:27 2025 -0500

    Optimizes `/proc/icon_exists()` (#89357)

    ## About The Pull Request
    This PR reimplements https://github.com/tgstation/tgstation/pull/71538
    atop `master`. Quoting the original PR:

    > Every `icon_exists()` call will cache the entire file. Past me didn't
    realise _why_ file opts were so expensive, but I do now. This is
    immeasurably slower on a single call, and _significantly_ faster on
    subsequent calls to the same file.

    I attempted to handle some of the review comments that were posted
    there, by splitting screaming functionality into its own proc.

    * `if(icon_state in icon_states(file))` and `if(!(icon_state in
    icon_states(file)))` were refactored to use `icon_exists(file,
    icon_state)`.
    * Where screaming was seemingly wanted (and where there wasn't a more
    descriptive error inside the `if` block), I refactored them to use
    `icon_exists_or_scream(file, icon_sta…
@github-actions github-actions bot removed the Merge Conflict This PR is merge conflicted label Mar 6, 2025
@github-actions github-actions bot added the Merge Conflict This PR is merge conflicted label Mar 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Status: Awaiting approval This PR is waiting for approval internally Balance This PR will modify how effective something is or isnt Configuration Change This PR changes the game configuration files. Please run via the host. Feature This PR is a new addition to the game Large PR This PR will lag you if you try to review it Map Edit This PR will modify a map Merge Conflict This PR is merge conflicted Requires Space Law Update This PR requires an update to Space Law. Requires Wiki Update Useful for Wiki Contributers to search for things that need updating Sound This PR modifies the game sound Sprites This PR modifies the game sprites Testmerge Requested This PR has a pending testmerge request TGUI This PR modifies TGUI, will conflict
Projects
None yet
Development

Successfully merging this pull request may close these issues.