mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
mayfools
486 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7cb5738fcb |
Adds a modular bitrunning map, changes safehouse spawns (#79937)
## About The Pull Request Primarily, this adds one new map to bitrunning that uses modular rooms. <details> <summary>pictures</summary>    </details> I also added in some changes: - Safehouses are now loaded using the modular map system rather than the bespoke solution qservers had. - Lowers the difficulty of psyker shuffle (which I felt was a little too nightmarish) and boosts its rewards. ## Why It's Good For The Game New maps More integration with prior systems ## Changelog 🆑 add: Added a new modular bitrunning domain - Starfront Saloon. balance: Psyker shuffle domain was made slightly easier and has been given more rewards. /🆑 |
||
|
|
3d074e7ede |
[MIRROR] Standing on structures such as crates, tables and bed will now look like it. [MDB IGNORE] (#25324)
* Standing on structures such as crates, tables and bed will now look like it. * Update deployable.dm * Makes this modular --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
837ddf7d00 |
Standing on structures such as crates, tables and bed will now look like it. (#79797)
## About The Pull Request From the creator of 'cosmetic' elements such as footstep_override and immerse... I've made an element called elevation that nudges mobs a few pixels up while standing on things like tables, crates and beds. Screenshots of many clones of the same character standing on different objects:  ## Why It's Good For The Game It makes it look like the mob is actually standing on an elevated surface. ## Changelog 🆑 add: Standing on structures such as crates, tables and bed will now look like it. /🆑 |
||
|
|
558c466b81 |
[MIRROR] Splits placeontop proc [MDB IGNORE] (#25103)
* Splits placeontop proc (#79702) ## About The Pull Request I find the proc hard to read honestly. There's no reason we can't split this into two functions - the secondary functionality is used only once, in reader.dmm. ## Why It's Good For The Game Code improvement Glorious snake case ## Changelog N/A nothing player facing --------- Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com> * Splits placeontop proc * Update brass_spreader.dm --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
7a1b1fa9ad |
Splits placeontop proc (#79702)
## About The Pull Request I find the proc hard to read honestly. There's no reason we can't split this into two functions - the secondary functionality is used only once, in reader.dmm. ## Why It's Good For The Game Code improvement Glorious snake case ## Changelog N/A nothing player facing --------- Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com> |
||
|
|
5586c7984c |
[MIRROR] Adds generic modular rooms [MDB IGNORE] (#24962)
* Adds generic modular rooms (#79419) ## About The Pull Request Atomized portion of the bitrunning content patch #78997. Anyone can use these, they are not bitrunning specific. Comes with a few biomes in sizes 7x7, 9x9, 11x11 <details> <summary>images</summary>                             </details> ## Why It's Good For The Game Adds some replay value, just slot in the modular root and select a preset ## Changelog N/A nothing player facing * Adds generic modular rooms --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
ec135f1250 |
Adds generic modular rooms (#79419)
## About The Pull Request Atomized portion of the bitrunning content patch #78997. Anyone can use these, they are not bitrunning specific. Comes with a few biomes in sizes 7x7, 9x9, 11x11 <details> <summary>images</summary>                             </details> ## Why It's Good For The Game Adds some replay value, just slot in the modular root and select a preset ## Changelog N/A nothing player facing |
||
|
|
4c826ec07c |
[MIRROR] Fixes Ashwalker Tendril Revives [MDB IGNORE] (#24945)
* Fixes Ashwalker Tendril Revives * Update ash_walker_den.dm --------- Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
d7fb20cfaf |
Fixes Ashwalker Tendril Revives (#79637)
## About The Pull Request - Changes the Ashwalker Tendril revive proc to hold the old body until the revive is done, and only delete the old body after moving the mind/client over. - Changes a single-letter var name to be more proper. ## Why It's Good For The Game Fixes #79635 The issue seems to have been due to the old mob being deleted, which deleted the mind. Later, when the new body was created, the mind was unavailable due to being deleted. So now, we just hold the old body for a bit and delete it once the new body is finished. I'm not sure why this suddenly stopped working. Perhaps we were abusing a long hard-del that delayed the mind being deleted and now it's no longer a thing? ## Changelog 🆑 fix: Ashwalker Tendril Revives no longer ghost the player being revived. /🆑 |
||
|
|
596b2f050e |
[MIRROR] Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls [MDB IGNORE] (#24804)
* Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls * Update supermatter.dm * Modular * More modular * Update cortical_borer_egg.dm --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
3c7005a37c |
Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls (#79320)
## About The Pull Request This helps clean up my favorite helper proc in the whole codebase, `notify_ghosts()`. The notify_suiciders, ignore_mapload, and flashwindow args are GONE. They have been replaced with the notify_flags bitflag argument. This was intended to make deadchat announcements a bitflag argument too, but those got reverted right before I originally wanted to submit this PR. The on-screen popup now shows the notification body when you hover it with your mouse again. The format is now `[notify_ghosts message] -- [click action (orbit/jump/play)]` Every single `notify_ghosts()` call has been changed to multiline format and has been given trailing commas. Pretty! ## Why It's Good For The Game Cleans up a proc that is very popular and going through a lot of changes at the time. Allows for further flexibility when this proc inevitably gets tweaked or improved. 12 -> 10 args is an improvement, and it doesn't impact the helper's flexibility at all. ## Changelog 🆑 Rhials code: The notify_ghosts proc has been cleaned up. Please report any abnormal changes in deadchat notification behavior. qol: The on-screen deadchat popups now contain the notification blurb when hovered with your mouse again. /🆑 |
||
|
|
ff46f9c979 |
[MIRROR] Basic Constructs: Proteon [MDB IGNORE] (#24729)
* Basic Constructs: Proteon (#79425) ## About The Pull Request Last one! Makes proteons into a basic mob, and completely removes the simple_animal construct supertype. Proteons aren't really designed to be played by a player, instead being a nuisance mapped into various ruins and traps. As such, they don't really have any special abilities. Instead, the hostile variant has a somewhat unique behavior. They'll viciously attack anyone who comes close, but, being frail little cowards, if a proteon takes damage it will immediately flee. After a random period between 2 and 4 seconds, it will stop fleeing and come back for more. In addition to this, a few other things have been done, some only related because they're in files I touched. - Moved proteons from the file for the Cleric's Den to their own file in the basic constructs folder. Given that they're used in several different ruins, they might as well not just be in the file for one. - Simple constructs have been cut, and with them the procs for healing/repairing on shades and cult structures, as those are no longer needed. - Because I was touching it anyway, I touched up the file for trap structures. They no longer use any one-letter variable names, and time is now universally listed in seconds rather than deciseconds in that file. - I removed a completely unused blackboard key from ice demons. This is something I noticed due to a change I ended up not making while working on proteon AI, but I figured I might as well leave it gone. ## Why It's Good For The Game Kills the last three simple construct typepaths, bringing us to the destined 19 removed. Huzzah! The proteon AI routine should inject a little spice into fighting proteons, especially for the unprepared - unlike many mobs, they won't stand there and take it if you decide to fight back, but you can never safely ignore them when they run away. They still aren't particularly dangerous. ## Changelog 🆑 refactor: Proteon constructs now use the basic mob framework. The ones encountered in ruins are a bit flightier now, and will briefly flee combat if attacked - only so that they can return and menace you again soon after. Please report any bugs. /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * Basic Constructs: Proteon * Update defcon2.dmm --------- Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
08274f8343 |
Basic Constructs: Proteon (#79425)
## About The Pull Request Last one! Makes proteons into a basic mob, and completely removes the simple_animal construct supertype. Proteons aren't really designed to be played by a player, instead being a nuisance mapped into various ruins and traps. As such, they don't really have any special abilities. Instead, the hostile variant has a somewhat unique behavior. They'll viciously attack anyone who comes close, but, being frail little cowards, if a proteon takes damage it will immediately flee. After a random period between 2 and 4 seconds, it will stop fleeing and come back for more. In addition to this, a few other things have been done, some only related because they're in files I touched. - Moved proteons from the file for the Cleric's Den to their own file in the basic constructs folder. Given that they're used in several different ruins, they might as well not just be in the file for one. - Simple constructs have been cut, and with them the procs for healing/repairing on shades and cult structures, as those are no longer needed. - Because I was touching it anyway, I touched up the file for trap structures. They no longer use any one-letter variable names, and time is now universally listed in seconds rather than deciseconds in that file. - I removed a completely unused blackboard key from ice demons. This is something I noticed due to a change I ended up not making while working on proteon AI, but I figured I might as well leave it gone. ## Why It's Good For The Game Kills the last three simple construct typepaths, bringing us to the destined 19 removed. Huzzah! The proteon AI routine should inject a little spice into fighting proteons, especially for the unprepared - unlike many mobs, they won't stand there and take it if you decide to fight back, but you can never safely ignore them when they run away. They still aren't particularly dangerous. ## Changelog 🆑 refactor: Proteon constructs now use the basic mob framework. The ones encountered in ruins are a bit flightier now, and will briefly flee combat if attacked - only so that they can return and menace you again soon after. Please report any bugs. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
1a2ddececa |
[MIRROR] new space ruin, the biological research outpost [MDB IGNORE] (#24662)
* new space ruin, the biological research outpost (#79149) ## About The Pull Request  adds this ruin to space ruin pool this is a shady (as NT always is) bioresearch outpost that got fucked up by an experiment this has like some puzzle aspect to it since you gotta find keycards and shit and press buttons to unlock shield gates this ends with you fighting a heart which if you defeat, destroys the blockade that prevents you from entering the outpost vault also you can no longer literally just cut indestructible grilles or unanchor indestructible windows ### new puzzle elements or something idk variant of pressure plate that you cannot remove and it sends a puzzle signal cooler red puzzle doors that look very foreboding or something idk theyre for this ruin also puzzle blockades, which are indestructible dense objects that are destroyed if they receive a puzzle signal and also buttons and keycard pads for puzzles https://github.com/tgstation/tgstation/assets/70376633/c98807ec-1e7b-49c4-a757-cdbb76a1b566 https://github.com/tgstation/tgstation/assets/70376633/9d5d9dd1-5868-44e6-a978-5ea57b30c298 stuff that throws electric shocks in a pattern, ignores insuls and only knocks down, and no you cannot just run past https://github.com/tgstation/tgstation/assets/70376633/5772917c-a963-48a4-a743-b0f610801d25 ### enemies living floor, it can only attack stuff on top of it and it attacks until the victim is dead it is invincible to all but a crowbar, and it cannot move, and it remains hidden until a victim is in range https://github.com/tgstation/tgstation/assets/70376633/aa1d54f6-b259-4e58-9d44-e393d2131acf living flesh, it can replace your limbs with itself the conditions for that are; the limb must have 20 or more brute, victim must be alive and dismemberable, the limb may not be torso or head, or the limb may not be living flesh alternatively it can replace a missing limb these are all checked with every attack they have 20 hp the limbs in question will sometimes act up, while passively draining nutrition, arms will randomly start pulling nearby stuff, legs may step randomly limbs when detached, turn into mobs and reactivate AI 2 seconds later. if the host is shocked, all living flesh limbs will detach, or if the host dies they will also do that https://github.com/tgstation/tgstation/assets/70376633/765cc99e-c800-4efb-aabe-d68817bbd7ae ## Why It's Good For The Game ruin variety is cool i think also the other things i added should be useful for other mappers for bitrunning or whatever also bug bad for that one fix ## Changelog 🆑 add: living floor, living flesh, and other stuff for the bioresearch outpost ruin add: bioresearch outpost ruin fix: you may not defeat indestructible grilles and windows with mere tools /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * new space ruin, the biological research outpost --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
d31c21ff1b |
new space ruin, the biological research outpost (#79149)
## About The Pull Request  adds this ruin to space ruin pool this is a shady (as NT always is) bioresearch outpost that got fucked up by an experiment this has like some puzzle aspect to it since you gotta find keycards and shit and press buttons to unlock shield gates this ends with you fighting a heart which if you defeat, destroys the blockade that prevents you from entering the outpost vault also you can no longer literally just cut indestructible grilles or unanchor indestructible windows ### new puzzle elements or something idk variant of pressure plate that you cannot remove and it sends a puzzle signal cooler red puzzle doors that look very foreboding or something idk theyre for this ruin also puzzle blockades, which are indestructible dense objects that are destroyed if they receive a puzzle signal and also buttons and keycard pads for puzzles https://github.com/tgstation/tgstation/assets/70376633/c98807ec-1e7b-49c4-a757-cdbb76a1b566 https://github.com/tgstation/tgstation/assets/70376633/9d5d9dd1-5868-44e6-a978-5ea57b30c298 stuff that throws electric shocks in a pattern, ignores insuls and only knocks down, and no you cannot just run past https://github.com/tgstation/tgstation/assets/70376633/5772917c-a963-48a4-a743-b0f610801d25 ### enemies living floor, it can only attack stuff on top of it and it attacks until the victim is dead it is invincible to all but a crowbar, and it cannot move, and it remains hidden until a victim is in range https://github.com/tgstation/tgstation/assets/70376633/aa1d54f6-b259-4e58-9d44-e393d2131acf living flesh, it can replace your limbs with itself the conditions for that are; the limb must have 20 or more brute, victim must be alive and dismemberable, the limb may not be torso or head, or the limb may not be living flesh alternatively it can replace a missing limb these are all checked with every attack they have 20 hp the limbs in question will sometimes act up, while passively draining nutrition, arms will randomly start pulling nearby stuff, legs may step randomly limbs when detached, turn into mobs and reactivate AI 2 seconds later. if the host is shocked, all living flesh limbs will detach, or if the host dies they will also do that https://github.com/tgstation/tgstation/assets/70376633/765cc99e-c800-4efb-aabe-d68817bbd7ae ## Why It's Good For The Game ruin variety is cool i think also the other things i added should be useful for other mappers for bitrunning or whatever also bug bad for that one fix ## Changelog 🆑 add: living floor, living flesh, and other stuff for the bioresearch outpost ruin add: bioresearch outpost ruin fix: you may not defeat indestructible grilles and windows with mere tools /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
85ee756c24 |
[MIRROR] [CI Fix] The Demonic Frost-Miner will not attack corpses. [MDB IGNORE] (#24615)
* [CI Fix] The Demonic Frost-Miner will not attack corpses. (#79294) ## About The Pull Request Fixes #79147. Prevents the Demonic Frost-Miner from shooting at corpses by returning early from `OpenFire()`. Also adds the "gutted" status effect to the corpses in its arena so it won't try to gut them. ## Why It's Good For The Game #78826 introduced an unfortunate bug by placing corpses in the Frost Miner's arena. There were a combination of three factors at play here: that the Miner attacks corpses, that it happens to use colossus bolts in its attacks, which dust corpses, and that some unfortunate quirk of life code causes runtimes if, as far as I can tell, a life tick goes off when a mob is at the wrong point in the dusting process. The time this process takes happened to perfectly coincide with the Monkey Business unit test (being the first test that takes a significant period of time), causing it to randomly fail. So, this fixes a flaky test that has been a pain in the ass for the last five days, is the big thing. Also, it can't possibly have been intended for the Miner to run around obliterating the aesthetic corpses in its arena within the first 15 seconds of any given round. Completely ruining the mood! I'll point out that this particular boss may have been forgotten in #77731, which set out to make only the colossus still gib/dust you, but even were that not the case I think it would be a bit silly for the Miner to be busy shooting lifeless corpses when a player shows up to challenge it, rather than standing in its scary ritual circle. ## Changelog 🆑 fix: The Demonic Frost-Miner will no longer run around destroying the corpses in its arena the moment the round begins. /🆑 * [CI Fix] The Demonic Frost-Miner will not attack corpses. --------- Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> |
||
|
|
157fafeaa9 |
[CI Fix] The Demonic Frost-Miner will not attack corpses. (#79294)
## About The Pull Request Fixes #79147. Prevents the Demonic Frost-Miner from shooting at corpses by returning early from `OpenFire()`. Also adds the "gutted" status effect to the corpses in its arena so it won't try to gut them. ## Why It's Good For The Game #78826 introduced an unfortunate bug by placing corpses in the Frost Miner's arena. There were a combination of three factors at play here: that the Miner attacks corpses, that it happens to use colossus bolts in its attacks, which dust corpses, and that some unfortunate quirk of life code causes runtimes if, as far as I can tell, a life tick goes off when a mob is at the wrong point in the dusting process. The time this process takes happened to perfectly coincide with the Monkey Business unit test (being the first test that takes a significant period of time), causing it to randomly fail. So, this fixes a flaky test that has been a pain in the ass for the last five days, is the big thing. Also, it can't possibly have been intended for the Miner to run around obliterating the aesthetic corpses in its arena within the first 15 seconds of any given round. Completely ruining the mood! I'll point out that this particular boss may have been forgotten in #77731, which set out to make only the colossus still gib/dust you, but even were that not the case I think it would be a bit silly for the Miner to be busy shooting lifeless corpses when a player shows up to challenge it, rather than standing in its scary ritual circle. ## Changelog 🆑 fix: The Demonic Frost-Miner will no longer run around destroying the corpses in its arena the moment the round begins. /🆑 |
||
|
|
c056f4dac9 |
[MIRROR] Nanotrasen basic mobs. [MDB IGNORE] (#24573)
* Nanotrasen basic mobs. (#78917) ## About The Pull Request First and foremost, converts all Nanotrasen simplemobs into basic mobs. To avoid messy and redundant code, or god forbid, making Nanotrasen mobs a subtype of Syndicate ones, I've made Syndicate, Russian, and Nanotrasen mobs all share a unified "Trooper" parent. This should have no effect on their behaviors, but makes things much easier to extend further in the future. While most of this PR is pretty cut-and-dry, I've done a couple notable things. For one, all types of ranged trooper will now avoid friendly fire, instead of shooting their friends in the back. Even the Russians have trigger discipline. I've also created a new AI subtree that allows mobs to call for reinforcements. I've hopefully made this easy to extend, but the existing version works as follows: - A mob with this subtree that gains a target that is also a mob will call out to all mobs within 15 tiles. - If they share a faction, mobs receiving the call will have the target added to their retaliate list, and have a new key set targeting the calling mob. - If they have the correct subtree in their AI controller, called-to mobs will then run over to help out. Sadly, this behavior is currently used only by a few completely unused Nanotrasen mobs, so in practice it will not yet be seen. Finally, I've fixed a minor issue where melee Russian mobs punch people to death despite holding a knife. They now use the proper effects for stabbing instead of punching. ## Why It's Good For The Game Removes 8 more simple animals from the list. As said above, making all "trooper" type mobs share a common parent cuts down on code reuse, ensures consistency of behavior, and makes it much easier to add new troopers not affiliated with these groups. I expect that I'll make pirates share this same parent next. The new "reinforcements" behavior, though extremely powerful, opens up exciting new opportunities in the future. There aren't many existing behaviors that allow basic mobs to work _together_ in interesting ways, and I think adding some enemy teamwork could be fun. ## Changelog 🆑 refactor: Hostile Nanotrasen mobs now use the basic mob framework. This should make them a little smarter and more dangerous. Please report any bugs. fix: Russian mobs will now actually use those knives they're holding. /🆑 * Nanotrasen basic mobs. * Modular --------- Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
b65f729901 |
Nanotrasen basic mobs. (#78917)
## About The Pull Request First and foremost, converts all Nanotrasen simplemobs into basic mobs. To avoid messy and redundant code, or god forbid, making Nanotrasen mobs a subtype of Syndicate ones, I've made Syndicate, Russian, and Nanotrasen mobs all share a unified "Trooper" parent. This should have no effect on their behaviors, but makes things much easier to extend further in the future. While most of this PR is pretty cut-and-dry, I've done a couple notable things. For one, all types of ranged trooper will now avoid friendly fire, instead of shooting their friends in the back. Even the Russians have trigger discipline. I've also created a new AI subtree that allows mobs to call for reinforcements. I've hopefully made this easy to extend, but the existing version works as follows: - A mob with this subtree that gains a target that is also a mob will call out to all mobs within 15 tiles. - If they share a faction, mobs receiving the call will have the target added to their retaliate list, and have a new key set targeting the calling mob. - If they have the correct subtree in their AI controller, called-to mobs will then run over to help out. Sadly, this behavior is currently used only by a few completely unused Nanotrasen mobs, so in practice it will not yet be seen. Finally, I've fixed a minor issue where melee Russian mobs punch people to death despite holding a knife. They now use the proper effects for stabbing instead of punching. ## Why It's Good For The Game Removes 8 more simple animals from the list. As said above, making all "trooper" type mobs share a common parent cuts down on code reuse, ensures consistency of behavior, and makes it much easier to add new troopers not affiliated with these groups. I expect that I'll make pirates share this same parent next. The new "reinforcements" behavior, though extremely powerful, opens up exciting new opportunities in the future. There aren't many existing behaviors that allow basic mobs to work _together_ in interesting ways, and I think adding some enemy teamwork could be fun. ## Changelog 🆑 refactor: Hostile Nanotrasen mobs now use the basic mob framework. This should make them a little smarter and more dangerous. Please report any bugs. fix: Russian mobs will now actually use those knives they're holding. /🆑 |
||
|
|
26a2829b1a |
[MIRROR] Demonic-Frost Miner Ruin Aesthetic Refresh [MDB IGNORE] (#24487)
* Demonic-Frost Miner Ruin Aesthetic Refresh (#78826) ## About The Pull Request Updates the Demonic-Frost Miner ruin on IceBox, keeps multi-z and general shape, but changes some things to better fit the theme of the "Mining Site" that the ruin is named.   ## Why It's Good For The Game The current ruin doesn't fit well as a "Mining Site", this makes it fit the theme more, while looking better in general. It also makes the arena more interesting, rather than solid ice. ## Changelog 🆑 add: Demonic-Frost Miner's ruin gets an aesthetic refresh /🆑 * Demonic-Frost Miner Ruin Aesthetic Refresh --------- Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com> |
||
|
|
d44abb0315 |
Demonic-Frost Miner Ruin Aesthetic Refresh (#78826)
## About The Pull Request Updates the Demonic-Frost Miner ruin on IceBox, keeps multi-z and general shape, but changes some things to better fit the theme of the "Mining Site" that the ruin is named.   ## Why It's Good For The Game The current ruin doesn't fit well as a "Mining Site", this makes it fit the theme more, while looking better in general. It also makes the arena more interesting, rather than solid ice. ## Changelog 🆑 add: Demonic-Frost Miner's ruin gets an aesthetic refresh /🆑 |
||
|
|
b6da56408e |
[MIRROR] A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc [MDB IGNORE] (#24430)
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024) ## About The Pull Request - Refactored `bullet_act`. Adds `should_call_parent` and refactors associated children to support that. - Fixes silicons sparking off when hit by disabler fire. - Desnowflakes firing range target integrity and cleans up its bullet-hole code a bit. - Cleans up changeling tentacle code a fair bit and fixes it not taking off throw mode if you fail to catch something. - The Sleeping Carp deflection is now signalized - Nightmare projectile dodging is now signalized and sourced from the Nightmare's brain rather than species - Refactored how cardboard cutouts get knocked over to be less snowflaked / use integrity - Also adds projectile `on_hit` `should_call_parent` and cleans up a bit of that, particularly their arguments. - On hit arguments were passed wrong this entire time, it's a good thing nothing relied on that. ## Why It's Good For The Game This is cringe. https://github.com/tgstation/tgstation/blob/1863eb2cd82e7cee4fdfff37b42d3fd0c7edd797/code/modules/mob/living/carbon/human/_species.dm#L1430-L1442 Bullets should overall act more consistent across mob types and objects. ## Changelog 🆑 Melbert fix: Silicons don't spark when shot by disablers fix: Changelings who fail to catch something with a tencacle will have throw mode disabled automatically fix: Fixes occasions where you can reflect with Sleeping Carp when you shouldn't be able to fix: Fixes some projectiles causing like 20x less eye blur than they should be refactor: Refactored bullet-mob interactions refactor: Nightmare "shadow dodge" projectile ability is now sourced from their brain /🆑 * A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc * Modular changes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
8d6c531124 |
[MIRROR] Adds 'Bloody Spreader' component that bloodies everything it touches [MDB IGNORE] (#24436)
* Adds 'Bloody Spreader' component that bloodies everything it touches * Update meat.dm --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
cd030b0690 |
Adds 'Bloody Spreader' component that bloodies everything it touches (#78743)
## About The Pull Request Adds 'Bloody Spreader' component that bloodies everything it touches! For example inserting an item into it if it is a storage item. Or entering it if it's a turf, or bumping onto it, or... you get the point, hopefully. Added this component to the MEAT backpack, meat slabs, bouncy castles, meateor fluff, meateor heart, and the heretic sanguine blade. Gave most of these the blood walk component as well, which spreads blood if it's dragged around. Meat slabs contain a limited amount of both components, eventually they will 'dry out'. ## Why It's Good For The Game Meat isn't meaty and squelchy enough, this will make it meatier. It also makes the janitor suffer. ## Changelog 🆑 code: Adds 'Bloody Spreader' component that bloodies everything it touches! code: For example inserting an item into it if it is a storage item. Or entering it if it's a turf, or bumping onto it, or... you get the point, hopefully. add: Added this component to the MEAT backpack, meat slabs, bouncy castles, meateor fluff, meateor heart, and the heretic sanguine blade. add: Gave most of these the blood walk component as well, which spreads blood if it's dragged around. add: Meat slabs contain a limited amount of both components, eventually they will 'dry out'. code: Added a signal for when an item is entered into storage. /🆑 |
||
|
|
93ec5a72f7 |
A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc (#79024)
## About The Pull Request - Refactored `bullet_act`. Adds `should_call_parent` and refactors associated children to support that. - Fixes silicons sparking off when hit by disabler fire. - Desnowflakes firing range target integrity and cleans up its bullet-hole code a bit. - Cleans up changeling tentacle code a fair bit and fixes it not taking off throw mode if you fail to catch something. - The Sleeping Carp deflection is now signalized - Nightmare projectile dodging is now signalized and sourced from the Nightmare's brain rather than species - Refactored how cardboard cutouts get knocked over to be less snowflaked / use integrity - Also adds projectile `on_hit` `should_call_parent` and cleans up a bit of that, particularly their arguments. - On hit arguments were passed wrong this entire time, it's a good thing nothing relied on that. ## Why It's Good For The Game This is cringe. https://github.com/tgstation/tgstation/blob/1863eb2cd82e7cee4fdfff37b42d3fd0c7edd797/code/modules/mob/living/carbon/human/_species.dm#L1430-L1442 Bullets should overall act more consistent across mob types and objects. ## Changelog 🆑 Melbert fix: Silicons don't spark when shot by disablers fix: Changelings who fail to catch something with a tencacle will have throw mode disabled automatically fix: Fixes occasions where you can reflect with Sleeping Carp when you shouldn't be able to fix: Fixes some projectiles causing like 20x less eye blur than they should be refactor: Refactored bullet-mob interactions refactor: Nightmare "shadow dodge" projectile ability is now sourced from their brain /🆑 |
||
|
|
7cf7be4b7b |
[MIRROR] Tram v6/Transport Subsystem [MDB IGNORE] (#24399)
* Tram v6/Transport Subsystem * Update icon_smoothing.dm * Update utility.dm * defines/icon * Update airlock.dm * Update door.dm * Update airlock.dm * Update airlock.dm --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
7626c3bd6c |
Tram v6/Transport Subsystem (#78230)
Co-authored-by: Unit0016 <50649185+unit0016@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: Kylerace <kylerlumpkin1@gmail.com> |
||
|
|
fa31acc3ec |
[MIRROR] Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level [MDB IGNORE] (#24386)
* Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level (#78803) ## About The Pull Request Saw this in CI.  ~~Quick fix for it--because turrets are not mobs trying to call this proc on them will runtime. So let's give them their own implementation of the proc.~~ Just kidding, let's refactor faction checking entirely ## Why It's Good For The Game Fixes an issue with basic mob AI targeting and turrets. ## Changelog 🆑 fix: basic mobs will no longer runtime when trying to check the faction of a porta turret refactor: faction checking is now done at the atom/movable level /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level * Modular updates --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> |
||
|
|
847514310d |
Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level (#78803)
## About The Pull Request Saw this in CI.  ~~Quick fix for it--because turrets are not mobs trying to call this proc on them will runtime. So let's give them their own implementation of the proc.~~ Just kidding, let's refactor faction checking entirely ## Why It's Good For The Game Fixes an issue with basic mob AI targeting and turrets. ## Changelog 🆑 fix: basic mobs will no longer runtime when trying to check the faction of a porta turret refactor: faction checking is now done at the atom/movable level /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
4a618d0561 |
[MIRROR] Watcher Nest Lavaland Ruin [MDB IGNORE] (#24286)
* Watcher Nest Lavaland Ruin (#78790) ## About The Pull Request Adds a small new lavaland ruin, the Watchers' Grave.   You will need to figure out yourself how to find a way through the walls surrounding it (it's not very hard). This is mostly just atmospheric but also serves as a delivery vehicle for a unique item; an orphaned Watcher egg. (That's kind of it in terms of loot, unless you count a handful of lavaland mob corpses and mushrooms). You can either eat this (it's an egg), throw it at someone to spawn an angry watcher, or keep hold of it for a while and see what happens. <details>  That's right it's your very own baby watcher. It orbits your head and shoots at lavaland creatures for unimpressive damage. It won't ever intentionally shoot a player but they might walk in front of it, as it doesn't hurt very much they will probably forgive you. If you die it will continue circling your corpse to guard it against predation. </details> In creating this ruin I also added a new component called "corpse description". It provides some extra examine text to a corpse which is removed permanently if the mob is revived. There's a field you can varedit on corpse spawners (or make a subtype) which will automatically apply it to spawned corpses. You can use it for environmental storytelling. Or admins can use it to make fun of how you died. Also I fixed basic mobs runtiming when examined by ghosts. ## Why It's Good For The Game More variety in map generation. It's cute. Adds a tool that mappers might like. ## Changelog 🆑 add: Adds a new lavaland ruin where you can find a unique egg. /🆑 * Watcher Nest Lavaland Ruin --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
eb28d04f08 |
Watcher Nest Lavaland Ruin (#78790)
## About The Pull Request Adds a small new lavaland ruin, the Watchers' Grave.   You will need to figure out yourself how to find a way through the walls surrounding it (it's not very hard). This is mostly just atmospheric but also serves as a delivery vehicle for a unique item; an orphaned Watcher egg. (That's kind of it in terms of loot, unless you count a handful of lavaland mob corpses and mushrooms). You can either eat this (it's an egg), throw it at someone to spawn an angry watcher, or keep hold of it for a while and see what happens. <details>  That's right it's your very own baby watcher. It orbits your head and shoots at lavaland creatures for unimpressive damage. It won't ever intentionally shoot a player but they might walk in front of it, as it doesn't hurt very much they will probably forgive you. If you die it will continue circling your corpse to guard it against predation. </details> In creating this ruin I also added a new component called "corpse description". It provides some extra examine text to a corpse which is removed permanently if the mob is revived. There's a field you can varedit on corpse spawners (or make a subtype) which will automatically apply it to spawned corpses. You can use it for environmental storytelling. Or admins can use it to make fun of how you died. Also I fixed basic mobs runtiming when examined by ghosts. ## Why It's Good For The Game More variety in map generation. It's cute. Adds a tool that mappers might like. ## Changelog 🆑 add: Adds a new lavaland ruin where you can find a unique egg. /🆑 |
||
|
|
0c9149bf35 |
[MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation * Modular updates * Modular updates * Modular updates --------- Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
d6f79f4427 |
Refactor gib code to use bitflags and have documentation (#78754)
## About The Pull Request This takes all the gib related procs: - `gib()` - `spawn_gibs()` - `spill_organs()` - `spread_bodyparts()` And adds heavy documentation that communicates what the procs are used for and how the different bitflags affect them. The difference is noticeable: `gib(TRUE, FALSE, FALSE, null)` vs `gib(DROP_ORGANS|DROP_BODYPARTS)` The code is now much more legible which is important considering it's used in a lot of places! Another robust change, is that we had several places in the code where there were double negatives like so: ``` /mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) if(!no_bodyparts) // DOUBLE NEGATIVES ARE BAD M'KAY?!? // do stuff here ``` This is a mindfuck to untangle. I inverted a lot of these parts so we don't lose our sanity. Last thing that was changed was a big `if()` loop in the `spill_organ()` proc. This was refactored to just be a simple `for` loop with `continue` statements where we needed to skip enabled bitflags. It's now shorter and cleaner than before. The only slight gameplay change this affects is that gibbing a mob now guarantees to drop all items unless the `DROP_ITEMS` bitflag is deliberately omitted. Some places like admin gib self, we don't want this to happen. ## Why It's Good For The Game Gib code is very old. (~15 years) People kept adding more arguments to the procs when it should have been a bitflag initially. By doing it this way, there is more flexibility and readability when it comes to adding new code in the future. ## Changelog 🆑 refactor: Refactor gib code to be more robust. qol: Gibbing a mob will result in all items being dropped instead of getting deleted. There are a few exceptions (like admin gib self) where this will not take place. /🆑 |
||
|
|
379c4d707f |
[MIRROR] Ashwalkers team stores players_spawned via ckeys rather than keys now [MDB IGNORE] (#24071)
* Ashwalkers team stores players_spawned via ckeys rather than keys now * Update mining_roles.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
13cfcdad6b |
Ashwalkers team stores players_spawned via ckeys rather than keys now (#78688)
## About The Pull Request So this just changes some instances of `key` to `ckey`. There is a reason for it I swear! So when ashwalkers get spawned their mob gets added to the `team.players_spawned` list via their `key` var. --- However, we have this as part of sacrifice code: Here the `deliverykey` var is set to `fingerprintslast`, which is a ckey. https://github.com/tgstation/tgstation/blob/f6f6ebc276bacd33e0f88e6454783209c1b28d57/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm#L79 https://github.com/tgstation/tgstation/blob/f6f6ebc276bacd33e0f88e6454783209c1b28d57/code/modules/forensics/_forensics.dm#L218 --- That `deliverykey` is then used to remove a ckey from the list here https://github.com/tgstation/tgstation/blob/f6f6ebc276bacd33e0f88e6454783209c1b28d57/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm#L84 Since `deliverkey` is a `ckey`, which is not always the same thing as the `key`, this can cause a mob to not get removed from the list properly if the two mismatch. ```(From DM Reference on `ckey`: "The key in canonical form. To do this, it strips all punctuation and space from the key and converts to lowercase. The result is still unique for each different key. ")``` I just think it's a bit confusing to switch back and forth, and it's unclear if it causes errors or not. This could be considered a code improvement I guess? Or a fix, depending. ## Why It's Good For The Game Less confusing, more consistent code. Less bugs. Much good. ## Changelog Nothing anyone shall ever notice besides the coders |
||
|
|
d9624bdf97 |
[MIRROR] Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse [MDB IGNORE] (#23794)
* Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse * Update hilbertshotel.dm * Modular proc ref --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
1b96345e44 |
Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse (#77786)
## About The Pull Request Adds multi-z support for lazy templates Also fixes some improper use and placement for turf flags ## Why It's Good For The Game Shadow needs/wants this for bit runner maps. Turf flags are also why lava has been generating in places it shouldnt. (inside of ruins) ## Changelog 🆑 fix: Lava can no longer occasionally generate inside of previously loaded templates and breach and/or destroy shit /🆑 --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
9f3be12c19 |
[MIRROR] [TEST-MERGE FIRST] Wound refactor number two: Full synthetic support [MDB IGNORE] (#23601)
* [TEST-MERGE FIRST] Wound refactor number two: Full synthetic support * Wound refactor two compatability (#23618) * Delam emergency procedure moth (#23483) * safety moff * delta/whitespace/examine * icebox * moff poster * moff poster * Update DelamProcedure.tsx * Update scram.dm * sound plays during warning * remove nightshift, theres already a global proc * scrubber hint * missed that define * Apply suggestions from code review Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * covered by ui_interact * Update modular_skyrat/modules/delam_emergency_stop/code/scram.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/delam_emergency_stop/code/scram.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * Automatic changelog for PR #23483 [ci skip] * Automatic changelog compile [ci skip] * [non modular] disables TG "hold up" for the foreseeable future (#23607) Update gun.dm * Automatic changelog for PR #23607 [ci skip] * [MIRROR] Desouls Hivelord [MDB IGNORE] (#23609) * Desouls Hivelord (#78213) ## About The Pull Request  Replaces the sprite of the hivelord with a new one, in my continuing quest to annihilate the old asteroid mob sprites. A (never completed) asteroid mob resprite was actually my first PR, this one is my 200th. I am also planning on fucking with basic mob versions of these mobs some time but the sprites can be atomised out. In addition to replacing the old-ass MSPaint sprites, this PR also adds a short death animation effect to the hivelord brood (from hivelords or legions) which looks nicer than them just vanishing instantly upon death. Look at this video for an example of the animation: https://www.youtube.com/watch?v=cKaskN5-y2A ## Why It's Good For The Game Looks nicer. ## Changelog 🆑 image: Hivelords have a new sprite. image: Hivelord and Legion brood have a death animation. /🆑 * Desouls Hivelord --------- Co-authored-by: Jacquerel <hnevard@gmail.com> * Automatic changelog for PR #23609 [ci skip] * [MIRROR] Updates chem factory tank sprites [MDB IGNORE] (#23608) * Updates chem factory tank sprites (#78209) Updates chem factory tank sprites. * Updates chem factory tank sprites --------- Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com> * [MIRROR] Rice Dough can be made in a beaker [MDB IGNORE] (#23611) * Rice Dough can be made in a beaker (#78062) ## About The Pull Request Rice dough can be made in a beaker using 20u of Rice Flour and 10u of Water. 10u of Rice Flour is made from 5u of Rice and 5u of Flour. Rice dough can still be crafted manually using the crafting menu and the original recipe. ## Why It's Good For The Game Cooks can sometimes get swamped with work, especially on a high-pop shift or when there are no botanists. By making rice dough more convenient to make, cooks don't need to spend as much time in the crafting menu. Rice Flour is made from mixing equal parts Rice and Flour. Since no recipe other than Rice dough uses both Rice and Flour in it's Recipe, it should be fine to turn those regents into the intermediate reagent "Rice Flour". Fixes #77966 ## Changelog 🆑 qol: Rice Dough may be made in beaker instead of being crafted, but the rice and flour must be added first /🆑 * Rice Dough can be made in a beaker --------- Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> * Automatic changelog for PR #23608 [ci skip] * Automatic changelog for PR #23611 [ci skip] * f * awda * unused type!!! * Apply suggestions from code review Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * oh hey unused defines! bye --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> --------- Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> |
||
|
|
009af8c2ce |
[TEST-MERGE FIRST] Wound refactor number two: Full synthetic support (#78124)
## About The Pull Request Heavily refactors wounds AGAIN. The primary thing this PR does is completely change how wounds are generated and added - while the normal "hit a guy til they bleed" stuff works about the same, asking for a specific type of wound, say, like how vending machines try to apply a compound fracture sometimes, isnt going to work if we ever get any non-organic wounds, which the previous refactor allowed. With this PR, however... * You can now ask for a specific type of wound via get_corresponding_wound_type(), which takes wound types, a limb, wound series, etc. and will try to give you a wound fitting those specifications - but also, a wound that can be applied to a limb. * This will allow for a vending machine to apply a compound fracture to a human, but a collapsed superstructure (assuming my synth wounds go in) to a robot There are now new "series types" and "wound specific types" that allow us to designate what series are "mainline" and randomly generatable, and what are "alternate types" and must be generated manually - you can see the documentation in wounds.dm. The behavior of limping and interaction delays has been abstracted to datum/wound from bone wounds to allow just, general ease of development Pregen data now allows for series-specific wound penalties. Example: You could set a burn wound's series wound penalty to 40, which would make wound progression in the burn category easier - but it would not make it any easier to get a slashing wound. As it stands wound penalties are for wounds globally Scar files are now picked in a "priority" list, where the wound checks to see if the limb has a biostate before moving down in said list. Example: Wounds will check for flesh first, if it finds it - it will use the flesh scar list. Failing that, they then check bone - if it uses that, it will use the bone scar list. This allows for significantly more modular scars that dont even need much proc editing when a new wound type is added Misc changes: most initial() usage has been replaced by singleton datums, wound_type is now wound_types and thus wounds can accept multiple wound types, wounds can now accept multiple tool behaviors for treatment, wounds now have a picking weight so we can make certain wounds rarer flatly, This PR also allows for wounds to override lower severity wounds on generation, allowing eswords to jump to avulsions - but in spirit of refactoring, this has been disabled by default (see pregen data's competition_mode var). ## Why It's Good For The Game Code quality is good! Also, all the changes above allow wounds to be a MUCH more modular system, which is one of its biggest problems right now - everything is kinda hardcoded and static, making creative work within wounds harder to do. ## Changelog 🆑 refactor: Refactored wounds yet again fix: Wounds are now picked from the most severe down again, meaning eswords can jump to avulsions fix: Scar descs are now properly applied /🆑 |
||
|
|
18fc2d9b16 |
[MIRROR] Oldstation now has their own RND [MDB IGNORE] (#23567)
* Oldstation now has their own RND * Update oldstation_fluff.dm * Update techweb_types.dm * beaker capacity --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
71da4ca73f |
[MIRROR] Refactors the notransform variable into a trait. [MDB IGNORE] (#23566)
* Refactors the `notransform` variable into a trait. * Update robot_upgrades.dm * modular --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
aa820c08fe |
Oldstation now has their own RND (#78132)
## About The Pull Request This PR does many things and I expect to be asked to atomize some stuff. ### Oldstation Additions Oldstation now has their own research server, generating their own points. To help alleviate major concerns, they have a few stuff to help with this: - They now have a pre-built operating computer - They now have an Autopsy scanner - They now have access to Experimental Dissection Experimental Dissection is the old dissection, giving research points in the form of paper notes on completion. They must be turned in to the RND server (only works on the Oldstation one, so you can't abuse this) for points. This was an idea I've had for some time, as Oldstation is used somewhat as a representation of how ss13 used to be (through its use of directional windows (before they got removed, but I'd like to bring them back), old IDs, RTGs, and old engines before they got removed from the game fully) Considering there are 11 alien mobs in Oldstation, there is 27.5k research points to get from alien corpses, enough to bring them up to speed with whatever they wish to do. This is their 'alternative' for experiments (which they can still do if they want, but it is very hard to do, outside of dissection which is needed for the node). This surgery isn't repeatable, isn't upgradable, and isn't removed by being healed. It is not mutually exclusive with autopsy (so you can't ruin yourself doing the wrong surgery). ### Other stuff - Ninjas now drain RND points from the server they drain from, rather than always hitting science - Syncing machines to research roundstart is now a macro, and now immediately syncs to a server on your Z-level. Machines will automatically connect to the Science servers if none else are available. ### non-player facing - Science, Admin, and Oldstation techwebs are now no longer vars on research, but stored in research's list of techwebs. - ``get_available_servers`` and ``find_valid_servers`` are now procs on the research subsystem, rather than the experisci component. - Oldstation code has been split into separate files. ## Why It's Good For The Game Oldstation is one of my favorite ruins, but it is also one of the largest complaints for RND (along with Golems) because they use the station's Science nodes & points (I recently tried de-hardcoding Science stuff to help prepare for this, but I didn't get everything in advance). The complaint stems from these ghost roles, who are meant to be a fun activity to do while waiting for the next round, using the station's research points for their own stuff, completely untrackable unless someone goes out of their way to grief a ghost spawn just for using points to get things they need. These roles make their own servers to drain the station, and I find that unfun and quite boring for everyone- it's also not very flavorful, why would Charliestation know of the station's RND to take advantage of it? This hopes to fix those issues, make Charliestation more worthwhile, and more flavorful. ## Changelog 🆑 fix: Getting a node researched now properly makes it no longer hidden. fix: Ninjas draining RD servers now drains it from the connected techweb, rather than sniping Science. balance: Machines will first try to connect to a techweb with servers on their z-level, with the Science techweb remaining as fallback. add: Oldstation RND, comes with their own Techweb and special surgery to gain research points through dissecting Xenomorphs. /🆑 |
||
|
|
4b8de7b79f |
Refactors the notransform variable into a trait. (#78146)
## About The Pull Request Hey there, There were more than a few times (like in cinematic code) where we might need to accurately know the source of what's adding this trait (or have multiple sources for the whole 'we don't want this mob to do shit while we transform this mob'), so in order to rectify this potential issue, let's refactor it into a trait. ## Why It's Good For The Game Some code already declared that there might be issues with this being a boolean var (with no way of knowing _why_ we don't want this mob to not transform (or not do anything idk). Let's remove those comments and any future doubt in those instances with the trait macros. Also, stuff like `TRAIT_IMMOBILIZED` which does a similar thing in many contexts was already a trait that was regularly added in conjunction with flipping the variable, so we're able to flatten all that stuff into `add_traits()` and `remove_traits()` now. nice I also cleaned up quite a bit of code as I saw it, let me know if it should be split out but I guarantee that if I didn't do it- no one will for the next two years. ## Changelog 🆑 refactor: If you transform into another mob and notice bugs with interacting with the game world, please create a bug report as this framework was recently refactored. /🆑 Probably fucked up somewhere, lmk --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
2bcbb36ab9 |
[MIRROR] [TEST-MERGE FIRST] Allows all limbs to be dismembered and significantly refactors wounds [MDB IGNORE] (#23407)
* [TEST-MERGE FIRST] Allows all limbs to be dismembered and significantly refactors wounds * ah fuck it * test * edaawdawd * Revert "edaawdawd" This reverts commit 47be710fe61a1f4ca79212b29b3e88bf05ec9a3a. * nothing but sheer hatred * freaawd * dzfxg * Fixing some diffs here while we are at it. * These are deprecated and should be removed --------- Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: nikothedude <simon.prouty@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
16ccf6a165 |
[MIRROR] Fixes the Hilbert's research tram [MDB IGNORE] (#23448)
* Fixes the Hilbert's research tram (#78035) ## About The Pull Request Corrects the specific_tram_id helper for the Hilbert's Research to use the hilbert tram ID. I've also dropped the `.../hilbert/research` (tram-specific) paths in favor of simply `.../hilbert` ## Why It's Good For The Game Fixes the Hilbert Hotel Research ruin's tram, and also stops the malfunctioning tram event from being able to use that tram to start. (No more trams going haywire on maps without trams!) Closes #78018 ## Changelog 🆑 fix: Hilbert's Hotel Research ruin now has a functioning tram. As a side effect, the malfunctioning tram event should now only fire on maps with a tram! /🆑 * Fixes the Hilbert's research tram --------- Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@users.noreply.github.com> |
||
|
|
245ce7aba8 |
Fixes the Hilbert's research tram (#78035)
## About The Pull Request Corrects the specific_tram_id helper for the Hilbert's Research to use the hilbert tram ID. I've also dropped the `.../hilbert/research` (tram-specific) paths in favor of simply `.../hilbert` ## Why It's Good For The Game Fixes the Hilbert Hotel Research ruin's tram, and also stops the malfunctioning tram event from being able to use that tram to start. (No more trams going haywire on maps without trams!) Closes #78018 ## Changelog 🆑 fix: Hilbert's Hotel Research ruin now has a functioning tram. As a side effect, the malfunctioning tram event should now only fire on maps with a tram! /🆑 |
||
|
|
a1b1f8a399 |
[MIRROR] A fix for those who have found themselves in an early grave [MDB IGNORE] (#23428)
* A fix for those who have found themselves in an early grave (#77974) ## About The Pull Request Fixes: #76918 Fixes not being able to break out of a grave, where it was implied that you could. Technically (I doubt it ever worked) increases the breakout time on the grave, before it was sitting below welded lockers, now it is in line with them. Graves are no longer dense, it looked and felt ugly and I think is just a carryover from them being subtypes of crates, now you can walk over them. ## Why It's Good For The Game Fixes some bugs that limited interaction with graves. You can still breathe under them and stuff, but that starts to veer into balance changes, even though that should be looked at in the future. ## Changelog 🆑 Seven fix: Fixes not being able to break out of graves qol: Graves are no longer dense (you can walk over them now) /🆑 * A fix for those who have found themselves in an early grave --------- Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com> |
||
|
|
5e02e00f56 |
A fix for those who have found themselves in an early grave (#77974)
## About The Pull Request Fixes: #76918 Fixes not being able to break out of a grave, where it was implied that you could. Technically (I doubt it ever worked) increases the breakout time on the grave, before it was sitting below welded lockers, now it is in line with them. Graves are no longer dense, it looked and felt ugly and I think is just a carryover from them being subtypes of crates, now you can walk over them. ## Why It's Good For The Game Fixes some bugs that limited interaction with graves. You can still breathe under them and stuff, but that starts to veer into balance changes, even though that should be looked at in the future. ## Changelog 🆑 Seven fix: Fixes not being able to break out of graves qol: Graves are no longer dense (you can walk over them now) /🆑 |
||
|
|
db361176cf |
[MIRROR] Cursed Slot Machine Fixes [MDB IGNORE] (#23420)
* Cursed Slot Machine Fixes (#77989) <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request A lot of these were stuff I did in response to reviews but apparently didn't test extremely thoroughly. My bad. * The proc for checking if the machine is in use is split out into its own thing for clarity, and for potential reuse. * The signal is no longer fucked up so you can actually get more than one curse out of the slot machine as intended. * Admin heals (and admin heals only) can remove the status effect. This is just in case someone fucks up a variable when running an event and wants to quickly heal some people while they varedit it to actually be a proper event. * Some nice code stuff while I was there, we don't need to be typecasting to human anymore so it's nice to fix that. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Fixes are good. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 fix: The Cursed Slot Machine should now actually give you more than one pull. /🆑 <!-- 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. --> * Cursed Slot Machine Fixes --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
fb4587b336 |
Cursed Slot Machine Fixes (#77989)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request A lot of these were stuff I did in response to reviews but apparently didn't test extremely thoroughly. My bad. * The proc for checking if the machine is in use is split out into its own thing for clarity, and for potential reuse. * The signal is no longer fucked up so you can actually get more than one curse out of the slot machine as intended. * Admin heals (and admin heals only) can remove the status effect. This is just in case someone fucks up a variable when running an event and wants to quickly heal some people while they varedit it to actually be a proper event. * Some nice code stuff while I was there, we don't need to be typecasting to human anymore so it's nice to fix that. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Fixes are good. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 fix: The Cursed Slot Machine should now actually give you more than one pull. /🆑 <!-- 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. --> |