Skip to content
44 changes: 32 additions & 12 deletions code/game/objects/items/weapons/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@

/obj/item/storage/backpack/holding
name = "Bag of Holding"
desc = "A backpack that opens into a localized pocket of Blue Space."
desc = "Технологичный рюкзак, в сравнении с обычными, вмещает чрезмерно большое количество предметов благодаря подпространственной компрессии. Этикетка предупреждает \"Не совмещать с технологиями телепортации\"."
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
icon_state = "holdingpack"
item_state = "holdingpack"
Expand All @@ -64,14 +64,24 @@
cant_hold = list(/obj/item/storage/backpack/holding)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 60, ACID = 50)

/obj/item/storage/backpack/holding/get_ru_names()
return list(
NOMINATIVE = "блюспейс рюкзак",
GENITIVE = "блюспейс рюкзака",
DATIVE = "блюспейс рюкзаку",
ACCUSATIVE = "блюспейс рюкзак",
INSTRUMENTAL = "блюспейс рюкзаком",
PREPOSITIONAL = "блюспейс рюкзаке",
)

/obj/item/storage/backpack/holding/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/storage/backpack/holding))
return ..()

. = ATTACK_CHAIN_BLOCKED_ALL
add_fingerprint(user)
var/response = tgui_alert(user, "This creates a singularity, destroying you and much of the station. Are you SURE?", "IMMINENT DEATH!", list("No", "Yes"))
if(response != "Yes")
var/response = tgui_alert(user, "Это создаст сингулярность, которая уничтожит вас и большую часть станции. Вы уверены?", "НЕИЗБЕЖНАЯ СМЕРТЬ!", list("Нет", "Да"))
if(response != "Да")
Comment on lines +83 to +84
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

🟡 Рекомендация по стилю и согласованности

Использование строковых литералов, таких как "Да", в условных операторах делает код менее гибким для будущих изменений и локализации. Согласно стайлгайду (правило 4.3, пункт 140), для строк, участвующих в проверках, следует использовать именованные константы через #define.

Предлагаю определить константы для ответов в tgui_alert (например, в code/__DEFINES/tgui.dm) и использовать их:

// В code/__DEFINES/tgui.dm
#define TGUI_ALERT_RESPONSE_YES "Да"
#define TGUI_ALERT_RESPONSE_NO "Нет"

Это улучшит читаемость и упростит поддержку кода.

	var/response = tgui_alert(user, "Это создаст сингулярность, которая уничтожит вас и большую часть станции. Вы уверены?", "НЕИЗБЕЖНАЯ СМЕРТЬ!", list(TGUI_ALERT_RESPONSE_NO, TGUI_ALERT_RESPONSE_YES))
	if(response != TGUI_ALERT_RESPONSE_YES)
References
  1. Для строк, участвующих в проверках (if, switch), следует использовать именованные константы, определённые через #define, чтобы избежать использования «магических строк» и упростить поддержку кода. (link)

return .

user.visible_message(
Expand Down Expand Up @@ -111,29 +121,39 @@

/obj/item/storage/backpack/holding/satchel
name = "Satchel of holding"
desc = "A satchel that opens into a localized pocket of Blue Space."
desc = "Технологичная сумка, в сравнении с обычными, вмещает чрезмерно большое количество предметов благодаря подпространственной компрессии. Этикетка предупреждает \"Не совмещать с технологиями телепортации\"."
icon_state = "holdingsat"
item_state = "holdingsat"

/obj/item/storage/backpack/holding/satchel/get_ru_names()
return list(
NOMINATIVE = "блюспейс сумка",
GENITIVE = "блюспейс сумки",
DATIVE = "блюспейс сумке",
ACCUSATIVE = "блюспейс сумку",
INSTRUMENTAL = "блюспейс сумкой",
PREPOSITIONAL = "блюспейс сумке",
)

/obj/item/storage/backpack/holding/singularity_act(current_size)
var/dist = max((current_size - 2), 1)
explosion(loc, devastation_range = (dist), heavy_impact_range = (dist*2), light_impact_range = (dist*4), cause = "into singularity")

/obj/item/storage/backpack/holding/satchel/duffelbag
name = "Duffelbag of holding"
desc = "Очень большая и технологичная сумка, вмещает невероятное количество предметов благодаря подпространственной компрессии. Этикетка предупреждает \"Избегайте рекурсивного хранения\"."
desc = "Очень большая и технологичная спортивная сумка, вмещает невероятное количество предметов благодаря подпространственной компрессии. Этикетка предупреждает \"Не совмещать с технологиями телепортации\"."
icon_state = "holdingduffelba"
item_state = "holdingduffelba"
max_combined_w_class = 40

/obj/item/storage/backpack/duffelbag/get_ru_names()
/obj/item/storage/backpack/holding/satchel/duffelbag/get_ru_names()
return list(
NOMINATIVE = "блюспейс сумка хранения",
GENITIVE = "блюспейс сумки храненияя",
DATIVE = "блюспейс сумке хранения",
ACCUSATIVE = "блюспейс сумку хранения",
INSTRUMENTAL = "блюспейс сумкой хранения",
PREPOSITIONAL = "блюспейс сумке хранения"
NOMINATIVE = "блюспейс спортивная сумка",
GENITIVE = "блюспейс спортивная сумки",
DATIVE = "блюспейс спортивная сумке",
ACCUSATIVE = "блюспейс спортивная сумку",
INSTRUMENTAL = "блюспейс спортивная сумкой",
PREPOSITIONAL = "блюспейс спортивная сумке"
)

/obj/item/storage/backpack/santabag
Expand Down
Loading