mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-04-29 11:52:41 +01:00
088409bbe376a7adcd4d1fb747cf4a5e4f257c5b
73 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ad111f4950 |
Spacemove refactor - Newtonian physics (#84869)
## About The Pull Request This PR significantly enhances how zero-g movement works. Its no longer locked to one of 8 directions, everything now has inertia and is affected by weight. This means that throwing a piece of wire will no longer completely reverse your movement direction, and that being thrown out of mass driver no longer will slow you down to a halt at some point. This leads to following gameplay changes: * Guns now accelerate you. Ballistics have higher acceleration than lasers, and higher calibers have higher acceleration than smaller ones. This means that firing full-auto weapons in zero-g will make you drift and accelerate significantly. While this can be a hilarious way to travel in space, it makes using them trickier. * Impacting a wall or an object while moving at high speeds will cause you to violently crash into it as if you were thrown. Careful when exploring! * Jetpacks now have inertia. Changes introduced in #84712 have been mostly reverted, although speed buff has been reduced to 0.3 instead of 0.5 (although this is compensated by new movement mechanics, so overall speed should be roughly equal). All MODsuit jetpacks now possess the speed boost. Advanced MODsuit jets (which has also been added back) and captain's jetpack instead have higher acceleration and stabilization power, providing much more precise control over your movement. * Firing guns while moving on a jetpack will partially negate your pack's acceleration, slowing you down. Non-advanced jetpacks' stabilization is not enough to compensate for heavy caliber weaponry as sniper rifles, shotguns or rocket launchers. * You no longer instantly decelerate upon sliding along a wall. Instead, it may take a few tiles if you are moving at extreme speeds. Passing over lattices still allows you to grab onto them! As space movement is angle-based instead of dir-based now, its much more smooth than before due to using new movement logic. Example of jetpack stabilization in action: https://github.com/tgstation/tgstation/assets/44720187/6761a4fd-b7de-4523-97ea-38144b8aab41 And, of course, you can do this now.  **This pull request requires extensive gameplay testing before merging**, as a large amount of numbers have been picked arbitrarily in an attempt to keep consistency with previous behavior (guns and normal-sized items applying 1 drift force, which is equal to what everything applied before this PR). Jetpacks and impacts may also require adjustments as to not be frustrating to use. Closes #85165 ## Why It's Good For The Game Zero-G refactor - currently our zero-g movement is rather ugly and can be uncomfortable to work with. A piece of cable being able to accelerate you the same as a duffelbag full of items when thrown makes no sense, and so does instantly changing directions. Inertia-based version is smoother and more intuitive. This also makes being thrown into space more of a hazard (possibly opening the door for explosive decompressions?) Jetpack inertia and gun changes - this is mostly a consequence of inertia-based movement. However, zero-g combat being preferred during modes like warops was an issue due to it negatively affecting everyone without jetpacks which are in limited supply onboard. This reverts the mobility changes which severely impacted space exploration, while making zero-g combat more dangerous and having it require more skill to be a viable option. ## What's left - [x] Refactor moth wings to use jetpack code - [x] Refactor functional wings to use jetpack code - [x] Locate and fix a recursion runtime that sometimes occurs upon splattering against a wall - [x] Add craftable tethers and modify engineering MOD tethers to use the same system ## Changelog 🆑 add: You can now craft tether anchors, which can be secured with a wrench and attached to with right click. They won't let you drift into space and you can adjust tether length/cut it via lmb/rmb/ctrl click on the wire. add: MOD tethers now remotely place and connect to tether anchors instead of throwing you at where they landed. balance: MOD tethers can now be used in gravity balance: Jetpacks are now inertia-based. balance: Guns can accelerate you significantly in zero-g. balance: All jetpacks now give you equal speed buff, however advanced MOD ion jets and captain's jetpack have higher acceleration/deceleration values. refactor: Refactored zero-g movement to be inertia-based and utilize angles instead of directions. /🆑 |
||
|
|
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 /🆑 |
||
|
|
b9fad92412 |
Adds achievement-unlockables hats for orbies (feat. big rollies from hacked cigarette vending machines) (#86098)
## About The Pull Request So, do you remember orbies, those cutesy virtual PDA pets from that PR that Ben made roughly six months ago before moving on his next project, leaving them to be probably forgotten in a near future/present/past? Yeah, personally I never played around, however I recalled that they do have customizable virtual hats, which can be selected from a dropdown in the UI, and I thought that it would be a perfect target for some achievement-related content, as they're totally cosmetic that provides no gameplay advantage nor affects balance in no way whatsoever. I cannot sit well with cheevos being purely an end to itself, that's the reason this PR exists. The new additions to orbies hats, and their respective required achievements are: - The fishing hat (Legendary Fisher) - A huge-ass rollie (Unhealthy Snacks) (yeah, it isn't exactly a hat but the code in no way assume that the item has to be a hat, beside vars named like that for the sake of convenience) - A tape wizard hat (Archmage) - An energy cakehat (Very Important Piscis) - A bounty hunter cowboy hat (Hot Damn!) - A fancy crown (Outdebted) The huge-ass rollie (called fat dart) in the game, is a new cigarette, rarely found in hacked cigarette vending machines. It's obviously a reference to that Ralsei meme from 3 years ago or so but I personally don't care, I just wanted to give an excessively big cigarette to orbies to symbolize the proposterous accomplishment of eating 500 cigarettes in a single round without dying from nicotine OD less than halfway through, but since orbie hats use actual items are references for their appearance, I found myself obliged to add one to the code. Overall, the fat dart comes from an old PR on Citadel, though I had to resprite it myself. Here's a lazy collage of the hats. For some reason unbeknownst to me, the hats are horizontally squished. I need to ask Ben why he did them this way when Orbies' heads are as wide as a rugby ball.  ## Why It's Good For The Game Simple, extra cosmetic stuff for a simple feature that's as relevant as playing around with plushes. ## Changelog 🆑 add: Added more customizable options to PDA virtual pets, which can be unlocked by completing achievements. add: Added a fat dart that can be rarely found in hacked cigarette vending machines. /🆑 |
||
|
|
19aa36b791 |
Post-godmode refactor cleanup (#86718)
## About The Pull Request Adds some flags that went missing after #86596 Closes #86709 ## Changelog 🆑 fix: Snow bears are no longer impervious to all sources of damage fix: Cameras, living floors and ghost of poly no longer can be pushed around /🆑 |
||
|
|
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. /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
2016156d6f |
Shift certain flying mob positions upon death (#85942)
## About The Pull Request Chasing more side effects of offsetting mobs and giving them shadows.  Some mobs are "flying" while they are alive, but not while they are dead. Some mobs (like Watchers) offset their death sprites in the dmi to make it look like they have dropped to the ground, others do not bother. For the ones which don't, we want to shift them down ourselves so it doesn't look like the corpse is levitating. I'm willing to accept better suggestions for how to implement this but this seemed like the most obvious. ## Why It's Good For The Game No more levitating corpses ## Changelog 🆑 fix: Carp, bat, parrot, and dragon corpses no longer float in the air. /🆑 |
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
0e36ba0808 |
converts most pet behavior into elements (#85290)
## About The Pull Request refactors pet behaviors, such as collars and pet cultists into elements. also this is a first step to completely removing the pet subtype ## Why It's Good For The Game this means itll be alot easier for coders to make their tameable mobs able to wear pet collars without having to make them of the pet subtype, which i also plan to do ## Changelog 🆑 refactor: refactors pet collars and cultist pets into elements /🆑 |
||
|
|
b748c455df |
Donk Co Interstellar Trading Post 6016 (#83075)
## About The Pull Request Adds a new space ruin to the pool. It's the haunted trading post. It is a whiteship dock with a large (safe) common area. The back rooms contain loot and danger. Here are a few 'teaser' images. https://i.imgur.com/M1te9Ha.png https://i.imgur.com/SF3bJ62.png https://i.imgur.com/i9xeUFP.png https://i.imgur.com/UBwpJAM.png Notable treasures: Cash, Donk Co merch, Donk Co guns, Donk Co Donk Pockets, Donk Co vendors, Donk Co ID Cards, and the Donk Co Secret Recipe. Oh yeah the secret documents teach you how to make three prototype variants of Donk Pockets. There is no limit to the amount of times it can be read, so if you want to corner the market remember to lock up the documents. Or you can share them with your friends. **Now COMPLETE!**  ## Why It's Good For The Game This ruin is a multi-room dungeon with multiple solutions to each room. It has plenty of action from mobs, traps and hazards. Each room has some form of treasure or unique item in it. There's a boss at the end with great rewards for fighting it, including a cool gun (slightly worse variant of laser carbine). This ruin is also a whiteship dock and space base. The public area is entirely safe: stick to the well lit sector and don't trespass in the employees only areas and you won't be harmed. There is a variety of vendors to resupply at (including a brand new Donk Co snack vendor) but unlike most other space ruins you do have to pay. A whiteship can dock at this ruin if you have one, so you can bring groups of people to party or attack the dungeon together. ## Changelog 🆑 add: Adds the Haunted Trading Post space ruin. add: Adds 10+ unique items for the Haunted Trading Post add: Adds 5 dangerous mobs for the Haunted Trading Post add: Adds 4 new types of hazardous traps for the Haunted Trading Post. /🆑 --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
1f65065ec0 |
Allows humans with a robotic voicebox installed, MMIs, and posibrains to use silicon emotes, and simple/basic bots to beep (#84912)
## About The Pull Request ### EDITED, see spoiler for previous about section. This pr adds the `TRAIT_SILICON_EMOTES_ALLOWED`, which is now used to determine what can perform silicons emotes instead of typechecks. We do this by adding a `trait_required` var to emotes, which if set is checked for in `can_run_emote(...)` and means the mob must have that trait to use the emote. We then adds this trait to all of the mobs previously capable of using silicon emotes and the beep emote, being: All silicons, basic bots, simple bots, orbies, and brain mobs. In addition, we add the trait to robotic voicebox users. Finally, it makes beeping a silicon emote. What this changes is that robotic voicebox users can beep and use other silicon emotes, basic and simple bots can actually beep, sentient orbies could use other silicon emotes, and brains can beep and use silicon emotes. Previously brains where on the allowed types list for beeping, but living emotes also blocked brains generally, so they couldn't _actually_ beep. <details> <summary>Previous About Section</summary> All this really does is add a new trait, `TRAIT_SILICON_EMOTES_ALLOWED`, which when given to a human allows them to use silicon emotes. It does this by adding the `/mob/living/carbon/human` type to the allowed types for these emotes, but then adding an additional check to `can_run_emote(...)` for these emotes to block it for humans if they don't have the trait. We add it to the typecache because the base checks for `can_run_emote(...)` would block if not for that, but we _do_ want the other checks it runs. </details> ## Why It's Good For The Game I just think it'd be fun, really. Like, _I'd_ want to beep at people when I'm going out of my way to augment the shit out of my character. It's an item primarily accessible by roboticists and transhumanists, both of which are encouraged/required to interact with silicons, so I think this'd lead to fun interactions for those that do commit to getting the silicon-speech tongue replacement. Finally, I mean, it's a funky synthesizer that makes you sound like a silicon. Why shouldn't it let you synthesize these sounds too? Hell, even its attack verbs are beeping and booping already. ### EDITED, additional justification: It's weird for basic/simple bots to be able to use all other silicon emotes except beeping. MMI'd brains/posibrains being able to beep looked intentional, just broken. This fixes that. I feel we might as well just allow them to use other silicon emotes while we're at it. |
||
|
|
32aa798d36 |
[NO GBP] Fixes hoverboard being able to be used in space. (#84533)
## About The Pull Request Apparently I've left out that `isopenspaceturf(A)` returns false on normal (not multi-z) space turfs because they're of a different path. This should fix the fact you can use hoverboards as a substitute jetpacks, which wasn't intended. You can still use them in space if there's lattice/catwalk underneath, or another kind of turf on the z-level below however. ## Why It's Good For The Game Unintended bit from the skateboard buff PR I had made months ago. ## Changelog 🆑 fix: Hoverboards properly dysfunction in space without any kind of support underneath them. /🆑 |
||
|
|
167c55bed2 |
Sentient mobs can slowly subtract slime stacks by shaking (#83471)
## About The Pull Request Closes #82746 PR #77569 replaced the clone damage inflicted by slimes with a lingering damage over time effect which can be removed with water. This is all well and good for humans who can spray themselves with fire extinguishers, showers, or sinks... but most other mobs are not actually capable of opearating any form of equipment which can make them wet. This PR allows you to click on the debuff icon to shake the slime off slowly over time (15 seconds to fully remove the debuff). This is slower than the recovery time when wet. Dogs, Cats, and by extension, Felinids are better at removing slime because of their self-cleaning prowess (they're always licking weird stuff off themselves). This is rarely helpful if you're not a Felinid, because almost all cats and dogs have so little health that they will hit the minimum health threshold and lose the debuff anyway by the time they would be done. In the very niche circumstance that a sentient wolf is attacked by a slime they will appreciate this bonus. ## Why It's Good For The Game This was a replacement for slimes inflicting clone damage (I am not sure this even did anything for most simple mobs?) but essentially turned slimes into an automatic death sentence for most forms of mob without hands. Technically the slime debuff cannot kill you and stops if you are under 10 HP, but this is small consolation for most of these mobs which cannot heal themselves either. You are still probably going to take between 30-60 damage during the 15 seconds of removing slime from your body. ## Changelog 🆑 balance: Corrosive slime left behind after a slime fails to eat you can be scraped off with your hands, or shaken off in some other way, by clicking on the debuff. This is slower and less effective than washing it off using water. /🆑 |
||
|
|
8442124bcd |
Gondolas are now basic mobs (#83451)
## About The Pull Request This PR turns gondolas into basic mobs and does some fiddling with gondola pods Their verbs are now action buttons which they lose upon delivering. If set to stay, they won't have their abilities afterwards (or wont get them in the first place if the delivery is already done). Lets them survive without a pod requirement in case admins want to spawn one for their own stuff, so I also removed it from the snowflake checks to exclude them from stuff. Also replaced the hardcoded "cant speak" with simply giving the mute trait, so admins can make gondolas speak if they want to for any reason. ## Why It's Good For The Game The pet level of simple animals can finally be killed off, also gives admins more control over gondola-related stuff if they so wish. ## Changelog 🆑 refactor: Gondolas (including gondola pods) are now basic mobs. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
53a8ba74c8 |
grep's for "recieve" typos (#83369)
Just spellchecking some common mistakes. |
||
|
|
b5f6b04fe8 |
parrots try to immitate voices (#82773)
## About The Pull Request whenever parrots repeat lines they will try to mimic the speaker's voice. it wont sound exact but theyre trying their best ## Why It's Good For The Game adds more detail and character to the line repeating feature ## Changelog 🆑 add: parrots will now try to immitate the speaker's voice /🆑 |
||
|
|
1e78db8471 | Refactors how basic ais do their success/failures (#82643) | ||
|
|
95b7fa1fb7 |
Add a unit test to check that maploaded simple/basic mobs are in an environment they can survive in. (#82180)
## About The Pull Request I've recently noticed that the maploaded penguins from the snowdin away mission were dying from unsafe atmos/temperature. This sparked the idea of making a (focus only) unit test that would prevent this sort of issues from happening. This PR also implements the usage of the `atmos_requirements` and `body_temp_sensitive` elements for simple animals too, cutting down the copypaste. ## Why It's Good For The Game More unit tests to make sure things are done correctly. ## Changelog 🆑 fix: Made sure that mapped critters (i.e. penguins on the snow cabin away mission) can survive in the environment they're spawned in. /🆑 |
||
|
|
0a0c1260b5 |
Cultist pets (#80595)
## About The Pull Request cultists can now convert pets on their side. when you convert a pet, it will become much more dangerous and obedient to you, it will also gain a new dangerous AI. cultist pets will look for fellow dead cultists, and revive them by dragging them to nearby revival runes and activating it. if there is no revival runes around them then they will create their own and drag u to it. u can give them commands to follow, attack, or to create revival runes. they will also go around to crit non cultists so cultists can convert them  they will also now feed on organs and blood for healing ## Why It's Good For The Game adds a extra layer to cult, u can now command non-sentient pets to aid you ## Changelog 🆑 add: cultists can now convert pets to their side /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
47840962cf |
Fixes Headsets Being Wonky On Non-Poly Parrots (#82046)
## About The Pull Request Fixes #81861 Basically we just typecasted too hard on the headset strippable item so it was impossible to get headsets from non-Poly parrots. pretty silly mistake because literally everything else is meant to typecast to just `/mob/living/basic/parrot`. one line fix and leroy jenkins ## Why It's Good For The Game parrots shouldn't "eat" headsets and make them entirely unretrievable once placed on their ears. ## Changelog 🆑 fix: If you place a headset on a non-Poly Parrot, you should be able to remove it from the parrot as-expected now rather than having the parrot send it to the shadow realm. /🆑 |
||
|
|
7e907771fb |
Deathmatch modifiers (#81673)
## About The Pull Request This PR adds the base to simple modifiers that the host can select to make the minigame ~~worse~~ more entertaining for everyone. Here's the screenshot of the UI (without a few modifiers I added later):  ## Why It's Good For The Game I've seen this minigame is frankly popular lately, so I thought I could contribute to it. ## Changelog 🆑 add: Added 20+ modifiers to the deathmatch minigame, which can be enabled by the host. /🆑 |
||
|
|
a8d1551466 |
Shuttle gibbing code improvements (#81726)
## About The Pull Request Adds a resistance flag, `SHUTTLE_CRUSH_PROOF`, adds it to the existing things that have it, and adds it to the immortality spectres. ## Why It's Good For The Game Gets rid of some hardcoded checks, making it easier for future code (or admins) to make things immune to shuttle crushing. Also makes it so immortality spectres are immune to being shuttle crushed, as that kinda ruins the whole "immortality" thing... ## Changelog 🆑 refactor: Improved shuttle gibbing code, adding a new resistance flag, `SHUTTLE_CRUSH_PROOF`. fix: Immortality revival spectres can no longer be crushed by shuttles. add: The ghost of Poly can no longer be shuttle-crushed, nor can anything incorporeal. /🆑 Co-authored-by: san7890 <the@san7890.com> |
||
|
|
fcc87b4801 |
virtual pets (#81342)
players can now download their very own virtual pet through a new PDA app. this pet is called orbie and u can interact with him in alot of unique ways happiness can be increased by regularly grooming ur pet, feeding him, or u can arrange with other players playdates for ur pets, they can play with each other and both their happiness will increase u can get food from ur pet through ur pda, it will assign u a random drop zone location in the station u need to go to, after which u can obtain ur pet's food then ur PDA will spawn a virtual chocolate bar that ur pet loves to eat. it wont assign u dropzone locations that are restricted or hard to reach, however if the area it assigns u is a bit difficult to get to, u can reroll the location after a small cooldown u can also level up ur pet to make it gain new helpful abilities and more cosmetic options. the main way to level up ur pet is by walking it, so u can have it follow u while u are doing ur job on the station and it will passively get exp. u get an increased exp modifier per step if ur pet is happy and not hungry. At level 2, ur pet will gain an ability to toggle lights and will also read outloud to u any PDA messages u recieve. at level 3, ur pet gains a camera ability. u can command it to take a photo afterwhich the picture will be saved directly in ur pda u also have alot of customization options for ur pet! u can change its color, name, gender, and u can make it wear hats! u can unlock more hats for ur pet if u level it up further. these customizations change ur pet's hologram appearance as well as its profile picture on the pet network. u can view how other player's virtual pets are progressing through the pet network. each time ur pet reaches a new milestone, an update will automatically be sent out on the network if ur pet's milestones gets likes from other players, it will become happier this app also allows u to program new tricks for ur pet. U can create a custom trick sequence, and change the trick's name. If u say the trick's name outloud to ur pet it will do the sequence u programmed. |
||
|
|
7e8328c0d2 |
Cardboard cutouts are now tactical. (#81245)
## About The Pull Request Basically, this means players holding cardboard cutouts will now assume their appearance, just like for potted plants. Good for pranking. I've had to tweak the tactical component and the waddling element a bit to get them to work as intended while dealing with the multiple sources of the waddling element. ## Why It's Good For The Game  ## Changelog 🆑 add: Players holding cardboard cutouts will now assume their appearance, just like for potted plants. /🆑 |
||
|
|
db5199e535 | Fixes space cats not being able to survive in space. (#81482) | ||
|
|
c8783db236 |
One line cat breeding fix. (#81121)
## About The Pull Request Alternative title: "Resolve Jerry Tramstation's impotence." While cats had all the other requirements for breeding, the ai subtree for it returns early as no `BB_BABIES_PARTNER_TYPES` had been set for the cat ai and thus it would never actually try to breed. This pr just adds a `BB_BABIES_PARTNER_TYPES` value to `code/modules/mob/living/basic/pets/cat/cat_ai.dm`, so they can actually have kittens again. ## Why It's Good For The Game Fixes cat breeding bug. And c'mooooon, look at theeeeem:  ## Changelog 🆑 fix: Jerry Tramstation can get laid again! (Fixed cat breeding.) /🆑 |
||
|
|
e7432aeeb0 |
Clear kitten begging target after begging. (#81124)
## About The Pull Request ### Alternative title: "Remove kitten omniscience." >If you were to ever have the hubris of entering a kitten's line of sight while holding a food they like, like a dead mouse, they would start pointing and meowing at you. It's their food, after all. You should give it to them. However, if you were to drop the item, they would continue pointing. If you were to leave the area, they would continue pointing. Even if you were to run, to hide, to break down and cry. They would continue pointing. Meowing Forever. And Ever. You can't run. You can't hide. You can't fool them. That ever sweet scent stays with you, lingering. It marks you. Wherever you are, whenever you are, the wretched beasts will know. Even in death your corpse will be theirs to torment. For you, oh marked one, this is now a fact of life. _And you better bring your masters their food._ Putting aside how funny the kitten-based triangulation device is, this feels like an oversight. `/.../beacon_for_food/finish_action(...)` even tries to clear the begging target from the blackboard, but `/.../beacon_for_food/perform(...)` never actually passes in the key. ## Why It's Good For The Game Kittens no longer beg at you forever wherever you are, even after dropping the food they were begging for.  Like forever, wherever.   ## Changelog 🆑 fix: Removed kitten omniscience. (They stop pointing at you now.) /🆑 |
||
|
|
2aadd44fc2 |
Re-adds some cat things that got lost in their refactor as basic pets. (#81108)
## About The Pull Request When cats were turned into basic mobs it seems a few things were lost in translation, being footsteps and cytology cell swabbing. All this pr does is basically re-add the lines that did such, though _slightly barely_ differently due to now being basic pets. ## Why It's Good For The Game Lets you get feliform cells again. Also cats not having footstep sounds feels eerie. ## Changelog 🆑 fix: Cats can be swabbed for feliform cells again. sound: Cats have had their mastery of silent walking revoked, and have their pitter-pattering footsteps back again. /🆑 |
||
|
|
fc0a1f4068 |
Removes timeout_mod arg from add_mood_effect (#80964)
## About The Pull Request Partial Revert of https://github.com/tgstation/tgstation/pull/80800 Assuming every num passed in the parameters of `add_mood_effect` is a `timeout_mod` is incorrect, because there can be mood events that take a numeric arg which is not meant to be multiplied against the timeout. This leads to the same issue as multiplying it with strings essentially (in one case, shown below, this results in a negative duration of a timer).   Plus having a keyword arg that may or may not actually be what the keyword arg claims to be is really confusing and bad. Instead here's what I propose: passing in an instantiated mood datum itself, which has been modified, and copying the timeout from it before discarding it. It is not as clean as I'd prefer either, but at least it's logically sound and the intent is clear, and it's the best I can think of short of a major refactor of the entire system for this one small thing which is only being used by food quality.  ## Why It's Good For The Game Clearer, less smelly code. ## Changelog 🆑 code: removed the timeout_mod arg from add_mood_event, which was only used for one thing and causes more issues than it's worth /🆑 |
||
|
|
27386bffe8 |
fixes a bunch of moodlets potentially lasting forever (less band-aidy) (#80800)
## About The Pull Request In a previous PR (https://github.com/tgstation/tgstation/pull/79661), I noted that a lot of moodlets tended to have their timeouts break because it was passing their names and whatnot as a parameter, that gets fed into the timeout modifier parameter, causing the timeout multiplier to break, because BYOND type-agnosticism means that it can multiply a number (timeout_mod) by text (a name or some other object), resulting in 0 - which makes a moodlet permanent. This is probably not intended. This fixes that in two ways: - Adding a `1` to potentially applicable moodlets (searched for with a regex of `.add_mood_event(.*, .*,)`) just to make sure the timeout doesn't get multiplied out weirdly. - Making the add_mood_event thing CRASH() if the timeout_mod is bad. If someone else wants to come up with a solution better than this, please do. ## Why It's Good For The Game Maybe having your arm permanently fall asleep after getting it reattached sucks, moodlet-wise. (Being stuck with permanent positive/negative moodlets is probably not intended.) ## Changelog 🆑 fix: Moodlets with parameters/effects e.g. limb reattachment moodlets should probably disappear more appropriately. /🆑 --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com> |
||
|
|
d5c547e459 |
Fixes COMSIG_LIVING_EARLY_UNARMED_ATTACK arguments (#80783)
## About The Pull Request Fixes #80566 Fixes the wrong arguments being passed to `COMSIG_LIVING_EARLY_UNARMED_ATTACK`. It now properly receives the proximity flag. Changes clicking with handcuffs to no longer always assume no proximity. Replaces some checks for hands blocked to some checks for `can_unarmed_attack` (which, currently, JUST checks for hands blocked, but this is good for future reasons, just in case) ## Changelog 🆑 Melbert fix: Strong arm implant users can shove more correctly. /🆑 |
||
|
|
4a989723e1 |
[NO GBP] Fixes even more AI related CI runtimes (#80262)
## About The Pull Request Consider this a continuation of https://github.com/tgstation/tgstation/pull/80202  ~~It seems I missed a few.~~ Edit: Modified per request to handle this more broadly. If a pawn gets `qdel`'d, the ai controller should be set to off and get removed from the list of active controllers, and all their actions should be canceled. Also adds some qdeleted checks to `finish_action()`, which can still run after the pawn gets qdeleted as part of the `CancelActions()` chain. ## Why It's Good For The Game Less spurious CI failures. ## Changelog Nothing player facing really. |
||
|
|
90b974071d |
Sign up for Cargorilla from the lobby (#79776)
## About The Pull Request If the station rolls the "Cargo Gorilla" trait, a button will now be visible on the lobby. Clicking on this button before the round has started will add you to a list of participants, one of whom will be selected to become a gorilla when the round begins. If nobody signs up (because they're really boring I guess) the job will instead appear on the latejoin menu. Once someone has become the gorilla the button will disappear.  While implementing this I noticed that an inverted check means we were never populating the "GLOB.cargo_sloth" field which means the station trait wasn't even working. BEHIND THE SCENES This also adds a generic "job station trait" which can be expanded in the future. Future developers can extend this to add other "rare jobs" with relative ease. By default I have made it so all subtypes of this trait are mutually exclusive, only one can roll at a time. This also means that I have converted "cargo gorilla" into a job, which applies most of the code previously located in the mob's typepath or in the station trait. The fact that it is a job means that **admins** can enable any number of gorillas to be present on the latejoin menu (but not the roundstart one, as it is not possible to add Cargo Gorilla to your occupation preferences) if they so desire. The random beurocratic station trait, event, and traitor item (and the job console) are not able to add gorilla slots. Because I changed "Cargo Gorilla" to a job it now no longer exists on the map until a player gains the role, and there wasn't a non-hacky way to copy the name of this round's cargo sloth. Instead I just added a small cargo gorilla name list. ## Why It's Good For The Game Makes the presence of a fun trait more visible to players. Means that people who aren't observing get a chance to be a monkey. This is a framework several other people have wanted to exist for their own features. ## Changelog 🆑 Jacquerel and Fikou qol: If the station rolls the "Cargo Gorilla" station trait. you will be able to sign up for the role from the game lobby. qol: If nobody signs up to be the Cargo Gorilla then you can select it from the Late Join menu and arrive on the arrival shuttle. fix: The Cargo Gorilla will actually spawn. /🆑 |
||
|
|
18047d74fe |
Fixes a bunch of AI related CI runtimes (#80202)
## About The Pull Request <details><summary>A bunch of the numerous CI issues </summary>   </details> You can view the full list of them here https://github.com/Skyrat-SS13/Skyrat-tg/actions/runs/7148986054/job/19470671408. What seems to be happening is, the `ai_controller` `fire()`s, and at some point the the `pawn` var has become null from qdeletion. Many of the `SelectBehaviors()` procs make use of that var, and then try to access it without any safeties whatsoever. I believe it is mainly happening because of long `do_after()`s and other procs that sleep. This PR just adds those safeties. I probably didn't get them all, but this should fix the ones I have seen in CI. There may be a better solution to cover all future cases of this but I will wait on feedback to proceed. See below comments: --- I don't know if you would rather this to always be checked at the controller level instead (or in `able_to_plan()` perhaps?) but I could do that if it's wanted. I wasn't sure if there were certain things that depended on `SelectBehaviors()` running for cleanup so I opted against that. On that note, shouldn't we just be qdeleting the `ai_controller` when the pawn gets qdeleted? Is that not already happening? And if not, is there a reason for it? That would probably be the best way to handle it... ## Why It's Good For The Game I would like to stop seeing so many random CI failures, wouldn't you? ## Changelog 🆑 fix: fixes some AI runtimes that were caused by the pawn becoming null /🆑 |
||
|
|
274eb2a52e |
Removes Clone Damage (#80109)
<!-- 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 Does what it says on the tin. We don't have any "special" sources of clone damage left in the game, most of them are rather trivial so I bunched them together into this PR. Notable things removed: - Clonexadone, because its entire thing was centered around clone damage - Decloner gun, it's also centered around cloning damage, I couldn't think of a replacement mechanic and nobody uses it anyways - Everything else already dealt clone damage as a side (rainbow knife deals a random damage type for example), so these sources were removed <!-- 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 Consider the four sources of normal damage that you can get: Brute, Burn, Toxins and Oxygen. These four horsemen of the apocalypse are very well put together and it's no surprise that they are in the game, as you can fit any way of damaging a mob into them. Getting beaten to death by a security officer? Brute damage. Running around on fire? Burn damage. Poisoned or irradiated? Toxin damage. Suffocating in space? Brute, burn and oxygen damage. Technically there's also stamina damage but that's its own ballpark and it also makes sense why we have a damage number for it. Picture this now: We have this cool mechanic called "clone pods" where you can magically revive dead people with absolute ease. We don't want it to be for free though, it comes at a cost. This cost is clone damage, and it serves to restrain people from abusing cloning. Fast forward time a bit and cloning is now removed from the game. What stays with us is a damage number that is intrinsically tied to the context of a removed feature. It was a good idea that we had it for that feature at the time, but now it just sits there. It's the odd one out from all the other damage types. You can easily explain why your blade dealt brute damage, but how are you going to fit clone damage into any context without also becoming extremely specific? My point is: **clone damage is conceptually a flawed mechanic because it is too specific**. That is the major issue why no one uses it, and why that makes it unworthy of being a damage stat. Don't take my word for it though, because a while ago we only had a handful of sources for this damage type in the game. And in most of the rounds where you saw this damage, it came from only one department. It's not worthwhile to keep it around as a damage number. People also didn't know what to do with this damage type, so we currently have two ways of healing clone damage: Cryotubes as a roundstart way of healing clone damage and Rezadone, which instantly sets your clone damage to 0 on the first tick. As a medical doctor, when was the last time you saw someone come in with clone damage and thought to yourself, "Oh, this person has clone damage, I cannot wait to heal them!" ? Now we have replacements for these clone damage sources. Slimes? Slime status effect that deals brute instead of clone. Cosmic heretics? Random organ damage, because their mechanics are already pretty fleshed out. Decloning virus? The virus operated as a "ticking timebomb" which used cloning damage as the timer, so it has been reworked to not use clone damage. What remains after all this is now a basically unused damage type. Every specific situation that used clone damage is now relying on another damage type. Now it's time to put clone damage to rest once and for all. Sure, you can technically add some form of cellular degradation in the future, but it shouldn't be a damage number. The idea of your cells being degraded is a cool concept, don't get me wrong, but make it a status effect or maybe even a wound for that matter. <!-- 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. --> 🆑 del: Removed clone damage. del: Removed the decloner gun. del: Removed clonexadone. /🆑 <!-- 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. --> |
||
|
|
14d1482fc7 |
Falling down a z-level while standing up can (occasionally) break your legs. Felinids will now always land on their feet (for better or for worse). (#80054)
## About The Pull Request
- Falling down a z-level while standing up will apply the damage
directly to your legs.
- This damage has the chance of rolling wounds, so falling z-levels ->
broken legs.
- If you are lying down when you fall, the damage is spread through your
body like normal.
- Felinids who fall down a z-level while standing will always land on
their feet.
- Instead of being floored for 5 seconds / levels fallen, you will
receive a slowdown for 2 seconds / levels fallen.
- However, while they have cat reflexes, they do not have cat legs.
Landing on your feet will deal additional damage.
- For falling 1 z-level, this is ~18 damage (instead of ~12).
- For 2 z-levels, this is ~50 damage (instead of ~32).
- Cats (basic mobs) are capable of falling down z-levels without
sustaining damage.

## Why It's Good For The Game
Add some more depth to falling down. (No pun intended)
Rather than dropping down a level and walking it off after getting up,
you might dislocate your leg.
Also adds some more species interactions. Felines might be able to give
people the slip easier when dropping down into the undertram, thanks to
their cat-ness.
## Changelog
🆑 Melbert
add: Falling down a z-level while standing now damages your legs rather
than your entire body. This also means falling down multiple z-s may
rarely break your legs.
add: Felinids now land on their feet if they fall down a z-level while
standing. This replaces the knockdown with a short slowdown, and also
has the trade-off of causing more leg damage.
add: Cats can now fall z-levels without sustaining damage.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
|
||
|
|
9a9d82af7a |
[NO GBP] Fixes damage ranging on feral cats (#80076)
## About The Pull Request I fucked up and made the cats always do 15 damage, should be doing between 7 and 15 per hit. ## Why It's Good For The Game Bug feex ## Changelog 🆑 Vekter fix: Fixed damage ranging on feral cats /🆑 |
||
|
|
d4cdce46fc |
fix parrots sometimes not appearing dead (#80055)
## About The Pull Request sometimes parrots will not appear dead ## Why It's Good For The Game parrots will now appear dead ## Changelog 🆑 fix: fix parrots not appearing dead sometimes /🆑 |
||
|
|
c9d2c940d8 |
Ports feral cats and feral cat grenades from Hippie (#80031)
## About The Pull Request Feral Cats are just a hostile variant of cats that will fuck you up if they see you. They are added solely for the sake of feral cat grenades - a new, interesting, and fuzzy way to get out of a jam or just wreak havoc around you. Each one costs 5 TC and spawns 5 really pissed off cats to chase down assistants in the hallway. They don't currently ignore traitors or the person who threw them - I haven't worked out how to do that with our faction system (Hippie gave them the syndicate faction but traitors don't get that on our codebase). If anyone wants to contribute or help me suss that out it'll be cool, otherwise just don't be around if there's nobody else for them to maul. ## Why It's Good For The Game They're funny. ## Changelog 🆑 Vekter add: Added a new hostile variant of cats, "feral cats". add: Added a new traitor item, "feral cat grenades". For 5 TC, you too can throw a grenade at someone and make five cats maul them to death. /🆑 |
||
|
|
ce6f2724cd |
basic cats and mini kitchen helpers (#79800)
## About The Pull Request this pr transforms cats into basic pets! cats now have some new behavior. they can carry fish and hunted mice in their mouths to deliver it to kittens, and kittens will eat them.   if a kitten sees you holding food, it will point at you and meow loudly until u give it the food. becareful when putting male cats near each other, there is a small chance they get into a heated argument and meow loudly at each other until one of them flees. also added a new small cat house for cats. cats will use these homes if u build one near them (using 5 wood planks)  Chefs can craft the cake cat and breadcat. these are useful cats because they can help the chef around in the kitchen. they will turn stoves and grills off when food is ready, so they dont burn. and the cake cat will help the chef decorate his donuts ## Why It's Good For The Game refactors cats into basic mobs and gives them a deeper ai ## Changelog 🆑 refactor: cats are now basic pets. please report any bugs. add: the cake cat and bread cat can now help the chef around in the kitchen /🆑 |
||
|
|
aaa3cb9a04 |
Fixes needless DM_VERSION check in Poly code (#79951)
## About The Pull Request
This is useless now that #79134
(
|
||
|
|
445475dcb1 |
Poly speech/memory fix. (#79851)
## About The Pull Request Simple fix for Poly's AI, Read Memory was returning null into a list used for Poly's speech causing a stack error. I changed the returned value to the empty returnable list to negate this problem. Fixes #79844 Fixes #79859 Fixes #79865 First time making a pull request on Github, please bear with me if i make any mistakes. ## Why It's Good For The Game Less errors on the servers side. Probably saving the headache of debugging from some other poor soul. --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
b251b9dbb0 | Refactors Parrots into Basic Mobs (ft. Ben10Omintrix/Kobsamobsa) (#79762) | ||
|
|
7a44f10993 |
basic gutlunchers and ashwalker ranching (#79508)
## About The Pull Request this pr transforms gutlunchers into basic mobs and gives them a small ranch that ashwalkers can manage. gutlunches come in various colors and sizes! female gutlunches will come in different shades of red and males will come in shades of blue. the child born will have a mix of his parent's colors.  female gutlunches can make various healing milk and medicine from its udder. but it will need to consume ores before it can start making milk, u can either feed it by hand or u can put ores in the wooden trough and they will go eat from it whenever they get hungry. feeding it gold or bluespace ore will improve the healing quality of the milk for a short while  the male gutlunchers are obedient pets. their stats vary from one another in speed, attack and health. a male gutlunchers stats will depend on the stats of his parents, the higher his parent's stats are the better chances he has at rolling higher stats. so u can selectively breed them to make sure they have the best stats possible. they will listen to all ur commands and can mine walls or attack enemies if given the command. also i wanted the farm to have wood fences so i added them to the game, they cost 5 wood planks to make ## Why It's Good For The Game refactors gutlunches into basic mobs. also i turned breeding into a component so it can be applied to all animals and created a breed command, pets that have this command and the component will go breed with a partner u point at. ## Changelog 🆑 refactor: gutlunches have been refactored into basic mobs. please report any bugs add: ashwalkers have a small ranch they can manage fix: wall tearer compnent wont runtime when interacting with mineral walls /🆑 |
||
|
|
9696dd1a1d |
Targeting Datums Renamed (and global) (#79513)
## About The Pull Request [Implements the backend required to make targeting datums global]( |
||
|
|
41699c260e |
Goats will randomly attack you (#78930)
## About The Pull Request We accidentally lost this behaviour when we converted goats to basic mobs. _Formerly_ (and now again) goats had a 0.5% chance per second to simply decide to attack you for no reason at all. While attacking you they also have a 10% chance per second to get bored of doing that and stop. Additionally, we were outputting a fluff message every time you attacked a goat which would spam chat if you were trying to fist fight each other. I added a 20 second cooldown onto it. As is often the case, implementing this led me down a bit of a rabbit hole. We were previously bypassing faction checks via a mixture of flags on AI behaviours and blackboard keys. I have moved this _entirely_ to the blackboard now, rather than making targetting subtypes just to skip faction checks. This entails having one blackboard key which is "by default do we care about factions?" and another which is "are we currently ignoring factions for some other reason?" Retaliatory AI will generally enable the second flag, so you can get pissed off at someone you would usually not mind hanging out with if they start something with you. Certain mobs which want to hunt other mobs but not be hunted in return just ignore factions entirely all the time and use the former. The upshot of this is that the default behaviour for expected default retaliatory AI shouldn't require you to set any specific kind of targetting datum and will Just Work. In a similar vein because I was touching largely the same mobs I made the "flee when injured" component apply its "don't flee because not injured" flag instantly upon application rather than needing to manually set it in the blackboard definition, so that also Just Works. ## Changelog 🆑 fix: Pete's anger management training has worn off, and he will once again sometimes pick a fight with you for absolutely no reason. qol: Attacking a goat will not spam messages so frequently. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
ed907096e3 |
Fixes fleeing behaviour (#78821)
## About The Pull Request This PR does three things: - Fixes fleeing, I broke it in a recent PR so mobs would walk to a location then sort of stand there doing nothing. This is due to using `>=` instead of `>`. - Makes lobstrosities stop running and charge at you more responsively (when they detect they can charge). - Inverts the `BB_BASIC_MOB_FLEEING` blackboard key to `BB_BASIC_MOB_STOP_FLEEING` so that the default behaviour is "to perform the behaviour that you put on the mob" instead of to not do that. ## Why It's Good For The Game Makes commonly used behaviour work properly. Removes footgun we hand to ai developers. ## Changelog 🆑 fix: Cowardly mobs will consistently run away from you instead of getting tired and just sort of standing there after an initial burst of movement. /🆑 |
||
|
|
82904b766c |
Refactors Sloths into Basic Mobs (#78752)
## About The Pull Request Hey there, This just refactors sloths to the basic mob framework. Nothing new should be added beyond them seeming a bit more sluggish and being a bit smarter about the fights they pick/running away. ## Why It's Good For The Game Three more subtypes off the list, we are now sub-200 simple animals left to refactor. If people want to play catch with their sloth it should be much easier to fit that in now. ## Changelog 🆑 refactor: Sloths are now basic mobs, however their overall sluggish behavior shouldn't have changed much- let us know if anything is broken. /🆑 |
||
|
|
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. /🆑 |
||
|
|
20343ade95 |
Improve narsian's sacrifice behaviour (#78427)
## About The Pull Request Replaces narsian's life proc, where it performed two type checks and then ran duplicated blocks of code, with the connect_range component. This doesn't fix any bugs as far as I am aware I just saw the old behaviour once and didn't like looking at it. ## Changelog Not player facing |