mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-20 05:34:10 +01:00
60e3451960cfc1d40597dcafe7fc6165d6c012e3
498 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
74085977a6 |
Fixes 'note_path' var of 'airlock_note_placer' mapping helper (#92037)
## About The Pull Request This old mapping helper had a problem with loading notes supplied via its 'note_path' variable. ## Why It's Good For The Game The morgue memo note upon the morgue office door on Wawastation now appears. Here's me testing it on runtime with a different note...  ## Changelog 🆑 fix: fixed the 'note_path' var of the 'airlock_note_placer' mapping helper /🆑 |
||
|
|
5a5ae6539b | Adds a wall dent mapping helper (#91484) | ||
|
|
a5a4b83a25 |
Sets prettier to run on the repo (#91379)
Prettier (an auto formatter) is set to only run within the tgui folder currently. This removes that limitation, allowing it to automatically format all supported files in the repo (.js, .html, .yml [etc](https://prettier.io/docs/)) I made a few exceptions for bundled and generated files I'm of the opinion that code should look uniform and am lazy enough to want CTRL-S to format files without having to think beyond that |
||
|
|
16d2571e3f |
[MDB Ignore] Air alarms of surgical rooms (robotics, medical) start with scrubbers set to filter nitrous oxide (#90558)
## About The Pull Request - Primary Surgical Theaters - Secondary Surgical Theaters - Robotics Surgical Theaters Now all start the game with their scrubbers set to scrub nitrous oxide from the air, and expanded range active ## Why It's Good For The Game Using anesthetic is annoying because it griefs all of medbay. By having scrubbers start to filter nitrous, people should feel less worried about griefing all of medbay without needing to call over engineering first. An alternative to this could be adding a full ventilator machine to medical which they use to hook people up to anesthetic. Said ventilator would have an exhaust tank which collects breaths. ## Changelog 🆑 Melbert add: Air alarms of surgical rooms (Robotics, Medical) start with scrubbers set to filter Nitrous Oxide /🆑 |
||
|
|
a2cc2f7dc6 |
[MDB Ignore] Adds "Red Alert Access" to EVA Doors and First Aid Supplies on all maps (#89424)
## About The Pull Request Terminology: - Red Alert Access allows airlocks and windoors to become all access if the station has raised to Red Alert (or higher). This temporary all access is reverted after the station returns to Blue Alert (or lower). This mechanic isn't new, just not widely used. Changes: - Adds a mapping helper for assigning doors to "Red Alert Access" - Gives "Red Alert Access" to EVA doors on every map - Gives "Red Alert Access" to the first aid supply windoors in medbay storage on all maps. Icebox already had this, which is why I thought I'd expand it because it's a fun idea. (The doors leading INTO medbay storage do NOT have this, meaning the CMO would likely have to set those to emergency access.) - Removes "Red Alert Access" from the secure storage windoor in Icebox's medbay. Felt odd that it allowed anyone access to the syringe gun ## Why It's Good For The Game Discussed in #89390 . I don't think this will be supremely impactful, but you never know. But if anything, it may lead to people using Red Alert more appropriately more often, which would be cool for roleplay. The only problem is that they aren't telegraphed very well, only in `examine`. Could probably make it more well known ## Changelog 🆑 Melbert add: EVA doors become all access on Red Alert add: First Aid Supplies (the compartments in Medbay Storage which hold medkits) become all access on Red Alert (already present on Icebox). Medbay Storage itself does NOT become all access. /🆑 |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
2ee02682f7 |
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 |
||
|
|
e74e288ae1 |
Adds cooling loops and cold tiles to all kitchen freezers (#89245)
## About The Pull Request Makes all freezers cold roundstart (wasn't the case for Meta, Delta and Birdshot) and adds cooling loops to all freezers (those were missing from all maps bar Meta and Delta) This is a commission for @RaveRadbury <details> <summary>Previews</summary> Birdshot:  NebulaStation:  Tramstation:  Wawastation:  Icebox has a temperature unit-less loop, instead utilizing natural cold of the ice moon:  </details> ## Why It's Good For The Game Map parity, makes sure that all freezers are naturally cold and stay that way throughout the shift. ## Changelog 🆑 map: Added cooling loops and cold tiles to all kitchen freezers that were missing them /🆑 |
||
|
|
86e06b1b29 |
Fixes an armrest related hard del (#89139)
## About The Pull Request Another spurious CI runtime that keeps coming up all the time and is annoying me. I believe it's occurring due to the chair not being initialized before a `mob_buckler` mapping helper tries to buckle mobs to it. So I moved their code to lateload to hopefully ensure that doesn't happen, as well as an additional safety measure in the armchair code itself. edit: confirmed that this does indeed fix it, as I have it merged downstream preemptively due to it being such a blocking nuisance  Caused by ## Why It's Good For The Game Less CI failures ## Changelog N/A |
||
|
|
8196190aa1 |
Removes a a at at be be of of and and have have (#89155)
## About The Pull Request I just had to one-up https://github.com/tgstation/tgstation/pull/89127. ## Why It's Good For The Game Removes a a at at be be of of and and have have ## Changelog N/A |
||
|
|
a95fb42425 |
Fixes a runtime in requests console error logging (#89044)
## About The Pull Request Target is null so we cannot work with its area, etc etc. ## Changelog 🆑 fix: Fixed a runtime in requests console error logging /🆑 |
||
|
|
1795c18aea |
Fix a bunch of html UI's for 516 (#88917)
## About The Pull Request Moved broken on 516 UI's to browser datum They now work and have a dark theme Most of them are admin ones (All except 1) I tried to check all the raw HTML UI's by typing `<< browse(` into the VSC search and going through each element, but I might have missed something. What worked as it was, I didn't touch, except for the Dynamic control UI's ## Why It's Good For The Game Admin can do their things on 516 Coders/Mappers can debug some stuff on 516  ## Changelog 🆑 fix: Admin/Debug UI's (Especially the Game Panel) now work properly on Byond 516, instead of showing raw HTML /🆑 |
||
|
|
189616ae2c |
Add better logging for ruins (#88403)
## About The Pull Request ~~This adds a new test for the CI/CD so that we can load all space ruins instead of it being RNG.~~ Adds more robust logging for ruins so we can see when they fail/succeed and how many are placed on a map. This also removes a deprecated CI config setting. It prevented ALL ruins from spawning during CI tests which is bad. The config setting was made redundant in: - #87910 ## Why It's Good For The Game More robust CI/CD. ## Changelog 🆑 code: Add better logging for ruins /🆑 |
||
|
|
016c3ed21a |
fixes seed ruin logic preventing forced ruins from spawning when budget is zero, fixes map_logging CI test (#87910)
## About The Pull Request The ruins get added to forced_ruins, quite often after all ruin budget is exhausted and thus they don't get spawned. This adjusts the logic to ignore the budget when there's forced_ruins to be had. Also apparently fixes map_logging CI test which was broken by the logic, and makes the stacked_lights test scream at you with the area name for the sake of easier debugging as it can proc on the ruins now ## Why It's Good For The Game Adjusts some logic to allow multi-ruins to spawn correctly, and to make sure our mappers make good space ruins too ## Changelog 🆑 fix: Ruins will now correctly spawn their tied ruins in fix: The map_logging test now runs proper code: The stacked_lights test now screams with area names too. /🆑 |
||
|
|
d7f9174050 |
fixes seed ruin logic preventing forced ruins from spawning when budget is zero, fixes map_logging CI test (#87910)
## About The Pull Request The ruins get added to forced_ruins, quite often after all ruin budget is exhausted and thus they don't get spawned. This adjusts the logic to ignore the budget when there's forced_ruins to be had. Also apparently fixes map_logging CI test which was broken by the logic, and makes the stacked_lights test scream at you with the area name for the sake of easier debugging as it can proc on the ruins now ## Why It's Good For The Game Adjusts some logic to allow multi-ruins to spawn correctly, and to make sure our mappers make good space ruins too ## Changelog 🆑 fix: Ruins will now correctly spawn their tied ruins in fix: The map_logging test now runs proper code: The stacked_lights test now screams with area names too. /🆑 |
||
|
|
ee16f1fccc |
Everything uses trim(), trim returns "" if empty, removes the SDQL2 trimtext (#87994)
## About The Pull Request Title. I may have been wrong about how depended on this behaviour was Also, uh, fixes #87986 ## Why It's Good For The Game trim_reduced no longer needs to exist because trimtext() does it faster, and there's no reason to have a special proc if trim just calls that proc anyways. I sincerely doubt the proc overhead is so severe that we need another proc that will ever only be called directly 3 times in the code. Since trimtext() does something we don't expect, it's better to just have SDQL2 queries use trim() so we're all on the same page. ## Changelog NO!!! |
||
|
|
5961aa3b53 |
Fixes improper static list declarations + adds grep for it (#87207)
## About The Pull Request I randomly came across a `var/list/static` in the code, which does not actually do what was intended, and thought it was silly. A ctrl+f revealed that this was a fairly common mistake, so I went and fixed all the instances of it I could find. ~~Including one in lighting code, which it looked like they were trying to create a global list to cache generated lighting sheet values for speed, but it was just a normal list that got created each time pointlessly. Now those values are actually being cached (using a global var, because a `static` list was not the right thing to use there in the first place).~~ Nevermind, it seems that this was in fact being cached even if it shouldn't have been, because byond. Just rearranged it there seeing as it works either way. ## Why It's Good For The Game Code that does what it's supposed to ## Changelog 🆑 fix: fixes a bunch of improper static list declarations /🆑 # Conflicts: # code/game/objects/items/kirby_plants/kirbyplants.dm |
||
|
|
5c6eb2ce57 |
Fix air alarms to work correctly while connected to a gas sensor (#86958)
## About The Pull Request This fixes a bug that was hard to troubleshoot. While I was testing my other PR, I noticed that I was getting inconsistent atmos readouts while using a gas sensor hooked to an air alarm. Sometimes I would get the readout from the tile of the air alarm, and other times it would give me the readout of the gas sensor... I tracked it down and the root cause was the `COMSIG_TURF_EXPOSE` signal not being properly reassigned when a gas sensor was connected. My fix is to transfer the signal from the air alarm to the air sensor and vice versa when they are connected/disconnected. I also added some redundancies in place to limit air sensors to be only connected to one air alarm at a time. I threw in a mapping check to make sure one air alarm isn't linked to multiple sensors to catch some accidents. Another small fix is that air alarms now can be relinked to other air sensors if the sensor is reset. This was a problem for round-start linked air alarms that were paired with sensors since you could turn off or break a sensor and then the air alarm would have it's link severed without being able to link to any new sensors. ## Why It's Good For The Game Air alarms are becoming more robust! ## Changelog 🆑 fix: Fix air alarms to work correctly while connected to a gas sensor fix: Fix paired air alarms and sensors to be able to relink to other devices if turned off, reset, or destroyed. /🆑 |
||
|
|
57cc38c789 |
GPSes now show the general direction of crosslinked z-levels (#87437)
## About The Pull Request This makes the GPS UI give the general direction of a GPS on a different linked z-level. https://github.com/user-attachments/assets/98c6dfd8-5ced-4145-b14a-3813821ef30c ## Why It's Good For The Game Makes navigating through space less of a chore, as previously, I believe the only way was to manually write down or memorize what direction was linked to what z-level. ## Changelog 🆑 add: GPSes now show the general direction of cross-linked z-levels. /🆑 |
||
|
|
d170a410d4 |
Recovered Crew | Medical+Cargo Respawns (#87072)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
728036969d |
Replace /proc/trim_reduced with the native BYOND trimtext (#87317)
## About The Pull Request BYOND added a native `trimtext` proc in 515, which as far as I know, does the same thing as the `trim_reduced` proc - trims whitespace off both ends of a string, but `trimtext` should be faster, as it's a builtin rather than implemented in DM. Also, added a global `_trimtext` proc, for use from SDQL2 or Lua, as it's a builtin and can't be `call()`'d. ## Why It's Good For The Game Micro-optimizations my beloved - especially since I imagine this proc is called quite a lot, even if it doesn't really have a performance impact anyways, but it can't hurt. ## Changelog 🆑 refactor: Refactored some text helper procs to use BYOND's native text trimming proc. admin: Added a _trimtext proc, for use with SDQL2 or Lua scripting. /🆑 |
||
|
|
bb70889f6e |
TG Upstream Part 1
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff |
||
|
|
241514f520 |
Fixes improper static list declarations + adds grep for it (#87207)
## About The Pull Request I randomly came across a `var/list/static` in the code, which does not actually do what was intended, and thought it was silly. A ctrl+f revealed that this was a fairly common mistake, so I went and fixed all the instances of it I could find. ~~Including one in lighting code, which it looked like they were trying to create a global list to cache generated lighting sheet values for speed, but it was just a normal list that got created each time pointlessly. Now those values are actually being cached (using a global var, because a `static` list was not the right thing to use there in the first place).~~ Nevermind, it seems that this was in fact being cached even if it shouldn't have been, because byond. Just rearranged it there seeing as it works either way. ## Why It's Good For The Game Code that does what it's supposed to ## Changelog 🆑 fix: fixes a bunch of improper static list declarations /🆑 |
||
|
|
f7c53dec8e |
Fix air alarms to work correctly while connected to a gas sensor (#86958)
## About The Pull Request This fixes a bug that was hard to troubleshoot. While I was testing my other PR, I noticed that I was getting inconsistent atmos readouts while using a gas sensor hooked to an air alarm. Sometimes I would get the readout from the tile of the air alarm, and other times it would give me the readout of the gas sensor... I tracked it down and the root cause was the `COMSIG_TURF_EXPOSE` signal not being properly reassigned when a gas sensor was connected. My fix is to transfer the signal from the air alarm to the air sensor and vice versa when they are connected/disconnected. I also added some redundancies in place to limit air sensors to be only connected to one air alarm at a time. I threw in a mapping check to make sure one air alarm isn't linked to multiple sensors to catch some accidents. Another small fix is that air alarms now can be relinked to other air sensors if the sensor is reset. This was a problem for round-start linked air alarms that were paired with sensors since you could turn off or break a sensor and then the air alarm would have it's link severed without being able to link to any new sensors. ## Why It's Good For The Game Air alarms are becoming more robust! ## Changelog 🆑 fix: Fix air alarms to work correctly while connected to a gas sensor fix: Fix paired air alarms and sensors to be able to relink to other devices if turned off, reset, or destroyed. /🆑 |
||
|
|
4c4930c71d | Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit | ||
|
|
e93c6c3199 |
[MIRROR] Block atmos processing on ReservedTurfs\™️ (#29368)
* Block atmos processing on ReservedTurfs\™️ (#84873) ## About The Pull Request See title. ## Why It's Good For The Game We get constant runtimes and issues from atmos processing on turfs we are actively loading and/or reserving. I promised I would do something about this months ago --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Block atmos processing on ReservedTurfs\™️ --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
52f7f44215 |
Block atmos processing on ReservedTurfs\™️ (#84873)
## About The Pull Request See title. ## Why It's Good For The Game We get constant runtimes and issues from atmos processing on turfs we are actively loading and/or reserving. I promised I would do something about this months ago --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
9621bb400a |
[MIRROR] turf reservations may set whether they should override baseturfs, off for deathmatch (#29338)
* turf reservations may set whether they should override baseturfs, off for deathmatch (#85752) ## About The Pull Request uhh laymans terms; break wall, turf under wall not space now plating turf reservations may set to not override baseturfs with turf_type, created a subtype with that set, and deathmatch templates use this for default essentially for whoever wants to build a deathmatch map: set turf_reservation_type (on the template) to 1. **(default)** /datum/turf_reservation/turf_not_baseturf - preserves baseturfs of what you map in, eg. plating under normal flooring and space under that plating, etc. Turf used to fill in the template is still space 2. /datum/turf_reservation/indestructible_plating - fills in the noop spots before loading with indestructible plating, and also is the baseturf for everything there, so break any turf = indestructible plating (you may still map in space) ## Why It's Good For The Game makes sense for normal walls in deathmatch to not break into space immediately and that allows more destructible deathmatch maps i encourage whoever makes new maps to include non indestructible turfs ## Changelog 🆑 fix: breaking certain terrain in deathmatch doesnt instantly breach to space /🆑 * turf reservations may set whether they should override baseturfs, off for deathmatch --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> |
||
|
|
e56d4de4ae |
turf reservations may set whether they should override baseturfs, off for deathmatch (#85752)
## About The Pull Request uhh laymans terms; break wall, turf under wall not space now plating turf reservations may set to not override baseturfs with turf_type, created a subtype with that set, and deathmatch templates use this for default essentially for whoever wants to build a deathmatch map: set turf_reservation_type (on the template) to 1. **(default)** /datum/turf_reservation/turf_not_baseturf - preserves baseturfs of what you map in, eg. plating under normal flooring and space under that plating, etc. Turf used to fill in the template is still space 2. /datum/turf_reservation/indestructible_plating - fills in the noop spots before loading with indestructible plating, and also is the baseturf for everything there, so break any turf = indestructible plating (you may still map in space) ## Why It's Good For The Game makes sense for normal walls in deathmatch to not break into space immediately and that allows more destructible deathmatch maps i encourage whoever makes new maps to include non indestructible turfs ## Changelog 🆑 fix: breaking certain terrain in deathmatch doesnt instantly breach to space /🆑 |
||
|
|
aefec7cb2b |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
5f80128fa9 |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
37825319d5 |
[MIRROR] Adds in airlock helpers for inaccessible doors (#28775)
* Adds in airlock helpers for inaccessible doors (#84792) ## About The Pull Request ACCESS_INACCESSIBLE was added by #81828, and originally used for the bitrunning lockboxes that were not meant to be unlockable by any access. This PR adds in an airlock helper (`/obj/effect/mapping_helpers/airlock/inaccessible`) that applies the ACCESS_INACCESSIBLE to make an airlock unable to be opened by any ID.  > An example of the helper, and what it looks like used on an airlock. ## Why It's Good For The Game This can be used in mapping for ruins or away missions where the mapper does not want an airlock to be passed through with an ID and does not want to worry about cases where the player may have access to ID cards from other ruins that may grant access to set doors. ## Changelog No player facing changes. * Adds in airlock helpers for inaccessible doors --------- Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com> |
||
|
|
b7fb9124b6 |
Adds in airlock helpers for inaccessible doors (#84792)
## About The Pull Request ACCESS_INACCESSIBLE was added by #81828, and originally used for the bitrunning lockboxes that were not meant to be unlockable by any access. This PR adds in an airlock helper (`/obj/effect/mapping_helpers/airlock/inaccessible`) that applies the ACCESS_INACCESSIBLE to make an airlock unable to be opened by any ID.  > An example of the helper, and what it looks like used on an airlock. ## Why It's Good For The Game This can be used in mapping for ruins or away missions where the mapper does not want an airlock to be passed through with an ID and does not want to worry about cases where the player may have access to ID cards from other ruins that may grant access to set doors. ## Changelog No player facing changes. |
||
|
|
0186f4d8b0 |
[MIRROR] Removes stupid listlike var access code (#28658)
* Removes stupid listlike var access code (#84648) ## About The Pull Request [Removes all other listlike var accesses](https://github.com/tgstation/tgstation/pull/84648/commits/4c5996b5c8b1da63740e8b4bf998b6cb6eadac33) Also fucking dumpsters an unused proc that allowed for arbitrary variable modifcation. Bad juju This is undefined behavior and errors in later 515 versions. also it's stupid as hell * Removes stupid listlike var access code --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
78fc87315c |
Removes stupid listlike var access code (#84648)
## About The Pull Request [Removes all other listlike var accesses](https://github.com/tgstation/tgstation/pull/84648/commits/4c5996b5c8b1da63740e8b4bf998b6cb6eadac33) Also fucking dumpsters an unused proc that allowed for arbitrary variable modifcation. Bad juju This is undefined behavior and errors in later 515 versions. also it's stupid as hell |
||
|
|
1e4eea1177 |
[MIRROR] Unit tests for stuff accidentally placed in space by mappers (#28538)
* Unit tests for stuff accidentally placed in space by mappers (#84453) This unit test detects all turfs & other movables that aren't in a lit area (ie area/space/nearspace) on station zlevels The grep detects movables placed on shuttles that do not have the correct area assigned, which caused those atoms to break off of the shuttle & literally get launched into random parts of space (usually on station z-levels; the only reason I found this issue was cause the unit test was detecting random shit ending up on station maps lol) Minor fix for the mapload_space_verification unit test - it was falsely detecting turfs that shuttle grids (that were template_noop) were parked ontop of, which aren't effected by the shuttle in any way. This allowed the following fix Fixed a number of shuttles having atoms in /area/template_noop areas. Atoms in these areas are treated as not actually part of the shuttle itself & were launched off into random space tiles across all z-levels via dump_in_space(). Corrected those grids to have the correct area, and as such, shuttles now stay together properly. 🆑 ShizCalev fix: Fixed a number of shuttles having parts (such as lattices) completely disappearing. fix: Fixed the ceilings above shuttles on station maps being full-bright. fix: Fixed lattices sometimes appearing at random locations in space on station maps. fix: Cleaned up a number of accidentally placed objects in space across all station maps. fix: Fixed a false positive with the mapload_space_verification unit test failing on turfs that weren't actually part of shuttles. code: Added a unit test that automatically finds all base space turfs with objects on them, as well as non-space turfs that are set to space areas (meaning that these squares weren't lit properly.) /🆑 Shuttle Ceiling Fix: Before  Fixed  Shuttle Fix: Before  Fixed (look at the lattices in the middle. the stuff in the shuttle are randomized / not part of this)  * Unit tests for stuff accidentally placed in space by mappers * Fixes maps for nearspace unit test (#28557) Fixes maps --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
1aade91a18 |
Unit tests for stuff accidentally placed in space by mappers (#84453)
This unit test detects all turfs & other movables that aren't in a lit area (ie area/space/nearspace) on station zlevels The grep detects movables placed on shuttles that do not have the correct area assigned, which caused those atoms to break off of the shuttle & literally get launched into random parts of space (usually on station z-levels; the only reason I found this issue was cause the unit test was detecting random shit ending up on station maps lol) Minor fix for the mapload_space_verification unit test - it was falsely detecting turfs that shuttle grids (that were template_noop) were parked ontop of, which aren't effected by the shuttle in any way. This allowed the following fix Fixed a number of shuttles having atoms in /area/template_noop areas. Atoms in these areas are treated as not actually part of the shuttle itself & were launched off into random space tiles across all z-levels via dump_in_space(). Corrected those grids to have the correct area, and as such, shuttles now stay together properly. 🆑 ShizCalev fix: Fixed a number of shuttles having parts (such as lattices) completely disappearing. fix: Fixed the ceilings above shuttles on station maps being full-bright. fix: Fixed lattices sometimes appearing at random locations in space on station maps. fix: Cleaned up a number of accidentally placed objects in space across all station maps. fix: Fixed a false positive with the mapload_space_verification unit test failing on turfs that weren't actually part of shuttles. code: Added a unit test that automatically finds all base space turfs with objects on them, as well as non-space turfs that are set to space areas (meaning that these squares weren't lit properly.) /🆑 Shuttle Ceiling Fix: Before  Fixed  Shuttle Fix: Before  Fixed (look at the lattices in the middle. the stuff in the shuttle are randomized / not part of this)  |
||
|
|
3e737237e6 |
[MIRROR] Fixes lightswitch-turning-off mapping helper (#28482)
* Fixes lightswitch-turning-off mapping helper (#84399) Fixes #84290 * Fixes lightswitch-turning-off mapping helper --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
7098937063 |
Fixes lightswitch-turning-off mapping helper (#84399)
Fixes #84290 |
||
|
|
9efdb4f8bb |
[MIRROR] Wawastation (#27992)
* Wawastation * Update _basemap.dm * Update gateway.dm --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
60b40c1379 |
[MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#27593)
* Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) * [MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#2314) * Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) * Modular adjustments (vox, teshari names) * Update yangyu.dm * Delete language.dm * Remove language.dm override --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Fix 2 * fix 3 * Update monkeys.dm * test fix * One modular adjustment * Ticked * yeah * unhardcodes modsuit parts (#82905) see #70061 but i almost finished it, i only need to go through every single module and assign it a fitting part 🆑 refactor: modsuits have been refactored if you see bugs report them fix: admin cargo tech modsuit outfit now works correctly /🆑 --------- Co-authored-by: Andrew <mt.forspam@gmail.com> * Revert "unhardcodes modsuit parts (#82905)" This reverts commit 622968a8e5e9cd142cb4d19bf9775f084a4c17d9. * Removes language.dm and duplicate species() proc * Removes modular language subsystem --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: Andrew <mt.forspam@gmail.com> |
||
|
|
c57afc4689 |
Wawastation (#82298)
- [x] #82282 - [x] map in aux base how the hell did i forget it - [x] fill out maints - [x] properly test the goddamn thing - [x] fix major cameranets - [ ] fix any issues - [x] write a proper pr body ## About The Pull Request adds this map to the map rotation bottom level (24.5.2024)  upper level (24.5.2024)  ## general map details and department stuff - the station is more focused on the bottom level, so falling in doesnt roundremove you - this is an asteroid station, so assistants can larp as dorfs and mine towards the sweet loot - there is plenty multiz usage - service is the center of the station **Service** - Is the center of the station. Arrivals docks directly in the middle of the station next to Upper Service, so bar might get more traffic. Not much different than normal Service, but janitors closet is also present here, he sleeps on the floor. We do not talk about the janitor. Above Bar is Library and Hydroponics with an overlook to look at bar. The Theater has a big curtain and a podium directly in the bar. 29.3.2024  **Civilian** - Also in the center of the station, next to bar. There isnt much to talk about dorms, its pretty normal. **Cargo** - Absence of chutes that go to departments, reminder that mail sorting is a thing. Cargo bay is a big open area with a boutique/shop facing primary hall that starts closed, and Cargo has its own crate elevator. Theres upper Cargo where mining, bitrunning and a secure warehouse is located (There may be a murder scene). The quartermasters office spans two z-levels and is relatively compact. Not much else different from regular cargo. ~~Oh also the QM starts with an empty PML-9 and a mostly functional rocket~~ 29.3.2024  **Medical** - Large centralized medbay, also two z-levels. There is a public waiting room with triage and a reception. There is also an inner elevator for the crippled. There are two medbay-access patient rooms that are unrestricted from the inside, and two operating rooms. Medbay has its own rad shelter. The virologist does not get their own satellite, but is still relatively secure. 29.3.2024 https://i.ibb.co/hs9kKbV/ezgif-1-f7b697b067.gif (large gif) **Command** - AI Sat transit tube access is here. HoP has an open stall facing primary hall, ~~and maybe a piano trapdoor~~ pretty classic bridge, Captain does not get his own office but gets a really comfortable quarters with his own emergency mass ejection for abandoning ship. The council meeting room is present above bridge, with ERT Ferry dock docking inside adjacent to the council room. **Security** - Mostly bottom z level security. Very compact brig cells, and a meeting room that everyone that is related to security may spawn in if youre lucky. Warden has a weapon handout point facing the inner security hall and the equipment room. Reeducation chamber has a shocked grille treadmill. HoS and Warden Room and armory are on the upper z-level, and warden has a VERY good overlook over permabrig. Armory is seperated into nonlethal to mostly nonlethal and lethal. 29.3.2024  **Science** - Also pretty centralized, breakroom with a smoking corner, two z levels and a big overlook. RD office overlooks toxins and bomb site. Genetics and RD Office is on the upper floor, with a science exclusive monkey exhibit. Xenobio is thick due to proximity to bomb site, otherwise normal. 29.3.2024  **AI Sat** - Okay at this point assume any department is multiz. The antechamber is an elevator and the turrets are on said elevator. The elevator may be sent to the top level by engineers, where the AI core is. Telecomms is on the bottom level, and AI core is above it. Contains a borg entertainment room, and also the upload. The elevator being raised is necessary to properly enter AI Room. **Engineering** - Contains a less stale but still average and less than optimal SM setup. Prone to catastrophic disaster. The SM Room is two levels and very open, and CE has a trapdoor directly into the shard. Turbine is above atmospherics, so is the crystallizer. The HFR and main atmos and distribution room are on the bottom level. Piped by **Kendra Hunter**. Contains a built in electrolyzer corner so atmos mains stop gutting the aesthetics to place down some dumb machine. ## Why It's Good For The Game another interesting map into the roster, different from the other multiz maps in the form that you dont get stuck in hell by falling down a hole todo write better section ## Changelog 🆑 add: wawastation, the station map /🆑 --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
9a2390ba7a |
Iceblock flora generation fixes (#83450)
Fixes #83438 🆑 ShizCalev fix: Trees will no longer be growing through railings on forest planets fix: Trees/plants will no longer grow through wood pathways on Icebox fix: Railings will no longer appear ontop of rock walls on icebox /🆑 Old:  Fixed:  |
||
|
|
54f9ea034c |
Iceblock flora generation fixes (#83450)
Fixes #83438 🆑 ShizCalev fix: Trees will no longer be growing through railings on forest planets fix: Trees/plants will no longer grow through wood pathways on Icebox fix: Railings will no longer appear ontop of rock walls on icebox /🆑 Old:  Fixed:  |
||
|
|
0cc5cfb178 |
Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#83021)
## About The Pull Request This PR moves random name generation for species onto their languages. What does this mean? - For species with a predefined name list, such as Lizards and Moths, nothing. - For species without predefined name lists, such as Felinids, their names will now be randomly generated from their language's syllables.   (In the prefs menu:)  Why? - Well, we actually had some dead code that did this. All I did was fix it up and re-enable it. - Generates some pretty believable in-universe names for various languages that are lacking name lists. Obviously defined lists would be preferred, but until they are added, at least. - Moves some stuff off of species, which is always nice. - Also hopefully makes it a tad easier to work with name generation. There's now a standard framework for getting a random name for a mob, and for getting a random name based on a species. Misc: - Adds a generic `species_prototype` global, uses it in a lot of places in prefs code. - Makes `GLOB.species_list` init via the global defines - Deletes Language SS - Alphabetizes some instances of admin tooling using the list of all species IDs - Docs language stuff - Deletes random_skin_tone, it does pretty much nothin ## Changelog 🆑 Melbert refactor: Random Name Generation has been refactored. Report any instances of people having weird (or "Unknown") names. qol: Felinids, Slimepeople, Podpeople, and some other species without defined namelists now automatically generate names based on their primary language(s). qol: More non-human names can be generated in codewords (and other misc. areas) than just lizard names. /🆑 |
||
|
|
7aa6664021 |
Mirror (#27453)
* Fix Conflicts * Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530) Most people should not be using this define * New Battle Arcade (#81810) Remakes Battle Arcade from just about the ground up, with exceptions taken for emagged stuff since I didn't really want to touch its behavior. The Battle Arcade now has stages that players can go through, unlocking a stage by beating 2 enemies and the boss of the previous one, but this must all be done in a row. You can choose to take a break between each battle and there's a good chance you'll sleep just fine but there's also a chance it can go wrong either through an ambush or robbery. The Inn lets you restore everything for 15 gold and you can buy a sword and armor, each level you unlock is a new sword and armor pair you can buy that's better than the last, it's 30 gold each but scales up as you progress through levels. They are really worth getting so it's best to try to not lose your money early in. The battle system is nearly the same as how it was before but I removed the poor combo system that plagued the old arcade as one big knowledge lock, now it's more just turn based. The game is built on permadeath so dying means you restart from the beginning, but if you are going to lose you can try to escape instead which costs you half of your gold. Getting to higher levels increases the difficulty of enemies but also increases the gaming exp rewards which could make this a better way to get exp if you can get good at it. Gaming EXP is used to increase chances of counterattacking but doesn't give any extra health to the player. I also removed the exploit of being able to screwdriver arcade cabinets because people would do that if they thought they were on the verge of losing to bypass the effects of loss. I instead replaced it with a new interaction that the Curator's display case key can be used to reset arcade cabinets (there's several keys on the chain so it made sense to me), which I added solely because I thought Curators would be the type of person to have run an actual arcade. This is some gameplay https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede As a misc sidenote, I also split up the arcade file just like how Orion Trail was before, just for neat code organization. The Inn keeper is straight up just a photo of my localhost dude, he's not a player reference or anything it's not my actual character. I also have no idea how well balanced this is cause I suck at it lol. Battle Arcade is one of 3 last machines in my hackmd here to turn into TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view I've always thought the current version of battle arcade is quite lame and lacks any progression, like Orion Trail I thought that since I was moving this to TGUI, it would also be a perfect opportunity to revamp it and try to improve on where it failed before, especially since the alternative (NTOS Arcade) is also lame as hell and is even lamer than HTML battle arcade (spam mana, then spam health, then just spam attack, rinse and repeat). This will hopefully be more entertaining and give players sense that they are getting through a series of tasks rather than doing one same one again and again. 🆑 JohnFulpWillard, Zeek the Rat add: Battle Arcade has been completely overhauled in a new progression system, this time using TGUI. add: The Curator's keys can now reset arcade cabinets. balance: You now need to be literate to play arcade games, except for Mediborg's Amputation Adventure. fix: You can no longer screwdriver emagged arcade consoles. Accept your fate. fix: Silicons can no longer play Mediborg's Amputation Adventure. /🆑 --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> * Change setting item weight class to a setter to patch some weight class related shenanigans (#82494) ## About The Pull Request Fixes #81052 Fixes #58008 Setting weight class of items is now done via `update_weight_class`. I updated as many occurrences of manually setting `w_class` as I could find but I may have missed some. Let me know if you know of any I missed. This is done to allow datums to react to an item having its weight class changed. Humans and atom storage are two such datums which now react to having an item in its contents change weight class, to allow it to expel items that grow to a weight class beyond what is normally allowed. ## Changelog 🆑 Melbert fix: You can't fit items which are normally too large for a storage by fitting it in the storage when it is small, then growing it to a larger size. /🆑 * Material datum color update, plus touching up some material items (knight armor, tiles) (#82500) ## About The Pull Request Tries to bring the material datum colors in closer approximation to the stacks they're attached too. I literally used the colors on the stacks. some might need to be lighter or darker, but for the most part they'll look...closer to their actual material hues.  I've also tweaked the sprites of both the tile object and the actual material tile turf to give it the right shading.  In addition to the tiles, I've also updated the knight armor and helmet to look closer to the much higher quality plate armor already in the game. ## Why It's Good For The Game It bothered me that the material datum coloring was inconsistent with the actual colors used for the material stacks. When they were updated, and even before they were updated, material datum stuff just never looked _right_. I wanted to change that so that it looks just right. I did not like the old material knight armor whatsoever. It was a dithered mess, and seemed to already use parts of the standard plate armor but with all the actual shading removed or replaced with the wrong colors. This fixes that so that the armor is actually readable for what it is. ## Changelog 🆑 image: Updates the colors of various material datum to bring them closer in-line with their actual material stacks image: Improves the sprites for the material knight armor and helmet. /🆑 * LateInitialize is not allowed to call parent anymore (#82540) ## About The Pull Request I've seen a few cases in the past where LateInitialize is done cause of the init return value being set to do so for no real reason, I thought I should try to avoid that by ensuring LateInitialize isn't ever called without overriding. This fixes a ton of machine's LateInitialize not calling parent (mechpad, door buttons, message monitor, a lot of tram machines, abductor console, holodeck computer & disposal bin), avoiding having to set itself up to be connected to power. If they were intended to not connect to power, they should be using ``NO_POWER_USE`` instead. Also removes a ton of returns to LateInit when it's already getting it from parent regardless (many cases of that in machine code). ## Why It's Good For The Game I think this is better for coding standard reasons as well as just making sure we're not calling this proc on things that does absolutely nothing with them. A machine not using power can be seen evidently not using power with ``NO_POWER_USE``, not so much if it's LateInitialize not calling parent. ## Changelog 🆑 fix: Mech pads, door buttons, message monitors, tram machines, abductor consoles & holodeck computers now use power. /🆑 * Fix table top deconstruction (#82508) ## About The Pull Request Edited: updated changelog, read comments for changes in implementation details So previously, tables would let you use a wrench to fully deconstruct them, or a screwdriver to take off only their top. This, however, broke in two different ways in #82280, when their deconstruction logic got changed. First off, deconstructed tables would only drop the materials for their top and not their frame. For this, the primary culprit seems to be on line 307: https://github.com/tgstation/tgstation/blob/c34d56a45b0461f5e0fad3cc75e81580c3357119/code/game/objects/structures/tables_racks.dm#L300-L307 Where `new framestack(target_turf, framestackamount)` accidentally got an extra indent, and ended up in the less common half of the if-else chain. Just moving this outside of the if-else chain again fixes it. Secondly, tables had their own special deconstruction logic, which got 'standardized'. Issue. This was special to accommodate for having two different deconstruction logics: full or top only. With `deconstruct(...)` no longer being overridable, I feel it's awkward to attempt to proxy that information to the new `atom_deconstruct(...)` So we introduce a new method, `deconstruct_top`, for the screwdriver to use, which handles deconstructing only the top. ```dm /obj/structure/table/proc/deconstruct_top() var/obj/table_frame = new frame(loc) if(obj_flags & NO_DECONSTRUCTION) table_frame.obj_flags |= NO_DECONSTRUCTION else // Mimic deconstruction logic, only drop our materials without NO_DECONSTRUCTION var/turf/target_turf = get_turf(src) drop_top_mats(target_turf) qdel(src) ``` Mimicking the `NO_DECONSTRUCTION` logic of normal deconstruction, and copying over the flag onto its frames if need be. This fixes screwdriver deconstruction. ## Why It's Good For The Game Fixes #82503. We can now deconstruct the table top separately again, AND get the right materials back too. ## Changelog 🆑 00-Steven, SyncIt21 fix: Wrench table deconstruction gives the right materials again. fix: Screwdriver table deconstruction only deconstructs the top again. /🆑 * [NO GBP] Reagent grinders display reagents on examination (#82535) ## About The Pull Request - Fixes #82531 Somehow omitted this during the general maintenance thing ## Changelog 🆑 fix: Reagent grinders display reagents of its beaker on examination /🆑 * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from https://github.com/tgstation/tgstation/pull/73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Gets [weird] with (spies) by adding protect and deuteragonist-flavored objectives. (#82447) ## About The Pull Request What are their goals? Why are they doing this? gets weird with Spy objectives - namely by adding a lot more ways spies might be asked to affect various targets around the station. the first of these is by several flavors of Protecting targets (these do NOT print a success at roundend in keeping with Spy design:) - Protect (get a humanoid target off alive) - Protect Nonhuman (get an entity off alive) - Jailbreak (make sure a humanoid target escapes free) - Detain (make sure a humanoid target gets taken out arrested) the second of this is by a new escape condition: - Exile (get off-station or off the Z-level by the end of the shift - sometimes it's not just pods, you need to fuck off to space to win.) the third is through a massive increase in the number of possible: - objective templates - departments to target (Command + Service added) - specific locations to target - general classes of objects to target (medicines, floor tiles, critical infrastructure, etc.) - efforts to target (such as meals, mechs, public supplies) - ways to leave (you can be asked to abscond from the scene of your crimes?) ## Why It's Good For The Game More goofy and weird prompts to do more interesting things with Spies. One thing I think we're sorely missing in our lineup is antagonists that can act a bit more as deuteragonists - very possibly helping the crew under certain conditions and frustrating the Hell out of them in others. Since there's no way to check their objectives, and they get their gear/progression through stealing shit, they're still very much an antagonist and exist under the suspicion of doing bad... but, just going by their objectives, introducing more varied (and in some cases even benign) goals for them creates suggestions pointing to a lot more varied and interesting stories if people choose to run with it. * Adds anosmia quirk (#82206) ## About The Pull Request Adds anosmia quirk. Anosmia, also known as smell blindness, is the loss of the ability to detect one or more smells. I tried to find all smells action and (most likely) update all of them, unfortunately I can't change descriptions for this quirk. ## Why It's Good For The Game Some characters will be able to not feel smells That affect: * Gases feelings and alerts (CO2, Plasma, miasm) - you don't feel them * Bakery and cooking * Changeling ability to feel other changelings by smell * Some unimportant spans * Explosions Part I - Directional Explosions (#82429) ## About The Pull Request Adds the ability for explosions to be directional. This is achieved by adding an angle check to `prepare_explosion_turfs()` to drop any turfs outside the cone of the explosion. If the arc covers a full 360 degrees, as is the default, it will accept all the turfs without performing the angle check. Uses this functionality to rework both rocket launcher backblast and X4 explosions. Rocket launcher backblast has been changed from a shotgun of indendiary bullets to a directional explosion of similar length. X4 now uses a directional explosion to "ensure user safety". Apparently the old method of moving the explosion one tile away didn't even work, as it blew up `target` before trying to check its density for the directional behaviour. https://youtu.be/Mzdt7d7Le2Y ## Why It's Good For The Game Directional explosions - Useful functionality for a range of potential use cases, which can be implemented with minimal extra processing cost (Worst case scenario being very large directional explosions) Backblast - Looks way cooler than a bunch of projectiles, and should be significantly more functional in high-lag situations where projectile code tends to get fucky X4 - More predictable for players wanting to use it as a breaching charge, you can actually stand near the charge and not have to worry about being hoist upon your own petard. ## Changelog 🆑 add: Added support for directional explosions. add: Rocket launcher backblast is now 271% more explosive, check your six for friendlies! add: X4 charges now explode in a cone away from the user when placed on a sufficiently solid object. fix: X4 charges will now behave correctly when placed on dense atoms (note: don't try to read a variable from an atom you just blew up) /🆑 * Add balloon alerts to plunging (#82559) ## About The Pull Request Makes all plunging actions (pretty much anything using `plunger_act`) have a visible balloon alert. ## Why It's Good For The Game Makes sense that others would easily notice you plunging the shit out of something. Also, more people might finally learn that you can plunge the vent clogs instead of welding them. ## Changelog 🆑 qol: Added balloon alerts whenever you start plunging something (i.e ) /🆑 * Fixes spurious runtime on Icemoon caused by turf calling unimplemented LateInitialize() (#82572) ## About The Pull Request As of https://github.com/tgstation/tgstation/pull/82540 this runtime was happening,  `/turf/open/openspace/icemoon/` can be changed to `/turf/open/misc/asteroid/snow/icemoon/do_not_chasm` before `Initialize()` returns, which resulted in it `INITIALIZE_HINT_LATELOAD` getting returned on a turf that does not have an implementation of that proc. This should fix that. ## Why It's Good For The Game Fixes CI error * Blueprints tgui (#82565) Blueprints now use a TGUI panel instead of the old HTML one. Also did general code improvement and maintaining to blueprints in general and also destroyed the ``areaeditor`` level, repathing it to just 'blueprints'. Also adds a sound when you look at structural data cause why not Video demonstration: https://github.com/tgstation/tgstation/assets/53777086/861773fd-3d57-472d-bc94-d67b0d4f1dbd The 4 blueprint types:  Another HTML menu dead underground. This is more responsive and doesn't require constant updating to see which area you're in, feels less OOC (instead of saying "the blueprints say", just say it, you ARE the blueprints). Like, come on  Look at all this wasted space  🆑 refactor: Blueprints now use TGUI. qol: Blueprints can now be used while lying down. /🆑 * General maintenance for chem master (#82002) **1. Qol** - Adds screen tips & examines for screwdriver, wrench, crowbar & beaker insertion, removal & replacing actions - Analyzing reagents is now a client side feature & not a back end mode, meaning one person can see details of a reagent while the other can print stuff and do other operations so it's a non blocking operation. This also means 2 players can see information of 2 different reagents in their own screens, With that the overlay for analysis mode has been removed - You cannot do any tool acts on machines while printing. Balloon alerts will be displayed warning you of that. - The preferred container for the master reagent in the beaker is now showed in both condiment & chem master. It can be enabled/disabled via a CheckBox **2. Code Improvements** - Removed defines like `TARGET_BEAKER` , `TARGET_BEAKER` etc. ther functionality is implemented as params in the `transfer_reagent()` proc directly - Removed all variables relating to analyzing reagents like `reagent_analysis_mode`, `has_container_suggestion` etc. all memory savings - `printable_containers` now stores static values that can be shared across many chem masters - Updates only overlays and not the whole icon during operations for efficiency **3. Fixes** - You can hit the chem master with the screwdriver, wrench, crowbar & beaker when in combat mode - You cannot insert hologram items into the chem master - Deconstructing a condiment master will give you the circuit board already pre-programmed with that option selected so you don't need to use a screwdriver to re program it - `printing_amount` is now the maximum number of containers that can be printed at a time. Presently this number with upgraded parts would print out empty containers especially for patches. This is because `volume_per_item` does not take into consideration this var. Also this var would not give control to the player on exactly how many containers to print as whatever amount the player entered would be multiplied with this value producing a lot of waste & worse empty containers. Now this var determines exactly how many containers you can print and is imposed on the client side UI as well **4. Refactors (UI performance)** - Beaker data is compressed into a single entity & sent to the UI. This is set to null if no beaker is loaded thus saving data sent - Reuses Beaker props from chem synthesizer to reduce code - reagent REF replaced with direct type converted to text and later converted with `text2path()` cause its much faster 🆑 qol: Adds screen tips & examines for screwdriver, wrench, crowbar & beaker insertion, removal & replacing actions qol: Analyzing reagents no longer blocks other players from doing other operations. Multiple players can analyze different reagents on the same machine qol: You cannot do any tool acts on the machine while printing to prevent any side effects. qol: The preferred container for the master reagent in the beaker is now showed in both condiment & chem master. The feature can be enabled/disabled via a check box code: removed defines for reagent transfer, vars for reagent analyzis to save memory. Autodoc for other vars & procs fix: You can hit the chem master with tools like screwdriver, crowbar, wrench & beaker in combat mode fix: You cannot insert hologram items into the chem master fix: Deconstructing a condiment master will give you the circuit board already pre-programmed with that option fix: You now print the exact amount of containers requested even with upgraded parts without creating empty containers. Max printable containers is 13 with tier 4 parts able to print 50 containers. refactor: Optimized client side UI code & chem master as a whole. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Wraps `lowertext()` to ensure proper stringification. (#82442) Fixes #82440 This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not lost on me) to wrap around all calls of `lowertext()` and ensure that whatever we input into that proc will be stringified using the `"[]"` (or `tostring()` for the nerds) operator. very simple. I also added a linter to enforce this (and prevent all forms of regression) because I think that machines should do the menial work and we shouldn't expect maintainers to remember this, let me know if you disagree. if there is a time when it should be opted out for some reason, the linter does respect it if you wrap your input with the `UNLINT()` function. * Clowns can now make balloon... toys. And also mallets and hats. (#82288) <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> Clowns will now start with a box of 24 random long balloons and a skillchip in their noggin allowing them to create balloon animals by combining two of them of different colour together. Owners of the skillchip also gain access to crafting recepies of balloon mallets, vests, helmets and tophats, all created from long balloons. A crate of long balloons, with a box of balloons inside, can be bought at cargo, in case the clown runs out. I might edit this once I wake up, its 3 in the morning right now. Oh also, resprited how balloons look in inventory.  Balloon animals funny. Silly features are my favourite kind of features, and this one's open-ended too. Someone on the coder chat recommended someone would do it that one time, here it goes. <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 add: Added long balloon box to the clown's starting inventory, and a skill-chip of long lost honk-motherian knowledge to their brain. add: Added long balloons. Consequently, added balloon animals to make from such balloons. Also, balloon top hat, vest, helmet, and a mallet. Don't ask about the mallet. add: A long balloons box harvested fresh from the farms on the clown planet will be able to be shipped in a crate to the cargo department near you! add: As per requests; water balloons can now be printed at service lathe, and entertainment modsuit can now blow long balloons! image: Balloons will now have an unique sprite when in the inventory, compared when to on the ground. /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Jacquerel <hnevard@gmail.com> * Quick spellcheck 'steall' (#82560) ## About The Pull Request https://github.com/tgstation/tgstation/pull/82447 quick followup to this, caught it while glancing through the code. * Fix * merge conflicts * Revert "Monkeys now use height offset (and monkey tail works) (#81598)" This reverts commit 5cfdc5972d16c6b509220e8874a927696249d36a. * fix * Fixed lateinitialize * This should cut it * Oh right * There? * Damn, here? * There * [NO GBP] Fixes spurious runtime caused by icemoon (again) (#82582) ## About The Pull Request https://github.com/tgstation/tgstation/pull/82572 I tried to fix this but there was an unaccounted race condition which just caused a separate runtime...  Since the type is being changed mid-execution `replacement_turf` will become out of scope. My bad--this should fix it now for good. --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Higgin <cdonny11@yahoo.com> Co-authored-by: NeonNik2245 <106491639+NeonNik2245@users.noreply.github.com> Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
c462c462d8 |
[MIRROR] Simple animal xenos are now basic animal xenos (#27051)
* Simple animal xenos are now basic animal xenos * Conflict + updatepaths * more repaths * file repath * womp womp * bam me thinks * mapfix --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> |
||
|
|
fa31403353 |
LateInitialize is not allowed to call parent anymore (#82540)
## About The Pull Request I've seen a few cases in the past where LateInitialize is done cause of the init return value being set to do so for no real reason, I thought I should try to avoid that by ensuring LateInitialize isn't ever called without overriding. This fixes a ton of machine's LateInitialize not calling parent (mechpad, door buttons, message monitor, a lot of tram machines, abductor console, holodeck computer & disposal bin), avoiding having to set itself up to be connected to power. If they were intended to not connect to power, they should be using ``NO_POWER_USE`` instead. Also removes a ton of returns to LateInit when it's already getting it from parent regardless (many cases of that in machine code). ## Why It's Good For The Game I think this is better for coding standard reasons as well as just making sure we're not calling this proc on things that does absolutely nothing with them. A machine not using power can be seen evidently not using power with ``NO_POWER_USE``, not so much if it's LateInitialize not calling parent. ## Changelog 🆑 fix: Mech pads, door buttons, message monitors, tram machines, abductor consoles & holodeck computers now use power. /🆑 |
||
|
|
2163f60527 |
Simple animal xenos are now basic animal xenos (#82187)
## About The Pull Request We currently have 2 types of xenos in the codebase, simple animal and carbon. I'd like to unite them both under basic, and I thought I should go for simple animal first since it's more of a conversion than a remake. This helps set a base for a future basic-only xeno, which would require the following: - Basic mobs (or just anything than Carbon) to have Organs, which we can then use for things like referring to their plasma sac for egg-laying, etc. - All xeno types having a basic mob variant, preferably with an AI so they would work without a player. - Something be done about larva, either we'd split basic xenos into "larva" and "adult" (like carbon) or have it be a separate path that can also have organs so they can still have hivemind. Everything else seems to have been done overtime as simple animals have been converted to basic (HUDs and holding things now seem possible, etc.) Even if this doesn't work out, at least this cuts off a good chunk of the remaining simple animals to convert to basic. Sprites used (for mapping helpers): Fire medkit Toxin medkit Oingo Boingo punch face (i tried to shrink it down) ## Why It's Good For The Game This helps advance us move away from simple animals, and helps move carbon xenos to basic mob later too if that's what we want to go for. ## Changelog 🆑 refactor: Xenomorphs (Lavaland & Oldstation ones) are now basic mobs. /🆑 |
||
|
|
a7b1ecb585 |
[MIRROR] museum away mission (#26463)
museum away mission (#81208) adds a new gateway map, the Nanotrasen Museum it is filled with """"Mannequins"""" and Common Core lore im not putting the preview here because you really should explore it yourself but if youre that curious i think the Checks tab in mapdiffbot would have it this gateway map contains no combat unless you count falling into chasms because you did not carry a light or going into the boarded room with no loot or any incentive with obvious signs that there is the sole enemy on the map in there the loot is the lore ok thanks also makes mines detonate if theyre detonated by a non-mob im pretty sure this couldnt have been intentional trams stop chasms and also the relevant items <details> <summary>on second thought if you want spoilers check this</summary>  </details> more gateway maps = good 🆑 add: nanotrasen museum gateway map /🆑 --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |