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 05.12.24 #844

Merged
merged 38 commits into from
Dec 5, 2024
Merged

Merge upstream 05.12.24 #844

merged 38 commits into from
Dec 5, 2024

Conversation

larentoun
Copy link
Collaborator

@larentoun larentoun commented Dec 5, 2024

About The Pull Request

мерге

MrMelbert and others added 30 commits December 4, 2024 09:00
…ly_damage` (tgstation#88205)

## About The Pull Request

Looks through calls to `receive_damage` and replaces them with calls to
`apply_damage`

`receive_damage` is a gross to use internal proc that doesn't take into
account physiology (damage modifiers) or even update the mob's sprite
when taking damage

It should be avoided many uses - `apply_damage`, in fact, can take a
bodypart as a target, and is overall a lot easier and more ergonomic to
use.

"So what are valid uses of it?"
- Apply damage itself, and similar direct-damage procs 
- Ensuring you deal an exact amount of damage to a bodypart
- Damaging a limb with no owner

## Changelog

:cl: Melbert
refactor: A ton of things now use the more correct method of applying
damage to you. Which means they will correctly factor in damage
modifiers and are less likely to break your sprite. Some examples
include embedded objects jostling around, chiropractice, and tackling a
wall. Report any oddities, such as extreme damage or bodyparts being
wrongly affected.
fix: Having acid splashed on your face may now disfigure you and make
you bald, as it once did three years ago.
fix: Itchy heretic trauma now better checks if the bodypart is covered
or not before determining if you should itch.
fix: "Repair Puncture" logs no longer mistakenly report you are
"Incising burned flesh"
/:cl:
…et hunger when fed (tgstation#88348)

## About The Pull Request
More small fixes to stuff that I broke while working and reworking on
aquariums.

## Why It's Good For The Game
Safe mode is now safe mode. Fish are not bottomless pits.
…on#88178)

## About The Pull Request
The organs code changes bundled with the organ fishing PR have broken a
few things, while unveiling a bunch of other problems that flew under
the radar. This concern the first category actually. Anyway, I've also
included a unit test to ensure this won't be an inssue in the future.

## Why It's Good For The Game
Fixing some errors.
## About The Pull Request
Closes tgstation#87979
***FSZZHHHH***

## Changelog
:cl:
sound: Modsuits no longer horrifically screech when taken off
/:cl:
## About The Pull Request

Forgot to change this, occurs when you try to push off a floating locker
that's moving in the same direction as you

## Changelog
:cl:
fix: Fixed a zero g pushoff runtime
/:cl:
## About The Pull Request

Fixes the runtime in tgstation#88324

## Changelog
:cl:
fix: Fixed a board GPS imprintion runtime
/:cl:
## About The Pull Request

This fixes an `addtimer called with a callback assigned to a qdeleted
object` runtime with paper planes

Honestly at this point, it'd prolly be a good idea to stick a check to
just automatically use the parent's loc if the alerting atom is being
qdeleted

## Why It's Good For The Game

meow

## Changelog
:cl:
fix: Fixed a runtime error related to the balloon alert from folding a
paper plane.
/:cl:
## About The Pull Request
fixes some runtimes related to trying to remove things from a blackboard
key list that arent tracked to begin with

## Why It's Good For The Game
fixes monkey disarming runtimes

## Changelog
:cl:
/:cl:
## Why It's Good For The Game
The hub text has a limited (255) amount of characters. Time Dilation
being in there makes it so that the "Next Map" is cut off and doesn't
show.

I get that Time Dilation was added to show off the new TG server. But
it's not necessary now and as a player looking at the hub I care way
more about the next map than "time dilation" especially when no other
server displays their lag rate in the hub so we have nothing to compare
it to
## Changelog
:cl:
del: Time Dilation no longer shows in the hub text
/:cl:
## About The Pull Request

![image](https://github.com/user-attachments/assets/e90e5fda-5305-430b-89a8-d92e3b82b599)

Escape menu details no longer hug the top border of the screen.

## Why It's Good For The Game

This has been triggering my OCD for months.

## Changelog
:cl:
qol: Shifted the escape menu stat panel down a bit
/:cl:
## About The Pull Request
repairbots now gain the ability to deconstruct when hacked by an AI. ive
also updated their crafting menu requirements and they now drop their
toolboxes when they're destroyed

## Why It's Good For The Game
closes tgstation#88336

## Changelog
:cl:
fix: repairbots now gain their destructive abilities when hacked by an
AI
fix: repairbot crafting recipes have been updated
/:cl:
Closes tgstation#88283
Closes tgstation#88320

Fixes a harddel caused by the limp status effect not being properly
deleted

Reduces update-body calls in:
- Initialize from 4 to 1
- On z-level change from 2 to 1
- On move with bloody shoes from 1 to 0

Mostly by just passing along the proper argument and removing seemingly
unnecessary update body calls
…et is zero, fixes map_logging CI test (tgstation#87910)

## About The Pull Request

The ruins get added to forced_ruins, quite often after all ruin budget
is exhausted and thus they don't get spawned.

This adjusts the logic to ignore the budget when there's forced_ruins to
be had.

Also apparently fixes map_logging CI test which was broken by the logic,
and makes the stacked_lights test scream at you with the area name for
the sake of easier debugging as it can proc on the ruins now

## Why It's Good For The Game

Adjusts some logic to allow multi-ruins to spawn correctly, and to make
sure our mappers make good space ruins too

## Changelog

:cl:
fix: Ruins will now correctly spawn their tied ruins in
fix: The map_logging test now runs proper
code: The stacked_lights test now screams with area names too.
/:cl:
## About The Pull Request
If you set up a server without `COMMS_KEY` set it will be blank, which
is a valid key
## Why It's Good For The Game
CommKey validation should fail closed not open
## Changelog
## About The Pull Request
Closes tgstation#88338

## Changelog
:cl:
fix: Fixed atrocinator not yeeting you up
/:cl:
## About The Pull Request

Code bad lack of runtimes good

## Changelog
:cl:
fix: Fixed a qdel loop in hypnosis brain trauma
/:cl:
…gstation#88335)

## About The Pull Request

![image](https://github.com/user-attachments/assets/101bd911-c7ae-465a-99a6-f7a91b6c01e5)

A very light remapping, a few cosmetic improvements such as snowy
plating and some space by the door so it isn't flush against rockwalls.
Most notably, the air alarm is actually on the inside now, so it reads
the room inside instead of telling you that the Icemoon is indeed
ice-cold. Also has all-access because would-be-callers might want to
shut it up.
## Why It's Good For The Game
The alarm being on the outside and reading the outside hurt me. Now it's
a tiny bit nicer and cleaner.

Except, you know. Still a frozen hellscape out there.
## Changelog
:cl:
fix: fixed the Icebox Phonebooth air alarm being on the outside, thus
triggering because the planet is, indeed, cold. It is now inside and
all-access so that callers can turn it off when they decide the phone's
more important than their health and safety.
/:cl:
imedial and others added 8 commits December 5, 2024 02:23
…d of round start (tgstation#88316)

## About The Pull Request
Mapvote will pull maps from the config based on the player count at time
of vote creation, rather than round start
## Why It's Good For The Game
if there are 30 connected round start, then 80 connected when the vote
is made, the options available shouldn't be the smallest possible maps
for the next round
## Changelog
:cl:
fix: Map vote now cares about current player count
/:cl:

---------

Co-authored-by: Odairu <[email protected]>
…eliable (tgstation#87799)

## About The Pull Request

Refactors the meteor satalites to use proximity_monitor making them MUCH
more reliable

## Why It's Good For The Game

Previvously it would process and check if meteor is in range every 0.2
seconds via subsystem. This made it very possible that meteor flew past
it before it even got detected, bypassing the shield. For it being
station objective that feels rather silly. Especialy when meteors can
actuely HIT THE SAT AND DESTROY IT

Also slight delay in toggleing on so you cant spam toggle it

## Changelog
:cl:
refactor: Nanotrasen has introducted new upgrades into the aging station
shield statalites, they require a but longer to toggle on however
/:cl:

---------

Co-authored-by: Ghom <[email protected]>
@github-actions github-actions bot added 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один. 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов labels Dec 5, 2024
Copy link

github-actions bot commented Dec 5, 2024

This PR causes following conflicts on translate branch:

code/datums/wounds/bones.dm
++<<<<<<< HEAD
 +		user.visible_message(span_danger("[user] wrenches [victim]'s dislocated [limb.plaintext_zone] around painfully!"), span_danger("You wrench [victim]'s dislocated [limb.plaintext_zone] around painfully!"), ignored_mobs=victim)
 +		to_chat(victim, span_userdanger("[user] wrenches your dislocated [limb.plaintext_zone] around painfully!"))
 +		victim.apply_damage(10, BRUTE, limb, wound_bonus = CANT_WOUND)
++||||||| 2b11c36ee3a
++		user.visible_message(span_danger("[user] wrenches [victim]'s dislocated [limb.plaintext_zone] around painfully!"), span_danger("You wrench [victim]'s dislocated [limb.plaintext_zone] around painfully!"), ignored_mobs=victim)
++		to_chat(victim, span_userdanger("[user] wrenches your dislocated [limb.plaintext_zone] around painfully!"))
++		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
++=======
+ 		user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] болезнено прокручивает вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!"), span_danger("Вы болезненно прокручиваете вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!"), ignored_mobs=victim)
+ 		to_chat(victim, span_userdanger("[capitalize(user.declent_ru(NOMINATIVE))] болезнено прокручивает ваш вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone]!"))
+ 		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +		user.visible_message(span_danger("[user] wrenches [victim]'s dislocated [limb.plaintext_zone] around painfully!"), span_danger("You wrench [victim]'s dislocated [limb.plaintext_zone] around painfully!"), ignored_mobs=victim)
 +		to_chat(victim, span_userdanger("[user] wrenches your dislocated [limb.plaintext_zone] around painfully!"))
 +		victim.apply_damage(10, BRUTE, limb, wound_bonus = CANT_WOUND)
++||||||| 2b11c36ee3a
++		user.visible_message(span_danger("[user] wrenches [victim]'s dislocated [limb.plaintext_zone] around painfully!"), span_danger("You wrench [victim]'s dislocated [limb.plaintext_zone] around painfully!"), ignored_mobs=victim)
++		to_chat(victim, span_userdanger("[user] wrenches your dislocated [limb.plaintext_zone] around painfully!"))
++		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
++=======
+ 		user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] болезнено прокручивает вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!"), span_danger("Вы болезненно прокручиваете вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!"), ignored_mobs=victim)
+ 		to_chat(victim, span_userdanger("[capitalize(user.declent_ru(NOMINATIVE))] болезнено прокручивает ваш вывих в [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone]!"))
+ 		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +		victim.apply_damage(15, BRUTE, limb, wound_bonus = CANT_WOUND)
 +		victim.visible_message(span_danger("[user] finishes resetting [victim.p_their()] [limb.plaintext_zone]!"), span_userdanger("You reset your [limb.plaintext_zone]!"))
++||||||| 2b11c36ee3a
++		limb.receive_damage(brute=15, wound_bonus=CANT_WOUND)
++		victim.visible_message(span_danger("[user] finishes resetting [victim.p_their()] [limb.plaintext_zone]!"), span_userdanger("You reset your [limb.plaintext_zone]!"))
++=======
+ 		limb.receive_damage(brute=15, wound_bonus=CANT_WOUND)
+ 		victim.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] заканчивает лечение вывиха своей [limb.ru_plaintext_zone[GENITIVE] || limb.plaintext_zone]!"), span_userdanger("Вы вправили вывих своей [limb.ru_plaintext_zone[GENITIVE] || limb.plaintext_zone]!"))
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +		victim.apply_damage(10, BRUTE, limb, wound_bonus = CANT_WOUND)
 +		user.visible_message(span_danger("[user] finishes resetting [victim]'s [limb.plaintext_zone]!"), span_nicegreen("You finish resetting [victim]'s [limb.plaintext_zone]!"), ignored_mobs=victim)
 +		to_chat(victim, span_userdanger("[user] resets your [limb.plaintext_zone]!"))
++||||||| 2b11c36ee3a
++		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
++		user.visible_message(span_danger("[user] finishes resetting [victim]'s [limb.plaintext_zone]!"), span_nicegreen("You finish resetting [victim]'s [limb.plaintext_zone]!"), ignored_mobs=victim)
++		to_chat(victim, span_userdanger("[user] resets your [limb.plaintext_zone]!"))
++=======
+ 		limb.receive_damage(brute=10, wound_bonus=CANT_WOUND)
+ 		user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] заканчивает лечение вывиха [limb.ru_plaintext_zone[GENITIVE] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!!"), span_nicegreen("Вы вправили вывих [limb.ru_plaintext_zone[GENITIVE] || limb.plaintext_zone] у [victim.declent_ru(GENITIVE)]!"), ignored_mobs=victim)
+ 		to_chat(victim, span_userdanger("[capitalize(user.declent_ru(NOMINATIVE))] заканивает лечение вывиха вашей [limb.ru_plaintext_zone[GENITIVE] || limb.plaintext_zone]!"))
++>>>>>>> origin/translate
code/datums/wounds/pierce.dm
++<<<<<<< HEAD
 +	var/bleeding_wording = (!limb.can_bleed() ? "holes" : "bleeding")
 +	user.visible_message(span_green("[user] cauterizes some of the [bleeding_wording] on [victim]."), span_green("You cauterize some of the [bleeding_wording] on [victim]."))
 +	victim.apply_damage(2 + severity, BURN, limb, wound_bonus = CANT_WOUND)
++||||||| 2b11c36ee3a
++	var/bleeding_wording = (!limb.can_bleed() ? "holes" : "bleeding")
++	user.visible_message(span_green("[user] cauterizes some of the [bleeding_wording] on [victim]."), span_green("You cauterize some of the [bleeding_wording] on [victim]."))
++	limb.receive_damage(burn = 2 + severity, wound_bonus = CANT_WOUND)
++=======
+ 	var/bleeding_wording = (!limb.can_bleed() ? "дыр" : "кровотечений")
+ 	user.visible_message(span_green("[capitalize(user.declent_ru(NOMINATIVE))] прижигает часть [bleeding_wording] на [victim.declent_ru(PREPOSITIONAL)]."), span_green("Вы прижигаете часть [bleeding_wording] на [victim.declent_ru(PREPOSITIONAL)]."))
+ 	limb.receive_damage(burn = 2 + severity, wound_bonus = CANT_WOUND)
++>>>>>>> origin/translate
code/datums/wounds/slash.dm
++<<<<<<< HEAD
 +	var/bleeding_wording = (!limb.can_bleed() ? "cuts" : "bleeding")
 +	user.visible_message(span_green("[user] cauterizes some of the [bleeding_wording] on [victim]."), span_green("You cauterize some of the [bleeding_wording] on [victim]."))
 +	victim.apply_damage(2 + severity, BURN, limb, wound_bonus = CANT_WOUND)
++||||||| 2b11c36ee3a
++	var/bleeding_wording = (!limb.can_bleed() ? "cuts" : "bleeding")
++	user.visible_message(span_green("[user] cauterizes some of the [bleeding_wording] on [victim]."), span_green("You cauterize some of the [bleeding_wording] on [victim]."))
++	limb.receive_damage(burn = 2 + severity, wound_bonus = CANT_WOUND)
++=======
+ 	var/bleeding_wording = (!limb.can_bleed() ? "порезов" : "кровотечений")
+ 	user.visible_message(span_green("[capitalize(user.declent_ru(NOMINATIVE))] прижигает часть [bleeding_wording] на [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone]."), span_green("Вы прижигаете часть [bleeding_wording] на [limb.ru_plaintext_zone[PREPOSITIONAL] || limb.plaintext_zone]."))
+ 	limb.receive_damage(burn = 2 + severity, wound_bonus = CANT_WOUND)
++>>>>>>> origin/translate

@larentoun larentoun merged commit 18a51f9 into master Dec 5, 2024
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один.
Projects
None yet
Development

Successfully merging this pull request may close these issues.