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

tweak: Rework suicide drill #6189

Merged
merged 11 commits into from
Dec 23, 2024
Merged
228 changes: 198 additions & 30 deletions code/modules/surgery/tools.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
/obj/item/retractor
name = "retractor"
desc = "Retracts stuff."
desc = "Инструмент, используемый для расширения полостей при операциях."
ru_names = list(
NOMINATIVE = "ретрактор",
GENITIVE = "ретрактора",
DATIVE = "ретрактору",
ACCUSATIVE = "ретрактор",
INSTRUMENTAL = "ретрактором",
PREPOSITIONAL = "ретракторе",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "retractor"
item_state = "retractor"
Expand All @@ -16,19 +24,43 @@

/obj/item/retractor/laser
name = "Advanced Laser Retractors"
desc = "A retractor with a laser tip. This one looks to be the pinnacle of precision energy a surgery tools!"
desc = "Ретрактор с лазерным наконечником. Последнее слово техники в сфере хирургических операций!"
ru_names = list(
NOMINATIVE = "лазерный ретрактор",
GENITIVE = "лазерного ретрактора",
DATIVE = "лазерному ретрактору",
ACCUSATIVE = "лазерный ретрактор",
INSTRUMENTAL = "лазерным ретрактором",
PREPOSITIONAL = "лазерном ретракторе",
)
icon_state = "retractor_laser"
item_state = "retractor_laser"
toolspeed = 0.4

/obj/item/retractor/augment
desc = "Micro-mechanical manipulator for retracting stuff."
desc = "Микромеханический манипулятор, используемый в хирургии для расширения полостей и закрепления надрезов."
ru_names = list(
NOMINATIVE = "микромеханический манипулятор",
GENITIVE = "микромеханического манипулятора",
DATIVE = "микромеханическому манипулятору",
ACCUSATIVE = "микромеханический манипулятор",
INSTRUMENTAL = "микромеханическим манипулятором",
PREPOSITIONAL = "микромеханическом манипуляторе",
)
w_class = WEIGHT_CLASS_TINY
toolspeed = 0.5

/obj/item/hemostat
name = "hemostat"
desc = "You think you have seen this before."
desc = "Инструмент для зажима кровоточащих сосудов во время операций."
ru_names = list(
NOMINATIVE = "гемостат",
GENITIVE = "гемостата",
DATIVE = "гемостату",
ACCUSATIVE = "гемостат",
INSTRUMENTAL = "гемостатом",
PREPOSITIONAL = "гемостате",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "hemostat"
item_state = "hemostat"
Expand All @@ -45,18 +77,34 @@

/obj/item/hemostat/laser
name = "Advanced Laser Hemostat"
desc = "A hemostat with a laser clamp. This one looks to be the pinnacle of precision energy a surgery tools!"
desc = "Гемостат с лазерным зажимом. Последнее слово техники в сфере хирургических операций!"
ru_names = list(
NOMINATIVE = "лазерный гемостат",
GENITIVE = "лазерного гемостата",
DATIVE = "лазерному гемостату",
ACCUSATIVE = "лазерный гемостат",
INSTRUMENTAL = "лазерным гемостатом",
PREPOSITIONAL = "лазерном гемостате",
)
icon_state = "hemostat_laser"
item_state = "hemostat_laser"
toolspeed = 0.4

/obj/item/hemostat/augment
desc = "Tiny servos power a pair of pincers to stop bleeding."
desc = "Хирургический инструмент, состоящий из нескольких зажимов и сервомоторов. Используется для перекрытия сосудов и остановки возникающего кровотечения во время операции."
toolspeed = 0.5

/obj/item/cautery
name = "cautery"
desc = "This stops bleeding."
desc = "Хирургический инструмент, используемый для прижигания открытых ран и надрезов."
ru_names = list(
NOMINATIVE = "прижигатель",
GENITIVE = "прижигателя",
DATIVE = "прижигателю",
ACCUSATIVE = "прижигатель",
INSTRUMENTAL = "прижигателем",
PREPOSITIONAL = "прижигателе",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "cautery"
item_state = "cautery"
Expand All @@ -72,13 +120,21 @@
ADD_TRAIT(src, TRAIT_SURGICAL, ROUNDSTART_TRAIT)

/obj/item/cautery/augment
desc = "A heated element that cauterizes wounds."
desc = "Нагревательный элемент, используемый для прижигания ран."
toolspeed = 0.5

/obj/item/surgicaldrill
name = "surgical drill"
desc = "You can drill using this item. You dig?"
desc = "Инструмент, предназначенный для сверления отверстий. Постарайтесь не попасть себе в глаз!"
icon = 'icons/obj/surgery.dmi'
ru_names = list(
NOMINATIVE = "хирургическая дрель",
GENITIVE = "хирургической дрели",
DATIVE = "хирургической дрели",
ACCUSATIVE = "хирургическую дрель",
INSTRUMENTAL = "хирургической дрелью",
PREPOSITIONAL = "хирургической дрели",
)
icon_state = "drill"
item_state = "drills"
hitsound = 'sound/weapons/drill.ogg'
Expand All @@ -95,28 +151,62 @@
. = ..()
ADD_TRAIT(src, TRAIT_SURGICAL, ROUNDSTART_TRAIT)

/obj/item/surgicaldrill/suicide_act(mob/user)
to_chat(viewers(user), pick(span_suicide("[user] is pressing [src] to [user.p_their()] temple and activating it! It looks like [user.p_theyre()] trying to commit suicide."),
span_suicide("[user] is pressing [src] to [user.p_their()] chest and activating it! It looks like [user.p_theyre()] trying to commit suicide.")))
return BRUTELOSS
/obj/item/surgicaldrill/suicide_act(mob/living/user)
user.visible_message(
span_suicide("[user] наматыва[pluralize_ru(user.gender, "ет", "ют")] себя на [declent_ru(ACCUSATIVE)]!\n\
Похоже, что [genderize_ru(user.gender, "он", "она", "оно", "они")] соверша[pluralize_ru(user.gender, "ет", "ют")] суицид!")
)

addtimer(CALLBACK(src, PROC_REF(second_act), user), 2.5 SECONDS)
user.SpinAnimation(3, 10)

ADD_TRAIT(user, TRAIT_IMMOBILIZED, UNIQUE_TRAIT_SOURCE(src))
playsound(user, 'sound/machines/juicer.ogg', 20, TRUE)

return OBLITERATION

/obj/item/surgicaldrill/proc/second_act(mob/user)
if(!user)
return

for(var/obj/item/item in user.get_equipped_items())
user.drop_item_ground(item)

user.gib()

/obj/item/surgicaldrill/laser
name = "Advanced Laser Surgical Drill"
desc = "A surgery drill with a directed laser bit. This one looks to be the pinnacle of precision energy a surgery tools!"
desc = "Хирургическая дрель с узконаправленным лазерным элементом. Последнее слово техники в сфере хирургических операций!"
ru_names = list(
NOMINATIVE = "лазерная дрель",
GENITIVE = "лазерной дрели",
DATIVE = "лазерной дрели",
ACCUSATIVE = "лазерную дрель",
INSTRUMENTAL = "лазерной дрелью",
PREPOSITIONAL = "лазерной дрели",
)
icon_state = "drill_laser"
item_state = "drill_laser"
toolspeed = 0.4

/obj/item/surgicaldrill/augment
desc = "Effectively a small power drill contained within your arm, edges dulled to prevent tissue damage. May or may not pierce the heavens."
desc = "Небольшая электрическая дрель, находящаяся внутри вашей руки. Края затуплены, чтобы не повредить ткани. Не может пронзить небеса."
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
hitsound = 'sound/weapons/circsawhit.ogg'
force = 10
w_class = WEIGHT_CLASS_SMALL
toolspeed = 0.5

/obj/item/scalpel
name = "scalpel"
desc = "Cut, cut, and once more cut."
desc = "Резать, резать и еще раз резать."
ru_names = list(
NOMINATIVE = "скальпель",
GENITIVE = "скальпеля",
DATIVE = "скальпелю",
ACCUSATIVE = "скальпель",
INSTRUMENTAL = "скальпелем",
PREPOSITIONAL = "скальпеле",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "scalpel"
item_state = "scalpel"
Expand All @@ -142,29 +232,37 @@


/obj/item/scalpel/suicide_act(mob/user)
to_chat(viewers(user), pick(span_suicide("[user] is slitting [user.p_their()] wrists with [src]! It looks like [user.p_theyre()] trying to commit suicide."),
span_suicide("[user] is slitting [user.p_their()] throat with [src]! It looks like [user.p_theyre()] trying to commit suicide."),
span_suicide("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku.")))
to_chat(viewers(user), pick(span_suicide("[user] [declent_ru(INSTRUMENTAL)] среза[pluralize_ru(user.gender, "ет", "ют")] свою кожу! Похоже, что [genderize_ru(user.gender, "он", "она", "оно", "они")] соверша[pluralize_ru(user.gender, "ет", "ют")] суицид!"),
span_suicide("[user] реж[pluralize_ru(user.gender, "ет", "ут")] своё горло с помощью [declent_ru(GENITIVE)]! Похоже, что [genderize_ru(user.gender, "он", "она", "оно", "они")] соверша[pluralize_ru(user.gender, "ет", "ют")] суицид!"),
span_suicide("[user] вонза[pluralize_ru(user.gender, "ет", "ют")] [declent_ru(NOMINATIVE)] в свой желудок! Похоже, что [genderize_ru(user.gender, "он", "она", "оно", "они")] пыта[pluralize_ru(user.gender, "ет", "ют")]ся совершить сэппуку!")))
return BRUTELOSS


/obj/item/scalpel/augment
desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy."
desc = "Миниатюрное сверхострое лезвие, которое крепится напрямую к вашей кости, обеспечивая дополнительную точность."
toolspeed = 0.5

/*
* Researchable Scalpels
*/
/obj/item/scalpel/laser //parent type
name = "laser scalpel"
desc = "A scalpel augmented with a directed laser."
desc = "Скальпель, оборудованный направленным лазером."
ru_names = list(
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
NOMINATIVE = "лазерный скальпель",
GENITIVE = "лазерного скальпеля",
DATIVE = "лазерному скальпелю",
ACCUSATIVE = "лазерный скальпель",
INSTRUMENTAL = "лазерным скальпелем",
PREPOSITIONAL = "лазерном скальпеле",
)
icon_state = "scalpel_laser1_on"
damtype = "fire"
hitsound = 'sound/weapons/sear.ogg'

/obj/item/scalpel/laser/laser1 //lasers also count as catuarys
name = "Basic Laser Scalpel"
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
desc = "Скальпель, дополненный направленным лазером. Может быть усовершенствован."
desc = "Скальпель, дополненный направленным лазером. Может быть усовершенствован."
icon_state = "scalpel_laser1_on"
toolspeed = 0.8

Expand All @@ -182,8 +280,17 @@

/obj/item/scalpel/laser/manager //super tool! Retractor/hemostat
name = "incision management system"
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
desc = "Этот небольшой хирургический аппарат по праву можно называть продолжением руки хирурга. Всего за несколько мгновений подготавливает и обрабатывает разрез, позволяя почти сразу перейти к основной стадии операции."
icon_state = "scalpel_manager_on"
ru_names = list(
NOMINATIVE = "система обработки надрезов",
GENITIVE = "системы обработки надрезов",
DATIVE = "системе обработки надрезов",
ACCUSATIVE = "систему обработки надрезов",
INSTRUMENTAL = "системой обработки надрезов",
PREPOSITIONAL = "системе обработки надрезов",
)
icon
toolspeed = 0.2

/obj/item/scalpel/laser/manager/Initialize(mapload)
Expand All @@ -193,18 +300,27 @@

/obj/item/scalpel/laser/manager/debug
name = "debug IMS"
desc = "A wonder of modern medicine. This tool functions as any other sort of surgery tool, and finishes in only a fraction of the time. Hey, how'd you get your hands on this, anyway?"
desc = "Чудо современной медицины. Этот инструмент действует как любой другой хирургический инструмент и заканчивается в кратчайшие сроки. А как ты вообще это заполучил?"
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
toolspeed = 0.01

/obj/item/scalpel/laser/manager/debug/attack_self(mob/user)
. = ..()
toolspeed = toolspeed == 0.5 ? 0.01 : 0.5
to_chat(user, "[src] is now set to toolspeed [toolspeed]")
to_chat(user, "Установленная скорость инструмента у [declent_ru(GENITIVE)] - [toolspeed].")
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
balloon_alert(user, "скорость изменена")
playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode

/obj/item/circular_saw
name = "circular saw"
desc = "For heavy duty cutting."
desc = "Инструмент, чтобы резать кости."
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
ru_names = list(
NOMINATIVE = "хирургическая пила",
GENITIVE = "хирургической пилы",
DATIVE = "хирургической пиле",
ACCUSATIVE = "хирургическую пилу",
INSTRUMENTAL = "хирургической пилой",
PREPOSITIONAL = "хирургической пиле",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "saw3"
hitsound = 'sound/weapons/circsawhit.ogg'
Expand All @@ -229,21 +345,38 @@

/obj/item/circular_saw/laser
name = "Advanced Laser Circular Saw"
desc = "A saw with a circular laser disk. This one looks to be the pinnacle of precision energy a surgery tools!"
desc = "Пила с круглым лазерным диском. Последнее слово техники в сфере хирургических операций!"
ru_names = list(
NOMINATIVE = "лазерная хирургическая пила",
GENITIVE = "лазерной хирургической пилы",
DATIVE = "лазерной хирургической пиле",
ACCUSATIVE = "лазерную хирургическую пилу",
INSTRUMENTAL = "лазерной хирургической пилой",
PREPOSITIONAL = "лазерной хирургической пиле",
)
icon_state = "saw_laser"
item_state = "saw_laser"
origin_tech = "biotech=1;material=1"
toolspeed = 0.6

/obj/item/circular_saw/augment
desc = "A small but very fast spinning saw. Edges dulled to prevent accidental cutting inside of the surgeon."
desc = "Маленькая, но очень быстро вращающаяся пила. Края притуплены, чтобы предотвратить случайный порез внутри носителя."
Rafnik02 marked this conversation as resolved.
Show resolved Hide resolved
force = 10
w_class = WEIGHT_CLASS_SMALL
toolspeed = 0.5

//misc, formerly from code/defines/weapons.dm
/obj/item/bonegel
name = "bone gel"
desc = "Небольшой баллончик, содержищий в себе гель, сращивающий и заживляющий кости."
ru_names = list(
NOMINATIVE = "костяной гель",
GENITIVE = "костяного геля",
DATIVE = "костяному гелю",
ACCUSATIVE = "костяной гель",
INSTRUMENTAL = "костяным гелем",
PREPOSITIONAL = "костяном геле",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "bone-gel"
item_state = "bone-gel"
Expand All @@ -262,6 +395,16 @@

/obj/item/FixOVein
name = "FixOVein"
desc = "Небольшой баллончик, содержищий в себе гель, сращивающий и заживляющий кровеносные сосуды."
ru_names = list(
NOMINATIVE = "гель для сосудов",
GENITIVE = "гели для сосудов",
DATIVE = "гелю для сосудов",
ACCUSATIVE = "гель для сосудов",
INSTRUMENTAL = "гелью для сосудов",
PREPOSITIONAL = "геле для сосудов",
)
ic
icon = 'icons/obj/surgery.dmi'
icon_state = "fixovein"
item_state = "fixovein"
Expand All @@ -280,6 +423,15 @@

/obj/item/bonesetter
name = "bone setter"
desc = "Хирургический инструмент, предназначенный для вправления и закрепления костей."
ru_names = list(
NOMINATIVE = "костоправ",
GENITIVE = "костоправа",
DATIVE = "костоправу",
ACCUSATIVE = "костоправ",
INSTRUMENTAL = "костоправом",
PREPOSITIONAL = "костоправе",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "bone setter"
item_state = "bone setter"
Expand All @@ -298,7 +450,15 @@

/obj/item/bonesetter/laser
name = "Advanced Laser Bone Setter"
desc = "A bone settler with a laser teeth. This one looks to be the pinnacle of precision energy a surgery tools!"
desc = "Инструмент для правки костей, оборудованный лазерными элементами. Последнее слово техники в сфере хирургических операций!"
ru_names = list(
NOMINATIVE = "лазерный костоправ",
GENITIVE = "лазерного костоправа",
DATIVE = "лазерному костоправу",
ACCUSATIVE = "лазерный костоправ",
INSTRUMENTAL = "лазерным костоправом",
PREPOSITIONAL = "лазерном костоправе",
)
icon_state = "bonesetter_laser"
item_state = "bonesetter_laser"
toolspeed = 0.4
Expand All @@ -308,7 +468,15 @@

/obj/item/surgical_drapes
name = "surgical drapes"
desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control."
desc = "Хирургическая простыня, обеспечивающая оптимальную безопасность и инфекционный контроль."
ru_names = list(
NOMINATIVE = "хирургическая простыня",
GENITIVE = "хирургической простыни",
DATIVE = "хирургической простыне",
ACCUSATIVE = "хирургическую простыню",
INSTRUMENTAL = "хирургической простынёй",
PREPOSITIONAL = "хирургической простыне",
)
icon = 'icons/obj/surgery.dmi'
icon_state = "surgical_drapes"
w_class = WEIGHT_CLASS_SMALL
Expand Down
Loading