-
Notifications
You must be signed in to change notification settings - Fork 48
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
Merge Upstream 22.01.2025 #1049
base: master
Are you sure you want to change the base?
Conversation
tgstation#88309) ## About The Pull Request This implements a new, minor, but flavorful system to IDs -- Honorifics. Does going by your full name not suit you? Do you demand respect for the position on Space Station 13 that you've earned and want to be addressed by your title? Do you take yourself WAY too seriously? This is for you. Toggled by ctrl-clicking your ID, honorifics append a title to your name depending on your position. Certain titles (Captain, Officer, Doctor, etc.) will only append to the start (replacing or including the first/last name), while others (PhD., Esq.) can only be appended at the end. ![image](https://github.com/user-attachments/assets/3ae22744-5f6e-4d12-9ea8-ecd60456b5a9) Each job TRIM has a set honorific and positions it can be assigned to. A doctor can be "Doctor Peterson" or "Doctor Peterson Bungle" or "Doctor Bungle". A Lawyer can only choose to be "Peterson Bungle, Esq.". This will only occur when the speaker's voice is the same identity as the one written on the ID's registered name. This should not interfere with Unknown voice obfuscation, stolen ID shenanigans, or anything gameplay-oriented. Hopefully. This feature is also mononym friendly! ![image](https://github.com/user-attachments/assets/21555023-5dd0-49e0-acd5-2dd0a06ae621) This also makes `first_name()` and `last_name()` global procs, and adds one to check if a passed string has spaces/dashes/whitespace/whatever. All of this is compatible with ID name changes, but the voice name must align with the card name to display the honorific. If you are "Peter Stinkypants" with your honorific set to display "Doctor Stinkypants", and your ID's registered name is changed to "Peter Stinker", you show up as "Peter Stinkypants (as Peter Stinker)" with no honorific provided. If you become "Peter Stinker" and have a "Peter Stinker" ID, you will show up as "Doctor Stinker" once again. That all make sense? Great. <details> <summary>So about the ID name stuff...</summary> <br> So, when you activate an honorific on your ID, it DOES change the actual object's name. Not the registered name, but the ID's name will go from "Peter Dawson's ID card" to "Captain Dawson's ID card" when an honorific is applied. This, as far as I've tested, does not mess with anything important, but I can totally see it doing so in a way that makes ctrl-Fing through logs harder than it needs to be. This could probably be changed without too much effort so if the issue does arise I can fix it. If not I am totally fine with reverting this PR until I can make it work (if I can at all). <br> Admittedly this doesn't have much testing with holopads/radios, but I'm confident the message composure is handled well enough to only display the right names under the right circumstances. If this fucks up logging or naming in any way tell me ASAP because I have a sinking feeling it will in a way more catastrophic than I could ever predict. This PR has been tested thoroughly but I have my limits. </details>
…ng them from spawning there. (tgstation#89113) ## About The Pull Request Makes icebox ruins not count towards blob total, also stops them from spawning there. ## Why It's Good For The Game I've been seeing a decent bit of blobs spawning on icebox ruins, such as Moffuchi's, the abandoned engineering outpost, Lizard gas, almost every ruin on icebox. The intent of blob isnt to cower off station, ensure likely no one can find you, then branch out onto the station. I understand that wastes blobs exist, but if they do it in the actual wastes, it doesnt count towards their total, and they actually have to branch out into the wastes before they begin. With Z level blobs already fucking over people majorly on icebox if the blob picks the right spot, I'm sure they wont need to be able to spawn in ruins to win. They also cannot spawn in ruins on any other station, so it just seems right to me. ## Changelog :cl: fix: Blob's can no longer place their core in ruins on Icebox. /:cl:
## About The Pull Request I just had to one-up tgstation#89127. ## Why It's Good For The Game Removes a a at at be be of of and and have have ## Changelog N/A
…et stun armor penetration, but not a test and actually intended to be merged (tgstation#88830) ## About The Pull Request This PR is literally just tgstation#87754 so you should probably go read the contents of that PR to learn more. ### Sorry, No Stunsword in this PR. Stunbaton inhand tips change color as the cell it has inside increases in capacity. They also have different animations based on the cell, to make it clearer which one you are looking at. ![image](https://github.com/user-attachments/assets/95be1499-47b7-4991-a3c1-03833f329d7f) ## Why It's Good For The Game So, two things; A) The test showed that there is more work to be done, but that this was actually improving survivability to some degree against batons when properly geared, while not necessarily impacting the average tider arrest attempts. It didn't solve the issue of alleviating the need for anti-baton knockdown tools, but it did help a bit. Enough that I think this could be worked on further as a foundation for solving that problem. B) People have been asking me to, or have made it obvious that they would like to see this actually merged into the game. So uh...here is that PR if any maints care for it. I think there is still more to do for testing and possible changes to address the issues I was trying to investigate in the test. However, I actually think this change could be an important step towards accomplishing some of those changes. It isn't quite enough to start pulling out baton resistance from various sources just yet, but it is a start. ## Changelog :cl: balance: Batons now respect the armor worn by targets. Analog batons respect MELEE armor. Cell-type batons respect ENERGY armor. balance: Various batons have differing amounts of armour penetration based on what type of baton it is. balance: Heads of staff have color graded batons to denote penetration power. Bronze (Quartermaster), Silver (Chief Engineer, Chief Medical Officer, Head of Personnel, Research Director), Gold (Captain). Contractor batons are equivalent to Gold. balance: Cell-type batons gain armor penetration based on their cell's quality. The better it is, the more it penetrates. /:cl: --------- Co-authored-by: SmArtKar <[email protected]>
## About The Pull Request Simple to Basic ruin zombies. Zombies are about as simple as you can get so I am surprised they weren't converted already. I didn't make any particular changes, except canonising a commonly-used map varedit into a subtype and made them groan occasionally. It's a little weird that the default zombie wears a doctor's outfit but no point changing it until/unless it actually causes a problem. ## Why It's Good For The Game 2025 year of no more simple animals. ## Changelog :cl: refactor: NPC zombies found in ruins now use the basic mob framework. Please make an issue report if they exhibit any unusual behaviour. /:cl:
## About The Pull Request We have a mob called `simple_animal/hostile/curseblob` which was used only for the `necropolis_curse` status effect. From the git history, this seems to have been added in a PR merged eight years ago where the PR author came up with a cool set of curses to apply to cursed objects and PRed it to the game as a concept to be used later. Subsequently, nobody used it. Well, to be more accurate, _two_ things apply the necropolis curse debuff right now but they only collectively use three of the four possibilities. The fourth, which spawns a mob with weird behaviour, is unused and so rather than spend my time bringing it up to standard I just removed it. Because this is dead code. To be quite honest I am not totally certain that `necropolis_curse` should be a single status effect either and it would plausibly be better off being two different status effects for the two different sources it is currently invoked (helbital overdose, and being sacrificed by a heretic). **Fun Fact!** Being sacrificed by a heretic doses you with 1 minute worth of _Helgrasp_ which spawns a frightening hand to attack you once per second, and also applies the Necropolis Curse which spawns a frightening hand to attack you once per ten seconds. This means that if you have anything in your mob which affects metabolic rate your sacrificial experience may be somewhat different, as quite a lot of the danger actually just comes from a chemical in your body. One of these effects spawns the hands slightly further away than the other, and you actually spend _2.5 minutes_ in the spooky hand room, so in that second (longer) half you'll only be tormented by very occasional spectral groping. Personally I would not do it this way I think. However rather than removing and replacing it, which would probably have some kind of aftereffect on the heretic sacrifice minigame that I would rather make larger changes to, I just touched up some of the code to avoid single-letter vars and to use a helper proc we already use in other heretic-related places. ## Why It's Good For The Game This wasn't maintained, isn't used, and was on our to-do mob conversion list. ## Changelog Not player facing
## About The Pull Request Moved visual updates upon pen/paper removal into /Exited(), thanks to Ephe for the idea ## Why It's Good For The Game Makes sure that we don't hang onto references if our pen/paper gets removed via less-than-normal methods, like instant recall ## Changelog :cl: fix: Clipboards should no longer retain pens that got removed via Instant Recall /:cl:
## About The Pull Request Order of operations thing (I think) - `drop_limb` - `update_limb` - It correctly updates the limb `show_debrained = FALSE` - Remove from limb - `death` - `update_body_parts` - `update_limb` - Now the head is still associated with the mob, but the organs are gone, so technically, we have no brain - It updates the limb `show_debrained = TRUE` - `update_owner(null)` - Head is only NOW disassociated with the mob after we've wrongly assumed the mob has no brain - `update_icon_dropped` (with the incorrect values) Moving to after we have been disassociated with the owner entirely seems to fix it, might have knock on effects though. Didn't seem to in (short) testing but yeah Maybe fixes tgstation#87971 ## Changelog :cl: Melbert fix: Heads with brains no longer look debrained /:cl:
## About The Pull Request Likely caused by a race condition with a `load_trophy_fish()` occurring after the item is deleted somehow. I erred on the side of caution and just made sure we can never get any fish being added to the trophy after its deletion. ![image](https://github.com/user-attachments/assets/1968ee5a-78e8-428e-9421-2416860962bc) ## Why It's Good For The Game Too many spurious CI failures lately ## Changelog N/A
## About The Pull Request Tin. This script when run would actually undo any instances of the thing and revert it back to the invalid version. I found this out after running it and becoming confused when it seemingly undid their pr. ## Why It's Good For The Game Working scripts for downstreams are nice. I think. ## Changelog N/a
## About The Pull Request Another spurious CI runtime that keeps coming up all the time and is annoying me. I believe it's occurring due to the chair not being initialized before a `mob_buckler` mapping helper tries to buckle mobs to it. So I moved their code to lateload to hopefully ensure that doesn't happen, as well as an additional safety measure in the armchair code itself. edit: confirmed that this does indeed fix it, as I have it merged downstream preemptively due to it being such a blocking nuisance ![image](https://github.com/user-attachments/assets/508e3f58-08ee-4e54-98a2-8a655ce85530) Caused by ## Why It's Good For The Game Less CI failures ## Changelog N/A
## About The Pull Request The roundstart report has been changed in the following ways: - There are now only four alert levels: Yellow Star (0-65 Threat), Red Star (66-79 Threat), Black Orbit (80-99 Threat), and Midnight Sun (100 Threat). - The roundstart report is now 100% accurate. - Extended rounds will still show the "No credible threat" alerts, but this should only happen if an admin sets the round to Extended. ## Why It's Good For The Game The current roundstart report system is too granular as it is now, which leads to situations where players will suicide 5-10 minutes into the round due to the threat level being too low. Making it potentially random was meaningless, because players would just act on whatever it said without actually giving the round a chance to do anything. I also feel like this brings back a fair bit of paranoia to the round, as low threat levels would often just result in people expecting nothing to happen. That can be fun when the report is lying, but it doesn't happen often enough to really make it worth keeping. We tested this a few months ago and the results seemed positive. We also had a lot of discussion about the matter and, while I'm open to changing implementation in some ways, I'm pretty set on this being a beneficial change, at least in the short term until we can make Dynamic more interesting. I kept the high threat level stuff because it's fun to know some crazy shit might happen. I might bring back the random threat level thing to differentiate between those but I don't really care tbh; the targeted behavior here is people bailing on low threat rounds, not people knowing it's a high threat round. ## Changelog :cl: Vekter balance: The roundstart report will now display a more broad, less specific message about threat levels when between 0 and 80 threat. /:cl:
…on#88789) ## About The Pull Request alternative to tgstation#88776 Makes the repair droid unable to be stacked and reduces armor slots to 1 on station mechs except the phazon. ## Why It's Good For The Game You can get to some pretty heavy duty values on certain mechs, especially the durand, with a very intense rate of healing. This makes those items unstackable. ![image](https://github.com/user-attachments/assets/714c48ca-f9a1-4452-bc25-9d20070f43be) ## Changelog :cl: balance: Reduces armor slots to 1 for all station built mechs except the phazon. balance: melee mech armor has been increased to 20 from 15. balance: mech bullet and laser armor has both been increased to 15 from 10. balance: You can no longer stack the repair droid on mechs. /:cl:
Reviewer's Guide by SourceryThis pull request merges the upstream master branch into the current branch. It includes a variety of changes, including bug fixes, balance adjustments, and new features. The most notable changes include the addition of honorifics to ID cards, changes to baton behavior, and adjustments to mech armor. Class diagram for ID card honorific changesclassDiagram
class obj_item_card_id {
+honorific_title: string
+honorific_position: int
+chosen_honorific: string
+update_honorific()
+return_message_name_part()
}
class datum_id_trim {
+honorifics: list
+honorific_positions: int
}
obj_item_card_id --> datum_id_trim
note for obj_item_card_id "Added honorific support
for customizing displayed names"
note for datum_id_trim "Defines available honorifics
and valid positions for each trim"
Class diagram for baton system changesclassDiagram
class obj_item_melee_baton {
+stun_armour_penetration: int
+armour_type_against_stun: string
+activated_word: string
+get_stun_penetration_value()
}
class obj_item_melee_baton_telescopic {
+bronze
+silver
+gold
}
class obj_item_melee_baton_security {
+additional_stun_armour_penetration: int
+get_baton_tip_color()
}
obj_item_melee_baton_telescopic --|> obj_item_melee_baton
obj_item_melee_baton_security --|> obj_item_melee_baton
note for obj_item_melee_baton "Added armor penetration
and stun type system"
Class diagram for mech armor changesclassDiagram
class obj_vehicle_sealed_mecha {
+max_equip_by_category: list
}
class obj_item_mecha_parts_mecha_equipment {
+unstackable: bool
}
class obj_item_mecha_parts_mecha_equipment_armor {
+melee: int
+bullet: int
+laser: int
}
obj_item_mecha_parts_mecha_equipment_armor --|> obj_item_mecha_parts_mecha_equipment
obj_vehicle_sealed_mecha --> obj_item_mecha_parts_mecha_equipment
note for obj_vehicle_sealed_mecha "Reduced armor slots to 1
Increased base armor values"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have skipped reviewing this pull request. It seems to have been created by a bot (hey, ss220app[bot]!). We assume it knows what it's doing!
This pull request merges upstream/master. Resolve possible conflicts manually and make sure all the changes are applied correctly.
Changelog
🆑 tgstation
add: Теперь вы можете использовать сочетание Ctrl+клик на идентификационных карточках, чтобы установить своё звание (Honorific), которое изменит ваше отображаемое имя, отражая ваш ТИТУЛ как РАБОЧЕГО на КОСМИЧЕСКОЙ СТАНЦИИ 13.
fix: Блоб больше не может размещать своё ядро в руинах на Icebox.
fix: Грузовой экзокостюм Big Bess больше не превращается (визуально) в стандартный экзокостюм Ripley.
fix: Deluxe Donk Pockets (и их безуглеводные и веганские варианты) теперь нельзя создать без получения рецепта.
fix: Иконки карманов теперь корректно обновляются при удалении из них предметов, содержащих хранилище (например, коробка с бинтами).
fix: Автоподмотка у удочки больше не будет отрывать интеркомы или другие закреплённые/неподвижные объекты.
balance: Дубинки теперь учитывают броню, которую носит цель. Аналоговые дубинки учитывают броню против МОЛОТКОВЫХ ударов. Дубинки, работающие на батареях, учитывают ЭНЕРГЕТИЧЕСКУЮ броню.
balance: У различных дубинок теперь разная степень пробивания брони, основанная на определённых значениях.
balance: У руководителей департаментов дубинки имеют цветовую градацию для обозначения уровня пробивания брони: бронзовая (Квартирмейстер), серебряная (Главный инженер, Главный врач, Глава персонала, Директор исследований), золотая (Капитан).
balance: Дубинки, работающие на батареях, получают дополнительное пробивание брони в зависимости от качества батареи. Чем лучше батарея, тем больше пробивание.
add: Главы службы безопасности теперь получают оглушающий меч NT-20 "Экскалибур". Он обладает повышенным пробиванием брони. И это буквально меч. Просто для удовольствия.
refactor: Зомби-NPC, встречающиеся в руинах, теперь используют базовую структуру мобов. Если вы заметите какое-либо странное поведение, пожалуйста, создайте отчёт.
fix: Клипборды больше не сохраняют ручки, удалённые с помощью Instant Recall.
fix: Головы с оставшимися мозгами теперь не выглядят как обезмозгленные.
balance: Теперь стартовый отчёт будет отображать более общий, менее специфический текст об уровнях угрозы, если они находятся в интервале от 0 до 80.
balance: Установлено ограничение на один слот брони для всех созданных на станции мехов, кроме Phazon.
balance: Броня от ближнего боя для мехов увеличена с 15 до 20.
balance: Броня мехов против снарядов и лазеров увеличена с 10 до 15.
balance: Ремонтного дроида больше нельзя стекировать на мехах.
fix: Разломы снова несовместимы с взрывной рыбалкой.
/:cl:
Summary by Sourcery
Update batons to respect armor and add honorifics to IDs.
New Features:
Bug Fixes: