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 [29.07.2024] #466

Merged
merged 147 commits into from
Jul 30, 2024
Merged

Merge upstream [29.07.2024] #466

merged 147 commits into from
Jul 30, 2024

Conversation

Gaxeer
Copy link
Collaborator

@Gaxeer Gaxeer commented Jul 29, 2024

About The Pull Request

Merge upstream [29.07.2024]

actions-user and others added 30 commits July 26, 2024 00:22
This pull request updates the TGS DMAPI to the latest version. Please
note any changes that may be breaking or unimplemented in your codebase
by checking what changes are in the definitions file:
code/__DEFINES/tgs.dm before merging.

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

tgstation#85091 was great in that it
no longer said "You don't need to breathe!" before the NOBREATH actually
kicked in.
It now meant though that that it would message "You don't need to
breathe!" Every time that the virus hit on_stage_change and it was on
stage 4 or 5
Apparently on_stage_change can and will still be trigger when the virus
is at max stage because now the self resp virus was spamming "You don't
need to breathe!" every time that the virus tried to change a stage -
which was a lot more often than the previous (albeit erroneous) message
that was looking for a 5% probability before say its "You don't need to
breathe!" message.
<details>
<summary>For reference; I made the message display the stage during
testing, to confirm it was hitting this while at stage 5, and
yeah.</summary>


![image](https://github.com/user-attachments/assets/17dc6950-2e58-466f-812c-cfb99cc6ebfe)

</details>
This PR changes it slightly so that the "You don't need to breathe!"
only comes up when it reaches stage 4, which in all my tests it passed
on its way to stay 5.
Though for the people that miss that, it also occasionally says "You
realize you haven't been breathing" upon activate() though this is with
the probability check
In my tests, though, the prob of 5 was still a bit high (maybe because
we sit at stage 5 with a healing virus longer than we sit at stage 1-3
which is when the message was triggering before that fix PR) so I
changed the probability to 3

Also, when it reaches stage 3, and it already hit its peak so the virus
is on its way to curing, it will send the message "You need to breathe
again". This might be helpful when your healing virus starts to
self-heal because you don't take care of yourself. Originally I had it
on stage<4 and stage_peaked that it would give that message but testing
it out, it would bounce between 1 and 2 a lot during self curing and
that got spammy as well. When I cured using reagents, on low resistance
versions of self resp viruses, it did not trigger this message, though
it did when I used low nutrition and spaceacillin to self cure.
## Why It's Good For The Game

I'd almost rather not get a healing virus than see all this spam. 
Please make it stop. 


![image](https://github.com/user-attachments/assets/92206be7-fa75-402c-826f-f014565f8591)

Fixes: tgstation#85237  
## Changelog
:cl: Thlumyn
fix: self-resp viruses don't spam messages as often
/:cl:
…gstation#85232)

## About The Pull Request

As said on the issue this is fixing:

"Looking at it, this seems like it might be an order of operations
issue.
Normally, the borg apparatuses run the `melee_attack_chain(...)` as the
stored object on their `pre_attack(...)`...
However, this is *after* the item interaction type procs on the table,
and thus after it attempts to place the item."

"Borg items I believe are not abstract, which would return `NONE` and
allow it, rather they're just blocked from being placed, which returns
`ITEM_INTERACT_BLOCKING`.
As such, it cuts it short before the `pre_attack(...)` is even ran."

This instead makes it use the `get_proxy_attacker_for(...)` proc, which
cuts earlier into the `melee_attack_chain(...)`, to instead run it as
the stored item when available.
As a side-effect, we can remove the right-clicking to splash bit,
because it should now be possible to use the container's default combat
mode splash. That code was also just, non-functional now, because we cut
into the chain before it can run.
## Why It's Good For The Game

Fixes tgstation#85181.
## Changelog
:cl:
fix: Fixes borgs not being able to place apparatus-held items on tables.
As a side-effect, they can now combat mode right click splash containers
as normal instead of having their own right-click floor splash.
/:cl:
## About The Pull Request

Fixes a bug in the announcement proc that is supposed to generate a
disease name for the announcement.

## Changelog

:cl: LT3
fix: Fixed disease outbreak announcement sometimes missing the disease
name
/:cl:
## About The Pull Request

Adjusts the tram's ignored smashthroughs to work with the new floor
plane numbering. Fixes
tgstation#85171

## Why It's Good For The Game

Fixes tram smashing through stuff it shouldn't.

## Changelog

:cl: LT3
fix: Tram will no longer eat its own rails as it travels
/:cl:
## About The Pull Request

Fixes false alarm supermatter surges from having an invalid class
announced.

## Changelog

:cl: LT3
fix: False supermatter surge announcements are now identical to real
ones
/:cl:
…on#85219)

## About The Pull Request

wawastation engineering water tanks are now highcap

## Why It's Good For The Game

closes tgstation#85214

## Changelog
:cl:
fix: wawastation engineering water tanks are now highcap
/:cl:
)

## About The Pull Request

It was trying to put items into a trash bag that doesn't have
`CAN_BE_HIT` flag with an `attackby`.

It now works for both the vacuum insert and the manual one.

Fixes tgstation#84653 

## Why It's Good For The Game

Bug fix.

## Changelog

:cl:
fix: Janicart inserts items into the attached trash bag again (manual
and vacuumed)
/:cl:
…gstation#85216)

## About The Pull Request
It **turns** out that `TurnTo` doesn't re**turn** `Turn`, but the angle
(number, not matrix) it's **turn**ed to (used nowhere in the code), and
`transform` is built-in variable that default to an identity matrix if
set to an invalid value (anything but another matrix)

The only thing keeping the projectiles facing the right direction when
fired up to one of the aforementioned situations was another `Turn` call
(not `turnTo`) called on `projectile/fire`, which I apparently didn't
fully grasp the redundancy of (if there were no such issue to begin
with) at the time.

This PR also cleans up and rearranges the related code a little,
including a fallback that was never reached because the projectile
`Angle` variable is never null (unless something theorically fucky wucky
happens with projectile code but that'd be an even bigger issue).

## Why It's Good For The Game
Fixing an old issue caused by the author of this PR in tgstation#80599, me.

## Changelog

:cl:
fix: Fixes projectiles facing north if ricocheting, deflected or homing
/:cl:
## About The Pull Request
Adds in lights that were not placed in tgstation#84802, oops!


![image](https://github.com/user-attachments/assets/0ce55ac2-c63c-432f-a54a-6d53814a53f9)
## Why It's Good For The Game
Being able to see is nice!
## Changelog
:cl:
fix: Tram's Tool Storage now has proper lighting
/:cl:
## About The Pull Request

Removes an errant delam counter next to the bridge, prepares for
wallening by replacing the other signs with directional variants.

## Why It's Good For The Game

None of this


![image](https://github.com/user-attachments/assets/2f1247fe-8a29-42ef-91e9-ca31892521af)

## Changelog

:cl: LT3
fix: Fixed delam counter stuck in window near Ice Box bridge
/:cl:
…ion#85212)

## About The Pull Request

### The issue

Firelocks currently do not respect their fire alarm's thermal sensors
being disabled, _(the multitool/silicon right-click on a fire alarm
feature)_, after the fire alarms are triggered.

### Why this happens
**Part 1**, of why this happens is that toggling thermal sensors on a
fire alarm doesn't actually reset firelocks in the area.

**Part 2**, of this is even if toggling thermal sensing on fire alarms
called `firealarm/proc/reset()` _(this is the proc called when you
right-click a fire alarm, also why resetting the fire alarm doesn't act
as a workaround)_, that proc doesn't actual call `firedoor/proc/reset()
` on all the firelocks in the area and instead calls
`firedoor/proc/crack_open()`, which temporarily disables the firelock;
however, the callback that re-enables the firelock does not check to see
if any areas the firelock is attached to has temperature sensing
disabled, resulting in temp sensing being disabling never doing anything
after a firelock is triggered.

### What this PR does

- Adds check in the firelock callback to see if any areas the firelock
is attached to care about temperature sensing.
- Makes toggling thermal sensors on fire alarms update attached
firelocks.
## Why It's Good For The Game

Fixes a broken feature. Also firelocks suck and being able to disable
them is nice.

## Changelog

:cl:
fix: Firelocks will once again respect fire alarm's thermal sensors
being disabled.
/:cl:

---------

Co-authored-by: afonamos <[email protected]>
…tgstation#85146)

## About The Pull Request
The fish bounty for specific kind of fish has been removed for being a
bit janky and relying on RNG way too much. The other two remain, and
have had their payout buffed a little to compensate.

To make it make it better, a fish export has been added. Each and every
fish can be sold to cargo, with a selling price determined by their size
and weight, meaning bigger fish sell for more. A fish of default size
and weight generally sells for around 130, rarely goes above 600 for
most fish, yet a few can sell for 1k, and it can **theorically** go all
the way up to ~11k if you were to reach max size and weight for the
biggest fish in the game.

This PR also reduces the weight of the jumpercable a bit for balance
reasons. It's a big, self-reproducing fish that requires no care
whatsoever so it's quite the cash cow, only offset by its rarity (EMAG
or blackmarket RNG). Conversely, I made the bone fish evolution a bit
easier (still a useless-ish braggard niche tbh).

## Why It's Good For The Game
The aforementioned fish bounty was janky, complex, relied on RNG too
much and the info on it didn't really fit in the bounty console. It's
better gone tbh. My fault for adding it in the first place.

As for the fish export, I want something simple, that doesn't require
the fish to be alive rather than dead, with a low payout per fish on
average, to complete the addition of "bomb fishing" from the other PR,
ergo dropping maxcaps in the ocean for shit and giggles, but that can
also have the potential to generate a decent income by cultivating big
fish.

## Changelog

:cl:
del: Removed a janky fish bounty
add: introduced exporting fish through cargo.
balance: reduced the average weight of the jumpercable. Conversely,
eased up the requirements for the bone fish evolution.
/:cl:
…s (and lizardpeople) will no longer random spawn without tails (tgstation#85112)

## About The Pull Request

- Deletes monkey tail DNA block
- This is not something DNA blocks should be used for. If your only
options are "exists" or "doesn't exist", it doesn't need a DNA block,
you should just remove the tail!

- Minor sprite accessory cleanup
- Replaces a lot of blank SAs with `add_blank` usage. Tested in game and
it works.
- No reason to copy-paste blanks when we have a designated function for
it.

- Randomizing features can no longer select locked features
   - Bugfix, though it doesn't affect us at the moment.

- Monkeys (and lizard people) will no longer random into being tailless
- Felinids can still random into tailless (though that function is
broken ATM)

## Why It's Good For The Game

For the tailless change: 

It's a bit weird for these species to spawn without tails. They're kinda
a huge part of their identity.
I left in the tailless Sprite Accessory, however, so you can still
select them in the prefs menu.

## Changelog

:cl: Melbert
qol: All randomly spawned monkeys (and lizardpeople) will spawn with
tails. You can still select to be tailless.
code: Cleaned up some code relating to species features (like tails,
markings, etc). Report any oddities
/:cl:
…tals.dm (tgstation#85130)

## About The Pull Request

Moves nitrium crystals to crystallizer_items.dm and deletes the now
empty nitrium_crystals.dm file.
## Why It's Good For The Game

Nitrium crystals can only be acquired through the crystallizer and they
are undeserving of their own file.
## Changelog

Not player facing

Co-authored-by: afonamos <[email protected]>
…tion#85109)

## About The Pull Request

See title.
Recently we noticed a bug in bluespace cookie code and in the course of
investigating it, had trouble figuring out what it was even supposed to
do. I rewrote the code so it should be more intuitive to read.

Someone else has a PR open fixing the bug.

## Why this is good for the game

I also added an extremely small balance change that you fall over if the
cookie fails to teleport you.
This is an improvement because it gives feedback for the item failing,
and also slaps you on the wrist for trying to teleport inside centcomm
or wherever you are.

## Changelog

:cl:
balance: If a bluespace cookie fails to teleport you then you will trip
over.
/:cl:
comfyorange and others added 15 commits July 30, 2024 03:35
…cuit floors not reducing power load (tgstation#85343)

## About The Pull Request

Closes tgstation#84923

## Changelog
:cl:
fix: Fixed mapload circuit floors not drawing power and deconstructing
circuit floors not reducing power load
/:cl:
…gbp] (tgstation#85344)

## About The Pull Request

Some mining mobs didn't have signal registrations to respond to
ashwalkers breaking the peace. This fixes that by giving all mining mobs
a signal listener to being attacked if their AI handler doesn't give
them one already.
## Why It's Good For The Game

Fixes an exploit where people would drag legion to the ashwalker nest to
kill them for free egg spawning because legion don't have a signal
listener for being attacked.
Future proofs any other mining mobs that might be missing this signal
through AI.
## Changelog
:cl: Bisar
fix: All mining mobs now properly listen to the signals sent by
attackers and will respond appropriately.
/:cl:
## About The Pull Request
Ok, I've had a bit of false memories about fishing being easy. It's
actually tough. It also has some issues that I didn't completely
understand until very recently.

First of all, I thought anything that count as a bait would be good
enough for fishing, but it turns attaching a raw meatball doesn't remove
dud chances from fishing spots. Having finally played with the feature
enough, I came to realize it's quite dumb to have something like that IF
you have a bait regardless of quality. We have other ways to handle bait
related stuff.

Second, I've lowered the time to raise a lobstrosity slightly. Waiting
20 minutes to get an adult one is a tad much if you add in all the prep
needed for it. Conversely, I've also increased their feeding frequency.
I think they should eat a bit more than once every 15 minutes to
survive. 10 should be ok.

I've also halved the reproduction timeout for the sludgefish. When I
first added it. I didn't take in consideration I'd have later have made
it so newly spawned fish would be on cooldown for double the standard
duration.

The abstract fishing rod that "profound fisher" mobs use now comes with
the same omni-bait advanced fishing rods use, so that they can catch all
kind of fish with less bad RNG.

Buffed the fishing skill a bit.

Aquariums that unanchored (except pre-filled ones) and do not
auto-connect to plumbing; ferer issues if you were to build one near the
toilets. They alo have the 'enable breeding' enabled by default.

I've also re-increased the deceleration of the minigame bait. Making the
controls less slippery.


## Why It's Good For The Game
I've been suffering from some Mandela effect about fishing. It's
definitely more challenging when the server isn't shitting the bed.

## Changelog

:cl:
qol: Aquariums start unanchored and don't autoconnect to plumbing. Their
reproduction prevention is also disabled by default.
balance: Made it a tad easier to control the bait during the minigame.
Buffed the fishing skill. No fishing duds at all when using ANY bait.
balance: Chasm Chrabs take less time to grow into Lobstrosities but need
food a bit more frequently.
balance: "Profound fisher" mobs will have less RNG-dependant time
fishing.
fix: You can now ACTUALLY interact with other things while fishing if
the fishing rod isn't in your active hand.
/:cl:
…oints. (tgstation#85341)

## About The Pull Request
I've a few gripes with start points and the gateway delay. First of all,
there's no way to discriminate peaceful away locations that do not need
a with a 30 minutes timegate from the rest. Places like the beach and
the museum hardly have anything OP that could tip the scales.

Second, none of the awaystart landmarks have identifiers of their own,
which means all awaystart landmarks from all away missions are linked
under the same destination point datum. This is hardly an issue in the
current state where only one map is ever loaded and all maps have only
one way in that directs you to one of several locations at least until
the gateways are linked, but it's nevertheless something that I have to
take care of, since the config requires it.

## Why It's Good For The Game
See above.

## Changelog

:cl:
config: Added a config for specific gateway delays so locations like the
beach and the museum don't have to take 30 minutes to become available
like the rest.
/:cl:
…e block, smart SMGs (tgstation#85211)

## About The Pull Request


![image](https://github.com/user-attachments/assets/c399db0d-c8b8-4f0e-b20d-e81e153a4fac)

![smart
bullet](https://github.com/user-attachments/assets/02af6174-f967-487c-b5ee-90c73300d179)

Adds the Abielle Smart-SMG to replace the pp-95 entirely.

The Abielle performs nearly identically to the pp-95 in nearly all
aspects, doing 0.5 less damage because it's not a projectile modifier on
9mm anymore.

What the Abielle does do majorly differently, is give it's bullets a
slight homing ability VS whatever you clicked on. This keeps the weapon
equally useless to it's predecessor at spraying blindly down hallways,
while rewarding careful aim with bullets that slightly track the target.

## Why It's Good For The Game

The surplus smg sucks, and I don't mean performance-wise (although it
certainly does, that's the idea). The surplus smg sucks because
typically you would be better suited using it as a melee weapon due to
the inaccuracy and low damage. Making the cheapo "I forgot to buy a
weapon" gun practically useless is super punishing especially for newer
ops who might not remember to buy a weapon first. The smartgun makes the
surplus smg still pretty shit compared to the other nukeops guns that
can down a man nearly instantly, but means that reinforcements or broke
ass nukeops can still be relatively effective so long as they can click
on a spaceman across the screen.

## Changelog
:cl:
balance: The nukeops surplus smg, the pp-95, has been reworked into the
Abielle Smart-SMG. It performs nearly identically to the pp-95, however
it's projectiles get a slight homing ability towards whatever you click
on.
sound: New firing sounds for the surplus smg, credit to the m41 sound
effects from tgmc
image: New sprites for the surplus smg, made by me
/:cl:
## About The Pull Request
Before the typescript update, the slider element could be disabled
without issues, but as the prop was missing, the compiler rejected to
accept disabling sliders any longer. This ensures that sliders once
again can be disabled as the prop will be accepted and properly
forwarded.

## Why It's Good For The Game
…5257)

## About The Pull Request
The PR came out a little bigger than I had planned, but creating
separate ones for a couple of little things seemed unnecessary to me.

Let me start with the most important thing: Stat Panel now scales like
TGchat and also looks closer to TGUI!
By default, the Stat Panel font size is tied to the chat font size, but
this can be changed in a couple of clicks...

The rest of the changes are not as big:
1. Stat Panel styles are now more organised
2. The way themes are applied to Byond Skin has been refactored, if
someone decides to make a new theme (maybe me), it won't be necessary to
copy all the elements
3. NumberInput into the general chat settings tab, was changed to slider
4. Reoder tab buttons changed, they are more compact now
5. With the light theme, chat tabs now have a background when
hovering/active tabbing
<details>
<summary>How it look's like</summary>

| New reorder tab buttons | Light Chat tabs | 
| - | - | 
|
![image](https://github.com/user-attachments/assets/39194331-b69f-473f-ba82-497a86bbe062)
|
![image](https://github.com/user-attachments/assets/6fe22bac-2802-4e03-8095-0633b06a5b03)
|

</details>
<details>
<summary>General Preview</summary>


https://github.com/user-attachments/assets/7647d584-c2fd-41b2-b2ee-c7ee61569d1f

</details>

## Why It's Good For The Game
More accessibility for owners of 2/4k monitors
Better appearance
NumberInput is behaving extremely strangely in chat

## Changelog

:cl:
add: Stat Panel now scales like a chat, depends on the font size.
Defaults from the chat font size, but you can separate it.
refactor: Refactored Stat Panel styles and Byond skin theme applying.
Stat Panel now looks more like a TGUI
/:cl:
@github-actions github-actions bot added :neckbeard: Документация Некоторые просто любят писать тонну текста, которую никто не будет читать. TGUI Добавление или изменение существующего интерфейса на базе фреймворка TGUI 🔉 Звук Вау... этот звук такой... хуёвый? 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один. 🎸 Инструменты Мы выдаем себя за реальное сообщество разработчиков. 💾 Изменение конфига Ф-ф-фуриор...? 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов labels Jul 29, 2024
Copy link

This pr causes following conflicts on translate branch:

  • code/datums/components/pet_commands/pet_commands_basic.dm
++<<<<<<< HEAD
 +	speech_commands = list("heel", "follow")
 +	callout_type = /datum/callout_option/move
++=======
+ 	speech_commands = list("heel", "follow", "за мной", "след", "охран", "к ноге", "ко мне")
++>>>>>>> origin/translate
++<<<<<<< HEAD
 +	callout_type = /datum/callout_option/attack
 +	speech_commands = list("attack", "sic", "kill")
++=======
+ 	speech_commands = list("attack", "sic", "kill", "апорт", "фас", "бить", "атак")
++>>>>>>> origin/translate
  • code/modules/cargo/bounties/assistant.dm
++<<<<<<< HEAD
 +	name = "Fish"
 +	description = "We need fish to populate our aquariums with. Fishes that are dead or bought from cargo will only be paid half as much."
 +	reward = CARGO_CRATE_VALUE * 9.5
++=======
+ 	name = "Рыба"
+ 	description = "Нам нужна рыба для заполнения наших аквариумов. Мёртвые или купленные из отдела поставок рыбы будут оплачены лишь наполовину."
+ 	reward = CARGO_CRATE_VALUE * 9
++>>>>>>> origin/translate
++<<<<<<< HEAD
++=======
+ 
+ ///A subtype of the fish bounty that requires specific fish types. The higher their rarity, the better the pay.
+ /datum/bounty/item/assistant/fish/specific
+ 	description = "В нашей престижной рыбной коллекции на данный момент не хватает нескольких специфичных видов. Мёртвые или купленные в отделе поставок рыбы будут оплачены лишь наполовину."
+ 	reward = CARGO_CRATE_VALUE * 16
+ 	required_count = 3
+ 	wanted_types = list(/obj/item/storage/fish_case = TRUE)
+ 
+ /datum/bounty/item/assistant/fish/specific/New()
+ 	var/static/list/choosable_fishes
+ 	if(isnull(choosable_fishes))
+ 		choosable_fishes = list()
+ 		for(var/obj/item/fish/prototype as anything in subtypesof(/obj/item/fish))
+ 			if(initial(prototype.experisci_scannable) && initial(prototype.show_in_catalog))
+ 				choosable_fishes += prototype
+ 
+ 	var/list/fishes_copylist = choosable_fishes.Copy()
+ 	///Used to calculate the extra reward
+ 	var/total_rarity = 0
+ 	var/list/name_list = list()
+ 	var/num_paths = rand(2,3)
+ 	for(var/i in 1 to num_paths)
+ 		var/obj/item/fish/chosen_path = pick_n_take(fishes_copylist)
+ 		wanted_types[chosen_path] = TRUE
+ 		name_list += initial(chosen_path.name)
+ 		total_rarity += initial(chosen_path.random_case_rarity) / num_paths
+ 	name = english_list(name_list)
+ 
+ 	switch(total_rarity)
+ 		if(FISH_RARITY_NOPE to FISH_RARITY_GOOD_LUCK_FINDING_THIS)
+ 			reward += CARGO_CRATE_VALUE * 14
+ 		if(FISH_RARITY_GOOD_LUCK_FINDING_THIS to FISH_RARITY_VERY_RARE)
+ 			reward += CARGO_CRATE_VALUE * 6.5
+ 		if(FISH_RARITY_VERY_RARE to FISH_RARITY_RARE)
+ 			reward += CARGO_CRATE_VALUE * 3
+ 		if(FISH_RARITY_RARE to FISH_RARITY_BASIC-1)
+ 			reward += CARGO_CRATE_VALUE * 1
+ 
+ 	..()
++>>>>>>> origin/translate
  • code/modules/events/supermatter_surge.dm
++<<<<<<< HEAD
 +	var/class_to_announce = fake ? pick(1, 2, 3, 4) : surge_class
 +	priority_announce("The Crystal Integrity Monitoring System has detected unusual atmospheric properties in the supermatter chamber, energy output from the supermatter crystal has increased significantly. Engineering intervention is required to stabilize the engine.", "Class [class_to_announce] Supermatter Surge Alert", 'sound/machines/engine_alert3.ogg')
++=======
+ 	priority_announce("Система мониторинга целостности кристала обнаружила необычные атмосферные параметры в камере суперматерии, выходная мощность кристалла суперматерии значительно увеличилась Требуется инженерное вмешательство для стабилизации работы двигателя.", "Всплеск суперматерии класса [surge_class]", 'sound/machines/engine_alert3.ogg')
++>>>>>>> origin/translate
  • code/modules/mafia/roles/roles.dm
++<<<<<<< HEAD
 +			the = FALSE
 +	result += span_notice("The [span_bold("[name]")] is aligned with [the ? "the " : ""]<span class='[team_span]'>[team_desc]</span>")
 +	result += "<span class='bold notice'>\"[initial(desc)]\"</span>"
 +	result += span_notice("[name] wins when they [win_condition]")
++=======
+ 	result += span_notice("[span_bold("[name]")] является <span class='[team_span]'>[team_desc]</span>")
+ 	result += "<span class='bold notice'>\"[desc]\"</span>"
+ 	result += span_notice("[name] выигрывает если [win_condition]")
++>>>>>>> origin/translate
  • code/modules/surgery/cavity_implant.dm
++<<<<<<< HEAD
 +		if(item_for_cavity || ((tool.w_class > WEIGHT_CLASS_NORMAL) && !is_type_in_typecache(tool, GLOB.heavy_cavity_implants)) || HAS_TRAIT(tool, TRAIT_NODROP) || isorgan(tool))
 +			to_chat(user, span_warning("You can't seem to fit [tool] in [target]'s [target_zone]!"))
++=======
+ 		if(item_for_cavity || tool.w_class > WEIGHT_CLASS_NORMAL || HAS_TRAIT(tool, TRAIT_NODROP) || isorgan(tool))
+ 			to_chat(user, span_warning("Кажется, вы не можете поместить [tool.name] в <i>[target_zone]</i> у [target]!"))
++>>>>>>> origin/translate

@ss220club ss220club deleted a comment from github-actions bot Jul 30, 2024
@Gaxeer Gaxeer merged commit e1be682 into master Jul 30, 2024
21 checks passed
@larentoun larentoun mentioned this pull request Jul 30, 2024
Gaxeer pushed a commit that referenced this pull request Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💾 Изменение конфига Ф-ф-фуриор...? 🎸 Инструменты Мы выдаем себя за реальное сообщество разработчиков. :neckbeard: Документация Некоторые просто любят писать тонну текста, которую никто не будет читать. 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов 🔉 Звук Вау... этот звук такой... хуёвый? TGUI Добавление или изменение существующего интерфейса на базе фреймворка TGUI 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один.
Projects
None yet
Development

Successfully merging this pull request may close these issues.