forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 15
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
Upd #72
Merged
Merged
Upd #72
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
…gstation#80941) ## About The Pull Request Situation: areas have a list of all turfs in their area. Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs that has to be traversed for every turf we need to remove from it. This can take multiple byond ticks just to preform this action for a single space rune Solution: split the list by zlevel, and only search the right zlevel list when removing turfs from areas. replaces `area.get_contained_turfs()` with a few new procs: * `get_highest_zlevel()` - returns the highest zlevel the area contains turfs in. useful for use with `get_turfs_by_zlevel` * `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in a given zlevel. Useful for code that only cares about a specific zlevel or changes behavior based on zlevel like lighting init. * `get_turfs_from_all_zlevels()` - the replacement for `get_contained_turfs()`, renamed as such so anybody copying/cargo culting code gets a hint that a zlevel specific version might exist. Still used in for loops that type checked so byond would do that all at once * `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists but only for non-empty zlevels. very useful for for loops. The area contents unit test has been rewritten to ensure any improper data triggers failures or runtimes by not having it use the helpers above (some of which ensure a list is always returned) and access the lists directly.
## About The Pull Request time2text was receiving seconds but is supposed to receive deciseconds ## Changelog :cl: fix: Hub time should be correct again /:cl:
## About The Pull Request fixes a runtime when trying to unregister the move signal from the ghost ## Why It's Good For The Game fix a runtime when loading ghosts to a mulebot ## Changelog :cl: fix: fix a runtime when loading ghosts to a mulebot /:cl:
## About The Pull Request Changes the monkey's ai_movement from dumb movement to basic_avoidance, allowing them to walk around tables and corners that they always otherwise got stuck in. https://github.com/tgstation/tgstation/assets/26240645/e1b46790-b950-4030-a9ae-4cf10913166c Original monkey behavior https://github.com/tgstation/tgstation/assets/26240645/e08a4094-8c81-41f6-8960-61338d38fff9 New monkey behavior ## Why It's Good For The Game Monkeys can properly fight you without nearly constantly getting stuck behind anything with collision. ## Changelog :cl: fix: Monkeys don't get stuck on obstacles as often. /:cl:
## About The Pull Request Nukies were using ``get_machines_by_type`` in ``assign_nuke`` to get the nuke and set its code, which doesn't work for clown ops because they use a subtype. This fixes it by replacing it with ``get_machines_by_type_and_subtypes`` instead. while I was messing with clown op code I also made it a little bit less copy paste ![image](https://github.com/tgstation/tgstation/assets/53777086/2db9e859-8d53-4704-a110-7f8a5f33ee0f) ## Why It's Good For The Game Clown ops now get a code to their nuke rather than it staying as 'ADMIN', pretty cool! Closes tgstation#78306 ## Changelog :cl: Momo8289, Pepsilawn, Sinsinins, JohnFulpWillard fix: Clown ops now get a code set for their nuke. /:cl:
## About The Pull Request fixes megafauna AI getting stuck attacking legion corpses ## Why It's Good For The Game fixes tgstation#79757 ## Changelog :cl: fix: fixes megafauna AI getting stuck attacking some corpses /:cl:
## About The Pull Request Looks like a refactor forgot to retain the living_say verb for whispering in italics when they moved it to the radio file ![image](https://github.com/tgstation/tgstation/assets/22140677/bd490568-ce30-42f3-bb9f-17ae345c6cb0) This just fixes that so whispering once again formats ![image](https://github.com/tgstation/tgstation/assets/22140677/a5dde3f2-5a18-4f8d-837d-e158a597eddb) ## Why It's Good For The Game ## Changelog :cl: fix: fixes whispering formatting /:cl:
## About The Pull Request Fixes tgstation#81009. Trash bags did not have a `worn_icon_state` set, which means that it tried to use an invalid state when worn while not empty. This is now fixed. ## Why It's Good For The Game Missing sprites bad. ## Changelog :cl: fix: Filled trash bags show up properly when worn. /:cl:
…getting their amulettes (tgstation#80981) ## About The Pull Request Lunatics now have an objective and it properly displays. Lunatics now get a moonlight amulette on the ground if their hand are full. ## Why It's Good For The Game Lunatics had no idea who their master was except for their flavor text. This made it kinda confusing. This was worsened when they didnt have the identifying amulette. ## Changelog :cl: fix: Lunatics spawned from moon ascension now actually have an objective to assist their ringleader fix: Lunatics now get a moonlight amulette on the ground if they have full hands /:cl: --------- Co-authored-by: Ghom <[email protected]>
## About The Pull Request Fix items layering above heretic runes by making it use pixel_z rather than pixel_y. ![image](https://github.com/tgstation/tgstation/assets/51863163/302d60df-cf4e-4a0d-b00e-7d6e42fb741a) ## Changelog :cl: Melbert fix: Items and mobs no longer hide behind big runes (heretic, cult, wizard) /:cl:
## About The Pull Request Fixes emitter prototype button being unreachable because it makes you immobile upon buckling to it, but requires you to be mobile to use. Fixes emitter prototype's open icon state being invisible Fixes emitters reverting icon state despite having an open panel ## Why It's Good For The Game Prototype emitters being broken and invisible was brought to my attention in discord, I found the last bug accidentally so fixed that one too. I can't find any issue report on these, but these bugs do exist trust me bro I promise. ## Changelog :cl: fix: Prototype emitters now work. fix: Prototype emitters don't go invisible if screwdriver'd open. fix: Emitters no longer show up as their panel being closed when it is open. /:cl:
) ## About The Pull Request Pass `dismembered = TRUE` when calling `drop_limb` from `dismember`. At a glance I don't think anything actually checked `dismembered`, making this do (practically) nothing, however I was writing some code that actually relied on checking this only to find it was always passed as `null`. I also audited some signal usages of dismember / drop limb to make sure they're correct. ## Changelog I don't think this will affect anything at current.
…tion#80845) ## About The Pull Request Yello! This one is reasonably quick, tho I did some fixes too This is the big one, fixes the buildmode tool sometimes locking disabled for the whole round. We do this by replacing the static var on buildmode with global var and a global proc This keeps a harddel on the buildmode datum from permalocking is_running to TRUE Also makes flipping the var BACK if something breaks significantly easier for admins, so that's nice Alright, smaller things now Fixes lists of numbers failing to encoded improperly This was fixed on shiptest, we failed to actually port their most recent revision Fixes the shuttle flag not actually working because it used istype instead of ispath Changes obj_blacklist to a typecache for optimization's sake Renames/moves some vars around to prevent weird double typing things Removes a checktick in key gen, it's just costing more time then it would save in overtime Properly handles lists. We were only doing var encoding one layer deep, need to do it alll the way down Alright, now the optimizations This proc is fucking HOT, and it's for really dumb reasons This is a text gen proc, and it makes the mistake of generating text and concatinating it with MORE text. This is HORRIFICALLY EXPENSIVE because byond caches strings (can only be one of each) and string churn fucks up that caching system something fierce Moving from strings to lists of strings we join at the end takes us from like idk 100 seconds to save bare metastation to like 1.5 This is applied basically everywhere for obvious reasons While I'm here, storing keys in a flat list and then using find to find them, then using that index to lookup into another flat list is a bit silly. Let's just make it an assoc list. Faster lookup, cleaner. Oh also rather then iterating over all the vars on an object, let's iterate over just the ones we care about yeah? Let's see... no sense genning a key we'll never use, and having suffixes be often non existent is silly just embrace the slight mess. That's it I think, this takes us from 100 seconds to save metastation to 2.5 seconds to save ALL of metastation (I removed the vars limiter so I could make sure var saving didn't fuck me up) ## Why It's Good For The Game Cleans up some issues that we failed to port the fixes for, MASSIVELY optimizes this (so it can finish in like 5/10 seconds and not 300!) and ensures admins can always use the thing and don't risk dropping their pet buildastation to the void. Worth noting, this tool really should not be used for station mapping outside an event context. It produces sorta buggy var edits, and WILL fail to pull over context for shit. Please don't use it as such Profiles (csv files I promise) [Before](https://github.com/tgstation/tgstation/files/13853313/profiler.json) [After](https://github.com/tgstation/tgstation/files/13853271/profiler.json) I'd include my line by lines but I don't know how much you'd get out of them. Here's an image tho ![image](https://github.com/tgstation/tgstation/assets/58055496/3f3148c5-8b1e-4bda-aa65-3983f9944a91) ## Changelog :cl: fix: The map saving tool will no longer lock up and prevent all further action at random fix: Map saving now takes on the order of seconds, not minutes fix: Fixes an issue with lists that caused strongdmm to report saved maps as broken /:cl:
…ing in some existing ones (tgstation#81005) ## About The Pull Request This adds some missing shuttle prerequisite messages, and slightly modifies some existing ones. I just wanted to add the missing ones in, but the vague or unclear language in the other ones was also kind of bothering me. Specifically, the uncertain "might"s and "may"s used in certain messages felt off to me, and have been changed to more direct "must"s and "will"s. Certain prereqs have also been made slightly more clear on what needs doing. ## Why It's Good For The Game Makes things more clear to players! I really hope grammar PRs aren't a violation of the freeze. Adding in the missing prereqs constitutes a "fix" in my eyes. ## Changelog :cl: Rhials spellcheck: Modifies some existing Emergency Shuttle prerequisite messages, and adds some missing ones. /:cl:
## About The Pull Request Fixes adding HTML in the OOC announce proc, updates the proc documentation that the argument is for escaping HTML, not enabling it ## Why It's Good For The Game Admins sometimes want to put links or images in the server announcement ## Changelog :cl: LT3 fix: Server announcements again no longer escape HTML by default /:cl:
## About The Pull Request Another hard del caught by CI. ![firefox_3t97E6Nxm4](https://github.com/tgstation/tgstation/assets/13398309/398d12a2-8f90-4593-b5de-ffd37c744407) ## Why It's Good For The Game Bugfix ## Changelog Not player-facing. --------- Co-authored-by: Ghom <[email protected]>
## About The Pull Request Fixes tgstation#81014 where you can interact with medical beds while incapacitated. ## Changelog :cl: LT3 fix: You can no longer interact with medical beds while incapacitated /:cl: --------- Co-authored-by: san7890 <[email protected]>
## About The Pull Request Fixes this ![Screenshot (384)](https://github.com/tgstation/tgstation/assets/110812394/2ec17f1d-e69b-400a-a8ab-47c205af56ed) ## Changelog :cl: fix: fixes runtime when mineral scanning, passes right argument for scanner in golem eyes /:cl:
## About The Pull Request Due to a misplaced multiplier, arcmining machines were eating their own point totals. Now, the refinery and smelter should correctly only take the MINING_POINT_MACHINE_MULTIPLIER define on the amount being added to the points held, not on the total resting in the machine. ## Why It's Good For The Game Simple, easy fix. Fixes tgstation#81057. ## Changelog :cl: fix: The smelter and refinery now properly hold mining points, only taking a small amount out of net gained points. /:cl: --------- Co-authored-by: SyncIt21 <[email protected]>
…ion#81069) ## About The Pull Request What it says on the tin. It also affects the psychic projection ability, since it seemed to suffer from the same problem. It's an odd interaction, and seems to be the fault of the wave filter. If the blur filter is applied after it, it seems to try and center itself at a certain point of the wave which may not be aligned with the center of the screen. (Adding an initial offset to the wave filter makes the blur be misalligned both horizontally *and* vertically, so it seems to try and place itself at the initial position of the wave?) <details> <summary> Pictured here with 0.5 offset</summary> ![image](https://github.com/tgstation/tgstation/assets/80640114/60a850bd-8893-4054-8f1f-f389187e37a2) </details> One way or another, applying the blur filter before the wave filter keeps it nice and centered. ![image](https://github.com/tgstation/tgstation/assets/80640114/2760b9f2-11a3-484d-9a61-36f8defd43b9) ## Why It's Good For The Game Closes tgstation#81004 ## Changelog :cl: fix: the blur effects for hallucinogenic withdrawal and psychic projection are now properly centered on the screen /:cl:
## About The Pull Request Stock market events are a system coded into the stock market system in an attempt to keep the stocks unpredictable, at least on paper. They... need work, I'm in full agreement on that, but I haven't been able to get the energy to really fix stocks as of recently. I plan on going and kicking events up and making them a lot cooler, but in the meantime, I've refactored stock market events into their own datum type, `/datum/stock_market_event`. This works like most similar event datum style objects, where an event has a proc called when an event starts, a proc called when an event ends, and a proc called between on subsequent stock market subsystem firings. This does some minor tweaks to the newscaster stories automatically generated after an event fires, namely so that they can be produced quickly while emphasizing the important part of the event, what material is being effected, and a summary of what kind of behavior has happened to the material stock. Additionally, this made for a good excuse to do some code cleanup here while I had the opportunity, swapping to `::` as opposed to `initial()` calls where it seemed cleaner and more appropriate. This should make adding new stock market events as well as more unique events that can effect cargo and the round at large simple to do. This PR shouldn't have any mechanical changes to how stock market behaves in a live round. ## Why It's Good For The Game Improves code quality of stock market, increases readability of stock market events that have happened on the newscaster, and performs some minor cleanup to the TGUI for the stock market while I'm at it, all while keeping balance the same while we're still in the feature freeze. Full disclosure, once the freeze is over I have some pretty easy numbers tweaks planned to help significantly improve the stock market system that I had layered on this branch, but we've shuttled them off this PR for now to get this part ready to ship. ## Changelog :cl: refactor: Stock market events are now their own objects, and are handled by the stock market individually. /:cl: --------- Co-authored-by: MrMelbert <[email protected]> Co-authored-by: Ghom <[email protected]>
## About The Pull Request The first argument of `translate_language` is the speaker, not the hearer. ## Changelog Has no effect currently
## About The Pull Request Fixes tgstation#81013 RPG titles having incorrect alignment ![image](https://github.com/tgstation/tgstation/assets/83487515/3be96289-f74a-4463-9e68-69cc450110ed) ## Changelog :cl: LT3 fix: Fixed alignment of RPG titles /:cl:
## About The Pull Request `///Checks if the user is incapacitated or on cooldown.`. Adds the "or on cooldown" part of the proc into the proc. ## Changelog :cl: Melbert fix: Click CD applies to looking up and down correctly. /:cl:
…ssociating with mobs when already associated (tgstation#81065) ## About The Pull Request - Adds a stack trace for law datums associating with mobs when already associated. - From what I can tell, any situation in which a law datum is attempting to associate with another mob when it already has an owner assigned is an error. So this might help track down similar bugs in the future. - Fixes a hard delete involving AI laws. - When a malf AI occupies an APC, it creates an APC copy of the AI. This is an entirely separate mob. - In creating this copy, it uses the malf AI's current laws for the new copy's laws. Exactly. The same datum. - So the copy attempts to associate with the datum, and nothing happens, but it still assigns it to the copy's laws var. - When the AI attempts to return to their core from the APC, it deletes the copy. Which deletes the law datum, which our main Ai still has a reference too, so hard delete. Womp womp. - I fixed this by implementing a new proc, `copy_lawset`. The APC copy now gets a copy of the laws when the shunt happens. - This is imperfect, as they are two separate law datums now, it means any law changes to the first will not directly affect the second... I think. The whole "parent" AI system should cover this in theory? But I don't know if it actually does? It's quite confusing. - We should really codify methods of linking lawsets together rather than the hackiness that cyborgs do currently. ## Changelog :cl: Melbert fix: Fixed AIs who shunt to APCs causing their laws to be deleted. /:cl:
## About The Pull Request Fixes tgstation#81022 The original idea was for kidnapping victims to be returned to the same area they were kidnapped from (dropoff_area), but this was always a typepath to an area and not a datum reference (and was set to null immediately after kidnapping with ungenerate_objective()) and it always fell back to the get_safe_random_station_turf() method. This worked fine until tgstation#80644 attempted to optimize it, causing a runtime and returning early. This removes the code to return them to the same area and instead just uses get_safe_random_station_turf(), runtime-free. ## Why It's Good For The Game Kidnapping victims now actually return to the station after 3 minutes with their stuff. I think returning to a random area is cooler than the same area they were sent from anyways, I can imagine a traitor just waiting it out if they wanted them dead and unable to snitch. ## Changelog :cl: fix: Kidnapping traitor objective now properly returns the victim to the station with their items /:cl:
## About The Pull Request Makes the dropdown of the category being searched actually display text rather than being a very small box between two text boxes. Before ![image](https://github.com/tgstation/tgstation/assets/53777086/35ebdc71-b5fa-4ced-9ab2-18564ed805a4) After ![image](https://github.com/tgstation/tgstation/assets/53777086/d94a08e4-7a47-478c-9820-bd05a95ced57) ## Why It's Good For The Game Searching in the library became a little bit better. ## Changelog :cl: fix: The library console's category search box now displays the category being searched. /:cl:
…1066) <!-- 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 I moved the bit that says: ADMIN: guy started hardcore random with cancer, for a score of 2 into game.log <!-- 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 I don't see why this wound up in Admin.log. Doesn't contain any admin info, relate to actions done by admins, etc. <!-- 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. --> <!-- 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. -->
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
🆑
add: Added new mechanics or gameplay changes
add: Added more things
del: Removed old things
qol: made something easier to use
balance: rebalanced something
fix: fixed a few things
sound: added/modified/removed audio or sound effects
image: added/modified/removed some icons or images
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
config: changed some config setting
admin: messed with admin stuff
server: something server ops should know
/:cl: