mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-21 14:34:49 +00:00
ba5c112a86bb2845df830df81d59cd54ca8ac99f
104 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
59d74624b1 |
Upstream power stuff combined and shit (#27284)
* Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579) Removes all arbitrary energy and power units in the codebase. Everything is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you are going to multiply by time. This is a visible change, where all arbitrary energy units you see in the game will get proper prefixed units of energy. With power cells being converted to the joule, charging one joule of a power cell will require one joule of energy. The grid will now store energy, instead of power. When an energy usage is described as using the watt, a power to energy conversion based on the relevant subsystem's timing (usually multiplying by seconds_per_tick or applying power_to_energy()) is needed before adding or removing from the grid. Power usages that are described as the watt is really anything you would scale by time before applying the load. If it's described as a joule, no time conversion is needed. Players will still read the grid as power, having no visible change. Machines that dynamically use power with the use_power() proc will directly drain from the grid (and apc cell if there isn't enough) instead of just tallying it up on the dynamic power usages for the area. This should be more robust at conserving energy as the surplus is updated on the go, preventing charging cells from nothing. APCs no longer consume power for the dynamic power usage channels. APCs will consume power for static power usages. Because static power usages are added up without checking surplus, static power consumption will be applied before any machine processes. This will give a more truthful surplus for dynamic power consumers. APCs will display how much power it is using for charging the cell. APC cell charging applies power in its own channel, which gets added up to the total. This will prevent invisible power usage you see when looking at the power monitoring console. After testing in MetaStation, I found roundstart power consumption to be around 406kW after all APCs get fully charged. During the roundstart APC charge rush, the power consumption can get as high as over 2MW (up to 25kW per roundstart APC charging) as long as there's that much available. Because of the absurd potential power consumption of charging APCs near roundstart, I have changed how APCs decide to charge. APCs will now charge only after all other machines have processed in the machines processing subsystem. This will make sure APC charging won't disrupt machines taking from the grid, and should stop APCs getting their power drained due to others demanding too much power while charging. I have removed the delays for APC charging too, so they start charging immediately whenever there's excess power. It also stops them turning red when a small amount of cell gets drained (airlocks opening and shit during APC charge rush), as they immediately become fully charged (unless too much energy got drained somehow) before changing icon. Engineering SMES now start at 100% charge instead of 75%. I noticed cells were draining earlier than usual after these changes, so I am making them start maxed to try and combat that. These changes will fix all conservation of energy issues relating to charging powercells. Closes #73438 Closes #75789 Closes #80634 Closes #82031 Makes it much easier to interface with the power system in the codebase. It's more intuitive. Removes a bunch of conservation of energy issues, making energy and power much more meaningful. It will help the simulation remain immersive as players won't encounter energy duplication so easily. Arbitrary energy units getting replaced with the joule will also tell people more meaningful information when reading it. APC charging will feel more snappy. 🆑 fix: Fixes conservation of energy issues relating to charging powercells. qol: APCs will display how much power they are using to charge their cell. This is accounted for in the power monitoring console. qol: All arbitrary power cell energy units you see are replaced with prefixed joules. balance: As a consequence of the conservation of energy issues getting fixed, the power consumption for charging cells is now very significant. balance: APCs only use surplus power from the grid after every machine processes when charging, preventing APCs from causing others to discharge while charging. balance: Engineering SMES start at max charge to combat the increased energy loss due to conservation of energy fixes. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Corrects Suit Storage Unit charge rate (#82192) ## About The Pull Request Adjusts SSU charge rate according to the new conversion ratio. Betcha didn't know SSUs recharge suit and MOD cells? This number is actually supposed to be equal to the rate a recharger station does it. I don't know if we have some macro for it. ## Changelog 🆑 Melbert fix: Fixed Suit Storage Unit cell charging rate /🆑 * Corrects EVA thermal regulator cell cost (#82195) ## About The Pull Request Another unit not converted to watts / joules ## Changelog 🆑 Melbert fix: Fixed space suit thermal regulators cell usage. /🆑 * Fixing cell power usage (Part 1) (#82197) ## About The Pull Request Yeah i am not about to create 30 different PR's to address 1 issue at a time. The changes are small enough to be grouped together in bulk. This fixes the following issues specified in #82196 - Borg & exosuit RCD (Fixes #82193) - Motorized wheelchair - Canister shielding - Electrolyser - Potato cell - Space heater - Microwave ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 1). See PR 82197 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 2) (#82198) ## About The Pull Request Continuation of #82197. Fixes these issues in #82196 - Cyborg self repair - Cyborg lollipop dispenser - Mauna mug - Plasma cutter (Initial charge not the number of laser shots so partial fix) ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 2). See PR 82198 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 3) (#82204) ## About The Pull Request Continuation of #82198 Fixes these issues in #82196 - Borg hypo spray - Borg projectile dampen - Borg chameleon - Firelance - MODlink scryer - Emergency light usage ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 3). See PR 82204 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * [NO GBP]Fixes static power usage not always drawing the remaining energy of an APC cell. (#82205) ## About The Pull Request Makes APC static power draw consume the remaining energy of the cell if there's not enough energy. ## Why It's Good For The Game Prevents a niche issue where an area composed entirely of static power users with no dynamic users from running forever with no power supply. ## Changelog 🆑 fix: Fixes static power usage from being able to not draw power. /🆑 * Fixes recharge stations charge rates (#82191) ## About The Pull Request - Fixes #82190 Have to now use the assigned constants and not magic number `10000`. Also stuff will take the exact charge needed without any wastage. ## Changelog 🆑 fix: recharge stations draw the same amount of power as before but directly from grid(without using apc cell power) and won't waste any excess power /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes space heater power usage (#82208) ## About The Pull Request Related to https://github.com/tgstation/tgstation/issues/82196 fixes the space heater power cell usage relating to power per tile heated. Space heater calculates the amount of power required to heat a tile, but only uses power at the end of the processing loop. Fixes so the power consumption matches the calculated usage per tile. Reverts changes to space heater power efficiency in https://github.com/tgstation/tgstation/pull/82197 that causes the heater to instantly drain the cell. Fixes https://github.com/tgstation/tgstation/issues/82228 ## Changelog 🆑 LT3 fix: Fixes Schrödinger's space heater, where a space heater both consumes a power cell instantly while also not consuming power when heating adjacent tiles /🆑 * General maintenance for reagent grinder (#82161) ## About The Pull Request **1. Qol** - Adds examines & screentips for screwdriver, crowbar & wrench acts. - Adds examines & screentips for inserting, replacing & removing beaker, Also for inserting items from bags or directly - Adds an off icon overlay for when the reagent grinder is either screwed open or loses power, **2. Code Improvements** - Replaced `attackby()` with `item_interaction()` so we can end the attack chain early for non combat operations like inserting beakers/ ingredients for grinding etc. - Removed custom shake animations & replaced it with the global `Shake()` proc cause it did the same thing - Removed constructed version of reagent grinder. We instead just check `mapload` to see if we need the beaker to be created or not for round start reagent grinders - Grinding & Juicing use the same `operate_for()` rather than having seperate procs for each operation - Removed trait `TRAIT_MAY_CONTAIN_BLENDED_DUST`. Why do we have this? Its just used to change the grinder description to warn it may contain dust. It's a waste. **3. Fixes** - You cannot insert hologram items into the grinder. Rather than destroying that item & making it vanish you simply won't be allowed to put it inside the grinder so you can save that item - You can hit the grinder with items like screwdriver, wrench, crowbar, beaker & even with stuff you would normally put in the grinder when in combat mode - Adds `can_interact()` checks for using the UI & other stuff - Fixes #46356. All items of type `obj/item/grown` can be put from any bag into the grinder - The item "and its contents" are now grinded/juiced recursively to get all the reagents it has to offer just like a real grinder would - An AI/Human with AI access examining the reagent grinder now actually works. **4. Refactors** - The grinder now measures its available capacity based on the "total weight" of all items present & not its number. This is more realistic because the grinder has limited space inside & so inserting huge items should have greater impact rather than deciding on an arbitrary number like 10(The grinder having the capacity for 10 items of any size inside its small compartment makes no sense). Examines are displayed to show how much capacity of the grinder has been filled. Upgrading the grinder with better matter bins will allow for higher storage capacities. - Total power consumed is measured based on the duration & weight of all items grinded cause you know its realistic. 🆑 qol: adds examines & screentips for tool acts & other operations for reagent grinder qol: adds an off icon for when the grinder panel is open/not powered code: auto docs vars & procs. Shared common proc for grinding or juicing code: removed trait for blended dust, changed some item interactions to end the attack chain early & save time fix: no inserting hologram items into the reagent grinder fix: you can hit the reagent grinder tools like screwdriver, wrench, crowbar & even beakers/ingredients etc when in combat mode fix; adds sanity checks for when & how mobs interact with the reagent grinder fix: examining a reagent grinder by an AI/Human with AI access now actually works. fix: you can insert Nova flowers & other food items from any bag type fix: reagent grinder now grinds all the contents of an item recursively to produce maximum reagents like a real grinder would refactor: reagent grinder now measures available capacity to store items as total weight of stored items & not number. Capacity can be increased with upgraded matter bin refactor: reagent grinder power usage is now a function of duration & total weight of items blended, meaining blending more number of items/larger items will consume more power refactor: reagent grinder code has been optimized overall. Report bugs on github /🆑 --------- Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> * Suit Storage Units / Inducers can charge MODsuits without necessitating them be screwdrivered opened (#82194) ## About The Pull Request So MODsuits do this thing here with `get_cell` in that they don't return anything when they're closed  And I... can't tell why they do this. I looked through every use of `get_cell` and the only things affected by this are A. Suit Storage Units, which I believe have always been intended to charge MODsuits? and B. Inducers So I removed the `open` check. Allowing both Inducers and Suit Storage Units to charge mods without needing you screwdriver their panel open first. I also took the opportunity to allow SSUs to charge multiple items at once (divvying charge accross all items) ## Why It's Good For The Game I asked Fikou and they said it was "probably not" intended that you need to screwdriver them open so yeah. I think I remember charging my MODs during the original test merges years back but I can't remember if I opened the suit first when I did or not. Either way, it's not super intuitive. Though it's already not very intuitive that SSUs charge things. ## Changelog 🆑 Melbert qol: Suit Storage Units charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Inducers can charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Suit Storage Units will charge all items within simultaneously (if possible) /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes modular computer boot-up (#82254) ## About The Pull Request Fixes a bug where modular computers (specifically PDAs) will fail to start up if there is zero required application power draw. PDA will now consume base active power usage during startup. Related https://github.com/tgstation/tgstation/issues/82196 Fixes https://github.com/tgstation/tgstation/issues/82245 Fixes https://github.com/tgstation/tgstation/issues/82229 ## Changelog 🆑 LT3 fix: Fixed modular computers failing to boot up using cell power (eg: contractor tablet) /🆑 * Fixing cell power usage (Part 4) (#82227) ## About The Pull Request Continuation of #82204 Fixes these issues in #82196 - Cyborg Electroadaptive Pseudocircuit - Defib EMP - Cell EMP - `/datum/action/cooldown/mob_cooldown/charge_apc` stuff - Mecha movement, melee, light ,weapon & tool energy drains - Ninja drain ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 4). See PR 82227 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 5) (#82296) ## About The Pull Request Continuation of #82227 Fixes these issues in https://github.com/tgstation/tgstation/issues/82196 and others that weren't noticed. - Batton emp protection - Cyborg stun arm - Cyborg energy sword - Cyborg hug attack - Mechanical god religious sect charge check - Mecha fixes - Phasing energy drain - Short circuit energy drain - Durand shield damage energy drain - Plasma engine recharge rate - Mechbay recharge power rate - Recharge station charge rate Stuff that was already working & didn't require fixing. - Plasma cutter energy shots - Botany cell charging ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 5). See PR 82296 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Ties power limit of anchored circuits to 20 * standard cell charge to make it consistent with power changes. (#82287) ## About The Pull Request It just makes the power requirement 20 * standard cell charge instead of 20000 ## Why It's Good For The Game This is too restrictive to make anything with. https://github.com/tgstation/tgstation/assets/62126254/e39dcf27-8793-42b0-84a0-7f747e95efcc ## Changelog 🆑 fix: anchored circuits no longer blow up after 2 components are used. /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Space heater power and heating tweaks (#82344) ## About The Pull Request - Fixes #82342 - Space heater computes total power for heating adjacent turfs and uses cell energy once rather multiple times per turf - Improvised space heater actually works & uses beaker heat capacity and not a constant of 200 for heating beaker contents ## Changelog 🆑 SyncIt21,Pickle-Coding fix: space heater(including improvised) turns off when cell is drained fix: optimized power usage for both improvised and main space heater. Improvised heater now works & uses beaker heat capacity /🆑 * Improved lathe error message (#82260) ## About The Pull Request Improves the auto/protolathe low charge error message. Instead of simply saying low power, it will tell you how long until it has enough charge to print.  ## Why It's Good For The Game Less mashing the lathe over and over with no idea how much APC charge it needs to start printing again ## Changelog 🆑 LT3 code: APCs can now calculate time-to-charge qol: Overloaded lathes will now tell you the wait time until they're ready to print again /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes issues with multitools on power objects (#82389) ## About The Pull Request So at some point the power object's `multitool_act(...)` proc was set to _always_ block, for what I could find to be no discernable reason. ### The Main Thing |
||
|
|
37bc259bb0 |
[MIRROR] Refactor removing unused defines. (#26998)
* Refactor removing unused defines. (#82115) Refactors a lot of the unused defines. Refactors a lot of the unused defines. Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> * Oh well. I hope this works fine. --------- Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
5638c1f642 |
[MIRROR] Don't use turf icons for abilities (#26712)
* Don't use turf icons for abilities (#81720) ## About The Pull Request Fixes https://github.com/wall-nerds/wallening/issues/100 Replaces a couple of instances of abilities using the icons of walls or floors with different, somewhat more descriptive icons. I will be honest I do not understand why two of these were even using iron walls as an icon. Both of these instances were cases of "I want to surround something" so I have replaced them with this icon:  I have also replaced the "freeze floors" ability icon with the ice cube icon, rather than a 32x32 ice floor icon.  I removed a bunch of old copies of goggles items from the `robot-items` dmi and made them just reference the corresponding item sprites that they were copies of, because they were out of date with the items and using deprecated sprites. X-Ray now just looks like the red sam fisher goggles instead of a caution sign (not that it is obtainable in game). Oh also I added a tooltip to Ice Demon afterimages because it didn't have one. ## Why It's Good For The Game The previous icons don't even look like anything. ## Changelog 🆑 image: Bubblegum Hallucination Surround Charge, Wendigo Shockwave Scream, and Ice Demon Floor Freeze all have more appropriate action icons. qol: Adds a tooltip to Ice Demon Afterimages ability. image: Cyborg view items now use the same sprites as their corresponding goggles instead of old versions of those sprites. /🆑 * Don't use turf icons for abilities --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
74661326ce |
[MIRROR] Fixes some issues with paper planes (#26543)
Fixes some issues with paper planes (#81453) 1. paper's examine was defined twice, which made spacemandmm throw a minor notice about 2. paper's altclick had a second arg for some item, which would never be the case because that's not a real arg 3. there was a check for src's type, now just removed to the type's altclick 4. some papercode was sitting in paper plane code file, now moved the rest is misc changes such as replacing camelCase and using SECONDS. None of this is player-facing but it's updating some rather old code to more modern code standards. Nothing player-facing. --------- Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
4c0fd903f3 |
[MIRROR] bindable action buttons (#26536)
* bindable action buttons (#81371) ## About The Pull Request ### work started 12/12/2023 you may alt-click action buttons to bind them to a key these are subject to click cooldown and if an action successfully triggers click cooldown is triggered so you cant instantly do multiple alt-click again to unbind ## Why It's Good For The Game moving your mouse to the top left corner to do combat is not good gameplay ## Changelog 🆑 qol: you may altclick action buttons to bind them to a key /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * bindable action buttons --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
914b0272d4 |
[MIRROR] Fixes Mob Action Cooldowns (Ash Drake) (#26331)
* Fixes Mob Action Cooldowns (Ash Drake) (#81211) ## About The Pull Request Fixes #80236 Ash drake abilities were rewritten to not be slept and instead use async which messed up the cooldown timing Also rewrites several cooldowns to not use a 360 second cooldown hack ## Why It's Good For The Game Abilities being used at the proper time is very cool ## Changelog 🆑 fix: Ash drake's fire breath attack has proper cooldowns again /🆑 * Fixes Mob Action Cooldowns (Ash Drake) --------- Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com> |
||
|
|
f372b2df2d |
[MIRROR] Legion Mob Abilities (#26256)
* Legion Mob Abilities (#81082) ## About The Pull Request Converts legions hardcoded abilities to the cooldown action / mob abilities system. I also took the liberty of converting the hacky 360 second cooldowns in a lot of the mob actions into simply disabling other abilities while the ability is active, this will make it easier to have bosses without everything on a shared cooldown and also not allow abilities to be used simultaneously. ## Why It's Good For The Game Paving the way for basic megafauna. ## Changelog 🆑 refactor: Legions abilities have been changed into actions that can be added to any mob. /🆑 --------- Co-authored-by: Changelogs <action@ github.com> * Legion Mob Abilities --------- Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com> Co-authored-by: Changelogs <action@ github.com> |
||
|
|
7551828a29 |
[MIRROR] Fixes a spurious CI runtime in do_charge() (#26221)
* Fixes a spurious CI runtime in do_charge() (#81048) ## About The Pull Request Fixes this runtime here  These signals can evidently be overridden and some of these were missing the override = TRUE parameter. ## Why It's Good For The Game Less CI fails ## Changelog 🆑 fix: fixes a spurious CI failure from do_charge() signal overrides /🆑 * Fixes a spurious CI runtime in do_charge() --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
7b9ccd564b |
[MIRROR] Fixed runtime from unowned cooldown actions (carp rift) [MDB IGNORE] (#26085)
* Fixed runtime from unowned cooldown actions (carp rift) (#80895) ## About The Pull Request This might not be the most correct fix but it *makes sense*. Some actions can not have an owner if it is unowned, so this check would runtime.  I assume carp rift is unowned in some places? * Fixed runtime from unowned cooldown actions (carp rift) --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
4670976b98 |
[MIRROR] Fixes every instance of 'kenetic' in the codebase [MDB IGNORE] (#26008)
* Fixes every instance of 'kenetic' in the codebase (#80782) ## About The Pull Request There were several instances of this being misspelled as 'kenetic' rather than kinetic. This fixes that. ## Why It's Good For The Game oughe ## Changelog 🆑 spellcheck: Corrects every misspelled 'kenetic' in the codebase. /🆑 * Fixes every instance of 'kenetic' in the codebase --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
4ecf8128e1 |
[MIRROR] Changes the scope component to be appliable to other items and not just guns. Binocs and the Curator's mothic cap use it. [MDB IGNORE] (#25962)
* Changes the scope component to be appliable to other items and not just guns. Binocs and the Curator's mothic cap use it. * Update moth.dm --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
9a3fb5c5c1 |
[MIRROR] FOV is Dead (Long Live FOV) [MDB IGNORE] (#25600)
* FOV is Dead (Long Live FOV) * Update _megafauna.dm * Update _vehicle.dm * FOV Hotfix: Actually offsets gameplane render relays * removes redundant visual_shadow * removes GAME_PLANE_UPPER references * Update mob_movement.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
9c60ff1de1 |
[MIRROR] Removes Clone Damage [MDB IGNORE] (#25429)
* Removes Clone Damage * Update blackbox.dm * Modular * Update schema * Update database_changelog.md * More modular deprecated clone things --------- Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
44a94b071a |
[MIRROR] Sign Language action now properly updates its background when toggled [MDB IGNORE] (#25376)
* Sign Language action now properly updates its background when toggled (#80052) ## About The Pull Request Changes two lines in `sign_language.dm` such that it actually updates its background when toggled, rather than only when forced to update by some other signal. ## Why It's Good For The Game The Sign Language action has a visual distinction for whether it's active or not, but it did not update this properly when toggled. This fixes that problem. ## Changelog 🆑 fix: Sign Language action properly toggles between an active/inactive background again. /🆑 * Sign Language action now properly updates its background when toggled --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
b237afa316 |
[MIRROR] Mob attackedby / check_block refactor, plus some minor cleanup of attack_x procs [MDB IGNORE] (#25079)
* Mob `attackedby` / `check_block` refactor, plus some minor cleanup of `attack_x` procs * Fix the race condition * Modular * Ooops --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
febee3ad4c |
[MIRROR] Adds a toggle action to implant HUDs [MDB IGNORE] (#25078)
* Adds a toggle action to implant HUDs (#79777) <!-- 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 Adds an action for all implanted HUDs to toggle them on and off. The default state is on, and the state is toggled appropriately when the implant is added or removed. This is done by using hud.hide_from and hud.show_to. <!-- 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 Quality of life change for roleplay situations where the HUD is usless clutter. <!-- 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. --> 🆑 qol: Implanted HUDs can now be toggled on and off with an action. /🆑 <!-- 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: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Adds a toggle action to implant HUDs --------- Co-authored-by: Shroopy <delyth@shroop.net> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
2f4010c992 |
[MIRROR] Removes final remnants of 'targetted' [MDB IGNORE] (#24927)
* Removes final remnants of 'targetted' (#79626) ## About The Pull Request Finishing what https://github.com/tgstation/tgstation/pull/79513/ started, removes 'targetted' typo from code. Also updates the basic mob guide with the new updated var names. ## Why It's Good For The Game Typos bad. Accurate guides good. ## Changelog 🆑 code: gets rid of the rest of the instances of 'targetted' typo from code /🆑 * Removes final remnants of 'targetted' --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
42d245a4be |
[MIRROR] Basic Guardians/Holoparasites [MDB IGNORE] (#24921)
* Basic Guardians/Holoparasites (#79473) ## About The Pull Request Fixes #79485 Fixes #77552 Converts Guardians (aka Holoparasites) into Basic Mobs. Changes a bunch of their behaviours into actions or components which we can reuse. Replaces some verbs it would give to you and hide in the status panel with action buttons that you may be able to find more quickly. They _**should**_ work basically like they did before but a bit smoother. It is not unlikely that I made some changes by accident or just by changing framework though. My one creative touch was adding random name suggestions. The Wizard federation have a convention of naming their arcane spirit guardians by combining a colour and a major arcana of the tarot. The Syndicate of course won't truck with any of that mystical claptrap and for their codenames use the much more sensible construction of a colour and a gamepiece. This lets you be randomly assigned such creative names as "Sparkling Hermit", "Bloody Queen", "Blue World", or "Purple Diamond". You can of course still ignore this entirely and type "The Brapmaster" into the box if so desired. I made _one_ other intentional change, which is to swap to Mothblocks' nice leash component instead of instantly teleporting guardians back to you when they are pulled out of the edge of their range. They should now be "dragged" along behind you until they can't path, at which point they will teleport. This should make the experience a bit less disorienting, you have the recall button if you _want_ to instantly catch up. This is unfortunately a bumper-sized PR because it did not seem plausible to not do all of it at once, but I can make a project branch for atomisation if people think this is too much of a pain in the ass to review. Other changes: - Some refactoring to how the charge action works so I could individually override "what you can hit" and "what happens when you hit" instead of those being the same proc - Lightning Guardian damage chain is now a component - Explosive Guardian explosive trap is now a component - Added even more arguments to the Healing Touch component to allow it to heal tox/oxy damage and require a specific click modifier - Life Link component which implements the Guardian behaviour of using another mob as your health bar - Moved some stuff about deciding what guardians look and are described like into a theming datum - Added a generic proc which can return whether your mob is meant to apply some kind of damage multiplier to a certain damage type. It's not perfect because I couldn't figure out how ot cram limb modifiers in there, which is where most of it is on carbons. Oh well. - Riders of vehicles now inherit all movement traits of those vehicles, so riding a charging holoparasite will let you cross chasms. Also works if you piggyback someone with wings, probably. ## Changelog 🆑 refactor: Guardians/Powerminers/Holoparasites now use the basic mob framework. Please report any unexpected changes or behaviour. qol: The verbs used to communicate with, recall, or banish your Guardian are now action buttons. balance: If (as a Guardian) your host moves slightly out of range you will now be dragged back into range if possible, rather than being instantly teleported to them. balance: Protectors now have a shorter leash range rather than a longer one, in order to more easily take advantage of their ability to drag their charge out of danger. balance: Ranged Guardians can now hold down the mouse button to fire automatically. balance: People riding vehicles or other mobs now inherit all of their movement traits, so riding a flying mob (or vehicle, if we have any of those) will allow you to cross chasms and lava safely. /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * Basic Guardians/Holoparasites * Modular --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
c70114c343 |
[MIRROR] Fix split personality commune being unusable I think [MDB IGNORE] (#24923)
* Fix split personality commune being unusable I think (#79631) ## About The Pull Request Likely fixes #79586 and likely fixes #78081 . Split persons's loc is their parent mob, so they were being disallowed from casting due to not being loc's in a turf. Further testing required ## Changelog 🆑 Melbert fix: Split persons can talk to their host once again /🆑 * Fix split personality commune being unusable I think --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
fa5430714f |
[MIRROR] Shapechange health transfer tweaks [MDB IGNORE] (#24590)
* Shapechange health transfer tweaks * Fix diffs --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
af9ed1ee04 |
[MIRROR] Basic Space Dragon [MDB IGNORE] (#24340)
* Basic Space Dragon (#78979) * Basic Space Dragon --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
4769d47f24 |
[MIRROR] Grand Ritual Finale: An end to death [MDB IGNORE] (#24053)
* Grand Ritual Finale: An end to death (#78497) ## About The Pull Request Adds a new Wizard Ritual Finale effect which makes everything immortal. By this I mean, 10 seconds after death a ghostly image of them will appear somewhere near where the corpse was and then 50 seconds after that the mob will return to life at that location. This applies to every mob, everywhere. This is likely to cause a little bit of disruption to the rest of the round, so you can only do it after at least 30 minutes have passed. After that the crew will have to figure out how to deal with their new gift of immortality. It will involve throwing people into chasms and lava, probably.  Here's a gif sped up for example purposes. You can escape from the cycle of death and rebirth via suicide, purely because it's pointless to try and force people to play the video game if they don't want to. Also I split all of these effects into their own files, the only new code for those is in `immortality.dm` shout out to Vekter for distracting Oranges while I posted this wizard-related PR so I didn't get disapprovingly reacted for posting magic shit (yet) ## Why It's Good For The Game This might be _too_ much but I want to see what would happen. It will allow us to simulate whether polite society can survive when violence has no consequences. ## Changelog 🆑 add: Wizards who complete the grand ritual can now gift everyone with eternal life /🆑 * Grand Ritual Finale: An end to death --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
591d7b649f |
[MIRROR] bitrunning hotfix 2 [NO GBP] [MDB IGNORE] (#24011)
bitrunning hotfix 2 [NO GBP] Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
06fa6543db |
[MIRROR] Heretic Ascension Tweaks [MDB IGNORE] (#24024)
* Heretic Ascension Tweaks (#78472) ## About The Pull Request Some changes to Cosmic and Knock heretic ascensions, in response to feedback. - Cosmic Heretics can no longer control their summon while jaunted. - Additionally the death link element the Star Gazer used... wouldn't work if there was more than one cosmic heretic. I refactored it into a component, so that it would. Frankly there are probably a lot of _other_ abilities which shouldn't be usable while jaunted but are, but I have been burned in the past by adding defaults which were applied too widely so we'll leave it case-by-case for now. - The Knock rift can no longer summon Flesh Worms of any kind. - But it _can_ summon fire sharks (we really need to reflavour these...) and any future "basic mob" heretic mobs (or ones which are converted). - Additionally the rift can't be clicked by ghosts while it's polling ghosts automatically because that would create funky empty-minded mobs. - Finally it goes away when the heretic dies. ## Why It's Good For The Game For Cosmic Heretics, controlling the Star Gazer in conjunction with Space Jaunt essentially meant that the heretic was playing an RTS as an invincible observer with an invulnerable unit, now they have to actually be present and killable in order to sic The Beast on you. For Knock Heretics, Minor Flesh Worms are a proof of concept which was never meant to be used except by admins. They're _barely_ weaker than a normal flesh worm, extraordinarily tanky, delete walls, and generally devalue the Flesh path ascension. Vanishing upon heretic death is because every _other_ ascension is at least theoretically stoppable except this one. Now this one is too. It's still _very hard_ to kill the heretic because every _10 seconds_ they can transform into a heretic mob which acts as an extra health pool. ## Changelog 🆑 fix: If two cosmic heretics ascend in the same round, their star gazer survival will be linked to each individual heretic and not shared by just one of them. fix: You can't click the Knock heretic portal to join as a mob while already signed up to become a mob. balance: Cosmic heretics can't order the Star Gazer around while jaunting. balance: The Knock Heretic portal cannot summon Flesh Worms, but can summon Fire Sharks. balance: The Knock Heretic portal will disperse if its creator is killed. /🆑 * Heretic Ascension Tweaks --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
648077c683 |
[MIRROR] Fixes lobstrosities becoming unmovable when killed during their charge windup [MDB IGNORE] (#23982)
* Fixes lobstrosities becoming unmovable when killed during their charge windup (#78533) ## About The Pull Request Hooks `charge_end()` on charger's death signal and shuffles the proc a bit to accord for a non-moveloop source. This lets the charger to properly unregister signals for its charge movement effects and unblocks its movement via `actively_moving` var (which would be blocked in `on_move()`). ## Changelog 🆑 fix: fixed lobstrosities becoming unmovable when killed during their charge windup /🆑 * Fixes lobstrosities becoming unmovable when killed during their charge windup --------- Co-authored-by: Sealed101 <cool.bullseye@yandex.ru> |
||
|
|
23e2470b25 |
[MIRROR] Colossus' Titan's Finale ability has a 0.5 seconds delay before starting the attack [MDB IGNORE] (#23562)
* Colossus' Titan's Finale ability has a 0.5 seconds delay before starting the attack (#78171) ## About The Pull Request ided pls nerf ## Why It's Good For The Game This motherfucker is horrid to fight with a crusher because the first attack that he does in this action is a shotgun blast, which you just eat with your face and die. The only reasonable way to trigger this attack is with a ranged weapon or with a hiero's trophy, the former being antithetical to the challenge/playstyle that is crusher mining and the latter being wildly uncontrollable. Half a second should be ample time to dodge out of harm's way before server-lagging touhou begins. ## Changelog 🆑 balance: colossus' near-death attack now starts after a 0.5 seconds delay /🆑 * Colossus' Titan's Finale ability has a 0.5 seconds delay before starting the attack --------- Co-authored-by: Sealed101 <cool.bullseye@yandex.ru> |
||
|
|
449f86819f |
[MIRROR] Fixes implanted legion cores being available for use when dead/unconscious [MDB IGNORE] (#23461)
* Fixes implanted legion cores being available for use when dead/unconscious (#78042) ## About The Pull Request Ever since #70546 implanted legion cores have become available for use when the user is unconscious/dead, which was not the case before — it was using an organ action, which checks for `AB_CHECK_CONSCIOUS` #### cores before #70546 |
||
|
|
0d1f672887 |
[MIRROR] megafauna no longer gib/dust you [MDB IGNORE] (#23427)
* megafauna no longer gib/dust you (#77731) ## About The Pull Request megafauna now gut you instead of gibbing or dusting colossus bolts still dust to prevent bodychair cheese ## Why It's Good For The Game shaft miners are already hard to recover(or impossible in the case of dusting), having to go through lavaland and likely near the megafauna itself. This should still be punishing enough for losing to a megafauna as it removes their heart, lungs and liver from their body while still leaving it intact, just easier to recover. ## Changelog 🆑 balance: megafauna will now gut instead of dusting or gibbing /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * megafauna no longer gib/dust you --------- Co-authored-by: 1393F <59183821+1393F@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
f25cb55f3a |
[MIRROR] Adds a Heresy phobia, fixes some typos in heretic code, places the stargazer and fire shark under heretic_summon [MDB IGNORE] (#23227)
* Adds a Heresy phobia, fixes some typos in heretic code, places the stargazer and fire shark under heretic_summon (#77306) ## About The Pull Request Instead of a supernatural phobia, sacrificed people will now get a HERESY phobia, which specifically targets heretic stuff, instead of all of magic. Other heretics, however, do not get this, but instead get knowledge points sapped from them, as their mind is ruined in a different way than normal people. This comes with different flavour text and a harsher but shorter lasting mood debuff. Also fixes some "knowlege" code typos and places the star gazer and fire shark all in under heretic_summon ## Why It's Good For The Game Heretics, Wizards, Chaplains and Cultists will now be able to keep playing the game after getting sacrificed without overdosing on psicodine, while still retaining the phobia's original design purpose. placing the fire shark and star gazer under the same type also is useful as they share a lot of values. typos bad. ## Changelog 🆑 add: Sacrificed heretic targets will now receive a phobia of heresy instead of a phobia of the supernatural. Sacrificed heretics will not get this phobia, but will lose knowledge points instead. /🆑 Huge thanks to Helg2 for doing the original PR and helping me with this one, couldn't be done without them --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> Co-authored-by: Helg2 <93882977+Helg2@ users.noreply.github.com> * Adds a Heresy phobia, fixes some typos in heretic code, places the stargazer and fire shark under heretic_summon --------- Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> Co-authored-by: Helg2 <93882977+Helg2@ users.noreply.github.com> |
||
|
|
91ac9187c4 |
[MIRROR] Don't sleep in ability.Activate() when breathing fire [MDB IGNORE] (#23211)
* Don't sleep in ability.Activate() when breathing fire (#77673) ## About The Pull Request The global proc `dragon_fire_line` sleeps, and was being called inside `ability.Activate` This made the CI fail on a different PR because the mob stopped existing between activating the ability and triggering its cooldown, which should not regularly be possible. The ice whelp refactor author noticed this when using it in a loop but I guess didn't think about the other implications 😅 ## Why It's Good For The Game Fixes a bug. ## Changelog Not player facing * Don't sleep in ability.Activate() when breathing fire --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
68f4deff40 |
[MIRROR] MODLink System (+ NWTLMM) [MDB IGNORE] (#23199)
* MODLink System (+ NWTLMM) (#77639) ## About The Pull Request A pact made with `@ Kapu1178` Small changes you should not care about: RD MODsuit outfit (admin only) no longer has a beret that blocks the activation of the suit The beret used by death squad officers no longer is blocked from being put on a hat stabilizer module Admins can now Shear matrices of objects in Modify Transform Multitool buffers have been a little refactored to use a setter proc that saves them from causing hard dels Cooler stuff: A revival and remake of [Nobody Wants To Learn Matrix Math](https://github.com/tgstation/tgstation/pull/59103), this time with additional tooling for quick matrix calculations.  The MODLink system, available through every MODsuit and MODLink scryers (a neck item obtainable from advanced modsuit research or charliestation) Let's you make a holographic call with any other MODLink user, where you can chat in realtime and see what's up with em   ## Why It's Good For The Game Adds a fun way for the crew to communicate with each other that can be done in real-time with relative privacy compared to radio. ## Changelog 🆑 Fikou, Armhulen, Sheets (+rep for Mothblocks and Potato) fix: RD MODsuit outfit (admin only) no longer has a beret that blocks the activation of the suit fix: The beret used by death squad officers no longer is blocked from being put on a hat stabilizer module admin: Admins can now Shear matrices of objects in Modify Transform admin: Admins now have access to Test Matrices in the VV dropdown, an all-in-one tool for editing transforms. add: MODLink system, available through scryers (from RnD and Charlie Station) and through MODsuits. Lets you call people with holographs! /🆑 * MODLink System (+ NWTLMM) --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
a0a9a43562 |
[MIRROR] Refactors Regal Rats into Basic Mobs (more titles edition) [MDB IGNORE] (#23188)
* Refactors Regal Rats into Basic Mobs (more titles edition) (#77681) ## About The Pull Request I literally can't focus on anything nowadays, so I just did this to break a never-ending chain of distress. Anyways, regal rats! These fellas are mostly player controlled, but did have _some_ AI capabilities (mainly tied to their actions), so that was incorporated too. Everything should work as-expected (as well as look a shitload cleaner). Instead of doing weird and awful conditional signals being sent out, I made the `COMSIG_REGAL_RAT_INTERACT` (not the actual name) have a return value so we can always rely on that working whenever we have that signal registered on something we attack. I also cleaned up pretty much every proc related to regal rats, gave them AIs to reflect their kingly nature (and action capabilities (as well as move the action to `mob_cooldown`)). Since I thought they needed it, Regal Rats now get a special moniker! This is stuff like "the Big Cheese" and what-not, like actual regents in history. That's nice. ## Why It's Good For The Game Two more off the list. Much better code to read. Way smarter rats with spawning their army as part of a retaliatory assault (war). More sovl with better regal rat names. The list goes on. ## Changelog 🆑 refactor: Regal Rats have been refactored into basic mobs. They should be a bit smarter and retain their docility (until attacked, in which case you should prepare to get rekt by summoned rats), and properly flee when they can instead of just sit there as you beat them to death. The framework for them interacting with stuff (i.e. opening doors while slobbering on food) is a bit more unified too, now. They also have cooler names too! /🆑 FYI: Beyond a few code touchups, I haven't touched the actions at all. I do not believe myself to be enthusiastic about fixing anything involving the actions code as of this moment so that this PR is more overbloated unless it's unbelievably stupid or easy to fix. * Refactors Regal Rats into Basic Mobs (more titles edition) --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
11568ad904 |
[MIRROR] Fixes Xeno Sentinel's Sneak Action Icon + Additional Sneak QoL [MDB IGNORE] (#23169)
* Fixes Xeno Sentinel's Sneak Action Icon + Additional Sneak QoL (#77543) ## About The Pull Request This PR fixes the xenomorph sentinel's Sneak ability having an error icon as opposed to the intended appearance. This PR also adds a smooth alpha transition to Sneak as opposed to setting the alpha immediately. Having your alpha drop to its sneak value takes 0.5 seconds, which is fast enough that it really shouldn't matter. This PR also changes sneak's chat message alert to a balloon alert. ## Why It's Good For The Game The icon thing is a bugfix, which is always good. The alpha transitioning instead of being immediately set looks much better in my opinion, I think most would agree on that front. Balloon alerts are our preferred option as opposed to chat alerts now, so its also a good thing to change. ## Changelog 🆑 qol: Xenomorph Sentinel and Ambusher Spider's sneak ability now has a transition to a lower alpha as opposed to being immediate. qol: The sneak ability now uses balloon alerts as opposed to chat alerts. fix: Fixed the Xenomorph Sentinel's Sneak ability icon being an error. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Fixes Xeno Sentinel's Sneak Action Icon + Additional Sneak QoL --------- Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
45a1502809 |
[MIRROR] Replaces Big Mob Tiny Sprites With Togglable Clientside Transparency For Big Mobs [MDB IGNORE] (#23144)
* Automatic changelog for PR #23141 [ci skip] * Replaces Big Mob Tiny Sprites With Togglable Clientside Transparency For Big Mobs * Replaces Big Mob Tiny Sprites With Togglable Clientside Transparency For Big Mobs (#77361) ## About The Pull Request This PR replaces the tiny mob sprite abilities for our large mobs with a Toggle Seethrough ability. What this does when enabled is make yourself transparent on your own client and makes you unable to click yourself. With this, any sort of overlays that get added look correct while in your tiny mob form and you can still appreciate your large size without giving up the ability to click on targets that would be hiding underneath your sprite.   In total, this ability is granted to all the mobs who had tiny sprites: - Xenomorph Queen - Space Dragon - Megafauna (not that players ever get access to these normally, but it might be nice for admins) Along with all this, I've also gone and expanded the mobs who get access to the Seethrough ability to mobs that are large but didn't have a mini-sprite. This includes: - Jungle giants (leaper and mega arachnid) - Tree mob - Festivus pole mob - Lavaland elites - Xenomorph Praetorian - Wumborian Fugu On top of all this, any simple/basic mob given a fugu gland also automatically gains this ability. This solution also fixes all the overlays bugs that tiny mob sprites introduced to the game, most notably the xenomorph queen overlays being screwy when in small form and space dragon's overlays being completely disabled for everyone if he was in small form. The only issue with this currently is that clicking on any overlays from your mob will let you still click on yourself, though this issue is pretty negligible. ## Why It's Good For The Game Tiny mob sprite abilities clashed very hard with our overlay system, leading to a lot of buggy and unintended behavior. This replacement works a lot more smoothly with overlays and also requires much less setup to give it to a mob than tiny sprites did. I would also imagine it helps keep the fantasy of being a big monster alive by letting you still see yourself being a big monster without it getting in your way when trying to attack things. ## Changelog 🆑 del: Removed tiny mob sprite abilities for large mobs add: Add a Self Seethrough ability, given to most large mobs and all mobs affected by a fugu gland fix: Space Dragon's overlay will no longer vanish at times --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Delete AutoChangeLog-pr-23141.yml This is really weird * Modular adjustments --------- Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
57272c8d22 |
[MIRROR] Basic Watchers & Basilisks [MDB IGNORE] (#23137)
* Basic Watchers & Basilisks (#77630) ## About The Pull Request This one is a double feature because Watchers and Basilisks share the same typepath. You might see a couple more of those. As is tradition I decided to fuck with them rather than just port them. Here's what's up. **Basilisks**   - Have a new soulless sprite which looks less like a living blue hedge. - Walk at you and shoot you while you are not in range (just like before). - Become supercharged if they become "heated" by lava, lasers, or temperature weapons. This was a feature they also previously had but they would never encounter lava, so now it also works if you use the wrong gun on them. - Lose their supercharge if you cool them down. - Otherwise pretty normal mobs. **Watchers** https://www.youtube.com/watch?v=kOq_Bf78k5A Here's a traditional video of me intentionally getting hit by mechanics (trust me its definitely on purpose) - They glow emmissively a little bit so you can see them from further away. - Their eyes light up about 0.5 seconds before they are able to shoot at you. - No longer melee attack, instead try to stay out of melee. - Will occasionally put you into "Overwatch", meaning they will shoot you rapidly if you move or act while they're staring at you for a brief time period (after which you become immune for 12 seconds, and during which other watchers will play fair and stop shooting at you). - If they start taking damage they will also start using their "Gaze" attack, look away or suffer some kind of negative effect! - - Normal watcher gaze flashes and confuses you. - - Magmawing watcher gaze obviously burns (and briefly stuns) you. - - Icewing watcher gaze freezes you and throws you backwards. - Magnetically attract and eat diamonds. They also used to do this, but just if they happened to coincidentally walk past some. **Other accompanying changes** All basic mobs will now adopt the "stop gliding" trait if they get slowed down too much. I moved behaviour for "fire a projectile from this atom" into a helper proc because I was using it in three places and I will probably use it in more places. There are probably other places in the existing code which could be using this. I think I made the basic mob melee attack forecast default a little more forgiving, they were fucking me up too much and I am the playtester. ## Why It's Good For The Game Another one off the list. New tricks for old dogs. Framework for making mobs with ranged attacks "fairer" (you can see when they are ready to shoot you). More (hopefully) versatile AI behaviours which we will reuse later (I hope I'm not duplicating one someone already made). If our players "enjoy" them enough we can give more mobs "don't look at me" mechanics. Removes some soul sprites. ## Changelog 🆑 refactor: Basilisks and Watchers now use the basic mob framework. Please bug report any unusual behaviour. sprite: Basilisks have new sprites. add: Basilisks will go into a frenzy if heated by energy weapons or temperature beams as well as by lava. add: Watcher eyes will be illuminated briefly when they are ready to fire at you. add: Watchers can now briefly put you into "Overwatch" and penalise you for moving while they can see you. add: Wounded watchers will occasionally punish players who look at them. balance: Unusual watcher variants are more likely to appear. /🆑 * Basic Watchers & Basilisks * Modular paths --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
3bbd9a254a |
[MIRROR] basic ice whelps [MDB IGNORE] (#23077)
* basic ice whelps (#77493) ## About The Pull Request i have refactored ice whelps into basic mobs. They are now the artistic sort as theyll mark their territory by seeking out icy rocks and carve out statues of theirselves using their claws to serve as a warning to players/animals that this is dragon turf and theyll also go out of their way to burn any trees in vicinity just for the hell of it. they are now gruesome cannibals if they find a corpse of one of their kin near them theyll go eat it for nurishment. AS for combat, they have a new ability which allows them to release fire in all directions however theyll only use this ability once their enraged meter is full. to make it fair ive given them a new component which allows them to telegraph abilities and only do them after a delay so players can react in time for it. ## Why It's Good For The Game basic mob refactor ## Changelog 🆑 refactor: ice whelps have been refactored to basic mobs add: ice whelps have a new dangerous ability which theyll use once their enraged meter is full /🆑 * basic ice whelps * Modular paths --------- Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
94c3d31fab |
[MIRROR] Refactors Morphs into Basic Mobs (there is now a swag action for morphification) [MDB IGNORE] (#23046)
* Refactors Morphs into Basic Mobs (there is now a swag action for morphification) (#77503) ## About The Pull Request I was bored, so did this. Probably one of the neatest refactors I've done, sorry if there's some oddities because I was experimenting with some other stuff in this so just tell me to clean them up whenever I can. Anyways, morphs are basic mobs now. We are able to easily refactor the whole "eat items and corpses" stuff in the basic mob framework, but the whole "morph into objects and people" turned out to be a bit trickier. That was easily rectified with a datum mob cooldown action and copy-pasting the old code into that code, as well as doing some nice stuff with traits and signals to ensure the one-way communication from the action to the mob. Old Morph AI didn't seem to be existant whatsoever, they inappropriately leveraged some old procs and I have no idea how to make it work with new AI. They DEFINITELY don't spawn outside of admin interference/ the event anymore, and will always be controlled by a player, so this shouldn't be too bad of an issue. I gave them something to seem alive just in case though, but I think adding legitimate prop-hunt AI would be such a laborious task that I am unwilling to do it in this PR. ## Why It's Good For The Game If admins want to add the ability for Ian to assume the form of the HoP, they can do that now! The datum action cooldown is quite nice for simple and basic mobs... but it is currently not compatible with carbons. That is not within scope for this PR, but I am dwelling on ways to extend it to carbon but they all sound really awfully bad. Also morphs are smarter, and we tick another simple animal in need of refactoring off the list. ## Changelog 🆑 refactor: Morphs are now basic mobs with a nice new ability to help you change forms rather than the old shift-click method, much more intuitive. admin: With the morph rework comes a new ability you can add to mobs, "Assume Form". Feel free to add that to any simple or basic mob for le funnies as Runtime turns into a pen or something. /🆑 ~~Does anyone know if there's a (sane) way to alias a cooldown action as a keypress? I can't think of a good way to retain the old shift-click functionality, because that does feel _kinda_ nice, but I think it can be lived without.~~ I added it. Kinda fugly but whatever. * Refactors Morphs into Basic Mobs (there is now a swag action for morphification) --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
a669180af5 |
[MIRROR] Spider Evolution - Young Spiders [Ready] [MDB IGNORE] (#22972)
* Spider Evolution - Young Spiders [Ready] (#76692) ## About The Pull Request This pr adds a young spiders that appear between spiderlings and adult spiders. Now spiders have a stage where they are squishy but can also spin webs and do some other things early depending on the spider type. Spiderling stage takes 40 seconds and young spider stage take 1 minute, ealier for spiderling this was 1 minute. Also adds a new wizard spider sprite and makes the spider form usable. Gives Wizard Spider version has better immunity against fire since it can kill a wizard very fast it they are not paying attention. Makes tangle spider get more health but makes the self-healing worse. This is done because spider is a team antag except for the flesh (changeling spider), making it so solo-playing as tangle is less encouraged. Scout spiderling gets thermal vision also. It cannot communicate, but it can already start scouting now. Viper deals bonus damage when an enemy is on low health. Toxins don't kill humans anymore, and since the viper spider only deals 5 damage now it deals more so it can actually take down enemies at low health. They also have a little more health since they always die very fast. Viper can also change between a defensive/slow mode with more armor or a offensive/speed mode with less armor. Nurse spider heals for 25 instead of 20, since 25 is one laser shot, it makes more sense for the nurse spider to be able to heal that amount. Flesh spider grows faster since they are a solo antag and spawn killing isn't cool. Tarantula spider can now tear down walls by clicking them instead of needing to use their charge attack. They can also build wall webs and passage webs. Their damage coeffs also got the regular burn factor for spider so their health also increased a bit.   ## Why It's Good For The Game Now there is a smooth transition between the tiny spiderling and the bigger spider stage. This will promote people to help the hive at an earlier stage while not being too powerful yet. It is also realistic and adds extra flavor to the spider antag. The other balance changes are improvements to the game. ## Changelog 🆑 add: Young Spiders that appear between spiderlings and adult spiders. balance: Wizard Spider version has better immunity against temp damage and can lay webs faster. balance: Tangle Spider sucks more with self-healing but has more health. balance: Scout spiderling gets thermal vision. balance: Viper deals bonus damage when an enemy is below 20% health. /🆑 * Spider Evolution - Young Spiders [Ready] --------- Co-authored-by: Comxy <tijntensen@gmail.com> |
||
|
|
add685c986 |
[MIRROR] make the hive bot a basic bot [MDB IGNORE] (#22938)
* make the hive bot a basic bot (#77274) ## About The Pull Request i make the hivebot a basic bot also the old hivebot simple bot he was chaneged apperence when he finded a target so i maked a new element to allowed this behavier so now when the basic finded a target he apperence can also changed and this elememt can be gived to another basic monsters so they can changed apperence when they found a target. i give him new behaviers now the hivebot will look for ech other and when he finded ech other they will comunicated with binyary messages and now the mechanic hivebot he will go to look for broked machines so he can repair him ## Why It's Good For The Game the hivebot is a basic and he have a better behaver ## Changelog 🆑 refactor: the hivebot is now a basic please report any bugs /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> * make the hive bot a basic bot * Update salvagepost.dmm --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
377bf92754 |
[MIRROR] Basic Lobstrosity [MDB IGNORE] (#22827)
* Basic Lobstrosity (#77253) ## About The Pull Request I'm slowly chipping away at mining mobs. These ones also got some new sprites because the old ones were a bit weird except when facing South.  Arctic Lobstrosities are now hairy to give them a little more visual distinction from Lavaland ones. In terms of behaviour, they're now a little faster and can charge you from further away. They will _only_ attack players who are incapacitated in some way (primarily from being hit by their charge, but could be from a Goliath or something too) and will otherwise keep their distance until they can charge again. They move slower for a short duration after charging though, so you have time to slap them a bit. If a Lobstrosity downs you then it will try to snip off one of your arms, then retreat in order to eat it. Obviously nobody likes losing an arm, but this does give you an opportunity to get away while it is distracted? Funnily enough the way our health system works means that sometimes losing that arm actually takes you out of soft crit so you can stumble back to the station for a replacement (or try to wrestle yours back?) All of these things are achievable also by a player if you make one sapient, they will pull arms off mobs they attack which are in crit and can eat arms if they see them lying around if they want. I added an element to let you dismember people with your bare hands, maybe someone evil can use it to add a beheading attack some day. Here's a video of their new behaviours: https://www.youtube.com/watch?v=9eKxsH7hD7Q ## Why It's Good For The Game Gives mobs more character. Reduces our list of frozen simple mobs. Replaces some ugly side sprites. Medbay enrichment? ## Changelog 🆑 refactor: Lobstrosities are now basic mobs and have different AI behaviour. Please report anything which seems like it shouldn't be happening. add: Lobstrosities will now only opportunistically attack things they have knocked over with their charge, and are otherwise timid. add: Lobstrosities are hungry for fingers and will steal one of your arms if they defeat you in combat, although this gives you time to crawl away. sprite: New sprites for Lobstrosities. /🆑 * Basic Lobstrosity * Modular paths --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
81a8bc4acc |
[MIRROR] The Leaning Update (and Density Refractor) [MDB IGNORE] (#22606)
* The Leaning Update (and Density Refractor) * Merge conflicts --------- Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
4d7ba6ebcb |
[MANUAL MIRROR] Reworks Duffel Bags (Zippers) (#22363)
* Reworks Duffel Bags (Zippers) * Update backpack.dm * Duiffel Spotfix * error fixes * Update backpack.dm * Update code/modules/antagonists/cult/cult.dm * Update backpack.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
2f552919c1 |
[MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two * Merge conflict resolution * Modular path hell * hmm * Update 2022-10.yml * Another modular thing --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
02648adcd6 |
[MIRROR] Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests [MDB IGNORE] (#22348)
* Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests * Fixing merge conflicts * don't forget to ctrl+s! * Another forgotten file * urgh * gets rid of vestiges of update_atom_languages() and mind language holders * No longer needed * Fixes some modular grant_language calls * Deprecated code * This was up here before.. * Fixes failing unit tests, refactors silverscale lizards language a bit removing the need for skyrat edits Removes some no longer needed code --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
2f5c7f8389 |
[MIRROR] Icon folder cleaning wave one [MDB IGNORE] (#22374)
* Icon folder cleaning wave one * Fixe a merge conflict * Fixes some more merge conflicts * Fixes some modular icon paths * Fixes even more modular icon paths... Hopefully that's the last of them * Fixes some merge discrepencies * More merge issues * ok * not ok --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
a40df919ec |
[Missed Mirror] Maptext 2023 tweaks 3 (#76552) (#22275)
Maptext 2023 tweaks 3 (#76552) Hopefully the last set of changes in this demonstration of the [Goldilocks principle](https://en.wikipedia.org/wiki/Goldilocks_principle). Some more font changes, the big (hah) one being the context tooltips again. - Context tooltips smaller main line, more compact sublines. - Improves documentation on the usage of the macros. - Removes incorrect comment I added earlier in tgstation.dme - Adds black outlines as default in the macros. - Icon sized letters (Dwarf Fortress, credits). - Deathrattle and other actions reduced spacing. - Aligned cooldowns/countdowns. <details> <summary>Screenshots</summary>        </details> 🆑 LT3 image: More maptext and font tweaks spellcheck: Context tooltips too small, too big... just right? /🆑 --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
9ac12f0f60 |
[MIRROR] Maptext 2023 tweaks [NO GBP] [MDB IGNORE] (#22149)
* Maptext 2023 tweaks [NO GBP] (#76397) ## About The Pull Request - In PR https://github.com/tgstation/tgstation/pull/76356 missed a few bits of maptext around, such as shuttle signs and the supermatter. Small text adjustments/fixes here. - Large amount of feedback about the context tooltips. Increases size, lightens default color as to not be too imposing. 🆑 LT3 qol: Context tooltip size increased fix: Fixed remnants of old maptext code on various things /🆑 * Maptext 2023 tweaks [NO GBP] --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
fcfdbfc975 |
[MIRROR] Fix colossus finale firing like 100 fewer projectiles than it should be [MDB IGNORE] (#21969)
* Fix colossus finale firing like 100 fewer projectiles than it should be (#76202) ## About The Pull Request  ## Changelog 🆑 Melbert fix: The colossus's finale attack is now 100x more lethal, because it was firing 100x fewer projectiles than intended /🆑 * Fix colossus finale firing like 100 fewer projectiles than it should be --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
a863e7787d |
[MIRROR] Unit tests now catch decals in walls/space [MDB IGNORE] (#21862)
* Unit tests now catch decals in walls/space * the fuck * vr * vr --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com> |
||
|
|
4a451d4e24 |
[MIRROR] Removes some boilerplate from transforming component [MDB IGNORE] (#21885)
* Removes some boilerplate from transforming component * conflicts --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> |