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 25.11.24 #801

Merged
merged 55 commits into from
Nov 24, 2024
Merged

Merge upstream 25.11.24 #801

merged 55 commits into from
Nov 24, 2024

Conversation

larentoun
Copy link
Collaborator

@larentoun larentoun commented Nov 24, 2024

About The Pull Request

Апстрим

Ben10Omintrix and others added 30 commits November 23, 2024 23:45
…88036)

## About The Pull Request
closes tgstation#88035
## Why It's Good For The Game
my bad
## About The Pull Request

Firing effects now attach themselves to the firer, meaning you don't run
over or back from your own muzzle flash if you fire while running.

## Why It's Good For The Game

Look better, both when moving into and away from the effect.

## Changelog
:cl:
image: Muzzle flash now is attached to your sprite, meaning you won't
run over it if you fire while moving
/:cl:
…ation#88123)

## About The Pull Request

Closes tgstation#88122

## Changelog
:cl:
image: Changing clipboard skins now changes the inhands sprite as well
/:cl:
…gstation#88129)

## About The Pull Request
Closes tgstation#87981
Also respects silent footsteps and lagswitch now

## Changelog
:cl:
fix: Fixed atrocinator module footstep spam when you're moving on a tram
/:cl:
…th their eyeballs?). Eye contact requires you to not have covered eyes. (tgstation#88142)

## About The Pull Request

Blind people making eye contact with their (hopefully) hands is a bit...
weird, to say the least. Eye contact is also prevented by various sorts
of eye coverage, on both sides, instead of only being affected by items
that hide your face (So you no longer make eye contact if you're
blindfolded either)

## Why It's Good For The Game


![image](https://github.com/user-attachments/assets/49d6d697-f908-4320-8196-be3e4f390fa6)

## Changelog
:cl:
fix: Blind people no longer make eye contact with their hands
fix: Blindfolds and other sorts of opaque eye coverage now prevent eye
contact from occuring
/:cl:
## About The Pull Request


![u3plza5](https://github.com/user-attachments/assets/a88d079a-2a29-4be7-ac1c-9d3433fa34ff)

## Changelog
:cl:
fix: Fixed a random zero in nuke ops uplink UI
/:cl:
## About The Pull Request


![image](https://github.com/user-attachments/assets/38259134-46a9-4dcf-a4db-52ca4e3e5587)

![image](https://github.com/user-attachments/assets/2ee7dc6a-e241-481c-9309-4571b3af7939)

Added new mothwings, markings and antennae as seen above.

## Why It's Good For The Game

Everyone loves more moth variety!

## Changelog

:cl:
add: Added new moth customizations available in the character creation
under the name "Dipped"
image: added icons for the moth wings, antennae and markings
:cl:

---------

Co-authored-by: Ghom <[email protected]>
## About The Pull Request

We null-ed fish_source before actually creating the component using that
value. Happens to all of us.

## Changelog
:cl:
fix: Fixed fishing turfs not lazyloading
/:cl:
## About The Pull Request

Currently when the camera eye of an advanced camera console is
initialized, it tries to send COMSIG_HUD_Z_CHANGED while the eye is
still in nullspace. Added an if to make sure the eye has a valid
location.
## About The Pull Request
FUCK

## Changelog
:cl:
fix: Fixed Kobain-style suicides
/:cl:
…tgstation#88149)

## About The Pull Request

I kinda did a small refactor of heretic ascension announcement code,
based on what I did in
BeeStation/BeeStation-Hornet#11925

instead of each heretic ascension individually doing `priority_announce`
in `on_finished_recipe`, there's just `announcement_text` and
`announcement_sound` vars now, and a `announce_ascension` proc is called
in the shared `on_finished_recipe` of all final rituals.

The only reason the `announce_ascension` proc is needed is because lock
path uses a different format from all the other announcements, so the
final lock ritual needs to override the announcement so it can stay the
same.

Also made all heretic ascensions which apply traits use the type as the
trait source - before, they were inconsistently either using the type,
name, `REF(src)`, or `MAGIC_TRAIT` as the trait source.

also ash ascension did not need a `if(length(traits_to_apply))` check
before adding traits, bc it's adding traits from a *static, populated
list*.

ascension doesn't feel like a real word anymore with how much I've typed
and read it in the past 20 mins or so lol

## Why It's Good For The Game

cleaner code = good

## Changelog
:cl:
refactor: Cleaned up code relating to heretic ascension announcements
and traits.
/:cl:
…8139)

## About The Pull Request

added some missing cable to solars and 1 smes, and science is connected
to distro from 2 directions now so it doesnt immediately stop receiving
air if a pipe breaks

## Why It's Good For The Game

fixes tgstation#88138
most departments have more than 1 connection to distro ( on this map )

## Changelog
:cl:
fix: fixed some wiring on wawastation, added an additional
distro/scrubbers connection to sciences network
/:cl:
SmArtKar and others added 23 commits November 24, 2024 20:51
… on a looping z level (tgstation#88130)

## About The Pull Request

Closes tgstation#88004
How has this not been caught before? They have a moveloop timeout (sane)
but don't delete themselves once it expires (insane)

## Changelog
:cl:
fix: Fixed meteors freezing in place if they continiously miss the
station on a looping z level
/:cl:
…f the client logs out before they've finished building themselves (tgstation#88127)

## About The Pull Request

Super niche, unnoticeable in-game, found when runtime diving. Don't
leave callbacks to qdeleted datums and clients in queue please.

## Changelog
:cl:
fix: Fixed a runtime caused by logging out while your runechat message
was appearing.
/:cl:
… modifier (tgstation#88141)

## About The Pull Request

damage done by thrown objects to /obj is multiplied by the demolition
modifier

## Why It's Good For The Game

i think its supposed to respect the demolition mod i mean uhh that seems
like an oversight??

## Changelog
:cl:
fix: damage done by thrown objects to objects respects their demolition
modifier
/:cl:
## About The Pull Request
Weather effects were ignoring certain areas like space. This was due to
checking the area's `z` position. Some areas like `area/space` are in
many different z-levels and the `z` position defaults to Centcomm `z=1`.

The solution is to loop through `area.turfs_by_zlevel` and check if it
has any turfs in that z-level.

CC @LemonInTheDark the mutable overlay for weather effects is not
applying to space.


https://github.com/tgstation/tgstation/blob/7e27663517731fe8f3d955477b1a97ace5a6ff83/code/datums/weather/weather.dm#L253-L271

I'm assuming this is due to plane master shengians. I could just add the
effects like the radiation nebula:


https://github.com/tgstation/tgstation/blob/7e27663517731fe8f3d955477b1a97ace5a6ff83/code/datums/station_traits/negative_traits.dm#L486-L493

But this doesn't appear reversible. I'm open to suggestions.

## Why It's Good For The Game
Rad storms now affect space outside the station. Other weather effects
should also be consistent and not be ignored by certain misc. areas
types.

## Changelog
:cl:
fix: Fix weather effects ignoring certain areas like space. 
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>
…88146)

## About The Pull Request

Tested on a private server with edited odds that the pulse rifle doesn't
spawn when won and only the message pops.
After code edit it spawned accordingly but the low odds remain.

## Why It's Good For The Game

Beating one in a million odds and not getting a pulse rifle is
disappointing, it should spawn now.
## Changelog

:cl:
fix: fixed the pulse rifle not spawning when won
code: added get_turf to the pulserifle  when the odds are beat.
:cl:
## About The Pull Request

Adds the crafting complexity to the slices of baklava, so it doesn't go
from very good to nice after you slice it.
Was asked to put the fix to upstream.

## Why It's Good For The Game

If I have one more food suddenly degrade in quality after slicing it
into multiple portions I am going to explode the fucking kitchen,
especially after having to bother Hydroponics to mutate a plant
specifically for it

## Proof Of Testing


![image](https://github.com/user-attachments/assets/b4cd692e-10f8-4701-a772-45aad97e8c43)

</details>

## Changelog

:cl:
fix: Makes a sliced baklava pie keep its complexity after slicing
/:cl:
## About The Pull Request
Deletes _internal_organ.dm and moves all override procs from it into the
main organ file, since its unused now. Fixes wrong qdel check in
identity code.

## Changelog
:cl:
code: Cleaned up organ code
/:cl:
## About The Pull Request

You do realize in most cases the player must be ***wearing*** the damn
thing to use it, right? Also I am truely clueless as to why we were
registering to defib.loc since check_range checks for turfs anyways.

## Changelog
:cl:
fix: Fixed some issues with defib paddle retraction.
/:cl:
…of defaulting to 1 (tgstation#88154)

## About The Pull Request

Currently grinders just increase the amount of items by 1 when
displaying them, which works fine for everything except stacks. This PR
makes grinders take into account the amount of sheets in a stack so they
properly display how many materials you put into them.

## Why It's Good For The Game
You'd expect 50 sheets of silver you put in a grinder to display as 50
sheets instead of 1.

## Changelog
:cl:
qol: Reagent grinders display number of material sheets they hold
instead of defaulting to 1
/:cl:
@github-actions github-actions bot added TGUI Добавление или изменение существующего интерфейса на базе фреймворка TGUI 🔉 Звук Нам скорее всего нравится как это звучит. 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один. 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов labels Nov 24, 2024
Copy link

This PR causes following conflicts on translate branch:

code/modules/antagonists/changeling/powers/absorb.dm
++<<<<<<< HEAD
 +				absorbing_loop = new(owner, start_immediately = TRUE)
 +				owner.visible_message(span_danger("[owner] stabs [target] with the proboscis!"), span_notice("We stab [target] with the proboscis."))
 +				to_chat(target, span_userdanger("You feel a sharp stabbing pain!"))
++||||||| d9ce2e7c190
++				owner.visible_message(span_danger("[owner] stabs [target] with the proboscis!"), span_notice("We stab [target] with the proboscis."))
++				to_chat(target, span_userdanger("You feel a sharp stabbing pain!"))
++=======
+ 				owner.visible_message(span_danger("[capitalize(owner.declent_ru(NOMINATIVE))] пронзает [target.declent_ru(ACCUSATIVE)] жалом-хоботком!"), span_notice("Мы пронзаем [target.declent_ru(ACCUSATIVE)] жалом-хоботком."))
+ 				to_chat(target, span_userdanger("Вы чувствуете острую колющую боль!"))
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +			owner.balloon_alert(owner, "interrupted!")
 +			qdel(absorbing_loop)
++||||||| d9ce2e7c190
++			owner.balloon_alert(owner, "interrupted!")
++=======
+ 			owner.balloon_alert(owner, "прервано!")
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/ash_lore.dm
++<<<<<<< HEAD
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] Fear the blaze, for the Ashlord, [user.real_name] has ascended! The flames shall consume all! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_ash.ogg',
++		color_override = "pink",
++	)
++
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Бойтесь пламени, ибо Пепельный лорд, [user.real_name], вознесся! Пламя поглотит всех! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_ash.ogg',
+ 		color_override = "pink",
+ 	)
+ 
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/blade_lore.dm
++<<<<<<< HEAD
 +	ADD_TRAIT(user, TRAIT_NEVER_WOUNDED, type)
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] Master of blades, the Torn Champion's disciple, [user.real_name] has ascended! Their steel is that which will cut reality in a maelstom of silver! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_blade.ogg',
++		color_override = "pink",
++	)
++	ADD_TRAIT(user, TRAIT_NEVER_WOUNDED, name)
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Мастер клинков, ученик разорванного чемпиона, [user.real_name] вознесся! Их сталь - это сталь, которая разрежет реальность в вихре серебра! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_blade.ogg',
+ 		color_override = "pink",
+ 	)
+ 	ADD_TRAIT(user, TRAIT_NEVER_WOUNDED, name)
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/cosmic_lore.dm
++<<<<<<< HEAD
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] A Star Gazer has arrived into the station, [user.real_name] has ascended! This station is the domain of the Cosmos! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_cosmic.ogg',
++		color_override = "pink",
++	)
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Звездочет прибыл на станцию, [user.real_name] вознесся! Эта станция - владения Космоса! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_cosmic.ogg',
+ 		color_override = "pink",
+ 	)
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/flesh_lore.dm
++<<<<<<< HEAD
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] Ever coiling vortex. Reality unfolded. ARMS OUTREACHED, THE LORD OF THE NIGHT, [user.real_name] has ascended! Fear the ever twisting hand! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_flesh.ogg',
++		color_override = "pink",
++	)
++
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Вечно закручивающийся вихрь. Реальность развернулась. С ВЫТЯНУТЫМИ РУКАМИ, ВЛАСТЕЛИН НОЧИ, [user.real_name] вознесся! Бойтесь вечно изгибающейся руки! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_flesh.ogg',
+ 		color_override = "pink",
+ 	)
+ 
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/lock_lore.dm
++<<<<<<< HEAD
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "Delta-class dimensional anomaly detec[generate_heretic_text()] Reality rended, torn. Gates open, doors open, [user.real_name] has ascended! Fear the tide! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_knock.ogg',
++		color_override = "pink",
++	)
++
++=======
+ 	priority_announce(
+ 		text = "Пространственная аномалия Дельта-класса обнар[generate_heretic_text()] Реальность разрушена, разорвана. Врата открыты, двери открыты, [user.real_name] вознесся! Бойтесь нашествия! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_knock.ogg',
+ 		color_override = "pink",
+ 	)
+ 
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/moon_lore.dm
++<<<<<<< HEAD
 +	ADD_TRAIT(user, TRAIT_MADNESS_IMMUNE, type)
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] Laugh, for the ringleader [user.real_name] has ascended! \
++				The truth shall finally devour the lie! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_moon.ogg',
++		color_override = "pink",
++	)
++
++	ADD_TRAIT(user, TRAIT_MADNESS_IMMUNE, REF(src))
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Смейтесь, ибо Шпрехшталмейстер [user.real_name] вознесся! \
+ 				Правда наконец поглотит ложь! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_moon.ogg',
+ 		color_override = "pink",
+ 	)
+ 
+ 	ADD_TRAIT(user, TRAIT_MADNESS_IMMUNE, REF(src))
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/rust_lore.dm
++<<<<<<< HEAD
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] Fear the decay, for the Rustbringer, [user.real_name] has ascended! None shall escape the corrosion! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_rust.ogg',
++		color_override = "pink",
++	)
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Бойтесь разложения, ведь Повелитель ржавчины, [user.real_name] вознесся! Никто не избежит коррозии! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_rust.ogg',
+ 		color_override = "pink",
+ 	)
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/void_lore.dm
++<<<<<<< HEAD
 +	user.add_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_NEGATES_GRAVITY, TRAIT_MOVE_FLYING, TRAIT_FREE_HYPERSPACE_MOVEMENT), type)
++||||||| d9ce2e7c190
++	priority_announce(
++		text = "[generate_heretic_text()] The nobleman of void [user.real_name] has arrived, stepping along the Waltz that ends worlds! [generate_heretic_text()]",
++		title = "[generate_heretic_text()]",
++		sound = 'sound/music/antag/heretic/ascend_void.ogg',
++		color_override = "pink",
++	)
++	user.add_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_NEGATES_GRAVITY, TRAIT_MOVE_FLYING, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAGIC_TRAIT)
++=======
+ 	priority_announce(
+ 		text = "[generate_heretic_text()] Дворянин пустоты [user.real_name] прибыл, танцуя Вальс, уничтожающий миры! [generate_heretic_text()]",
+ 		title = "[generate_heretic_text()]",
+ 		sound = 'sound/music/antag/heretic/ascend_void.ogg',
+ 		color_override = "pink",
+ 	)
+ 	user.add_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_NEGATES_GRAVITY, TRAIT_MOVE_FLYING, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAGIC_TRAIT)
++>>>>>>> origin/translate
code/modules/mob/mob.dm
++<<<<<<< HEAD
 +		var/obj/item/clothing/eye_cover = examined_mob.is_eyes_covered()
 +		if (!eye_cover || (!eye_cover.tint && !eye_cover.flash_protect))
 +			var/msg = span_smallnotice("You make eye contact with [examined_mob].")
 +			addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, msg), 0.3 SECONDS) // so the examine signal has time to fire and this will print after
- 
++||||||| d9ce2e7c190
++		var/msg = span_smallnotice("You make eye contact with [examined_mob].")
++		addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, msg), 0.3 SECONDS) // so the examine signal has time to fire and this will print after
++=======
+ 		var/msg = span_smallnotice("Вы смотрите в глаза [examined_mob.declent_ru(GENITIVE)].")
+ 		addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, msg), 0.3 SECONDS) // so the examine signal has time to fire and this will print after
 -
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +	if(!imagined_eye_contact && is_face_visible() && !examined_mob.is_blind() && SEND_SIGNAL(examined_mob, COMSIG_MOB_EYECONTACT, src, FALSE) != COMSIG_BLOCK_EYECONTACT)
 +		var/obj/item/clothing/eye_cover = is_eyes_covered()
 +		if (!eye_cover || (!eye_cover.tint && !eye_cover.flash_protect))
 +			var/msg = span_smallnotice("[src] makes eye contact with you.")
 +			addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), examined_mob, msg), 0.3 SECONDS)
++||||||| d9ce2e7c190
++	if(!imagined_eye_contact && is_face_visible() && SEND_SIGNAL(examined_mob, COMSIG_MOB_EYECONTACT, src, FALSE) != COMSIG_BLOCK_EYECONTACT)
++		var/msg = span_smallnotice("[src] makes eye contact with you.")
++		addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), examined_mob, msg), 0.3 SECONDS)
++=======
+ 	if(!imagined_eye_contact && is_face_visible() && SEND_SIGNAL(examined_mob, COMSIG_MOB_EYECONTACT, src, FALSE) != COMSIG_BLOCK_EYECONTACT)
+ 		var/msg = span_smallnotice("[capitalize(declent_ru(NOMINATIVE))] смотрит вам в глаза.")
+ 		addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), examined_mob, msg), 0.3 SECONDS)
++>>>>>>> origin/translate
code/modules/reagents/chemistry/machinery/reagentgrinder.dm
++<<<<<<< HEAD
 +		. += span_notice("Currently holding:")
++||||||| d9ce2e7c190
++		. += span_notice("Currently holding.")
++=======
+ 		. += span_notice("Сейчас содержит.")
++>>>>>>> origin/translate

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

Successfully merging this pull request may close these issues.