forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge upstream 18.10.24 #594
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ol belt (tgstation#87208) ## About The Pull Request same sounds as the toolbelt ## Why It's Good For The Game I think it fits ## Changelog :cl: grungussuss sound: medical, jani, soulstone, grenade belts got sounds /:cl:
tgstation#87218) 🆑 qol: map votes are now winner take all instead of weighted. /🆑
## About The Pull Request before, if u wanted to make ur animal hunt for food, u had to give them the find food subtree, the attacking subtree, and had to edit their targeting stratedgy to include items. this makes it so u only have to give them just 1 subtree which will handle everything it needs to. also makes it alot more customizable, u can now set a hunger cooldown for ur animals, and cute emotes for them to play after eating food ## Why It's Good For The Game makes it more convenient for future devs to include food hunting behaviors to their animals, while also making it more customizable ## Changelog :cl: code: animals' food hunting behavior has been refactored, please report any bugs /:cl:
…#87207) ## About The Pull Request I randomly came across a `var/list/static` in the code, which does not actually do what was intended, and thought it was silly. A ctrl+f revealed that this was a fairly common mistake, so I went and fixed all the instances of it I could find. ~~Including one in lighting code, which it looked like they were trying to create a global list to cache generated lighting sheet values for speed, but it was just a normal list that got created each time pointlessly. Now those values are actually being cached (using a global var, because a `static` list was not the right thing to use there in the first place).~~ Nevermind, it seems that this was in fact being cached even if it shouldn't have been, because byond. Just rearranged it there seeing as it works either way. ## Why It's Good For The Game Code that does what it's supposed to ## Changelog :cl: fix: fixes a bunch of improper static list declarations /:cl:
![resim](https://github.com/user-attachments/assets/35ce028c-0ed0-4ea2-89f3-77acc15693ac) ## About The Pull Request Showering will add negative mood effect to felinids ## Why It's Good For The Game there was a status effect that drops stamina for felinids on shower but at the same time it boosts mood i decided to make it better :cl: Mamaii add: shower will give felinids negative mood effect fix: fixed shower hater status effect alert not showing /:cl:
…7216) ## About The Pull Request Its now a priority -> color assoc list with a pair of helper procs to wrap lazylist stuff. New priorities should go to ``code/__DEFINES/bodyparts.dm`` as defines as to be seen and not overridden. ## Why It's Good For The Game Wasn't a problem until carps came along as before only hulks used this thing, now we've got clashing. ## Changelog :cl: fix: Losing hulk after becoming a carp no longer turns you black /:cl: --------- Co-authored-by: Ghom <[email protected]>
## About The Pull Request while working on cosmetic stuff for a downstream i noticed that the neck of female bodied human sprites was asymmetrical from the east and west facing icons ![image](https://github.com/user-attachments/assets/ae914ea5-b138-4404-b7df-5e4fcd59d0e0) ![image](https://github.com/user-attachments/assets/9dca384c-4e3e-44cd-b4c9-0f6feff55231) i checked the icon files and, sure enough, the east facing head has an extra pixel on the neck, so i removed it and updated the relevant dmi. ![image](https://github.com/user-attachments/assets/b9a008d2-1acd-436a-bb69-591909d60ef9) ![image](https://github.com/user-attachments/assets/7afc14a4-1834-440d-b37e-ad45d0372820) i also did a cursory glance at all the other body sprites to ensure that they were symmetrical. i didnt look that close admittedly but i didnt spot any other discrepancies. and that's all! this is probably the ittiest bittiest pr ever ## Why It's Good For The Game i think this one is pretty self explanatory lol ## Changelog :cl: fix: fixed east facing female human heads having an extra neck pixel :cl:
…erlays. (tgstation#87215) ## About The Pull Request I'm making sure that `update_body_parts()` is properly called when changing bodypart overlays, so that they actually show up the very moment they were changed. However, to avoid redundant `update_body_parts()` calls on init or while changing species, I've added a living flag that stops `update_body_parts()` from being called in these situations. I also scoured the codebase for other redundant `update_body_parts()` to remove and things to clean up a little. ## Why It's Good For The Game This automates the process of calling `update_body_parts()` a bit. ## Changelog Mainly backend.
… be more readable or more descriptive. (tgstation#87157) ## About The Pull Request Hi. Whoever originally wrote the description for this item in the uplink likely isn't a native english speaker and must've used google translate to make it. Point is: This description is broken and nobody has fixed it (I'm assuming nobody wants to spend GBP trying to fix it.) ## Why It's Good For The Game I'd like to be able to read this item's description and not feel like i just had a stroke. Also, being descriptive as to WHAT THIS ITEM ACTUALLY DOES is super important before purchasing it, nobody wants to boot up the wiki and try to figure out what this does. ## Changelog :cl: qol: The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive. /:cl:
![Screenshot_108](https://github.com/user-attachments/assets/c0c40aca-ec80-4849-8d24-b6a45df8ed7d) ## About The Pull Request resprites the existing clown mask styles and adds a new clown mask style: The Dealer. the old madman mask has been made into an optional craft: the gamer's wig and mask. does not resprite already existing default clown mask ![Screenshot_109](https://github.com/user-attachments/assets/99b6fdb9-5e19-4b27-a41c-5902a5b92d27) ## Why It's Good For The Game resprites are good! and more variety is good too ## Changelog :cl: add: the Honkmother has decided to bless Her children with a new form! image: resprited the optional clown mask styles /:cl:
## About The Pull Request -fixes random test tube racks in the hallways next to cargo -fixes a bunch of decals -fixes some item offsets -moves a table so you can actually push a crate into the medical chute without using the alt-menu or dismantling a table -removes random destination tagger on the floor of the new security outpost ## Why It's Good For The Game fixes ## Changelog :cl: fix: fixed up Metastation's cargo delivery office. /:cl:
…player (tgstation#87212) ## About The Pull Request fixes tgstation#87206 ## Changelog :cl: fix: you may no longer roll appendicitis in deathmatch or as a bitrunner avatar /:cl:
… water vapor (tgstation#87169) ## About The Pull Request Adds the interaction between the Springlock MOD module and the Gas Water Vapor so that it snaps shut upon being exposed to the Gas. Fixes tgstation#85666. Specifically the oversight mentioned in the comments. ## Why It's Good For The Game Adds consistency to the Springlock MOD module so it properly interacts with water as intended. ## Changelog :cl: fix: Springlock MOD module properly interacts with Water Vapor /:cl:
## About The Pull Request This doesn't work anymore. Thanks to dangerkitten on bitbus for making me write a regex to find this one. (said regex being ``playsound\([^,]+, list\(``) ## Changelog :cl: fix: Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming /:cl:
…#87244) ## About The Pull Request made manufacturing machines i/o overlays (the blue and orange lights and such) rotate with the machine CTRL SHIFT LMB makes the manulathe dump all mats manulathes no longer may receive ore: this was not intentional, processing ore is stuff the smelter does manulathes now use a matter bin instead of a servo (because it makes sense because it holds mats): this affects its material capacity being: bin tier * 50 sheets ## Why It's Good For The Game bug bad oversight bad and you also no longer need to decon the lathe to dump mats ## Changelog :cl: fix: input output overlays for manufacturing machines actually update properly when rotated qol: you may dump materials of a manulathe via CTRL SHIFT LMB balance: manulathes may not receive ore (not intentional) balance: manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier /:cl:
…gstation#87250) ## About The Pull Request replaces the _o in the p_smes_o icon state with a -o so the icon actually shows up instead of turning invisible. no GBP because it's my bad. i thought i caught that ## Why It's Good For The Game SMES turning invisible when unscrewed probably not great for usability ## Changelog :cl: fix: Portable SMESes should no longer turn invisible when unscrewed. /:cl: --------- Co-authored-by: Hatterhat <[email protected]>
…setting pressure value. (tgstation#87243) ## About The Pull Request Fix canister and portable pump pressure inputs from transferring rounded values instead of the full value inputs to their target release pressure. Does this by adding a round_value = FALSE argument to tgui_input_number() in canister.dm, and removing the rounding operation in canister.dm and pump.dm. The UI should still round the values to display, just not rounding the value to transfer to the canister. ### Known issues: If the input is set to an integer with the same value as the rounded current value, then it will consider it the same for some reason, thus not calling ui_act(). Not sure why this happens. ## Why It's Good For The Game Closes tgstation#87175. ## Changelog :cl: fix: Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure. /:cl:
…eneral audio cooldown (tgstation#87210) ## About The Pull Request defaults: ```php /// How long is the shared emote cooldown triggered by this emote? var/general_emote_audio_cooldown = 2 SECONDS /// How long is the specific emote cooldown triggered by this emote? var/specific_emote_audio_cooldown = 5 SECONDS ``` specific cooldown only checks for the emote, while the general is a shared cooldown, gave laugh and scream longer specific cooldowns. ## Why It's Good For The Game The general emote cooldown fixed the problem of multiple emotes getting used at once, now we have a problem with people using the same emote too many times, I want to give the players ability to use sounds in their emotes, but spamming the same emote over and over again makes me regret it and hesitant about it, this way we can have the best of both worlds. ## Changelog :cl: grungussuss sound: along with the shared emote cooldown, specific emote audio cooldown has returned. /:cl:
## About The Pull Request Fixes tgstation#86756 Fixes tgstation#67174 (isn't this already fixed? Oh well now it's really fixed because I tested it) Basically changed the random calls to `update_body_parts` with a bespoke proc which better explains what they are there to do Adds one missing call to head items (for `HIDESNOUT`) ## Changelog :cl: Melbert fix: Fixed digitigrade pants sprite not updating in accordance to some leg updates /:cl:
…ound (tgstation#87225) ## About The Pull Request Closes tgstation#87222 armrest code doesnt have to be copied thrice if it can be on chairs with a var to control if its actually used ## Changelog :cl: fix: Bronze chairs will automatically spin once more /:cl:
## About The Pull Request For: - gas analyzer - scanner gate - plant analyzer - t-ray scanner - slime scanner - scanning mining geysers https://github.com/user-attachments/assets/24fde731-e567-483b-b88e-6f7fcbacf52a ## Why It's Good For The Game it sounds nice ## Changelog :cl: grungussuss sound: added new scanning sound /:cl:
github-actions
bot
added
TGUI
Добавление или изменение существующего интерфейса на базе фреймворка TGUI
🔉 Звук
Нам скорее всего нравится как это звучит.
🖌️ Спрайты
Вы заработали свою миска-рис и кошко-жена. Партия гордится вами!
🗺️ Изменение Карты
В этом ПРе затронут файл не станционной карты. Может и не один.
🎸 Инструменты
Мы выдаем себя за реальное сообщество разработчиков.
🙏 Слияние с восходящим потоком
О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов
labels
Oct 17, 2024
This PR causes following conflicts on translate branch: code/game/objects/items/chainsaw.dm++<<<<<<< HEAD
+ RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
++||||||| 7181e2f6237
+ /obj/item/chainsaw/suicide_act(mob/living/carbon/user)
+ if(on)
- user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
++ user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
+ playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE)
+ var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)
+ if(myhead)
+ myhead.dismember()
+ else
- user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
++ user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!"))
+ playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE)
+ return BRUTELOSS
-
-/obj/item/chainsaw/attack_self(mob/user)
- on = !on
- to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]")
- force = on ? force_on : initial(force)
- throwforce = on ? force_on : initial(force)
- icon_state = "chainsaw_[on ? "on" : "off"]"
- var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering)
- butchering.butchering_enabled = on
-
++=======
++/obj/item/chainsaw/suicide_act(mob/living/carbon/user)
+ if(on)
- hitsound = 'sound/items/weapons/chainsawhit.ogg'
- chainsaw_loop.start()
++ user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
++ playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE)
++ var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)
++ if(myhead)
++ myhead.dismember()
+ else
- hitsound = SFX_SWING_HIT
- chainsaw_loop.stop()
-
- toolspeed = on ? 0.5 : initial(toolspeed) //Turning it on halves the speed
- if(src == user.get_active_held_item()) //update inhands
- user.update_held_items()
- update_item_action_buttons()
++ user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
++ playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE)
++ return BRUTELOSS
++>>>>>>> origin/translate
code/modules/antagonists/heretic/items/heretic_blades.dm++<<<<<<< HEAD
+ after_use_message = "The Torn Champion hears your call..."
+ ///If our blade is currently infused with the mansus grasp
+ var/infused = FALSE
+
+/obj/item/melee/sickly_blade/dark/afterattack(atom/target, mob/user, click_parameters)
+ . = ..()
+ if(!infused || target == user || !isliving(target))
+ return
+ var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user)
+ var/mob/living/living_target = target
+ if(!heretic_datum)
+ return
+
+ //Apply our heretic mark
+ var/datum/heretic_knowledge/mark/blade_mark/mark_to_apply = heretic_datum.get_knowledge(/datum/heretic_knowledge/mark/blade_mark)
+ if(!mark_to_apply)
+ return
+ mark_to_apply.create_mark(user, living_target)
+
+ //Remove the infusion from any blades we own (and update their sprite)
+ for(var/obj/item/melee/sickly_blade/dark/to_infuse in user.get_all_contents_type(/obj/item/melee/sickly_blade/dark))
+ to_infuse.infused = FALSE
+ to_infuse.update_appearance(UPDATE_ICON)
+ user.update_held_items()
+
+ if(!check_behind(user, living_target))
+ return
+ // We're officially behind them, apply effects
+ living_target.AdjustParalyzed(1.5 SECONDS)
+ living_target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND)
+ living_target.balloon_alert(user, "backstab!")
+ playsound(living_target, 'sound/items/weapons/guillotine.ogg', 100, TRUE)
+
+/obj/item/melee/sickly_blade/dark/dropped(mob/user, silent)
+ . = ..()
+ if(infused)
+ infused = FALSE
+ update_appearance(UPDATE_ICON)
+
+/obj/item/melee/sickly_blade/dark/update_icon_state()
+ . = ..()
+ if(infused)
+ icon_state = base_icon_state + "_infused"
+ inhand_icon_state = base_icon_state + "_infused"
+ else
+ icon_state = base_icon_state
+ inhand_icon_state = base_icon_state
++||||||| 7181e2f6237
++ after_use_message = "The Torn Champion hears your call..."
++=======
+ after_use_message = "Разорванный чемпион слышит ваш зов..."
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/blade_lore.dm++<<<<<<< HEAD
+ desc = "Opens up the Path of Blades to you. \
+ Allows you to transmute a knife with one bar of silver or titanium to create a Sundered Blade. \
+ You can create up to four at a time."
+ gain_text = "Our great ancestors forged swords and practiced sparring on the eve of great battles."
++||||||| 7181e2f6237
++ desc = "Opens up the Path of Blades to you. \
++ Allows you to transmute a knife with two bars of silver or titanium to create a Sundered Blade. \
++ You can create up to five at a time."
++ gain_text = "Our great ancestors forged swords and practiced sparring on the eve of great battles."
++=======
+ desc = "Открывает перед вами Путь клинков. \
+ Позволяет трансмутировать нож с двумя слитками серебра или титаниума для создания Закаленного клинка. \
+ Одновременно можно иметь не более пяти."
+ gain_text = "Наши великие предки ковали мечи и практиковали спарринги накануне великих сражений."
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ target.balloon_alert(source, "backstab!")
+ playsound(target, 'sound/items/weapons/guillotine.ogg', 100, TRUE)
++||||||| 7181e2f6237
++ target.balloon_alert(source, "backstab!")
++ playsound(get_turf(target), 'sound/items/weapons/guillotine.ogg', 100, TRUE)
++=======
+ target.balloon_alert(source, "удар в спину!")
+ playsound(get_turf(target), 'sound/items/weapons/guillotine.ogg', 100, TRUE)
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ name = "Empowered Blades"
+ desc = "Attacking someone with a Sundered Blade in both hands \
+ will now deliver a blow with both at once, dealing two attacks in rapid succession. \
+ The second blow will be slightly weaker. \
+ You are able to infuse your mansus grasp directly into your blades, and your blades are more effective against structures."
+ gain_text = "I found him cleaved in twain, halves locked in a duel without end; \
+ a flurry of blades, neither hitting their mark, for the Champion was indomitable."
++||||||| 7181e2f6237
++ name = "Swift Blades"
++ desc = "Attacking someone with a Sundered Blade in both hands \
++ will now deliver a blow with both at once, dealing two attacks in rapid succession. \
++ The second blow will be slightly weaker."
++ gain_text = "I found him cleaved in twain, halves locked in a duel without end; \
++ a flurry of blades, neither hitting their mark, for the Champion was indomitable."
++=======
+ name = "Swift Blades"
+ desc = "Атакуя кого-либо с Закаленным клинком в обеих руках, \
+ теперь вы будете наносить удар обоими клинками сразу, нанося две атаки в быстрой последовательности. \
+ Второй удар будет немного слабее."
+ gain_text = "Я нашел его рассеченным на две части, половинки сцепились в дуэли без конца; \
+ шквал клинков, но ни один из них не попал в цель, ибо чемпион был неукротим."
++>>>>>>> origin/translate
code/modules/antagonists/heretic/knowledge/side_blade_rust.dm++<<<<<<< HEAD
+ desc = "Allows you to transmute a piece of wood, with hide \
+ from any animal,and a camera to create the Lionhunter's rifle. \
+ The Lionhunter's Rifle is a long ranged ballistic weapon with three shots. \
+ These shots function as normal, albeit weak high-caliber munitions when fired from \
+ close range or at inanimate objects. You can aim the rifle at distant foes, \
+ causing the shot to mark your victim with your grasp and teleport you directly to them."
+ gain_text = "I met an old man in an antique shop who wielded a very unusual weapon. \
+ I could not purchase it at the time, but they showed me how they made it ages ago."
++||||||| 7181e2f6237
++ desc = "Allows you to transmute any ballistic weapon, such as a pipegun, with hide \
++ from any animal, a plank of wood, and a camera to create the Lionhunter's rifle. \
++ The Lionhunter's Rifle is a long ranged ballistic weapon with three shots. \
++ These shots function as normal, albeit weak high-caliber munitions when fired from \
++ close range or at inanimate objects. You can aim the rifle at distant foes, \
++ causing the shot to deal massively increased damage and hone in on them."
++ gain_text = "I met an old man in an antique shop who wielded a very unusual weapon. \
++ I could not purchase it at the time, but they showed me how they made it ages ago."
++=======
+ desc = "Позволяет трансмутировать любое баллистическое оружие, например, трубное ружье, с помощью шкуры \
+ любого животного, доски дерева и камеры в винтовку Lionhunter. \
+ Lionhunter - это дальнобойное баллистическое оружие с тремя выстрелами. \
+ При стрельбе с близкого расстояния или по неодушевленным предметам эти выстрелы \
+ действуют как обычные, хотя и слабые высококалиберные боеприпасы. Ты можешь направить винтовку на противников на большом расстояние,\
+ в результате чего выстрел нанесет значительно больший урон и нацелится на них."
+ gain_text = "В антикварном магазине я встретил старика, который владел очень необычным оружием. \
+ В то время я не мог его приобрести, но они показали мне, как они делали его много лет назад."
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ desc = "Allows you to transmute 3 ballistic ammo casings (used or unused) of any caliber, \
+ including shotgun shells to create an extra clip of ammunition for the Lionhunter Rifle."
+ gain_text = "The weapon came with three rough iron balls, intended to be used as ammunition. \
+ They were very effective, for simple iron, but used up quickly. I soon ran out. \
+ No replacement munitions worked in their stead. It was peculiar in what it wanted."
++||||||| 7181e2f6237
++ desc = "Allows you to transmute 3 ballistic ammo casings (used or unused) of any caliber, \
++ including shotgun shot, with any animal hide to create an extra clip of ammunition for the Lionhunter Rifle."
++ gain_text = "The weapon came with three rough iron balls, intended to be used as ammunition. \
++ They were very effective, for simple iron, but used up quickly. I soon ran out. \
++ No replacement munitions worked in their stead. It was peculiar in what it wanted."
++=======
+ desc = "Позволяет трансмутировать 3 баллистические гильзы (использованные или неиспользованные) любого калибра, \
+ включая дробь, со шкурой любого животного, чтобы создать дополнительную обойму боеприпасов для винтовки Lionhunter."
+ gain_text = "К оружию прилагались три грубых железных шара, предназначенных для использования в качестве боеприпасов. \
+ Они были очень эффективны для простого железа, но быстро расходовались. Вскоре они у меня закончились. \
+ Никакие запасные боеприпасы не помогали. Винтовка была своеобразна в том, чего она хотела."
++>>>>>>> origin/translate
code/modules/antagonists/heretic/structures/mawed_crucible.dm++<<<<<<< HEAD
+ break_message = span_warning("[src] falls apart with a thud!")
+ START_PROCESSING(SSobj, src)
+
+/obj/structure/destructible/eldritch_crucible/process(seconds_per_tick)
+ if(COOLDOWN_TIMELEFT(src, refill_cooldown))
+ return
+ COOLDOWN_START(src, refill_cooldown, 30 SECONDS)
+ current_mass++
+ playsound(src, 'sound/items/eatfood.ogg', 100, TRUE)
+ update_appearance(UPDATE_ICON_STATE)
++||||||| 7181e2f6237
++ break_message = span_warning("[src] falls apart with a thud!")
++=======
+ break_message = span_warning("[src] разваливается с грохотом!")
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ crucible_tip = "Allows you to see through walls and objects. Lasts 90 seconds."
++||||||| 7181e2f6237
++ crucible_tip = "Allows you to see through walls and objects. Lasts 60 seconds."
++=======
+ crucible_tip = "Позволяет видеть сквозь стены и предметы. Действует 60 секунд."
++>>>>>>> origin/translate
code/modules/experisci/experiment/types/scanning_fish.dm++<<<<<<< HEAD
+ required_atoms = list(/obj/item/fish = 3)
+ scan_message = "Scan different species of fish"
++||||||| 7181e2f6237
++ required_atoms = list(/obj/item/fish = 4)
++ scan_message = "Scan different species of fish"
++=======
+ required_atoms = list(/obj/item/fish = 4)
+ scan_message = "Сканируйте разные виды рыб"
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ name = "Fish Scanning Experiment 2"
+ description = "An experiment requiring more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal."
++||||||| 7181e2f6237
++ name = "Fish Scanning Experiment 2"
++ description = "An experiment requiring more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal."
++=======
+ name = "Эксперимент по скану рыбы (2)"
+ description = "Эксперимент, требующий отсканировать больше видов рыб, чтобы разблокировать настройку \"Бездна\" для рыболовного портала."
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ name = "Fish Scanning Experiment 3"
+ description = "An experiment requiring even more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal."
++||||||| 7181e2f6237
++ name = "Fish Scanning Experiment 3"
++ description = "An experiment requiring even more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal."
++=======
+ name = "Эксперимент по скану рыбы (3)"
+ description = "Эксперимент, требующий отсканировать еще больше видов рыб, чтобы разблокировать настройку \"Океан\" для рыболовного портала."
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ required_atoms = list(/obj/item/fish/holo = 3)
+ scan_message = "Scan different species of holographic fish"
++||||||| 7181e2f6237
++ required_atoms = list(/obj/item/fish/holo = 4)
++ scan_message = "Scan different species of holographic fish"
++=======
+ required_atoms = list(/obj/item/fish/holo = 4)
+ scan_message = "Сканирование различных видов голографических рыб"
++>>>>>>> origin/translate
code/modules/mob/living/carbon/alien/adult/adult.dm++<<<<<<< HEAD
+ lucky_winner.audible_message(span_danger("You hear a deep groan, and a harsh snap like a mantrap."))
+ lucky_winner.visible_message(span_danger("[src] devours [lucky_winner]!"), \
+ span_userdanger("[src] devours you!"))
++||||||| 7181e2f6237
++ lucky_winner.audible_message(span_danger("You hear a deep groan, and a harsh snap like a mantrap."))
++ lucky_winner.visible_message(span_danger("[src] devours [lucky_winner]!"), \
++ span_userdanger("[lucky_winner] devours you!"))
++=======
+ lucky_winner.audible_message(span_danger("Вы слышите глубокий стон и резкий щелчок, схожий на звук капкана."))
+ lucky_winner.visible_message(span_danger("[capitalize(declent_ru(NOMINATIVE))] поглощает [lucky_winner.declent_ru(ACCUSATIVE)]!"), \
+ span_userdanger("[capitalize(lucky_winner.declent_ru(NOMINATIVE))] поглощает вас!"))
++>>>>>>> origin/translate
tgui/packages/tgui/interfaces/Uplink/index.tsx++<<<<<<< HEAD
+ <Box>Your current level of threat.</Box> Threat
+ determines
+ {has_objectives
+ ? ' the severity of secondary objectives you get and '
+ : ' '}
+ what items you can purchase.
+ <Box mt={0.5}>
+ {/* A minute in deciseconds */}
+ Threat passively increases by{' '}
+ <Box color="green" as="span">
+ {calculateProgression(
+ current_progression_scaling,
+ )}
++||||||| 7181e2f6237
++ <Box>
++ <Box>Your current level of threat.</Box> Threat
++ determines
++ {has_objectives
++ ? ' the severity of secondary objectives you get and '
++ : ' '}
++ what items you can purchase.
++ <Box mt={0.5}>
++ {/* A minute in deciseconds */}
++ Threat passively increases by{' '}
++ <Box color="green" as="span">
++ {calculateProgression(
++ current_progression_scaling,
++ )}
++ </Box>
++ every minute
++=======
+ <Box>
+ <Box>Ваше текущее значение угрозы.</Box> Угроза
+ влияет на
+ {has_objectives
+ ? ' сложность получаемых второстепенных задач и '
+ : ' '}
+ список доступных для покупки предметов.
+ <Box mt={0.5}>
+ {/* A minute in deciseconds */}
+ Угроза пассивно увеличивается на{' '}
+ <Box color="green" as="span">
+ {calculateProgression(
+ current_progression_scaling,
+ )}
+ </Box>
+ каждую минуту
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ every minute
++||||||| 7181e2f6237
++ {Math.abs(progressionPercentage) > 0 && (
++ <Box mt={0.5}>
++ Because your threat level is
++ {progressionPercentage < 0
++ ? ' ahead '
++ : ' behind '}
++ of where it should be, you are getting
++ <Box
++ as="span"
++ color={
++ progressionPercentage < 0
++ ? 'red'
++ : 'green'
++ }
++ ml={1}
++ mr={1}
++ >
++ {progressionPercentage}%
++ </Box>
++ {progressionPercentage < 0
++ ? 'less'
++ : 'more'}{' '}
++ threat every minute
++ </Box>
++ )}
++ {dangerLevelsTooltip}
++=======
+ {Math.abs(progressionPercentage) > 0 && (
+ <Box mt={0.5}>
+ Так как ваша угроза
+ {progressionPercentage < 0
+ ? ' выше '
+ : ' ниже '}
+ той, на которой вы должны быть, вы получаете
+ <Box
+ as="span"
+ color={
+ progressionPercentage < 0
+ ? 'red'
+ : 'green'
+ }
+ ml={1}
+ mr={1}
+ >
+ {progressionPercentage}%
+ </Box>
+ {progressionPercentage < 0
+ ? 'меньше'
+ : 'больше'}{' '}
+ угрозы каждую минуту
+ </Box>
+ )}
+ {dangerLevelsTooltip}
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ </Box>
++||||||| 7181e2f6237
++ )) ||
++ "Your current threat level. You are a killing machine and don't need to improve your threat level."
++=======
+ )) ||
+ 'Ваш текущий уровень угрозы. Вы машина для убийств и не нуждаетесь в повышении уровня угрозы.'
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ <Tabs.Tab
+ style={{
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ }}
+ icon="star-half-stroke"
+ selected={currentTab === 1}
+ onClick={() => this.setState({ currentTab: 1 })}
+ >
+ Secondary Objectives
+ </Tabs.Tab>
++||||||| 7181e2f6237
++ <>
++ <Tabs.Tab
++ style={{
++ overflow: 'hidden',
++ whiteSpace: 'nowrap',
++ textOverflow: 'ellipsis',
++ }}
++ icon="star"
++ selected={currentTab === 0}
++ onClick={() => this.setState({ currentTab: 0 })}
++ >
++ Primary Objectives
++ </Tabs.Tab>
++ <Tabs.Tab
++ style={{
++ overflow: 'hidden',
++ whiteSpace: 'nowrap',
++ textOverflow: 'ellipsis',
++ }}
++ icon="star-half-stroke"
++ selected={currentTab === 1}
++ onClick={() => this.setState({ currentTab: 1 })}
++ >
++ Secondary Objectives
++ </Tabs.Tab>
++ </>
++=======
+ <>
+ <Tabs.Tab
+ style={{
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ }}
+ icon="star"
+ selected={currentTab === 0}
+ onClick={() => this.setState({ currentTab: 0 })}
+ >
+ Основные задачи
+ </Tabs.Tab>
+ <Tabs.Tab
+ style={{
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ }}
+ icon="star-half-stroke"
+ selected={currentTab === 1}
+ onClick={() => this.setState({ currentTab: 1 })}
+ >
+ Дополнительные задачи
+ </Tabs.Tab>
+ </>
++>>>>>>> origin/translate
++<<<<<<< HEAD
+ {!!lockable && (
+ <Stack.Item>
+ <Button
+ lineHeight={2.5}
+ textAlign="center"
+ icon="lock"
+ color="transparent"
+ px={2}
+ onClick={() => act('lock')}
+ >
+ Lock
+ </Button>
+ </Stack.Item>
+ )}
+ </Stack>
+ </Section>
+ </Stack.Item>
++||||||| 7181e2f6237
++ {!!lockable && (
++ <Stack.Item>
++ <Button
++ lineHeight={2.5}
++ textAlign="center"
++ icon="lock"
++ color="transparent"
++ px={2}
++ onClick={() => act('lock')}
++ >
++ Lock
++ </Button>
++ </Stack.Item>
++ )}
++ </Stack>
++ </Section>
++ </Stack.Item>
++ )}
++=======
+ {!!lockable && (
+ <Stack.Item>
+ <Button
+ lineHeight={2.5}
+ textAlign="center"
+ icon="lock"
+ color="transparent"
+ px={2}
+ onClick={() => act('lock')}
+ >
+ Заблокировать
+ </Button>
+ </Stack.Item>
+ )}
+ </Stack>
+ </Section>
+ </Stack.Item>
+ )}
++>>>>>>> origin/translate
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
🎸 Инструменты
Мы выдаем себя за реальное сообщество разработчиков.
🖌️ Спрайты
Вы заработали свою миска-рис и кошко-жена. Партия гордится вами!
🙏 Слияние с восходящим потоком
О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов
🔉 Звук
Нам скорее всего нравится как это звучит.
TGUI
Добавление или изменение существующего интерфейса на базе фреймворка TGUI
🗺️ Изменение Карты
В этом ПРе затронут файл не станционной карты. Может и не один.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About The Pull Request
Апстрим мерге