-
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
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:
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!
## Что этот PR делает Изменён коэффициент в награде за ящик, доставленный по заказу отдела, со 120 до 40. Обновление цен в GMM изменено с 1 минуты до 3 минут. Планка коэффициента падения цен на бирже была изменена с 0,5 до 0,8. Планка коэффициента повышения цен на бирже была изменена с 3 до 2. Продажа материалов на бирже более недоступна. Продажа материалов через карго-шаттл теперь приносит меньше денег: для большинства материалов цена упала в 4 раза. Цена на большинство оружия в карго стала выше на 50 %. Цены на патроны в карго стали выше на 50%. Цена на ящик с винтовкой BR38 стала ниже: с 20 000 до 12 000. Пони теперь стоит не 800 кредитов, а 9 000. Все ящики с ядрами аномалий стали дороже в 2 раза. Лазерный карабин был изменен: - Магазин уменьшен с 40 до 30. - Скорость полёта снаряда снижена с 1,25 до 0,7. - Темп стрельбы изменен с 0,15 до 0,2 выстрела в секунду. Для святого арбуза требуется 95 или выше потенции, чтобы появился заряд антимагии. ## Почему это хорошо для игры Оружия должно стать меньше, что должно сделать угрозы на станции более серьёзными; 5 зарядов у арбузов было слишком много, меньшее кол-во зарядов должно их ослабить; Пони сейчас слишком дешевый (1984); Карабины слишком сильные, было требование их понерфить; Продажа материалов на бирже имеет слишком плохую реализацию, полностью ломая экономику, что недопустимо; Экономика на ТГ находится в ужасном состоянии, запрещая продажу материалов на ГММ приходится и резать цены на продажу материалов через карго шаттл (касается только материалов, газы не были затронуты); Таймер обновления торгов изменен с 1 минуты до 3-х; Ядра аномалий стали дороже выше в 2.5 раза, в теории фиксит fixes #966. ## Тестирование Локалка ## Changelog :cl: balance: цена ящика с лазерными карабинами повышена до 2700 balance: цена ящика с винтовкой BR-38 снижена до 12000 balance: продажа материалов через карго-шаттл теперь приносит меньше денег — для большинства материалов цена снижена в 4 раза balance: все ящики с ядрами аномалий стали стоить 5000 кредитов balance: пони теперь стоит 9000 кредитов вместо 800 balance: обновление цен в GMM увеличено с 1 минуты до 3 минут balance: планка коэффициента падения цен на бирже изменена с 0.5 до 0.8 balance: планка коэффициента повышения цен на бирже изменена с 3 до 2 balance: продажа материалов на бирже отключена balance: цена на револьвер детектива в карго увеличена с 2000 до 3000. balance: цена на боевой дробовик в карго увеличена с 1500 до 2250. balance: цена на еган в карго увеличена с 1200 до 1800. balance: цена на лазерную винтовку в карго увеличена с 600 до 900. balance: цена на двухстволку в карго увеличена с 1800 до 2700. balance: цена на ящик с лазерами в карго увеличена с 800 до 1200. balance: цена на ящик боевых дробовиков в карго увеличена с 3500 до 5200. balance: цена на ящик с еганами в карго увеличена с 3600 до 5400. balance: цена на ящик с лазерным карабином в карго увеличена с 1800 до 2700. balance: цена на ящик с дизейбер ПП в карго увеличена с 1400 до 2200. balance: цена на ящик с BR38 в карго снижена с 20 000 до 12 000. balance: стоимость на все типы патрон для револьвера детектива в карго была изменена со 100 до 200, кроме резины, цена изменилась с 75 до 150 balance: стоимость ящика с патронами в карго изменена с 1600 до 2400 balance: стоимость ящика с магазинами для винтовки BR38 изменена с 1400 до 2100 balance: святые арбузы теперь защищают 1 раз и только с потенцией выше 95 balance: лазерный карабин получил изменение характеристик: Магазин уменьшен с 40 до 30 выстрелов, скорость полёта снаряда снижена с 1.25 до 0.7, задержка между выстрелами повышена с 0.15 до 0.2 секунд /:cl: --------- Co-authored-by: dj-34 <[email protected]> Co-authored-by: Gaxeer <[email protected]>
## Что этот PR делает Closes #1039 Добавляет дополнительный стол с камерой, диктофоном и очками в офис юристов. ## Почему это хорошо для игры Второй набор для второго юриста (чтобы не было драк за один набор), очки по запросу #1039 ## Изображения изменений ![StrongDMM-2025-01-22 22 20 59](https://github.com/user-attachments/assets/e6b0050e-5029-4cf5-8cb8-985777e14f12) ## Changelog :cl: map: Кибериада: В офис юристов добавлен дополнительный стол с камерой, диктофоном и очками. /:cl: ## Summary by Sourcery New Features: - Provide a second set of equipment for the second lawyer.
## Что этот PR делает Не в обиду сику, но это полный бред, создавая преф на мастере, писать его на английском дабы потом перевести в translate отдельным ПРом Пускай все префы будут переведены на мастере для консистенции, заодно при мерге апстрима сразу будет видно какие префы надо перевести, и это не будет узнаваться уже на проде ## Почему это хорошо для игры Меньше головной боли, больше CoNsIsTenCy ## Изображения изменений ![image](https://github.com/user-attachments/assets/f5c3c20d-992f-4a7c-9399-aa6ba260fb63) ## Changelog :cl: code_imp: Параметры игры и персонажа, теперь переведены не только в translate ветке /:cl: Co-authored-by: Gaxeer <[email protected]>
## Что этот PR делает Добавляет автовики для эмодзи, на вики будет всегда актуальный список всех эмодзи Из минусов - насрано файлами ## Changelog :cl: add: На вики появился актуальный список всех эмодзи для чата/мессенджера /:cl: ## Summary by Sourcery New Features: - Automatically generate a wiki page containing an always up-to-date list of all available emojis.
## Что этот PR делает Добавляет гранатомет который есть на всех тг картах и 4 пары худов, так же 2 потерянных рага. Убирает 6 неиспользуемых барьерок. ## Почему это хорошо для игры Гранатомет круто, худы тоже ## Изображения изменений ![image](https://github.com/user-attachments/assets/c95aa33e-06a3-4bc4-8d4d-da29928bcf6c) ## Тестирование ## Changelog :cl: map: Добавлен, гранатомет и худы в оружейку Кибериады (они есть на всех картах). Удалены 6 барьерных гранат. /:cl:
## Что этот PR делает Перестройка турбины, фикс доступов в библиотеке. ## Почему это хорошо для игры Турбина стала рабочей, куратор имеет доступы в своем отделе. ## Изображения изменений ![StrongDMM-2025-01-20 23 59 27](https://github.com/user-attachments/assets/fdf28830-fda4-449e-bafc-2c7b6d381603) ## Changelog :cl: map: Кибериада: перестройка турбины fix: Фикс доступов в библиотеке на Кибериаде /:cl: ## Summary by Sourcery Reconfigure the turbine and fix curator access in the library. Bug Fixes: - Fix curator access in the library. Enhancements: - Reconfigure the turbine. --------- Co-authored-by: dj-34 <[email protected]>
This pull request updates the server NanoMaps. Please review the diff images before merging. Co-authored-by: NanoMap Generation <[email protected]>
This PR causes following conflicts on translate branch: code/controllers/subsystem/dynamic/dynamic.dm++<<<<<<< HEAD
+ switch(round(threat_level))
+ if(0 to 65)
+ advisory_string += "Advisory Level: <b>Yellow Star</b></center><BR>"
+ advisory_string += "Your sector's advisory level is Yellow Star. Surveillance shows a credible risk of enemy attack against our assets in the Spinward Sector. We advise a heightened level of security alongside maintaining vigilance against potential threats."
++||||||| 73477cf511b
++ if(prob(PULSAR_REPORT_CHANCE))
++ for(var/datum/station_trait/our_trait as anything in shuffle(SSstation.station_traits))
++ advisory_string += our_trait.get_pulsar_message()
++ if(length(advisory_string))
++ return advisory_string
++
++ advisory_string += "Advisory Level: <b>Pulsar Star</b></center><BR>"
++ advisory_string += "Your sector's advisory level is Pulsar Star. A large, unknown electromagnetic field has stormed through nearby surveillance equipment, causing major data loss. Partial data was recovered and showed no credible threats to Nanotrasen assets within the Spinward Sector; however, the Department of Intelligence advises maintaining high alert against potential threats due to the lack of complete data."
++ return advisory_string
++ //a white dwarf shift leads to a green security alert on report and special announcement, this prevents a meta check if the alert report is fake or not.
++ if(round(shown_threat) == 0 && round(threat_level) == 0)
++ advisory_string += "Advisory Level: <b>White Dwarf</b></center><BR>"
++ advisory_string += "Your sector's advisory level is White Dwarf. Our surveillance has ruled out any and all potential threats known in our database, eliminating most risks to our assets in the Spinward Sector. We advise a lower level of security, alongside distributing resources on potential profit."
++ return advisory_string
++
++ switch(round(shown_threat))
++ if(0 to 19)
++ var/show_core_territory = (GLOB.current_living_antags.len > 0)
++ if (prob(FAKE_GREENSHIFT_FORM_CHANCE))
++ show_core_territory = !show_core_territory
++
++ if (show_core_territory)
++ advisory_string += "Advisory Level: <b>Blue Star</b></center><BR>"
++ advisory_string += "Your sector's advisory level is Blue Star. At this threat advisory, the risk of attacks on Nanotrasen assets within the sector is minor but cannot be ruled out entirely. Remain vigilant."
++ else
++ advisory_string += "Advisory Level: <b>Green Star</b></center><BR>"
++ advisory_string += "Your sector's advisory level is Green Star. Surveillance information shows no credible threats to Nanotrasen assets within the Spinward Sector at this time. As always, the Department of Intelligence advises maintaining vigilance against potential threats, regardless of a lack of known threats."
++ if(20 to 39)
++ advisory_string += "Advisory Level: <b>Yellow Star</b></center><BR>"
++ advisory_string += "Your sector's advisory level is Yellow Star. Surveillance shows a credible risk of enemy attack against our assets in the Spinward Sector. We advise a heightened level of security alongside maintaining vigilance against potential threats."
++ if(40 to 65)
++ advisory_string += "Advisory Level: <b>Orange Star</b></center><BR>"
++ advisory_string += "Your sector's advisory level is Orange Star. Upon reviewing your sector's intelligence, the Department has determined that the risk of enemy activity is moderate to severe. At this advisory, we recommend maintaining a higher degree of security and reviewing red alert protocols with command and the crew."
++=======
+ if(prob(PULSAR_REPORT_CHANCE))
+ for(var/datum/station_trait/our_trait as anything in shuffle(SSstation.station_traits))
+ advisory_string += our_trait.get_pulsar_message()
+ if(length(advisory_string))
+ return advisory_string
+
+ advisory_string += "Уровень угрозы: <b>Пульсар</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Пульсар. Большое электромагнитное поле неизвестного происхождения прошло штормом через близлежащее оборудование наблюдения, вызвав значительную потерю данных. Часть данных была восстановлена, и она не выявляет достоверные угрозы для активов Нанотрейзен в секторе Спинвард; однако Департамент разведки рекомендует сохранять повышенную бдительность в отношении потенциальных угроз из-за отсутствия полных данных."
+ return advisory_string
+ //a white dwarf shift leads to a green security alert on report and special announcement, this prevents a meta check if the alert report is fake or not.
+ if(round(shown_threat) == 0 && round(threat_level) == 0)
+ advisory_string += "Уровень угрозы: <b>Белый карлик</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Белый карлик. Наше наблюдение исключило все потенциальные угрозы, известные нашей базе данных, что ведет за собой отсутствие большинства рисков для наших активов в секторе Спинвард. Мы рекомендуем занизить уровень безопасности, распределив ресурсы на получение потенциальной прибыли."
+ return advisory_string
+
+ switch(round(shown_threat))
+ if(0 to 19)
+ var/show_core_territory = (GLOB.current_living_antags.len > 0)
+ if (prob(FAKE_GREENSHIFT_FORM_CHANCE))
+ show_core_territory = !show_core_territory
+
+ if (show_core_territory)
+ advisory_string += "Уровень угрозы: <b>Синяя звезда</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Синяя звезда. При этом уровне угрозы риск нападения на активы Нанотрейзен в секторе незначителен, но всё ещё не исключён. Сохраняйте бдительность."
+ else
+ advisory_string += "Уровень угрозы: <b>Зелёная звезда</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Зелёная звезда. Наблюдение не указывает на достоверные угрозы на активы Нанотрейзен в секторе Спинвард на текущий момент. Как всегда, Департамент разведки советует сохранять бдительность в отношении потенциальных угроз, несмотря на отсутствие известных."
+ if(20 to 39)
+ advisory_string += "Уровень угрозы: <b>Жёлтая звезда</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Жёлтая звезда. Наблюдение указывает на существенный риск вражеской атаки на наши активы в секторе Спинвард. Мы советуем повысить уровень безопасности и сохранять бдительность в отношении потенциальных угроз."
+ if(40 to 65)
+ advisory_string += "Уровень угрозы: <b>Оранжевая звезда</b></center><BR>"
+ advisory_string += "В вашем секторе установлена угроза уровня Оранжевая звезда. Изучив данные разведки вашего сектора, Департамент утверждает, что риск вражеской активности колеблется от умеренного до серьезного. В связи с этим, мы рекомендуем повысить уровень безопасности и согласовать протоколы красного кода с командованием и экипажем."
++>>>>>>> origin/translate
code/game/objects/items/melee/baton.dm++<<<<<<< HEAD
++||||||| 73477cf511b
++ // Adding an extra break for the sake of presentation
++ if(stamina_damage != 0)
++ offensive_notes = "It takes [span_warning("[CEILING(100 / stamina_damage, 1)] stunning hit\s")] to stun an enemy."
++=======
+ // Adding an extra break for the sake of presentation
+ if(stamina_damage != 0)
+ offensive_notes = "Количество ударов, требуемого для оглушения: [span_warning("[CEILING(100 / stamina_damage, 1)]")]."
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ activated_word = "activated"
+ context_living_rmb_active = "Harmful Stun"
++||||||| 73477cf511b
++ context_living_rmb_active = "Harmful Stun"
++=======
+ context_living_rmb_active = "Оглушить с уроном"
++>>>>>>> origin/translate
code/modules/events/ion_storm.dm++<<<<<<< HEAD
+ message = "YOU MUST HARM [ioncrew1] AND [ioncrew2] AND NOT ALLOW EITHER, THROUGH INACTION, TO ESCAPE HARM"
++||||||| 73477cf511b
++ message = "YOU MUST HARM [ioncrew1] AND [ioncrew2] AND AND NOT ALLOW EITHER, THROUGH INACTION, TO ESCAPE HARM"
++=======
+ message = "ВЫ ДОЛЖНЫ НАВРЕДИТЬ [ioncrew1] И [ioncrew2] ИЛИ ДОПУСТИТЬ НИ ОДНОГО, ИЛИ СВОИМ БЕЗДЕЙСТВИЕМ ДОПУСТИТЬ ИЗБЕЖАНИЕ ВРЕДА"
++>>>>>>> origin/translate
|
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: Дубинки теперь учитывают броню, которую носит цель. Аналоговые дубинки учитывают броню MELEE. Дубинки, работающие на батареях, учитывают броню ENERGY.
balance: У различных дубинок теперь разная степень пробивания брони, основанная на определённых значениях.
balance: У руководителей департаментов дубинки имеют цветовую градацию для обозначения уровня пробивания брони: бронзовая (Квартирмейстер), серебряная (Главный инженер, Главный врач, Глава персонала, Директор исследований), золотая (Капитан).
balance: Дубинки, работающие на батареях, получают дополнительное пробивание брони в зависимости от качества батареи. Чем лучше батарея, тем больше пробивание.
add: Главы службы безопасности теперь получают оглушающий меч NT-20 "Экскалибур". Он обладает повышенным пробиванием брони. И это буквально меч. Просто для удовольствия.
refactor: Зомби-NPC, встречающиеся в руинах, теперь используют базовую структуру мобов. Если вы заметите какое-либо странное поведение, пожалуйста, создайте отчёт.
fix: Клипборды больше не сохраняют ручки, удалённые с помощью Instant Recall.
fix: Головы с оставшимися мозгами теперь не выглядят как обезмозгленные.
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: