mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-30 07:27:57 +01:00
Convert most spans to defines (#31080)
* spanish? * aaaagain * keep maptext * Update robot_items.dm * Update span_defines.dm * compiles * Update silicon_mob.dm * compile
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>[src] is assembled in the [parent_organ == "r_arm" ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.</span>"
|
||||
. += SPAN_NOTICE("[src] is assembled in the [parent_organ == "r_arm" ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.")
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/screwdriver_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
@@ -43,7 +43,7 @@
|
||||
else
|
||||
parent_organ = "r_arm"
|
||||
slot = parent_organ + "_device"
|
||||
to_chat(user, "<span class='notice'>You modify [src] to be installed on the [parent_organ == "r_arm" ? "right" : "left"] arm.</span>")
|
||||
to_chat(user, SPAN_NOTICE("You modify [src] to be installed on the [parent_organ == "r_arm" ? "right" : "left"] arm."))
|
||||
update_icon(UPDATE_ICON_STATE)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/insert(mob/living/carbon/M, special, dont_remove_slot)
|
||||
@@ -62,7 +62,7 @@
|
||||
if(emp_proof)
|
||||
return
|
||||
if(prob(15/severity) && owner)
|
||||
to_chat(owner, "<span class='warning'>[src] is hit by EMP!</span>")
|
||||
to_chat(owner, SPAN_WARNING("[src] is hit by EMP!"))
|
||||
// give the owner an idea about why his implant is glitching
|
||||
Retract()
|
||||
..()
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/proc/check_cuffs()
|
||||
if(owner.handcuffed)
|
||||
to_chat(owner, "<span class='warning'>The handcuffs interfere with [src]!</span>")
|
||||
to_chat(owner, SPAN_WARNING("The handcuffs interfere with [src]!"))
|
||||
return TRUE
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/proc/Retract()
|
||||
@@ -116,9 +116,9 @@
|
||||
if(status & ORGAN_DEAD)
|
||||
return
|
||||
|
||||
owner.visible_message("<span class='notice'>[owner] retracts [holder] back into [owner.p_their()] [parent_organ == "r_arm" ? "right" : "left"] arm.</span>",
|
||||
"<span class='notice'>[holder] snaps back into your [parent_organ == "r_arm" ? "right" : "left"] arm.</span>",
|
||||
"<span class='italics'>You hear a short mechanical noise.</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] retracts [holder] back into [owner.p_their()] [parent_organ == "r_arm" ? "right" : "left"] arm."),
|
||||
SPAN_NOTICE("[holder] snaps back into your [parent_organ == "r_arm" ? "right" : "left"] arm."),
|
||||
SPAN_ITALICS("You hear a short mechanical noise."))
|
||||
|
||||
if(istype(holder, /obj/item/flash/armimplant))
|
||||
var/obj/item/flash/F = holder
|
||||
@@ -152,31 +152,31 @@
|
||||
if(arm_item)
|
||||
if(istype(arm_item, /obj/item/offhand))
|
||||
var/obj/item/offhand_arm_item = owner.get_active_hand()
|
||||
to_chat(owner, "<span class='warning'>Your hands are too encumbered wielding [offhand_arm_item] to deploy [src]!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your hands are too encumbered wielding [offhand_arm_item] to deploy [src]!"))
|
||||
return
|
||||
else if(!owner.drop_item_to_ground(arm_item))
|
||||
to_chat(owner, "<span class='warning'>Your [arm_item] interferes with [src]!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [arm_item] interferes with [src]!"))
|
||||
return
|
||||
else
|
||||
to_chat(owner, "<span class='notice'>You drop [arm_item] to activate [src]!</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You drop [arm_item] to activate [src]!"))
|
||||
|
||||
if(parent_organ == "r_arm" ? !owner.put_in_r_hand(holder) : !owner.put_in_l_hand(holder))
|
||||
to_chat(owner, "<span class='warning'>Your [src] fails to activate!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [src] fails to activate!"))
|
||||
return
|
||||
|
||||
// Activate the hand that now holds our item.
|
||||
if(parent_organ == "r_arm" ? owner.hand : !owner.hand)
|
||||
owner.swap_hand()
|
||||
|
||||
owner.visible_message("<span class='notice'>[owner] extends [holder] from [owner.p_their()] [parent_organ == "r_arm" ? "right" : "left"] arm.</span>",
|
||||
"<span class='notice'>You extend [holder] from your [parent_organ == "r_arm" ? "right" : "left"] arm.</span>",
|
||||
"<span class='italics'>You hear a short mechanical noise.</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] extends [holder] from [owner.p_their()] [parent_organ == "r_arm" ? "right" : "left"] arm."),
|
||||
SPAN_NOTICE("You extend [holder] from your [parent_organ == "r_arm" ? "right" : "left"] arm."),
|
||||
SPAN_ITALICS("You hear a short mechanical noise."))
|
||||
playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1)
|
||||
return TRUE
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/ui_action_click()
|
||||
if(crit_fail || (!holder && !length(contents)) || status & ORGAN_DEAD)
|
||||
to_chat(owner, "<span class='warning'>The implant doesn't respond. It seems to be broken...</span>")
|
||||
to_chat(owner, SPAN_WARNING("The implant doesn't respond. It seems to be broken..."))
|
||||
return
|
||||
|
||||
// You can emag the arm-mounted implant by activating it while holding emag in it's hand.
|
||||
@@ -216,9 +216,9 @@
|
||||
return
|
||||
if(prob(30/severity) && owner && !crit_fail)
|
||||
Retract()
|
||||
owner.visible_message("<span class='danger'>A loud bang comes from [owner]\'s [parent_organ == "r_arm" ? "right" : "left"] arm!</span>")
|
||||
owner.visible_message(SPAN_DANGER("A loud bang comes from [owner]\'s [parent_organ == "r_arm" ? "right" : "left"] arm!"))
|
||||
playsound(get_turf(owner), 'sound/weapons/flashbang.ogg', 100, 1)
|
||||
to_chat(owner, "<span class='userdanger'>You feel an explosion erupt inside your [parent_organ == "r_arm" ? "right" : "left"] arm as your implant misfires!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("You feel an explosion erupt inside your [parent_organ == "r_arm" ? "right" : "left"] arm as your implant misfires!"))
|
||||
owner.adjust_fire_stacks(20)
|
||||
owner.IgniteMob()
|
||||
owner.adjustFireLoss(25)
|
||||
@@ -268,7 +268,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/toolset/emag_act(mob/user)
|
||||
if(!(locate(/obj/item/kitchen/knife/combat/cyborg) in items_list))
|
||||
to_chat(user, "<span class='notice'>You unlock [src]'s integrated knife!</span>")
|
||||
to_chat(user, SPAN_NOTICE("You unlock [src]'s integrated knife!"))
|
||||
items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -475,7 +475,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/power_cord/surgeryize()
|
||||
if(crit_fail && owner)
|
||||
to_chat(owner, "<span class='notice'>Your [src] feels functional again.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your [src] feels functional again."))
|
||||
crit_fail = FALSE
|
||||
|
||||
|
||||
@@ -491,7 +491,7 @@
|
||||
if(!istype(target, /obj/machinery/power/apc) || !ishuman(user) || !proximity_flag)
|
||||
return ..()
|
||||
if(drawing_power)
|
||||
to_chat(user, "<span class='warning'>You're already charging.</span>")
|
||||
to_chat(user, SPAN_WARNING("You're already charging."))
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/obj/machinery/power/apc/A = target
|
||||
@@ -500,28 +500,28 @@
|
||||
if(istype(power_source))
|
||||
if(A.emagged || A.stat & BROKEN)
|
||||
do_sparks(3, 1, A)
|
||||
to_chat(H, "<span class='warning'>The APC power currents surge erratically, damaging your chassis!</span>")
|
||||
to_chat(H, SPAN_WARNING("The APC power currents surge erratically, damaging your chassis!"))
|
||||
H.adjustFireLoss(10,0)
|
||||
else if(A.cell && A.cell.charge > 0)
|
||||
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
|
||||
to_chat(user, "<span class='warning'>You are already fully charged!</span>")
|
||||
to_chat(user, SPAN_WARNING("You are already fully charged!"))
|
||||
else
|
||||
INVOKE_ASYNC(src, PROC_REF(powerdraw_loop), A, H)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There is no charge to draw from that APC.</span>")
|
||||
to_chat(user, SPAN_WARNING("There is no charge to draw from that APC."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You lack a power source in which to store charge!</span>")
|
||||
to_chat(user, SPAN_WARNING("You lack a power source in which to store charge!"))
|
||||
|
||||
/obj/item/apc_powercord/proc/powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
|
||||
H.visible_message("<span class='notice'>[H] inserts a power connector into \the [A].</span>", "<span class='notice'>You begin to draw power from \the [A].</span>")
|
||||
H.visible_message(SPAN_NOTICE("[H] inserts a power connector into \the [A]."), SPAN_NOTICE("You begin to draw power from \the [A]."))
|
||||
drawing_power = TRUE
|
||||
var/can_safely_charge = HAS_TRAIT(H, TRAIT_NO_APC_CHARGING) ? FALSE : TRUE
|
||||
while(do_after(H, 10, target = A))
|
||||
if(loc != H)
|
||||
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
|
||||
to_chat(H, SPAN_WARNING("You must keep your connector out while charging!"))
|
||||
break
|
||||
if(A.cell.charge == 0)
|
||||
to_chat(H, "<span class='warning'>\The [A] has no more charge.</span>")
|
||||
to_chat(H, SPAN_WARNING("\The [A] has no more charge."))
|
||||
break
|
||||
A.charging = APC_IS_CHARGING
|
||||
if(A.cell.charge >= 500)
|
||||
@@ -529,16 +529,16 @@
|
||||
H.adjust_bodytemperature(60) // Don't overcharge your batteries
|
||||
H.adjust_nutrition(50)
|
||||
A.cell.charge -= 500
|
||||
to_chat(H, "<span class='notice'>You siphon off some of the stored charge for your own use.</span>")
|
||||
to_chat(H, SPAN_NOTICE("You siphon off some of the stored charge for your own use."))
|
||||
else
|
||||
H.adjust_nutrition(A.cell.charge * 0.1)
|
||||
A.cell.charge = 0
|
||||
to_chat(H, "<span class='notice'>You siphon off the last of \the [A]'s charge.</span>")
|
||||
to_chat(H, SPAN_NOTICE("You siphon off the last of \the [A]'s charge."))
|
||||
break
|
||||
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
|
||||
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
|
||||
to_chat(H, SPAN_NOTICE("You are now fully charged."))
|
||||
break
|
||||
H.visible_message("<span class='notice'>[H] unplugs from \the [A].</span>", "<span class='notice'>You unplug from \the [A].</span>")
|
||||
H.visible_message(SPAN_NOTICE("[H] unplugs from \the [A]."), SPAN_NOTICE("You unplug from \the [A]."))
|
||||
drawing_power = FALSE
|
||||
if(can_safely_charge)
|
||||
return
|
||||
@@ -547,7 +547,7 @@
|
||||
H.IgniteMob()
|
||||
var/datum/organ/battery/microbattery = H.get_int_organ_datum(ORGAN_DATUM_BATTERY)
|
||||
microbattery.linked_organ.receive_damage(H.bodytemperature / 50)
|
||||
H.visible_message("<span class='warning'>...Then immediately bursts into flame!</span>", "<span class='userdanger'>Something inside you combusts!</span>")
|
||||
H.visible_message(SPAN_WARNING("...Then immediately bursts into flame!"), SPAN_USERDANGER("Something inside you combusts!"))
|
||||
|
||||
/datum/action/item_action/organ_action/toggle/telebaton
|
||||
button_icon = 'icons/obj/items.dmi'
|
||||
@@ -630,7 +630,7 @@
|
||||
|
||||
/obj/item/melee/razorwire/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click it to reskin it.</span>"
|
||||
. += SPAN_NOTICE("Alt-click it to reskin it.")
|
||||
|
||||
/obj/item/melee/razorwire/examine_more(mob/user)
|
||||
. = ..()
|
||||
@@ -648,7 +648,7 @@
|
||||
/obj/item/melee/razorwire/AltClick(mob/user)
|
||||
..()
|
||||
if(user.incapacitated())
|
||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||
to_chat(user, SPAN_WARNING("You can't do that right now!"))
|
||||
return
|
||||
if(loc == user)
|
||||
reskin(user)
|
||||
@@ -710,7 +710,7 @@
|
||||
can_sawoff = FALSE
|
||||
|
||||
/obj/item/gun/projectile/revolver/doublebarrel/shell_launcher/proc/missfire(mob/living/carbon/human/H, our_organ)
|
||||
to_chat(H, "<span class='warning'>Your [name] misfires!</span>")
|
||||
to_chat(H, SPAN_WARNING("Your [name] misfires!"))
|
||||
process_fire(H, H, 1, zone_override = our_organ)
|
||||
|
||||
/obj/item/gun/projectile/revolver/doublebarrel/shell_launcher/examine_more(mob/user)
|
||||
@@ -760,7 +760,7 @@
|
||||
emp_proof = TRUE //This kills the server without it. Do not remove this.
|
||||
SL.missfire(owner, parent_organ)
|
||||
emp_proof = FALSE
|
||||
to_chat(owner, "<span class='warning'>The misfired [SL.chambered] causes your [name] to break!</span>")
|
||||
to_chat(owner, SPAN_WARNING("The misfired [SL.chambered] causes your [name] to break!"))
|
||||
necrotize()
|
||||
return
|
||||
if(istype(SL.chambered, /obj/item/ammo_casing/shotgun/frag12))
|
||||
@@ -819,13 +819,13 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/v1_arm/Extend(obj/item/item)
|
||||
if(disabled)
|
||||
to_chat(owner, "<span class='warning'>Your arm fails to extend!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your arm fails to extend!"))
|
||||
return FALSE
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/v1_arm/Retract()
|
||||
if(disabled)
|
||||
to_chat(owner, "<span class='warning'>Your arm fails to retract!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your arm fails to retract!"))
|
||||
return FALSE
|
||||
..()
|
||||
|
||||
@@ -859,12 +859,12 @@
|
||||
var/force_when_disabled = 5 //still basically a metal pipe, just hard to move
|
||||
|
||||
/obj/item/shield/v1_arm/customised_abstract_text(mob/living/carbon/owner)
|
||||
return "<span class='warning'>[owner.p_their(TRUE)] [owner.l_hand == src ? "left arm" : "right arm"] is covered in metal.</span>"
|
||||
return SPAN_WARNING("[owner.p_their(TRUE)] [owner.l_hand == src ? "left arm" : "right arm"] is covered in metal.")
|
||||
|
||||
/obj/item/shield/v1_arm/emp_act(severity)
|
||||
if(disabled)
|
||||
return
|
||||
to_chat(loc, "<span class='warning'>Your arm seises up!</span>")
|
||||
to_chat(loc, SPAN_WARNING("Your arm seises up!"))
|
||||
disabled = TRUE
|
||||
force = force_when_disabled
|
||||
addtimer(CALLBACK(src, PROC_REF(reboot)), 10 SECONDS)
|
||||
@@ -884,7 +884,7 @@
|
||||
if(!.) // they did not block the attack
|
||||
return
|
||||
if(. == 1) // a normal block
|
||||
owner.visible_message("<span class='danger'>[owner] blocks [attack_text] with [src]!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] blocks [attack_text] with [src]!"))
|
||||
playsound(src, 'sound/weapons/effects/ric3.ogg', 100, TRUE)
|
||||
return TRUE
|
||||
|
||||
@@ -896,7 +896,7 @@
|
||||
if(P.shield_buster || istype(P, /obj/projectile/ion)) //EMP's and unpariable attacks, after all.
|
||||
return FALSE
|
||||
if(P.reflectability == REFLECTABILITY_NEVER) //only 1 magic spell does this, but hey, needed
|
||||
owner.visible_message("<span class='danger'>[owner] blocks [attack_text] with [src]!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] blocks [attack_text] with [src]!"))
|
||||
playsound(src, 'sound/weapons/effects/ric3.ogg', 100, TRUE)
|
||||
return TRUE
|
||||
|
||||
@@ -906,11 +906,11 @@
|
||||
P.hitsound_wall = sound
|
||||
P.add_overlay("parry")
|
||||
playsound(src, 'sound/weapons/v1_parry.ogg', 100, TRUE)
|
||||
owner.visible_message("<span class='danger'>[owner] parries [attack_text] with [src]!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] parries [attack_text] with [src]!"))
|
||||
add_attack_logs(P.firer, src, "hit by [P.type] but got parried by [src]")
|
||||
return -1
|
||||
|
||||
owner.visible_message("<span class='danger'>[owner] parries [attack_text] with [src]!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] parries [attack_text] with [src]!"))
|
||||
playsound(src, 'sound/weapons/v1_parry.ogg', 100, TRUE)
|
||||
if(attack_type == THROWN_PROJECTILE_ATTACK)
|
||||
if(!isitem(hitby))
|
||||
@@ -931,7 +931,7 @@
|
||||
|
||||
/obj/item/v1_arm_shell/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/assembly/signaler/anomaly/vortex))
|
||||
to_chat(user, "<span class='notice'>You insert [I] into the back of the hand, and the implant begins to boot up.</span>")
|
||||
to_chat(user, SPAN_NOTICE("You insert [I] into the back of the hand, and the implant begins to boot up."))
|
||||
new /obj/item/organ/internal/cyberimp/arm/v1_arm(get_turf(src))
|
||||
qdel(src)
|
||||
qdel(I)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/item/organ/internal/cyberimp/eyes/insert(mob/living/carbon/M, special = FALSE)
|
||||
..()
|
||||
if(aug_message && !special)
|
||||
to_chat(owner, "<span class='notice'>[aug_message]</span>")
|
||||
to_chat(owner, SPAN_NOTICE("[aug_message]"))
|
||||
|
||||
// HUD implants
|
||||
/obj/item/organ/internal/cyberimp/eyes/hud
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It looks like it belongs in the [parse_zone(parent_organ)].</span>"
|
||||
. += SPAN_NOTICE("It looks like it belongs in the [parse_zone(parent_organ)].")
|
||||
|
||||
//[[[[BRAIN]]]]
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
return
|
||||
var/weaken_time = (5 + (severity - 1 ? 0 : 5)) STATUS_EFFECT_CONSTANT
|
||||
owner.Weaken(weaken_time)
|
||||
to_chat(owner, "<span class='warning'>Your body seizes up!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your body seizes up!"))
|
||||
return weaken_time
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
r_hand_ignore = FALSE
|
||||
|
||||
if(!l_hand_obj && !r_hand_obj)
|
||||
to_chat(owner, "<span class='notice'>You are not holding any items, your hands relax...</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You are not holding any items, your hands relax..."))
|
||||
active = FALSE
|
||||
else
|
||||
var/msg = 0
|
||||
@@ -82,14 +82,14 @@
|
||||
msg += !r_hand_ignore && r_hand_obj ? 2 : 0
|
||||
switch(msg)
|
||||
if(1)
|
||||
to_chat(owner, "<span class='notice'>Your left hand's grip tightens.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your left hand's grip tightens."))
|
||||
if(2)
|
||||
to_chat(owner, "<span class='notice'>Your right hand's grip tightens.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your right hand's grip tightens."))
|
||||
if(3)
|
||||
to_chat(owner, "<span class='notice'>Both of your hand's grips tighten.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Both of your hand's grips tighten."))
|
||||
else
|
||||
release_items()
|
||||
to_chat(owner, "<span class='notice'>Your hands relax...</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your hands relax..."))
|
||||
l_hand_obj = null
|
||||
r_hand_obj = null
|
||||
|
||||
@@ -106,12 +106,12 @@
|
||||
if(L_item)
|
||||
A = pick(oview(range, owner))
|
||||
L_item.throw_at(A, range, 2)
|
||||
to_chat(owner, "<span class='notice'>Your left arm spasms and throws [L_item]!</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your left arm spasms and throws [L_item]!"))
|
||||
l_hand_obj = null
|
||||
if(R_item)
|
||||
A = pick(oview(range, owner))
|
||||
R_item.throw_at(A, range, 2)
|
||||
to_chat(owner, "<span class='notice'>Your right arm spasms and throws [R_item]!</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your right arm spasms and throws [R_item]!"))
|
||||
r_hand_obj = null
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_drop/proc/release_items()
|
||||
@@ -202,13 +202,13 @@
|
||||
if(owner.stat == UNCONSCIOUS && !cooldown)
|
||||
owner.AdjustSleeping(-200 SECONDS)
|
||||
owner.AdjustParalysis(-200 SECONDS)
|
||||
to_chat(owner, "<span class='notice'>You feel a rush of energy course through your body!</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You feel a rush of energy course through your body!"))
|
||||
cooldown = TRUE
|
||||
addtimer(CALLBACK(src, PROC_REF(sleepy_timer_end)), 50)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_sleep/proc/sleepy_timer_end()
|
||||
cooldown = FALSE
|
||||
to_chat(owner, "<span class='notice'>You hear a small beep in your head as your Neural Jumpstarter finishes recharging.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You hear a small beep in your head as your Neural Jumpstarter finishes recharging."))
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_sleep/emp_act(severity)
|
||||
. = ..()
|
||||
@@ -235,7 +235,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/clown_voice
|
||||
name = "Comical implant"
|
||||
desc = "<span class='sans'>Uh oh.</span>"
|
||||
desc = SPAN_SANS("Uh oh.")
|
||||
implant_color = "#DEDE00"
|
||||
slot = "brain_clownvoice"
|
||||
origin_tech = "materials=2;biotech=2"
|
||||
@@ -270,7 +270,7 @@
|
||||
if(emp_proof)
|
||||
return
|
||||
if(owner && active && !crit_fail)
|
||||
to_chat(owner, "<span class='danger'>Your translator implant shuts down with a harsh buzz.</span>")
|
||||
to_chat(owner, SPAN_DANGER("Your translator implant shuts down with a harsh buzz."))
|
||||
addtimer(CALLBACK(src, PROC_REF(reboot)), 60 SECONDS)
|
||||
crit_fail = TRUE
|
||||
active = FALSE
|
||||
@@ -278,17 +278,17 @@
|
||||
/obj/item/organ/internal/cyberimp/brain/speech_translator/proc/reboot()
|
||||
crit_fail = FALSE
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='notice'>Your translator implant beeps.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your translator implant beeps."))
|
||||
SEND_SOUND(owner, sound('sound/machines/twobeep.ogg'))
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/speech_translator/ui_action_click()
|
||||
if(owner && crit_fail)
|
||||
to_chat(owner, "<span class='warning'>The implant is still rebooting.</span>")
|
||||
to_chat(owner, SPAN_WARNING("The implant is still rebooting."))
|
||||
else if(owner && !active)
|
||||
to_chat(owner, "<span class='notice'>You turn on your translator implant.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You turn on your translator implant."))
|
||||
active = TRUE
|
||||
else if(owner && active)
|
||||
to_chat(owner, "<span class='notice'>You turn off your translator implant.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You turn off your translator implant."))
|
||||
active = FALSE
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/wire_interface
|
||||
@@ -346,7 +346,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/sensory_enhancer/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='userdanger'>Epilepsy Warning: Drug has vibrant visual effects!</span>"
|
||||
. += SPAN_USERDANGER("Epilepsy Warning: Drug has vibrant visual effects!")
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/sensory_enhancer/examine_more(mob/user)
|
||||
. = ..()
|
||||
@@ -411,7 +411,7 @@
|
||||
if(istype(target, /obj/item/organ/internal/cyberimp/brain/sensory_enhancer))
|
||||
var/obj/item/organ/internal/cyberimp/brain/sensory_enhancer/ourtarget = target
|
||||
if(!COOLDOWN_FINISHED(ourtarget, sensory_enhancer_cooldown))
|
||||
to_chat(owner, "<span class='warning'>[ourtarget] is still on cooldown for another [round(COOLDOWN_TIMELEFT(ourtarget, sensory_enhancer_cooldown), 1 SECONDS) / 10] seconds!</span>")
|
||||
to_chat(owner, SPAN_WARNING("[ourtarget] is still on cooldown for another [round(COOLDOWN_TIMELEFT(ourtarget, sensory_enhancer_cooldown), 1 SECONDS) / 10] seconds!"))
|
||||
return
|
||||
|
||||
COOLDOWN_START(ourtarget, sensory_enhancer_cooldown, 5 MINUTES)
|
||||
@@ -431,8 +431,8 @@
|
||||
|
||||
human_owner.reagents.add_reagent("mephedrone", injection_amount)
|
||||
|
||||
owner.visible_message("<span class='danger'>[owner.name] jolts suddenly as two small glass vials are fired from ports in the implant on [owner.p_their()] spine, shattering as they land.</span>", \
|
||||
"<span class='userdanger'>You jolt suddenly as your Qani-Laaca system ejects two empty glass vials rearward, shattering as they land.</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner.name] jolts suddenly as two small glass vials are fired from ports in the implant on [owner.p_their()] spine, shattering as they land."), \
|
||||
SPAN_USERDANGER("You jolt suddenly as your Qani-Laaca system ejects two empty glass vials rearward, shattering as they land."))
|
||||
playsound(human_owner, 'sound/goonstation/items/hypo.ogg', 80, TRUE)
|
||||
|
||||
var/obj/item/telegraph_vial = new /obj/item/qani_laaca_telegraph(get_turf(owner))
|
||||
@@ -509,7 +509,7 @@
|
||||
/obj/item/organ/internal/cyberimp/brain/hackerman_deck/emp_act(severity)
|
||||
owner.adjustStaminaLoss(40 / severity)
|
||||
owner.adjust_bodytemperature(400 / severity)
|
||||
to_chat(owner, "<span class='warning'>Your [name] heats up drastically!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] heats up drastically!"))
|
||||
return TRUE
|
||||
|
||||
/datum/spell/hackerman_deck
|
||||
@@ -543,11 +543,11 @@
|
||||
/datum/spell/hackerman_deck/cast(list/targets, mob/user)
|
||||
var/atom/target = targets[1]
|
||||
if(get_dist(user, target) > 3) //fucking cameras holy shit
|
||||
to_chat(user, "<span class='warning'>Your implant is not robust enough to hack at that distance!</span>")
|
||||
to_chat(user, SPAN_WARNING("Your implant is not robust enough to hack at that distance!"))
|
||||
cooldown_handler.start_recharge(cooldown_handler.recharge_duration * 0.3)
|
||||
return
|
||||
if(istype(user.loc, /obj/machinery/atmospherics)) //Come now, no emaging all the doors on station from a pipe
|
||||
to_chat(user, "<span class='warning'>Your implant is unable to get a lock on anything in the pipes!</span>")
|
||||
to_chat(user, SPAN_WARNING("Your implant is unable to get a lock on anything in the pipes!"))
|
||||
return
|
||||
var/beam
|
||||
if(!isturf(user.loc)) //Using it inside a locker or stealth box is fine! Let us make sure the beam can be seen though.
|
||||
@@ -555,8 +555,8 @@
|
||||
else
|
||||
beam = user.Beam(target, icon_state = "sm_arc_supercharged", time = 3 SECONDS)
|
||||
|
||||
user.visible_message("<span class='warning'>[user] makes an unusual buzzing sound as the air between them and [target] crackles.</span>", \
|
||||
"<span class='warning'>The air between you and [target] begins to crackle audibly as the Binyat gets to work and heats up in your head!</span>")
|
||||
user.visible_message(SPAN_WARNING("[user] makes an unusual buzzing sound as the air between them and [target] crackles."), \
|
||||
SPAN_WARNING("The air between you and [target] begins to crackle audibly as the Binyat gets to work and heats up in your head!"))
|
||||
|
||||
if(!do_after(user, 3 SECONDS, target))
|
||||
qdel(beam)
|
||||
@@ -564,7 +564,7 @@
|
||||
return
|
||||
|
||||
if(!target.emag_act(user))
|
||||
to_chat(user, "<span class='warning'>You are unable to hack this!</span>")
|
||||
to_chat(user, SPAN_WARNING("You are unable to hack this!"))
|
||||
cooldown_handler.start_recharge(cooldown_handler.recharge_duration * 0.3)
|
||||
return
|
||||
|
||||
@@ -604,7 +604,7 @@
|
||||
if(emp_proof)
|
||||
return
|
||||
if(prob(60/severity) && owner)
|
||||
to_chat(owner, "<span class='warning'>Your breathing tube suddenly closes!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your breathing tube suddenly closes!"))
|
||||
owner.AdjustLoseBreath(4 SECONDS)
|
||||
|
||||
//[[[[CHEST]]]]
|
||||
@@ -645,7 +645,7 @@
|
||||
return FALSE
|
||||
if(owner.nutrition <= hunger_threshold)
|
||||
synthesizing = TRUE
|
||||
to_chat(owner, "<span class='notice'>You feel less hungry...</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You feel less hungry..."))
|
||||
owner.adjust_nutrition(50)
|
||||
addtimer(CALLBACK(src, PROC_REF(synth_cool)), 50)
|
||||
|
||||
@@ -659,9 +659,9 @@
|
||||
if(!owner || emp_proof)
|
||||
return
|
||||
owner.vomit(100, FALSE, TRUE, 3, FALSE) // because when else do we ever use projectile vomiting
|
||||
owner.visible_message("<span class='warning'>The contents of [owner]'s stomach erupt violently from [owner.p_their()] mouth!</span>",
|
||||
"<span class='warning'>You feel like your insides are burning as you vomit profusely!</span>",
|
||||
"<span class='warning'>You hear vomiting and a sickening splattering against the floor!</span>")
|
||||
owner.visible_message(SPAN_WARNING("The contents of [owner]'s stomach erupt violently from [owner.p_their()] mouth!"),
|
||||
SPAN_WARNING("You feel like your insides are burning as you vomit profusely!"),
|
||||
SPAN_WARNING("You hear vomiting and a sickening splattering against the floor!"))
|
||||
owner.reagents.add_reagent("????",poison_amount / severity) //food poisoning
|
||||
disabled_by_emp = TRUE // Disable the implant for a little bit so this effect actually matters
|
||||
synthesizing = FALSE
|
||||
@@ -745,7 +745,7 @@
|
||||
if(owner.stat != DEAD && reached_heal_threshold()) //Don't stop healing when they are dead.
|
||||
COOLDOWN_START(src, reviver_cooldown, revive_cost)
|
||||
reviving = FALSE
|
||||
to_chat(owner, "<span class='notice'>Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)]."))
|
||||
applied_nugget_cooldown = FALSE
|
||||
else
|
||||
addtimer(CALLBACK(src, PROC_REF(heal)), 3 SECONDS)
|
||||
@@ -761,7 +761,7 @@
|
||||
revive_cost = 0
|
||||
reviving = TRUE
|
||||
has_defibed = FALSE
|
||||
to_chat(owner, "<span class='notice'>You feel a faint buzzing as your reviver implant starts patching your wounds...</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You feel a faint buzzing as your reviver implant starts patching your wounds..."))
|
||||
COOLDOWN_START(src, defib_cooldown, 8 SECONDS) // 5 seconds after heal proc delay
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/reviver/proc/heal()
|
||||
@@ -791,23 +791,23 @@
|
||||
|
||||
if(body_damage_patched && prob(25)) // healing is called every few seconds, not every tick
|
||||
if(owner.stat != CONSCIOUS)
|
||||
owner.visible_message("<span class='warning'>[owner]'s body [pick("twitches", "shifts", "shivers", "spasms", "vibrates")] a bit.</span>", \
|
||||
"<span class='notice'>You feel like something is patching your injured body.</span>")
|
||||
owner.visible_message(SPAN_WARNING("[owner]'s body [pick("twitches", "shifts", "shivers", "spasms", "vibrates")] a bit."), \
|
||||
SPAN_NOTICE("You feel like something is patching your injured body."))
|
||||
else // No twitching if awake.
|
||||
to_chat(owner, "<span class='notice'>You feel like something is patching your injured body.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You feel like something is patching your injured body."))
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/reviver/proc/revive_dead()
|
||||
if(!COOLDOWN_FINISHED(src, defib_cooldown) || owner.stat != DEAD || !can_defib())
|
||||
return
|
||||
var/mob/dead/observer/ghost = owner.get_ghost()
|
||||
if(ghost)
|
||||
to_chat(ghost, "<span class='ghostalert'>You are being revived by [src]!</span>")
|
||||
to_chat(ghost, SPAN_GHOSTALERT("You are being revived by [src]!"))
|
||||
window_flash(ghost.client)
|
||||
SEND_SOUND(ghost, sound('sound/effects/genetics.ogg'))
|
||||
COOLDOWN_START(src, defib_cooldown, 16 SECONDS)
|
||||
playsound(get_turf(owner), 'sound/machines/defib_charge.ogg', 50, FALSE)
|
||||
owner.grab_ghost()
|
||||
owner.visible_message("<span class='warning'>[owner]'s body spasms violently!</span>")
|
||||
owner.visible_message(SPAN_WARNING("[owner]'s body spasms violently!"))
|
||||
addtimer(CALLBACK(src, PROC_REF(zap_em)), 5 SECONDS)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/reviver/proc/zap_em()
|
||||
@@ -889,7 +889,7 @@
|
||||
H.adjustOxyLoss(-100) ///In the unlikely case that you are still alive, this should get you maybe to livable circumstances.
|
||||
H.SetLoseBreath(0)
|
||||
if(H.stat == CONSCIOUS)
|
||||
to_chat(H, "<span class='notice'>You feel your heart beating again!</span>")
|
||||
to_chat(H, SPAN_NOTICE("You feel your heart beating again!"))
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor
|
||||
name = "bluespace anchor implant"
|
||||
@@ -916,7 +916,7 @@
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/proc/on_teleport(mob/living/teleportee, atom/destination, channel)
|
||||
SIGNAL_HANDLER // COMSIG_MOVABLE_TELEPORTED
|
||||
|
||||
to_chat(teleportee, "<span class='userdanger'>You feel yourself teleporting, but are suddenly flung back to where you just were!</span>")
|
||||
to_chat(teleportee, SPAN_USERDANGER("You feel yourself teleporting, but are suddenly flung back to where you just were!"))
|
||||
|
||||
teleportee.Weaken(5 SECONDS)
|
||||
var/datum/effect_system/spark_spread/spark_system = new()
|
||||
@@ -928,7 +928,7 @@
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/proc/on_jaunt(mob/living/jaunter)
|
||||
SIGNAL_HANDLER // COMSIG_MOB_PRE_JAUNT
|
||||
|
||||
to_chat(jaunter, "<span class='userdanger'>As you attempt to jaunt, you slam directly into the barrier between realities and are sent crashing back into corporeality!</span>")
|
||||
to_chat(jaunter, SPAN_USERDANGER("As you attempt to jaunt, you slam directly into the barrier between realities and are sent crashing back into corporeality!"))
|
||||
|
||||
jaunter.Weaken(5 SECONDS)
|
||||
var/datum/effect_system/spark_spread/spark_system = new()
|
||||
@@ -982,7 +982,7 @@
|
||||
return
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
to_chat(H, "<span class='userdanger'>Your magnetic joints lose power!</span>")
|
||||
to_chat(H, SPAN_USERDANGER("Your magnetic joints lose power!"))
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
if(E.body_part != UPPER_TORSO && E.body_part != LOWER_TORSO)
|
||||
E.droplimb(TRUE) //lego disasemble sound
|
||||
@@ -1006,7 +1006,7 @@
|
||||
return
|
||||
var/weaken_time = (10 + (severity - 1 ? 0 : 10)) SECONDS
|
||||
owner.Weaken(weaken_time) //Pop it and lock it
|
||||
to_chat(owner, "<span class='warning'>Your body seizes up!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your body seizes up!"))
|
||||
return weaken_time
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/ipc_joints/sealed/insert(mob/living/carbon/M, special = FALSE)
|
||||
|
||||
@@ -30,14 +30,14 @@
|
||||
|
||||
/obj/item/autosurgeon/organ/attack_self__legacy__attackchain(mob/user) //when the object it used...
|
||||
if(!uses)
|
||||
to_chat(user, "<span class='alert'>[src] has already been used. The tools are dull and won't reactivate.</span>")
|
||||
to_chat(user, SPAN_ALERT("[src] has already been used. The tools are dull and won't reactivate."))
|
||||
return
|
||||
else if(!storedorgan)
|
||||
to_chat(user, "<span class='alert'>[src] currently has no implant stored.</span>")
|
||||
to_chat(user, SPAN_ALERT("[src] currently has no implant stored."))
|
||||
return
|
||||
SSblackbox.record_feedback("tally", "o_implant_auto", 1, "[storedorgan.type]")
|
||||
storedorgan.insert(user) //insert stored organ into the user
|
||||
user.visible_message("<span class='notice'>[user] presses a button on [src], and you hear a short mechanical noise.</span>", "<span class='notice'>You feel a sharp sting as [src] plunges into your body.</span>")
|
||||
user.visible_message(SPAN_NOTICE("[user] presses a button on [src], and you hear a short mechanical noise."), SPAN_NOTICE("You feel a sharp sting as [src] plunges into your body."))
|
||||
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, TRUE)
|
||||
storedorgan = null
|
||||
name = initial(name)
|
||||
@@ -49,16 +49,16 @@
|
||||
/obj/item/autosurgeon/organ/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
||||
if(istype(I, organ_type))
|
||||
if(storedorgan)
|
||||
to_chat(user, "<span class='alert'>[src] already has an implant stored.</span>")
|
||||
to_chat(user, SPAN_ALERT("[src] already has an implant stored."))
|
||||
return
|
||||
else if(!uses)
|
||||
to_chat(user, "<span class='alert'>[src] has already been used up.</span>")
|
||||
to_chat(user, SPAN_ALERT("[src] has already been used up."))
|
||||
return
|
||||
if(!user.drop_item())
|
||||
return
|
||||
I.forceMove(src)
|
||||
storedorgan = I
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
||||
to_chat(user, SPAN_NOTICE("You insert [I] into [src]."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -66,11 +66,11 @@
|
||||
if(..())
|
||||
return TRUE
|
||||
if(!storedorgan)
|
||||
to_chat(user, "<span class='warning'>There's no implant in [src] for you to remove!</span>")
|
||||
to_chat(user, SPAN_WARNING("There's no implant in [src] for you to remove!"))
|
||||
else
|
||||
storedorgan.forceMove(user.drop_location())
|
||||
|
||||
to_chat(user, "<span class='notice'>You remove [storedorgan] from [src].</span>")
|
||||
to_chat(user, SPAN_NOTICE("You remove [storedorgan] from [src]."))
|
||||
I.play_tool_sound(src)
|
||||
storedorgan = null
|
||||
if(uses != INFINITE)
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
/obj/item/autosurgeon/organ/syndicate/oneuse/sensory_enhancer/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='userdanger'>Epilepsy Warning: Drug has vibrant visual effects!</span>"
|
||||
. += SPAN_USERDANGER("Epilepsy Warning: Drug has vibrant visual effects!")
|
||||
|
||||
/obj/item/autosurgeon/organ/syndicate/oneuse/sensory_enhancer/examine_more(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/resume_bleeding()
|
||||
if(stat != DEAD && bleed_rate && bleedsuppress)
|
||||
to_chat(src, "<span class='warning'>The blood soaks through your bandage.</span>")
|
||||
to_chat(src, SPAN_WARNING("The blood soaks through your bandage."))
|
||||
bleedsuppress = FALSE
|
||||
|
||||
// Takes care blood loss and regeneration
|
||||
@@ -33,18 +33,18 @@
|
||||
switch(blood_volume)
|
||||
if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE)
|
||||
if(prob(5))
|
||||
to_chat(src, "<span class='warning'>You feel [word].</span>")
|
||||
to_chat(src, SPAN_WARNING("You feel [word]."))
|
||||
adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1))
|
||||
if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY)
|
||||
adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1))
|
||||
if(prob(5))
|
||||
EyeBlurry(12 SECONDS)
|
||||
to_chat(src, "<span class='warning'>You feel very [word].</span>")
|
||||
to_chat(src, SPAN_WARNING("You feel very [word]."))
|
||||
if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD)
|
||||
adjustOxyLoss(5)
|
||||
if(prob(15))
|
||||
Paralyse(rand(2 SECONDS, 6 SECONDS))
|
||||
to_chat(src, "<span class='warning'>You feel extremely [word].</span>")
|
||||
to_chat(src, SPAN_WARNING("You feel extremely [word]."))
|
||||
if(-INFINITY to BLOOD_VOLUME_SURVIVE)
|
||||
death()
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/obj/item/organ/internal/body_egg/on_find(mob/living/finder)
|
||||
..()
|
||||
to_chat(finder, "<span class='warning'>You found an unknown alien organism in [owner]'s [parent_organ]!</span>")
|
||||
to_chat(finder, SPAN_WARNING("You found an unknown alien organism in [owner]'s [parent_organ]!"))
|
||||
|
||||
/obj/item/organ/internal/body_egg/insert(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
if(prob(5))
|
||||
G.receive_damage(10 + tumor_damage_modifier, 0, FALSE)
|
||||
to_chat(owner, "<span class='danger'>Something sharp is moving around in your lower body!</span>")
|
||||
to_chat(owner, SPAN_DANGER("Something sharp is moving around in your lower body!"))
|
||||
|
||||
if(prob(1))
|
||||
to_chat(owner, "<span class='userdanger'>Something just tore in your lower body!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Something just tore in your lower body!"))
|
||||
|
||||
var/list/other_groin_organs = G.internal_organs
|
||||
other_groin_organs -= src
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
if(H.mind)
|
||||
H.mind.transfer_to(brainmob)
|
||||
|
||||
to_chat(brainmob, "<span class='notice'>You feel slightly disoriented. That's normal when you're just a [initial(name)].</span>")
|
||||
to_chat(brainmob, SPAN_NOTICE("You feel slightly disoriented. That's normal when you're just a [initial(name)]."))
|
||||
|
||||
/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
|
||||
. = ..()
|
||||
@@ -148,48 +148,48 @@
|
||||
/obj/item/organ/internal/brain/proc/handle_minor_brain_damage()
|
||||
if(prob(5))
|
||||
owner.Dizzy(5 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>Your head feels foggy.</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your head feels foggy."))
|
||||
else if(prob(4))
|
||||
owner.vomit()
|
||||
to_chat(owner, "<span class='warning'>You feel nauseous.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You feel nauseous."))
|
||||
|
||||
/obj/item/organ/internal/brain/proc/handle_moderate_brain_damage()
|
||||
if(prob(4))
|
||||
owner.Confused(20 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>It's suddenly difficult to walk straight.</span>")
|
||||
to_chat(owner, SPAN_WARNING("It's suddenly difficult to walk straight."))
|
||||
else if(prob(5))
|
||||
owner.EyeBlurry(15 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>Your vision unfocuses.</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your vision unfocuses."))
|
||||
else if(prob(3))
|
||||
owner.Slur(60 SECONDS)
|
||||
owner.Stuttering(60 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You can't form your words properly.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You can't form your words properly."))
|
||||
|
||||
/obj/item/organ/internal/brain/proc/handle_severe_brain_damage()
|
||||
if(prob(5))
|
||||
owner.Hallucinate(60 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You start losing your grip on reality.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You start losing your grip on reality."))
|
||||
else if(prob(3))
|
||||
owner.Drowsy(20 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You're getting tired.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You're getting tired."))
|
||||
else if(prob(2))
|
||||
owner.Stun(5 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You stare forward in a stupor.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You stare forward in a stupor."))
|
||||
else if(prob(5))
|
||||
owner.KnockDown(1 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You lose your footing, and stumble.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You lose your footing, and stumble."))
|
||||
|
||||
/obj/item/organ/internal/brain/proc/handle_critical_brain_damage()
|
||||
if(prob(4))
|
||||
owner.Silence(45 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You open your mouth to speak, but no sound comes out.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You open your mouth to speak, but no sound comes out."))
|
||||
else if(prob(5))
|
||||
owner.EyeBlind(30 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>Your vision gives out.</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your vision gives out."))
|
||||
else if(prob(5))
|
||||
owner.Weaken(10 SECONDS)
|
||||
owner.Jitter(150 SECONDS)
|
||||
to_chat(owner, "<span class='warning'>You start to have a seizure.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You start to have a seizure."))
|
||||
|
||||
/obj/item/organ/internal/brain/prepare_eat()
|
||||
return // Too important to eat.
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
return
|
||||
if(prob(10 * severity))
|
||||
return
|
||||
to_chat(owner, "<span class='warning'>Static obfuscates your vision!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Static obfuscates your vision!"))
|
||||
owner.flash_eyes(flash_intensity, visual = TRUE)
|
||||
..()
|
||||
|
||||
@@ -313,20 +313,20 @@
|
||||
receive_damage(0.25, 1)
|
||||
new /obj/effect/temp_visual/eyesofgod(T)
|
||||
if(prob(25))
|
||||
to_chat(M, "<span class='warning'>You feel like you are being watched...</span>")
|
||||
to_chat(M, SPAN_WARNING("You feel like you are being watched..."))
|
||||
switch(damage)
|
||||
if(25 to 30)
|
||||
if(prob(50))
|
||||
to_chat(owner, "<span class='warning'>Your eyes are burning in your skull!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your eyes are burning in your skull!"))
|
||||
owner.apply_damage(0.5, BURN, parent_organ)
|
||||
if(30 to 54)
|
||||
receive_damage(0.25, 1) //more pain when damaged
|
||||
if(prob(15)) //Warning that you are still hurting yourself still
|
||||
to_chat(owner, "<span class='warning'>Your eyes are burning in your skull!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your eyes are burning in your skull!"))
|
||||
owner.apply_damage(0.5, BURN, parent_organ)
|
||||
if(55 to 60)
|
||||
if(prob(50))
|
||||
to_chat(owner, "<span class='warning'>Your eyes feel like they are going to explode!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your eyes feel like they are going to explode!"))
|
||||
owner.apply_damage(1, BURN, parent_organ)
|
||||
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
if(shatter_state == ONE_SHATTERED)
|
||||
return
|
||||
shatter_state = ONE_SHATTERED
|
||||
to_chat(owner, "<span class='notice'>Your feel better as your [shatter_state ? "left eye" : "right eye"] fixes itself!</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your feel better as your [shatter_state ? "left eye" : "right eye"] fixes itself!"))
|
||||
|
||||
/obj/item/organ/internal/eyes/cybernetic/eyesofgod/receive_damage(amount, silent)
|
||||
. = ..()
|
||||
@@ -357,7 +357,7 @@
|
||||
shatter_state = ONE_SHATTERED
|
||||
msg = "right eye"
|
||||
owner.become_nearsighted(EYES_OF_GOD)
|
||||
to_chat(owner, "<span class='userdanger'>You scream out in pain as your [msg] shatters!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("You scream out in pain as your [msg] shatters!"))
|
||||
owner.emote("scream")
|
||||
owner.bleed(5)
|
||||
deactivate()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/obj/item/organ/internal/heart/attack_self__legacy__attackchain(mob/user)
|
||||
..()
|
||||
if(status & ORGAN_DEAD)
|
||||
to_chat(user, "<span class='warning'>You can't restart a dead heart.</span>")
|
||||
to_chat(user, SPAN_WARNING("You can't restart a dead heart."))
|
||||
return
|
||||
var/datum/organ/heart/heart = organ_datums[ORGAN_DATUM_HEART]
|
||||
heart.try_restart(8 SECONDS)
|
||||
@@ -58,7 +58,7 @@
|
||||
/obj/item/organ/internal/heart/cursed/attack__legacy__attackchain(mob/living/carbon/human/H, mob/living/carbon/human/user, obj/target)
|
||||
if(H == user && istype(H))
|
||||
if(NO_BLOOD in H.dna.species.species_traits)
|
||||
to_chat(H, "<span class='userdanger'>[src] is not compatible with your form!</span>")
|
||||
to_chat(H, SPAN_USERDANGER("[src] is not compatible with your form!"))
|
||||
return
|
||||
playsound(user,'sound/effects/singlebeat.ogg', 40, 1)
|
||||
user.drop_item()
|
||||
@@ -72,7 +72,7 @@
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(!(NO_BLOOD in H.dna.species.species_traits))
|
||||
H.blood_volume = max(H.blood_volume - blood_loss, 0)
|
||||
to_chat(H, "<span class='userdanger'>You have to keep pumping your blood!</span>")
|
||||
to_chat(H, SPAN_USERDANGER("You have to keep pumping your blood!"))
|
||||
if(H?.client?.prefs.colourblind_mode == COLOURBLIND_MODE_NONE)
|
||||
H.client.color = "red" //bloody screen so real
|
||||
else
|
||||
@@ -81,7 +81,7 @@
|
||||
/obj/item/organ/internal/heart/cursed/insert(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='userdanger'>Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!"))
|
||||
RegisterSignal(owner, COMSIG_LIVING_PRE_DEFIB, PROC_REF(just_before_revive))
|
||||
RegisterSignal(owner, COMSIG_LIVING_DEFIBBED, PROC_REF(on_defib_revive))
|
||||
in_grace_period = TRUE
|
||||
@@ -105,13 +105,13 @@
|
||||
if(times_shocked >= max_shocks_allowed)
|
||||
shocker.visible_message(
|
||||
"<span class='userdanger'>Tendrils of ghastly electricity surge from [shocked] as [shocked.p_their()] heart seems to outright refuse defibrillation!<span>",
|
||||
blind_message = "<span class='danger'>You hear a loud shock.</span>"
|
||||
blind_message = SPAN_DANGER("You hear a loud shock.")
|
||||
)
|
||||
tesla_zap(owner, 4, 8000, ZAP_MOB_STUN | ZAP_MOB_DAMAGE)
|
||||
// NO, YOU!
|
||||
playsound(get_turf(owner), 'sound/magic/lightningshock.ogg', 50, 1)
|
||||
|
||||
defib.audible_message("<span class='boldnotice'>[defib] buzzes: Resuscitation failed - Anomalous heart activity detected while administering shock.</span>")
|
||||
defib.audible_message(SPAN_BOLDNOTICE("[defib] buzzes: Resuscitation failed - Anomalous heart activity detected while administering shock."))
|
||||
playsound(defib, "defib_saftyon.ogg", 50, FALSE)
|
||||
|
||||
return COMPONENT_DEFIB_OVERRIDE
|
||||
@@ -137,14 +137,14 @@
|
||||
in_grace_period = FALSE
|
||||
if(!owner)
|
||||
return
|
||||
to_chat(owner, "<span class='userdanger'>The effects of the shock seem to wear off, and you feel a familiar tightness in your chest! Get pumping!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("The effects of the shock seem to wear off, and you feel a familiar tightness in your chest! Get pumping!"))
|
||||
|
||||
if(times_shocked < max_shocks_allowed - 1)
|
||||
to_chat(owner, "<span class='warning'>It doesn't feel like your [name] enjoyed that.</span>")
|
||||
to_chat(owner, SPAN_WARNING("It doesn't feel like your [name] enjoyed that."))
|
||||
else if(times_shocked == max_shocks_allowed - 1)
|
||||
to_chat(owner, "<span class='danger'>Your [name] starts to feel heavy in your chest. It doesn't seem like it'll be able to take many more shocks!</span>")
|
||||
to_chat(owner, SPAN_DANGER("Your [name] starts to feel heavy in your chest. It doesn't seem like it'll be able to take many more shocks!"))
|
||||
else
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] feels like lead. Something tells you that if you die with it again, you won't get another chance!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] feels like lead. Something tells you that if you die with it again, you won't get another chance!"))
|
||||
|
||||
/datum/action/item_action/organ_action/cursed_heart
|
||||
name = "Pump your heart"
|
||||
@@ -156,12 +156,12 @@
|
||||
var/obj/item/organ/internal/heart/cursed/cursed_heart = target
|
||||
|
||||
if(world.time < (cursed_heart.last_pump + (cursed_heart.pump_delay - 10))) //no spam
|
||||
to_chat(owner, "<span class='userdanger'>Too soon!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Too soon!"))
|
||||
return
|
||||
|
||||
cursed_heart.last_pump = world.time
|
||||
playsound(owner,'sound/effects/singlebeat.ogg',40,1)
|
||||
to_chat(owner, "<span class='notice'>Your heart beats.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("Your heart beats."))
|
||||
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(istype(H))
|
||||
@@ -232,20 +232,20 @@
|
||||
var/datum/organ/heart/heart_datum = organ_datums[ORGAN_DATUM_HEART]
|
||||
|
||||
if(!heart_datum.beating)
|
||||
to_chat(owner, "<span class='warning'>Your [name] detects a cardiac event and attempts to return to its normal rhythm!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] detects a cardiac event and attempts to return to its normal rhythm!"))
|
||||
if(prob(20) && emagged)
|
||||
attempted_restart = TRUE
|
||||
heart_datum.change_beating(TRUE) // Mötley Crüe - Kickstart My Heart
|
||||
owner.adjustOxyLoss(-100)
|
||||
owner.SetLoseBreath(0)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] returns to its normal rhythm!</span>"), 3 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] returns to its normal rhythm!")), 3 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 20 SECONDS)
|
||||
else if(prob(10))
|
||||
attempted_restart = TRUE
|
||||
heart_datum.change_beating(TRUE)
|
||||
owner.adjustOxyLoss(-100)
|
||||
owner.SetLoseBreath(0)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] returns to its normal rhythm!</span>"), 3 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] returns to its normal rhythm!")), 3 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 30 SECONDS)
|
||||
else
|
||||
attempted_restart = TRUE
|
||||
@@ -253,21 +253,21 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 10 SECONDS)
|
||||
else
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 15 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] fails to return to its normal rhythm!</span>"), 3 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] fails to return to its normal rhythm!")), 3 SECONDS)
|
||||
|
||||
if(owner.HasDisease(/datum/disease/critical/heart_failure))
|
||||
to_chat(owner, "<span class='warning'>Your [name] detects a cardiac event and attempts to return to its normal rhythm!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] detects a cardiac event and attempts to return to its normal rhythm!"))
|
||||
if(prob(40) && emagged)
|
||||
attempted_restart = TRUE
|
||||
for(var/datum/disease/critical/heart_failure/HF in owner.viruses)
|
||||
HF.cure()
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] returns to its normal rhythm!</span>"), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] returns to its normal rhythm!")), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 20 SECONDS)
|
||||
else if(prob(25))
|
||||
attempted_restart = TRUE
|
||||
for(var/datum/disease/critical/heart_failure/HF in owner.viruses)
|
||||
HF.cure()
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] returns to its normal rhythm!</span>"), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] returns to its normal rhythm!")), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 20 SECONDS)
|
||||
else
|
||||
attempted_restart = TRUE
|
||||
@@ -275,7 +275,7 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 10 SECONDS)
|
||||
else
|
||||
addtimer(CALLBACK(src, PROC_REF(recharge)), 15 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "<span class='warning'>Your [name] fails to return to its normal rhythm!</span>"), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, SPAN_WARNING("Your [name] fails to return to its normal rhythm!")), 30)
|
||||
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/upgraded/proc/message_to_owner(mob/M, message)
|
||||
@@ -288,11 +288,11 @@
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/upgraded/emag_act(mob/user)
|
||||
if(!emagged)
|
||||
to_chat(user, "<span class='warning'>You disable the safeties on [src]</span>")
|
||||
to_chat(user, SPAN_WARNING("You disable the safeties on [src]"))
|
||||
emagged = TRUE
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You re-enable the safeties on [src]</span>")
|
||||
to_chat(user, SPAN_WARNING("You re-enable the safeties on [src]"))
|
||||
emagged = FALSE
|
||||
|
||||
|
||||
@@ -309,31 +309,31 @@
|
||||
var/numLow = round(intensity / 20)
|
||||
if(emagged && !(status & ORGAN_DEAD))
|
||||
if(prob(numHigh))
|
||||
to_chat(owner, "<span class='warning'>Your [name] spasms violently!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] spasms violently!"))
|
||||
// invoke asyncs here because this sleeps
|
||||
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living/carbon/human, adjustBruteLoss), numHigh)
|
||||
if(prob(numHigh))
|
||||
to_chat(owner, "<span class='warning'>Your [name] shocks you painfully!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] shocks you painfully!"))
|
||||
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living/carbon/human, adjustFireLoss), numHigh)
|
||||
if(prob(numMid))
|
||||
to_chat(owner, "<span class='warning'>Your [name] lurches awkwardly!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] lurches awkwardly!"))
|
||||
owner.ForceContractDisease(new /datum/disease/critical/heart_failure(0))
|
||||
if(prob(numMid))
|
||||
to_chat(owner, "<span class='danger'>Your [name] stops beating!</span>")
|
||||
to_chat(owner, SPAN_DANGER("Your [name] stops beating!"))
|
||||
var/datum/organ/heart/heart_datum = organ_datums[ORGAN_DATUM_HEART]
|
||||
heart_datum.change_beating(FALSE) // Rambunctious Crew - Stop My Fucking Heart
|
||||
if(prob(numLow))
|
||||
to_chat(owner, "<span class='danger'>Your [name] shuts down!</span>")
|
||||
to_chat(owner, SPAN_DANGER("Your [name] shuts down!"))
|
||||
INVOKE_ASYNC(src, PROC_REF(necrotize))
|
||||
else if(!emagged && !(status & ORGAN_DEAD))
|
||||
if(prob(numMid))
|
||||
to_chat(owner, "<span class='warning'>Your [name] spasms violently!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] spasms violently!"))
|
||||
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living/carbon/human, adjustBruteLoss), numMid)
|
||||
if(prob(numMid))
|
||||
to_chat(owner, "<span class='warning'>Your [name] shocks you painfully!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] shocks you painfully!"))
|
||||
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living/carbon/human, adjustFireLoss), numMid)
|
||||
if(prob(numLow))
|
||||
to_chat(owner, "<span class='warning'>Your [name] lurches awkwardly!</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your [name] lurches awkwardly!"))
|
||||
owner.ForceContractDisease(new /datum/disease/critical/heart_failure(0))
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/upgraded/hardened
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
/obj/item/organ/internal/liver/on_life()
|
||||
if(germ_level > INFECTION_LEVEL_ONE)
|
||||
if(prob(1))
|
||||
to_chat(owner, "<span class='warning'>Your skin itches.</span>")
|
||||
to_chat(owner, SPAN_WARNING("Your skin itches."))
|
||||
if(germ_level > INFECTION_LEVEL_TWO)
|
||||
if(prob(1))
|
||||
owner.vomit()
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/obj/item/organ/internal/lungs/cybernetic/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>[src] is configured for [species_state] standards of atmosphere.</span>"
|
||||
. += SPAN_NOTICE("[src] is configured for [species_state] standards of atmosphere.")
|
||||
|
||||
/obj/item/organ/internal/lungs/cybernetic/multitool_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
@@ -59,7 +59,7 @@
|
||||
var/chosen = input(user, "Select lung type", "What kind of lung settings?") as null|anything in possible
|
||||
if(isnull(chosen) || chosen == species_state || !Adjacent(user) || !I.use_tool(src, user, 0, volume = I.tool_volume))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You configure [src] to [chosen] settings.</span>")
|
||||
to_chat(user, SPAN_NOTICE("You configure [src] to [chosen] settings."))
|
||||
configure_species(chosen)
|
||||
|
||||
/obj/item/organ/internal/lungs/cybernetic/proc/configure_species(new_species_state)
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
var/obj/item/stack/nanopaste/nano = I
|
||||
nano.use(1)
|
||||
rejuvenate()
|
||||
to_chat(user, "<span class='notice'>You repair the damage on [src].</span>")
|
||||
to_chat(user, SPAN_NOTICE("You repair the damage on [src]."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -162,9 +162,9 @@
|
||||
. = ..()
|
||||
if(status & ORGAN_DEAD)
|
||||
if(!is_robotic())
|
||||
. += "<span class='notice'>The decay has set in.</span>"
|
||||
. += SPAN_NOTICE("The decay has set in.")
|
||||
else
|
||||
. += "<span class='notice'>It looks in need of repairs.</span>"
|
||||
. += SPAN_NOTICE("It looks in need of repairs.")
|
||||
|
||||
/obj/item/organ/proc/handle_germs()
|
||||
if(germ_level > 0 && germ_level < INFECTION_LEVEL_ONE / 2 && prob(30))
|
||||
@@ -328,7 +328,7 @@ I use this so that this can be made better once the organ overhaul rolls out --
|
||||
if(!owner.can_feel_pain() || !message)
|
||||
return
|
||||
|
||||
var/msg = "<span class='userdanger'>[message]</span>"
|
||||
var/msg = SPAN_USERDANGER("[message]")
|
||||
|
||||
// Anti message spam checks
|
||||
if(msg != last_pain_message || world.time >= next_pain_time)
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
H.apply_damage_type(TC * CM * cold_damage_types[D], D)
|
||||
if(breath_temperature < cold_level_1_threshold)
|
||||
if(prob(20))
|
||||
to_chat(H, "<span class='warning'>You feel [cold_message] in your [linked_organ.name]!</span>")
|
||||
to_chat(H, SPAN_WARNING("You feel [cold_message] in your [linked_organ.name]!"))
|
||||
|
||||
if(!HAS_TRAIT(H, TRAIT_RESISTHEAT)) // HEAT DAMAGE
|
||||
var/HM = abs(H.dna.species.heatmod)
|
||||
@@ -258,7 +258,7 @@
|
||||
H.apply_damage_type(TH * HM * heat_damage_types[D], D)
|
||||
if(breath_temperature > heat_level_1_threshold)
|
||||
if(prob(20))
|
||||
to_chat(H, "<span class='warning'>You feel [hot_message] in your [linked_organ.name]!</span>")
|
||||
to_chat(H, SPAN_WARNING("You feel [hot_message] in your [linked_organ.name]!"))
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
// Internal organs of this body part
|
||||
var/list/internal_organs = list()
|
||||
|
||||
var/damage_msg = "<span class='warning'>You feel an intense pain</span>"
|
||||
var/damage_msg = SPAN_WARNING("You feel an intense pain")
|
||||
var/broken_description
|
||||
|
||||
var/open = 0 // If the body part has an open incision from surgery. Can have values > 1.
|
||||
@@ -77,7 +77,7 @@
|
||||
if(dead_icon)
|
||||
icon_state = dead_icon
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='notice'>You can't feel your [name] anymore...</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You can't feel your [name] anymore..."))
|
||||
owner.update_body()
|
||||
if(vital && !ignore_vital_death)
|
||||
owner.death()
|
||||
@@ -113,7 +113,7 @@
|
||||
for(var/obj/item/I in embedded_objects)
|
||||
embedded_names += "[I]"
|
||||
if(length(embedded_names))
|
||||
. += "<span class='warning'>You can see [english_list(embedded_names)] embedded.</span>"
|
||||
. += SPAN_WARNING("You can see [english_list(embedded_names)] embedded.")
|
||||
|
||||
/obj/item/organ/external/update_health()
|
||||
damage = min(max_damage, (brute_dam + burn_dam))
|
||||
@@ -182,8 +182,8 @@
|
||||
C.updatehealth()
|
||||
C.UpdateDamageIcon()
|
||||
user.visible_message(
|
||||
"<span class='notice'>[user] has attached [C]'s [src] to the [amputation_point].</span>",
|
||||
"<span class='notice'>You have attached [C]'s [src] to the [amputation_point].</span>")
|
||||
SPAN_NOTICE("[user] has attached [C]'s [src] to the [amputation_point]."),
|
||||
SPAN_NOTICE("You have attached [C]'s [src] to the [amputation_point]."))
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
owner.emote("scream") //getting hit on broken hand hurts
|
||||
if(status & ORGAN_SPLINTED && prob((brute + burn)*4)) //taking damage to splinted limbs removes the splints
|
||||
status &= ~ORGAN_SPLINTED
|
||||
owner.visible_message("<span class='danger'>The splint on [owner]'s left arm unravels from [owner.p_their()] [name]!</span>","<span class='userdanger'>The splint on your [name] unravels!</span>")
|
||||
owner.visible_message(SPAN_DANGER("The splint on [owner]'s left arm unravels from [owner.p_their()] [name]!"),SPAN_USERDANGER("The splint on your [name] unravels!"))
|
||||
owner.handle_splints()
|
||||
if(used_weapon)
|
||||
add_autopsy_data("[used_weapon]", brute + burn)
|
||||
@@ -507,7 +507,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
"Your [name] feels like it's burning from the inside out!",
|
||||
"Your [name] seems to be turning a nasty color.",
|
||||
)
|
||||
to_chat(owner, "<span class='danger'>[pick(messages)]</span>")
|
||||
to_chat(owner, SPAN_DANGER("[pick(messages)]"))
|
||||
|
||||
if(germ_level >= INFECTION_LEVEL_THREE)
|
||||
if(vital)
|
||||
@@ -518,7 +518,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
)
|
||||
// kill them fast, but don't drop them dead.
|
||||
if(prob(5))
|
||||
to_chat(owner, "<span class='userdanger'>[pick(messages)]</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("[pick(messages)]"))
|
||||
owner.adjustToxLoss(5)
|
||||
else
|
||||
necrotize()
|
||||
@@ -605,9 +605,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
status &= ~ORGAN_SPLINTED // Oh no, we actually need surgery now!
|
||||
owner.handle_splints()
|
||||
if(!(status & ORGAN_BROKEN))
|
||||
to_chat(owner, "<span class='notice'>Your splint harmlessly pops off your [name].</span>") // If we fixed our bones, a splint popping off shouldn't be painful and stun us.
|
||||
to_chat(owner, SPAN_NOTICE("Your splint harmlessly pops off your [name].")) // If we fixed our bones, a splint popping off shouldn't be painful and stun us.
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] screams in pain as [owner.p_their()] splint pops off [owner.p_their()] [name]!</span>","<span class='userdanger'>You scream in pain as your splint pops off your [name]!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] screams in pain as [owner.p_their()] splint pops off [owner.p_their()] [name]!"),SPAN_USERDANGER("You scream in pain as your splint pops off your [name]!"))
|
||||
owner.emote("scream")
|
||||
owner.Weaken(4 SECONDS) // Better feedback compared to stun() - We won't be just standing there menancingly
|
||||
|
||||
@@ -633,22 +633,22 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(!clean)
|
||||
var/gore_sound = "[is_robotic() ? "tortured metal" : "ripping tendons and flesh"]"
|
||||
owner.visible_message(
|
||||
"<span class='danger'>\The [owner]'s [name] flies off in an arc!</span>",\
|
||||
"<span class='moderate'><b>Your [name] goes flying off!</b></span>",\
|
||||
"<span class='danger'>You hear a terrible sound of [gore_sound].</span>")
|
||||
SPAN_DANGER("\The [owner]'s [name] flies off in an arc!"),\
|
||||
SPAN_MODERATE("<b>Your [name] goes flying off!</b>"),\
|
||||
SPAN_DANGER("You hear a terrible sound of [gore_sound]."))
|
||||
if(DROPLIMB_BURN)
|
||||
var/gore = "[is_robotic() ? "" : " of burning flesh"]"
|
||||
owner.visible_message(
|
||||
"<span class='danger'>\The [owner]'s [name] flashes away into ashes!</span>",\
|
||||
"<span class='moderate'><b>Your [name] flashes away into ashes!</b></span>",\
|
||||
"<span class='danger'>You hear a crackling sound[gore].</span>")
|
||||
SPAN_DANGER("\The [owner]'s [name] flashes away into ashes!"),\
|
||||
SPAN_MODERATE("<b>Your [name] flashes away into ashes!</b>"),\
|
||||
SPAN_DANGER("You hear a crackling sound[gore]."))
|
||||
if(DROPLIMB_BLUNT)
|
||||
var/gore = "[is_robotic() ? "": " in shower of gore"]"
|
||||
var/gore_sound = "[is_robotic() ? "rending sound of tortured metal" : "sickening splatter of gore"]"
|
||||
owner.visible_message(
|
||||
"<span class='danger'>\The [owner]'s [name] explodes[gore]!</span>",\
|
||||
"<span class='moderate'><b>Your [name] explodes[gore]!</b></span>",\
|
||||
"<span class='danger'>You hear the [gore_sound].</span>")
|
||||
SPAN_DANGER("\The [owner]'s [name] explodes[gore]!"),\
|
||||
SPAN_MODERATE("<b>Your [name] explodes[gore]!</b>"),\
|
||||
SPAN_DANGER("You hear the [gore_sound]."))
|
||||
disembowel(limb_name)
|
||||
|
||||
var/mob/living/carbon/human/victim = owner //Keep a reference for post-removed().
|
||||
@@ -726,9 +726,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
something_else = TRUE
|
||||
|
||||
if(organ_spilled)
|
||||
C.visible_message("<span class='danger'><b>[C]'s internal organs spill out onto the floor!</b></span>")
|
||||
C.visible_message(SPAN_DANGER("<b>[C]'s internal organs spill out onto the floor!</b>"))
|
||||
if(something_else)
|
||||
C.visible_message("<span class='danger'>Some things fall out of [C]!</span>")
|
||||
C.visible_message(SPAN_DANGER("Some things fall out of [C]!"))
|
||||
return TRUE
|
||||
|
||||
/obj/item/organ/external/chest/droplimb()
|
||||
@@ -743,11 +743,11 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(I.sharp)
|
||||
add_fingerprint(user)
|
||||
if(!length(contents))
|
||||
to_chat(user, "<span class='warning'>There is nothing left inside [src]!</span>")
|
||||
to_chat(user, SPAN_WARNING("There is nothing left inside [src]!"))
|
||||
return
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1)
|
||||
user.visible_message("<span class='warning'>[user] begins to cut open [src].</span>",\
|
||||
"<span class='notice'>You begin to cut open [src]...</span>")
|
||||
user.visible_message(SPAN_WARNING("[user] begins to cut open [src]."),\
|
||||
SPAN_NOTICE("You begin to cut open [src]..."))
|
||||
if(do_after(user, 5.4 SECONDS, target = src))
|
||||
drop_organs(user)
|
||||
drop_embedded_objects()
|
||||
@@ -790,10 +790,10 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
return
|
||||
if(owner && !silent)
|
||||
owner.audible_message(
|
||||
"<span class='warning'>You hear a sickening crack coming from \the [owner].</span>",
|
||||
"<span class='danger'>[owner]'s [name] appears to buckle unnaturally!</span>"
|
||||
SPAN_WARNING("You hear a sickening crack coming from \the [owner]."),
|
||||
SPAN_DANGER("[owner]'s [name] appears to buckle unnaturally!")
|
||||
)
|
||||
to_chat(owner, "<span class='userdanger'>Something feels like it shattered in your [name]!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Something feels like it shattered in your [name]!"))
|
||||
playsound(owner, "bonebreak", 150, 1)
|
||||
if(owner.can_feel_pain())
|
||||
owner.emote("scream")
|
||||
@@ -854,11 +854,11 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
return
|
||||
playsound(owner.loc, 'sound/items/poster_ripped.ogg', 50, TRUE)
|
||||
if(!intentional)
|
||||
owner.visible_message("<span class='warning'>Synthetic skin shatters and flakes off [owner]'s [name]!</span>",
|
||||
"<span class='userdanger'>Your synthetic skin fails on your [name]!</span>")
|
||||
owner.visible_message(SPAN_WARNING("Synthetic skin shatters and flakes off [owner]'s [name]!"),
|
||||
SPAN_USERDANGER("Your synthetic skin fails on your [name]!"))
|
||||
else
|
||||
owner.visible_message("<span class='warning'>[owner] tears their synthetic skin off their [name], exposing the cybernetics beneath!</span>",
|
||||
"<span class='danger'>You peel your synthetic skin off your cybernetics on your [name].</span>")
|
||||
owner.visible_message(SPAN_WARNING("[owner] tears their synthetic skin off their [name], exposing the cybernetics beneath!"),
|
||||
SPAN_DANGER("You peel your synthetic skin off your cybernetics on your [name]."))
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/refreshing = owner
|
||||
refreshing.update_int_organs()
|
||||
@@ -981,9 +981,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
//Robotic limbs explode if sabotaged.
|
||||
if(is_robotic() && sabotaged)
|
||||
victim.visible_message(
|
||||
"<span class='danger'>\The [victim]'s [name] explodes violently!</span>",\
|
||||
"<span class='userdanger'>Your [name] explodes!</span>",\
|
||||
"<span class='danger'>You hear an explosion!</span>")
|
||||
SPAN_DANGER("\The [victim]'s [name] explodes violently!"),\
|
||||
SPAN_USERDANGER("Your [name] explodes!"),\
|
||||
SPAN_DANGER("You hear an explosion!"))
|
||||
explosion(get_turf(victim), -1, -1, 2, 3, cause = "Sabotaged robotic limb")
|
||||
do_sparks(5, 0, victim)
|
||||
qdel(src)
|
||||
@@ -992,9 +992,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(status & ORGAN_DISFIGURED)
|
||||
return
|
||||
if(owner)
|
||||
owner.visible_message("<span class='warning'>\The [owner]'s [name] turns into a mangled mess!</span>", \
|
||||
"<span class='userdanger'>Your [name] becomes a mangled mess!</span>", \
|
||||
"<span class='warning'>You hear a sickening sound.</span>")
|
||||
owner.visible_message(SPAN_WARNING("\The [owner]'s [name] turns into a mangled mess!"), \
|
||||
SPAN_USERDANGER("Your [name] becomes a mangled mess!"), \
|
||||
SPAN_WARNING("You hear a sickening sound."))
|
||||
|
||||
status |= ORGAN_DISFIGURED
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
/obj/item/organ_extractor/examine(mob/user)
|
||||
. = ..()
|
||||
if(storedorgan)
|
||||
. += "<span class='notice'>It has [storedorgan] floating around inside the jar!</span>"
|
||||
. += "<span class='notice'>You can <b>Screwdriver</b> [src] to try to adjust [storedorgan]'s configuration.</span>"
|
||||
. += "<span class='notice'>You can <b>Wrench</b> [src] to eject [storedorgan]!</span>"
|
||||
. += SPAN_NOTICE("It has [storedorgan] floating around inside the jar!")
|
||||
. += SPAN_NOTICE("You can <b>Screwdriver</b> [src] to try to adjust [storedorgan]'s configuration.")
|
||||
. += SPAN_NOTICE("You can <b>Wrench</b> [src] to eject [storedorgan]!")
|
||||
|
||||
/obj/item/organ_extractor/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(storedorgan)
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/obj/item/organ_extractor/wrench_act(mob/living/user, obj/item/I)
|
||||
if(storedorgan)
|
||||
to_chat(user, "<span class='warning'>You unwrench the jar, and [storedorgan] falls onto the floor!</span>")
|
||||
to_chat(user, SPAN_WARNING("You unwrench the jar, and [storedorgan] falls onto the floor!"))
|
||||
storedorgan.forceMove(get_turf(user))
|
||||
storedorgan = null
|
||||
playsound(src, 'sound/effects/splat.ogg', 50, TRUE)
|
||||
@@ -43,21 +43,21 @@
|
||||
|
||||
/obj/item/organ_extractor/attack__legacy__attackchain(mob/living/M, mob/living/user, def_zone)
|
||||
if(in_use)
|
||||
to_chat(user, "<span class='warning'>[src] is already busy!</span>")
|
||||
to_chat(user, SPAN_WARNING("[src] is already busy!"))
|
||||
return
|
||||
if(!iscarbon(M))
|
||||
to_chat(user, "<span class='warning'>ERROR: [M] has no organs to harvest!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [M] has no organs to harvest!"))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = M
|
||||
if(!length(C.client_mobs_in_contents)) //Basically, we don't want someone putting organs in monkeys then extracting from it. Has to be someone who had a client in the past
|
||||
to_chat(user, "<span class='warning'>ERROR: [C] has no soul trace to assist in targeting the drill bit!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [C] has no soul trace to assist in targeting the drill bit!"))
|
||||
return
|
||||
if(!IS_HORIZONTAL(C) && C.stat == CONSCIOUS)
|
||||
to_chat(user, "<span class='warning'>ERROR: [C] is not restrained, and may move during the operation! Correction required.</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [C] is not restrained, and may move during the operation! Correction required."))
|
||||
return
|
||||
if(storedorgan)
|
||||
to_chat(user, "<span class='warning'>NOTICE: Internal organ deteced. Beginning insertion procedure!</span>")
|
||||
to_chat(user, SPAN_WARNING("NOTICE: Internal organ deteced. Beginning insertion procedure!"))
|
||||
insert_organ(user, C)
|
||||
return
|
||||
|
||||
@@ -67,36 +67,36 @@
|
||||
in_use = FALSE
|
||||
return
|
||||
if(!istype(chosen_organ, /obj/item/organ/internal)) //Saftey first
|
||||
to_chat(user, "<span class='warning'>ERROR: [chosen_organ] is not valid for removal for unknown reasons!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [chosen_organ] is not valid for removal for unknown reasons!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
if(istype(chosen_organ, /obj/item/organ/internal/brain/mmi_holder)) //This breaks shit
|
||||
to_chat(user, "<span class='warning'>ERROR: [chosen_organ] is too big for the holding tank and would damage [src] too much!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [chosen_organ] is too big for the holding tank and would damage [src] too much!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
if(HAS_TRAIT(chosen_organ, TRAIT_ORGAN_INSERTED_WHILE_DEAD))
|
||||
to_chat(user, "<span class='warning'>ERROR: [chosen_organ] was inserted when [C] was dead, and has no soul trace to lock onto!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: [chosen_organ] was inserted when [C] was dead, and has no soul trace to lock onto!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/internal_organ = chosen_organ
|
||||
var/drilled_organ = internal_organ.parent_organ
|
||||
user.visible_message("<span class='danger'>[user] activates [src] and begins to drill into [C]!</span>", "<span class='warning'>You level the extractor at [M] and hold down the trigger.</span>")
|
||||
to_chat(C, "<span class='danger'>You feel a lot of pain as [user] drills into your [drilled_organ]!</span>")
|
||||
user.visible_message(SPAN_DANGER("[user] activates [src] and begins to drill into [C]!"), SPAN_WARNING("You level the extractor at [M] and hold down the trigger."))
|
||||
to_chat(C, SPAN_DANGER("You feel a lot of pain as [user] drills into your [drilled_organ]!"))
|
||||
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 75, TRUE)
|
||||
|
||||
if(!advanced)
|
||||
C.apply_damage(15, BRUTE, drilled_organ)
|
||||
if(!do_after_once(user, insert_time, target = C))// Slightly longer than stamina crit, at least cuff and buckle them to a pipe or something
|
||||
to_chat(user, "<span class='warning'>ERROR: Process interrupted!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: Process interrupted!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
if(!internal_organ || !istype(internal_organ) || !(internal_organ.owner == C)) //Organ got deleted / moved somewhere else?
|
||||
to_chat(user, "<span class='warning'>ERROR: unable to find the desired organ!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: unable to find the desired organ!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
|
||||
user.visible_message("<span class='danger'>[user] removes [internal_organ] from [C]!</span>", "<span class='warning'>You remove [internal_organ] from [C] as it gets sucked into [src]'s internal container!</span>")
|
||||
user.visible_message(SPAN_DANGER("[user] removes [internal_organ] from [C]!"), SPAN_WARNING("You remove [internal_organ] from [C] as it gets sucked into [src]'s internal container!"))
|
||||
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 75, TRUE)
|
||||
C.apply_damage(10, BRUTE, drilled_organ)
|
||||
internal_organ.remove(C)
|
||||
@@ -105,31 +105,31 @@
|
||||
|
||||
/obj/item/organ_extractor/proc/insert_organ(mob/user, mob/our_target)
|
||||
if(!storedorgan)
|
||||
to_chat(user, "<span class='warning'>[src] currently has no organ stored.</span>")
|
||||
to_chat(user, SPAN_WARNING("[src] currently has no organ stored."))
|
||||
return
|
||||
if(in_use)
|
||||
to_chat(user, "<span class='warning'>[src] is already busy!</span>")
|
||||
to_chat(user, SPAN_WARNING("[src] is already busy!"))
|
||||
return
|
||||
|
||||
var/user_is_target = FALSE
|
||||
if(user == our_target)
|
||||
user_is_target = TRUE
|
||||
if(istype(storedorgan, /obj/item/organ/internal/brain) && user_is_target)
|
||||
to_chat(user, "<span class='warning'>It would be really stupid to replace your brain with another one.</span>")
|
||||
to_chat(user, SPAN_WARNING("It would be really stupid to replace your brain with another one."))
|
||||
return
|
||||
if(!iscarbon(our_target))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = our_target
|
||||
in_use = TRUE
|
||||
user.visible_message("<span class='danger'>[user] activates [src] and begins to drill into [C]!</span>", "<span class='warning'>You level the extractor at [user_is_target ? "yourself" : C] and hold down the trigger.</span>")
|
||||
user.visible_message(SPAN_DANGER("[user] activates [src] and begins to drill into [C]!"), SPAN_WARNING("You level the extractor at [user_is_target ? "yourself" : C] and hold down the trigger."))
|
||||
var/drilled_organ = storedorgan.parent_organ
|
||||
if(!advanced)
|
||||
C.apply_damage(5, BRUTE, drilled_organ)
|
||||
playsound(get_turf(C), 'sound/weapons/circsawhit.ogg', 50, TRUE)
|
||||
|
||||
if(!do_after_once(user, (user_is_target ? self_insert_time : insert_time), target = C))
|
||||
to_chat(user, "<span class='warning'>ERROR: Process interrupted!</span>")
|
||||
to_chat(user, SPAN_WARNING("ERROR: Process interrupted!"))
|
||||
in_use = FALSE
|
||||
return
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
replaced.forceMove(get_turf(src))
|
||||
if(istype(storedorgan, /obj/item/organ/internal/heart) && ((/obj/item/organ/internal/cyberimp/brain/sensory_enhancer in C.internal_organs) || C.reagents.addiction_threshold_accumulated[/datum/reagent/mephedrone]))
|
||||
storedorgan.damage = 40 // Damage the heart so you can't endlessly OD for cheap easily.
|
||||
to_chat(user, "<span class='warning'>CAUTION: Crystalized mephedrone has bounced off the drill into [storedorgan], causing internal damage!</span>")
|
||||
to_chat(user, SPAN_WARNING("CAUTION: Crystalized mephedrone has bounced off the drill into [storedorgan], causing internal damage!"))
|
||||
SSblackbox.record_feedback("tally", "o_implant_extract", 1, "[storedorgan.type]")
|
||||
storedorgan.insert(C)
|
||||
playsound(get_turf(C), 'sound/weapons/circsawhit.ogg', 50, TRUE)
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
if(M == user && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(is_xeno_organ)
|
||||
to_chat(user, "<span class='warning'>It wouldnt be a very good idea to eat this.</span>")
|
||||
to_chat(user, SPAN_WARNING("It wouldnt be a very good idea to eat this."))
|
||||
return ..()
|
||||
var/obj/item/food/S = prepare_eat()
|
||||
if(S)
|
||||
@@ -277,7 +277,7 @@
|
||||
var/obj/item/stack/synthetic_skin/skin = I
|
||||
skin.use(1)
|
||||
self_augmented_skin_level = skin.skin_level
|
||||
to_chat(user, "<span class='notice'>You apply [skin] to [src].</span>")
|
||||
to_chat(user, SPAN_NOTICE("You apply [skin] to [src]."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
if(prob(12))
|
||||
owner.reagents.add_reagent("histamine", 5)
|
||||
if(5)
|
||||
to_chat(owner, "<span class='danger'>You feel like something is tearing its way out of your skin...</span>")
|
||||
to_chat(owner, SPAN_DANGER("You feel like something is tearing its way out of your skin..."))
|
||||
owner.reagents.add_reagent("histamine", 10)
|
||||
if(prob(30))
|
||||
owner.emote("scream")
|
||||
var/spiders = rand(3,5)
|
||||
for(var/i in 1 to spiders)
|
||||
new/mob/living/basic/spiderling(get_turf(owner))
|
||||
owner.visible_message("<span class='danger'>[owner] bursts open! Holy fuck!</span>")
|
||||
owner.visible_message(SPAN_DANGER("[owner] bursts open! Holy fuck!"))
|
||||
owner.gib()
|
||||
|
||||
/obj/item/organ/internal/body_egg/spider_eggs/remove(mob/living/carbon/M, special = 0)
|
||||
@@ -99,7 +99,7 @@
|
||||
S.grow_as = /mob/living/simple_animal/hostile/poison/terror_spider/green
|
||||
infection_completed = TRUE
|
||||
eggs_hatched++
|
||||
to_chat(owner, "<span class='warning'>A strange prickling sensation moves across your skin... then suddenly the whole world seems to spin around you!</span>")
|
||||
to_chat(owner, SPAN_WARNING("A strange prickling sensation moves across your skin... then suddenly the whole world seems to spin around you!"))
|
||||
owner.Paralyse(20 SECONDS)
|
||||
if(infection_completed)
|
||||
remove(owner)
|
||||
|
||||
@@ -24,21 +24,21 @@
|
||||
/obj/item/organ/internal/lantern/ui_action_click()
|
||||
if(toggle_biolum())
|
||||
if(glowing)
|
||||
owner.visible_message("<span class='notice'>[owner] starts to glow!</span>", "<span class='notice'>You enable your bioluminescence.</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] starts to glow!"), SPAN_NOTICE("You enable your bioluminescence."))
|
||||
else
|
||||
owner.visible_message("<span class='notice'>[owner] fades to dark.</span>", "<span class='notice'>You disable your bioluminescence.</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] fades to dark."), SPAN_NOTICE("You disable your bioluminescence."))
|
||||
|
||||
/obj/item/organ/internal/lantern/on_life()
|
||||
..()
|
||||
if(glowing)//i hate this but i couldnt figure out a better way
|
||||
if(owner.nutrition < KIDAN_LANTERN_MINHUNGER)
|
||||
toggle_biolum(1)
|
||||
to_chat(owner, "<span class='warning'>You're too hungry to be bioluminescent!</span>")
|
||||
to_chat(owner, SPAN_WARNING("You're too hungry to be bioluminescent!"))
|
||||
return
|
||||
|
||||
if(owner.stat)
|
||||
toggle_biolum(1)
|
||||
owner.visible_message("<span class='notice'>[owner] fades to dark.</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] fades to dark."))
|
||||
return
|
||||
|
||||
owner.set_nutrition(max(owner.nutrition - KIDAN_LANTERN_HUNGERCOST, KIDAN_LANTERN_HUNGERCOST))
|
||||
@@ -60,11 +60,11 @@
|
||||
|
||||
/obj/item/organ/internal/lantern/proc/toggle_biolum(statoverride)
|
||||
if(!statoverride && owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You cannot alter your bioluminescence in your current state.</span>")
|
||||
to_chat(owner, SPAN_WARNING("You cannot alter your bioluminescence in your current state."))
|
||||
return FALSE
|
||||
|
||||
if(!statoverride && owner.nutrition < KIDAN_LANTERN_MINHUNGER)
|
||||
to_chat(owner, "<span class='warning'>You're too hungry to be bioluminescent!</span>")
|
||||
to_chat(owner, SPAN_WARNING("You're too hungry to be bioluminescent!"))
|
||||
return FALSE
|
||||
|
||||
if(!colour)
|
||||
|
||||
@@ -156,5 +156,5 @@
|
||||
|
||||
/obj/item/organ/internal/ears/microphone/remove(mob/living/user, special = FALSE)
|
||||
if(!special)
|
||||
to_chat(owner, "<span class='userdanger'>BZZZZZZZZZZZZZZT! Microphone error!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("BZZZZZZZZZZZZZZT! Microphone error!"))
|
||||
. = ..()
|
||||
|
||||
@@ -30,28 +30,28 @@
|
||||
..()
|
||||
var/obj/item/organ/external/head/head = owner.get_organ("head")
|
||||
if(held_item && !findtextEx(head.h_style, "Tentacles"))
|
||||
owner.visible_message("<span class='notice'>[held_item] falls from [owner]'s [name]!</span>", "<span class='notice'>[held_item] falls from your [name]!</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[held_item] falls from [owner]'s [name]!"), SPAN_NOTICE("[held_item] falls from your [name]!"))
|
||||
empty_contents()
|
||||
|
||||
/obj/item/organ/internal/headpocket/ui_action_click()
|
||||
if(held_item)
|
||||
owner.visible_message("<span class='notice'>[owner] removes [held_item] from [owner.p_their()] [name].</span>", "<span class='notice'>You remove [held_item] from your [name].</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] removes [held_item] from [owner.p_their()] [name]."), SPAN_NOTICE("You remove [held_item] from your [name]."))
|
||||
owner.put_in_hands(held_item)
|
||||
held_item = null
|
||||
update_button_state()
|
||||
else
|
||||
var/obj/item/I = owner.get_active_hand()
|
||||
if(!I)
|
||||
to_chat(owner, "<span class='notice'>You're not holding anything in your main hand to put in your [name].</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You're not holding anything in your main hand to put in your [name]."))
|
||||
return
|
||||
if(istype(I, /obj/item/disk/nuclear))
|
||||
to_chat(owner, "<span class='warning'>[I] slips out of your [name]!</span>")
|
||||
to_chat(owner, SPAN_WARNING("[I] slips out of your [name]!"))
|
||||
return
|
||||
if(I.w_class > WEIGHT_CLASS_SMALL)
|
||||
to_chat(owner, "<span class='notice'>[I] is too large to fit in your [name].</span>")
|
||||
to_chat(owner, SPAN_NOTICE("[I] is too large to fit in your [name]."))
|
||||
return
|
||||
if(owner.unequip(I))
|
||||
owner.visible_message("<span class='notice'>[owner] places [I] into [owner.p_their()] [name].</span>", "<span class='notice'>You place [I] into your [name].</span>")
|
||||
owner.visible_message(SPAN_NOTICE("[owner] places [I] into [owner.p_their()] [name]."), SPAN_NOTICE("You place [I] into your [name]."))
|
||||
I.forceMove(src)
|
||||
held_item = I
|
||||
update_button_state()
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
owner?.apply_damage(20, STAMINA)
|
||||
if(2)
|
||||
owner?.apply_damage(10, STAMINA)
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, causing fatigue!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, causing fatigue!"))
|
||||
|
||||
/obj/item/organ/external/groin
|
||||
name = "lower body"
|
||||
@@ -59,7 +59,7 @@
|
||||
var/hand = (body_part == ARM_LEFT) ? owner.l_hand : owner.r_hand
|
||||
if(hand && owner.canUnEquip(hand))
|
||||
owner.drop_item_to_ground(hand)
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, dropping what it was holding!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, dropping what it was holding!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "drops what [owner.p_they()] [owner.p_were()] holding, [owner.p_their()] [name] malfunctioning!")
|
||||
|
||||
/obj/item/organ/external/arm/right
|
||||
@@ -89,10 +89,10 @@
|
||||
if(!owner || !is_robotic() || emp_proof || !tough) // Augmented legs and feet make the user drop to the floor on EMP.
|
||||
return
|
||||
if(owner.AmountWeakened())
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, preventing you from getting back up!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, preventing you from getting back up!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "is unable to get back up, [owner.p_their()] [name] malfunctioning!")
|
||||
else
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, dropping you to the ground!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, dropping you to the ground!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "drops to the ground, [owner.p_their()] [name] malfunctioning!")
|
||||
switch(severity)
|
||||
if(1)
|
||||
@@ -129,10 +129,10 @@
|
||||
if(!owner || !is_robotic() || emp_proof || !tough) // Augmented legs and feet make the user drop to the floor on EMP.
|
||||
return
|
||||
if(owner.AmountWeakened())
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, preventing you from getting back up!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, preventing you from getting back up!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "is unable to get back up, [owner.p_their()] [name] malfunctioning!")
|
||||
else
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, dropping you to the ground!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, dropping you to the ground!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "drops to the ground, [owner.p_their()] [name] malfunctioning!")
|
||||
switch(severity)
|
||||
if(1)
|
||||
@@ -175,7 +175,7 @@
|
||||
var/hand = (body_part == HAND_LEFT) ? owner.l_hand : owner.r_hand
|
||||
if(hand && owner.canUnEquip(hand))
|
||||
owner.drop_item_to_ground(hand)
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, dropping what it was holding!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, dropping what it was holding!"))
|
||||
owner.custom_emote(EMOTE_VISIBLE, "drops what [owner.p_they()] [owner.p_were()] holding, [owner.p_their()] [name] malfunctioning!")
|
||||
|
||||
/obj/item/organ/external/hand/remove()
|
||||
@@ -256,7 +256,7 @@
|
||||
/obj/item/organ/external/head/examine(mob/user)
|
||||
. = ..()
|
||||
if(!length(contents))
|
||||
. += "<span class='warning'>There is nothing left inside!</span>"
|
||||
. += SPAN_WARNING("There is nothing left inside!")
|
||||
|
||||
/obj/item/organ/external/head/vars_to_save()
|
||||
return list("color", "name", "h_grad_style", "h_grad_offset_x", "h_grad_offset_y", "h_grad_colour", "h_grad_alpha")
|
||||
@@ -325,4 +325,4 @@
|
||||
owner?.AdjustConfused(60 SECONDS)
|
||||
if(2)
|
||||
owner?.AdjustConfused(40 SECONDS)
|
||||
to_chat(owner, "<span class='userdanger'>Your [name] malfunctions, overloading your motor control!</span>")
|
||||
to_chat(owner, SPAN_USERDANGER("Your [name] malfunctions, overloading your motor control!"))
|
||||
|
||||
@@ -37,18 +37,18 @@
|
||||
|
||||
/obj/item/organ/internal/alien/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Can be sold on the cargo shuttle for [cargo_profit] credits.</span>"
|
||||
. += SPAN_NOTICE("Can be sold on the cargo shuttle for [cargo_profit] credits.")
|
||||
if(hijacked)
|
||||
. += "<span class='notice'>This organ is hijacked, use a Hemostat on it to revert it to it's original function.</span>"
|
||||
. += SPAN_NOTICE("This organ is hijacked, use a Hemostat on it to revert it to it's original function.")
|
||||
else
|
||||
. += "<span class='notice'>You can hijack the latent functions of this organ by using a Hemostat on it.</span>"
|
||||
. += SPAN_NOTICE("You can hijack the latent functions of this organ by using a Hemostat on it.")
|
||||
|
||||
/obj/item/organ/internal/alien/attackby__legacy__attackchain(obj/item/hemostat/item, mob/user, params)
|
||||
if(istype(item))
|
||||
if(!hijacked)
|
||||
to_chat(user, "<span class='notice'>You slice off the control node of this organ. This organ will now be effective against aliens.</span>")
|
||||
to_chat(user, SPAN_NOTICE("You slice off the control node of this organ. This organ will now be effective against aliens."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You reattach the control node of this organ. This organ will now be effective against those who attack the hive.</span>")
|
||||
to_chat(user, SPAN_NOTICE("You reattach the control node of this organ. This organ will now be effective against those who attack the hive."))
|
||||
hijacked = !hijacked
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -60,7 +60,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands())
|
||||
owner.say(".~[message]")
|
||||
|
||||
/obj/item/organ/internal/vocal_cords/adamantine/handle_speech(message)
|
||||
var/msg = "<span class='resonate'><span class='name'>[owner.real_name]</span> <span class='message'>resonates, \"[message]\"</span></span>"
|
||||
var/msg = SPAN_RESONATE(SPAN_NAME("[owner.real_name]</span> <span class='message'>resonates, \"[message]\"") )
|
||||
for(var/m in GLOB.player_list)
|
||||
if(iscarbon(m))
|
||||
var/mob/living/carbon/C = m
|
||||
@@ -97,7 +97,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands())
|
||||
if(owner.stat)
|
||||
return FALSE
|
||||
if(istype(owner.loc, /obj/effect/dummy/spell_jaunt))
|
||||
to_chat(owner, "<span class='warning'>No one can hear you when you are jaunting, no point in talking now!</span>")
|
||||
to_chat(owner, SPAN_WARNING("No one can hear you when you are jaunting, no point in talking now!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands())
|
||||
. = ..()
|
||||
if(!IsAvailable())
|
||||
if(world.time < cords.next_command)
|
||||
to_chat(owner, "<span class='notice'>You must wait [(cords.next_command - world.time)/10] seconds before Speaking again.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You must wait [(cords.next_command - world.time)/10] seconds before Speaking again."))
|
||||
return
|
||||
var/command = tgui_input_text(owner, "Speak with the Voice of God", "Command")
|
||||
if(!command)
|
||||
@@ -117,17 +117,17 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands())
|
||||
|
||||
/obj/item/organ/internal/vocal_cords/colossus/can_speak_with()
|
||||
if(world.time < next_command)
|
||||
to_chat(owner, "<span class='notice'>You must wait [(next_command - world.time)/10] seconds before Speaking again.</span>")
|
||||
to_chat(owner, SPAN_NOTICE("You must wait [(next_command - world.time)/10] seconds before Speaking again."))
|
||||
return FALSE
|
||||
if(!owner)
|
||||
return FALSE
|
||||
if(!owner.can_speak())
|
||||
to_chat(owner, "<span class='warning'>You are unable to speak!</span>")
|
||||
to_chat(owner, SPAN_WARNING("You are unable to speak!"))
|
||||
return FALSE
|
||||
if(owner.stat)
|
||||
return FALSE
|
||||
if(istype(owner.loc, /obj/effect/dummy/spell_jaunt))
|
||||
to_chat(owner, "<span class='warning'>No one can hear you when you are jaunting, no point in talking now!</span>")
|
||||
to_chat(owner, SPAN_WARNING("No one can hear you when you are jaunting, no point in talking now!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user