mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
observer_fix_tm
22 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
5409570e01 |
Upgrades GODMODE from a flag to a trait. (#86596)
## About The Pull Request GODMODE has a lot of sources that toggle it. From admin-stuff to status effects, components, actions and mobs which are supposed to be invincible. It's better off as a trait than a flag, so we can manage these sources. ## Why It's Good For The Game See above. ## Changelog 🆑 admin: godmode is now a datum trait instead of a bitflag. This means the process for toggling it is a little different now. /🆑 |
||
|
|
68677dc721 |
Disarm refactor, plus shoving people with shields (#80123)
## About The Pull Request I wanted to add the ability to shove people with shields by right-clicking your target, just like how it works barehanded. This also required a solid refactor of disarm code, effectively bringing down the core of it to `mob/living` from `mob/living/carbon` or `mob/living/carbon/human`. This also means you can shove simple mobs inside closets, bins and on tables. Xenos and borgs are pretty much immune to regular disarms, but using a shield will work (borgs and royal xenos are immune to the knockdown). The riot shield armor has been balanced. It now tanks melee attacks pretty well, but will break against bullets in just about 2 to 4 hits depending on the bullet damage. I've always found the lack of sturdiness of the riot shields for what they're supposed to be good for a bit detrimental. Because I've refactored an item flag into a trait, I've had to add a new MOD module that grants protection from shove knockdown and staggering; found pre-installed in the administrative MODsuit, but I've also added it to the black market to make it cooler. You can bash people with the strobe shield on combat mode. ## Why It's Good For The Game Currently, shields are simply items that take a held slot in return of some block chance without being anything special, save for the strobe shield's integrated flash I guess, but are also a botherance as most crumple under the duress of less than half a dozen attacks. Meanwhile swords and other weapons with blok chance just don't care. TL;DR, I want them a bit more remarkable, and flexible as a tool. Of course, this ended up in a larger refactor because the right-click / disarm code was inconsistent. ## Changelog 🆑 add: Shields (and pillows) can be used to shove people around the same way barehanded right-clicking does. Xenos and borgs can actually be moved this way. add: Added a new MODsuit module, the bulwark module, which prevents knockdown and staggering from shoving, and getting pushed away by thrown objects. Inbuilt for the safeguard MODsuit, but one might also it in the black market. refactor: Disarming has been refactored. You can now shove simple critters onto tables and into bins and closets balance: Shields now take their own armor values and the armor penetration of the attack they blocked when damaged. This means shields are a bit sturdier now. balance: Riot shields can tank a lot more damage against melee weapons, but less against bullets. qol: strobe shields can now be used to bash people while combat mode is on. /🆑 |
||
|
|
45438b4f04 |
Removes the attack_slime proc, and other slime refactors (#80487)
## About The Pull Request - **Removed attack_slime**. Most of the attack_slime content has been moved to a proc that signs up for COMSIG_LIVING_UNARMED_ATTACK. Its ugly, but will make converting slimes to a basic mob easier. They now use attack_animal for now, which might cause some unexpected interactions. Hopefully when they are converted to basic mobs, these can be cleared up properly. - This caused some issues with cyborgs, who used to get only half damage dealt to them. As refactoring this would have been too much of a difficult task without much real gain, after much pondering, I have decided that since slimes can always flash cyborgs with each of their strikes, maybe cyborgs should only fear slimes that have electric charges in them. In addition, slimes electric charges decrease now after they successfully zap an cyborg, making them more consistent with the zaps that affect carbons. AIs are still fully immune to slimes. - The slime.dm and slime.life files were extremely bloated, and unorganized. I have created two new files, defense.dm and ai.dm. I have moved the various attack_by/attack_hand/etc procs to defense.dm. Ai.dm now contains every single proc the slime's "AI" uses; this should help getting a clearer picture of the current functionality, which should aid with basic mob conversion and decision tree creation. The remaining files have been slightly organized, with overrides in front, and new procs at the back. - Created a proc for swapping out Adult and Baby states of a slime. Previously, attack_slime was in many cases ignoring fields like melee_damage_lower and melee_damage_upper, replacing it with magic numbers based on the slime's lifestate. Now these values are hard set by these procs. This has caused slimes to be more consistent, though baby slimes might do a bit less damage on the low end. I am tempted to turn these in datums in the future, or as part of this PR. - Removed baby slime's chance to accidentally attack a window/grille by bumping into it, they had 0 object damage anyways, unlike adult slimes, so there was no reason not to early return. - The proc of `handle_feeding` assumed adjustBruteLoss and adjustToxLoss return positive values when damage has been done, when in reality, it returns the total health change along with its direction. This meant slimes would fell off simple or basic mobs after a single bite. This has been fixed. - Also updated the warning before the slime type defines, as they were out of date. - I have removed the bespoke spacewalk override for slimes, which should allow them to drift, should gravity go out. - The nutrition stats are assigned only once, when the slime grows up, instead of compared to being an adult every life tick ## Why It's Good For The Game Less duplicated code. This refactor should help in the basic mob conversion process. Cyborgs have an easier time wrangling slimes, who could previously kill them in three hits, if charged. They are mostly encased in metal, they should feel fine when not hit with electric attacks. Lets slimes feast on delicious corgis. |
||
|
|
365e50bbce |
Mob attackedby / check_block refactor, plus some minor cleanup of attack_x procs (#79563)
## About The Pull Request - Deletes `spec_attacked_by` - Elements simple/basic mob attack threshold - There was a skeleton mob that "mimics armor" but didn't use the actual mimicing armor thing we have, so I changed that. - Moves `check_shields` down to the living level, renames it to `check_block` - Martial art blocking is now signalized (only CQC uses it anyways) - Cleaned up a bit of `attack_x` procs, but not a lot. Should have an entire PR dedicated to this .... mess. - Deprecates `/obj/item/melee` ## Why It's Good For The Game Second verse, same as the first. - Less bad species related procs. - Largely brings a lot of code in line, making combat more consistent across types. - Makes it a lot easier to add new code relating to blocking or taking damage. ## Changelog 🆑 Melbert refactor: Refactored another large chuck of attack code, primarily involving melee item attacks and non-human mob attacks. Report if you see anything weird fix: Pacifists clicking on simple robots or silicons no longer causes sparks fix: Blocked thrown batons are now properly... blocked /🆑 |
||
|
|
dc9376a85e |
basic mobs use their disarm response when shoved by humans (#79441)
## About The Pull Request So basic mobs have variables which can change what message is displayed when they are shoved. But right now these are only used if they are shoved by aliens. This PR changes it so that they're also used when they're shoved by humans.  ## Why It's Good For The Game It seems a bit weird for these to only show up when aliens are involved. It seems more appropriate to shoo a tiny creature away compared to shoving it. ## Changelog 🆑 spellcheck: basic mobs getting shoved by humans now display the mob's disarm response /🆑 |
||
|
|
1b8bcd0365 |
Basic drones (#79109)
## About The Pull Request Fixes #68825 Fixes #72249 Fixes #70184 Converts maintenance drones to use the basic mob framework. As drones don't use AI, this was mostly a perfunctory conversion, but I took the opportunity to clean up drone code a bit and fixed a few bugs. Noteworthy changes: - Drones now have a `can_unhack` field. This is set to FALSE on syndrones, because unhacking them doesn't make them stop being evil but does cause some weirdness. Syndrones are unused right now, but you never know. - Drones use the Dextrous component for hand-having. - Drones no longer have an internal ID card, instead being given all-access with the `simple_access` component. - Picking up drones now works the same as for other mobs, instead of pointlessly copying the code into `attack_hand`. As a consequence, it is now possible to punch drones if you want to for some reason. - Drones can now reboot/cannibalize dead drones without being in combat mode. - Cannibalizing a drone that contains a client no longer runtimes - the client is ghosted ahead of time. - Drones now have TRAIT_ADVANCEDTOOLUSER, allowing them to properly interact with machines. - Trying to screwdriver a dead drone now gives a balloon alert about why you can't do that. In addition to these changes, I cleaned up the code quite a bit, organizing things better and placing more useful comments throughout. And removing a hell of a lot of single-letter variable names. I will note that this PR does _not_ address #72129. The issue there is that sprites for drones-as-hats are entirely nonexistent, and I'm not a spriter. It shouldn't be too hard to fix if someone makes dronehat sprites, though! ## Why It's Good For The Game Kills 8 more simple animals. In addition to that, drones were clearly a bit neglected, so this fixes them up a bit and makes the code a little bit clearer. Maybe not that much clearer, but it's something. It certainly leaves them in a better place for further work if anyone wants to do that. Plus, a bunch of bugs and other jankiness are fixed now, which is nice. ## Changelog 🆑 refactor: Maintenance Drones now use the basic mob framework. This shouldn't come with any noticeable gameplay changes, but please report any bugs. fix: Drones can now interact normally with electrified doors. fix: Drones' built-in tools can no longer be placed in storage objects and/or thrown on the floor. fix: Drones can now perform right-click interactions correctly, such as deconstructing reinforced windows. fix: Drones can now reboot or cannibalize other drones without being in combat mode. /🆑 |
||
|
|
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. /🆑 |
||
|
|
517d33e6f0 |
Basic blob mobs (#78520)
## About The Pull Request I remembered today that blob code is ass, especially blob spores. There's still a lot to improve but I cleaned up _some_ of it by converting these mobs. Now they use a newer framework and more signal handling as compared to circular references. I _expect_ the behaviour here to largely be the same as it was or similar. I haven't added anything fancy or new. This is a reasonably big PR but at least all of the files are small? Everything here touched every other thing enough that it didnt make sense to split up sorry. Other things I did in code: - Experimented with replacing the `mob/blob` subtype with a component. Don't know if this is genius or stupid. - AI subtree which just walks somewhere. We've used this behaviour a lot but never given it its own subtree. - Blob Spores and Zombies are two different mobs now instead of being one mob which just changes every single one of its properties. - Made a few living defence procs call super, because the only thing super does was send a signal and we weren't doing that for no reason. Also added a couple extra signals for intercepts we did not have. ## Changelog 🆑 fix: Blob spores will respond to rallies more reliably (it won't runtime every time they try and pathfind). fix: Blobbernaut pain animation overlays should align with the direction the mob is facing instead of always facing South refactor: Blob spores, zombies, and blobbernauts now all use the basic mob framework. They should work the same, but please report any issues. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> |
||
|
|
16cecf864d |
Goliath basic mob (#76754)
## About The Pull Request Converts Goliaths to the basic mob framework and gives them some new moves because I can't leave things well enough alone. I am planning on touching all the lavaland fauna and then maybe even the icebox ones if I haven't got bored. The Golaith is the first because it is iconic. https://www.youtube.com/watch?v=JNcKvMwT4-Q Here's me getting killed by one as a demonstration. Despite my poor performance I would contend that they aren't a _lot_ more dangerous, but they are a little more dangerous. The chief difference here is that they have two new attacks which they will only use in response to being attacked. If fired at from range, they will target the attacker with a line of tentacles (it doesn't track you, so is easily sidestepped). If attacked in melee, they will surround _themselves_ with tentacles, on a longer cooldown. Something else you may notice in this video: I discovered that basic mobs are actually _too smart_ to be Lavaland fauna. Typically (unlike their old form) a mob on our new AI system is smart enough to attack someone _the moment they come into range_ rather than only checking on predictable ticks, which would make using the Crusher an essentially unviable prospect. To counteract this, Goliaths now have a delayed attack component which gives you a visual warning and short duration to get out of range before they swing at you. I will probably put this on all mining fauna that get reworked, it wouldn't be a terrible thing to put on other mobs to be honest. Other changes: The goliath stun is now a status effect with _buckles_ you to the tentacle as if grabbed, as well as its previous effects. While this seems purely worse, any nearby helpers can now help-click on you to instantly remove the debuff. Experiencing the effect of a Lobstrosity Rush Gland makes you immune to being grabbed by tentacles and an implanted one will automatically trigger and free you if you are hit, and the explosive effect of Brimdust also causes the tentacle to retract (although you'd need to take damage for this to happen). Using the tools of the land, you can make these creatures less threatening. The ability for a Goliath to chain-apply the ability has now also been reduced, it won't refresh its duration if you are hit when already buckled. When not occupied hounding miners, Goliaths will intermittently dig up the asteroid sand and eat any worms that this produces. I also made some new sprites for riding a Goliath because they've been broken since the Lavaland mob update and also kind of were ugly before then anyway:  Other code changes: - I made an element which only lets an attached object move every x seconds. This is because Goliaths are far too slow to use the speed system (the glide just looks bugged as hell) but one thing I am invested in when converting these is to make sure that they share the same behaviour when player or AI controlled. This is disabled while you're riding them because it was interminably slow. - The Goliath tentacle trail uses a supertype object now shared with the Meteor Heart which did something kind of similar. ## Why It's Good For The Game It begins the process of moving one of our larger subsets of NPCs onto the newer framework for NPC behaviour. It adds a little bit more life to an iconic but slightly uninteresting foe which mostly just walked at you slowly. This PR contains a few components I expect to apply more widely to other mobs in the future. ## Changelog 🆑 refactor: Goliaths now use the Basic Mob framework, please report any unusual behaviour. add: Goliaths learned a couple of new attacks which they will use in self-defence. balance: Help-clicking a miner grabbed by Goliath tentacles will immediately free them, as will the effect of several items you can scavenge from around Lavaland. image: New sprites for the Goliath saddle. /🆑 |
||
|
|
1b5c0489a4 |
ex_act() will work on basic mobs again (lol) + Unit Test (#74953)
basically ex_act's implementation on basic mobs would call parent and then react to it's value, this is presumably to do the first check about space vine mutations and whatever. the problem is that the `/mob/living` implementation would itself also call parent, and that would always return null because `/atom/proc/ex_act` doesn't have a set return value. So, this simply would _always_ early return, with ex_act presumably *never* working on basic mobs for at least four months now. I decided to then change up the return values for pretty much all implementations of `ex_act()` since there was no rhyme or reason to returning null/FALSE/TRUE, and documenting why it's like that. Just to make sure I wasn't breaking anything doing this (at least on base implementations), I wrote a unit test for all of the three major physical types in game (objs, mobs, turfs) because i am a paranoid fuckar. we should be good to go now though. ## Why It's Good For The Game i noticed this because placing c4's on sargeant araneus wouldn't actually damage it whatsoever. now it actually does the stated 30 damage, but araneus has like 250 health so it doesn't actually matter in the long run. whatever at least it does the damn 30 now. also adds a unit test for this specific case as well as a range of other cases to ensure this stuff doesn't silently break in this way anymore |
||
|
|
4599842d7c |
Makes Shake() proc work (#73480)
## About The Pull Request Fixes #72321 Fixes #70388 The shake proc didn't work and hasn't for ages. I remember it having worked at some point, but it was quite a long time ago. I cannot guarantee that the end result here is the same as it was, the reason here being that I have no idea how this proc ever worked in the first place. My limited understanding of the `animate` proc implies that the previous implementation as written would never have acted as you would expect it to, but clearly at some time in the past it did work. A mystery. As a result of the previous, possibly because the proc never _did_ work as expected and just did something which looked vaguely correct most of the time, both the default values and the values people were passing into this proc were completely ridiculous. Why would anyone ever want to pixel shift an object with a range of _15_ pixels in all directions? That's half a full tile! And why would you want it to do this for 25 seconds? So I also changed the values being passed in, because you really want pretty small numbers passed into here most of the time. Here's a video of everything that vibrates: https://www.youtube.com/watch?v=Q0hoqmaXkKA The exception is the v8 engine. I left this alone because it seems to try and start shaking while in your hands, which doesn't work, and I don't know how to fix that. This has potentially _also_ never worked. ## Why It's Good For The Game Now you can see intended visual indicators for: - Lobstrosities charging. - Beepsky being EMPed. - The Savannah Ivanov preparing to jump. - The DNA infuser putting someone through the spin cycle. - The mystery box admin item I had no previous idea even existed (fun animations on this one). - Anything else which wants to use this proc to create vibrating objects in the future. ## Changelog 🆑 fix: Lobstrosities and Tarantulas will once more vibrate to let you know they're about to charge at you. fix: The Savannah Ivanov will once more vibrate to let you know it's about to jump into the air. fix: The DNA infuser will now vibrate to let people know that it's busy blending someone with a dead animal. /🆑 |
||
|
|
3daf3b0643 |
fixes silly stuff about basic mobs (#72260)
## About The Pull Request makes basic mob attacks call their default attacks when done by a player, rather than calling simple mob attacks makes basic mob attacks call simple animal attacks by default, until we remove simplemobs moves some stuff off to procs and flags, fixes some stuff ## Why It's Good For The Game im moving holoparasites to basic mobs and i literally cant give them secondary click attacks ## Changelog 🆑 fix: fixes moonicorns not applying pax /🆑 |
||
|
|
f47b29a392 |
Basic Mob Carp Part II: Regenerator (#71437)
## About The Pull Request <details> <summary>Video</summary> https://user-images.githubusercontent.com/7483112/203324325-5bf46e0f-b294-4832-9016-aec275036ca9.mp4 </details> Adds a "Regenerator" component, applies it to carp, and removes the previous implementation from megacarp. The function of this component is that any time you take damage a timer is reset, when that timer expires you will begin regenerating health and display an animated border for visual feedback. This was previously a function of mega carp but was extremely obscure because there was _no_ feedback, so it would only be visible that it was happening if you were wearing a medical hud. Additionally because mega carp will pursue a target until it dies you probably wouldn't notice it even then, it had to survive a fight in order to gain any value from this. This will still be true for all carp until AI changes are pushed, so until then this isn't going to do very much for NPCs but might be a small buff to player controlled carp (though those can all retreat to a carp rift for a similar effect). This also modifies a few "defence" procs which were either directly setting HP or neglecting to call signals from a base proc, as they would bypass triggering the effect. This should make them more reliable for other things which rely on those signals too. ## Why It's Good For The Game Gives an iconic creature some more unique behaviour than "moves directly towards you and bites". Gives visual feedback to some behaviour which has existed invisibly for a long time. ## Changelog 🆑 add: All Space Carp will now start regenerating health after 6 seconds of not taking any damage, until they're back to full health. This behaviour was previously unique to mega carp. /🆑 |
||
|
|
ad5debaaa1 |
Add investigate_deaths (#71112)
## About The Pull Request Adds INVESTIGATE_DEATHS, an investigate category intended to better show causes of death.   Also makes suicide_act take a `mob/living` as an argument instead of a `mob`, and some minor style improvements since apparently I hate atomicity. ## Why It's Good For The Game Inspired by a mysterious death and dusting. More logging and leads for admins investigating deaths. Also fixes #59028 ## Changelog 🆑 Tattle admin: added investigate deaths to shed some more light on unusual demises, dustings, and gibbings /🆑 Co-authored-by: tattle <article.disaster@gmail.com> |
||
|
|
8e4bc80d92 |
Easy's Super Omega "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits. (#70422)
<!-- 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 Ok first if you don't want to read any further explanation you can watch these two videos and you will understand all of the mechanical depth of this change. https://user-images.githubusercontent.com/55666666/194788103-8019dad8-7e44-4cc8-bc8f-0a4f8f00a357.mp4 https://user-images.githubusercontent.com/55666666/194788109-345a3146-fb4b-4a2e-9c2a-e2ee786ba97d.mp4 ### **Disclaimer: Effect on gameplay extremely limited and niche read at your own risk** Starting at the top, regarding the species datum, the vars attack_type, punchdamagelow, punchdamagehigh, punchstunthreshold, attack_verb, attack_effect, attack_sound, and miss_sound have been removed. All bodyparts (not just arms) now have corresponding variables for how they should act if utilized in an unarmed attack. The bodyparts vars are correlated to their corresponding species. All arm type bodyparts have been repathed through a common parent for the purposes of keeping variables consistent. The same is true for the legs. When a carbon begins an unarmed attack, it will check the carbon's brain to see what limb should be used for the attack. If the brain has no answers it will default to the arm that corresponds to the active hand of the attacker. Currently in all brains except monkeys, it check to see if the attackers target target is laying down, and if so, call for a kick with the leg that corresponds with the attackers active hand. If the attacker has no useable legs, or the attacker does not have a corresponding leg to the active hand, or the target is not laying down, the brain will simply default for an attack with the active hand. Monkeys brains (take note the difference between having a monkey brain and being controlled by monkey AI) are the exception, they will simply always choose their heads, and by default an attack with the head is a bite attack. As an example: Previously ethereal would make attacks that used the verb "burn" and did burn damage despite what limbs they possessed. Now anybody with an ethereal limb will make an unarmed attack that does burn damage and has all the same verbs as an ethereal would. And finally, the chunky finger species trait has been moved over to the species arms. Effect on other sources like insuls remains unchanged. <!-- 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 The main motivation is moving direct mechanical elements off of species to, quoting tralezab here, "Make species like a blueprint." Opens more opportunities for coders to add specific elements to limbs, perhaps we could see a buff to unarmed strikes from robot arms, or a species that headbutts people to death. Also undeniably cool, and fixes some weirdness like fully auged ethereals still doing their normal ethereal attack. <!-- 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. --> 🆑 itseasytosee refactor: Elements of unarmed strikes are now limb dependent instead of species dependent. Go rip off an ethereal arm, sew it onto yourself, and burn some people. /🆑 <!-- 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: itseasytosee <noodlenymphftw@gmail.com@gmail.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
6d12dc69ef |
Refactor /mob/living/carbon/alien/humanoid to be /mob/living/carbon/alien/adult (#70481)
|
||
|
|
b4b9c6776d |
Ladders take left/right clicks to go up or down (+ extra balance and QOL) (#67913)
You now left click to climb up and right click to climb down a ladder. A delay of 1 second has also been added, since otherwise it'd take only one click to immediately move vertically and would be much more spammable. Ghosts still use the old radials, because their right clicks are bound to the default byond popup menu. |
||
|
|
684eab3d31 |
Converts SFX keys into DEFINES (#65146)
About The Pull Request Simply converts all instances of soundkeys that use get_sfx from strings into defines. E.g. "sparks" is now SFX_SPARKS Why It's Good For The Game It makes life a lot easier when you're looking for a sound effect. You just type SFX_ and you get suggestions in VSC. Plus, it looks better. image Changelog Not player facing. |
||
|
|
15cfe0b1ec |
Robotic Basic and Simple mobs now take damage from EMPs (#64752)
Simple/basic mobs with ROBOTIC biotype get damaged by emps |
||
|
|
17677c6af4 |
Fixed ashdrakes being pushed (#63373)
Megafauna and such animals are not pushable if their move resist is greater than someone's move force. Them being shovable is an oversight. |
||
|
|
46cb925af0 |
Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#60694)
Simple_animals / mobs are the biggest lie in this code-base. They're far from simple and have an extreme god-object problem. Especially when you get to /hostile, where there is so many procs, vars, and what not, that you can't make any interesting additions without snowflaking the hell out of the code. This PR hopes to help kill this problem by introducing a new /living subtype, /living/basic. The idea of this refactor is to slowly start moving all old simple_animals to this new system, moving over behaviors like charging and more extravagant mobs like megafauna over bit by bit similar to how newfood was implemented. One of the other big goals of this refactor is to move many of the fringe simple animal behaviors into either AI datums, or components/elements. (Some of which still needs to be done in this PR). As a proof of concept, I created the base mob/living/basic, and moved cockroaches over to the system. Since cockroaches have both a passive, melee and ranged mob. This PR does slightly affect balance as the behavior isn't 1-on-1 due to it no longer running on the janky /hostile behavior, but I tried to keep the effects to a minimum, and the glockroach and hauberoach are not spawnable through many means as far as I know. |