-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
thousand yard stare #580
Merged
Merged
thousand yard stare #580
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## About The Pull Request Fixes: #76815 The shells the basic syndicate mobs were dropping were not actually unspent, but they were not updating their description. They do that now. ## Why It's Good For The Game small bugfix ## Changelog :cl: Seven fix: Syndicate ranged mobs (and probably other basic mobs) properly update their shell's description to show they are spent. /:cl:
Transforms the minebots into basic robots. You can now command these minebots to extract minerals for you. To activate automated mining mode, simply instruct them with the command "mine." They will then proceed to autonomously mine walls and gather ores. If you wish to make the bot deposit all the collected ores, use the command "drop." Alternatively, you can leave it in collection mode, and it will gather all the ores you mine. Additionally, the bot now responds to several more commands; you can instruct it to follow you, toggle its lights on or off by saying "lights." In attack mode, it refrains from mining or collecting ores but will engage in combat alongside you. If it detects you as deceased or unconscious, it will alert all miners, request assistance, and relay your coordinates via the mining communication channel. to power it on u will need to feed it any type of ore first so it may listen to ur commands makes the non sapiant minebots more useful :cl: refactor: the minebots have been refactored please report any bugs add: minebots can now mine walls and collect ores automatically and they will alert everyone if they find u dead /:cl:
## About The Pull Request if the victim is outside the shooting distance the mob will go through an endless cycle of finding the target and deleting the target instead of chasing them ## Why It's Good For The Game fix basic ranged mobs not chasing the targets ## Changelog :cl: fix: basic ranged mobs will now chase victims /:cl:
## About The Pull Request Title. ## Why It's Good For The Game Fixes #78089 Simple mobs drop their meats when gibbed but basic mobs don't which is weird and inconsistent. ## Changelog :cl: fix: fixed basic mobs not dropping their butcher results when gibbed /:cl:
## About The Pull Request the burst attacks wasnt working because a cooldown in the ranged component qwas added recently. this now moves the burst attacks option to the component itself so even sapiant player mobs can use these burst ranged attacks ## Why It's Good For The Game fix basic mobs ranged burst attacks ## Changelog :cl: fix: basic mobs can now use ranged burst attacks /:cl:
this is a mob that was removed from the game since years ago. this pr refactors them and readds them to the game. seedlings now can have different colored petals! ![petalcolors](https://github.com/tgstation/tgstation/assets/138636438/7c657c49-9186-4563-a93f-eba35e335ce9) to obtain this monster, botany can now grow them out of 'seedling' seeds that they can find in the exotic seeds crate. this mob loves to help all plants and when its grown out of the seed, it will help the botanists look after their plants. it can water plants (if it finds a bucket), remove weeds and remove dead plants. they will also use their solarbeam ability to provide small healing to damaged plants. it will try to refill its bucket with water if there is a water source near by. it will also follow the orders of whoever harvested it. ![plantbotany](https://github.com/tgstation/tgstation/assets/138636438/4cde0613-0869-4fea-8851-2e6f4680d9d7) traitors can buy a seed from the uplink that grows an evil version of the seedlings, they can command them to attack people and use abilities and to cause chaos on the station. refacotrs the seedlings into basic mobs :cl: refactor: seedlings have been refactored into basic mobs please report any bugs add: seedlings now can have different colored petals and can look after botanys plants add: seedlings are re-added to the game! they grow out of seedling seeds obtainable from exotic seed crates or traitor uplink /:cl:
basic mobs retaliate targeting would try to target players that they cant attack anymore, fixes basic mobs retaliate targeting would try to target players that they cant attack anymore, :cl: fix: basic mobs retaliate targetting now selects targets they can attack /:cl:
Fixes #71330 The brimdemon was basically already perfect (well, it has a novel means of attacking) so I didn't get too fancy with this one, it's _largely_ just a straightforward conversion. Following this change it's a little slower to back off, but better at lining up with people in order to blast them. Additionally, its beam is now a mob ability so you can give it to other mobs if you so desire. Because I can't help doing a _little_ tinkering, Brimdemons now explode 2.5 seconds after they die, after a brief warning animation. Simple mobs must die :cl: add: Brimdemon corpses release an explosion shortly after death, just to keep you on your toes. refactor: Brimdemons now use the basic mob framework which (should) improve their pathfinding somewhat. Please bug report any unusual behaviour. admin: The brimdemon's beam ability can be given to any mob, for your Binding of Isaac event /:cl:
this is a mostly 1 to 1 port of simpleanimal clowns to basicmob clowns this means they have 1 more brain cell and they waddle https://github.com/tgstation/tgstation/assets/70376633/0c5f01c7-fea2-4d8c-9fc1-764c1557e1b8 ![image](https://github.com/tgstation/tgstation/assets/70376633/f92c85ea-33f2-4cf3-858f-103c0958ff97) :cl: refactor: clowns are basicmobs now /:cl: --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request basic mobs can check for friends in the way before firing a attack. if they find someone in the way they will try to adjust their position so their friends dont get hit by the projectiles ## Why It's Good For The Game nice optional feature people can put on the monsters they create ## Changelog :cl: add: added ranged attack friendly fire checks for basic mobs. minebots and hivebots will now try to avoid shooting their friends /:cl:
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. :cl: 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. /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com>
ice demons are now basic mobs. they still have their behavior where they can teleport around the player, run away from him and shoot him. they now also have a new ability they will only use when they are on their last legs, they will spawn weak and slow afterimage clones of theirselves to attack the player. damaging these clones will also damage the original ice demons. ice demons can also now be very easily countered as they are very afraid of fires. they will run away from you if they see u holding a lit torch/flare/welding tool and while running away they will freeze the floors around them to try to slip u to stop u from chasing them. ice demons now also get a new unique trophy! this trophy will summon 2 friendly spirits that will help you kill ur target, but these spirits will dissappear after a very short while. https://github.com/tgstation/tgstation/assets/138636438/6a48fb15-f447-441a-91c6-48ca120dc22c 🆑 refactor: ice demons have been refactored into basic mbos. please report any bugs add: ice demons now have a unique trophy /🆑
https://user-images.githubusercontent.com/66640614/233747544-aac153b9-a100-486c-9a7a-4a436b8303b8.mov Cows, pigs, and sheep make noise when their AI makes them speak. ~~Also House Flipper Farm DLC came out but that's incidental.~~ It's funny, also more sound effects are fun. Gives basic mob creators more customizability. :cl: Tattle qol: basicmobs can now make sounds when their speech is triggered qol: pigs will now make sounds and emote on their own sound: cows, pigs, and sheep have new sound effects! /:cl: --------- Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
… letting `content_barfer` mobs spit things out (#78093) Title; also makes bileworm devour message have a warning span. ~~it's a bit cheeky but i didn't want to add a deletion signal to the content_barfer's signal list, and the wabbajack signal here kinda makes sense?~~ Fixes #76791 🆑 fix: fixed bileworm evolution deleting anything they devoured; they will now eject their contents upon evolution to vileworms /🆑
I like for things that mobs do to be consistent regardless of whether they are controlled by a player or by the AI. One big offender of this is the melee behaviour cooldown. Basic mobs piloted by AI have arbitrary melee attack cooldowns which are not reflected when they are controlled by players who can generally attack much faster (but in _two_ instances, slower). To remedy this I added `melee_attack_cooldown` as a var on `living/basic` (sinful) and the ai now uses NextMove to not click too often, meaning that players can only bite things as often as the AI can and also that if you VV the cooldown it can speed the AI up (or slow it down) as well as a player. This also gets rid of a lot of subtypes of that datum, as we mostly made them to change the cooldown. I also hunted down a few places where there was behaviour placed inside an AI behaviour which wasn't easily replicable by a player piloting the same mob, preferably a player should be able to do everything that the AI can. Fixing this was largely a simple case of moving code from `ai_behaviour/melee_attack/perform` to `basic/mob_subtype/melee_attack` and also adding an element for one thing shared by three different mobs. Strictly speaking I didn't need the element that much because a player is perfectly capable of clicking on something they attack to drag it, but it's nice for it to be automatic? If you see a mob do something then you should also be able to do it. Mobs shouldn't have significantly different capabilities when controlled by a player (aside from usually being smarter). :cl: balance: Player-controlled basic mobs attack as fast as those mobs can when controlled by the AI balance: Player-controlled Faithless can paralyse people they attack, like the AI does balance: Player-controlled Star Gazers (if an admin felt like making one) apply the star mark on attack and deal damage to everything around them, like the AI does /:cl:
The code for factory blobs and blob structures is kinda messy and ridden with some unreacheable code and unused variables. My plan here is stop factory blobs from hard-deleting because of uncleared references, but I took a little liberty to cut some old code that looks more of a hindrance than anything. This should fix #74845. No tangible change for the player.
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. :cl: 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. /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com>
fixes the regal rat not running away from whoever attacked him. also adds a new pet command behavior which makes the king's minions drop whatever they are doing and defend their king from whoever has attacked him. the rats now behave right :cl: fix: regal rats now run away from whoever attacked them add: new pet behavior which makes pets defend their owners if they got attacked /:cl:
## About The Pull Request when i said "report any unexpected behaviour" i didnt mean in the manuel discord round end channel, i dont read that shit excepting that I did this time anyway some asshole (me) added a new var to basic mobs that you need to keep track of when converting them and I forgot these guys are essentially exclusively player-controlled so previously just had the normal click CD I gave them that again ## Changelog :cl: fix: Blob Zombies and Blobbernauts have had their attack speed restored to its original value /:cl:
Short n' simple, just refactors these nasty buggers to be basic mobs. Dirt-cheap AI for an admin-only spawn. Smarter AI, less wack code, better implementation of certain aspects, etc. Also fixed a bug where these guys could be causing runtimes since they would qdel mobs with a client by just adding a quick ghostize (the mob will have had `death()` called on it already by that point so nothing should realistically change anyways) :cl: refactor: Supermatter Spiders have been refactored into basic mobs, on the extremely off chance you spot one and also notice any weird bugs regarding it, please report it. /:cl:
Might as well start on these now, should be easy enough. The Raw Prophet actually comes with a couple of new components. The `wheel` element is sort of like the `waddling` element in that you give it to any movable atom to have it move like a raw prophet. ![dreamseeker_3qacWEKYQQ](https://github.com/tgstation/tgstation/assets/7483112/d5e1b0b9-79f7-4272-9c88-a21fee049e5f) Whee! The focused attacker component can be attached to any mob or item and causes it to escalate its damage every time you attack the same target. I'll be honest I consistently forget that the Raw Prophet does this. The ones in the Ruin have the blinding gaze attack inherited from Watchers instead of the point-target Blind spell in order to ensure that you can actually "dodge" it. I tried to make it jaunt if it got stuck but ran into too many problems. Another time. I do this to relax now. :cl: refactor: Raw Prophets now use the basic mob framework. Please report any unusual behaviour. /:cl:
Fixes #68614 Converts the Flesh Worm (Armsy) into a Basic Mob. Most of its behaviour has been moved into a component which we can use to make arbitrary mobs into linked lists of mobs. To accomplish this I added a signal which is sent when you call any `adjustXLoss` proc, let me know if my implementation is "calling the same signal from several places" by a backdoor, I wanted to avoid registering to 6 signals but I'll change it if I must. While I was here I killed the unused "lesser" variant because we stopped using it. Resultingly, Ascended Armsy doesn't need to distinguish itself by inflating the sprite, so it doesn't. This means that now flesh worms are using their sprites as intended to be displayed, but if people really miss all of its segments being poorly scaled by the byond engine then I guess I can restore it. ![dreamseeker_p8vOpZGXII](https://github.com/tgstation/tgstation/assets/7483112/3389d3a9-16cd-4e1e-938e-dfa18d0da0af) :cl: refactor: Flesh Worms are now basic mobs. Please report any unexpected behaviour. sprite: Flesh Worms are a little bit slimmer. /:cl:
…irectly teleporting them back, increases default range to max range (#77030) Tries to keep pAIs in range of their owner by moving them closer when the owner moves, rather than jarringly teleporting every time the owner gets out of range. Does this by calculating the closest path a nearby tile and forcefully moving you there. Still a bit janky at times but is better than teleporting directly onto the owner 100% of the time I feel. Also prevents you from moving out of range, rather than forcefully teleporting you back. Increases the default pAI range to the maximum (9 tiles) New leashing makes being a leashed pAI significantly less jarring and obvious. Ideally we would also have a visible max range too. Default pAI range was pretty small in my testing and I think it's not unreasonable to think a lot of people won't bother changing it. That they are leashed at all is the important part. :cl: qol: pAIs now try to stay within range of their owner, and teleport back only when necessary qol: Default max pAI range has been changed to the maximum range you can choose (9 tiles) /:cl: --------- Co-authored-by: Jacquerel <hnevard@gmail.com>
…(#78124) Heavily refactors wounds AGAIN. The primary thing this PR does is completely change how wounds are generated and added - while the normal "hit a guy til they bleed" stuff works about the same, asking for a specific type of wound, say, like how vending machines try to apply a compound fracture sometimes, isnt going to work if we ever get any non-organic wounds, which the previous refactor allowed. With this PR, however... * You can now ask for a specific type of wound via get_corresponding_wound_type(), which takes wound types, a limb, wound series, etc. and will try to give you a wound fitting those specifications - but also, a wound that can be applied to a limb. * This will allow for a vending machine to apply a compound fracture to a human, but a collapsed superstructure (assuming my synth wounds go in) to a robot There are now new "series types" and "wound specific types" that allow us to designate what series are "mainline" and randomly generatable, and what are "alternate types" and must be generated manually - you can see the documentation in wounds.dm. The behavior of limping and interaction delays has been abstracted to datum/wound from bone wounds to allow just, general ease of development Pregen data now allows for series-specific wound penalties. Example: You could set a burn wound's series wound penalty to 40, which would make wound progression in the burn category easier - but it would not make it any easier to get a slashing wound. As it stands wound penalties are for wounds globally Scar files are now picked in a "priority" list, where the wound checks to see if the limb has a biostate before moving down in said list. Example: Wounds will check for flesh first, if it finds it - it will use the flesh scar list. Failing that, they then check bone - if it uses that, it will use the bone scar list. This allows for significantly more modular scars that dont even need much proc editing when a new wound type is added Misc changes: most initial() usage has been replaced by singleton datums, wound_type is now wound_types and thus wounds can accept multiple wound types, wounds can now accept multiple tool behaviors for treatment, wounds now have a picking weight so we can make certain wounds rarer flatly, This PR also allows for wounds to override lower severity wounds on generation, allowing eswords to jump to avulsions - but in spirit of refactoring, this has been disabled by default (see pregen data's competition_mode var). Code quality is good! Also, all the changes above allow wounds to be a MUCH more modular system, which is one of its biggest problems right now - everything is kinda hardcoded and static, making creative work within wounds harder to do. :cl: refactor: Refactored wounds yet again fix: Wounds are now picked from the most severe down again, meaning eswords can jump to avulsions fix: Scar descs are now properly applied /:cl:
…ly refactors wounds (#77813) **_THIS PR UPDATES THE SCAR VERSION - ALL EXISTING SCARS WILL BE WIPED_** Expands the wound system functionality to support any type of limb at all. To do this, wounds have been significantly refactored. For starters, wounds now use limb biotype instead of wound type for determining what they can be applied to. They also use singleton instances for most "can we apply this" checks instead if copy pasted initial(). Wounds now use a "wound series" instead of wound_type for determining the, well, series. Previously, all WOUND_BLUNT wounds were considered bone wounds, making it impossible to have multiple WOUND_BLUNT wounds at once. Now, its based on wound series - bone wounds are of the blunt bone wound series, and use the typical logic. One change that results from this is the ability for everything with a jointed limb to get a dislocation. Yes, this includes things like prosthetics. On the note of external and internal biotypes: Exterior are bones, Interior is flesh. Interior protects exterior from slash until its mangled, at which point it either exposes exterior to slash or allows dismemberment if theres no exterior. Basically - it acts the exact same way, except its not hardcoded, and its more modular. A lot, lot more changes were made - I cant name them all, but if youre interested, you can read up. Wounds have more procs, more modularization, and less hardcoding. Sadly, scars have been updated in such a way so that the wound version must be updated. Scars will be deleted. As it stands, half the limbs in the game can't be dismembered. This changes that, allowing every single limb to be dismembered. The two dismemberment critera are now: 1. If able to get mangled flesh or bone, it can be dismembered once it gets mangled flesh and bone (or JUST flesh if it only has a internal biostate, vice vers afor bone if external only) 2. If it cant be dismembered by the above, it will have a chance to dismember when at or above 80% of its total max damage Finally, code being better is usually a good thing. :cl: balance: Prosthetics and slimepeople can now have limbs dismembered balance: Slimepeople can now receive slash wounds, but cannot bleed balance: Most limbs can now be dislocated refactor: Scar backend reworked, scars will be wiped as they update to the new format /:cl:
Now we can make basic mobs with hands easily so I did, they don't actually use their hands for anything with AI. In the future we can come back and share the monkey AI where they pick up items to hit people with, but frankly few weapons are more deadly than a gorilla's fists. IIRC I didn't really change their behaviour much, this is mostly just a straight conversion. Main difference is that they will prioritise eating nearby bananas and fruit salads over punching people. When I make these conversions nowadays I need to decide between "does this attack at the speed that it did as an NPC mob or the speed it did as a player?" I am arbitrarily deciding that gorillas are usually not players and electing for the former, but tell me if you disagree. I also made "show basic inhand sprites" into a component shared by Gorillas, Drones, and Dextrous Guardians (all also now available to become basic, once I get around to it), And I added an AI behaviour to run a basic emote. This is similar but different to "random speech", which kind of sucks and needs rewriting anyway. Gorillas don't speak, only ooga. https://www.youtube.com/watch?v=npuuTBlEb1U 🆑 refactor: Gorillas now use the basic mob framework. Please report any unusual side effects. /🆑
Tend Wounds seems to be intentionally written such that you would be able to perform it on arbitrary mobs, however this had two problems. - Most mobs can't rest and it requires a resting position, meaning the surgery can only be initiated on cats and mothroaches. - The code which picks up surgery steps existed on Carbon not Living, so after the game tells you that you've started doing surgery on Runtime, clicking on her with a scalpel will cause you to stab her to death. I noticed this after a tragic kitten incident. I have fixed both of these issues by moving surgery catching onto Living instead of Carbon, and having the resting check only run if you are capable of resting. You still can't operate on Beepsky because he is made of metal. It can actually quite hard to heal pets who were harmed by accident, this allows people to roleplay as veterinarians. :cl: fix: You can now correctly Tend Wounds on most non-human animals. add: You can now Remove Implants from non-human animals, just in case Ian swallowed a macrobomb. /:cl:
This was referenced Nov 19, 2023
[Implements the backend required to make targeting datums global](tgstation/tgstation@6901ead) It's inconsistent with the rest of basic ai for these to have a high degree of state, plus like, such a waste yaknow? [Implements GET_TARGETING_STRATEGY](tgstation/tgstation@d79c291) Regexes used: new.*(/datum/targetting_datum[^,(]*)\(*\)* -> GET_TARGETING_STRATEGY($1) Renamed all instances of targetting to targeting (also targetting datum -> targeting strategy) I've used GET_TARGETING_STRATEGY at the source where the keys are actually used, rather then in the listing. This works out just fine. Not a misspelled name through the whole codebase, very slightly less memory load for basically no downside (slight cpu cost maybe but not a significant one. --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
…r (#79736) ## About The Pull Request Ports icemoon wolves over to the basic mob framework with a bit of extra stuff: - Wolves call for help when attacked within a decently large radius. Because you know, pack animals. - Wolves can now be tamed with a slab of meat - When tamed, wolves can be ridden like goliath mounts. Ride wolf, life good. Pretend you're playing ARK and start shivering to death in thatch huts for that High Roleplay experience. - Tamed wolves have access to a bunch of pet commands (following, point fetching, point attacking, play dead, etc) and will also defend their owners vehemently if they're attacked. You can probably tame multiple if you wanted to. ## Why It's Good For The Game What part about riding wolves isn't entertaining? I don't really play /tg/ that much so I can't argue too much about the balance implications this might pose, but it's undoubtedly a stupid little gimmick and is likely to be used by bored assistants and miners with too much time on their hands. Especially robust individuals will probably find a million things to do with a basic mob capable of fetching, attacking on command and generally being able to defend themselves decently well. ## Changelog :cl: yooriss refactor: Icemoon wolves now use the basic mob framework and should act more intelligently, defending their pack. add: Icemoon wolves can be tamed with slabs of meat and can be ridden as mounts once friendly. Being rather large dogs, they also have access to most of the pet commands you'd expect, such as fetching things, and violently mauling people their owners point at. /:cl: --------- Co-authored-by: san7890 <the@san7890.com>
Splits the large ass persistence file into a bunch of smaller subfiles. Better organization. N/A
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About The Pull Request
Why It's Good For The Game
Changelog
🆑
/:cl: