converts our spans (#9185)

This commit is contained in:
Kashargul
2024-10-07 20:47:23 +02:00
committed by GitHub
parent f4155aa973
commit a92a42b85b
162 changed files with 1360 additions and 1269 deletions
@@ -12,4 +12,4 @@ GLOBAL_VAR_INIT(global_vantag_hud, 0)
L.vantag_hud = TRUE
L.recalculate_vis()
to_chat(src, "<span class='warning'>Global Event HUD has been turned [GLOB.global_vantag_hud ? "on" : "off"].</span>")
to_chat(src, span_warning("Global Event HUD has been turned [GLOB.global_vantag_hud ? "on" : "off"]."))
@@ -14,9 +14,9 @@
continue
full++
if(full >= 2)
to_chat(user, "<span class='warning'>It doesn't seem like there is room in \the [src]!</span>")
to_chat(user, span_warning("It doesn't seem like there is room in \the [src]!"))
else
to_chat(user, "<span class='warning'>You crawl into \the [src]!</span>")
to_chat(user, span_warning("You crawl into \the [src]!"))
user.forceMove(src)
return ..()
@@ -56,7 +56,7 @@
"The wearer of \the [name] walks, and their feet press down on you heavily with each step.",
"With each step of their unhurried walk, you're tightly sandwiched between [pred]'s feet and the insole of their boots.",
"As [pred] walks, their foot presses you tightly against the insole of their boots with each step.")
to_chat(prey, span_emote_subtle("<I>[message_prey]</I>"))
to_chat(prey, span_emote_subtle(span_italics("[message_prey]")))
return //No message for pred if I_HELP
@@ -79,7 +79,7 @@
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel strange as hunger vanishes!</span>")
to_chat(H, span_danger("You feel strange as hunger vanishes!"))
wearer.custom_pain("Your hands feel strange!",1)
..()
@@ -87,7 +87,7 @@
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel hungry!</span>")
to_chat(wearer, span_danger("You feel hungry!"))
wearer.custom_pain("Your hands feel strange",1)
wearer = null
@@ -123,7 +123,7 @@
/obj/item/clothing/suit/armor/buffvest/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
to_chat(wearer, flavor_activate)
to_chat(wearer, "<span class='danger'>The inside of your head hurts...</span>")
to_chat(wearer, span_danger("The inside of your head hurts..."))
wearer.adjustBrainLoss(brainloss_cost)
wearer.add_modifier(/datum/modifier/aura/candy_blue, 30 SECONDS)
@@ -72,36 +72,36 @@
var/message = phrase_list[key]
if (!safety)
to_chat(usr, "<span class='notice'>You set the restrictor to: FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT.</span>")
to_chat(usr, span_notice("You set the restrictor to: FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."))
return
switch(aggressiveness)
if(1)
phrase = (phrase < 6) ? (phrase + 1) : 1
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(2)
phrase = (phrase < 11 && phrase >= 7) ? (phrase + 1) : 7
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(3)
phrase = (phrase < 18 && phrase >= 12 ) ? (phrase + 1) : 12
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(4)
phrase = (phrase < 18 && phrase >= 1 ) ? (phrase + 1) : 1
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
else
to_chat(usr, "<span class='notice'>It's broken.</span>")
to_chat(usr, span_notice("It's broken."))
/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user)
if(safety)
safety = 0
to_chat(user, "<span class='warning'>You silently fry [src]'s vocal circuit with the cryptographic sequencer.</span>")
to_chat(user, span_warning("You silently fry [src]'s vocal circuit with the cryptographic sequencer."))
else
return
@@ -109,30 +109,30 @@
if(I.is_screwdriver())
switch(aggressiveness)
if(1)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the second position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the second position."))
aggressiveness = 2
phrase = 7
if(2)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the third position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the third position."))
aggressiveness = 3
phrase = 13
if(3)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the fourth position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the fourth position."))
aggressiveness = 4
phrase = 1
if(4)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the first position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the first position."))
aggressiveness = 1
phrase = 1
if(5)
to_chat(user, "<span class='warning'>You adjust the restrictor but nothing happens, probably because its broken.</span>")
to_chat(user, span_warning("You adjust the restrictor but nothing happens, probably because its broken."))
if(I.is_wirecutter())
if(aggressiveness != 5)
to_chat(user, "<span class='warning'>You broke it!</span>")
to_chat(user, span_warning("You broke it!"))
aggressiveness = 5
if(I.is_crowbar())
if(!hailer)
to_chat(user, "<span class='warning'>This mask has an integrated hailer, you can't remove it!</span>")
to_chat(user, span_warning("This mask has an integrated hailer, you can't remove it!"))
else
var/obj/N = new /obj/item/clothing/mask/gas/half(src.loc)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
@@ -159,11 +159,11 @@
if(cooldown < world.time - 35) // A cooldown, to stop people being jerks
if(!safety)
message = "FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."
usr.visible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[message]</b></font>")
usr.visible_message(span_infoplain("[usr]'s Compli-o-Nator: " + span_red(span_huge(span_bold("[message]")))))
playsound(src, 'sound/voice/binsult.ogg', 50, 0, 4) //Future sound channel = something like SFX
cooldown = world.time
return
usr.visible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[message]</b></font>")
usr.visible_message(span_infoplain("[usr]'s Compli-o-Nator: " + span_red(span_huge(span_bold("[message]")))))
playsound(src, "sound/voice/complionator/[key].ogg", 50, 0, 4) //future sound channel = something like SFX
cooldown = world.time
cooldown = world.time
@@ -37,8 +37,8 @@
/obj/item/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -57,8 +57,8 @@
/obj/item/clothing/suit/space/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -77,8 +77,8 @@
/obj/item/clothing/head/helmet/space/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -98,8 +98,8 @@
/obj/item/clothing/gloves/gauntlets/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -119,8 +119,8 @@
/obj/item/clothing/shoes/magboots/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -134,4 +134,4 @@
return -1 // complete projectile permutation
return (..(P))
return (..(P))
@@ -21,4 +21,4 @@
/obj/item/shockpaddles/standalone/rig/attack_self()
use_on_synthetic = !use_on_synthetic
to_chat(usr, "<span class='notice'>You switch the [src] to [use_on_synthetic ? "FBP" : "organic"] compatibility.</span>")
to_chat(usr, span_notice("You switch the [src] to [use_on_synthetic ? "FBP" : "organic"] compatibility."))
@@ -25,8 +25,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You activate the suit's energy syphon.</b>"))
to_chat(H, "<span class='warning'>Your suit begins to sap at your own energy stores.</span>")
to_chat(usr, span_boldnotice("You activate the suit's energy syphon."))
to_chat(H, span_warning("Your suit begins to sap at your own energy stores."))
active = 1
else
return 0
@@ -39,8 +39,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You deactivate the suit's energy syphon.</b>"))
to_chat(H, "<span class='warning'>Your suit ceases from sapping your own energy.</span>")
to_chat(usr, span_boldnotice("You deactivate the suit's energy syphon."))
to_chat(H, span_warning("Your suit ceases from sapping your own energy."))
active = 0
else
return 0
@@ -50,7 +50,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
var/mob/living/P = holder?:myprotean
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate(1)
else
P = P?:humanform
@@ -87,7 +87,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
/obj/item/rig_module/protean/armor/activate()
if(holder?:assimilated_rig)
to_chat(usr, span_red("<b>Armor module non-functional while a RIG is assimilated.</b>"))
to_chat(usr, span_bolddanger("Armor module non-functional while a RIG is assimilated."))
return
if(!..(1))
return 0
@@ -96,8 +96,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
if(H)
var/list/temparmor = list("bio" = 100, "rad" = 100)
temparmor = armor_settings + temparmor
to_chat(usr, span_blue("<b>You signal the suit to harden.</b>"))
to_chat(H, "<span class='notice'>Your suit hardens in response to physical trauma.</span>")
to_chat(usr, span_boldnotice("You signal the suit to harden."))
to_chat(H, span_notice("Your suit hardens in response to physical trauma."))
holder.armor = temparmor.Copy()
for(var/obj/item/piece in list(holder.gloves,holder.helmet,holder.boots,holder.chest))
piece.armor = temparmor.Copy()
@@ -118,8 +118,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You signal the suit to relax.</b>"))
to_chat(H, "<span class='warning'>Your suit softens.</span>")
to_chat(usr, span_boldnotice("You signal the suit to relax."))
to_chat(H, span_warning("Your suit softens."))
holder.armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100)
for(var/obj/item/piece in list(holder.gloves,holder.helmet,holder.boots,holder.chest))
piece.armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100)
@@ -132,7 +132,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
if(active)
var/mob/living/carbon/human/H = holder.wearer
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate(1)
@@ -155,13 +155,13 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/P = holder?:myprotean
if(H && P)
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
return 0
var/obj/item/organ/internal/nano/refactory/R = P.nano_get_refactory()
if(R.get_stored_material(MAT_STEEL) >= 100)
healing = holder.wearer.add_modifier(/datum/modifier/protean/steel, origin = R)
to_chat(usr, span_blue("<b>You activate the suit's restorative nanites.</b>"))
to_chat(H, "<span class='warning'>Your suit begins mending your injuries.</span>")
to_chat(usr, span_boldnotice("You activate the suit's restorative nanites."))
to_chat(H, span_warning("Your suit begins mending your injuries."))
active = 1
return 1
return 0
@@ -171,8 +171,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return 0
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You deactivate the suit's restorative nanites.</b>"))
to_chat(H, "<span class='warning'>Your suit is no longer mending your injuries.</span>")
to_chat(usr, span_boldnotice("You deactivate the suit's restorative nanites."))
to_chat(H, span_warning("Your suit is no longer mending your injuries."))
active = 0
if(healing)
healing.expire()
@@ -186,12 +186,12 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
var/mob/living/P = holder?:myprotean
if((istype(H.species, /datum/species/protean)) || !H || !P)
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate()
return
var/obj/item/organ/internal/nano/refactory/R = P.nano_get_refactory()
if((!R.get_stored_material(MAT_STEEL)))
to_chat(H, "<span class='warning'>Your [holder] is out of steel.</span>")
to_chat(H, span_warning("Your [holder] is out of steel."))
deactivate()
return
@@ -204,6 +204,6 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/obj/item/organ/internal/nano/refactory/R = P?.nano_get_refactory()
if(R?.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
to_chat(user, span_blue("<b>You directly feed some steel to the [holder].</b>"))
to_chat(user, span_boldnotice("You directly feed some steel to the [holder]."))
return 1
return 0
@@ -43,30 +43,30 @@
/obj/item/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/suit/space/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/head/helmet/space/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/gloves/gauntlets/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/shoes/magboots/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
return FALSE
@@ -12,16 +12,16 @@
/obj/structure/closet/crate/secure/lootsafe/emag_act(var/remaining_charges, var/mob/user)
if (locked)
if(prob(60 - hackguard))
to_chat(user, "<span class='notice'>The safe unlocks!</span>")
to_chat(user, span_notice("The safe unlocks!"))
locked = 0
return 1
if(prob(15 + hackguard))
to_chat(user, "<span class='notice'>The safe buzzes as a security drone is teleported in!</span>")
to_chat(user, span_notice("The safe buzzes as a security drone is teleported in!"))
new /mob/living/simple_mob/mechanical/combat_drone (src.loc) //if I ever make security stun drones remind me to replace this with those
//new /effect/system/spark_spread (src.loc) I am to tired to make this work right now
return 1
else
to_chat(user, "<span class='notice'>The safe buzzes but the security systems don't trigger.</span>")
to_chat(user, span_notice("The safe buzzes but the security systems don't trigger."))
return 1
//Loot for lootsafes
@@ -117,7 +117,7 @@
if(!locked)
return
to_chat(user, "<span class='notice'>The crate is locked with a Deca-code lock.</span>")
to_chat(user, span_notice("The crate is locked with a Deca-code lock."))
var/input = tgui_input_text(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "")
if(!Adjacent(user))
return
@@ -131,16 +131,16 @@
sanitycheck = null //if a digit is repeated, reject the input
if(input == null || sanitycheck == null || length(input) != codelen)
to_chat(user, "<span class='notice'>You leave the crate alone.</span>")
to_chat(user, span_notice("You leave the crate alone."))
else if(check_input(input))
to_chat(user, "<span class='notice'>The crate unlocks!</span>")
to_chat(user, span_notice("The crate unlocks!"))
playsound(src, 'sound/machines/lockreset.ogg', 50, 1)
set_locked(0)
else
visible_message("<span class='warning'>A red light on \the [src]'s control panel flashes briefly.</span>")
visible_message(span_warning("A red light on \the [src]'s control panel flashes briefly."))
attempts--
if (attempts == 0)
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
to_chat(user, span_danger("The crate's anti-tamper system activates!"))
var/turf/T = get_turf(src.loc)
explosion(T, 0, 0, 1, 2)
qdel(src)
@@ -160,11 +160,11 @@
/obj/structure/closet/crate/secure/lootsafe/numberlock/attackby(obj/item/W as obj, mob/user as mob)
if(locked)
if (istype(W, /obj/item/multitool)) // Greetings Urist McProfessor, how about a nice game of cows and bulls?
to_chat(user, "<span class='notice'>DECA-CODE LOCK ANALYSIS:</span>")
to_chat(user, span_notice("DECA-CODE LOCK ANALYSIS:"))
if (attempts == 1)
to_chat(user, "<span class='warning'>* Anti-Tamper system will activate on the next failed access attempt.</span>")
to_chat(user, span_warning("* Anti-Tamper system will activate on the next failed access attempt."))
else
to_chat(user, "<span class='notice'>* Anti-Tamper system will activate after [src.attempts] failed access attempts.</span>")
to_chat(user, span_notice("* Anti-Tamper system will activate after [src.attempts] failed access attempts."))
if(lastattempt.len)
var/bulls = 0
var/cows = 0
@@ -179,7 +179,7 @@
var/previousattempt = null //convert back to string for readback
for(var/i in 1 to codelen)
previousattempt = addtext(previousattempt, lastattempt[i])
to_chat(user, "<span class='notice'>Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>")
to_chat(user, span_notice("Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."))
return
..()
@@ -219,7 +219,7 @@
if(!locked)
return
to_chat(user, "<span class='notice'>The crate is locked with a Deca-code lock.</span>")
to_chat(user, span_notice("The crate is locked with a Deca-code lock."))
var/input = tgui_input_text(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "")
if(!Adjacent(user))
return
@@ -233,16 +233,16 @@
sanitycheck = null //if a digit is repeated, reject the input
if(input == null || sanitycheck == null || length(input) != codelen)
to_chat(user, "<span class='notice'>You leave the crate alone.</span>")
to_chat(user, span_notice("You leave the crate alone."))
else if(check_input(input))
to_chat(user, "<span class='notice'>The crate unlocks!</span>")
to_chat(user, span_notice("The crate unlocks!"))
playsound(src, 'sound/machines/lockreset.ogg', 50, 1)
set_locked(0)
else
visible_message("<span class='warning'>A red light on \the [src]'s control panel flashes briefly.</span>")
visible_message(span_warning("A red light on \the [src]'s control panel flashes briefly."))
attempts--
if (attempts == 0)
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
to_chat(user, span_danger("The crate's anti-tamper system activates!"))
var/turf/T = get_turf(src.loc)
explosion(T, 0, 0, 1, 2)
qdel(src)
@@ -262,11 +262,11 @@
/obj/structure/closet/crate/secure/lootsafe/devillock/attackby(obj/item/W as obj, mob/user as mob)
if(locked)
if (istype(W, /obj/item/multitool)) // Greetings Urist McProfessor, how about a nice game of cows and bulls?
to_chat(user, "<span class='notice'>DECA-CODE LOCK ANALYSIS:</span>")
to_chat(user, span_notice("DECA-CODE LOCK ANALYSIS:"))
if (attempts == 1)
to_chat(user, "<span class='warning'>* Anti-Tamper system will activate on the next failed access attempt.</span>")
to_chat(user, span_warning("* Anti-Tamper system will activate on the next failed access attempt."))
else
to_chat(user, "<span class='notice'>* Anti-Tamper system will activate after [src.attempts] failed access attempts.</span>")
to_chat(user, span_notice("* Anti-Tamper system will activate after [src.attempts] failed access attempts."))
if(lastattempt.len)
var/bulls = 0
var/cows = 0
@@ -281,6 +281,6 @@
var/previousattempt = null //convert back to string for readback
for(var/i in 1 to codelen)
previousattempt = addtext(previousattempt, lastattempt[i])
to_chat(user, "<span class='notice'>Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>")
to_chat(user, span_notice("Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."))
return
..()
@@ -76,7 +76,7 @@
var/datum/callback/something_happens = next_message
next_message = something_happens.InvokeAsync(src)
to_chat(src, span_notice("<i>... [next_message] ...</i>"))
to_chat(src, span_notice(span_italics("... [next_message] ...")))
if(LAZYLEN(dream_fragments))
var/next_wait = rand(10, 30)
@@ -71,7 +71,7 @@
var/datum/lore/codex/checked = current_page["[user]"]
if(istype(checked))
var/output = ""
output = "<b>[checked.name]</b>"
output = span_bold("[checked.name]")
while(checked.parent)
output = "<a href='?src=\ref[src];target=\ref[checked.parent]'>[checked.parent.name]</a> \> [output]"
checked = checked.parent
@@ -7,25 +7,25 @@
each component spell. Hark, reader beware! To peruse beyond permission of the mighty Wizard Federation is to \
be struck with a 10,000 year imprisonment curse of cuboidal containment sphere!\
<br><br>\
<hr><b>Heat Applicator</b>: A device, commonly of metal, into which component spells are inserted and transmogrified \
<hr>" + span_bold("Heat Applicator") + ": A device, commonly of metal, into which component spells are inserted and transmogrified \
into the Gustomancic Product. Applicators convert Electromancy into heat, and may require heating to an ideal \
temperature before spellcrafting. Overapplication will result in failure of the spell, and respiratory distress! \
<br>\
<hr><b>Pure Fluids</b>: A purified substance, typically of liquid form, added to the Applicator from a fluid vessel. \
<hr>" + span_bold("Pure Fluids") + ": A purified substance, typically of liquid form, added to the Applicator from a fluid vessel. \
Fluids are typically extracted from a bearing object, ground from bulk form, or produced by Chemomancy. \
<br>\
<hr><b>Material Objects</b>: Any component spell object not created by Botanomancy. Most are created by lesser \
<hr>" + span_bold("Material Objects") + ": Any component spell object not created by Botanomancy. Most are created by lesser \
Gustomancy tools or Gustomancy spells. Others may require creative acquistion methods! \
<br>\
<hr><b>Grown Produce</b>: A product of the soils and vessels of Botanomancy, typically fruit or vegetable. The \
<hr>" + span_bold("Grown Produce") + ": A product of the soils and vessels of Botanomancy, typically fruit or vegetable. The \
methods of Botanomancy lie beyond the scope of this Gustomancy tome! \
<br>\
<hr><b>Cooked Shell</b>: A coating of specified pure fluid, typically batter, applied to all component spell \
<hr>" + span_bold("Cooked Shell") + ": A coating of specified pure fluid, typically batter, applied to all component spell \
objects. Traditionally, specified fluid is placed in a glass vessel and each component spell dipped within. \
<br>\
<hr><b>Temporal Shift</b>: Length of passage through the temporial medium, unaffected by Chronomancy. \
<hr>" + span_bold("Temporal Shift") + ": Length of passage through the temporial medium, unaffected by Chronomancy. \
<br>\
<hr><b>Meal Quantity</b>: Number of uses of the completed spell. \
<hr>" + span_bold("Meal Quantity") + ": Number of uses of the completed spell. \
<hr><br><br>\
The segmented fusion of Gustomancy and Chemomancy is currently beyond the scope of this tome, as is the \
usage of simple Gustomantic techniques such as rolling flat and slicing dough. The Gustomancer is reminded \
@@ -76,7 +76,7 @@
text = "Cereal maker"
else
text = ""
D.data = "<b>Heat Applicator</b>: [text ? text : "none"]<br>"
D.data = span_bold("Heat Applicator") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.reagents))
@@ -86,7 +86,7 @@
text += ", "
text += "[capitalize(thing)]: [R.reagents[thing]] units"
i++
D.data += "<b>Pure Fluids</b>: [text ? text : "none"]<br>"
D.data += span_bold("Pure Fluids") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.items))
@@ -96,7 +96,7 @@
text += ", "
text += "[capitalize(initial(AM.name))]"
i++
D.data += "<b>Material Objects</b>: [text ? text : "none"]<br>"
D.data += span_bold("Material Objects") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.fruit)) // Inelegant copypasta time
@@ -106,23 +106,23 @@
text += ", "
text += "[capitalize(thing)]: [R.fruit[thing]] quantity"
i++
D.data += "<b>Grown Produce</b>: [text ? text : "none"]<br>"
D.data += span_bold("Grown Produce") + ": [text ? text : "none"]<br>"
text = ""
if(R.coating)
var/datum/reagent/ooze = initial(R.coating) // Datum typepath
text = capitalize(initial(ooze.name))
D.data += "<b>Cooked Shell</b>: [text ? text : "none"]<br>"
D.data += span_bold("Cooked Shell") + ": [text ? text : "none"]<br>"
text = 0
if(R.time) // Deciseconds
text = R.time
D.data += "<b>Temporal Shift</b>: [text ? text/10 : 0] second\s<br>"
D.data += span_bold("Temporal Shift") + ": [text ? text/10 : 0] second\s<br>"
text = 0
if(R.result_quantity) // Should never be null.
text = R.result_quantity
D.data += "<b>Meal Quantity</b>: [text ? text : 0] plate\s<br>"
D.data += span_bold("Meal Quantity") + ": [text ? text : 0] plate\s<br>"
new_children_list[D.name] = D // We make this an associative list so we can alphabetize later
qdel(R) // Delete recipe datum after we're done with it
@@ -18,10 +18,10 @@
/* Temp removal while I figure out how to reduce the respawn time to 1 minute
var/time_till_respawn = time_till_respawn()
if(time_till_respawn == -1) // Special case, never allowed to respawn
to_chat(usr, "<span class='warning'>Respawning is not allowed!</span>")
to_chat(usr, span_warning("Respawning is not allowed!"))
return
if(time_till_respawn) // Nonzero time to respawn
to_chat(usr, "<span class='warning'>You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.</span>")
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
return
*/
var/datum/data/record/record_found
@@ -11,7 +11,7 @@
set category = "IC.Settings"
if(stat)
to_chat(src, "<span class='warning'>You must be awake and standing to perform this action!</span>")
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
return
speech_sound_enabled = !speech_sound_enabled
@@ -73,7 +73,7 @@
set category = "IC.Game"
if(stat || world.time < last_special)
to_chat(usr, "<span class='warning'>You recently tried to create an area. Wait a while before using it again.</span>")
to_chat(usr, span_warning("You recently tried to create an area. Wait a while before using it again."))
return
last_special = world.time + 2 SECONDS // Antispam.
@@ -8,10 +8,10 @@
var/darkness = 1
var/turf/T = get_turf(src)
if(!T)
to_chat(src,"<span class='warning'>You can't use that here!</span>")
to_chat(src,span_warning("You can't use that here!"))
return FALSE
if((get_area(src).flags & PHASE_SHIELDED)) //CHOMPAdd - Mapping tools to control phasing
to_chat(src,"<span class='warning'>This area is preventing you from phasing!</span>")
to_chat(src,span_warning("This area is preventing you from phasing!"))
return FALSE
if(ability_flags & AB_PHASE_SHIFTING)
@@ -48,23 +48,23 @@
log_debug("[src] attempted to shift with [watcher] observers with a cost of [ability_cost] in a darkness level of [darkness]")
//CHOMPEdit start - inform about the observers affecting phasing
if(darkness<=0.4 && watcher>=2)
to_chat(src, "<span class='warning'>You have a few observers in a well-lit area! This may prevent phasing. (Working cameras count towards observers)</span>")
to_chat(src, span_warning("You have a few observers in a well-lit area! This may prevent phasing. (Working cameras count towards observers)"))
else if(watcher>=3)
to_chat(src, "<span class='warning'>You have a large number of observers! This may prevent phasing. (Working cameras count towards observers)</span>")
to_chat(src, span_warning("You have a large number of observers! This may prevent phasing. (Working cameras count towards observers)"))
//CHOMPEdit end
var/datum/species/shadekin/SK = species
/* CHOMPEdit start - general shadekin ability check
if(!istype(SK))
to_chat(src, "<span class='warning'>Only a shadekin can use that!</span>")
to_chat(src, span_warning("Only a shadekin can use that!"))
return FALSE
else if(stat)
to_chat(src, "<span class='warning'>Can't use that ability in your state!</span>")
to_chat(src, span_warning("Can't use that ability in your state!"))
return FALSE
//CHOMPEdit Start - Dark Respite
else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "<span class='warning'>You can't use that so soon after an emergency warp!</span>")
to_chat(src, span_warning("You can't use that so soon after an emergency warp!"))
return FALSE
*/
if(!shadekin_ability_check())
@@ -72,12 +72,12 @@
//CHOMPEdit End
//CHOMPEdit Start - Prevent bugs when spamming phase button
else if(SK.doing_phase)
to_chat(src, "<span class='warning'>You are already trying to phase!</span>")
to_chat(src, span_warning("You are already trying to phase!"))
return FALSE
//CHOMPEdit End
else if(shadekin_get_energy() < ability_cost && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "<span class='warning'>Not enough energy for that ability!</span>")
to_chat(src, span_warning("Not enough energy for that ability!"))
return FALSE
if(!(ability_flags & AB_PHASE_SHIFTED))
@@ -85,7 +85,7 @@
playsound(src, 'sound/effects/stealthoff.ogg', 75, 1)
if(!T.CanPass(src,T) || loc != T)
to_chat(src,"<span class='warning'>You can't use that here!</span>")
to_chat(src,span_warning("You can't use that here!"))
return FALSE
@@ -119,7 +119,6 @@
// change
ability_flags &= ~AB_PHASE_SHIFTED
ability_flags |= AB_PHASE_SHIFTING
mouse_opacity = 1
name = get_visible_name()
for(var/obj/belly/B as anything in vore_organs)
B.escapable = initial(B.escapable)
@@ -158,12 +157,12 @@
var/mob/living/target = pick(potentials)
if(can_be_drop_pred && istype(target) && target.devourable && target.can_be_drop_prey && target.phase_vore && vore_selected && phase_vore)
target.forceMove(vore_selected)
to_chat(target, "<span class='vwarning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
to_chat(src, "<span class='vwarning'>You phase around [target], [vore_selected.vore_verb]ing them into your [vore_selected.name]!</span>")
to_chat(target, span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
to_chat(src, span_vwarning("You phase around [target], [vore_selected.vore_verb]ing them into your [vore_selected.name]!"))
else if(can_be_drop_prey && istype(target) && devourable && target.can_be_drop_pred && target.phase_vore && target.vore_selected && phase_vore)
forceMove(target.vore_selected)
to_chat(target, "<span class='vwarning'>\The [src] phases into you, [target.vore_selected.vore_verb]ing them into your [target.vore_selected.name]!</span>")
to_chat(src, "<span class='vwarning'>You phase into [target], having them [target.vore_selected.vore_verb] you into their [target.vore_selected.name]!</span>")
to_chat(target, span_vwarning("\The [src] phases into you, [target.vore_selected.vore_verb]ing them into your [target.vore_selected.name]!"))
to_chat(src, span_vwarning("You phase into [target], having them [target.vore_selected.vore_verb] you into their [target.vore_selected.name]!"))
ability_flags &= ~AB_PHASE_SHIFTING
@@ -230,7 +229,6 @@
// change
ability_flags |= AB_PHASE_SHIFTED
ability_flags |= AB_PHASE_SHIFTING
mouse_opacity = 0
custom_emote(1,"phases out!")
name = get_visible_name()
@@ -301,13 +299,13 @@
var/datum/species/shadekin/SK = species
if(!istype(SK))
to_chat(src, "<span class='warning'>Only a shadekin can use that!</span>")
to_chat(src, span_warning("Only a shadekin can use that!"))
return FALSE
if(SK.phase_gentle)
to_chat(src, "<span class='notice'>Phasing toggled to Normal. You may damage lights.</span>")
to_chat(src, span_notice("Phasing toggled to Normal. You may damage lights."))
SK.phase_gentle = 0
else
to_chat(src, "<span class='notice'>Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun.</span>")
to_chat(src, span_notice("Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun."))
SK.phase_gentle = 1
//CHOMPEdit End
@@ -23,9 +23,9 @@
var/oocnotes = 0
if(input == "Yes")
oocnotes = 1
to_chat(src, "<span class='notify'>You begin to reform. You will need to remain still.</span>")
visible_message("<span class='notify'>[src] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reform.</span>")
to_chat(src, span_notify("You begin to reform. You will need to remain still."))
visible_message(span_notify("[src] rapidly contorts and shifts!"), span_danger("You begin to reform."))
if (do_after(src, 40,exclusive = TASK_ALL_EXCLUSIVE))
if (client?.prefs)
client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, FALSE)
visible_message("<span class='notify'>[src] adopts a new form!</span>", "<span class='danger'>You have reformed.</span>")
visible_message(span_notify("[src] adopts a new form!"), span_danger("You have reformed."))
@@ -370,7 +370,7 @@
if(target.buckled)
target.buckled.unbuckle_mob(target, force = TRUE)
target.forceMove(vore_selected)
to_chat(target,"<span class='warning'>\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
to_chat(target,span_warning("\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
update_canmove()
/mob/living/simple_mob/protean_blob/update_canmove()
@@ -392,22 +392,22 @@
if(!allowed)
return
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
else if(isitem(A) && a_intent == "grab") //CHOMP Add all this block, down to I.forceMove.
var/obj/item/I = A
if(!vore_selected)
to_chat(src,"<span class='warning'>You either don't have a belly selected, or don't have a belly!</span>")
to_chat(src,span_warning("You either don't have a belly selected, or don't have a belly!"))
return FALSE
if(is_type_in_list(I,item_vore_blacklist) || I.anchored)
to_chat(src, "<span class='warning'>You can't eat this.</span>")
to_chat(src, span_warning("You can't eat this."))
return
if(is_type_in_list(I,edible_trash) | adminbus_trash)
if(I.hidden_uplink)
to_chat(src, "<span class='warning'>You really should not be eating this.</span>")
to_chat(src, span_warning("You really should not be eating this."))
message_admins("[key_name(src)] has attempted to ingest an uplink item. ([src ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>" : "null"])")
return
visible_message("<b>[name]</b> stretches itself over the [I], engulfing it whole!")
visible_message(span_infoplain(span_bold("[name]") + " stretches itself over the [I], engulfing it whole!"))
I.forceMove(vore_selected)
else
return ..()
@@ -423,7 +423,7 @@
if(!allowed)
return
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
else
return ..()
@@ -453,9 +453,9 @@
// Helpers - Unsafe, WILL perform change.
/mob/living/carbon/human/proc/nano_intoblob(force)
if(!force && !isturf(loc) && !loc == /obj/item/rig/protean)
to_chat(src,"<span class='warning'>You can't change forms while inside something.</span>")
to_chat(src,span_warning("You can't change forms while inside something."))
return
to_chat(src, "<span class='notice'>You rapidly disassociate your form.</span>")
to_chat(src, span_notice("You rapidly disassociate your form."))
if(force || do_after(src,20,exclusive = TASK_ALL_EXCLUSIVE))
handle_grasp() //It's possible to blob out before some key parts of the life loop. This results in things getting dropped at null. TODO: Fix the code so this can be done better.
remove_micros(src, src) //Living things don't fare well in roblobs.
@@ -506,7 +506,7 @@
moveToNullspace()
//Message
blob.visible_message("<b>[src.name]</b> collapses into a gooey blob!")
blob.visible_message(span_infoplain(span_bold("[src.name]") + " collapses into a gooey blob!"))
//Duration of the to_puddle iconstate that the blob starts with
sleep(13)
@@ -536,7 +536,7 @@
//Return our blob in case someone wants it
return blob
else
to_chat(src, "<span class='warning'>You must remain still to blobform!</span>")
to_chat(src, span_warning("You must remain still to blobform!"))
//For some reason, there's no way to force drop all the mobs grabbed. This ought to fix that. And be moved elsewhere. Call with caution, doesn't handle cycles.
/proc/remove_micros(var/src, var/mob/root)
@@ -563,9 +563,9 @@
if(blob.loc == /obj/item/rig/protean)
return
if(!force && !isturf(blob.loc))
to_chat(blob,"<span class='warning'>You can't change forms while inside something.</span>")
to_chat(blob,span_warning("You can't change forms while inside something."))
return
to_chat(src, "<span class='notice'>You rapidly reassemble your form.</span>")
to_chat(src, span_notice("You rapidly reassemble your form."))
if(force || do_after(blob,20,exclusive = TASK_ALL_EXCLUSIVE))
if(buckled)
buckled.unbuckle_mob()
@@ -593,7 +593,7 @@
blob.icon_state = "from_puddle"
//Message
blob.visible_message("<b>[src.name]</b> reshapes into a humanoid appearance!")
blob.visible_message(span_infoplain(span_bold("[src.name]") + " reshapes into a humanoid appearance!"))
//Size update
resize(blob.size_multiplier, FALSE, TRUE, ignore_prefs = TRUE)
@@ -639,7 +639,7 @@
//Return ourselves in case someone wants it
return src
else
to_chat(src, "<span class='warning'>You must remain still to reshape yourself!</span>")
to_chat(src, span_warning("You must remain still to reshape yourself!"))
/mob/living/carbon/human/proc/nano_set_panel(var/client/C)
if(C)
@@ -13,20 +13,20 @@
if(temporary_form)
caller = temporary_form
if(nano_dead_check(caller))
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
return
if(stat)
to_chat(caller,"<span class='warning'>You must be awake and standing to perform this action!</span>")
to_chat(caller,span_warning("You must be awake and standing to perform this action!"))
return
if(!isturf(caller.loc))
to_chat(caller,"<span class='warning'>You need more space to perform this action!</span>")
to_chat(caller,span_warning("You need more space to perform this action!"))
return
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
//Missing the organ that does this
if(!istype(refactory))
to_chat(caller,"<span class='warning'>You don't have a working refactory module!</span>")
to_chat(caller,span_warning("You don't have a working refactory module!"))
return
var/choice = tgui_input_list(caller,"Pick the bodypart to change:", "Refactor - One Bodypart", species.has_limbs)
@@ -36,7 +36,7 @@
//Organ is missing, needs restoring
if(!organs_by_name[choice] || istype(organs_by_name[choice], /obj/item/organ/external/stump)) //allows limb stumps to regenerate like removed limbs.
if(refactory.get_stored_material(MAT_STEEL) < PER_LIMB_STEEL_COST)
to_chat(caller,"<span class='warning'>You're missing that limb, and need to store at least [PER_LIMB_STEEL_COST] steel to regenerate it.</span>")
to_chat(caller,span_warning("You're missing that limb, and need to store at least [PER_LIMB_STEEL_COST] steel to regenerate it."))
return
var/regen = tgui_alert(caller,"That limb is missing, do you want to regenerate it in exchange for [PER_LIMB_STEEL_COST] steel?","Regenerate limb?",list("Yes","No"))
if(regen != "Yes")
@@ -105,15 +105,15 @@
if(input == "Rebuild")
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
if(refactory.get_stored_material(MAT_STEEL) >= 10000)
to_chat(caller, "<span class='notify'>You begin to rebuild. You will need to remain still.</span>")
to_chat(caller, span_notify("You begin to rebuild. You will need to remain still."))
if(do_after(caller, 400,exclusive = TASK_ALL_EXCLUSIVE))
if(species?:OurRig) //Unsafe, but we should only ever be using this with a Protean
species?:OurRig?:make_alive(src,1) //Re-using this proc
refactory.use_stored_material(MAT_STEEL,refactory.get_stored_material(MAT_STEEL)) //Use all of our steel
else
to_chat(caller, "<span class='usrdanger'>Somehow, you are missing your protean rig. You are unable to rebuild without one.</span>")
to_chat(caller, span_userdanger("Somehow, you are missing your protean rig. You are unable to rebuild without one."))
else
to_chat(caller, "<span class='warning'>You do not have enough steel stored for this operation.</span>")
to_chat(caller, span_warning("You do not have enough steel stored for this operation."))
else
input = tgui_alert(caller,{"Include Flavourtext?"},"Reassembly",list("Yes","No","Cancel"))
if(input == "Cancel" || !input)
@@ -127,14 +127,14 @@
var/oocnotes = 0
if(input == "Yes")
oocnotes = 1
to_chat(caller, "<span class='notify'>You begin to reassemble. You will need to remain still.</span>")
caller.visible_message("<span class='notify'>[caller] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reassemble.</span>")
to_chat(caller, span_notify("You begin to reassemble. You will need to remain still."))
caller.visible_message(span_notify("[caller] rapidly contorts and shifts!"), span_danger("You begin to reassemble."))
if(do_after(caller, 40,exclusive = TASK_ALL_EXCLUSIVE))
if(caller.client.prefs) //Make sure we didn't d/c
var/obj/item/rig/protean/Rig = species?:OurRig
caller.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, TRUE)
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
caller.visible_message("<span class='notify'>[caller] adopts a new form!</span>", "<span class='danger'>You have reassembled.</span>")
caller.visible_message(span_notify("[caller] adopts a new form!"), span_danger("You have reassembled."))
/mob/living/carbon/human/proc/nano_copy_body()
@@ -156,22 +156,22 @@
victim = G.affecting
if (!victim)
if (grabbing_but_not_enough)
to_chat(caller, "<span class='warning'>You need a better grip to do that!</span>")
to_chat(caller, span_warning("You need a better grip to do that!"))
else
to_chat(caller, "<span class='notice'>You need to be aggressively grabbing someone before you can copy their form.</span>")
to_chat(caller, span_notice("You need to be aggressively grabbing someone before you can copy their form."))
return
if (!istype(victim))
to_chat(caller, "<span class='warning'>You can only perform this on human mobs!</span>")
to_chat(caller, span_warning("You can only perform this on human mobs!"))
return
if (!victim.client)
to_chat(caller, "<span class='notice'>The person you try this on must have a client!</span>")
to_chat(caller, span_notice("The person you try this on must have a client!"))
return
to_chat(caller, "<span class='notice'>Waiting for other person's consent.</span>")
to_chat(caller, span_notice("Waiting for other person's consent."))
var/consent = tgui_alert(victim, "Allow [src] to copy what you look like?", "Consent", list("Yes", "No"))
if (consent != "Yes")
to_chat(caller, "<span class='notice'>They declined your request.</span>")
to_chat(caller, span_notice("They declined your request."))
return
var/input = tgui_alert(caller,{"Copy [victim]'s flavourtext?"},"Copy Form",list("Yes","No","Cancel"))
@@ -186,24 +186,24 @@
if(G.affecting == victim && G.state >= GRAB_AGGRESSIVE)
checking = TRUE
if (!checking)
to_chat(caller, "<span class='warning'>You lost your grip on [victim]!</span>")
to_chat(caller, span_warning("You lost your grip on [victim]!"))
return
to_chat(caller, "<span class='notify'>You begin to reassemble into [victim]. You will need to remain still.</span>")
caller.visible_message("<span class='notify'>[caller] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reassemble into [victim].</span>")
to_chat(caller, span_notify("You begin to reassemble into [victim]. You will need to remain still."))
caller.visible_message(span_notify("[caller] rapidly contorts and shifts!"), span_danger("You begin to reassemble into [victim]."))
if(do_after(caller, 40,exclusive = TASK_ALL_EXCLUSIVE))
checking = FALSE
for(var/obj/item/grab/G in caller)
if(G.affecting == victim && G.state >= GRAB_AGGRESSIVE)
checking = TRUE
if (!checking)
to_chat(caller, "<span class='warning'>You lost your grip on [victim]!</span>")
to_chat(caller, span_warning("You lost your grip on [victim]!"))
return
if(caller.client) //Make sure we didn't d/c
var/obj/item/rig/protean/Rig = species?:OurRig
transform_into_other_human(victim, FALSE, flavour, TRUE)
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
caller.visible_message("<span class='notify'>[caller] adopts the form of [victim]!</span>", "<span class='danger'>You have reassembled into [victim].</span>")
caller.visible_message(span_notify("[caller] adopts the form of [victim]!"), span_danger("You have reassembled into [victim]."))
////
// Storing metal
@@ -218,18 +218,18 @@
if(temporary_form)
caller = temporary_form
if(nano_dead_check(caller))
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
return
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
//Missing the organ that does this
if(!istype(refactory))
to_chat(caller,"<span class='warning'>You don't have a working refactory module!</span>")
to_chat(caller,span_warning("You don't have a working refactory module!"))
return
var/held = caller.get_active_hand()
if(!istype(held,/obj/item/stack/material))
to_chat(caller,"<span class='warning'>You aren't holding a stack of materials in your active hand!</span>")
to_chat(caller,span_warning("You aren't holding a stack of materials in your active hand!"))
return
var/obj/item/stack/material/matstack = held
@@ -238,7 +238,7 @@
for(var/material in PROTEAN_EDIBLE_MATERIALS)
if(material == substance) allowed = 1
if(!allowed)
to_chat(caller,"<span class='warning'>You can't process [substance]!</span>")
to_chat(caller,span_warning("You can't process [substance]!"))
return
var/howmuch = tgui_input_number(caller,"How much do you want to store? (0-[matstack.get_amount()])","Select amount",null,matstack.get_amount())
@@ -248,13 +248,13 @@
var/actually_added = refactory.add_stored_material(substance,howmuch*matstack.perunit)
matstack.use(CEILING((actually_added/matstack.perunit), 1))
if(actually_added && actually_added < howmuch)
to_chat(caller,"<span class='warning'>Your refactory module is now full, so only [actually_added] units were stored.</span>")
visible_message("<span class='notice'>[caller] nibbles some of the [substance] right off the stack!</span>")
to_chat(caller,span_warning("Your refactory module is now full, so only [actually_added] units were stored."))
visible_message(span_notice("[caller] nibbles some of the [substance] right off the stack!"))
else if(actually_added)
to_chat(caller,"<span class='notice'>You store [actually_added] units of [substance].</span>")
visible_message("<span class='notice'>[caller] devours some of the [substance] right off the stack!</span>")
to_chat(caller,span_notice("You store [actually_added] units of [substance]."))
visible_message(span_notice("[caller] devours some of the [substance] right off the stack!"))
else
to_chat(caller,"<span class='notice'>You're completely capped out on [substance]!</span>")
to_chat(caller,span_notice("You're completely capped out on [substance]!"))
////
// Blob Form
@@ -275,21 +275,21 @@
return
var/atom/movable/to_locate = temporary_form || src
if(!isturf(to_locate.loc) && !forced)
to_chat(to_locate,"<span class='warning'>You need more space to perform this action!</span>")
to_chat(to_locate,span_warning("You need more space to perform this action!"))
return
//Blob form
if(temporary_form)
if(temporary_form.stat)
to_chat(temporary_form,"<span class='warning'>You can only do this while not stunned.</span>")
to_chat(temporary_form,span_warning("You can only do this while not stunned."))
else
nano_outofblob(temporary_form)
//Human form
else if(stat)
to_chat(src,"<span class='warning'>You can only do this while not stunned.</span>")
to_chat(src,span_warning("You can only do this while not stunned."))
return
else if(handcuffed)
to_chat(src, "<span class='warning'>You can't do this while handcuffed!</span>")
to_chat(src, span_warning("You can't do this while handcuffed!"))
return
else
nano_intoblob()
@@ -303,7 +303,7 @@
set category = "Abilities.Protean"
if(stat)
to_chat(src,"<span class='warning'>You must be awake and standing to perform this action!</span>")
to_chat(src,span_warning("You must be awake and standing to perform this action!"))
return
var/new_species = tgui_input_list(usr, "Please select a species to emulate.", "Shapeshifter Body", list(species?.vanity_base_fit)|species?.get_valid_shapeshifter_forms())
@@ -324,9 +324,9 @@
if(temporary_form)
caller = temporary_form
if(nano_dead_check(src))
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
return
to_chat(caller, "<span class='notice'>You rapidly condense into your module.</span>")
to_chat(caller, span_notice("You rapidly condense into your module."))
if(forced || do_after(caller,20,exclusive = TASK_ALL_EXCLUSIVE))
if(!temporary_form) //If you're human, force you into blob form before rig'ing
nano_blobform(forced)
@@ -353,7 +353,7 @@
P.has_hands = 1
else //We're not in our own RIG
if(P.stat || P.resting && !forced)
to_chat(P,"<span class='warning'>You can only do this while not stunned.</span>")
to_chat(P,span_warning("You can only do this while not stunned."))
else
if(P.l_hand)
P.drop_l_hand()
@@ -366,10 +366,10 @@
S.OurRig.canremove = 1
P.reset_view()
else //Make one if not
to_chat(temporary_form, "<span class='warning'>Somehow, your RIG got disconnected from your species. This may have been caused by an admin heal. A new one has been created for you, contact a coder.</span>")
to_chat(temporary_form, span_warning("Somehow, your RIG got disconnected from your species. This may have been caused by an admin heal. A new one has been created for you, contact a coder."))
new /obj/item/rig/protean(src,src)
else
to_chat(caller, "<span class='warning'>You must remain still to condense!</span>")
to_chat(caller, span_warning("You must remain still to condense!"))
/mob/living/carbon/human/proc/appearance_switch()
set name = "Switch Blob Appearance"
@@ -556,9 +556,9 @@
target = S.OurRig.wearer
if(target)
target.drop_from_inventory(S.OurRig)
to_chat(caller, "<span class='notice'>You detach from your host.</span>")
to_chat(caller, span_notice("You detach from your host."))
else
to_chat(caller, "<span class='warning'>You aren't being worn, dummy.</span>")
to_chat(caller, span_warning("You aren't being worn, dummy."))
return
var/obj/held_item = caller.get_active_hand()
if(istype(held_item,/obj/item/grab))
@@ -566,14 +566,14 @@
if(istype(G.affecting, /mob/living/carbon/human))
target = G.affecting
if(istype(target.species, /datum/species/protean))
to_chat(caller, "<span class='danger'>You can't latch onto a fellow Protean!</span>")
to_chat(caller, span_danger("You can't latch onto a fellow Protean!"))
return
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
caller.visible_message("<span class='warning'>[caller] is attempting to latch onto [target]!</span>", "<span class='danger'>You attempt to latch onto [target]!</span>")
caller.visible_message(span_warning("[caller] is attempting to latch onto [target]!"), span_danger("You attempt to latch onto [target]!"))
if(do_after(caller, 50, target,exclusive = TASK_ALL_EXCLUSIVE))
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
target.drop_from_inventory(target.back)
caller.visible_message("<span class='danger'>[caller] latched onto [target]!</span>", "<span class='danger'>You latch yourself onto [target]!</span>")
caller.visible_message(span_danger("[caller] latched onto [target]!"), span_danger("You latch yourself onto [target]!"))
target.Weaken(3)
nano_rig_transform(1)
spawn(5) //Have to give time for the above proc to resolve
@@ -583,11 +583,11 @@
spawn(1) //Same here :(
S.OurRig.wearer = target
else
to_chat(caller, "<span class='warning'>You need a more aggressive grab to do this!</span>")
to_chat(caller, span_warning("You need a more aggressive grab to do this!"))
else
to_chat(caller, "<span class='warning'>You can only latch onto humanoid mobs!</span>")
to_chat(caller, span_warning("You can only latch onto humanoid mobs!"))
else
to_chat(caller, "<span class='warning'>You need to be grabbing a humanoid mob aggressively to latch onto them.</span>")
to_chat(caller, span_warning("You need to be grabbing a humanoid mob aggressively to latch onto them."))
/// /// /// A helper to reuse
/mob/living/proc/nano_get_refactory(obj/item/organ/internal/nano/refactory/R)
@@ -634,7 +634,7 @@
var/opts = clickprops["shift"]
if(opts)
to_chat(usr,"<span class='notice'><b>[ability_name]</b> - [desc]</span>")
to_chat(usr,span_notice(span_bold("[ability_name]") + " - [desc]"))
else
//Humanform using it
if(ishuman(usr))
@@ -716,7 +716,7 @@
if(proteanlimbs.organ_tag == BP_HEAD)
continue
proteanlimbs.transparent = !proteanlimbs.transparent
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
visible_message(span_notice("\The [src]'s internal composition seems to change."))
update_icons_body()
update_hair()
@@ -736,7 +736,7 @@
for(var/obj/item/organ/external/proteanlimbs as anything in src.organs)
proteanlimbs.transparent = !proteanlimbs.transparent
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
visible_message(span_notice("\The [src]'s internal composition seems to change."))
update_icons_body()
update_hair()
@@ -53,7 +53,7 @@
addtimer(CALLBACK(src, PROC_REF(AssimilateBag), P, 1, P.back), 3)
myprotean = P
else
to_chat(P, "<span class='notice'>You should have spawned with a backpack to assimilate into your RIG. Try clicking it with a backpack.</span>")
to_chat(P, span_notice("You should have spawned with a backpack to assimilate into your RIG. Try clicking it with a backpack."))
..(newloc)
/obj/item/rig/protean/Destroy()
@@ -75,12 +75,12 @@
B.forceMove(src)
rig_storage = B
P.drop_item(B)
to_chat(P, "<span class='notice'>[B] has been integrated into the [src].</span>")
to_chat(P, span_notice("[B] has been integrated into the [src]."))
if(spawned) //This feels very dumb to have a second if but I'm lazy
P.equip_to_slot_if_possible(src, slot_back)
src.Moved()
else
to_chat(P,"<span class ='warning'>Your rigsuit can only assimilate a backpack into itself. If you are seeing this message, and you do not have a rigsuit, tell a coder.</span>")
to_chat(P,span_warning("Your rigsuit can only assimilate a backpack into itself. If you are seeing this message, and you do not have a rigsuit, tell a coder."))
/obj/item/rig/protean/verb/RemoveBag()
set name = "Remove Stored Bag"
@@ -243,14 +243,14 @@
if(W.is_screwdriver())
playsound(src, W.usesound, 50, 1)
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
to_chat(user, "<span class='notice'>You unscrew the maintenace panel on the [src].</span>")
to_chat(user, span_notice("You unscrew the maintenace panel on the [src]."))
dead +=1
return
if(2)
if(istype(W, /obj/item/protean_reboot))//placeholder
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
to_chat(user, "<span class='notice'>You carefully slot [W] in the [src].</span>")
to_chat(user, span_notice("You carefully slot [W] in the [src]."))
dead +=1
qdel(W)
return
@@ -258,14 +258,14 @@
if(istype(W, /obj/item/stack/nanopaste))
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
playsound(src, 'sound/effects/ointment.ogg', 50, 1)
to_chat(user, "<span class='notice'>You slather the interior confines of the [src] with the [W].</span>")
to_chat(user, span_notice("You slather the interior confines of the [src] with the [W]."))
dead +=1
W?:use(1)
return
if(4)
if(istype(W, /obj/item/shockpaddles))
if(W?:can_use(user))
to_chat(user, "<span class='notice'>You hook up the [W] to the contact points in the maintenance assembly</span>")
to_chat(user, span_notice("You hook up the [W] to the contact points in the maintenance assembly"))
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
if(do_after(user,10,src))
@@ -398,7 +398,7 @@
var/datum/species/protean/S
S = H.species
S.pseudodead = 0
to_chat(myprotean, "<span class='notice'>You have finished reconstituting.</span>")
to_chat(myprotean, span_notice("You have finished reconstituting."))
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
dead = 0
@@ -413,7 +413,7 @@
/obj/item/rig/protean/force_rest(var/mob/user)
wearer.lay_down()
to_chat(user, "<span class='notice'>\The [wearer] is now [wearer.resting ? "resting" : "getting up"].</span>")
to_chat(user, span_notice("\The [wearer] is now [wearer.resting ? "resting" : "getting up"]."))
/obj/item/cell/protean
name = "Protean power cell"
@@ -456,11 +456,11 @@
return 0 //We don't do that here.
if(offline || !cell || !cell.charge || locked_down)
if(user)
to_chat(user, "<span class='warning'>Your host rig is unpowered and unresponsive.</span>")
to_chat(user, span_warning("Your host rig is unpowered and unresponsive."))
return 0
if(!wearer || (wearer.back != src && wearer.belt != src))
if(user)
to_chat(user, "<span class='warning'>Your host rig is not being worn.</span>")
to_chat(user, span_warning("Your host rig is not being worn."))
return 0
return 1
@@ -495,9 +495,9 @@
if(!R || assimilated_rig)
return
if(istype(R, /obj/item/rig/protean))
to_chat(user, "<span class='warning'>The world is not ready for such a technological singularity.</span>")
to_chat(user, span_warning("The world is not ready for such a technological singularity."))
return
to_chat(user, "<span class='notice'>You assimilate the [R] into the [src]. Mimicking its stats and appearance.</span>")
to_chat(user, span_notice("You assimilate the [R] into the [src]. Mimicking its stats and appearance."))
for(var/obj/item/piece in list(gloves,helmet,boots,chest))
piece.armor = R.armor.Copy()
piece.max_pressure_protection = R.max_pressure_protection
@@ -96,7 +96,7 @@ So here it sits, snowflake code for a single item.
toggle_cooling(wearer)
. = TRUE
if("toggle_ai_control")
to_chat(usr, "<span class='notice'>Proteans cannot be AI controlled.</span>")
to_chat(usr, span_notice("Proteans cannot be AI controlled."))
. = TRUE
if("toggle_suit_lock")
locked = !locked
@@ -125,4 +125,4 @@ So here it sits, snowflake code for a single item.
if("select_charge_type")
module.charge_selected = params["charge_type"]
. = TRUE
*/
*/
@@ -3,7 +3,7 @@
name = SPECIES_PROTEAN
name_plural = "Proteans"
blurb = "Sometimes very advanced civilizations will produce the ability to swap into manufactured, robotic bodies. And sometimes \
<i>VERY</i> advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
" + span_italics("VERY") + " advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
of millions of tiny nanites working in concert to maintain cohesion."
show_ssd = "totally quiescent"
death_message = "rapidly loses cohesion, retreating into their hardened control module..."
@@ -246,8 +246,8 @@
if(H.temporary_form)
temp = H.temporary_form
playsound(temp, 'modular_chomp/sound/voice/borg_deathsound.ogg', 50, 1)
temp.visible_message("<b>[temp.name]</b> shudders and retreats inwards, coalescing into a single core componant!")
to_chat(temp, "<span class='warning'>You've died as a Protean! While dead, you will be locked to your core RIG control module until you can be repaired. Instructions to your revival can be found in the Examine tab when examining your module.</span>")
temp.visible_message(span_bold("[temp.name]") + " shudders and retreats inwards, coalescing into a single core componant!")
to_chat(temp, span_warning("You've died as a Protean! While dead, you will be locked to your core RIG control module until you can be repaired. Instructions to your revival can be found in the Examine tab when examining your module."))
if(H.temporary_form)
if(!istype(H.temporary_form.loc, /obj/item/rig/protean))
H.nano_rig_transform(1)
@@ -347,8 +347,8 @@ CHOMP Station removal end*/
name = "Protean Effect - M.Hydrogen"
desc = "You're affected by the presence of metallic hydrogen."
on_created_text = "<span class='notice'>You feel yourself accelerate, the metallic hydrogen increasing your speed temporarily.</span>"
on_expired_text = "<span class='notice'>Your refactory finishes consuming the metallic hydrogen, and you return to normal speed.</span>"
on_created_text = span_notice("You feel yourself accelerate, the metallic hydrogen increasing your speed temporarily.")
on_expired_text = span_notice("Your refactory finishes consuming the metallic hydrogen, and you return to normal speed.")
material_name = MAT_METALHYDROGEN
@@ -358,8 +358,8 @@ CHOMP Station removal end*/
name = "Protean Effect - Uranium"
desc = "You're affected by the presence of uranium."
on_created_text = "<span class='notice'>You feel yourself become nearly impervious to physical attacks as uranium is incorporated in your nanites.</span>"
on_expired_text = "<span class='notice'>Your refactory finishes consuming the uranium, and you return to your normal nanites.</span>"
on_created_text = span_notice("You feel yourself become nearly impervious to physical attacks as uranium is incorporated in your nanites.")
on_expired_text = span_notice("Your refactory finishes consuming the uranium, and you return to your normal nanites.")
material_name = MAT_URANIUM
@@ -369,8 +369,8 @@ CHOMP Station removal end*/
name = "Protean Effect - Gold"
desc = "You're affected by the presence of gold."
on_created_text = "<span class='notice'>You feel yourself become more reflective, able to resist heat and fire better for a time.</span>"
on_expired_text = "<span class='notice'>Your refactory finishes consuming the gold, and you return to your normal nanites.</span>"
on_created_text = span_notice("You feel yourself become more reflective, able to resist heat and fire better for a time.")
on_expired_text = span_notice("Your refactory finishes consuming the gold, and you return to your normal nanites.")
material_name = MAT_GOLD
@@ -380,8 +380,8 @@ CHOMP Station removal end*/
name = "Protean Effect - Silver"
desc = "You're affected by the presence of silver."
on_created_text = "<span class='notice'>Your physical control is improved for a time, making it easier to hit targets, and avoid being hit.</span>"
on_expired_text = "<span class='notice'>Your refactory finishes consuming the silver, and your motor control returns to normal.</span>"
on_created_text = span_notice("Your physical control is improved for a time, making it easier to hit targets, and avoid being hit.")
on_expired_text = span_notice("Your refactory finishes consuming the silver, and your motor control returns to normal.")
material_name = MAT_SILVER
@@ -393,8 +393,8 @@ CHOMP Removal end*/
name = "Protean Effect - Steel"
desc = "You're affected by the presence of steel."
on_created_text = "<span class='notice'>You feel new nanites being produced from your stockpile of steel, healing you slowly.</span>"
on_expired_text = "<span class='notice'>Your steel supply has either run out, or is no longer needed, and your healing stops.</span>"
on_created_text = span_notice("You feel new nanites being produced from your stockpile of steel, healing you slowly.")
on_expired_text = span_notice("Your steel supply has either run out, or is no longer needed, and your healing stops.")
material_name = MAT_STEEL
@@ -179,7 +179,7 @@
if(I.damage > 0)
I.damage = max(I.damage - heal_rate, 0)
if (prob(5))
to_chat(H, "<span class='alien'>We feel a soothing sensation within our [I.parent_organ]...</span>")
to_chat(H, span_alien("We feel a soothing sensation within our [I.parent_organ]..."))
return 1
// Next, heal external damage.
@@ -189,7 +189,7 @@
H.adjustOxyLoss(-heal_rate)
H.adjustToxLoss(-heal_rate)
if (prob(5))
to_chat(H, "<span class='alien'>A soothing sensation falls over us...</span>")
to_chat(H, span_alien("A soothing sensation falls over us..."))
return 1
// Lastly, mend broken bones. May remove this if it's abused.
@@ -197,7 +197,7 @@
if (E.status & ORGAN_BROKEN)
if (prob(mend_prob))
if (E.mend_fracture())
to_chat(H, "<span class='alien'>We feel something mend within our [E.name].</span>")
to_chat(H, span_alien("We feel something mend within our [E.name]."))
return 1
return 0
@@ -212,7 +212,7 @@
set category = "Abilities.Alien"
if(check_alien_ability(150,1,O_RESIN))
visible_message("<span class='alium'><B>[src] has planted some alien weeds!</B></span>")
visible_message(span_alium(span_bold("[src] has planted some alien weeds!")))
new /obj/effect/alien/weeds/node/weak(get_turf(src), null, "#321D37") // Aliens.dm for weed node origin.
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
return
@@ -223,7 +223,7 @@
var/obj/item/organ/internal/xenos/plasmavessel/I = M.internal_organs_by_name[O_PLASMA]
if(!istype(I))
to_chat(src, "<span class='alium'>Our plasma vessel is missing!</span>")
to_chat(src, span_alium("Our plasma vessel is missing!"))
return
to_chat(src, "Our plasma reserves are at [I.stored_plasma]/[I.max_plasma].")
@@ -273,7 +273,7 @@
else O = new /obj/item/stack/material/resin(targetLoc)
if(O)
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
visible_message(span_warning(span_bold("[src] vomits up a thick purple substance and begins to shape it!")), span_alium("You shape a [choice]."))
// O.color = "#321D37" // Adding predefined colour icons.
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
@@ -116,7 +116,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
add_verb(new_mob,/mob/living/proc/shapeshift_form) //CHOMPEdit TGPanel
new_mob.tf_form = src
new_mob.forceMove(src.loc)
visible_message("<span class='warning'>[src] twists and contorts, shapeshifting into a different form!</span>")
visible_message(span_warning("[src] twists and contorts, shapeshifting into a different form!"))
if(new_mob.ckey)
new_mob.tf_form_ckey = new_mob.ckey
else
@@ -184,7 +184,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
set category = "Abilities.Shapeshift"
set desc = "Shape shift between set mob forms. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)"
if(!istype(tf_form))
to_chat(src, "<span class='notice'>No shapeshift form set. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)</span>")
to_chat(src, span_notice("No shapeshift form set. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)"))
return
else
transform_into_mob(tf_form, TRUE, TRUE, TRUE)
@@ -204,7 +204,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
new_metadata = ""
ooc_notes_favs = new_metadata
client.prefs.metadata_favs = new_metadata
to_chat(user, "<span class='filter_notice'>OOC note favs have been updated. Don't forget to save!</span>")
to_chat(user, span_filter_notice("OOC note favs have been updated. Don't forget to save!"))
log_admin("[key_name(user)] updated their OOC note favs mid-round.")
if(reopen)
ooc_notes_window(user)
@@ -218,7 +218,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
new_metadata = ""
ooc_notes_maybes = new_metadata
client.prefs.metadata_maybes = new_metadata
to_chat(user, "<span class='filter_notice'>OOC note maybes have been updated. Don't forget to save!</span>")
to_chat(user, span_filter_notice("OOC note maybes have been updated. Don't forget to save!"))
log_admin("[key_name(user)] updated their OOC note maybes mid-round.")
if(reopen)
ooc_notes_window(user)
@@ -112,7 +112,7 @@
if(style)
dat += {"<div class='row'><div class='column'>"}
if(favs || user == src)
dat += {"<div class="collapsible"><b><center>Favourites</center></b></div>"}
dat += "<div class=\"collapsible\">" + span_bold("<center>Favourites</center>") + "</div>"
if(user == src)
dat += {"
<table>
@@ -132,7 +132,7 @@
dat += {"</div>"}
dat += {"<div class='column'>"}
if(likes || user == src)
dat += {"<div class="collapsible_a"><b><center>Likes</center></b></div>"}
dat += "<div class=\"collapsible_a\">" + span_bold("<center>Likes</center>") + "</div>"
if(user == src)
dat += {"
<table>
@@ -152,7 +152,7 @@
dat += {"</div>"}
dat += {"<div class='column'>"}
if(maybes || user == src)
dat += {"<div class="collapsible_b"><b><center>Maybes</center></b></div>"}
dat += "<div class=\"collapsible_b\">" + span_bold("<center>Maybes</center>") + "</div>"
if(user == src)
dat += {"
<table>
@@ -174,7 +174,7 @@
dat += {"</div>"}
dat += {"<div class='column'>"}
if(dislikes || user == src)
dat += {"<div class="collapsible_c"><b><center>Dislikes</center></b></div>"}
dat += "<div class=\"collapsible_c\">" + span_bold("<center>Dislikes</center>") + "</div>"
if(user == src)
dat += {"
<table>
@@ -2,9 +2,9 @@
. = ..()
if(Adjacent(user))
if(water.energy)
. += "<span class='notice'>[src] is wet. Just like it should be.</span>"
. += span_notice("[src] is wet. Just like it should be.")
if(water.energy < 5)
. += "<span class='notice'>[src] is dry.</span>"
. += span_notice("[src] is dry.")
/obj/item/gun/energy/taser/mounted/cyborg/flare
name = "flare gun"
@@ -15,7 +15,7 @@
if (stat != CONSCIOUS || nutrition <= 1000)
return
nutrition = 1000
to_chat(src, "<span class='warning'>You have purged most of the nutrition lingering in your systems.</span>")
to_chat(src, span_warning("You have purged most of the nutrition lingering in your systems."))
return TRUE
/mob/living/silicon/robot/proc/ex_reserve_refill()
@@ -30,9 +30,9 @@
amount = water.energy
water.use_charge(amount)
E.reagents.add_reagent("water", amount)
to_chat(src, "<span class='filter_notice'>You refill the extinguisher using your water reserves.</span>")
to_chat(src, span_filter_notice("You refill the extinguisher using your water reserves."))
else
to_chat(src, "<span class='filter_notice'>Insufficient water reserves.</span>")
to_chat(src, span_filter_notice("Insufficient water reserves."))
/mob/living/silicon/robot/proc/reset_belly_lights(var/b_class)
if(sprite_datum.belly_light_list.len && sprite_datum.belly_light_list.Find(b_class))
@@ -379,7 +379,7 @@
L.adjustFireLoss(damage_done)
return
else
to_chat(src,"<span class='notice'>Your stomach bounces off of the victim's armor!</span>")
to_chat(src,span_notice("Your stomach bounces off of the victim's armor!"))
return
return //If stomach is distended, return here to perform no forcefeeding or poison injecton.
@@ -398,7 +398,7 @@
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
if(L.can_inject(src, null, target_zone))
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel a strange substance on you.</span>")
to_chat(L, span_warning("You feel a strange substance on you."))
L.reagents.add_reagent(poison_type, poison_per_bite)
@@ -435,7 +435,7 @@
/mob/living/simple_mob/animal/synx/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay) //Synx can only eat people if their organs are on the inside.
if(stomach_distended)
to_chat(src,"<span class='notice'>You can't eat people without your stomach inside of you!</span>")
to_chat(src,span_notice("You can't eat people without your stomach inside of you!"))
return
else
..()
@@ -455,12 +455,12 @@
if(status_flags & HIDING)
status_flags &= ~HIDING
reset_plane_and_layer()
to_chat(src,"<span class='notice'>You have stopped hiding.</span>")
to_chat(src,span_notice("You have stopped hiding."))
else
status_flags |= HIDING
layer = HIDING_LAYER //Just above cables with their 2.44
plane = OBJ_PLANE
to_chat(src,"<span class='notice'>You are now hiding.</span>")
to_chat(src,span_notice("You are now hiding."))
update_icons()
@@ -475,14 +475,14 @@
// If transform isn't true
if(stomach_distended)
to_chat(src,"<span class='warning'>You can't disguise with your stomach outside of your body!</span>")
to_chat(src,span_warning("You can't disguise with your stomach outside of your body!"))
return
if(!transformed)
to_chat(src,"<span class='warning'>Now they see your true form.</span>")
to_chat(src,span_warning("Now they see your true form."))
icon_living = transformed_state //Switch state to transformed state
movement_cooldown = 3
else // If transformed is true.
to_chat(src,"<span class='warning'>You changed back into your disguise.</span>")
to_chat(src,span_warning("You changed back into your disguise."))
icon_living = initial(icon_living) //Switch state to what it was originally defined.
movement_cooldown = 6
@@ -497,7 +497,7 @@
if(speak && voices)
handle_mimic()
else
usr << "<span class='warning'>YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds.</span>"
usr << span_warning("YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds.")
/mob/living/simple_mob/animal/synx/proc/handle_mimic()
name = pick(voices)
@@ -517,24 +517,24 @@
set category = "Abilities.Synx"
if(incapacitated())
to_chat(src, "<span class='warning'>You need to recover before you can use this ability.</span>")
to_chat(src, span_warning("You need to recover before you can use this ability."))
return
if(world.time < next_sonar_ping)
to_chat(src, "<span class='warning'>You need another moment to focus.</span>")
to_chat(src, span_warning("You need another moment to focus."))
return
if(is_deaf() || is_below_sound_pressure(get_turf(src)))
to_chat(src, "<span class='warning'>You are for all intents and purposes currently deaf!</span>")
to_chat(src, span_warning("You are for all intents and purposes currently deaf!"))
return
next_sonar_ping += 10 SECONDS
var/heard_something = FALSE
to_chat(src, "<span class='notice'>You take a moment to listen in to your environment...</span>")
to_chat(src, span_notice("You take a moment to listen in to your environment..."))
for(var/mob/living/L in range(client.view, src))
var/turf/T = get_turf(L)
if(!T || L == src || L.stat == DEAD || is_below_sound_pressure(T))
continue
heard_something = TRUE
var/feedback = list()
feedback += "<span class='notice'>There are noises of movement "
feedback += "There are noises of movement "
var/direction = get_dir(src, L)
if(direction)
feedback += "towards the [dir2text(direction)], "
@@ -551,10 +551,9 @@
feedback += "far away."
else // No need to check distance if they're standing right on-top of us
feedback += "right on top of you."
feedback += "</span>"
to_chat(src,jointext(feedback,null))
to_chat(src,span_notice(jointext(feedback,null)))
if(!heard_something)
to_chat(src, "<span class='notice'>You hear no movement but your own.</span>")
to_chat(src, span_notice("You hear no movement but your own."))
@@ -566,12 +565,12 @@
set category = "Abilities.Synx"
if(transformed)
to_chat(src,"<span class='warning'>Your limbs are in the way!</span>") //Kind of a weak excuse but since you already can't transform when your stomach is out, this avoids situations calling a sprite that doesn't exist and lightens my workload on making and implementing them
to_chat(src,span_warning("Your limbs are in the way!")) //Kind of a weak excuse but since you already can't transform when your stomach is out, this avoids situations calling a sprite that doesn't exist and lightens my workload on making and implementing them
return
if(!stomach_distended && !transformed) //true if stomach distended is null, 0, or ""
stomach_distended = !stomach_distended //switch statement
to_chat (src, "<span class='notice'>You disgorge your stomach, spilling its contents!</span>")
to_chat (src, span_notice("You disgorge your stomach, spilling its contents!"))
melee_damage_lower = 1 //Hopefully this will make all brute damage not apply while stomach is distended. I don't see a better way to do this.
melee_damage_upper = 1
icon_living = stomach_distended_state
@@ -589,7 +588,7 @@
if(stomach_distended) //If our stomach has been vomitted
stomach_distended = !stomach_distended
to_chat (src, "<span class='notice'>You swallow your insides!</span>")
to_chat (src, span_notice("You swallow your insides!"))
melee_damage_lower = SYNX_LOWER_DAMAGE //This is why I'm using a define
melee_damage_upper = SYNX_UPPER_DAMAGE
icon_living = initial(icon_living)
@@ -781,13 +780,13 @@
//HOLOSEEDSPAWNCODE
/mob/living/simple_mob/animal/synx/ai/pet/holo/death()
..()
visible_message("<span class='notice'>\The [src] fades away!</span>")
visible_message(span_notice("\The [src] fades away!"))
var/location = get_turf(src)
new /obj/item/seeds/hardlightseed/typesx(location)
qdel(src)
/mob/living/simple_mob/animal/synx/ai/pet/holo/gib()
visible_message("<span class='notice'>\The [src] fades away!</span>")
visible_message(span_notice("\The [src] fades away!"))
var/location = get_turf(src)
new /obj/item/seeds/hardlightseed/typesx(location)
qdel(src)
@@ -26,15 +26,15 @@
set category = "Abilities.Vore"
if(!vore_icons && !vore_icons_cache)
to_chat(src,"<span class='warning'>This simplemob has no vore sprite.</span>")
to_chat(src,span_warning("This simplemob has no vore sprite."))
else if(isnull(vore_icons_cache))
vore_icons_cache = vore_icons
vore_icons = 0
to_chat(src,"<span class='warning'>Vore sprite disabled.</span>")
to_chat(src,span_warning("Vore sprite disabled."))
else
vore_icons = vore_icons_cache
vore_icons_cache = null
to_chat(src,"<span class='warning'>Vore sprite enabled.</span>")
to_chat(src,span_warning("Vore sprite enabled."))
update_icon()
@@ -44,7 +44,7 @@
set category = "IC.Mob"
if(stat)
to_chat(src, "<span class='warning'>You must be awake and standing to perform this action!</span>")
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
return
speech_sound_enabled = !speech_sound_enabled
@@ -109,7 +109,7 @@
if(istype(mob_radio, /obj/item/radio/headset))
mob_radio.tgui_interact(src)
else
to_chat(src, "<span class='warning'>Your mob does not have a radio in its radio slot.</span>")
to_chat(src, span_warning("Your mob does not have a radio in its radio slot."))
/mob/living/simple_mob/proc/use_pda()
set name = "Use PDA"
@@ -119,7 +119,7 @@
if(istype(myid, /obj/item/pda))
myid.tgui_interact(src)
else
to_chat(src, "<span class='warning'>Your mob does not have a PDA in its ID slot.</span>")
to_chat(src, span_warning("Your mob does not have a PDA in its ID slot."))
/mob/living/simple_mob/New(var/newloc)
..()
@@ -111,10 +111,10 @@
set category = "Abilities.Mob"
if(pouncing)
to_chat(src, "<span class='notice'>Pouncing toggled off.</span>")
to_chat(src, span_notice("Pouncing toggled off."))
pouncing = 0
else
to_chat(src, "<span class='notice'>Pouncing toggled on! DoubleClick somewhere to pounce there.</span>")
to_chat(src, span_notice("Pouncing toggled on! DoubleClick somewhere to pounce there."))
pouncing = 1
update_icon()
@@ -162,9 +162,9 @@
if(!foundpm)
pass_flags &= ~PASSMOB
else
to_chat(src, "<span class='warning'>Pouncing blind isn't wise!</span>")
to_chat(src, span_warning("Pouncing blind isn't wise!"))
else
to_chat(src, "<span class='warning'>You can't do that right now!</span>")
to_chat(src, span_warning("You can't do that right now!"))
// some sanity incase the callback didn't fire for some reason
if(status_flags & LEAPING)
status_flags &= ~LEAPING
@@ -227,7 +227,7 @@
return
if((spit_last + spit_delay) > world.time) //To prevent YATATATATATAT spitting.
to_chat(src, "<span class='warning'>You have not yet prepared your chemical glands. You must wait before spitting again.</span>")
to_chat(src, span_warning("You have not yet prepared your chemical glands. You must wait before spitting again."))
return
else
spit_last = world.time
@@ -238,7 +238,7 @@
update_icon()
return
else if(spitting)
//visible_message("<span class='warning'>[src] spits [spit_name] at \the [A]!</span>", "<span class='alium'>You spit [spit_name] at \the [A].</span>")
//visible_message(span_warning("[src] spits [spit_name] at \the [A]!"), span_alium("You spit [spit_name] at \the [A]."))
var/obj/item/projectile/P = new spit_projectile(get_turf(src))
P.firer = src
P.old_style_target(A)
@@ -251,12 +251,12 @@
set category = "Abilities.Mob"
if(spitting)
to_chat(src, "<span class='notice'>You stop preparing to spit.</span>")
to_chat(src, span_notice("You stop preparing to spit."))
spitting = 0
else
spitting = 1
spit_projectile = /obj/item/projectile/energy/neurotoxin
to_chat(src, "<span class='notice'>You prepare to spit neurotoxin.</span>")
to_chat(src, span_notice("You prepare to spit neurotoxin."))
update_icon()
/mob/living/simple_mob/proc/acidspit()
@@ -265,12 +265,12 @@
set category = "Abilities.Mob"
if(spitting)
to_chat(src, "<span class='notice'>You stop preparing to spit.</span>")
to_chat(src, span_notice("You stop preparing to spit."))
spitting = 0
else
spitting = 1
spit_projectile = /obj/item/projectile/energy/acid
to_chat(src, "<span class='notice'>You prepare to spit acid.</span>")
to_chat(src, span_notice("You prepare to spit acid."))
update_icon()
/mob/living/simple_mob/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
@@ -279,7 +279,7 @@
set category = "Abilities.Mob"
if(!(O in oview(1)))
to_chat(src, "<span class='notice'>[O] is too far away.</span>")
to_chat(src, span_notice("[O] is too far away."))
return
// OBJ CHECK
@@ -301,11 +301,11 @@
cannot_melt = 1 //Gurgs : Everything that isn't a object, simulated wall, or simulated floor is assumed to be acid immune. Includes weird things like unsimulated floors and space.
if(cannot_melt)
to_chat(src, "<span class='notice'>You cannot dissolve this object.</span>")
to_chat(src, span_notice("You cannot dissolve this object."))
return
new /obj/effect/alien/acid(get_turf(O), O)
visible_message("<span class='alium'><B>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</B></span>")
visible_message(span_alium(span_bold("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!")))
return
@@ -316,7 +316,7 @@
set category = "Abilities.Mob"
if(world.time < speen_last)
to_chat(src, "<span class='warning'>You cannot spin again so soon.</span>")
to_chat(src, span_warning("You cannot spin again so soon."))
return
speen_last = world.time + speen_delay
@@ -344,6 +344,6 @@
M.Weaken(1.5)
if(!gentle)
M.adjustBruteLoss(damage)
to_chat(M, "<span class='userdanger'>You're thrown back by [src]!</span>")
to_chat(M, span_userdanger("You're thrown back by [src]!"))
playsound(src, get_sfx("punch"), 50, 1)
AM.throw_at(throwtarget, maxthrow, 3, src)
@@ -254,7 +254,7 @@ ANT STRUCTURES
L.visible_message(
span_danger("[L] steps in \the [src]."),
span_danger("You step in \the [src]!"),
"<b>You hear a strange rustling!</b>"
span_hear(span_bold("You hear a strange rustling!"))
)
attack_mob(L)
update_icon()
@@ -87,8 +87,8 @@
desc = "Can you even see this in game?"
mob_overlay_state = "cult_aura"
on_created_text = "<span class='warning'>You feel incrediably vulnerable.</span>"
on_expired_text = "<span class='notice'>You feel better.</span>"
on_created_text = span_warning("You feel incrediably vulnerable.")
on_expired_text = span_notice("You feel better.")
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
incoming_damage_percent = 2 // Adjusts all incoming damage.
incoming_brute_damage_percent = 2 // Only affects bruteloss.
@@ -571,8 +571,8 @@
/datum/modifier/bossbuff
name = "boss_buff"
on_created_text = "<span class='critical'>You feel an intense and overwhelming rage overtake you as you go berserk!</span>"
on_expired_text = "<span class='notice'>The blaze of rage inside you has ran out.</span>"
on_created_text = span_critical("You feel an intense and overwhelming rage overtake you as you go berserk!")
on_expired_text = span_notice("The blaze of rage inside you has ran out.")
stacks = MODIFIER_STACK_EXTEND
disable_duration_percent = 0
@@ -587,8 +587,8 @@
aura_max_distance = 28
on_created_text = "<span class='critical'>You feel like you're falling into ruin!</span>"
on_expired_text = "<span class='notice'>The ruin feeling is gone.</span>"
on_created_text = span_critical("You feel like you're falling into ruin!")
on_expired_text = span_notice("The ruin feeling is gone.")
stacks = MODIFIER_STACK_EXTEND
/datum/modifier/aura/despair/tick()
@@ -26,8 +26,8 @@
var/armorcheck = run_armor_check(null, P.check_armour)
var/soakedcheck = get_armor_soak(null, P.check_armour)
if(!(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)))
visible_message("<span class='danger'>The [P.name] bounces off of [src]'s shield!</span>", \
"<span class='userdanger'>The [P.name] bounces off of [src]'s shield!</span>")
visible_message(span_danger("The [P.name] bounces off of [src]'s shield!"), \
span_userdanger("The [P.name] bounces off of [src]'s shield!"))
new /obj/item/material/shard/shrapnel(src.loc)
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
projectile_dam_type = BRUTE
@@ -35,8 +35,8 @@
apply_damage(incoming_damage, projectile_dam_type, null, armorcheck, soakedcheck, is_sharp(P), has_edge(P), P)
return -1 //Doesn't reflect non-beams or non-energy projectiles. They just smack and drop with little to no effect.
else
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shield!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shield!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shield!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shield!"))
damage_mod = rand(3,5)
incoming_damage = (round(P.damage / damage_mod) - (round((P.damage / damage_mod) * 0.3)))
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
@@ -139,8 +139,8 @@
desc = "Can you even see this in game?"
mob_overlay_state = "on_fire"
on_created_text = "<span class='warning'>You are on digital fire.</span>"
on_expired_text = "<span class='notice'>You feel better.</span>"
on_created_text = span_warning("You are on digital fire.")
on_expired_text = span_notice("You feel better.")
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
var/damage_per_tick = 1.5
bleeding_rate_percent = 0.7
@@ -153,8 +153,8 @@
desc = "Can you even see this in game?."
mob_overlay_state = "blue_electricity_constant"
on_created_text = "<span class='warning'>You are filled with digital lighting.</span>"
on_expired_text = "<span class='notice'>You feel better.</span>"
on_created_text = span_warning("You are filled with digital lighting.")
on_expired_text = span_notice("You feel better.")
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
damage_per_tick = 1.0
incoming_fire_damage_percent = 1.1
@@ -164,8 +164,8 @@
desc = "Can you even see this in game?."
mob_overlay_state = "poisoned"
on_created_text = "<span class='warning'>You are on digital poisoned.</span>"
on_expired_text = "<span class='notice'>You feel better.</span>"
on_created_text = span_warning("You are on digital poisoned.")
on_expired_text = span_notice("You feel better.")
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
var/damage_per_tick = 3
@@ -179,8 +179,8 @@
desc = "Can you even see this in game?."
mob_overlay_state = "chilled"
on_created_text = "<span class='warning'>You are on freezing, digitally.</span>"
on_expired_text = "<span class='notice'>You feel better.</span>"
on_created_text = span_warning("You are on freezing, digitally.")
on_expired_text = span_notice("You feel better.")
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
damage_per_tick = 1
slowdown = 0.5
@@ -190,8 +190,8 @@
desc = "Can you even see this in game?."
mob_overlay_state = "corana"
on_created_text = "<span class='warning'>You feel less real.</span>"
on_expired_text = "<span class='notice'>You feel real again.</span>"
on_created_text = span_warning("You feel less real.")
on_expired_text = span_notice("You feel real again.")
stacks = MODIFIER_STACK_ALLOWED //How does this stack?
max_health_percent = 0.7
@@ -200,8 +200,8 @@
desc = "Can you even see this in game?."
mob_overlay_state = "cult_aura"
on_created_text = "<span class='warning'>You feel like the end is nigh.</span>"
on_expired_text = "<span class='notice'>You feel safe for now.</span>"
on_created_text = span_warning("You feel like the end is nigh.")
on_expired_text = span_notice("You feel safe for now.")
aura_max_distance = 4
max_health_percent = 0.9
disable_duration_percent = 1.2
@@ -113,7 +113,7 @@
/mob/living/simple_mob/humanoid/eclipse/solar/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
visible_message(span_orange("<B>[P] seems ineffective!.</B>"))
visible_message(span_boldwarning(span_orange("[P] seems ineffective!.")))
..()
else
..()
@@ -231,7 +231,7 @@
try_reload()
return FALSE
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
shoot(A)
if(casingtype)
new casingtype(loc)
@@ -284,7 +284,7 @@
/mob/living/simple_mob/humanoid/eclipse/lunar/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/bullet))
visible_message(span_orange("<B>[P] seems ineffective!.</B>"))
visible_message(span_boldwarning(span_orange("[P] seems ineffective!.")))
..()
else
..()
@@ -333,7 +333,7 @@
try_reload()
return FALSE
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
shoot(A)
if(casingtype)
new casingtype(loc)
@@ -646,7 +646,7 @@
try_reload()
return FALSE
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
shoot(A)
if(casingtype)
new casingtype(loc)
@@ -384,16 +384,16 @@
if(fullshield > 0)
fullshield--
if(fullshield > 0)
visible_message(span_warning(span_orange("<B>[P] is absorbed by the shield!.</B>")))
visible_message(span_boldwarning(span_orange("[P] is absorbed by the shield!.")))
else
visible_message(span_warning(span_orange("<B>[P] breaks the shield!!.</B>")))
visible_message(span_boldwarning(span_orange("[P] breaks the shield!!.")))
else
..()
shieldrage--
if(shieldrage == 0)
shieldrage = 6
fullshield = 6
visible_message(span_warning(span_orange("<B>The shield reactivates!!.</B>")))
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/do_special_attack(atom/A)
if(vore_fullness > 2) //If they nompf someone already
@@ -128,7 +128,7 @@
if(L.can_be_drop_prey && L.devourable)
L.forceMove(belly_dest)
to_chat(target, "<span class='danger'>[src] materializes around you, as you end up in their [belly_dest]!</span>")
to_chat(target, span_danger("[src] materializes around you, as you end up in their [belly_dest]!"))
/mob/living/simple_mob/humanoid/starhunter/hunter/proc/smokebomb(atom/target)
@@ -18,7 +18,7 @@
/mob/living/simple_mob/humanoid/starhunter/hunter/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/energy/lightpillar))
visible_message(span_orange("<B>[P] seems ineffective!.</B>")) //immune to their own attack
visible_message(span_bolddanger(span_orange("[P] seems ineffective!."))) //immune to their own attack
else
..()
@@ -89,7 +89,7 @@
*/
if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins.
if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically.
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [A]!</span>") //Leave notice of shooting.
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [A]!")) //Leave notice of shooting.
shoot(A) //Perform the shoot action
if(casingtype) //If the mob is designated to leave casings...
new casingtype(loc) //... leave the casing.
@@ -98,7 +98,7 @@
return TRUE //End these commands here.
// CHOMPAddition End
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [orig_targ]!</span>")
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
shoot(A)
if(casingtype)
new casingtype(loc)
@@ -75,7 +75,7 @@
W.forceMove(src)
coin = W
categories |= CAT_COIN
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src].</span>")
to_chat(user, span_notice("You insert \the [W] into \the [src]."))
SStgui.update_uis(src)
return
else
@@ -92,12 +92,12 @@
// This is not a status display message, since it's something the character
// themselves is meant to see BEFORE putting the money in
to_chat(usr, "[icon2html(cashmoney,user.client)] <span class='warning'>That is not enough money.</span>")
to_chat(usr, "[icon2html(cashmoney,user.client)] " + span_warning("That is not enough money."))
return 0
if(istype(cashmoney, /obj/item/spacecash))
visible_message("<span class='info'>\The [usr] inserts some cash into \the [src].</span>")
visible_message(span_info("\The [usr] inserts some cash into \the [src]."))
cashmoney.worth -= currently_vending.price
if(cashmoney.worth <= 0)
@@ -186,20 +186,20 @@
return FALSE
if(!coin)
to_chat(usr, "<span class='filter_notice'>There is no coin in this machine.</span>")
to_chat(usr, span_filter_notice("There is no coin in this machine."))
return
coin.forceMove(src.loc)
if(!usr.get_active_hand())
usr.put_in_hands(coin)
to_chat(usr, "<span class='notice'>You remove \the [coin] from \the [src].</span>")
to_chat(usr, span_notice("You remove \the [coin] from \the [src]."))
coin = null
categories &= ~CAT_COIN
return TRUE
if("vend")
if(!vend_ready)
to_chat(usr, "<span class='warning'>[src] is busy!</span>")
to_chat(usr, span_warning("[src] is busy!"))
return
var/key = text2num(params["vend"])
@@ -218,7 +218,7 @@
return TRUE
if(issilicon(usr)) //If the item is not free, provide feedback if a synth is trying to buy something.
to_chat(usr, "<span class='danger'>Lawed unit recognized. Lawed units cannot complete this transaction. Purchase canceled.</span>")
to_chat(usr, span_danger("Lawed unit recognized. Lawed units cannot complete this transaction. Purchase canceled."))
return
if(!ishuman(usr))
return
@@ -229,7 +229,7 @@
var/obj/item/card/id/C = H.GetIdCard()
if(!vendor_account || vendor_account.suspended)
to_chat(usr, "<span class='filter_notice'>Vendor account offline. Unable to process transaction.</span>")
to_chat(usr, span_filter_notice("Vendor account offline. Unable to process transaction."))
flick("[icon_state]-deny",src)
vend_ready = TRUE
return
@@ -247,10 +247,10 @@
else if(istype(C, /obj/item/card))
paid = pay_with_card(C, usr)
/*else if(usr.can_advanced_admin_interact())
to_chat(usr, "<span class='notice'>Vending object due to admin interaction.</span>")
to_chat(usr, span_notice("Vending object due to admin interaction."))
paid = TRUE*/
else
to_chat(usr, "<span class='warning'>Payment failure: you have no ID or other method of payment.</span>")
to_chat(usr, span_warning("Payment failure: you have no ID or other method of payment."))
vend_ready = TRUE
flick("[icon_state]-deny",src)
return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update.
@@ -258,7 +258,7 @@
vend(currently_vending, usr) // vend will handle vend_ready
. = TRUE
else
to_chat(usr, "<span class='warning'>Payment failure: unable to process payment.</span>")
to_chat(usr, span_warning("Payment failure: unable to process payment."))
vend_ready = TRUE
/mob/living/simple_mob/humanoid/starhunter/trader/proc/vend(datum/stored_item/vending_product/R, mob/user)
@@ -266,7 +266,7 @@
return
if(!R.amount)
to_chat(user, "<span class='warning'>[src] has ran out of that product.</span>")
to_chat(user, span_warning("[src] has ran out of that product."))
vend_ready = TRUE
return
@@ -275,7 +275,7 @@
if(R.category & CAT_COIN)
if(!coin)
to_chat(user, "<span class='notice'>You need to insert a coin to get this item.</span>")
to_chat(user, span_notice("You need to insert a coin to get this item."))
return
else
qdel(coin)
@@ -300,7 +300,7 @@
if(!user.unEquip(W))
return
to_chat(user, "<span class='notice'>You insert \the [W] in the product receptor.</span>")
to_chat(user, span_notice("You insert \the [W] in the product receptor."))
R.add_product(W)
if(has_logs)
do_logging(R, user)
@@ -308,10 +308,10 @@
SStgui.update_uis(src)
/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_ewallet(var/obj/item/spacecash/ewallet/wallet)
visible_message("<span class='info'>\The [usr] swipes \the [wallet] through \the [src].</span>")
visible_message(span_info("\The [usr] swipes \the [wallet] through \the [src]."))
playsound(src, 'sound/machines/id_swipe.ogg', 50, 1)
if(currently_vending.price > wallet.worth)
to_chat(usr, "<span class='warning'>Insufficient funds on chargecard.</span>")
to_chat(usr, span_warning("Insufficient funds on chargecard."))
return 0
else
wallet.worth -= currently_vending.price
@@ -325,16 +325,16 @@
* successful, 0 if failed
*/
/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_card(obj/item/card/id/I, mob/M)
visible_message("<span class='info'>[M] swipes a card through [src].</span>")
visible_message(span_info("[M] swipes a card through [src]."))
playsound(src, 'sound/machines/id_swipe.ogg', 50, 1)
var/datum/money_account/customer_account = get_account(I.associated_account_number)
if(!customer_account)
to_chat(M, "<span class='warning'>Error: Unable to access account. Please contact technical support if problem persists.</span>")
to_chat(M, span_warning("Error: Unable to access account. Please contact technical support if problem persists."))
return FALSE
if(customer_account.suspended)
to_chat(M, "<span class='warning'>Unable to access account: account suspended.</span>")
to_chat(M, span_warning("Unable to access account: account suspended."))
return FALSE
// Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is
@@ -344,11 +344,11 @@
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
if(!customer_account)
to_chat(M, "<span class='warning'>Unable to access account: incorrect credentials.</span>")
to_chat(M, span_warning("Unable to access account: incorrect credentials."))
return FALSE
if(currently_vending.price > customer_account.money)
to_chat(M, "<span class='warning'>Insufficient funds in account.</span>")
to_chat(M, span_warning("Insufficient funds in account."))
return FALSE
// Okay to move the money at this point
@@ -25,8 +25,8 @@
/mob/living/simple_mob/construct/juggernaut/behemoth/unstoppable/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 100 - round(P.damage*2)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -236,8 +236,8 @@
var/armorcheck = run_armor_check(null, P.check_armour)
var/soakedcheck = get_armor_soak(null, P.check_armour)
if(!(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)))
visible_message("<span class='danger'>The [P.name] bounces off of [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] bounces off of [src]'s shell!</span>")
visible_message(span_danger("The [P.name] bounces off of [src]'s shell!"), \
span_userdanger("The [P.name] bounces off of [src]'s shell!"))
new /obj/item/material/shard/shrapnel(src.loc)
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
projectile_dam_type = BRUTE
@@ -245,8 +245,8 @@
apply_damage(incoming_damage, projectile_dam_type, null, armorcheck, soakedcheck, is_sharp(P), has_edge(P), P)
return -1 //Doesn't reflect non-beams or non-energy projectiles. They just smack and drop with little to no effect.
else
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
damage_mod = rand(3,5)
incoming_damage = (round(P.damage / damage_mod) - (round((P.damage / damage_mod) * 0.3)))
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
@@ -40,7 +40,7 @@
required = /obj/item/slime_extract/sepia
/decl/chemical_reaction/instant/slime/secertslime/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/redspace(get_turf(holder.my_atom))
..()
@@ -53,7 +53,7 @@
required = /obj/item/slime_extract/sepia
/decl/chemical_reaction/instant/slime/sepia_new_slime/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/sepia(get_turf(holder.my_atom))
..()
@@ -203,7 +203,7 @@
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_carpotoxin/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/oceanic(get_turf(holder.my_atom))
..()
@@ -313,8 +313,8 @@
name = "Aura Healing Tide"
desc = "You are filled with an overwhelming energy."
on_created_text = "<span class='critical'>Your body begins to focus on recovering!</span>"
on_expired_text = "<span class='notice'>The healing subsides.</span>"
on_created_text = span_critical("Your body begins to focus on recovering!")
on_expired_text = span_notice("The healing subsides.")
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 4
@@ -374,7 +374,7 @@
required = /obj/item/slime_extract/plague
/decl/chemical_reaction/instant/slime/warplague/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/nuclear(get_turf(holder.my_atom))
..()
@@ -408,8 +408,8 @@
name = "Radiation Hide"
desc = "Your body defensivly warps."
on_created_text = "<span class='critical'>Your body strangly mutates!</span>"
on_expired_text = "<span class='notice'>Your body returns to normal.</span>"
on_created_text = span_critical("Your body strangly mutates!")
on_expired_text = span_notice("Your body returns to normal.")
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 4
@@ -435,7 +435,7 @@
/decl/chemical_reaction/instant/slime/nuclear_radpulse/on_reaction(var/datum/reagents/holder)
log_and_message_admins("Green extract reaction (radiation pulse) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]")
playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1)
holder.my_atom.visible_message("<span class='danger'>\The [holder.my_atom] begins to vibrate violently!</span>")
holder.my_atom.visible_message(span_danger("\The [holder.my_atom] begins to vibrate violently!"))
spawn(5 SECONDS)
SSradiation.flat_radiate(src, 30, 7, TRUE)
..()
@@ -513,7 +513,7 @@
required = /obj/item/slime_extract/dream
/decl/chemical_reaction/instant/slime/nightmareslime/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/nightmare(get_turf(holder.my_atom))
..()
@@ -630,7 +630,7 @@
required = /obj/item/slime_extract/redspace
/decl/chemical_reaction/instant/slime/redspace_sound/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/sound(get_turf(holder.my_atom))
..()
@@ -664,8 +664,8 @@
name = "Soothing Song"
desc = "Your body is soothed."
on_created_text = "<span class='critical'>Your mind is put to rest!</span>"
on_expired_text = "<span class='notice'>Your mind functions normally.</span>"
on_created_text = span_critical("Your mind is put to rest!")
on_expired_text = span_notice("Your mind functions normally.")
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 4
@@ -709,7 +709,7 @@
required = /obj/item/slime_extract/sound
/decl/chemical_reaction/instant/slime/soundwater/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
new /mob/living/simple_mob/slime/xenobio/sound(get_turf(holder.my_atom))
..()
@@ -20,7 +20,7 @@
horns,
overlay_colors["Eyes"],
eyes), ";")
to_chat(src, "<span class='notice'>Exported style string is \" [output_style] \". Use this to get the same style in the future with import style</span>")
to_chat(src, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style"))
/mob/living/simple_mob/vore/bigdragon/proc/import_style()
set name = "Import style string"
@@ -647,15 +647,15 @@
/mob/living/simple_mob/vore/candy/peppermint/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(O.force)
if(prob(80))
visible_message("<span class='danger'>\The [src] deflects \the [O] with its shell!</span>")
visible_message(span_danger("\The [src] deflects \the [O] with its shell!"))
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
to_chat(user, span_warning("This weapon is ineffective, it does no damage."))
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
/*
/mob/living/simple_mob/vore/candy/worm
@@ -42,8 +42,8 @@
set category = "Abilities.Shadekin"
if(phase_gentle)
to_chat(src, "<span class='notice'>Phasing toggled to Normal. You may damage lights.</span>")
to_chat(src, span_notice("Phasing toggled to Normal. You may damage lights."))
phase_gentle = 0
else
to_chat(src, "<span class='notice'>Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun.</span>")
to_chat(src, span_notice("Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun."))
phase_gentle = 1
@@ -57,11 +57,11 @@
L = new evolve(get_turf(src))
if(mind)
src.mind.transfer_to(L)
visible_message("<span class='warning'>\The [src] suddenly evolves!</span>")
visible_message(span_warning("\The [src] suddenly evolves!"))
qdel(src)
/mob/living/simple_mob/vore/spacecritter/proc/duplicate()
visible_message("<span class='warning'>\The [src] splits into two!</span>")
visible_message(span_warning("\The [src] splits into two!"))
new copy (src.loc)
@@ -253,15 +253,15 @@
if(istype(AM, /mob/living))
var/mob/living/M = AM
if(!M.devourable || !M.can_be_drop_prey)
to_chat(M, "<span class='warning'>[src] plunges their head into \the [D], while you narrowly avoid being sucked up!</span>")
to_chat(M, span_warning("[src] plunges their head into \the [D], while you narrowly avoid being sucked up!"))
continue
to_chat(M, "<span class='warning'>[src] plunges their head into \the [D], sucking up everything inside- Including you!</span>")
to_chat(M, span_warning("[src] plunges their head into \the [D], sucking up everything inside- Including you!"))
foundstuff = 1
AM.forceMove(src)
if(foundstuff)
src.visible_message("<span class='warning'>[src] plunges their head into \the [D], greedily sucking up everything inside!</span>")
src.visible_message(span_warning("[src] plunges their head into \the [D], greedily sucking up everything inside!"))
else //Oh, Nothing was inside...
to_chat(src, "You poke your head into \the [D], but there doesnt seem to be anything of interest...")
to_chat(src, span_infoplain("You poke your head into \the [D], but there doesnt seem to be anything of interest..."))
return
var/resolved = Vac.resolve_attackby(A, src, click_parameters = params)
if(!resolved && A && Vac)
@@ -278,7 +278,7 @@
if(L.a_intent == I_GRAB && Vac && Vac.loc == src)
if(L.zone_sel.selecting == BP_HEAD)
if(L.put_in_active_hand(Vac))
L.visible_message("<span class='warning'>[L] grabs [src] by the neck, brandishing the thing like a regular vacuum cleaner!</span>")
L.visible_message(span_warning("[L] grabs [src] by the neck, brandishing the thing like a regular vacuum cleaner!"))
L.start_pulling(src)
return
. = ..()
@@ -303,9 +303,9 @@
set category = "IC"
set src in oview(1)
if(!has_AI() || !IIsAlly(usr))
to_chat(usr, "<span class=danger></span>")
to_chat(usr, span_danger(""))
if(!ai_holder == /datum/ai_holder/simple_mob/retaliate/swoopie || !ai_holder)
to_chat(usr, "<span class=warning>This [src] doesnt seem to have changable settings!</span>")
to_chat(usr, span_warning("This [src] doesnt seem to have changable settings!"))
return
var/datum/ai_holder/simple_mob/retaliate/swoopie/ai = ai_holder
var/list/swooping_options = list(
@@ -67,7 +67,7 @@
var/leap_warmup = 0.5 SECOND // How long the leap telegraphing is.
var/leap_sound = 'sound/weapons/spiderlunge.ogg'
player_msg = "You are very fast, and <b>can perform a leaping attack</b> by clicking on someone from a short distance away.<br>\
player_msg = "You are very fast, and " + span_bold("can perform a leaping attack") + " by clicking on someone from a short distance away.<br>\
If the leap succeeds, the target will be knocked down briefly and you will be on top of them.<br>\
Note that there is a short delay before you leap!<br>\
In addition, you will do more damage to incapacitated opponents."
@@ -11,10 +11,10 @@
set category = "Abilities.Settings"
if(picked_size)
to_chat(src, "<span class='notice'>You have already picked a size! If you picked the wrong size, ask an admin to change your picked_size variable to 0.</span>")
to_chat(src, span_notice("You have already picked a size! If you picked the wrong size, ask an admin to change your picked_size variable to 0."))
return
if(!resizable)
to_chat(src, "<span class='warning'>You are immune to resizing!</span>")
to_chat(src, span_warning("You are immune to resizing!"))
return
var/nagmessage = "Pick a size between 25 to 200%. (Only usable once!)"
@@ -31,7 +31,7 @@
set category = "Abilities.Settings"
set desc = "You can set your color!"
if(picked_color)
to_chat(src, "<span class='notice'>You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0.</span>")
to_chat(src, span_notice("You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0."))
return
var/newcolor = input(usr, "Choose a color.", "", color) as color|null
if(newcolor)
@@ -167,7 +167,7 @@
/mob/living/simple_mob/vore/weatherbeast/sandstorm/do_special_attack(atom/A)
if(health < maxHealth*0.25)
visible_message(span_orange("<B>The fossil tank begins self repairs!.</B>"))
visible_message(span_bolddanger(span_orange("The fossil tank begins self repairs!.")))
sleep(30)
for(var/i =1 to 10)
adjustBruteLoss(-100)
@@ -215,7 +215,7 @@
/mob/living/simple_mob/vore/weatherbeast/acidrain/do_special_attack(atom/A)
if(nutrition > 1100)
visible_message(span_orange("<B>The giant jellyfish begins to regenerate!.</B>"))
visible_message(span_bolddanger(span_orange("The giant jellyfish begins to regenerate!.")))
adjustBruteLoss(-300)
adjustFireLoss(-300)
adjust_nutrition(-500)
@@ -36,7 +36,7 @@
O = new /obj/effect/alien/weeds/node(targetLoc)
if(O)
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
visible_message(span_boldwarning("[src] vomits up a thick purple substance and begins to shape it!"), span_alium("You shape a [choice]."))
O.color = "#321D37"
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
@@ -33,7 +33,7 @@
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob)
if(istype(P, /obj/item/paper) || istype(P, /obj/item/folder) || istype(P, /obj/item/photo) || istype(P, /obj/item/paper_bundle))
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
to_chat(user, span_notice("You put [P] in [src]."))
user.drop_item()
P.loc = src
open_animation()
@@ -41,20 +41,20 @@
else if(P.has_tool_quality(TOOL_WRENCH))
playsound(src, P.usesound, 50, 1)
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
to_chat(user, span_notice("You [anchored ? "wrench" : "unwrench"] \the [src]."))
else if(P.has_tool_quality(TOOL_SCREWDRIVER))
to_chat(user, "<span class='notice'>You begin taking the [name] apart.</span>")
to_chat(user, span_notice("You begin taking the [name] apart."))
playsound(src, P.usesound, 50, 1)
if(do_after(user, 10 * P.toolspeed))
playsound(src, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You take the [name] apart.</span>")
to_chat(user, span_notice("You take the [name] apart."))
new /obj/item/stack/material/steel( src.loc, 4 )
for(var/obj/item/I in contents)
I.forceMove(loc)
qdel(src)
return
else
to_chat(user, "<span class='notice'>You can't put [P] in [src]!</span>")
to_chat(user, span_notice("You can't put [P] in [src]!"))
/obj/structure/filingcabinet/attack_hand(mob/user as mob)
tgui_interact(user)
@@ -71,9 +71,9 @@
I.loc = loc
if(prob(25))
step_rand(I)
to_chat(user, "<span class='notice'>You pull \a [I] out of [src] at random.</span>")
to_chat(user, span_notice("You pull \a [I] out of [src] at random."))
return
to_chat(user, "<span class='notice'>You find nothing in [src].</span>")
to_chat(user, span_notice("You find nothing in [src]."))
/obj/structure/filingcabinet/tgui_state(mob/user)
return GLOB.tgui_physical_state
@@ -132,9 +132,9 @@
S = R
break
var/obj/item/paper/P = new /obj/item/paper(src)
P.info = "<CENTER><B>Security Record</B></CENTER><BR>"
P.info = "<CENTER>" + span_bold("Security Record") + "</CENTER><BR>"
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
P.info += "<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: [S.fields["criminal"]]<BR>\n<BR>\nMinor Crimes: [S.fields["mi_crim"]]<BR>\nDetails: [S.fields["mi_crim_d"]]<BR>\n<BR>\nMajor Crimes: [S.fields["ma_crim"]]<BR>\nDetails: [S.fields["ma_crim_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[S.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
P.info += "<BR>\n<CENTER>" + span_bold("Security Data") + "</CENTER><BR>\nCriminal Status: [S.fields["criminal"]]<BR>\n<BR>\nMinor Crimes: [S.fields["mi_crim"]]<BR>\nDetails: [S.fields["mi_crim_d"]]<BR>\n<BR>\nMajor Crimes: [S.fields["ma_crim"]]<BR>\nDetails: [S.fields["ma_crim_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[S.fields["notes"]]<BR>\n<BR>\n<CENTER>" + span_bold("Comments/Log") + "</CENTER><BR>"
var/counter = 1
while(S.fields["com_[counter]"])
P.info += "[S.fields["com_[counter]"]]<BR>"
@@ -168,10 +168,10 @@
break
if(M)
var/obj/item/paper/P = new /obj/item/paper(src)
P.info = "<CENTER><B>Medical Record</B></CENTER><BR>"
P.info = "<CENTER>" + span_bold("Medical Record") + "</CENTER><BR>"
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
P.info += "<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: [M.fields["b_type"]]<BR>\nDNA: [M.fields["b_dna"]]<BR>\n<BR>\nMinor Disabilities: [M.fields["mi_dis"]]<BR>\nDetails: [M.fields["mi_dis_d"]]<BR>\n<BR>\nMajor Disabilities: [M.fields["ma_dis"]]<BR>\nDetails: [M.fields["ma_dis_d"]]<BR>\n<BR>\nAllergies: [M.fields["alg"]]<BR>\nDetails: [M.fields["alg_d"]]<BR>\n<BR>\nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)<BR>\nDetails: [M.fields["cdi_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[M.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
P.info += "<BR>\n<CENTER>" + span_bold("Medical Data") + "</CENTER><BR>\nBlood Type: [M.fields["b_type"]]<BR>\nDNA: [M.fields["b_dna"]]<BR>\n<BR>\nMinor Disabilities: [M.fields["mi_dis"]]<BR>\nDetails: [M.fields["mi_dis_d"]]<BR>\n<BR>\nMajor Disabilities: [M.fields["ma_dis"]]<BR>\nDetails: [M.fields["ma_dis_d"]]<BR>\n<BR>\nAllergies: [M.fields["alg"]]<BR>\nDetails: [M.fields["alg_d"]]<BR>\n<BR>\nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)<BR>\nDetails: [M.fields["cdi_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[M.fields["notes"]]<BR>\n<BR>\n<CENTER>" + span_bold("Comments/Log") + "</CENTER><BR>"
var/counter = 1
while(M.fields["com_[counter]"])
P.info += "[M.fields["com_[counter]"]]<BR>"
@@ -178,7 +178,7 @@
/obj/item/cell/device/weapon/recharge/alien/attack_self(var/mob/user)
user.remove_from_mob(src)
to_chat(user, "<span class='notice'>You swap [src] to 'machinery cell' mode.</span>")
to_chat(user, span_notice("You swap [src] to 'machinery cell' mode."))
var/obj/item/cell/newcell = new swaps_to(null)
user.put_in_active_hand(newcell)
var/percentage = charge/maxcharge
@@ -192,7 +192,7 @@
origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6)
icon = 'icons/obj/abductor.dmi'
icon_state = "cell"
maxcharge = 10000
maxcharge = 10000
charge_amount = 500
self_recharge = TRUE
charge_delay = 50
@@ -202,7 +202,7 @@
/obj/item/cell/void/attack_self(var/mob/user)
user.remove_from_mob(src)
to_chat(user, "<span class='notice'>You swap [src] to 'device cell' mode.</span>")
to_chat(user, span_notice("You swap [src] to 'device cell' mode."))
var/obj/item/cell/newcell = new swaps_to(null)
user.put_in_active_hand(newcell)
var/percentage = charge/maxcharge
@@ -66,7 +66,7 @@
var/obj/item/plastique/C4 = locate() in get_turf(src)
if(C4)
C4.visible_message("<span class='danger'>The current fries \the [C4]!</span>")
C4.visible_message(span_danger("The current fries \the [C4]!"))
if(prob(10))
C4.explode(get_turf(src))
@@ -225,11 +225,11 @@
if(H.nutrition <= amount)
use(user,H)
else
to_chat(user,"<span class='warning'>The difference in potential is too great. [user == M ? "You have" : "[H] has"] too much charge to use such a small battery.</span>")
to_chat(user,span_warning("The difference in potential is too great. [user == M ? "You have" : "[H] has"] too much charge to use such a small battery."))
else if(M == user)
to_chat(user,"<span class='warning'>You lick the cell, and your tongue tingles slightly.</span>")
to_chat(user,span_warning("You lick the cell, and your tongue tingles slightly."))
else
to_chat(user,"<span class='warning'>This cell is meant for use on humanoid synthetics only.</span>")
to_chat(user,span_warning("This cell is meant for use on humanoid synthetics only."))
. = ..()
@@ -12,10 +12,10 @@
if(istype(W, /obj/item/ammo_casing))
var/obj/item/ammo_casing/C = W
if(C.caliber != caliber)
to_chat(user, "<span class='warning'>[C] does not fit into [src].</span>")
to_chat(user, span_warning("[C] does not fit into [src]."))
return
if(stored_ammo.len >= max_ammo)
to_chat(user, "<span class='warning'>[src] is full!</span>")
to_chat(user, span_warning("[src] is full!"))
return
user.remove_from_mob(C)
C.forceMove(src)
@@ -24,13 +24,13 @@
if(istype(W, /obj/item/ammo_magazine))
var/obj/item/ammo_magazine/L = W
if(L.caliber != caliber)
to_chat(user, "<span class='warning'>The ammo in [L] does not fit into [src].</span>")
to_chat(user, span_warning("The ammo in [L] does not fit into [src]."))
return
if(!L.stored_ammo.len)
to_chat(user, "<span class='warning'>There's no more ammo [L]!</span>")
to_chat(user, span_warning("There's no more ammo [L]!"))
return
if(stored_ammo.len >= max_ammo)
to_chat(user, "<span class='warning'>[src] is full!</span>")
to_chat(user, span_warning("[src] is full!"))
return
while(L.stored_ammo.len && stored_ammo.len < max_ammo)
var/obj/item/ammo_casing/AC = L.stored_ammo[1] //select the next casing.
@@ -33,8 +33,8 @@
recharging = 1
update_icon()
playsound(src,'modular_chomp/sound/weapons/clockwork/clockwork_cock.ogg',25,1)
user.visible_message("<span class='notice'>[user] pulls the charging handle on \the [src] and it whirrs to life!</span>", \
"<span class='notice'>You pull the charging handle on \the [src] and begin the reloading sequence.</span>")
user.visible_message(span_notice("[user] pulls the charging handle on \the [src] and it whirrs to life!"), \
span_notice("You pull the charging handle on \the [src] and begin the reloading sequence."))
playsound(src,'modular_chomp/sound/weapons/clockwork/cwc_rifle_fabricate.ogg',25,5)
while(recharging)
if(!do_after(user, 50, src))
@@ -4,12 +4,12 @@
var/mob/living/L = user
if(istype(L))
if(L.has_modifier_of_type(/datum/modifier/underwater_stealth))
to_chat(user,"<span class='warning'>You cannot use guns whilst hiding underwater!</span>")
to_chat(user,span_warning("You cannot use guns whilst hiding underwater!"))
return 0
else if(L.has_modifier_of_type(/datum/modifier/rednet))
to_chat(user,"<span class='warning'>Your gun refuses to fire!</span>")
to_chat(user,span_warning("Your gun refuses to fire!"))
return 0
else if(L.has_modifier_of_type(/datum/modifier/trait/thickdigits))
to_chat(user,"<span class='warning'>Your hands can't pull the trigger!!</span>")
to_chat(user,span_warning("Your hands can't pull the trigger!!"))
return 0
return ..()
@@ -68,7 +68,7 @@
/obj/item/projectile/bullet/magnetic/supercannon/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null)
if(istype(target,/turf/simulated/wall) || istype(target,/mob/living))
target.visible_message("<span class='danger'>The [src] burns a perfect hole through \the [target] with a blinding flash!</span>")
target.visible_message(span_danger("The [src] burns a perfect hole through \the [target] with a blinding flash!"))
playsound(target, 'sound/effects/teleport.ogg', 40, 0)
return ..(target, blocked, def_zone)
@@ -92,7 +92,7 @@
/obj/item/gun/energy/elementalray/emag_act(var/remaining_charges, var/mob/user)
..()
to_chat(user, "<span class='notice'>You short circuit the internal locking mechanisms of \the [src]!</span>")
to_chat(user, span_notice("You short circuit the internal locking mechanisms of \the [src]!"))
firemodes = list(
list(mode_name="fire", burst=1, fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 160),
list(mode_name="lighting", burst=1, fire_delay=20, projectile_type=/obj/item/projectile/beam/lightingsurge, charge_cost = 480),
@@ -132,8 +132,8 @@
desc = "You are covered in acid"
mob_overlay_state = "poisoned"
on_created_text = "<span class='warning'>You are covered in muck...</span>"
on_expired_text = "<span class='notice'>You are no longer covered in muck.</span>"
on_created_text = span_warning("You are covered in muck...")
on_expired_text = span_notice("You are no longer covered in muck.")
stacks = MODIFIER_STACK_ALLOWED
slowdown = 0.2
@@ -187,4 +187,4 @@
submunition_spread_max = 1200
submunition_spread_min = 200
submunitions = list(/obj/item/projectile/energy/redlighting = 3)
hud_state = "laser_sniper"
hud_state = "laser_sniper"
@@ -151,32 +151,32 @@
/obj/machinery/chemical_synthesizer/proc/add_cartridge(obj/item/reagent_containers/chem_disp_cartridge/C, mob/user)
if(!panel_open)
if(user)
to_chat(user, "<span class='warning'>\The panel is locked!</span>")
to_chat(user, span_warning("\The panel is locked!"))
return
if(!istype(C))
if(user)
to_chat(user, "<span class='warning'>\The [C] will not fit in \the [src]!</span>")
to_chat(user, span_warning("\The [C] will not fit in \the [src]!"))
return
if(cartridges.len >= SYNTHESIZER_MAX_CARTRIDGES)
if(user)
to_chat(user, "<span class='warning'>\The [src] does not have any slots open for \the [C] to fit into!</span>")
to_chat(user, span_warning("\The [src] does not have any slots open for \the [C] to fit into!"))
return
if(!C.label)
if(user)
to_chat(user, "<span class='warning'>\The [C] does not have a label!</span>")
to_chat(user, span_warning("\The [C] does not have a label!"))
return
if(cartridges[C.label])
if(user)
to_chat(user, "<span class='warning'>\The [src] already contains a cartridge with that label!</span>")
to_chat(user, span_warning("\The [src] already contains a cartridge with that label!"))
return
if(user)
user.drop_from_inventory(C)
to_chat(user, "<span class='notice'>You add \the [C] to \the [src].</span>")
to_chat(user, span_notice("You add \the [C] to \the [src]."))
C.loc = src
cartridges[C.label] = C
@@ -204,7 +204,7 @@
return
var/obj/item/reagent_containers/chem_disp_cartridge/C = remove_cartridge(label)
if(C)
to_chat(user, "<span class='notice'>You remove \the [C] from \the [src].</span>")
to_chat(user, span_notice("You remove \the [C] from \the [src]."))
C.loc = loc
playsound(src, W.usesound, 50, 1)
return
@@ -212,22 +212,22 @@
// We don't need a busy check here as the catalyst slot must be occupied for the machine to function.
if(istype(W, /obj/item/reagent_containers/glass))
if(catalyst)
to_chat(user, "<span class='warning'>There is already \a [catalyst] in \the [src] catalyst slot!</span>")
to_chat(user, span_warning("There is already \a [catalyst] in \the [src] catalyst slot!"))
return
if(stat & (BROKEN|NOPOWER))
to_chat(user, "<span class='warning'>The clamp will not secure the catalyst while the machine is down!</span>")
to_chat(user, span_warning("The clamp will not secure the catalyst while the machine is down!"))
return
var/obj/item/reagent_containers/RC = W
if(!RC.is_open_container())
to_chat(user, "<span class='warning'>You don't see how \the [src] could extract reagents from \the [RC].</span>")
to_chat(user, span_warning("You don't see how \the [src] could extract reagents from \the [RC]."))
return
catalyst = RC
user.drop_from_inventory(RC)
RC.loc = src
to_chat(user, "<span class='notice'>You set \the [RC] on \the [src].</span>")
to_chat(user, span_notice("You set \the [RC] on \the [src]."))
update_icon()
return
@@ -379,7 +379,7 @@
if("add_recipe")
// Allows the user to add a recipe. Kinda vital for this machine to do anything useful.
if(recipes.len >= SYNTHESIZER_MAX_RECIPES)
to_chat(usr, "<span class='warning'>Maximum recipes exceeded!</span>")
to_chat(usr, span_warning("Maximum recipes exceeded!"))
return
if(!production_mode)
babystep_recipe(usr)
@@ -394,7 +394,7 @@
if(index in recipes)
recipes.Remove(list(index)) // Fuck off Byond.
else
to_chat(usr, "<span class='warning'>You cannot remove recipes while the machine is running!</span>")
to_chat(usr, span_warning("You cannot remove recipes while the machine is running!"))
if("exp_recipe")
// Allows the user to export recipes to chat formatted for easy importing.
var/index = params["exp_index"]
@@ -402,7 +402,7 @@
if("add_queue")
// Adds recipes to the queue.
if(queue.len >= SYNTHESIZER_MAX_QUEUE)
to_chat(usr, "<span class='warning'>Synthesizer queue full!</span>")
to_chat(usr, span_warning("Synthesizer queue full!"))
return
var/index = params["qa_index"]
// If you forgot, this is a string returned by the user pressing the "add to queue" button on a recipe.
@@ -623,13 +623,13 @@
// If we're missing a cartridge somehow or lack space for the next step, stall. It's now up to the chemist to fix this.
if(!cartridges[label])
visible_message("<span class='warning'>The [src] beeps loudly, flashing a 'cartridge missing' error!</span>", "You hear loud beeping!")
visible_message(span_warning("The [src] beeps loudly, flashing a 'cartridge missing' error!"), "You hear loud beeping!")
playsound(src, 'sound/weapons/smg_empty_alarm.ogg', 40)
stall()
return
if(quantity > reagents.get_free_space())
visible_message("<span class='warning'>The [src] beeps loudly, flashing a 'maximum volume exceeded' error!</span>", "You hear loud beeping!")
visible_message(span_warning("The [src] beeps loudly, flashing a 'maximum volume exceeded' error!"), "You hear loud beeping!")
playsound(src, 'sound/weapons/smg_empty_alarm.ogg', 40)
stall()
return
@@ -637,7 +637,7 @@
// If there isn't enough reagent left for this step, try again in a minute.
var/obj/item/reagent_containers/chem_disp_cartridge/C = cartridges[label]
if(quantity > C.reagents.total_volume)
visible_message("<span class='notice'>The [src] flashes an 'insufficient reagents' warning.</span>")
visible_message(span_notice("The [src] flashes an 'insufficient reagents' warning."))
addtimer(CALLBACK(src, PROC_REF(perform_reaction), r_id, step), 1 MINUTE)
return
@@ -2,8 +2,8 @@
name = "Eletrical Surge"
desc = "You are filled with an overwhelming energy."
on_created_text = "<span class='critical'>You feel an overwhelimg energy surge through your body!</span>"
on_expired_text = "<span class='notice'>The surge subsides.</span>"
on_created_text = span_critical("You feel an overwhelimg energy surge through your body!")
on_expired_text = span_notice("The surge subsides.")
stacks = MODIFIER_STACK_EXTEND
evasion = 20
accuracy = -30
@@ -14,8 +14,8 @@
name = "Healing Tide"
desc = "You are filled with an overwhelming energy."
on_created_text = "<span class='critical'>Your body begins to focus on recovering!</span>"
on_expired_text = "<span class='notice'>The healing subsides.</span>"
on_created_text = span_critical("Your body begins to focus on recovering!")
on_expired_text = span_notice("The healing subsides.")
stacks = MODIFIER_STACK_EXTEND
metabolism_percent = 0.5
@@ -25,8 +25,8 @@
name = "Radiation Hide"
desc = "Your body defensivly warps."
on_created_text = "<span class='critical'>Your body strangly mutates!</span>"
on_expired_text = "<span class='notice'>Your body returns to normal.</span>"
on_created_text = span_critical("Your body strangly mutates!")
on_expired_text = span_notice("Your body returns to normal.")
stacks = MODIFIER_STACK_EXTEND
icon_scale_x_percent = 1.2
@@ -42,8 +42,8 @@
client_color = "#808080" //Za worldo
on_created_text = "<span class='critical'>The world arounds you slows down!</span>"
on_expired_text = "<span class='notice'>The world returns to normal.</span>"
on_created_text = span_critical("The world arounds you slows down!")
on_expired_text = span_notice("The world returns to normal.")
stacks = MODIFIER_STACK_EXTEND
slowdown = -3
@@ -57,10 +57,10 @@
name = "Protective Numbing"
desc = "Your senses feel everything."
on_created_text = "<span class='critical'>Your body becomes numb!</span>"
on_expired_text = "<span class='notice'>Sensation returns to your body.</span>"
on_created_text = span_critical("Your body becomes numb!")
on_expired_text = span_notice("Sensation returns to your body.")
stacks = MODIFIER_STACK_EXTEND
heat_protection = 1
cold_protection = 1
attack_speed_percent = 1.25
attack_speed_percent = 1.25
@@ -50,8 +50,8 @@
//set not to bug them because the chem is activating
M.gender_change_cooldown = 1
M.visible_message(
"<span class='notice'>[M] suddenly twitches as some of their features seem to contort and reshape.</span>",
"<span class='notice'>You lose focus as warmth spreads throughout your chest and abdomen.</span>"
span_notice("[M] suddenly twitches as some of their features seem to contort and reshape."),
span_notice("You lose focus as warmth spreads throughout your chest and abdomen.")
)
//wait 30 seconds, growth takes time yo
spawn(300)
@@ -61,7 +61,7 @@
if (alert(M,"This chemical will change your gender, proceed?", "Warning", "Yes", "No") == "Yes")
M.change_gender_identity(gender_change)
M.change_gender(gender_change)
M << "<span class='warning'>You feel like a new person.</span>" //success
M << span_warning("You feel like a new person.") //success
//Chemist expansion
//deathblood
@@ -345,8 +345,8 @@
name = "liquidhealer"
desc = "You are filled with an overwhelming healing."
on_created_text = "<span class='critical'>You feel your body's natural healing quick into overdrive!</span>"
on_expired_text = "<span class='notice'>Your body returns to normal.</span>"
on_created_text = span_critical("You feel your body's natural healing quick into overdrive!")
on_expired_text = span_notice("Your body returns to normal.")
incoming_healing_percent = 1.2
@@ -74,7 +74,7 @@
var/mob/living/L = A
if(!emagged && ishuman(L) && L.mind)
playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 0, 0)
visible_message("<span class='warning'>POSSIBLE CREW MEMBER DETECTED! EMERGENCY STOP ENGAGED!</span>")
visible_message(span_warning("POSSIBLE CREW MEMBER DETECTED! EMERGENCY STOP ENGAGED!"))
global_announcer.autosay("Possible crew member detected in grinder feed. Emergency Stop Protocols engaged!", "Recycling Grinder Alert", "Supply")
operating = FALSE
update()
@@ -5,7 +5,7 @@
var/mob/living/carbon/human/H = M
if(H.get_species() == SPECIES_SHADEKIN && (H.ability_flags & AB_PHASE_SHIFTED))
var/turf/T = get_turf(src)
visible_message("<span class='notice'>[src] fizzles and disappears as something interacts with it!</span>")
visible_message(span_notice("[src] fizzles and disappears as something interacts with it!"))
playsound(src, pick('sound/effects/Glassbr1.ogg', 'sound/effects/Glassbr2.ogg', 'sound/effects/Glassbr3.ogg'), 50, 1)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
s.set_up(5, 1, T)
+12 -12
View File
@@ -7,12 +7,12 @@
set name = "Mentorhelp"
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
to_chat(usr, span_danger("Speech is currently admin-disabled."))
return
//handle muting and automuting
if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<span class='danger'>Error: Mentor-PM: You cannot send adminhelps (Muted).</span>")
to_chat(src, span_danger("Error: Mentor-PM: You cannot send adminhelps (Muted)."))
return
if(handle_spam_prevention(msg,MUTE_ADMINHELP))
return
@@ -34,10 +34,10 @@
if(current_ticket)
log_admin("Mentorhelp: [key_name(src)]: [msg]")
current_ticket.MessageNoRecipient(msg)
to_chat(usr, "<span class='adminnotice'><span class='mentor'>Mentor-PM to-<b>Mentors</b>: [msg]</span></span>")
to_chat(usr, span_adminnotice(span_mentor("Mentor-PM to-" + span_bold("Mentors") + ": [msg]")))
return
else
to_chat(usr, "<span class='warning'>Ticket not found, creating new one...</span>")
to_chat(usr, span_warning("Ticket not found, creating new one..."))
else
current_ticket.AddInteraction("[usr.ckey] opened a new ticket.")
current_ticket.Resolve()
@@ -62,7 +62,7 @@
GLOB.tickets.BrowseTickets(browse_to)
/proc/message_mentors(var/msg)
msg = "<span class='mentor_channel'><span class='prefix'>Mentor:</span> <span class=\"message\">[msg]</span></span>"
msg = span_mentor_channel(span_prefix("Mentor:") + span_message("[msg]"))
for(var/client/C in GLOB.mentors)
to_chat(C, msg)
@@ -78,12 +78,12 @@
set name = "Adminhelp"
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
to_chat(usr, span_danger("Speech is currently admin-disabled."))
return
//handle muting and automuting
if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<span class='danger'>Error: Admin-PM: You cannot send adminhelps (Muted).</span>")
to_chat(src, span_danger("Error: Admin-PM: You cannot send adminhelps (Muted)."))
return
if(handle_spam_prevention(msg,MUTE_ADMINHELP))
return
@@ -104,10 +104,10 @@
if(input == "Yes")
if(current_ticket)
current_ticket.MessageNoRecipient(msg)
to_chat(usr, "<span class='adminnotice'>PM to-<b>Admins</b>: [msg]</span>")
to_chat(usr, span_adminnotice("PM to-" + span_bold("Admins") + ": [msg]"))
return
else
to_chat(usr, "<span class='warning'>Ticket not found, creating new one...</span>")
to_chat(usr, span_warning("Ticket not found, creating new one..."))
else
current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.")
current_ticket.Close()
@@ -162,14 +162,14 @@
//handle muting and automuting
if(prefs.muted & MUTE_ADMINHELP)
to_chat(usr, "<span class='danger'>Error: You cannot request spice (muted from adminhelps).</span>")
to_chat(usr, span_danger("Error: You cannot request spice (muted from adminhelps)."))
return
if(tgui_alert(usr, "Are you sure you want to request the admins spice things up for you? You accept the consequences if you do.","Spicy!",list("Yes","No")) == "Yes")
message_admins("[ADMIN_FULLMONTY(usr)] has requested the round be spiced up a little.")
to_chat(usr, "<span class='notice'>You have requested some more spice in your round.</span>")
to_chat(usr, span_notice("You have requested some more spice in your round."))
else
to_chat(usr, "<span class='notice'>Spice request cancelled.</span>")
to_chat(usr, span_notice("Spice request cancelled."))
return
//if they requested spice, then remove spice verb temporarily to prevent spamming
+31 -30
View File
@@ -96,7 +96,7 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
var/list/dat = list("<html><head><title>[title]</title></head>")
dat += "<A HREF='?_src_=holder;[HrefToken()];ahelp_tickets=[state]'>Refresh</A><br><br>"
for(var/datum/ticket/T as anything in l2b)
dat += "<span class='adminnotice'><span class='adminhelp'>Ticket #[T.id]</span>: <A HREF='?_src_=holder;ahelp=\ref[T];[HrefToken()];ahelp_action=ticket'>[T.initiator_key_name]: [T.name]</A></span><br>"
dat += span_adminnotice(span_adminhelp("Ticket #[T.id]") + ": <A HREF='?_src_=holder;ahelp=\ref[T];[HrefToken()];ahelp_action=ticket'>[T.initiator_key_name]: [T.name]</A>") + "<br>"
usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480")
@@ -223,7 +223,7 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
log_admin("Mentorhelp: [key_name(C)]: [msg]")
MessageNoRecipient(msg)
//show it to the person adminhelping too
to_chat(C, "<i><span class='mentor'>Mentor-PM to-<b>Mentors</b>: [name]</span></i>")
to_chat(C, span_mentor(span_italics("Mentor-PM to-" + span_bold("Mentors") + ": [name]"))
GLOB.mhelp_tickets.active_tickets += src */
/**
@@ -266,19 +266,19 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
_interactions = list()
if(is_bwoink)
AddInteraction("<font color='blue'>[key_name_admin(usr)] PM'd [LinkedReplyName()]</font>")
AddInteraction(span_blue("[key_name_admin(usr)] PM'd [LinkedReplyName()]"))
message_admins(span_blue("Ticket [TicketHref("#[id]")] created"))
else
MessageNoRecipient(parsed_message)
send2adminchat() //VOREStation Add
//show it to the person adminhelping too
to_chat(C, "<span class='adminnotice'>PM to-<b>Admins</b>: [name]</span>")
to_chat(C, span_adminnotice("PM to-" + span_bold("Admins") + ": [name]"))
//send it to irc if nobody is on and tell us how many were on
var/admin_number_present = send2irc_adminless_only(initiator_ckey, name)
log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
if(admin_number_present <= 0)
to_chat(C, "<span class='notice'>No active admins are online, your adminhelp was sent to the admin discord.</span>") //VOREStation Edit
to_chat(C, span_notice("No active admins are online, your adminhelp was sent to the admin discord.")) //VOREStation Edit
send2adminchat() //VOREStation Add
//YW EDIT START
var/list/adm = get_admin_counts()
@@ -362,16 +362,16 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
return "<A HREF='?_src_=holder;ticket=[ref_src];[HrefToken()];ticket_action=[action]'>[msg]</A>"
/*
var/chat_msg = "<span class='notice'>(<A HREF='?_src_=mentorholder;mhelp=[ref_src];[HrefToken()];mhelp_action=escalate'>ESCALATE</A>) Ticket [TicketHref("#[id]", ref_src)]<b>: [LinkedReplyName(ref_src)]:</b> [msg]</span>"
var/chat_msg = span_notice("(<A HREF='?_src_=mentorholder;mhelp=[ref_src];[HrefToken()];mhelp_action=escalate'>ESCALATE</A>) Ticket [TicketHref("#[id]", ref_src)]" + span_bold(": [LinkedReplyName(ref_src)]:") + " [msg]")
*/
//message from the initiator without a target, all admins will see this
//won't bug irc
/datum/ticket/proc/MessageNoRecipient(msg)
var/ref_src = "\ref[src]"
var/chat_msg = "<span class='adminnotice'><span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [msg]</span>"
var/chat_msg = span_admin_pm_notice(span_adminhelp("Ticket [TicketHref("#[id]", ref_src)]") + span_bold(": [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:") + msg)
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
AddInteraction(span_red("[LinkedReplyName(ref_src)]: [msg]"))
//send this msg to all admins
if(level == 1)
@@ -395,10 +395,10 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
switch(state)
if(AHELP_RESOLVED)
feedback_dec("mhelp_resolve")
AddInteraction("<font color='purple'>Reopened by [usr.ckey]</font>")
AddInteraction(span_purple("Reopened by [usr.ckey]"))
if(initiator)
to_chat(initiator, "<span class='filter_adminlog'><font color='purple'>Ticket [TicketHref("#[id]")] was reopened by [usr.ckey].</font></span>")
var/msg = "<span class='adminhelp'>Ticket [TicketHref("#[id]")] reopened by [usr.ckey].</span>"
to_chat(initiator, span_filter_adminlog(span_purple("Ticket [TicketHref("#[id]")] was reopened by [usr.ckey].")))
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [usr.ckey].")
message_mentors(msg)
log_admin(msg)
*/
@@ -406,11 +406,11 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
//Reopen a closed ticket
/datum/ticket/proc/Reopen()
if(state == AHELP_ACTIVE)
to_chat(usr, "<span class='warning'>This ticket is already open.</span>")
to_chat(usr, span_warning("This ticket is already open."))
return
if(GLOB.tickets.CKey2ActiveTicket(initiator_ckey))
to_chat(usr, "<span class='warning'>This user already has an active ticket, cannot reopen this one.</span>")
to_chat(usr, span_warning("This user already has an active ticket, cannot reopen this one."))
return
statclick = new(null, src)
@@ -427,10 +427,10 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
if(initiator)
initiator.current_ticket = src
AddInteraction("<font color='purple'>Reopened by [key_name_admin(usr)]</font>")
AddInteraction(span_purple("Reopened by [key_name_admin(usr)]"))
if(initiator)
to_chat(initiator, "<span class='filter_adminlog'>[span_purple("Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].")]</span>")
var/msg = "<span class='adminhelp'>Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].</span>"
to_chat(initiator, span_filter_adminlog("[span_purple("Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].")]"))
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].")
message_admins(msg)
log_admin(msg)
feedback_inc("ticket_reopen")
@@ -461,9 +461,9 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
RemoveActive()
state = AHELP_CLOSED
GLOB.tickets.ListInsert(src)
AddInteraction("<span class='filter_adminlog'><font color='red'>Closed by [key_name_admin(usr)].</font></span>")
AddInteraction(span_filter_adminlog(span_red("Closed by [key_name_admin(usr)].")))
if(initiator)
to_chat(initiator, "<span class='filter_adminlog'>[span_red("Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].")]</span>")
to_chat(initiator, span_filter_adminlog("[span_red("Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].")]"))
if(!silent)
feedback_inc("ahelp_close")
var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name_admin(usr)]."
@@ -487,9 +487,9 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
state = AHELP_RESOLVED
GLOB.tickets.ListInsert(src)
AddInteraction("<span class='filter_adminlog'><font color='green'>Resolved by [key_name_admin(usr)].</font></span>")
AddInteraction(span_filter_adminlog(span_green("Resolved by [key_name_admin(usr)].")))
if(initiator)
to_chat(initiator, "<span class='filter_adminlog'>[span_green("Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].")]</span>")
to_chat(initiator, span_filter_adminlog("[span_green("Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].")]"))
if(!silent)
feedback_inc("ticket_resolve")
var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name_admin(usr)]"
@@ -519,9 +519,9 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
if(initiator.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping))
initiator << 'sound/effects/adminhelp.ogg'
to_chat(initiator, "<span class='filter_pm'>[span_red("<font size='4'><b>- AdminHelp Rejected! -</b></font>")]<br>\
[span_red("<b>Your admin help was rejected.</b>")]<br>\
Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.</span>")
to_chat(initiator, span_filter_pm("[span_red(span_huge(span_bold("- AdminHelp Rejected! -")))]<br>\
[span_red(span_bold("Your admin help was rejected."))]<br>\
Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting."))
feedback_inc("ahelp_reject")
var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name_admin(usr)]"
@@ -543,12 +543,12 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
if(state != AHELP_ACTIVE)
return
var/msg = "<span class='filter_pm'>[span_red("<font size='4'><b>- AdminHelp marked as IC issue! -</b></font>")]<br>"
msg += "[span_red("<b>This is something that can be solved ICly, and does not currently require staff intervention.</b>")]<br>"
msg += "[span_red("Your AdminHelp may also be unanswerable due to ongoing events.")]</span>"
var/msg = "[span_red(span_huge(span_bold("- AdminHelp marked as IC issue! -")))]<br>"
msg += "[span_red(span_bold("This is something that can be solved ICly, and does not currently require staff intervention."))]<br>"
msg += "[span_red("Your AdminHelp may also be unanswerable due to ongoing events.")]"
if(initiator)
to_chat(initiator, msg)
to_chat(initiator, span_filter_pm(msg))
feedback_inc("ahelp_icissue")
msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name_admin(usr)]"
@@ -608,14 +608,14 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
if(tgui_alert(usr, "Really escalate this ticket to admins? No mentors will ever be able to interact with it again if you do.","Escalate",list("Yes","No")) != "Yes")
return
if (src.initiator == null) // You can't escalate a mentorhelp of someone who's logged out because it won't create the adminhelp properly
to_chat(usr, "<span class='pm warning'>Error: client not found, unable to escalate.</span>")
to_chat(usr, span_mentor_pm_warning("Error: client not found, unable to escalate."))
return
level = level - 1
message_mentors("[usr.ckey] escalated Ticket [TicketHref("#[id]")]")
log_admin("[key_name(usr)] escalated ticket [src.name]")
to_chat(src.initiator, "<span class='mentor'>[usr.ckey] escalated your ticket to admins.</span>")
to_chat(src.initiator, span_mentor("[usr.ckey] escalated your ticket to admins."))
/datum/ticket/proc/Context(ref_src)
if(!ref_src)
@@ -800,7 +800,8 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new)
if(found.mind && found.mind.special_role)
is_antag = 1
founds += "Name: [found.name]([found.real_name]) Ckey: [found.ckey] [is_antag ? "(Antag)" : null] "
msg += "[original_word]<font size='1' color='[is_antag ? "red" : "black"]'>(<A HREF='?_src_=holder;[HrefToken()];adminmoreinfo=\ref[found]'>?</A>|<A HREF='?_src_=holder;[HrefToken()];adminplayerobservefollow=\ref[found]'>F</A>)</font> "
var/textentry = "(<A HREF='?_src_=holder;[HrefToken()];adminmoreinfo=\ref[found]'>?</A>|<A HREF='?_src_=holder;[HrefToken()];adminplayerobservefollow=\ref[found]'>F</A> "
msg += "[original_word]" + span_small((is_antag ? span_red(textentry) : span_black(textentry)))
continue
msg += "[original_word] "
if(irc)
@@ -118,12 +118,12 @@
player = C
if(!player)
to_chat(usr, "<span class='warning'>Ckey ([ckey]) not online.</span>")
to_chat(usr, span_warning("Ckey ([ckey]) not online."))
return
var/ticket_text = tgui_input_text(usr, "What should the initial text be?", "New Ticket")
if(!ticket_text)
to_chat(usr, "<span class='warning'>Ticket message cannot be empty.</span>")
to_chat(usr, span_warning("Ticket message cannot be empty."))
return
var/level = tgui_alert(usr, "Is this ticket Admin-Level or Mentor-Level?", "Ticket Level", list("Admin", "Mentor"))
@@ -138,10 +138,10 @@
if(input == "Yes")
if(player.current_ticket)
player.current_ticket.MessageNoRecipient(ticket_text)
to_chat(usr, "<span class='adminnotice'>PM to-<b>Admins</b>: [ticket_text]</span>")
to_chat(usr, span_adminnotice("PM to-" + span_bold("Admins") + ": [ticket_text]"))
return
else
to_chat(usr, "<span class='warning'>Ticket not found, creating new one...</span>")
to_chat(usr, span_warning("Ticket not found, creating new one..."))
else
player.current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.")
player.current_ticket.Close()
@@ -268,9 +268,9 @@
dat += "<b>State: "
switch(state)
if(AHELP_ACTIVE)
dat += "<font color='red'>OPEN</font>"
dat += span_red("OPEN")
if(AHELP_RESOLVED)
dat += "<font color='green'>RESOLVED</font>"
dat += span_green("RESOLVED")
else
dat += "UNKNOWN"
dat += "</b>[GLOB.TAB][TicketHref("Refresh", ref_src)]"
@@ -281,9 +281,9 @@
dat += "<br>Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)"
dat += "<br><br>"
if(initiator)
dat += "<b>Actions:</b> [Context(ref_src)]<br>"
dat += span_bold("Actions:") + " [Context(ref_src)]<br>"
else
dat += "<b>DISCONNECTED</b>[GLOB.TAB][ClosureLinks(ref_src)]<br>"
dat += span_bold("DISCONNECTED") + "[GLOB.TAB][ClosureLinks(ref_src)]<br>"
dat += "<br><b>Log:</b><br><br>"
for(var/I in _interactions)
dat += "[I]<br>"
@@ -296,9 +296,9 @@
dat += "<b>State: "
switch(state)
if(AHELP_ACTIVE)
dat += "<font color='red'>OPEN</font>"
dat += span_red("OPEN")
if(AHELP_RESOLVED)
dat += "<font color='green'>RESOLVED</font>"
dat += span_green("RESOLVED")
if(AHELP_CLOSED)
dat += "CLOSED"
else
@@ -311,9 +311,9 @@
dat += "<br>Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)"
dat += "<br><br>"
if(initiator)
dat += "<b>Actions:</b> [FullMonty(ref_src)]<br>"
dat += span_bold("Actions:") + " [FullMonty(ref_src)]<br>"
else
dat += "<b>DISCONNECTED</b>[GLOB.TAB][ClosureLinks(ref_src)]<br>"
dat += span_bold("DISCONNECTED") + "[GLOB.TAB][ClosureLinks(ref_src)]<br>"
dat += "<br><b>Log:</b><br><br>"
for(var/I in _interactions)
dat += "[I]<br>"
+9 -9
View File
@@ -18,17 +18,17 @@
/datum/disease2/effect/choreomania/activate(mob/living/carbon/mob, multiplier)
if(prob(25))
to_chat(mob, "<span class='notice'>You feel [pick("like dancing like a maniac, maniac...", "the need to chick chicky boom...")]</span>")
to_chat(mob, span_notice("You feel [pick("like dancing like a maniac, maniac...", "the need to chick chicky boom...")]"))
if(prob(60))
if(mob.buckled())
mob.emote("whistle")
to_chat(viewers(mob), "<span class='warning'>[mob.name] taps their foot rhythmically!</span>")
to_chat(viewers(mob), span_warning("[mob.name] taps their foot rhythmically!"))
else
to_chat(viewers(mob),"<span class='warning'>[mob.name] dances uncontrollably!</span>")
to_chat(viewers(mob),span_warning("[mob.name] dances uncontrollably!"))
if(prob(30))
to_chat(mob, "<span class='warning'>You feel like starting a conga line!</span>")
to_chat(mob, span_warning("You feel like starting a conga line!"))
for(var/mob/living/carbon/M in oview(2,mob))
mob.spread_disease_to(M)
@@ -48,10 +48,10 @@
/datum/disease2/effect/pica/activate(mob/living/carbon/mob, multiplier)
if(prob(20))
var/list/nearby = oview(5, mob)
to_chat(mob, "<span class='warning'>You could go for a bite of [pick(nearby)]...</span>")
to_chat(mob, span_warning("You could go for a bite of [pick(nearby)]..."))
else if (prob(20))
var/list/item = mob.get_equipped_items()
to_chat(mob, "<span class='warning'>[pick(item)] looks oddly [pick("delicious", "tasty", "scrumptious", "inviting")]...</span>")
to_chat(mob, span_warning("[pick(item)] looks oddly [pick("delicious", "tasty", "scrumptious", "inviting")]..."))
///////////////////////////////////////////////
/////////////////// Stage 2 ///////////////////
@@ -62,7 +62,7 @@
chance_maxm = 5
/datum/disease2/effect/jellylegs/activate(var/mob/living/carbon/mob,var/multiplier)
to_chat(mob, "<span class='notice'>Your body seems to lose balance!</span>")
to_chat(mob, span_notice("Your body seems to lose balance!"))
mob.slip("yourself.")
/datum/disease2/effect/morgellon
@@ -73,9 +73,9 @@
/datum/disease2/effect/morgellon/activate(var/mob/living/carbon/mob,var/multiplier)
if(prob(65))
var/obj/item/organ/external/O = pick(mob.organs)
to_chat(mob, "<span class='warning'>Your [O.name] [pick(" itches slightly...", " stings!")]</span>")
to_chat(mob, span_warning("Your [O.name] [pick(" itches slightly...", " stings!")]"))
else if(prob(30))
to_chat(mob, "<span class='notice'>You feel [pick("something crawling under your skin.","little legs on you.")]</span>")
to_chat(mob, span_notice("You feel [pick("something crawling under your skin.","little legs on you.")]"))
else
var/obj/effect/spider/spiderling/S = new(get_turf(mob))
S.amount_grown = -1
@@ -67,10 +67,10 @@
// Sends messages to the owner of the soulcatcher
/obj/soulgem/proc/notify_holder(var/message)
to_chat(owner, span_nif("<b>[name]</b> displays, \"<span class='notice nif'>[message]</span>\""))
to_chat(owner, span_nif(span_bold("[name]") + " displays, \"" + span_notice("[message]") + "\""))
for(var/mob/living/carbon/brain/caught_soul/CS as anything in brainmobs)
to_chat(CS, span_nif("<b>[name]</b> displays, \"<span class='notice nif'>[message]</span>\""))
to_chat(CS, span_nif(span_bold("[name]") + " displays, \"" + span_notice("[message]") + "\""))
// Forwards the speech of captured souls
/obj/soulgem/proc/use_speech(var/message, var/mob/living/sender, var/mob/eyeobj)
@@ -78,13 +78,13 @@
//AR Projecting
if(eyeobj)
sender.eyeobj.visible_message("<span class='game say'><b>[sender_name]</b> says, \"[message]\"</span>")
sender.eyeobj.visible_message(span_game(span_say(span_bold("[sender_name]") + " says, \"[message]\"")))
//Not AR Projecting
else
to_chat(owner, span_nif("<b>\[SC\] [sender_name]</b> speaks, \"[message]\""))
to_chat(owner, span_nif(span_bold("\[SC\] [sender_name]") + " speaks, \"[message]\""))
for(var/mob/living/carbon/brain/caught_soul/CS as anything in brainmobs)
to_chat(CS, span_nif("<b>\[SC\] [sender_name]</b> speaks, \"[message]\""))
to_chat(CS, span_nif(span_bold("\[SC\] [sender_name]") + " speaks, \"[message]\""))
log_nsay(message, owner.real_name, sender)
@@ -94,13 +94,13 @@
//AR Projecting
if(eyeobj)
sender.eyeobj.visible_message("<span class='emote'>[sender_name] [message]</span>")
sender.eyeobj.visible_message(span_emote("[sender_name] [message]"))
//Not AR Projecting
else
to_chat(owner, span_nif("<b>[sender_name]</b> [message]"))
to_chat(owner, span_nif(span_bold("[sender_name]") + " [message]"))
for(var/mob/living/carbon/brain/caught_soul/CS as anything in brainmobs)
to_chat(CS, span_nif("<b>[sender_name]</b> [message]"))
to_chat(CS, span_nif(span_bold("[sender_name]") + " [message]"))
log_nme(message, owner.real_name,sender)