Skip to content
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

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open

Merge Upstream 22.01.2025 #1049

wants to merge 35 commits into from

Conversation

ss220app[bot]
Copy link

@ss220app ss220app bot commented Jan 22, 2025

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:

  • Ctrl-click IDs to set an honorific, changing display name to reflect title.
  • Security heads now have the NT-20 "Excalibur" stun sword with increased armor penetration.

Bug Fixes:

  • Blob no longer places core in Icebox ruins.
  • Big Bess mech no longer visually transforms into a Ripley mech.
  • Deluxe Donk Pockets now require a recipe to craft.
  • Pocket icons update correctly when removing items with storage.
  • Fishing rod auto reel no longer rips off anchored objects.
  • Clipboards no longer retain pens removed via Instant Recall.
  • Heads with brains no longer appear debrained.
  • Chasms are incompatible with explosive fishing.

Rhials and others added 30 commits January 20, 2025 20:18
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:
tgstation-ci bot and others added 5 commits January 22, 2025 05:46
…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:
Copy link

sourcery-ai bot commented Jan 22, 2025

Reviewer's Guide by Sourcery

This 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 changes

classDiagram
    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"
Loading

Class diagram for baton system changes

classDiagram
    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"
Loading

Class diagram for mech armor changes

classDiagram
    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"
Loading

File-Level Changes

Change Details Files
Added the ability to set honorifics on ID cards.
  • Added a new honorific_title variable to the ID card object.
  • Added a new honorific_position variable to the ID card object to control where the honorific is displayed.
  • Added a new chosen_honorific variable to the ID card object to store the selected honorific.
  • Added a new update_honorific proc to the ID card object to generate the honorific title.
  • Added a new return_message_name_part proc to the ID card object to return the name with the honorific.
  • Added a new item_ctrl_click proc to the ID card object to allow users to toggle the honorific.
  • Added new honorifics and honorific_positions variables to the ID trim datums.
  • Added new defines for honorific positions.
  • Added new procs to get the first and last name from a string.
  • Added a new proc to check if a name is a mononym.
code/game/objects/items/cards_ids.dm
code/datums/id_trim/jobs.dm
code/datums/id_trim/centcom.dm
code/__DEFINES/id_cards.dm
code/__HELPERS/names.dm
code/datums/id_trim/_id_trim.dm
Modified baton behavior to respect armor and have varying penetration values.
  • Added new stun_armour_penetration and armour_type_against_stun variables to the baton object.
  • Modified the baton_effect proc to apply damage based on the target's armor.
  • Added a new get_stun_penetration_value proc to the baton object to calculate the penetration value.
  • Added a new add_baton_notes proc to the baton object to add notes to the weapon description.
  • Added new baton subtypes with varying armor penetration values.
  • Added a new activated_word variable to the baton object to describe the baton's state.
code/game/objects/items/melee/baton.dm
Adjusted mech armor values and repair droid stacking.
  • Reduced armor slots to 1 for all station-built mechs except the Phazon.
  • Increased melee mech armor from 15 to 20.
  • Increased mech bullet and laser armor from 10 to 15.
  • Prevented repair droids from stacking on mechs.
  • Set the repair droid to be unstackable.
code/modules/vehicles/mecha/equipment/mecha_equipment.dm
code/modules/vehicles/mecha/combat/durand.dm
code/modules/vehicles/mecha/combat/gygax.dm
code/modules/vehicles/mecha/combat/honker.dm
code/modules/vehicles/mecha/combat/savannah_ivanov.dm
Fixed various bugs.
  • Fixed an issue where clipboards would retain pens removed via Instant Recall.
  • Fixed an issue where fishing rods would rip off anchored objects.
  • Fixed an issue where the Big Bess cargo hauler would visually become a standard Ripley exosuit.
  • Fixed an issue where Deluxe Donk Pockets could be crafted without the recipe.
  • Fixed an issue where pockets would not update their icons correctly.
  • Fixed an issue where chasms were compatible with explosive fishing.
  • Fixed an issue where heads with brains would look debrained.
  • Fixed an issue where the roundstart report would display a specific message about threat levels when between 0 and 80 threat.
  • Fixed an issue where the dynamic subsystem would not properly calculate threat levels.
  • Fixed an issue where reskinning items would not update the base icon state.
  • Fixed an issue where fish mounts would not properly add fish.
  • Fixed an issue where the ethereal heart would not properly revive the host.
  • Fixed an issue where designs would not properly check for build paths.
  • Fixed an issue where simple animals would not properly freeze.
  • Fixed an issue where the orion arcade game would not properly set the player's name.
  • Fixed an issue where the orion arcade game would not properly handle events.
  • Fixed an issue where the chromosome item would not properly apply its effects.
  • Fixed an issue where the linear induction tram tiles would have an incorrect singular name.
  • Fixed an issue where the admin topic would not properly validate the forced threat level.
  • Fixed an issue where the floor tile gloves would not properly apply their effects.
  • Fixed an issue where the lily crown would have an incorrect description.
  • Fixed an issue where the collar bomb would not properly log the trigger.
  • Fixed an issue where the ion storm event would not properly handle the protect objective.
  • Fixed an issue where the chasm fish source would not properly handle explosive fishing.
  • Fixed an issue where the fake death hallucination would not properly display the hallucinator's name.
  • Fixed an issue where the nearby fake item hallucination would not properly display the baton icon.
  • Fixed an issue where the captain job would not properly equip the telescopic baton.
  • Fixed an issue where the chief engineer job would not properly equip the telescopic baton.
  • Fixed an issue where the chief medical officer job would not properly equip the telescopic baton.
  • Fixed an issue where the head of personnel job would not properly equip the telescopic baton.
  • Fixed an issue where the quartermaster job would not properly equip the telescopic baton.
  • Fixed an issue where the research director job would not properly equip the telescopic baton.
  • Fixed an issue where the clown skillchip would not properly apply its effects.
  • Fixed an issue where the human helper procs would not properly handle null values.
  • Fixed an issue where the monkey brain would not properly handle tripping.
  • Fixed an issue where the dismemberment proc would not properly update the limb.
  • Fixed an issue where the ethereal heart would not properly revive the host.
  • Fixed an issue where the dynamic logging would not properly serialize the shown threat.
  • Fixed an issue where the mob helper procs would not properly handle null values.
  • Fixed an issue where the split personality brain damage would not properly handle null values.
  • Fixed an issue where the storage component would not properly handle null values.
  • Fixed an issue where the curse hand would not properly handle null values.
  • Fixed an issue where the fake chat hallucination would not properly display the hallucinator's name.
  • Fixed an issue where the voice of god command would not properly handle null values.
  • Fixed an issue where the say proc would not properly handle null values.
  • Fixed an issue where the reinforced window would not properly handle null values.
  • Fixed an issue where the status effect defines would not properly handle null values.
  • Fixed an issue where the icemoon ruins would not properly handle null values.
  • Fixed an issue where the ruins area would not properly handle null values.
  • Fixed an issue where the objective items would not properly handle null values.
  • Fixed an issue where the zombie mob would not properly handle null values.
  • Fixed an issue where the mecha equipment would not properly handle null values.
  • Fixed an issue where the head of security job would not properly equip the stun baton.
  • Fixed an issue where the cyber police outfit would not properly handle null values.
  • Fixed an issue where the general memory would not properly handle null values.
code/modules/paperwork/clipboard.dm
code/modules/fishing/fishing_equipment.dm
code/modules/mapping/mapping_helpers.dm
code/datums/status_effects/debuffs/debuffs.dm
code/controllers/subsystem/dynamic/dynamic.dm
code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm
code/game/objects/items_reskin.dm
code/modules/fishing/fish_mount.dm
code/game/objects/items.dm
code/modules/vehicles/mecha/working/ripley.dm
code/modules/surgery/bodyparts/dismemberment.dm
code/modules/surgery/organs/internal/heart/heart_ethereal.dm
code/modules/unit_tests/designs.dm
code/modules/unit_tests/simple_animal_freeze.dm
code/game/machinery/computer/arcade/orion.dm
code/game/machinery/computer/arcade/orion_event.dm
code/game/objects/items/chromosome.dm
code/game/objects/items/stacks/tiles/tile_types.dm
code/modules/admin/topic.dm
code/modules/clothing/gloves/combat.dm
code/modules/clothing/head/garlands.dm
code/modules/clothing/neck/collar_bomb.dm
code/modules/events/ion_storm.dm
code/modules/fishing/sources/source_types.dm
code/modules/hallucination/fake_death.dm
code/modules/hallucination/nearby_fake_item.dm
code/modules/jobs/job_types/captain.dm
code/modules/jobs/job_types/chief_engineer.dm
code/modules/jobs/job_types/chief_medical_officer.dm
code/modules/jobs/job_types/head_of_personnel.dm
code/modules/jobs/job_types/quartermaster.dm
code/modules/jobs/job_types/research_director.dm
code/modules/library/skill_learning/job_skillchips/clown.dm
code/modules/mob/living/carbon/human/human_helpers.dm
code/modules/mob/living/carbon/human/species_types/monkeys.dm
code/modules/unit_tests/ethereal_revival.dm
code/modules/vehicles/mecha/combat/durand.dm
code/modules/vehicles/mecha/combat/gygax.dm
code/modules/vehicles/mecha/combat/honker.dm
code/modules/vehicles/mecha/combat/savannah_ivanov.dm
code/controllers/subsystem/dynamic/dynamic_logging.dm
code/modules/mob/mob_helpers.dm
code/datums/brain_damage/split_personality.dm
code/datums/storage/storage.dm
code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm
code/modules/hallucination/fake_chat.dm
code/datums/id_trim/_id_trim.dm
code/datums/voice_of_god_command.dm
code/game/say.dm
code/game/objects/structures/window.dm
code/__DEFINES/status_effects.dm
code/datums/ruins/icemoon.dm
code/game/area/areas/ruins/_ruins.dm
code/game/gamemodes/objective_items.dm
code/modules/mob/living/basic/ruin_defender/zombie.dm
code/modules/vehicles/mecha/equipment/tools/other_tools.dm
code/modules/jobs/job_types/head_of_security.dm
code/datums/id_trim/outfits.dm
code/datums/memory/general_memories.dm
code/modules/library/skill_learning/job_skillchips/clown.dm
code/modules/mob/living/carbon/human/human_helpers.dm
code/modules/mob/living/carbon/human/species_types/monkeys.dm
code/modules/surgery/bodyparts/dismemberment.dm
code/modules/surgery/organs/internal/heart/heart_ethereal.dm
code/modules/unit_tests/designs.dm
code/modules/unit_tests/simple_animal_freeze.dm
code/game/machinery/computer/arcade/orion.dm
code/game/machinery/computer/arcade/orion_event.dm
code/game/objects/items/chromosome.dm
code/game/objects/items/stacks/tiles/tile_types.dm
code/modules/admin/topic.dm
code/modules/clothing/gloves/combat.dm
code/modules/clothing/head/garlands.dm
code/modules/clothing/neck/collar_bomb.dm
code/modules/events/ion_storm.dm
code/modules/fishing/sources/source_types.dm
code/modules/hallucination/fake_death.dm
code/modules/hallucination/nearby_fake_item.dm
code/modules/jobs/job_types/captain.dm
code/modules/jobs/job_types/chief_engineer.dm
code/modules/jobs/job_types/chief_medical_officer.dm
code/modules/jobs/job_types/head_of_personnel.dm
code/modules/jobs/job_types/quartermaster.dm
code/modules/jobs/job_types/research_director.dm
code/modules/library/skill_learning/job_skillchips/clown.dm
code/modules/mob/living/carbon/human/human_helpers.dm
code/modules/mob/living/carbon/human/species_types/monkeys.dm
code/modules/unit_tests/ethereal_revival.dm
code/modules/vehicles/mecha/combat/durand.dm
code/modules/vehicles/mecha/combat/gygax.dm
code/modules/vehicles/mecha/combat/honker.dm
code/modules/vehicles/mecha/combat/savannah_ivanov.dm
code/controllers/subsystem/dynamic/dynamic_logging.dm
code/modules/mob/mob_helpers.dm
code/datums/brain_damage/split_personality.dm
code/datums/storage/storage.dm
code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm
code/modules/hallucination/fake_chat.dm
code/datums/id_trim/_id_trim.dm
code/datums/voice_of_god_command.dm
code/game/say.dm
code/game/objects/structures/window.dm
code/__DEFINES/status_effects.dm
code/datums/ruins/icemoon.dm
code/game/area/areas/ruins/_ruins.dm
code/game/gamemodes/objective_items.dm
code/modules/mob/living/basic/ruin_defender/zombie.dm
code/modules/vehicles/mecha/equipment/tools/other_tools.dm
code/modules/jobs/job_types/head_of_security.dm
code/datums/id_trim/outfits.dm
code/datums/memory/general_memories.dm
Refactored zombie NPCs to use the basic mob framework.
  • Created a new zombie mob type in code/modules/mob/living/basic/ruin_defender/zombie.dm.
  • Removed the old zombie mob type in code/modules/mob/living/simple_animal/hostile/zombie.dm.
  • Updated the unit tests to use the new zombie mob type.
  • Updated the update paths to use the new zombie mob type.
  • Removed the curse blob mob type.
code/modules/mob/living/basic/ruin_defender/zombie.dm
code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm
code/modules/mob/living/simple_animal/hostile/zombie.dm
code/modules/unit_tests/simple_animal_freeze.dm
tools/UpdatePaths/Scripts/89153_simple_to_basic_zombies.txt

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@github-actions github-actions bot added 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один. 🎸 Инструменты Мы выдаем себя за реальное сообщество разработчиков. 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов labels Jan 22, 2025
Copy link

@sourcery-ai sourcery-ai bot left a 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!

@ss220app ss220app bot added the 📜 CL валиден Этот чейнджлог будет успешно опубликован label Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎸 Инструменты Мы выдаем себя за реальное сообщество разработчиков. 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов 📜 CL валиден Этот чейнджлог будет успешно опубликован 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один.
Projects
None yet
Development

Successfully merging this pull request may close these issues.