refactors most spans

This commit is contained in:
Kashargul
2024-10-02 21:10:31 +02:00
parent 5417c7772c
commit a2c673ab7a
1517 changed files with 12436 additions and 12347 deletions
+19 -19
View File
@@ -116,12 +116,12 @@
//Wrapper procs that handle sanity and user feedback
/atom/movable/proc/user_buckle_mob(mob/living/M, mob/user, var/forced = FALSE, var/silent = FALSE)
if(!ticker)
to_chat(user, "<span class='warning'>You can't buckle anyone in before the game starts.</span>")
to_chat(user, span_warning("You can't buckle anyone in before the game starts."))
return FALSE // Is this really needed?
if(!user.Adjacent(M) || user.restrained() || user.stat || istype(user, /mob/living/silicon/pai))
return FALSE
if(M in buckled_mobs)
to_chat(user, "<span class='warning'>\The [M] is already buckled to \the [src].</span>")
to_chat(user, span_warning("\The [M] is already buckled to \the [src]."))
return FALSE
if(!can_buckle_check(M, forced))
return FALSE
@@ -141,19 +141,19 @@
var/reveal_message = list("buckled_mob" = null, "buckled_to" = null) //VORE EDIT: This being a list and messages existing for the buckle target atom.
if(!silent)
if(M == user)
reveal_message["buckled_mob"] = "<span class='notice'>You come out of hiding and buckle yourself to [src].</span>" //VORE EDIT
reveal_message["buckled_to"] = "<span class='notice'>You come out of hiding as [M.name] buckles themselves to you.</span>" //VORE EDIT
reveal_message["buckled_mob"] = span_notice("You come out of hiding and buckle yourself to [src].") //VORE EDIT
reveal_message["buckled_to"] = span_notice("You come out of hiding as [M.name] buckles themselves to you.") //VORE EDIT
M.visible_message(\
"<span class='notice'>[M.name] buckles themselves to [src].</span>",\
"<span class='notice'>You buckle yourself to [src].</span>",\
"<span class='notice'>You hear metal clanking.</span>")
span_notice("[M.name] buckles themselves to [src]."),\
span_notice("You buckle yourself to [src]."),\
span_notice("You hear metal clanking."))
else
reveal_message["buckled_mob"] = "<span class='notice'>You are revealed as you are buckled to [src].</span>" //VORE EDIT
reveal_message["buckled_to"] = "<span class='notice'>You are revealed as [M.name] is buckled to you.</span>" //VORE EDIT
reveal_message["buckled_mob"] = span_notice("You are revealed as you are buckled to [src].") //VORE EDIT
reveal_message["buckled_to"] = span_notice("You are revealed as [M.name] is buckled to you.") //VORE EDIT
M.visible_message(\
"<span class='danger'>[M.name] is buckled to [src] by [user.name]!</span>",\
"<span class='danger'>You are buckled to [src] by [user.name]!</span>",\
"<span class='notice'>You hear metal clanking.</span>")
span_danger("[M.name] is buckled to [src] by [user.name]!"),\
span_danger("You are buckled to [src] by [user.name]!"),\
span_notice("You hear metal clanking."))
M.reveal(silent, reveal_message["buckled_mob"]) //Reveal people so they aren't buckled to chairs from behind. //VORE EDIT, list arg instead of simple message var for buckled mob
//Vore edit start
@@ -168,14 +168,14 @@
if(M)
if(M != user)
M.visible_message(\
"<span class='notice'>[M.name] was unbuckled by [user.name]!</span>",\
"<span class='notice'>You were unbuckled from [src] by [user.name].</span>",\
"<span class='notice'>You hear metal clanking.</span>")
span_notice("[M.name] was unbuckled by [user.name]!"),\
span_notice("You were unbuckled from [src] by [user.name]."),\
span_notice("You hear metal clanking."))
else
M.visible_message(\
"<span class='notice'>[M.name] unbuckled themselves!</span>",\
"<span class='notice'>You unbuckle yourself from [src].</span>",\
"<span class='notice'>You hear metal clanking.</span>")
span_notice("[M.name] unbuckled themselves!"),\
span_notice("You unbuckle yourself from [src]."),\
span_notice("You hear metal clanking."))
add_fingerprint(user)
return M
@@ -202,7 +202,7 @@
return FALSE
if(has_buckled_mobs() && buckled_mobs.len >= max_buckled_mobs) //Handles trying to buckle yourself to the chair when someone is on it
to_chat(M, "<span class='notice'>\The [src] can't buckle anymore people.</span>")
to_chat(M, span_notice("\The [src] can't buckle anymore people."))
return FALSE
return TRUE
+8 -8
View File
@@ -186,9 +186,9 @@
/obj/effect/alien/weeds/attackby(var/obj/item/W, var/mob/user)
user.setClickCooldown(user.get_attack_speed(W))
if(LAZYLEN(W.attack_verb))
visible_message("<span class='danger'>\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
visible_message(span_danger("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]"))
else
visible_message("<span class='danger'>\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
visible_message(span_danger("\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]"))
var/damage = W.force / 4.0
@@ -203,7 +203,7 @@
healthcheck()
/obj/effect/alien/weeds/attack_generic(var/mob/user, var/damage, var/attack_verb)
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
visible_message(span_danger("[user] [attack_verb] the [src]!"))
user.do_attack_animation(src)
health -= damage
healthcheck()
@@ -267,7 +267,7 @@
if(ticks >= target_strength)
for(var/mob/O in hearers(src, null))
O.show_message("<span class='alium'>[src.target] collapses under its own weight into a puddle of goop and undigested debris!</span>", 1)
O.show_message(span_alium("[src.target] collapses under its own weight into a puddle of goop and undigested debris!"), 1)
if(iswall(target)) //Gurgs : Spruced up corrosive acid
var/turf/simulated/wall/W = target
@@ -282,13 +282,13 @@
switch(target_strength - ticks)
if(6)
visible_message("<span class='alium'>[src.target] is holding up against the acid!</span>")
visible_message(span_alium("[src.target] is holding up against the acid!"))
if(4)
visible_message("<span class='alium'>[src.target]\s structure is being melted by the acid!</span>")
visible_message(span_alium("[src.target]\s structure is being melted by the acid!"))
if(2)
visible_message("<span class='alium'>[src.target] is struggling to withstand the acid!</span>")
visible_message(span_alium("[src.target] is struggling to withstand the acid!"))
if(0 to 1)
visible_message("<span class='alium'>[src.target] begins to crumble under the acid!</span>")
visible_message(span_alium("[src.target] begins to crumble under the acid!"))
spawn(rand(150, 200)) tick()
//Xenomorph Effect egg removed, replaced with Structure Egg.
+5 -5
View File
@@ -168,23 +168,23 @@
/obj/structure/foamedmetal/attack_hand(var/mob/user)
if ((HULK in user.mutations) || (prob(75 - metal * 25)))
user.visible_message("<span class='warning'>[user] smashes through the foamed metal.</span>", "<span class='notice'>You smash through the metal foam wall.</span>")
user.visible_message(span_warning("[user] smashes through the foamed metal."), span_notice("You smash through the metal foam wall."))
qdel(src)
else
to_chat(user, "<span class='notice'>You hit the metal foam but bounce off it.</span>")
to_chat(user, span_notice("You hit the metal foam but bounce off it."))
return
/obj/structure/foamedmetal/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/grab))
var/obj/item/grab/G = I
G.affecting.loc = src.loc
visible_message("<span class='warning'>[G.assailant] smashes [G.affecting] through the foamed metal wall.</span>")
visible_message(span_warning("[G.assailant] smashes [G.affecting] through the foamed metal wall."))
qdel(I)
qdel(src)
return
if(prob(I.force * 20 - metal * 25))
user.visible_message("<span class='warning'>[user] smashes through the foamed metal.</span>", "<span class='notice'>You smash through the foamed metal with \the [I].</span>")
user.visible_message(span_warning("[user] smashes through the foamed metal."), span_notice("You smash through the foamed metal with \the [I]."))
qdel(src)
else
to_chat(user, "<span class='notice'>You hit the metal foam to no effect.</span>")
to_chat(user, span_notice("You hit the metal foam to no effect."))
@@ -127,7 +127,7 @@ var/global/list/image/splatter_cache=list()
return
var/taken = rand(1,amount)
amount -= taken
to_chat(user, "<span class='notice'>You get some of \the [src] on your hands.</span>")
to_chat(user, span_notice("You get some of \the [src] on your hands."))
if (!user.blood_DNA)
user.blood_DNA = list()
user.blood_DNA |= blood_DNA.Copy()
@@ -16,7 +16,7 @@
anchored = TRUE
/obj/effect/decal/cleanable/ash/attack_hand(mob/user as mob)
to_chat(user, "<span class='notice'>[src] sifts through your fingers.</span>")
to_chat(user, span_notice("[src] sifts through your fingers."))
var/turf/simulated/floor/F = get_turf(src)
if (istype(F))
F.dirt += 4
@@ -158,6 +158,6 @@
icon_state = "confetti"
/obj/effect/decal/cleanable/confetti/attack_hand(mob/user)
to_chat(user, "<span class='notice'>You start to meticulously pick up the confetti.</span>")
to_chat(user, span_notice("You start to meticulously pick up the confetti."))
if(do_after(user, 60))
qdel(src)
@@ -35,12 +35,12 @@
//must place on a wall and user must not be inside a closet/mecha/whatever
var/turf/W = A
if (!iswall(W) || !isturf(user.loc))
to_chat(user, "<span class='warning'>You can't place this here!</span>")
to_chat(user, span_warning("You can't place this here!"))
return
var/placement_dir = get_dir(user, W)
if (!(placement_dir in cardinal))
to_chat(user, "<span class='warning'>You must stand directly in front of the wall you wish to place that on.</span>")
to_chat(user, span_warning("You must stand directly in front of the wall you wish to place that on."))
return
//just check if there is a poster on or adjacent to the wall
@@ -56,10 +56,10 @@
break
if (stuff_on_wall)
to_chat(user, "<span class='notice'>There is already a poster there!</span>")
to_chat(user, span_notice("There is already a poster there!"))
return
to_chat(user, "<span class='notice'>You start placing the poster on the wall...</span>") //Looks like it's uncluttered enough. Place the poster.
to_chat(user, span_notice("You start placing the poster on the wall...")) //Looks like it's uncluttered enough. Place the poster.
var/obj/structure/sign/poster/P = new poster_type(user.loc, placement_dir=get_dir(user, W), serial=serial_number, itemtype = src.type)
@@ -72,7 +72,7 @@
if(!P) return
if(iswall(W) && user && P.loc == user.loc) //Let's check if everything is still there
to_chat(user, "<span class='notice'>You place the poster!</span>")
to_chat(user, span_notice("You place the poster!"))
else
P.roll_and_drop(P.loc)
@@ -183,10 +183,10 @@
if(W.has_tool_quality(TOOL_WIRECUTTER))
playsound(src, W.usesound, 100, 1)
if(ruined)
to_chat(user, "<span class='notice'>You remove the remnants of the poster.</span>")
to_chat(user, span_notice("You remove the remnants of the poster."))
qdel(src)
else
to_chat(user, "<span class='notice'>You carefully remove the poster from the wall.</span>")
to_chat(user, span_notice("You carefully remove the poster from the wall."))
roll_and_drop(user.loc)
return
@@ -200,7 +200,7 @@
if(ruined || !user.Adjacent(src))
return
visible_message("<span class='warning'>[user] rips [src] in a single, decisive motion!</span>" )
visible_message(span_warning("[user] rips [src] in a single, decisive motion!") )
playsound(src, 'sound/items/poster_ripped.ogg', 100, 1)
ruined = 1
icon_state = "poster_ripped"
@@ -239,4 +239,4 @@
//Non-Random Posters
/obj/structure/sign/poster/custom
roll_type = /obj/item/contraband/poster/custom
roll_type = /obj/item/contraband/poster/custom
@@ -41,12 +41,12 @@
//must place on a wall and user must not be inside a closet/mecha/whatever
var/turf/W = A
if(!iswall(W) || !isturf(user.loc))
to_chat(user, "<span class='warning'>You can't place this here!</span>")
to_chat(user, span_warning("You can't place this here!"))
return FALSE
var/placement_dir = get_dir(user, W)
if(!(placement_dir in cardinal))
to_chat(user, "<span class='warning'>You must stand directly in front of the wall you wish to place that on.</span>")
to_chat(user, span_warning("You must stand directly in front of the wall you wish to place that on."))
return FALSE
//just check if there is a poster on or adjacent to the wall
@@ -62,15 +62,15 @@
break
if(stuff_on_wall)
to_chat(user, "<span class='notice'>There is already a poster there!</span>")
to_chat(user, span_notice("There is already a poster there!"))
return FALSE
to_chat(user, "<span class='notice'>You start placing the poster on the wall...</span>") //Looks like it's uncluttered enough. Place the poster.
to_chat(user, span_notice("You start placing the poster on the wall...")) //Looks like it's uncluttered enough. Place the poster.
var/obj/structure/sign/poster/P = new poster_type(user.loc, get_dir(user, W), src)
if(do_after(user, 17)) //Let's check if everything is still there
to_chat(user, "<span class='notice'>You place the poster!</span>")
to_chat(user, span_notice("You place the poster!"))
qdel(src)
return TRUE
@@ -168,10 +168,10 @@
if(W.has_tool_quality(TOOL_WIRECUTTER))
playsound(src, W.usesound, 100, 1)
if(ruined)
to_chat(user, "<span class='notice'>You remove the remnants of the poster.</span>")
to_chat(user, span_notice("You remove the remnants of the poster."))
qdel(src)
else
to_chat(user, "<span class='notice'>You carefully remove the poster from the wall.</span>")
to_chat(user, span_notice("You carefully remove the poster from the wall."))
roll_and_drop(get_turf(user))
return
@@ -185,7 +185,7 @@
if(ruined || !user.Adjacent(src))
return
visible_message("<span class='warning'>[user] rips [src] in a single, decisive motion!</span>" )
visible_message(span_warning("[user] rips [src] in a single, decisive motion!") )
playsound(src, 'sound/items/poster_ripped.ogg', 100, 1)
ruined = TRUE
icon_state = "poster_ripped"
+2 -2
View File
@@ -56,14 +56,14 @@
icon_state = "mummified2"
/obj/effect/decal/remains/attack_hand(mob/user as mob)
to_chat(user, "<span class='notice'>[src] sinks together into a pile of ash.</span>")
to_chat(user, span_notice("[src] sinks together into a pile of ash."))
var/turf/simulated/floor/F = get_turf(src)
if(istype(F))
new /obj/effect/decal/cleanable/ash(F)
qdel(src)
/obj/effect/decal/remains/robot/attack_hand(mob/user as mob)
to_chat(user, "<span class='notice'>[src] crumbles down into a pile of debris.</span>")
to_chat(user, span_notice("[src] crumbles down into a pile of debris."))
var/turf/simulated/floor/F = get_turf(src)
if(istype(F))
new /obj/effect/decal/cleanable/blood/gibs/robot(F)
+3 -3
View File
@@ -544,10 +544,10 @@ steam.start() -- spawns the effect
s.start()
for(var/mob/M in viewers(5, location))
to_chat(M, "<span class='warning'>The solution violently explodes.</span>")
to_chat(M, span_warning("The solution violently explodes."))
for(var/mob/M in viewers(1, location))
if (prob (50 * amount))
to_chat(M, "<span class='warning'>The explosion knocks you down.</span>")
to_chat(M, span_warning("The explosion knocks you down."))
M.Weaken(rand(1,5))
return
else
@@ -570,7 +570,7 @@ steam.start() -- spawns the effect
flash = (amount/4) * flashing_factor
for(var/mob/M in viewers(8, location))
to_chat(M, "<span class='warning'>The solution violently explodes.</span>")
to_chat(M, span_warning("The solution violently explodes."))
explosion(
location,
+1 -1
View File
@@ -18,7 +18,7 @@
/obj/effect/gibspawner/proc/Gib(atom/location, var/datum/dna/MobDNA = null)
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
to_world("<span class='warning'>Gib list length mismatch!</span>")
to_world(span_warning("Gib list length mismatch!"))
return
var/obj/effect/decal/cleanable/blood/gibs/gib = null
@@ -21,7 +21,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/poi_loader)
/obj/effect/landmark/poi_loader/proc/annihilate_bounds()
//var/deleted_atoms = 0
//admin_notice("<span class='danger'>Annihilating objects in poi loading location.</span>", R_DEBUG)
//admin_notice(span_danger("Annihilating objects in poi loading location."), R_DEBUG)
var/list/turfs_to_clean = get_turfs_to_clean()
if(turfs_to_clean.len)
for(var/x in 1 to 2) // Requires two passes to get everything.
@@ -29,7 +29,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/poi_loader)
for(var/atom/movable/AM in T)
//++deleted_atoms
qdel(AM)
//admin_notice("<span class='danger'>Annihilated [deleted_atoms] objects.</span>", R_DEBUG)
//admin_notice(span_danger("Annihilated [deleted_atoms] objects."), R_DEBUG)
/obj/effect/landmark/poi_loader/proc/load_poi()
var/turf/T = get_turf(src)
@@ -61,7 +61,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/poi_loader)
if(!template_to_use)
return
//admin_notice("<span class='danger'>Chosen Predefined PoI Map: [chosen_type.name]</span>", R_DEBUG)
//admin_notice(span_danger("Chosen Predefined PoI Map: [chosen_type.name]"), R_DEBUG)
if(remove_from_pool)
global_used_pois[poi_type] -= template_to_use
@@ -70,4 +70,4 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/poi_loader)
annihilate_bounds()
//CHECK_TICK //Don't let anything else happen for now
// Actually load it
template_to_use.load(T)
template_to_use.load(T)
@@ -241,7 +241,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/list/mobs_to_relay = in_range["mobs"]
for(var/mob/mob as anything in mobs_to_relay)
var/rendered = "<span class='message'>[text]</span>"
var/rendered = span_message("[text]")
mob.show_message(rendered)
..()
@@ -250,7 +250,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
/obj/effect/map_effect/portal/master/show_message(msg, type, alt, alt_type)
if(!counterpart)
return
var/rendered = "<span class='message'>[msg]</span>"
var/rendered = span_message("[msg]")
var/turf/T = counterpart.get_focused_turf()
var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
var/list/mobs_to_relay = in_range["mobs"]
@@ -273,7 +273,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/message = combined["formatted"]
var/name_used = M.GetVoice()
var/rendered = null
rendered = "<span class='game say'><span class='name'>[name_used]</span> [message]</span>"
rendered = span_game(span_say("[span_name(name_used)] [message]"))
mob.show_message(rendered, 2)
..()
+4 -4
View File
@@ -103,8 +103,8 @@
/obj/effect/mine/attackby(obj/item/W as obj, mob/living/user as mob)
if(W.has_tool_quality(TOOL_SCREWDRIVER))
panel_open = !panel_open
user.visible_message("<span class='warning'>[user] very carefully screws the mine's panel [panel_open ? "open" : "closed"].</span>",
"<span class='notice'>You very carefully screw the mine's panel [panel_open ? "open" : "closed"].</span>")
user.visible_message(span_warning("[user] very carefully screws the mine's panel [panel_open ? "open" : "closed"]."),
span_notice("You very carefully screw the mine's panel [panel_open ? "open" : "closed"]."))
playsound(src, W.usesound, 50, 1)
// Panel open, stay uncloaked, or uncloak if already cloaked. If you don't cloak on place, ignore it and just be normal alpha.
@@ -310,9 +310,9 @@
/obj/item/mine/attackby(obj/item/W as obj, mob/living/user as mob)
if(W.has_tool_quality(TOOL_SCREWDRIVER) && trap)
to_chat(user, "<span class='notice'>You begin removing \the [trap].</span>")
to_chat(user, span_notice("You begin removing \the [trap]."))
if(do_after(user, 10 SECONDS))
to_chat(user, "<span class='notice'>You finish disconnecting the mine's trigger.</span>")
to_chat(user, span_notice("You finish disconnecting the mine's trigger."))
trap.forceMove(get_turf(src))
trap = null
return
+2 -2
View File
@@ -68,9 +68,9 @@
// Todo: Add a version that gradually reaccumulates over time by means of alpha transparency. -Spades
/obj/effect/overlay/snow/attackby(obj/item/W as obj, mob/user as mob)
if (istype(W, /obj/item/shovel))
user.visible_message("<span class='notice'>[user] begins to shovel away \the [src].</span>")
user.visible_message(span_notice("[user] begins to shovel away \the [src]."))
if(do_after(user, 40))
to_chat(user, "<span class='notice'>You have finished shoveling!</span>")
to_chat(user, span_notice("You have finished shoveling!"))
qdel(src)
return
+10 -10
View File
@@ -24,9 +24,9 @@
user.setClickCooldown(user.get_attack_speed(W))
if(LAZYLEN(W.attack_verb))
visible_message("<span class='warning'>\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
visible_message(span_warning("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]"))
else
visible_message("<span class='warning'>\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
visible_message(span_warning("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]"))
var/damage = W.force / 4.0
@@ -44,12 +44,12 @@
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.do_attack_animation(src)
if(prob(20))
visible_message("<span class='warning'>\The [user] tries to stomp on \the [src], but misses!</span>")
visible_message(span_warning("\The [user] tries to stomp on \the [src], but misses!"))
var/list/nearby = oview(2, src)
if(length(nearby))
walk_to(src, pick(nearby), 2)
return
visible_message("<span class='warning'>\The [user] stomps \the [src] dead!</span>")
visible_message(span_warning("\The [user] stomps \the [src] dead!"))
die()
/obj/effect/spider/bullet_act(var/obj/item/projectile/Proj)
@@ -191,7 +191,7 @@
..()
/obj/effect/spider/spiderling/die()
visible_message("<span class='alert'>[src] dies!</span>")
visible_message(span_alert("[src] dies!"))
new /obj/effect/decal/cleanable/spiderling_remains(src.loc)
..()
@@ -222,7 +222,7 @@
return
if(prob(50))
src.visible_message("<span class='notice'>You hear something squeezing through the ventilation ducts.</span>",2)
src.visible_message(span_notice("You hear something squeezing through the ventilation ducts."),2)
sleep(travel_time)
if(!exit_vent || exit_vent.welded)
@@ -246,14 +246,14 @@
if(!O.owner || O.owner.stat == DEAD || amount_grown > 80)
O.implants -= src
src.loc = O.owner ? O.owner.loc : O.loc
src.visible_message("<span class='warning'>\A [src] makes its way out of [O.owner ? "[O.owner]'s [O.name]" : "\the [O]"]!</span>")
src.visible_message(span_warning("\A [src] makes its way out of [O.owner ? "[O.owner]'s [O.name]" : "\the [O]"]!"))
if(O.owner)
O.owner.apply_damage(1, BRUTE, O.organ_tag)
else if(prob(1))
O.owner.apply_damage(1, TOX, O.organ_tag)
if(world.time > last_itch + 30 SECONDS)
last_itch = world.time
to_chat(O.owner, "<span class='notice'>Your [O.name] itches...</span>")
to_chat(O.owner, span_notice("Your [O.name] itches..."))
else if(prob(1))
src.visible_message("<b>\The [src]</b> skitters.")
@@ -268,7 +268,7 @@
var/target_atom = pick(nearby)
walk_to(src, target_atom, 5)
if(prob(25))
src.visible_message("<span class='notice'>\The [src] skitters[pick(" away"," around","")].</span>")
src.visible_message(span_notice("\The [src] skitters[pick(" away"," around","")]."))
else if(amount_grown < 75 && prob(5))
//vent crawl!
for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src))
@@ -318,7 +318,7 @@
icon_state = pick("cocoon1","cocoon2","cocoon3")
/obj/effect/spider/cocoon/Destroy()
src.visible_message("<span class='warning'>\The [src] splits open.</span>")
src.visible_message(span_warning("\The [src] splits open."))
for(var/atom/movable/A in contents)
A.loc = src.loc
return ..()
+2 -2
View File
@@ -257,7 +257,7 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
/obj/effect/step_trigger/death/Trigger(var/atom/movable/A)
if(isliving(A))
to_chat(A, "<span class='danger'>[deathmessage]</span>")
to_chat(A, span_danger("[deathmessage]"))
log_and_message_admins("[A] [deathalert]")
qdel(A)
@@ -281,7 +281,7 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
/obj/effect/step_trigger/warning/Trigger(var/atom/movable/A)
if(isliving(A))
to_chat(A, "<span class='warning'>[warningmessage]</span>")
to_chat(A, span_warning("[warningmessage]"))
/obj/effect/step_trigger/warning/train_edge
warningmessage = "The wind billowing alongside the train is extremely strong here! Any movement could easily pull you down beneath the carriages, return to the train immediately!"
+30 -30
View File
@@ -236,10 +236,10 @@
if (user.hand)
temp = H.organs_by_name["l_hand"]
if(temp && !temp.is_usable())
to_chat(user, "<span class='notice'>You try to move your [temp.name], but cannot!</span>")
to_chat(user, span_notice("You try to move your [temp.name], but cannot!"))
return
if(!temp)
to_chat(user, "<span class='notice'>You try to use your hand, but realize it is no longer attached!</span>")
to_chat(user, span_notice("You try to use your hand, but realize it is no longer attached!"))
return
if(istype(src, /obj/item/holder))
var/obj/item/holder/D = src
@@ -436,12 +436,12 @@ var/list/global/slot_flags_enumeration = list(
if(slot_wear_id)
if(!H.w_uniform && (slot_w_uniform in mob_equip))
if(!disable_warning)
to_chat(H, "<span class='warning'>You need a jumpsuit before you can attach this [name].</span>")
to_chat(H, span_warning("You need a jumpsuit before you can attach this [name]."))
return 0
if(slot_l_store, slot_r_store)
if(!H.w_uniform && (slot_w_uniform in mob_equip))
if(!disable_warning)
to_chat(H, "<span class='warning'>You need a jumpsuit before you can attach this [name].</span>")
to_chat(H, span_warning("You need a jumpsuit before you can attach this [name]."))
return 0
if(slot_flags & SLOT_DENYPOCKET)
return 0
@@ -450,11 +450,11 @@ var/list/global/slot_flags_enumeration = list(
if(slot_s_store)
if(!H.wear_suit && (slot_wear_suit in mob_equip))
if(!disable_warning)
to_chat(H, "<span class='warning'>You need a suit before you can attach this [name].</span>")
to_chat(H, span_warning("You need a suit before you can attach this [name]."))
return 0
if(!H.wear_suit.allowed)
if(!disable_warning)
to_chat(usr, "<span class='warning'>You somehow have a suit with no defined allowed items for suit storage, stop that.</span>")
to_chat(usr, span_warning("You somehow have a suit with no defined allowed items for suit storage, stop that."))
return 0
if( !(istype(src, /obj/item/pda) || istype(src, /obj/item/pen) || is_type_in_list(src, H.wear_suit.allowed)) )
return 0
@@ -480,7 +480,7 @@ var/list/global/slot_flags_enumeration = list(
break
if(!allow)
if(!disable_warning)
to_chat(H, "<span class='warning'>You're not wearing anything you can attach this [name] to.</span>")
to_chat(H, span_warning("You're not wearing anything you can attach this [name] to."))
return 0
return 1
@@ -511,23 +511,23 @@ var/list/global/slot_flags_enumeration = list(
if(isanimal(usr)) //VOREStation Edit Start - Allows simple mobs with hands to use the pickup verb
var/mob/living/simple_mob/s = usr
if(!s.has_hands)
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
to_chat(usr, span_warning("You can't pick things up!"))
return
else if((!istype(usr, /mob/living/carbon)) || (istype(usr, /mob/living/carbon/brain)))//Is humanoid, and is not a brain
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
to_chat(usr, span_warning("You can't pick things up!"))
return
var/mob/living/L = usr
if( usr.stat || usr.restrained() )//Is not asleep/dead and is not restrained
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
to_chat(usr, span_warning("You can't pick things up!"))
return
if(src.anchored) //Object isn't anchored
to_chat(usr, "<span class='warning'>You can't pick that up!</span>")
to_chat(usr, span_warning("You can't pick that up!"))
return
if(L.get_active_hand()) //Hand is not full //VOREStation Edit End
to_chat(usr, "<span class='warning'>Your hand is full.</span>")
to_chat(usr, span_warning("Your hand is full."))
return
if(!istype(src.loc, /turf)) //Object is on a turf
to_chat(usr, "<span class='warning'>You can't pick that up!</span>")
to_chat(usr, span_warning("You can't pick that up!"))
return
//All checks are done, time to pick it up!
usr.UnarmedAttack(src)
@@ -562,11 +562,11 @@ var/list/global/slot_flags_enumeration = list(
for(var/obj/item/protection in list(H.head, H.wear_mask, H.glasses))
if(protection && (protection.body_parts_covered & EYES))
// you can't stab someone in the eyes wearing a mask!
to_chat(user, "<span class='warning'>You're going to need to remove the eye covering first.</span>")
to_chat(user, span_warning("You're going to need to remove the eye covering first."))
return
if(!M.has_eyes())
to_chat(user, "<span class='warning'>You cannot locate any eyes on [M]!</span>")
to_chat(user, span_warning("You cannot locate any eyes on [M]!"))
return
//this should absolutely trigger even if not aim-impaired in some way
@@ -586,7 +586,7 @@ var/list/global/slot_flags_enumeration = list(
//if((CLUMSY in user.mutations) && prob(50))
// M = user
/*
to_chat(M, "<span class='warning'>You stab yourself in the eye.</span>")
to_chat(M, span_warning("You stab yourself in the eye."))
M.sdisabilities |= BLIND
M.weakened += 4
M.adjustBruteLoss(10)
@@ -598,30 +598,30 @@ var/list/global/slot_flags_enumeration = list(
if(H != user)
for(var/mob/O in (viewers(M) - user - M))
O.show_message("<span class='danger'>[M] has been stabbed in the eye with [src] by [user].</span>", 1)
to_chat(M, "<span class='danger'>[user] stabs you in the eye with [src]!</span>")
to_chat(user, "<span class='danger'>You stab [M] in the eye with [src]!</span>")
O.show_message(span_danger("[M] has been stabbed in the eye with [src] by [user]."), 1)
to_chat(M, span_danger("[user] stabs you in the eye with [src]!"))
to_chat(user, span_danger("You stab [M] in the eye with [src]!"))
else
user.visible_message( \
"<span class='danger'>[user] has stabbed themself with [src]!</span>", \
"<span class='danger'>You stab yourself in the eyes with [src]!</span>" \
span_danger("[user] has stabbed themself with [src]!"), \
span_danger("You stab yourself in the eyes with [src]!") \
)
eyes.damage += rand(3,4)
if(eyes.damage >= eyes.min_bruised_damage)
if(M.stat != 2)
if(!(eyes.robotic >= ORGAN_ROBOT)) //robot eyes bleeding might be a bit silly
to_chat(M, "<span class='danger'>Your eyes start to bleed profusely!</span>")
to_chat(M, span_danger("Your eyes start to bleed profusely!"))
if(prob(50))
if(M.stat != 2)
to_chat(M, "<span class='warning'>You drop what you're holding and clutch at your eyes!</span>")
to_chat(M, span_warning("You drop what you're holding and clutch at your eyes!"))
M.drop_item()
M.eye_blurry += 10
M.Paralyse(1)
M.Weaken(4)
if (eyes.damage >= eyes.min_broken_damage)
if(M.stat != 2)
to_chat(M, "<span class='warning'>You go blind!</span>")
to_chat(M, span_warning("You go blind!"))
var/obj/item/organ/external/affecting = H.get_organ(BP_HEAD)
if(affecting.take_damage(7))
M:UpdateDamageIcon()
@@ -685,7 +685,7 @@ GLOBAL_LIST_EMPTY(blood_overlays_by_type)
/obj/item/proc/showoff(mob/user)
for (var/mob/M in view(user))
M.show_message("<span class='filter_notice'>[user] holds up [src]. <a HREF=?src=\ref[M];lookitem=\ref[src]>Take a closer look.</a></span>",1)
M.show_message(span_filter_notice("[user] holds up [src]. <a HREF=?src=\ref[M];lookitem=\ref[src]>Take a closer look.</a>"),1)
/mob/living/carbon/verb/showoff()
set name = "Show Held Item"
@@ -722,13 +722,13 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
var/cannotzoom
if((M.stat && !zoom) || !(istype(M,/mob/living/carbon/human)))
to_chat(M, "<span class='filter_notice'>You are unable to focus through the [devicename].</span>")
to_chat(M, span_filter_notice("You are unable to focus through the [devicename]."))
cannotzoom = 1
else if(!zoom && (global_hud.darkMask[1] in M.client.screen))
to_chat(M, "<span class='filter_notice'>Your visor gets in the way of looking through the [devicename].</span>")
to_chat(M, span_filter_notice("Your visor gets in the way of looking through the [devicename]."))
cannotzoom = 1
else if(!zoom && M.get_active_hand() != src)
to_chat(M, "<span class='filter_notice'>You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better.</span>")
to_chat(M, span_filter_notice("You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better."))
cannotzoom = 1
//We checked above if they are a human and returned already if they weren't.
@@ -759,7 +759,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
H.client.pixel_x = -viewoffset
H.client.pixel_y = 0
H.visible_message("<span class='filter_notice'>[M] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"].</span>")
H.visible_message(span_filter_notice("[M] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"]."))
if(!ignore_visor_zoom_restriction)
H.looking_elsewhere = TRUE
H.handle_vision()
@@ -777,7 +777,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
H.handle_vision()
if(!cannotzoom)
M.visible_message("<span class='filter_notice'>[zoomdevicename ? "[M] looks up from the [src.name]" : "[M] lowers the [src.name]"].</span>")
M.visible_message(span_filter_notice("[zoomdevicename ? "[M] looks up from the [src.name]" : "[M] lowers the [src.name]"]."))
return
+6 -6
View File
@@ -49,7 +49,7 @@
ghost_query_type = /datum/ghost_query/apprentice
/obj/item/antag_spawner/technomancer_apprentice/attack_self(mob/user)
to_chat(user, "<span class='notice'>Teleporter attempting to lock on to your apprentice.</span>")
to_chat(user, span_notice("Teleporter attempting to lock on to your apprentice."))
request_player()
/obj/item/antag_spawner/technomancer_apprentice/request_player()
@@ -60,7 +60,7 @@
..()
if(!used)
icon_state = "oldshieldoff"
visible_message("<span class='warning'>The teleporter failed to find the apprentice. Perhaps another attempt could be made later?</span>")
visible_message(span_warning("The teleporter failed to find the apprentice. Perhaps another attempt could be made later?"))
/obj/item/antag_spawner/technomancer_apprentice/spawn_antag(client/C, turf/T)
sparks.start()
@@ -95,7 +95,7 @@
var/drone_type = null
/obj/item/antag_spawner/syndicate_drone/attack_self(mob/user)
to_chat(user, "<span class='notice'>Teleporter attempting to lock on to an available unit.</span>")
to_chat(user, span_notice("Teleporter attempting to lock on to an available unit."))
request_player()
/obj/item/antag_spawner/syndicate_drone/request_player()
@@ -106,14 +106,14 @@
..()
if(!used)
icon_state = "oldshieldoff"
visible_message("<span class='warning'>The teleporter failed to find any available. Perhaps another attempt could be made later?</span>")
visible_message(span_warning("The teleporter failed to find any available. Perhaps another attempt could be made later?"))
/obj/item/antag_spawner/syndicate_drone/spawn_antag(client/C, turf/T)
sparks.start()
var/mob/living/silicon/robot/R = new drone_type(T)
// Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
to_chat(C, "<span class='notice'>You are a <b>Mercenary Drone</b>, activated to serve your team.</span>")
to_chat(C, span_notice("You are a <b>Mercenary Drone</b>, activated to serve your team."))
to_chat(C, "<span class='notice'><b>Be sure to examine your currently loaded lawset closely.</b> It would be wise \
to speak with your team, and learn what their plan is for today.</span>")
@@ -132,4 +132,4 @@
drone_type = /mob/living/silicon/robot/syndicate/combat_medic
/obj/item/antag_spawner/syndicate_drone/mechanist
drone_type = /mob/living/silicon/robot/syndicate/mechanist
drone_type = /mob/living/silicon/robot/syndicate/mechanist
+4 -4
View File
@@ -18,17 +18,17 @@
var/turf/loc = get_turf(user)
var/area/A = loc.loc
if (!istype(loc, /turf/simulated/floor))
to_chat(user, "<span class='warning'>APC cannot be placed on this spot.</span>")
to_chat(user, span_warning("APC cannot be placed on this spot."))
return
if (A.requires_power == 0 || istype(A, /area/space))
to_chat(user, "<span class='warning'>APC cannot be placed in this area.</span>")
to_chat(user, span_warning("APC cannot be placed in this area."))
return
if (A.get_apc())
to_chat(user, "<span class='warning'>This area already has an APC.</span>")
to_chat(user, span_warning("This area already has an APC."))
return //only one APC per area
for(var/obj/machinery/power/terminal/T in loc)
if (T.master)
to_chat(user, "<span class='warning'>There is another network terminal here.</span>")
to_chat(user, span_warning("There is another network terminal here."))
return
else
new /obj/item/stack/cable_coil(loc, 10)
+6 -6
View File
@@ -63,12 +63,12 @@
/obj/item/deskbell/proc/ring(mob/user)
if(user.a_intent == "harm")
playsound(src, 'sound/effects/deskbell_rude.ogg', 50, 1)
to_chat(user,"<span class='notice'>You hammer [src] rudely!</span>")
to_chat(user,span_notice("You hammer [src] rudely!"))
if (prob(2))
break_bell(user)
else
playsound(src, 'sound/effects/deskbell.ogg', 50, 1)
to_chat(user,"<span class='notice'>You gracefully ring [src].</span>")
to_chat(user,span_notice("You gracefully ring [src]."))
/obj/item/deskbell/proc/check_ability(mob/user)
if (ishuman(user))
@@ -77,11 +77,11 @@
if (H.hand)
temp = H.organs_by_name["l_hand"]
if(temp && !temp.is_usable())
to_chat(H,"<span class='notice'>You try to move your [temp.name], but cannot!</span>")
to_chat(H,span_notice("You try to move your [temp.name], but cannot!"))
return 0
return 1
else
to_chat(user,"<span class='notice'>You are not able to ring [src].</span>")
to_chat(user,span_notice("You are not able to ring [src]."))
return 0
/obj/item/deskbell/attackby(obj/item/W, mob/user, params)
@@ -90,7 +90,7 @@
if(W.has_tool_quality(TOOL_WRENCH) && isturf(loc))
if(do_after(5))
if(!src) return
to_chat(user, "<span class='notice'>You dissasemble the desk bell</span>")
to_chat(user, span_notice("You dissasemble the desk bell"))
new /obj/item/stack/material/steel(get_turf(src), 1)
qdel(src)
return
@@ -99,5 +99,5 @@
/obj/item/deskbell/proc/break_bell(mob/user)
to_chat(user,"<span class='notice'>The ringing abruptly stops as [src]'s ringer gets jammed inside!</span>")
to_chat(user,span_notice("The ringing abruptly stops as [src]'s ringer gets jammed inside!"))
broken = 1
+19 -19
View File
@@ -58,19 +58,19 @@
switch(href_list["action"])
if ("create_area")
if (!(get_area_type() & can_create_areas_in))
to_chat(usr, "<span class='danger'>You can't make a new area here.</span>")
to_chat(usr, span_danger("You can't make a new area here."))
interact()
return
create_area()
if ("edit_area")
if (!(get_area_type() & can_rename_areas_in))
to_chat(usr, "<span class='danger'>You can't rename this area.</span>")
to_chat(usr, span_danger("You can't rename this area."))
interact()
return
edit_area()
if ("expand_area")
if (!(get_area_type() & can_expand_areas_in))
to_chat(usr, "<span class='danger'>You can't expand this area.</span>")
to_chat(usr, span_danger("You can't expand this area."))
interact()
return
expand_area()
@@ -128,20 +128,20 @@
if(!istype(res,/list))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(usr, "<span class='warning'>The new area must be completely airtight!</span>")
to_chat(usr, span_warning("The new area must be completely airtight!"))
return
if(ROOM_ERR_TOOLARGE)
to_chat(usr, "<span class='warning'>The new area too large!</span>")
to_chat(usr, span_warning("The new area too large!"))
return
else
to_chat(usr, "<span class='warning'>Error! Please notify administration!</span>")
to_chat(usr, span_warning("Error! Please notify administration!"))
return
var/list/turf/turfs = res
var/str = sanitizeSafe(tgui_input_text(usr, "New area name:","Blueprint Editing", "", MAX_NAME_LEN), MAX_NAME_LEN)
if(!str || !length(str)) //cancel
return
if(length(str) > 50)
to_chat(usr, "<span class='warning'>Name too long.</span>")
to_chat(usr, span_warning("Name too long."))
return
var/area/A = new
A.name = str
@@ -166,13 +166,13 @@
if(!istype(res,/list))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(usr, "<span class='warning'>The new area must be completely airtight!</span>")
to_chat(usr, span_warning("The new area must be completely airtight!"))
return
if(ROOM_ERR_TOOLARGE)
to_chat(usr, "<span class='warning'>The new area too large!</span>")
to_chat(usr, span_warning("The new area too large!"))
return
else
to_chat(usr, "<span class='warning'>Error! Please notify administration!</span>")
to_chat(usr, span_warning("Error! Please notify administration!"))
return
var/list/turf/turfs = res
@@ -180,11 +180,11 @@
for(var/turf/T in A.contents)
turfs -= T // Don't add turfs already in A to A
if(turfs.len == 0)
to_chat(usr, "<span class='warning'>\The [A] already covers the entire room.</span>")
to_chat(usr, span_warning("\The [A] already covers the entire room."))
return
move_turfs_to_area(turfs, A)
to_chat(usr, "<span class='notice'>Expanded \the [A] by [turfs.len] turfs</span>")
to_chat(usr, span_notice("Expanded \the [A] by [turfs.len] turfs"))
spawn(5)
interact()
return
@@ -200,11 +200,11 @@
if(!str || !length(str) || str==prevname) //cancel
return
if(length(str) > 50)
to_chat(usr, "<span class='warning'>Text too long.</span>")
to_chat(usr, span_warning("Text too long."))
return
set_area_machinery_title(A,str,prevname)
A.name = str
to_chat(usr, "<span class='notice'>You set the area '[prevname]' title to '[str]'.</span>")
to_chat(usr, span_notice("You set the area '[prevname]' title to '[str]'."))
interact()
return
@@ -280,7 +280,7 @@
// Remove any existing
seeAreaColors_remove()
to_chat(usr, "<span class='notice'>\The [src] shows nearby areas in different colors.</span>")
to_chat(usr, span_notice("\The [src] shows nearby areas in different colors."))
var/i = 0
for(var/area/A in range(usr))
if(get_area_type(A) == AREA_SPACE)
@@ -302,13 +302,13 @@
if(!istype(res, /list))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(usr, "<span class='warning'>The new area must be completely airtight!</span>")
to_chat(usr, span_warning("The new area must be completely airtight!"))
return
if(ROOM_ERR_TOOLARGE)
to_chat(usr, "<span class='warning'>The new area too large!</span>")
to_chat(usr, span_warning("The new area too large!"))
return
else
to_chat(usr, "<span class='danger'>Error! Please notify administration!</span>")
to_chat(usr, span_danger("Error! Please notify administration!"))
return
// Okay we got a room, lets color it
seeAreaColors_remove()
@@ -316,7 +316,7 @@
for(var/turf/T in res)
usr << image(green, T, "blueprints", TURF_LAYER)
areaColor_turfs += T
to_chat(usr, "<span class='notice'>The space covered by the new area is highlighted in green.</span>")
to_chat(usr, span_notice("The space covered by the new area is highlighted in green."))
/obj/item/blueprints/verb/seeAreaColors_remove()
set src in usr
+27 -27
View File
@@ -503,11 +503,11 @@
if(!str || !length(str)) //cancel
return
if(length(str) > 50)
to_chat(creator, "<span class='warning'>Name too long.</span>")
to_chat(creator, span_warning("Name too long."))
return
for(var/area/A in world) //Check to make sure we're not making a duplicate name. Sanity.
if(A.name == str)
to_chat(creator, "<span class='warning'>An area in the world alreay has this name.</span>")
to_chat(creator, span_warning("An area in the world alreay has this name."))
return
annoy_admins = 1 //They just made a new area entirely.
newA = new area_choice
@@ -552,16 +552,16 @@
if(!istype(res,/list))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(creator, "<span class='warning'>The new area must be completely airtight!</span>")
to_chat(creator, span_warning("The new area must be completely airtight!"))
return
if(ROOM_ERR_TOOLARGE)
to_chat(creator, "<span class='warning'>The new area too large!</span>")
to_chat(creator, span_warning("The new area too large!"))
return
if(ROOM_ERR_FORBIDDEN)
to_chat(creator, "<span class='warning'>There is an area forbidden from being edited here!</span>")
to_chat(creator, span_warning("There is an area forbidden from being edited here!"))
return
else
to_chat(creator, "<span class='warning'>Error! Please notify administration!</span>")
to_chat(creator, span_warning("Error! Please notify administration!"))
return
var/list/turf/turfs = res
@@ -594,7 +594,7 @@
//They can select an area they want to turn their current area into.
var/area_choice = tgui_input_list(creator, "What area do you want to turn the area YOU ARE CURRENTLY STANDING IN to? Or do you want to make a new area?", "Area Expansion", areas)
if(isnull(area_choice)) //They pressed cancel.
to_chat(creator, "<span class='warning'>No changes made.</span>")
to_chat(creator, span_warning("No changes made."))
return
area_choice = areas[area_choice]
@@ -602,23 +602,23 @@
if(!isarea(area_choice)) //They chose "New Area"
if(!can_make_new_area && !can_override)
to_chat(creator, "<span class='warning'>Making a new area here would be meaningless. Renaming it would be a better option.</span>")
to_chat(creator, span_warning("Making a new area here would be meaningless. Renaming it would be a better option."))
return
str = tgui_input_text(creator, "New area name", "Blueprint Editing", max_length = MAX_NAME_LEN)
str = sanitize(str,MAX_NAME_LEN)
if(!str || !length(str)) //cancel
return
if(length(str) > 50)
to_chat(creator, "<span class='warning'>Name too long.</span>")
to_chat(creator, span_warning("Name too long."))
return
for(var/area/A in world) //Check to make sure we're not making a duplicate name. Sanity.
if(A.name == str)
to_chat(creator, "<span class='warning'>An area in the world alreay has this name.</span>")
to_chat(creator, span_warning("An area in the world alreay has this name."))
return
var/confirm = tgui_alert(creator, "Are you sure you want to change [oldA.name] into a new area named [str]?", "READ CAREFULLY", list("No", "Yes"))
if(confirm != "Yes")
to_chat(creator, "<span class='warning'>No changes made.</span>")
to_chat(creator, span_warning("No changes made."))
return
newA = new area_choice
@@ -627,7 +627,7 @@
else
var/confirm = tgui_alert(creator, "Are you sure you want to change [oldA.name] into [area_choice]?", "READ CAREFULLY", list("No", "Yes"))
if(confirm != "Yes")
to_chat(creator, "<span class='warning'>No changes made.</span>")
to_chat(creator, span_warning("No changes made."))
return
newA = area_choice //They selected to turn the area they're standing on into the selected area.
@@ -718,13 +718,13 @@
if(!istype(res, /list))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(usr, "<span class='warning'>The new area must be completely airtight!</span>")
to_chat(usr, span_warning("The new area must be completely airtight!"))
return
if(ROOM_ERR_TOOLARGE)
to_chat(usr, "<span class='warning'>The new area too large!</span>")
to_chat(usr, span_warning("The new area too large!"))
return
else
to_chat(usr, "<span class='danger'>Error! Please notify administration!</span>")
to_chat(usr, span_danger("Error! Please notify administration!"))
return
// Okay we got a room, lets color it
seeAreaColors_remove()
@@ -732,7 +732,7 @@
for(var/turf/T in res)
usr << image(green, T, "blueprints", TURF_LAYER)
areaColor_turfs += T
to_chat(usr, "<span class='notice'>The space covered by the new area is highlighted in green.</span>")
to_chat(usr, span_notice("The space covered by the new area is highlighted in green."))
/obj/item/areaeditor/verb/seeAreaColors()
set src in usr
@@ -742,7 +742,7 @@
// Remove any existing
seeAreaColors_remove()
to_chat(usr, "<span class='notice'>\The [src] shows nearby areas in different colors.</span>")
to_chat(usr, span_notice("\The [src] shows nearby areas in different colors."))
var/i = 0
for(var/area/A in range(usr))
if(get_area_type(A) == AREA_SPACE)
@@ -787,11 +787,11 @@
set src in usr
if(created_area)
to_chat(usr, "<span class='warning'>This paper has already been used to create an area.</span>")
to_chat(usr, span_warning("This paper has already been used to create an area."))
return
if(usr.stat || world.time < area_cooldown)
to_chat(usr, "<span class='warning'>You recently used this paper to try to create an area. Wait one minute before using it again.</span>")
to_chat(usr, span_warning("You recently used this paper to try to create an area. Wait one minute before using it again."))
return
area_cooldown = world.time + 600 //Anti spam.
@@ -867,16 +867,16 @@
if(!istype(res,/list))
switch(res)
if(1)
to_chat(creator, "<span class='warning'>The new area too large! You can only have an area that is up to 70 tiles.</span>")
to_chat(creator, span_warning("The new area too large! You can only have an area that is up to 70 tiles."))
return
if(2)
to_chat(creator, "<span class='warning'>The new area must be completely airtight and not be part of a shuttle!</span>")
to_chat(creator, span_warning("The new area must be completely airtight and not be part of a shuttle!"))
return
if(3)
to_chat(creator, "<span class='warning'>There is an area not permitted to be built in somewhere in the room!</span>")
to_chat(creator, span_warning("There is an area not permitted to be built in somewhere in the room!"))
return
else
to_chat(creator, "<span class='warning'>Error! Please notify administration!</span>")
to_chat(creator, span_warning("Error! Please notify administration!"))
return
var/list/turf/turfs = res
@@ -896,17 +896,17 @@
//They can select an area they want to turn their current area into.
str = sanitizeSafe(tgui_input_text(usr, "What would you like to name the area?", "Area Name", null, MAX_NAME_LEN), MAX_NAME_LEN)
if(isnull(str)) //They pressed cancel.
to_chat(creator, "<span class='warning'>No new area made. Cancelling.</span>")
to_chat(creator, span_warning("No new area made. Cancelling."))
return
if(!str || !length(str)) //sanity
to_chat(creator, "<span class='warning'>No new area made. Cancelling.</span>")
to_chat(creator, span_warning("No new area made. Cancelling."))
return
if(length(str) > MAX_NAME_LEN)
to_chat(creator, "<span class='warning'>Name too long.</span>")
to_chat(creator, span_warning("Name too long."))
return
for(var/area/A in world) //Check to make sure we're not making a duplicate name. Sanity.
if(A.name == str)
to_chat(creator, "<span class='warning'>An area in the world alreay has this name.</span>")
to_chat(creator, span_warning("An area in the world alreay has this name."))
return
newA = new /area
newA.setup(str)
+6 -6
View File
@@ -216,9 +216,9 @@
/obj/structure/closet/body_bag/cryobag/examine(mob/user)
. = ..()
if(Adjacent(user)) //The bag's rather thick and opaque from a distance.
. += "<span class='info'>You peer into \the [src].</span>"
. += span_info("You peer into \the [src].")
if(syringe)
. += "<span class='info'>It has a syringe added to it.</span>"
. += span_info("It has a syringe added to it.")
for(var/mob/living/L in contents)
. += L.examine(user)
@@ -233,10 +233,10 @@
else if(istype(W,/obj/item/reagent_containers/syringe))
if(syringe)
to_chat(user,"<span class='warning'>\The [src] already has an injector! Remove it first.</span>")
to_chat(user,span_warning("\The [src] already has an injector! Remove it first."))
else
var/obj/item/reagent_containers/syringe/syringe = W
to_chat(user,"<span class='info'>You insert \the [syringe] into \the [src], and it locks into place.</span>")
to_chat(user,span_info("You insert \the [syringe] into \the [src], and it locks into place."))
user.unEquip(syringe)
src.syringe = syringe
syringe.loc = null
@@ -247,10 +247,10 @@
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
if(syringe)
if(used)
to_chat(user,"<span class='warning'>The injector cannot be removed now that the stasis bag has been used!</span>")
to_chat(user,span_warning("The injector cannot be removed now that the stasis bag has been used!"))
else
syringe.forceMove(src.loc)
to_chat(user,"<span class='info'>You pry \the [syringe] out of \the [src].</span>")
to_chat(user,span_info("You pry \the [syringe] out of \the [src]."))
syringe = null
else
+2 -2
View File
@@ -84,7 +84,7 @@
if(!istype(W, /obj/item/glass_extra/straw) && !istype(W, /obj/item/reagent_containers/rollingpaper))
return ..()
user.visible_message("<span class='warning'>[user] snorts [src] with [W]!</span>")
user.visible_message(span_warning("[user] snorts [src] with [W]!"))
playsound(loc, 'sound/effects/snort.ogg', 50, 1)
if(reagents)
@@ -93,4 +93,4 @@
if(!reagents.total_volume) /// Did we use all of it?
qdel(src)
////// End powder. /////////
////// End powder. /////////
+3 -3
View File
@@ -107,7 +107,7 @@
if(uses)
uses--
if(!uses)
to_chat(user, "<span class='warning'>You used up your crayon!</span>")
to_chat(user, span_warning("You used up your crayon!"))
qdel(src)
return
@@ -119,7 +119,7 @@
if(uses)
uses -= 5
if(uses <= 0)
to_chat(user, "<span class='warning'>You ate your crayon!</span>")
to_chat(user, span_warning("You ate your crayon!"))
qdel(src)
else
..()
@@ -205,7 +205,7 @@
if(uses)
uses -= 5
if(uses <= 0)
to_chat(user, "<span class='warning'>You ate the marker!</span>")
to_chat(user, span_warning("You ate the marker!"))
qdel(src)
else
..()
@@ -25,11 +25,11 @@
if(istype(W,/obj/item/stack/nanopaste))
var/obj/item/stack/nanopaste/np = W
if((supply.get_free_space() >= efficiency) && np.use(1))
to_chat(user, "<span class='notice'>You convert some nanopaste into programmed nanites inside \the [src].</span>")
to_chat(user, span_notice("You convert some nanopaste into programmed nanites inside \the [src]."))
supply.add_reagent(id = "nifrepairnanites", amount = efficiency)
update_icon()
else if(supply.get_free_space() < efficiency)
to_chat(user, "<span class='warning'>\The [src] is too full. Empty it into a container first.</span>")
to_chat(user, span_warning("\The [src] is too full. Empty it into a container first."))
return
/obj/item/nifrepairer/update_icon()
@@ -43,15 +43,15 @@
return 0
if(!supply || !supply.total_volume)
to_chat(user, "<span class='warning'>[src] is empty. Feed it nanopaste.</span>")
to_chat(user, span_warning("[src] is empty. Feed it nanopaste."))
return 1
if(!target.reagents.get_free_space())
to_chat(user, "<span class='warning'>[target] is already full.</span>")
to_chat(user, span_warning("[target] is already full."))
return 1
var/trans = supply.trans_to(target, 15)
to_chat(user, "<span class='notice'>You transfer [trans] units of the programmed nanites to [target].</span>")
to_chat(user, span_notice("You transfer [trans] units of the programmed nanites to [target]."))
update_icon()
return 1
@@ -59,6 +59,6 @@
. = ..()
if(Adjacent(user))
if(supply.total_volume)
. += "<span class='notice'>\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing.</span>"
. += span_notice("\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing.")
else
. += "<span class='notice'>\The [src] is empty and ready to accept nanopaste.</span>"
. += span_notice("\The [src] is empty and ready to accept nanopaste.")
@@ -94,13 +94,13 @@
if(new_state != old_state)
switch(new_state)
if(PROXIMITY_OFF_CAMERANET)
to_chat(carrier, "<span class='notice'>[icon2html(src, carrier.client)] Now outside of camera network.</span>")
to_chat(carrier, span_notice("[icon2html(src, carrier.client)] Now outside of camera network."))
carrier << 'sound/machines/defib_failed.ogg'
if(PROXIMITY_NONE)
to_chat(carrier, "<span class='notice'>[icon2html(src, carrier.client)] Now within camera network, AI and cameras unfocused.</span>")
to_chat(carrier, span_notice("[icon2html(src, carrier.client)] Now within camera network, AI and cameras unfocused."))
carrier << 'sound/machines/defib_safetyOff.ogg'
if(PROXIMITY_NEAR)
to_chat(carrier, "<span class='warning'>[icon2html(src, carrier.client)] Warning: AI focus at nearby location.</span>")
to_chat(carrier, span_warning("[icon2html(src, carrier.client)] Warning: AI focus at nearby location."))
carrier << 'sound/machines/defib_SafetyOn.ogg'
if(PROXIMITY_ON_SCREEN)
to_chat(carrier, "<font size='3'><span class='danger'>[icon2html(src, carrier.client)] Alert: AI or camera focused at current location!</span></font>")
+6 -6
View File
@@ -74,12 +74,12 @@
INVOKE_ASYNC(src, PROC_REF(wipe_ai))
if("radio")
carded_ai.aiRadio.disabledAi = !carded_ai.aiRadio.disabledAi
to_chat(carded_ai, "<span class='warning'>Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!</span>")
to_chat(user, "<span class='notice'>You [carded_ai.aiRadio.disabledAi ? "disable" : "enable"] the AI's Subspace Transceiver.</span>")
to_chat(carded_ai, span_warning("Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!"))
to_chat(user, span_notice("You [carded_ai.aiRadio.disabledAi ? "disable" : "enable"] the AI's Subspace Transceiver."))
if("wireless")
carded_ai.control_disabled = !carded_ai.control_disabled
to_chat(carded_ai, "<span class='warning'>Your wireless interface has been [carded_ai.control_disabled ? "disabled" : "enabled"]!</span>")
to_chat(user, "<span class='notice'>You [carded_ai.control_disabled ? "disable" : "enable"] the AI's wireless interface.</span>")
to_chat(carded_ai, span_warning("Your wireless interface has been [carded_ai.control_disabled ? "disabled" : "enabled"]!"))
to_chat(user, span_notice("You [carded_ai.control_disabled ? "disable" : "enable"] the AI's wireless interface."))
if(carded_ai.control_disabled && carded_ai.deployed_shell)
carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.")
update_icon()
@@ -153,13 +153,13 @@
/obj/item/aicard/see_emote(mob/living/M, text)
if(carded_ai && carded_ai.client)
var/rendered = "<span class='message'>[text]</span>"
var/rendered = span_message("[text]")
carded_ai.show_message(rendered, 2)
..()
/obj/item/aicard/show_message(msg, type, alt, alt_type)
if(carded_ai && carded_ai.client)
var/rendered = "<span class='message'>[msg]</span>"
var/rendered = span_message("[msg]")
carded_ai.show_message(rendered, type)
..()
@@ -18,15 +18,15 @@
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(ishuman(M) || issilicon(M)) //Allows body swapping with humans, synths, and pAI's/borgs since they all have a mind.
if(usr == M)
to_chat(user,"<span class='warning'> A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?</span>")
to_chat(user,span_warning(" A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?"))
return
if(!M.mind) //Do they have a mind?
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] appears braindead.</span>")
to_chat(usr,span_warning("A warning pops up on the device, informing you that [M] appears braindead."))
return
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
to_chat(usr,span_danger("The target's mind is too complex to be affected!"))
return
if(ishuman(M))
@@ -36,17 +36,17 @@
return
if(M.stat == DEAD) //Are they dead?
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done.</span>")
to_chat(usr,span_warning("A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done."))
return
var/choice = tgui_alert(usr,"This will swap your mind with the target's mind. This will result in them controlling your body, and you controlling their body. Continue?","Confirmation",list("Continue","Cancel"))
if(choice == "Continue" && usr.get_active_hand() == src && usr.Adjacent(M))
usr.visible_message("<span class='warning'>[usr] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!</span>","<span class='notice'>You begin swap minds with [M]!</span>")
usr.visible_message(span_warning("[usr] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!"),span_notice("You begin swap minds with [M]!"))
if(do_after(usr,35 SECONDS,M))
if(usr.mind && M.mind && M.stat != DEAD && usr.stat != DEAD)
log_and_message_admins("[usr.ckey] used a Bodysnatcher to swap bodies with [M.ckey]")
to_chat(usr,"<span class='notice'>Your minds have been swapped! Have a nice day.</span>")
to_chat(usr,span_notice("Your minds have been swapped! Have a nice day."))
var/datum/mind/user_mind = user.mind
var/datum/mind/prey_mind = M.mind
var/target_ooc_notes = M.ooc_notes
@@ -80,8 +80,8 @@
M.slurring = 50
else
to_chat(user,"<span class='warning'> A warning pops up on the LED display on the side of the device, informing you that the target is not able to have their mind swapped with!</span>")
to_chat(user,span_warning(" A warning pops up on the LED display on the side of the device, informing you that the target is not able to have their mind swapped with!"))
/obj/item/bodysnatcher/attack_self(mob/living/user)
to_chat(user,"<span class='warning'> A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?</span>")
to_chat(user,span_warning(" A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?"))
return
@@ -33,7 +33,7 @@
if(!active_dummy)
if(istype(target,/obj/item) && !istype(target, /obj/item/disk/nuclear))
playsound(src, 'sound/weapons/flash.ogg', 100, 1, -6)
to_chat(user, "<span class='notice'>Scanned [target].</span>")
to_chat(user, span_notice("Scanned [target]."))
saved_item = target.type
saved_icon = target.icon
saved_icon_state = target.icon_state
@@ -46,7 +46,7 @@
playsound(src, 'sound/effects/pop.ogg', 100, 1, -6)
qdel(active_dummy)
active_dummy = null
to_chat(usr, "<span class='notice'>You deactivate the [src].</span>")
to_chat(usr, span_notice("You deactivate the [src]."))
var/obj/effect/overlay/T = new /obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
@@ -58,7 +58,7 @@
var/obj/effect/dummy/chameleon/C = new /obj/effect/dummy/chameleon(usr.loc)
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src)
qdel(O)
to_chat(usr, "<span class='notice'>You activate the [src].</span>")
to_chat(usr, span_notice("You activate the [src]."))
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
@@ -105,22 +105,22 @@
/obj/effect/dummy/chameleon/attackby()
for(var/mob/M in src)
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
to_chat(M, span_warning("Your chameleon-projector deactivates."))
master.disrupt()
/obj/effect/dummy/chameleon/attack_hand()
for(var/mob/M in src)
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
to_chat(M, span_warning("Your chameleon-projector deactivates."))
master.disrupt()
/obj/effect/dummy/chameleon/ex_act()
for(var/mob/M in src)
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
to_chat(M, span_warning("Your chameleon-projector deactivates."))
master.disrupt()
/obj/effect/dummy/chameleon/bullet_act()
for(var/mob/M in src)
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
to_chat(M, span_warning("Your chameleon-projector deactivates."))
..()
master.disrupt()
@@ -360,7 +360,7 @@
if("dial")
if(!get_connection_to_tcomms())
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
to_chat(usr, span_danger("Error: Cannot connect to Exonet node."))
return FALSE
var/their_address = params["dial"]
exonet.send_message(their_address, "voice")
@@ -373,7 +373,7 @@
if("message")
if(!get_connection_to_tcomms())
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
to_chat(usr, span_danger("Error: Cannot connect to Exonet node."))
return FALSE
var/their_address = params["message"]
var/text = sanitizeSafe(tgui_input_text(usr,"Enter your message.","Text Message"))
@@ -382,7 +382,7 @@
im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
log_pda("(COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]", usr)
var/obj/item/communicator/comm = exonet.get_atom_from_address(their_address)
to_chat(usr, "<span class='notice'>[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)</span>")
to_chat(usr, span_notice("[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
for(var/mob/M in player_list)
if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears))
if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
@@ -144,19 +144,19 @@ var/global/list/obj/item/communicator/all_communicators = list()
. = ..()
for(var/mob/living/voice/voice in contents)
. += "<span class='notice'>On the screen, you can see a image feed of [voice].</span>"
. += span_notice("On the screen, you can see a image feed of [voice].")
if(voice && voice.key)
switch(voice.stat)
if(CONSCIOUS)
if(!voice.client)
. += "<span class='warning'>[voice] appears to be asleep.</span>" //afk
. += span_warning("[voice] appears to be asleep.") //afk
if(UNCONSCIOUS)
. += "<span class='warning'>[voice] doesn't appear to be conscious.</span>"
. += span_warning("[voice] doesn't appear to be conscious.")
if(DEAD)
. += "<span class='deadsay'>[voice] appears to have died...</span>" //Hopefully this never has to be used.
. += span_deadsay("[voice] appears to have died...") //Hopefully this never has to be used.
else
. += "<span class='notice'>The device doesn't appear to be transmitting any data.</span>"
. += span_notice("The device doesn't appear to be transmitting any data.")
// Proc: emp_act()
// Parameters: None
@@ -221,12 +221,12 @@ var/global/list/obj/item/communicator/all_communicators = list()
if(istype(C, /obj/item/card/id))
var/obj/item/card/id/idcard = C
if(!idcard.registered_name || !idcard.assignment)
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
to_chat(user, span_notice("\The [src] rejects the ID."))
else if(!owner)
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
to_chat(user, span_notice("\The [src] rejects the ID."))
else if(owner == idcard.registered_name)
occupation = idcard.assignment
to_chat(user, "<span class='notice'>Occupation updated.</span>")
to_chat(user, span_notice("Occupation updated."))
return
@@ -302,7 +302,7 @@ var/global/list/obj/item/communicator/all_communicators = list()
/obj/item/communicator/Destroy()
for(var/mob/living/voice/voice in contents)
voice_mobs.Remove(voice)
to_chat(voice, "<span class='danger'>[icon2html(src, voice.client)] Connection timed out with remote host.</span>")
to_chat(voice, span_danger("[icon2html(src, voice.client)] Connection timed out with remote host."))
qdel(voice)
close_connection(reason = "Connection timed out")
@@ -44,7 +44,7 @@
random = random / 10
exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
if(message == "text")
to_chat(src, "<span class='notice'>[icon2html(origin_atom,src.client)] Received text message from [origin_atom]: <b>\"[text]\"</b></span>")
to_chat(src, span_notice("[icon2html(origin_atom,src.client)] Received text message from [origin_atom]: <b>\"[text]\"</b>"))
src << 'sound/machines/defib_safetyOff.ogg'
exonet_messages.Add("<b>From [origin_atom]:</b><br>[text]")
return
@@ -95,7 +95,7 @@
L = loc
if(L)
to_chat(L, "<span class='notice'>[icon2html(src,L.client)] Message from [who]: <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[candidate]'>Reply</a>)</span>")
to_chat(L, span_notice("[icon2html(src,L.client)] Message from [who]: <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[candidate]'>Reply</a>)"))
// This is the only Topic the communicators really uses
/obj/item/communicator/Topic(href, href_list)
@@ -108,7 +108,7 @@
exonet.send_message(comm.exonet.address, "text", message)
im_list += list(list("address" = exonet.address, "to_address" = comm.exonet.address, "im" = message))
log_pda("(COMM: [src]) sent \"[message]\" to [exonet.get_atom_from_address(comm.exonet.address)]", usr)
to_chat(usr, "<span class='notice'>[icon2html(src,usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[message]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)</span>")
to_chat(usr, span_notice("[icon2html(src,usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[message]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
// Verb: text_communicator()
// Parameters: None
@@ -119,7 +119,7 @@
set desc = "If there is a communicator available, send a text message to it."
if(ticker.current_state < GAME_STATE_PLAYING)
to_chat(src, "<span class='danger'>The game hasn't started yet!</span>")
to_chat(src, span_danger("The game hasn't started yet!"))
return
if (!src.stat)
@@ -130,7 +130,7 @@
for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
if(src.client.prefs.real_name == L.real_name)
to_chat(src, "<span class='danger'>Your identity is already present in the game world. Please load in a different character first.</span>")
to_chat(src, span_danger("Your identity is already present in the game world. Please load in a different character first."))
return
var/obj/machinery/exonet_node/E = get_exonet_node()
@@ -146,7 +146,7 @@
choices.Add(comm)
if(!choices.len)
to_chat(src, "<span class='danger'>There are no available communicators, sorry.</span>")
to_chat(src, span_danger("There are no available communicators, sorry."))
return
var/choice = tgui_input_list(src,"Send a text message to whom?", "Recipient Choice", choices)
@@ -157,7 +157,7 @@
if(text_message && O.exonet)
O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
to_chat(src, "<span class='notice'>You have sent '[text_message]' to [chosen_communicator].</span>")
to_chat(src, span_notice("You have sent '[text_message]' to [chosen_communicator]."))
exonet_messages.Add("<b>To [chosen_communicator]:</b><br>[text_message]")
log_pda("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", src)
for(var/mob/M in player_list)
@@ -39,15 +39,15 @@
comm.voice_requests.Remove(src)
if(user)
comm.visible_message("<span class='notice'>[icon2html(src,viewers(src))] Connecting to [src].</span>")
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Attempting to call [comm].</span>")
comm.visible_message(span_notice("[icon2html(src,viewers(src))] Connecting to [src]."))
to_chat(user, span_notice("[icon2html(src,user.client)] Attempting to call [comm]."))
sleep(10)
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Dialing internally from [station_name()], [system_name()].</span>")
to_chat(user, span_notice("[icon2html(src,user.client)] Dialing internally from [station_name()], [system_name()]."))
sleep(20) //If they don't have an exonet something is very wrong and we want a runtime.
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connection re-routed to [comm] at [comm.exonet.address].</span>")
to_chat(user, span_notice("[icon2html(src,user.client)] Connection re-routed to [comm] at [comm.exonet.address]."))
sleep(40)
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connection to [comm] at [comm.exonet.address] established.</span>")
comm.visible_message("<span class='notice'>[icon2html(src,viewers(src))] Connection to [src] at [exonet.address] established.</span>")
to_chat(user, span_notice("[icon2html(src,user.client)] Connection to [comm] at [comm.exonet.address] established."))
comm.visible_message(span_notice("[icon2html(src,viewers(src))] Connection to [src] at [exonet.address] established."))
sleep(20)
src.add_communicating(comm)
@@ -86,28 +86,28 @@
//Now for some connection fluff.
if(user)
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connecting to [candidate].</span>")
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Attempting to call [src].</span>")
to_chat(user, span_notice("[icon2html(src,user.client)] Connecting to [candidate]."))
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Attempting to call [src]."))
sleep(10)
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Dialing to [station_name()], Kara Subsystem, [system_name()].</span>")
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Dialing to [station_name()], Kara Subsystem, [system_name()]."))
sleep(20)
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connecting to [station_name()] telecommunications array.</span>")
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connecting to [station_name()] telecommunications array."))
sleep(40)
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connection to [station_name()] telecommunications array established. Redirecting signal to [src].</span>")
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connection to [station_name()] telecommunications array established. Redirecting signal to [src]."))
sleep(20)
//We're connected, no need to hide everything.
new_voice.client.screen.Remove(blackness)
qdel(blackness)
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connection to [src] established.</span>")
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connection to [src] established."))
to_chat(new_voice, "<b>To talk to the person on the other end of the call, just talk normally.</b>")
to_chat(new_voice, "<b>If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time.</b>")
to_chat(new_voice, "<b>Remember, your character does not know anything you've learned from observing!</b>")
if(new_voice.mind)
new_voice.mind.assigned_role = JOB_DISEMBODIED_VOICE
if(user)
to_chat(user, "<span class='notice'>[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator.</span>")
to_chat(user, span_notice("[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator."))
// Proc: close_connection()
// Parameters: 3 (user - the user who initiated the disconnect, target - the mob or device being disconnected, reason - string shown when disconnected)
@@ -120,8 +120,8 @@
for(var/mob/living/voice/voice in voice_mobs) //Handle ghost-callers
if(target && voice != target) //If no target is inputted, it deletes all of them.
continue
to_chat(voice, "<span class='danger'>[icon2html(src,voice.client)] [reason].</span>")
visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
to_chat(voice, span_danger("[icon2html(src,voice.client)] [reason]."))
visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
voice_mobs.Remove(voice)
qdel(voice)
update_icon()
@@ -131,8 +131,8 @@
continue
src.del_communicating(comm)
comm.del_communicating(src)
comm.visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
comm.visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
if(comm.camera && video_source == comm.camera) //We hung up on the person on video
end_video()
if(camera && comm.video_source == camera) //We hung up on them while they were watching us
@@ -174,7 +174,7 @@
L = loc
if(L)
to_chat(L, "<span class='notice'>[icon2html(src,L.client)] Communications request from [who].</span>")
to_chat(L, span_notice("[icon2html(src,L.client)] Communications request from [who]."))
// Proc: del_request()
// Parameters: 1 (candidate - the ghost or communicator to be declined)
@@ -184,7 +184,7 @@
return
if(isobserver(candidate))
to_chat(candidate, "<span class='warning'>Your communicator call request was declined.</span>")
to_chat(candidate, span_warning("Your communicator call request was declined."))
else if(istype(candidate, /obj/item/communicator))
var/obj/item/communicator/comm = candidate
comm.voice_invites -= src
@@ -197,7 +197,7 @@
us = loc
if(us)
to_chat(us, "<span class='notice'>[icon2html(src,us.client)] Declined request.</span>")
to_chat(us, span_notice("[icon2html(src,us.client)] Declined request."))
// Proc: see_emote()
// Parameters: 2 (M - the mob the emote originated from, text - the emote's contents)
@@ -250,7 +250,7 @@
var/message = combined["formatted"]
var/name_used = M.GetVoice()
var/rendered = null
rendered = "<span class='game say'>[icon2html(src,mobs_to_relay)] <span class='name'>[name_used]</span> [message]</span>"
rendered = span_game(span_say("[icon2html(src,mobs_to_relay)] [span_name(name_used)] [message]"))
mob.show_message(rendered, 2)
// Proc: show_message()
@@ -277,7 +277,7 @@
set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up."
if(ticker.current_state < GAME_STATE_PLAYING)
to_chat(src, "<span class='danger'>The game hasn't started yet!</span>")
to_chat(src, span_danger("The game hasn't started yet!"))
return
if (!src.stat)
@@ -291,12 +291,12 @@
return
if(config.antag_hud_restricted && has_enabled_antagHUD == 1)
to_chat(src, "<span class='danger'>You have used the antagHUD and cannot respawn or use communicators!</span>")
to_chat(src, span_danger("You have used the antagHUD and cannot respawn or use communicators!"))
return
for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
if(src.client.prefs.real_name == L.real_name)
to_chat(src, "<span class='danger'>Your identity is already present in the game world. Please load in a different character first.</span>")
to_chat(src, span_danger("Your identity is already present in the game world. Please load in a different character first."))
return
var/obj/machinery/exonet_node/E = get_exonet_node()
@@ -312,7 +312,7 @@
choices.Add(comm)
if(!choices.len)
to_chat(src , "<span class='danger'>There are no available communicators, sorry.</span>")
to_chat(src , span_danger("There are no available communicators, sorry."))
return
var/choice = tgui_input_list(src,"Send a voice request to whom?", "Recipient Choice", choices)
@@ -331,23 +331,23 @@
if((!user) || (!comm) || user.stat) return //KO or dead, or already in a video
if(video_source) //Already in a video
to_chat(user, "<span class='danger'>You are already connected to a video call!</span>")
to_chat(user, span_danger("You are already connected to a video call!"))
return
if(user.blinded) //User is blinded
to_chat(user, "<span class='danger'>You cannot see well enough to do that!</span>")
to_chat(user, span_danger("You cannot see well enough to do that!"))
return
if(!(src in comm.communicating) || !comm.camera) //You called someone with a broken communicator or one that's fake or yourself or something
to_chat(user, "<span class='danger'>[icon2html(src, user.client)]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning.</span>")
to_chat(user, span_danger("[icon2html(src, user.client)]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning."))
return
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] Attempting to start video over existing call.</span>")
to_chat(user, span_notice("[icon2html(src, user.client)] Attempting to start video over existing call."))
sleep(30)
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] Please wait...</span>")
to_chat(user, span_notice("[icon2html(src, user.client)] Please wait..."))
video_source = comm.camera
comm.visible_message("<span class='danger'>[icon2html(src,viewers(src))] New video connection from [comm].</span>")
comm.visible_message(span_danger("[icon2html(src,viewers(src))] New video connection from [comm]."))
update_active_camera_screen()
RegisterSignal(video_source, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen))
video_source.AddComponent(/datum/component/recursive_move)
@@ -361,7 +361,7 @@
show_static()
video_source = null
. = "<span class='danger'>[bicon(src)] [reason ? reason : "Video session ended"].</span>"
. = span_danger("[bicon(src)] [reason ? reason : "Video session ended"].")
visible_message(.)
update_icon()
+6 -6
View File
@@ -25,21 +25,21 @@
if(istype(O, /obj/machinery/power/apc))
var/obj/machinery/power/apc/A = O
if(A.emagged || A.hacker)
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
to_chat(user, span_warning("There is a software error with the device."))
else
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
to_chat(user, span_notice("The device's software appears to be fine."))
return 1
if(istype(O, /obj/machinery/door))
var/obj/machinery/door/D = O
if(D.operating == -1)
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
to_chat(user, span_warning("There is a software error with the device."))
else
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
to_chat(user, span_notice("The device's software appears to be fine."))
return 1
else if(istype(O, /obj/machinery))
var/obj/machinery/A = O
if(A.emagged)
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
to_chat(user, span_warning("There is a software error with the device."))
else
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
to_chat(user, span_notice("The device's software appears to be fine."))
return 1
+21 -21
View File
@@ -87,13 +87,13 @@
reattach_paddles(user)
else if(istype(W, /obj/item/cell))
if(bcell)
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
to_chat(user, span_notice("\The [src] already has a cell."))
else
if(!user.unEquip(W))
return
W.forceMove(src)
bcell = W
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
to_chat(user, span_notice("You install a cell in \the [src]."))
update_icon()
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
@@ -101,7 +101,7 @@
bcell.update_icon()
bcell.forceMove(get_turf(src.loc))
bcell = null
to_chat(user, "<span class='notice'>You remove the cell from \the [src].</span>")
to_chat(user, span_notice("You remove the cell from \the [src]."))
update_icon()
else
return ..()
@@ -120,7 +120,7 @@
var/mob/living/carbon/human/user = usr
if(!paddles)
to_chat(user, "<span class='warning'>The paddles are missing!</span>")
to_chat(user, span_warning("The paddles are missing!"))
return
if(paddles.loc != src)
@@ -128,10 +128,10 @@
return
if(!slot_check())
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [paddles].</span>")
to_chat(user, span_warning("You need to equip [src] before taking out [paddles]."))
else
if(!usr.put_in_hands(paddles)) //Detach the paddles into the user's hands
to_chat(user, "<span class='warning'>You need a free hand to hold the paddles!</span>")
to_chat(user, span_warning("You need a free hand to hold the paddles!"))
update_icon() //success
//checks that the base unit is in the correct slot to be used
@@ -163,7 +163,7 @@
if(ismob(paddles.loc))
var/mob/M = paddles.loc
if(M.drop_from_inventory(paddles, src))
to_chat(user, "<span class='notice'>\The [paddles] snap back into the main unit.</span>")
to_chat(user, span_notice("\The [paddles] snap back into the main unit."))
else
paddles.forceMove(src)
@@ -258,13 +258,13 @@
if(busy)
return 0
if(!check_charge(chargecost))
to_chat(user, "<span class='warning'>\The [src] doesn't have enough charge left to do that.</span>")
to_chat(user, span_warning("\The [src] doesn't have enough charge left to do that."))
return 0
if(!wielded && !isrobot(user))
to_chat(user, "<span class='warning'>You need to wield the paddles with both hands before you can use them on someone!</span>")
to_chat(user, span_warning("You need to wield the paddles with both hands before you can use them on someone!"))
return 0
if(cooldown)
to_chat(user, "<span class='warning'>\The [src] are re-energizing!</span>")
to_chat(user, span_warning("\The [src] are re-energizing!"))
return 0
return 1
@@ -390,10 +390,10 @@
ghost.notify_revive("Someone is trying to resuscitate you. Re-enter your body if you want to be revived!", 'sound/effects/genetics.ogg', source = src)
//beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
user.visible_message("<span class='warning'>\The [user] begins to place [src] on [H]'s chest.</span>", "<span class='warning'>You begin to place [src] on [H]'s chest...</span>")
user.visible_message(span_warning("\The [user] begins to place [src] on [H]'s chest."), span_warning("You begin to place [src] on [H]'s chest..."))
if(!do_after(user, 30, H))
return
user.visible_message("<b>\The [user]</b> places [src] on [H]'s chest.", "<span class='warning'>You place [src] on [H]'s chest.</span>")
user.visible_message("<b>\The [user]</b> places [src] on [H]'s chest.", span_warning("You place [src] on [H]'s chest."))
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
var/error = can_defib(H)
@@ -415,7 +415,7 @@
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
return
H.visible_message("<span class='warning'>\The [H]'s body convulses a bit.</span>")
H.visible_message(span_warning("\The [H]'s body convulses a bit."))
playsound(src, "bodyfall", 50, 1)
playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1)
set_cooldown(cooldowntime)
@@ -447,19 +447,19 @@
/obj/item/shockpaddles/proc/do_electrocute(mob/living/carbon/human/H, mob/user, var/target_zone)
var/obj/item/organ/external/affecting = H.get_organ(target_zone)
if(!affecting)
to_chat(user, "<span class='warning'>They are missing that body part!</span>")
to_chat(user, span_warning("They are missing that body part!"))
return
//no need to spend time carefully placing the paddles, we're just trying to shock them
user.visible_message("<span class='danger'>\The [user] slaps [src] onto [H]'s [affecting.name].</span>", "<span class='danger'>You overcharge [src] and slap them onto [H]'s [affecting.name].</span>")
user.visible_message(span_danger("\The [user] slaps [src] onto [H]'s [affecting.name]."), span_danger("You overcharge [src] and slap them onto [H]'s [affecting.name]."))
//Just stop at awkwardly slapping electrodes on people if the safety is enabled
if(safety)
to_chat(user, "<span class='warning'>You can't do that while the safety is enabled.</span>")
to_chat(user, span_warning("You can't do that while the safety is enabled."))
return
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
audible_message("<span class='warning'>\The [src] lets out a steadily rising hum...</span>", runemessage = "whines")
audible_message(span_warning("\The [src] lets out a steadily rising hum..."), runemessage = "whines")
if(!do_after(user, chargetime, H))
return
@@ -470,7 +470,7 @@
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
return
user.visible_message("<span class='danger'><i>\The [user] shocks [H] with \the [src]!</i></span>", "<span class='warning'>You shock [H] with \the [src]!</span>")
user.visible_message(span_danger("<i>\The [user] shocks [H] with \the [src]!</i>"), span_warning("You shock [H] with \the [src]!"))
playsound(src, 'sound/machines/defib_zap.ogg', 100, 1, -1)
playsound(src, 'sound/weapons/Egloves.ogg', 100, 1, -1)
set_cooldown(cooldowntime)
@@ -536,12 +536,12 @@
/obj/item/shockpaddles/emag_act(mob/user)
if(safety)
safety = 0
to_chat(user, "<span class='warning'>You silently disable \the [src]'s safety protocols with the cryptographic sequencer.</span>")
to_chat(user, span_warning("You silently disable \the [src]'s safety protocols with the cryptographic sequencer."))
update_icon()
return 1
else
safety = 1
to_chat(user, "<span class='notice'>You silently enable \the [src]'s safety protocols with the cryptographic sequencer.</span>")
to_chat(user, span_notice("You silently enable \the [src]'s safety protocols with the cryptographic sequencer."))
update_icon()
return 1
@@ -653,7 +653,7 @@
if(2)
new_fail = max(fail_counter, 8)
if(ismob(loc))
to_chat(loc, "<span class='warning'>\The [src] feel pleasantly warm.</span>")
to_chat(loc, span_warning("\The [src] feel pleasantly warm."))
if(new_fail && !fail_counter)
START_PROCESSING(SSobj, src)
@@ -44,7 +44,7 @@
if(!ghostjoin)
return ..()
if(jobban_isbanned(user, JOB_GHOSTROLES))
to_chat(user, "<span class='warning'>You cannot inhabit this creature because you are banned from playing ghost roles.</span>")
to_chat(user, span_warning("You cannot inhabit this creature because you are banned from playing ghost roles."))
return
if(!evaluate_ghost_join(user))
return ..()
@@ -77,11 +77,11 @@
ghostjoin = FALSE
ghostjoin_icon()
if(capture_caught)
to_chat(src, "<span class='notice'>You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them.</span><span class= warning> You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences.</span>")
to_chat(src, span_notice("You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them.</span><span class= warning> You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences."))
visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
return
if(revivedby != "no one")
to_chat(src, "<span class='notice'>Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out.</span> <span class= warning> Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences.</span>")
to_chat(src, span_notice("Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out.</span> <span class= warning> Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences."))
visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
/// Evaluate someone for being allowed to join as this mob from being a ghost
@@ -92,15 +92,15 @@
// At this point we can at least send them messages as to why they can't join, since they are a mob with a client
if(!ghostjoin)
to_chat(D, "<span class='notice'>Sorry, [src] is no longer ghost-joinable.</span>")
to_chat(D, span_notice("Sorry, [src] is no longer ghost-joinable."))
return FALSE
if(ckey)
to_chat(D, "<span class='notice'>Sorry, someone else has already inhabited [src].</span>")
to_chat(D, span_notice("Sorry, someone else has already inhabited [src]."))
return FALSE
if(capture_caught && !D.client.prefs.capture_crystal)
to_chat(D, "<span class='notice'>Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.</span>")
to_chat(D, span_notice("Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that."))
return FALSE
// Insert whatever ban checks you want here if we ever add simplemob bans
@@ -124,9 +124,9 @@
var/cooldowntime = round((cooldown - (world.time - last_used)) * 0.1)
if(Adjacent(user))
if(cooldowntime <= 0)
. += "<span class='notice'>The screen indicates that this device is ready to be used, and that it has enough energy for [charges] uses.</span>"
. += span_notice("The screen indicates that this device is ready to be used, and that it has enough energy for [charges] uses.")
else
. += "<span class='notice'>The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.</span>"
. += span_notice("The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.")
/obj/item/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user)
if(!target.Adjacent(user))
@@ -135,23 +135,23 @@
user.visible_message("[user] bonks [target] with [src].", runemessage = "bonks [target]")
return FALSE
if(!istype(target))
to_chat(user, "<span class='notice'>[target] seems to be too complicated for [src] to interface with.</span>")
to_chat(user, span_notice("[target] seems to be too complicated for [src] to interface with."))
return FALSE
if(!(world.time - last_used > cooldown))
to_chat(user, "<span class='notice'>[src] doesn't seem to be ready yet.</span>")
to_chat(user, span_notice("[src] doesn't seem to be ready yet."))
return FALSE
if(!charges)
to_chat(user, "<span class='notice'>[src] doesn't seem to be active anymore.</span>")
to_chat(user, span_notice("[src] doesn't seem to be active anymore."))
return FALSE
if(!target.ic_revivable)
to_chat(user, "<span class='notice'>[src] doesn't seem to interface with [target].</span>")
to_chat(user, span_notice("[src] doesn't seem to interface with [target]."))
return FALSE
if(target.stat != DEAD)
if(!advanced)
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
to_chat(user, span_notice("[src] doesn't seem to work on that."))
return FALSE
if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
to_chat(user, span_notice("[src] doesn't seem to work on that."))
return FALSE
if(!target.mind)
user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]")
@@ -170,7 +170,7 @@
update_icon()
return FALSE
else
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
to_chat(user, span_notice("[src] doesn't seem to work on that."))
return FALSE
return TRUE
+4 -4
View File
@@ -17,17 +17,17 @@
var/T = user.loc
if(!beacon_active)
if(!isturf(T))
to_chat(user,"<span class='warning'>You cannot activate the beacon when you are not on a turf!</span>")
to_chat(user,span_warning("You cannot activate the beacon when you are not on a turf!"))
return
else if(isnonsolidturf(T))
to_chat(user,"<span class='warning'>You cannot activate the beacon when you are not on sufficiently solid ground!</span>")
to_chat(user,span_warning("You cannot activate the beacon when you are not on sufficiently solid ground!"))
return
else
var/answer = tgui_alert(user, "Would you like to activate this personal emergency beacon?","\The [src]", list("Yes", "No"))
if(answer != "Yes")
return
else if(do_after(user, (3 SECONDS))) //short delay, so they can still abort if they want to
user.visible_message("<span class='warning'>[user] activates \the [src]!</span>","<span class='warning'>You activate \the [src], spiking it into the ground!</span>")
user.visible_message(span_warning("[user] activates \the [src]!"),span_warning("You activate \the [src], spiking it into the ground!"))
beacon_active = TRUE
icon_state = "e_beacon_active"
user.drop_item()
@@ -48,7 +48,7 @@
/obj/item/emergency_beacon/attack_hand(mob/user)
if(beacon_active)
to_chat(user,"<span class='warning'>The beacon is already active and cannot be moved!</span>")
to_chat(user,span_warning("The beacon is already active and cannot be moved!"))
return
. = ..()
+13 -13
View File
@@ -40,13 +40,13 @@
/obj/item/flash/attackby(var/obj/item/W, var/mob/user)
if(W.has_tool_quality(TOOL_SCREWDRIVER) && broken)
if(repairing)
to_chat(user, "<span class='notice'>\The [src] is already being repaired!</span>")
to_chat(user, span_notice("\The [src] is already being repaired!"))
return
user.visible_message("<b>\The [user]</b> starts trying to repair \the [src]'s bulb.")
repairing = TRUE
if(do_after(user, (40 SECONDS + rand(0, 20 SECONDS)) * W.toolspeed) && can_repair)
if(prob(30))
user.visible_message("<span class='notice'>\The [user] successfully repairs \the [src]!</span>")
user.visible_message(span_notice("\The [user] successfully repairs \the [src]!"))
broken = FALSE
update_icon()
playsound(src, W.usesound, 50, 1)
@@ -87,7 +87,7 @@
/obj/item/flash/proc/clown_check(var/mob/user)
if(user && (CLUMSY in user.mutations) && prob(50))
to_chat(user, "<span class='warning'>\The [src] slips out of your hand.</span>")
to_chat(user, span_warning("\The [src] slips out of your hand."))
user.drop_item()
return 0
return 1
@@ -128,7 +128,7 @@
if(prob( max(0, times_used - safe_flashes) * 2 + (times_used >= safe_flashes)) && can_break) //if you use it 10 times in a minute it has a 30% chance to break.
broken = TRUE
if(user)
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
to_chat(user, span_warning("The bulb has burnt out!"))
update_icon()
return FALSE
else
@@ -138,7 +138,7 @@
else if(!charge_only) //can only use it 10 times a minute, unless it runs purely on charge.
if(user)
update_icon()
to_chat(user, "<span class='warning'><i>click</i></span>")
to_chat(user, span_warning("<i>click</i>"))
playsound(src, 'sound/weapons/empty.ogg', 80, 1)
return FALSE
else if(battery && battery.checked_use(charge_cost + (round(charge_cost / 4) * max(0, times_used - max_flashes)))) // Using over your maximum flashes starts taking more charge per added flash.
@@ -157,7 +157,7 @@
if(!clown_check(user)) return
if(broken)
to_chat(user, "<span class='warning'>\The [src] is broken.</span>")
to_chat(user, span_warning("\The [src] is broken."))
return
flash_recharge()
@@ -226,14 +226,14 @@
flick("flash2", src)
if(!issilicon(M))
user.visible_message("<span class='disarm'>[user] blinds [M] with the flash!</span>")
user.visible_message(span_disarm("[user] blinds [M] with the flash!"))
else
user.visible_message("<span class='notice'>[user] overloads [M]'s sensors with the flash!</span>")
user.visible_message(span_notice("[user] overloads [M]'s sensors with the flash!"))
M.Weaken(rand(5,10))
else
user.visible_message("<span class='notice'>[user] fails to blind [M] with the flash!</span>")
user.visible_message(span_notice("[user] fails to blind [M] with the flash!"))
return
@@ -246,7 +246,7 @@
user.setClickCooldown(user.get_attack_speed(src))
if(broken)
user.show_message("<span class='warning'>The [src.name] is broken</span>", 2)
user.show_message(span_warning("The [src.name] is broken"), 2)
return
flash_recharge()
@@ -289,7 +289,7 @@
//C.Weaken(10)
C.flash_eyes()
for(var/mob/M in viewers(C, null))
M.show_message("<span class='disarm'>[C] is blinded by the flash!</span>")
M.show_message(span_disarm("[C] is blinded by the flash!"))
..()
/obj/item/flash/synthetic
@@ -305,14 +305,14 @@
..()
if(!broken)
broken = 1
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
to_chat(user, span_warning("The bulb has burnt out!"))
update_icon()
/obj/item/flash/synthetic/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
..()
if(!broken)
broken = 1
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
to_chat(user, span_warning("The bulb has burnt out!"))
update_icon()
/obj/item/flash/robot
+21 -21
View File
@@ -56,7 +56,7 @@
if(power_usage)
if(cell.use(power_usage) != power_usage) // we weren't able to use our full power_usage amount!
visible_message("<span class='warning'>\The [src] flickers before going dull.</span>")
visible_message(span_warning("\The [src] flickers before going dull."))
playsound(src, 'sound/effects/sparks3.ogg', 10, 1, -3) //Small cue that your light went dull in your pocket. //VOREStation Edit
on = 0
update_brightness()
@@ -119,7 +119,7 @@
if(istype(H))
for(var/obj/item/clothing/C in list(H.head,H.wear_mask,H.glasses))
if(istype(C) && (C.body_parts_covered & EYES))
to_chat(user, "<span class='warning'>You're going to need to remove [C.name] first.</span>")
to_chat(user, span_warning("You're going to need to remove [C.name] first."))
return
var/obj/item/organ/vision
@@ -127,34 +127,34 @@
vision = H.internal_organs_by_name[H.species.vision_organ]
if(!vision)
user.visible_message("<b>\The [user]</b> directs [src] at [M]'s face.", \
"<span class='notice'>You direct [src] at [M]'s face.</span>")
to_chat(user, "<span class='warning'>You can't find any [H.species.vision_organ ? H.species.vision_organ : "eyes"] on [H]!</span>")
span_notice("You direct [src] at [M]'s face."))
to_chat(user, span_warning("You can't find any [H.species.vision_organ ? H.species.vision_organ : "eyes"] on [H]!"))
user.setClickCooldown(user.get_attack_speed(src))
return
user.visible_message("<b>\The [user]</b> directs [src] to [M]'s eyes.", \
"<span class='notice'>You direct [src] to [M]'s eyes.</span>")
span_notice("You direct [src] to [M]'s eyes."))
if(H != user) //can't look into your own eyes buster
if(M.stat == DEAD || M.blinded) //mob is dead or fully blind
to_chat(user, "<span class='warning'>\The [M]'s pupils do not react to the light!</span>")
to_chat(user, span_warning("\The [M]'s pupils do not react to the light!"))
return
if(XRAY in M.mutations)
to_chat(user, "<span class='notice'>\The [M] pupils give an eerie glow!</span>")
to_chat(user, span_notice("\The [M] pupils give an eerie glow!"))
if(vision.is_bruised())
to_chat(user, "<span class='warning'>There's visible damage to [M]'s [vision.name]!</span>")
to_chat(user, span_warning("There's visible damage to [M]'s [vision.name]!"))
else if(M.eye_blurry)
to_chat(user, "<span class='notice'>\The [M]'s pupils react slower than normally.</span>")
to_chat(user, span_notice("\The [M]'s pupils react slower than normally."))
if(M.getBrainLoss() > 15)
to_chat(user, "<span class='notice'>There's visible lag between left and right pupils' reactions.</span>")
to_chat(user, span_notice("There's visible lag between left and right pupils' reactions."))
var/list/pinpoint = list("oxycodone"=1,"tramadol"=5)
var/list/dilating = list("bliss"=5,"ambrosia_extract"=5,"mindbreaker"=1)
if(M.reagents.has_any_reagent(pinpoint) || H.ingested.has_any_reagent(pinpoint))
to_chat(user, "<span class='notice'>\The [M]'s pupils are already pinpoint and cannot narrow any more.</span>")
to_chat(user, span_notice("\The [M]'s pupils are already pinpoint and cannot narrow any more."))
else if(M.reagents.has_any_reagent(dilating) || H.ingested.has_any_reagent(dilating))
to_chat(user, "<span class='notice'>\The [M]'s pupils narrow slightly, but are still very dilated.</span>")
to_chat(user, span_notice("\The [M]'s pupils narrow slightly, but are still very dilated."))
else
to_chat(user, "<span class='notice'>\The [M]'s pupils narrow.</span>")
to_chat(user, span_notice("\The [M]'s pupils narrow."))
user.setClickCooldown(user.get_attack_speed(src)) //can be used offensively
M.flash_eyes()
@@ -167,7 +167,7 @@
cell.update_icon()
user.put_in_hands(cell)
cell = null
to_chat(user, "<span class='notice'>You remove the cell from the [src].</span>")
to_chat(user, span_notice("You remove the cell from the [src]."))
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
on = 0
update_brightness()
@@ -216,13 +216,13 @@
user.drop_item()
W.loc = src
cell = W
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
to_chat(user, span_notice("You install a cell in \the [src]."))
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
update_brightness()
else
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
to_chat(user, span_notice("\The [src] already has a cell."))
else
to_chat(user, "<span class='notice'>\The [src] cannot use that type of cell.</span>")
to_chat(user, span_notice("\The [src] cannot use that type of cell."))
else
..()
@@ -387,7 +387,7 @@
// Usual checks
if(!fuel)
to_chat(user, "<span class='notice'>It's out of fuel.</span>")
to_chat(user, span_notice("It's out of fuel."))
return
if(on)
return
@@ -395,7 +395,7 @@
. = ..()
// All good, turn it on.
if(.)
user.visible_message("<span class='notice'>[user] activates the flare.</span>", "<span class='notice'>You pull the cord on the flare, activating it!</span>")
user.visible_message(span_notice("[user] activates the flare."), span_notice("You pull the cord on the flare, activating it!"))
src.force = on_damage
src.damtype = "fire"
START_PROCESSING(SSobj, src)
@@ -444,14 +444,14 @@
/obj/item/flashlight/glowstick/attack_self(mob/user)
if(!fuel)
to_chat(user, "<span class='notice'>The glowstick has already been turned on.</span>")
to_chat(user, span_notice("The glowstick has already been turned on."))
return
if(on)
return
. = ..()
if(.)
user.visible_message("<span class='notice'>[user] cracks and shakes \the [name].</span>", "<span class='notice'>You crack and shake \the [src], turning it on!</span>")
user.visible_message(span_notice("[user] cracks and shakes \the [name]."), span_notice("You crack and shake \the [src], turning it on!"))
START_PROCESSING(SSobj, src)
/obj/item/flashlight/glowstick/red
@@ -49,11 +49,11 @@
var/turf/simulated/floor/F = A
if(!istype(F))
to_chat(user, "<span class='warning'>\The [src] can only be used on station flooring.</span>")
to_chat(user, span_warning("\The [src] can only be used on station flooring."))
return
if(!F.flooring || !F.flooring.can_paint || F.broken || F.burnt)
to_chat(user, "<span class='warning'>\The [src] cannot paint broken or missing tiles.</span>")
to_chat(user, span_warning("\The [src] cannot paint broken or missing tiles."))
return
var/list/decal_data = decals[decal]
@@ -67,11 +67,11 @@
config_error = 1
if(config_error)
to_chat(user, "<span class='warning'>\The [src] flashes an error light. You might need to reconfigure it.</span>")
to_chat(user, span_warning("\The [src] flashes an error light. You might need to reconfigure it."))
return
if(F.decals && F.decals.len > 5 && painting_decal != /obj/effect/floor_decal/reset)
to_chat(user, "<span class='warning'>\The [F] has been painted too much; you need to clear it off.</span>")
to_chat(user, span_warning("\The [F] has been painted too much; you need to clear it off."))
return
var/painting_dir = 0
@@ -130,7 +130,7 @@
var/new_colour = input(usr, "Choose a colour.", name, paint_colour) as color|null
if(new_colour && new_colour != paint_colour)
paint_colour = new_colour
to_chat(usr, "<span class='notice'>You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>.</span>")
to_chat(usr, span_notice("You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>."))
/obj/item/floor_painter/verb/choose_decal()
set name = "Choose Decal"
@@ -144,7 +144,7 @@
var/new_decal = tgui_input_list(usr, "Select a decal:", "Decal Choice", decals)
if(new_decal && !isnull(decals[new_decal]))
decal = new_decal
to_chat(usr, "<span class='notice'>You set \the [src] decal to '[decal]'.</span>")
to_chat(usr, span_notice("You set \the [src] decal to '[decal]'."))
/obj/item/floor_painter/verb/choose_direction()
set name = "Choose Direction"
@@ -158,4 +158,4 @@
var/new_dir = tgui_input_list(usr, "Select a direction:", "Direction Choice", paint_dirs)
if(new_dir && !isnull(paint_dirs[new_dir]))
paint_dir = new_dir
to_chat(usr, "<span class='notice'>You set \the [src] direction to '[paint_dir]'.</span>")
to_chat(usr, span_notice("You set \the [src] direction to '[paint_dir]'."))
+3 -3
View File
@@ -35,7 +35,7 @@
/obj/item/geiger/examine(mob/user)
. = ..()
get_radiation()
. += "<span class='warning'>[scanning ? "Ambient" : "Stored"] radiation level: [radiation_count ? radiation_count : "0"]Bq.</span>"
. += span_warning("[scanning ? "Ambient" : "Stored"] radiation level: [radiation_count ? radiation_count : "0"]Bq.")
/obj/item/geiger/rad_act(amount)
if(!amount || !scanning)
@@ -66,7 +66,7 @@
STOP_PROCESSING(SSobj, src)
update_icon()
update_sound()
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src].</span>")
to_chat(user, span_notice("[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src]."))
/obj/item/geiger/update_icon()
if(!scanning)
@@ -121,7 +121,7 @@
scanning = !scanning
update_icon()
update_sound()
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src].</span>")
to_chat(user, span_notice("[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src]."))
/obj/item/geiger/wall/update_icon()
if(!scanning)
+13 -13
View File
@@ -52,23 +52,23 @@
if(istype(A, /obj/machinery/door/airlock))
var/obj/machinery/door/airlock/D = A
if(!D.arePowerSystemsOn())
to_chat(user, "<span class='warning'>No response from remote, check door power.</span>")
to_chat(user, span_warning("No response from remote, check door power."))
else if(D.locked == TRUE && full_override == FALSE)
to_chat(user, "<span class='warning'>Unable to override door bolts!</span>")
to_chat(user, span_warning("Unable to override door bolts!"))
else if(D.locked == TRUE && full_override == TRUE && D.arePowerSystemsOn())
to_chat(user, "<span class='notice'>Door bolts overridden.</span>")
to_chat(user, span_notice("Door bolts overridden."))
D.unlock()
else if(D.density == TRUE && D.locked == FALSE)
to_chat(user, "<span class='notice'>Overriding access. Door opening.</span>")
to_chat(user, span_notice("Overriding access. Door opening."))
D.open()
else if(D.density == FALSE && D.locked == FALSE)
to_chat(user, "<span class='notice'>Overriding access. Door closing.</span>")
to_chat(user, span_notice("Overriding access. Door closing."))
D.close()
return 1
/obj/item/multitool/hacktool/proc/attempt_hack(var/mob/user, var/atom/target)
if(is_hacking)
to_chat(user, "<span class='warning'>You are already hacking!</span>")
to_chat(user, span_warning("You are already hacking!"))
return 0
if(!is_type_in_list(target, supported_types))
to_chat(user, "[icon2html(src, user.client)] <span class='warning'>Unable to hack this target, invalid target type.</span>")
@@ -77,9 +77,9 @@
if(istype(target, /obj/structure/closet/crate/secure))
var/obj/structure/closet/crate/secure/A = target
if(A.locked)
to_chat(user, "<span class='notice'>Overriding access. Stand by.</span>")
to_chat(user, span_notice("Overriding access. Stand by."))
if(do_after(user, (((5 SECONDS + rand(0, 5 SECONDS) + rand(0, 5 SECONDS))*hackspeed))))
to_chat(user, "<span class='notice'>Override successful!</span>")
to_chat(user, span_notice("Override successful!"))
A.locked = FALSE
A.update_icon()
playsound(A, 'sound/machines/click.ogg', 15, 1, -3)
@@ -89,9 +89,9 @@
if(istype(target, /obj/structure/closet/secure_closet))
var/obj/structure/closet/secure_closet/A = target
if(A.locked)
to_chat(user, "<span class='notice'>Overriding access. Stand by.</span>")
to_chat(user, span_notice("Overriding access. Stand by."))
if(do_after(user, (((5 SECONDS + rand(0, 5 SECONDS) + rand(0, 5 SECONDS))*hackspeed))))
to_chat(user, "<span class='notice'>Override successful!</span>")
to_chat(user, span_notice("Override successful!"))
A.locked = FALSE
A.update_icon()
playsound(A, 'sound/machines/click.ogg', 15, 1, -3)
@@ -108,7 +108,7 @@
if(found)
known_targets.Swap(1, found) // Move the last hacked item first
return 1
to_chat(user, "<span class='notice'>You begin hacking \the [D]...</span>")
to_chat(user, span_notice("You begin hacking \the [D]..."))
is_hacking = 1
// On average hackin takes ~15 seconds. Fairly small random span to discourage people from simply aborting and trying again
// Reduced hack duration to compensate for the reduced functionality, multiplied by door sec level
@@ -116,10 +116,10 @@
is_hacking = 0
if(hack_result && in_hack_mode)
to_chat(user, "<span class='notice'>Your hacking attempt was succesful!</span>")
to_chat(user, span_notice("Your hacking attempt was succesful!"))
user.playsound_local(get_turf(src), 'sound/instruments/piano/An6.ogg', 50)
else
to_chat(user, "<span class='warning'>Your hacking attempt failed!</span>")
to_chat(user, span_warning("Your hacking attempt failed!"))
return 0
known_targets.Insert(1, D) // Insert the newly hacked target first,
@@ -18,7 +18,7 @@
if(in_range(user, src) || istype(user, /mob/observer/dead))
show_content(user) //Opens a browse window, not chatbox related
else
. += "<span class='notice'>You have to go closer if you want to read it.</span>"
. += span_notice("You have to go closer if you want to read it.")
//hit yourself with it
/obj/item/holowarrant/attack_self(mob/living/user as mob)
@@ -28,7 +28,7 @@
for(var/datum/data/record/warrant/W in data_core.warrants)
warrants += W.fields["namewarrant"]
if(warrants.len == 0)
to_chat(user,"<span class='notice'>There are no warrants available</span>")
to_chat(user,span_notice("There are no warrants available"))
return
var/temp
temp = tgui_input_list(user, "Which warrant would you like to load?", "Warrant Selection", warrants)
@@ -44,17 +44,17 @@
var/choice = tgui_alert(user, "Would you like to authorize this warrant?","Warrant authorization",list("Yes","No"))
if(choice == "Yes")
active.fields["auth"] = "[I.registered_name] - [I.assignment ? I.assignment : "(Unknown)"]"
user.visible_message("<span class='notice'>You swipe \the [I] through the [src].</span>", \
"<span class='notice'>[user] swipes \the [I] through the [src].</span>")
user.visible_message(span_notice("You swipe \the [I] through the [src]."), \
span_notice("[user] swipes \the [I] through the [src]."))
return 1
to_chat(user, "<span class='warning'>You don't have the access to do this!</span>") // VOREStation edit
to_chat(user, span_warning("You don't have the access to do this!")) // VOREStation edit
return 1
..()
//hit other people with it
/obj/item/holowarrant/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
user.visible_message("<span class='notice'>You show the warrant to [M].</span>", \
"<span class='notice'>[user] holds up a warrant projector and shows the contents to [M].</span>")
user.visible_message(span_notice("You show the warrant to [M]."), \
span_notice("[user] holds up a warrant projector and shows the contents to [M]."))
M.examinate(src)
/obj/item/holowarrant/update_icon()
+25 -25
View File
@@ -50,13 +50,13 @@
user.drop_item()
W.loc = src
diode = W
to_chat(user, "<span class='notice'>You install a [diode.name] in [src].</span>")
to_chat(user, span_notice("You install a [diode.name] in [src]."))
else
to_chat(user, "<span class='notice'>[src] already has a diode.</span>")
to_chat(user, span_notice("[src] already has a diode."))
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
if(diode)
to_chat(user, "<span class='notice'>You remove the [diode.name] from the [src].</span>")
to_chat(user, span_notice("You remove the [diode.name] from the [src]."))
diode.loc = get_turf(src.loc)
diode = null
return
@@ -76,17 +76,17 @@
if(!(world.time - last_used_time >= cooldown))
return
if (!diode)
to_chat(user, "<span class='notice'>You point [src] at [target], but nothing happens!</span>")
to_chat(user, span_notice("You point [src] at [target], but nothing happens!"))
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
add_fingerprint(user)
//nothing happens if the battery is drained
if(recharge_locked)
to_chat(user, "<span class='notice'>You point [src] at [target], but it's still charging.</span>")
to_chat(user, span_notice("You point [src] at [target], but it's still charging."))
return
var/outmsg
@@ -110,38 +110,38 @@
var/mob/living/carbon/human/H = C
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
if(!E)
outmsg = "<span class='notice'>You shine [src] at [C], but they don't seem to have eyes.</span>"
outmsg = span_notice("You shine [src] at [C], but they don't seem to have eyes.")
return
outmsg = "<span class='notice'>You shine [src] into [C]'s eyes.</span>"
outmsg = span_notice("You shine [src] into [C]'s eyes.")
switch(severity)
if(0)
//rank 1 diode with basic eye protection (like sunglasses), or rank 2 with industrial protection (like welding goggles)
to_chat(C, "<span class='info'>A small, bright dot appears in your vision.</span>")
to_chat(C, span_info("A small, bright dot appears in your vision."))
if(1)
//rank 1 with no protection, rank 2 with basic protection, or rank 3 with industrial protection
to_chat(C, "<span class='notice'>Something bright flashes in the corner of your vision.</span>")
to_chat(C, span_notice("Something bright flashes in the corner of your vision."))
if(2)
//rank 1 or 2 with no protection, rank 2 or 3 with basic protection, or rank 3 with industrial protection
//alternatively, rank 1 with minor vulnerability (like night vision goggles)
flick("flash", C.flash_eyes())
to_chat(C, "<span class='danger'>A bright light shines across your eyes!</span>")
to_chat(C, span_danger("A bright light shines across your eyes!"))
if(3)
//rank 1 with minor vulnerability, rank 2 or 3 with no protection, or rank 3 with basic protection
if(prob(3 * diode.rating))
C.Weaken(1)
flick("flash", C.flash_eyes())
E.damage += 1
to_chat(C, "<span class='danger'>A bright light briefly blinds you!</span>")
to_chat(C, span_danger("A bright light briefly blinds you!"))
if(4)
//rank 3 with no protection, or rank 2 with minor vulnerability
if(prob(5 * diode.rating))
C.Weaken(1)
flick("e_flash", C.flash_eyes())
E.damage += 2
to_chat(C, "<span class='danger'>A blinding light burns your eyes!</span>")
to_chat(C, span_danger("A blinding light burns your eyes!"))
else
outmsg = "<span class='notice'>You shine the [src] at [C], but miss their eyes.</span>"
outmsg = span_notice("You shine the [src] at [C], but miss their eyes.")
//robots and AI
else if(issilicon(target))
@@ -151,34 +151,34 @@
flick("flash", S.flash_eyes(affect_silicon = TRUE))
if (prob(3 * diode.rating))
S.Weaken(1)
to_chat(S, "<span class='warning'>Your sensors were blinded by a laser!</span>")
outmsg = "<span class='notice'>You blind [S] by shining [src] at their sensors.</span>"
to_chat(S, span_warning("Your sensors were blinded by a laser!"))
outmsg = span_notice("You blind [S] by shining [src] at their sensors.")
add_attack_logs(user,S,"Tried disabling using [src]")
else
outmsg = "<span class='notice'>You shine the [src] at [S], but miss their sensors.</span>"
outmsg = span_notice("You shine the [src] at [S], but miss their sensors.")
//cameras
else if(istype(target, /obj/machinery/camera))
var/obj/machinery/camera/C = target
if(prob(effectchance * diode.rating))
C.emp_act(4 - diode.rating)
outmsg = "<span class='notice'>You shine the [src] into the lens of [C].</span>"
outmsg = span_notice("You shine the [src] into the lens of [C].")
add_attack_logs(user,C.name,"Tried disabling using [src]")
else
outmsg = "<span class='info'>You missed the lens of [C] with [src].</span>"
outmsg = span_info("You missed the lens of [C] with [src].")
//cats!
for(var/mob/living/simple_mob/animal/passive/cat/C in viewers(1,targloc))
if (!(C.stat || C.buckled))
if(prob(50) && !(C.client))
C.visible_message("<span class='warning'>[C] pounces on the light!</span>", "<span class='warning'>You pounce on the light!</span>")
C.visible_message(span_warning("[C] pounces on the light!"), span_warning("You pounce on the light!"))
step_towards(C, targloc)
C.lay_down()
spawn(10)
C.lay_down()
else
C.set_dir(get_dir(C,targloc))
C.visible_message("<span class='notice'>[C] watches the light.</span>", "<span class='notice'>Your attention is drawn to the mysterious glowing dot.</span>")
C.visible_message(span_notice("[C] watches the light."), span_notice("Your attention is drawn to the mysterious glowing dot."))
//laser pointer image
@@ -193,9 +193,9 @@
I.pixel_y = target.pixel_y + rand(-5,5)
if(outmsg)
user.visible_message("<span class='info'>[user] points [src] at [target].</span>", outmsg)
user.visible_message(span_info("[user] points [src] at [target]."), outmsg)
else
user.visible_message("<span class='info'>[user] points [src] at [target].</span>", "<span class='info'>You point [src] at [target].</span>")
user.visible_message(span_info("[user] points [src] at [target]."), span_info("You point [src] at [target]."))
last_used_time = world.time
energy -= 1
@@ -204,7 +204,7 @@
recharging = 1
START_PROCESSING(SSobj, src)
if(energy <= 0)
to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>")
to_chat(user, span_warning("You've overused the battery of [src], now it needs time to recharge!"))
recharge_locked = 1
flick_overlay(I, showto, cooldown)
@@ -218,4 +218,4 @@
energy = max_energy
recharging = 0
recharge_locked = 0
..()
..()
@@ -67,14 +67,14 @@
if(istype(W, /obj/item/stack/material) && W.get_material_name() == "glass" || istype(W, /obj/item/stack/material/cyborg/glass))
var/obj/item/stack/G = W
if(uses >= max_uses)
to_chat(user, "<span class='warning'>[src.name] is full.</span>")
to_chat(user, span_warning("[src.name] is full."))
return
else if(G.use(1))
add_uses(16) //Autolathe converts 1 sheet into 16 lights.
to_chat(user, "<span class='notice'>You insert a piece of glass into \the [src.name]. You have [uses] light\s remaining.</span>")
to_chat(user, span_notice("You insert a piece of glass into \the [src.name]. You have [uses] light\s remaining."))
return
else
to_chat(user, "<span class='warning'>You need one sheet of glass to replace lights.</span>")
to_chat(user, span_warning("You need one sheet of glass to replace lights."))
if(istype(W, /obj/item/light))
var/new_bulbs = 0
@@ -117,14 +117,14 @@
qdel(L)
if(!found_lightbulbs)
to_chat(user, "<span class='warning'>\The [S] contains no bulbs.</span>")
to_chat(user, span_warning("\The [S] contains no bulbs."))
return
if(!replaced_something && src.uses == max_uses)
to_chat(user, "<span class='warning'>\The [src] is full!</span>")
to_chat(user, span_warning("\The [src] is full!"))
return
to_chat(user, "<span class='notice'>You fill \the [src] with lights from \the [S].</span>")
to_chat(user, span_notice("You fill \the [src] with lights from \the [S]."))
/obj/item/lightreplacer/attack_self(mob/user)
/* // This would probably be a bit OP. If you want it though, uncomment the code.
@@ -175,12 +175,12 @@
if(target.status != LIGHT_OK)
if(CanUse(U))
if(!Use(U)) return
to_chat(U, "<span class='notice'>You replace the [target.get_fitting_name()] with the [src].</span>")
to_chat(U, span_notice("You replace the [target.get_fitting_name()] with the [src]."))
if(target.status != LIGHT_EMPTY)
var/new_bulbs = AddShards(1)
if(new_bulbs != 0)
to_chat(U, "<span class='notice'>\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses.</span>")
to_chat(U, span_notice("\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses."))
playsound(src, 'sound/machines/ding.ogg', 50, 1)
target.status = LIGHT_EMPTY
target.installed_light = null //Remove the light!
@@ -81,7 +81,7 @@
if(istype(A,ctype))
non_closet = 1
if(non_closet)
to_chat(user, "<span class='warning'>\The [src] can only be used on closets.</span>")
to_chat(user, span_warning("\The [src] can only be used on closets."))
return
var/config_error
@@ -89,7 +89,7 @@
if(istype(A,/obj/structure/closet/secure_closet))
var/obj/structure/closet/secure_closet/F = A
if(F.broken)
to_chat(user, "<span class='warning'>\The [src] cannot paint broken closets.</span>")
to_chat(user, span_warning("\The [src] cannot paint broken closets."))
return
var/list/colour_data = colours_secure[colour_secure]
@@ -114,7 +114,7 @@
F.update_icon()
if(config_error)
to_chat(user, "<span class='warning'>\The [src] flashes an error light. You might need to reconfigure it.</span>")
to_chat(user, span_warning("\The [src] flashes an error light. You might need to reconfigure it."))
return
/obj/item/closet_painter/attack_self(var/mob/user)
@@ -140,7 +140,7 @@
var/new_colour = tgui_input_list(usr, "Select a color:", "Color Selection", colours)
if(new_colour && !isnull(colours[new_colour]))
colour = new_colour
to_chat(usr, "<span class='notice'>You set \the [src] regular closet colour to '[colour]'.</span>")
to_chat(usr, span_notice("You set \the [src] regular closet colour to '[colour]'."))
/obj/item/closet_painter/verb/choose_colour_secure()
set name = "Choose Secure Colour"
@@ -154,4 +154,4 @@
var/new_colour_secure = tgui_input_list(usr, "Select a color:", "Color Selection", colours_secure)
if(new_colour_secure && !isnull(colours_secure[new_colour_secure]))
colour_secure = new_colour_secure
to_chat(usr, "<span class='notice'>You set \the [src] secure closet colour to '[colour_secure]'.</span>")
to_chat(usr, span_notice("You set \the [src] secure closet colour to '[colour_secure]'."))
+9 -9
View File
@@ -13,15 +13,15 @@
/obj/item/megaphone/proc/can_broadcast(var/mob/living/user)
if(user.client)
if(user.client.prefs.muted & MUTE_IC)
to_chat(user, "<span class='warning'>You cannot speak in IC (muted).</span>")
to_chat(user, span_warning("You cannot speak in IC (muted)."))
return FALSE
if(!(ishuman(user) || user.isSynthetic()))
to_chat(user, "<span class='warning'>You don't know how to use this!</span>")
to_chat(user, span_warning("You don't know how to use this!"))
return FALSE
if(user.silent)
return FALSE
if(spamcheck > world.time)
to_chat(user, "<span class='warning'>[src] needs to recharge!</span>")
to_chat(user, span_warning("[src] needs to recharge!"))
return FALSE
if(loc != user)
return FALSE
@@ -36,7 +36,7 @@
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[insult]\"</FONT>", runemessage = insult)
insults--
else
to_chat(user, "<span class='warning'>*BZZZZzzzzzt*</span>")
to_chat(user, span_warning("*BZZZZzzzzzt*"))
else
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[message]\"</FONT>", runemessage = message)
@@ -54,7 +54,7 @@
/obj/item/megaphone/emag_act(var/remaining_charges, var/mob/user)
if(!emagged)
to_chat(user, "<span class='warning'>You overload [src]'s voice synthesizer.</span>")
to_chat(user, span_warning("You overload [src]'s voice synthesizer."))
emagged = TRUE
insults = rand(1, 3)//to prevent caps spam.
return TRUE
@@ -82,13 +82,13 @@
if(!("comic sans ms" in font_options))
font_options = list("comic sans ms")
broadcast_font = "comic sans ms"
to_chat(user, "<span class='notice'>\The [src] emits a <font face='comic sans ms' color='#ff69b4'>silly</font> sound.</span>")
to_chat(user, span_notice("\The [src] emits a <font face='comic sans ms' color='#ff69b4'>silly</font> sound."))
if(!("#ff69b4" in color_options))
color_options = list("#ff69b4")
broadcast_color = "#ff69b4"
if(insults <= 0)
insults = rand(1,3)
to_chat(user, "<span class='warning'>You re-scramble \the [src]'s voice synthesizer.</span>")
to_chat(user, span_warning("You re-scramble \the [src]'s voice synthesizer."))
return 1
/obj/item/megaphone/super/verb/turn_volume_dial()
@@ -152,12 +152,12 @@
M.make_jittery(50)
insults--
else
user.audible_message("<span class='critical'>*BZZZZzzzzzt*</span>")
user.audible_message(span_critical("*BZZZZzzzzzt*"))
if(prob(40) && insults <= 0)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, get_turf(user))
s.start()
user.visible_message("<span class='warning'>\The [src] sparks violently!</span>")
user.visible_message(span_warning("\The [src] sparks violently!"))
spawn(30)
explosion(get_turf(src), -1, -1, 1, 3, adminlog = 1)
qdel(src)
+5 -5
View File
@@ -23,7 +23,7 @@
return //it shouldn't be null, okay?
if(!parts)
to_chat(user, "<span class='warning'>This kit has no parts for this modification left.</span>")
to_chat(user, span_warning("This kit has no parts for this modification left."))
user.drop_from_inventory(src)
qdel(src)
return
@@ -35,22 +35,22 @@
var/obj/item/clothing/I = O
if (!istype(I) || !allowed)
to_chat(user, "<span class='notice'>[src] is unable to modify that.</span>")
to_chat(user, span_notice("[src] is unable to modify that."))
return
var/excluding = ("exclude" in I.species_restricted)
var/in_list = (target_species in I.species_restricted)
if (excluding ^ in_list)
to_chat(user, "<span class='notice'>[I] is already modified.</span>")
to_chat(user, span_notice("[I] is already modified."))
return
if(!isturf(O.loc))
to_chat(user, "<span class='warning'>[O] must be safely placed on the ground for modification.</span>")
to_chat(user, span_warning("[O] must be safely placed on the ground for modification."))
return
playsound(src, O.usesound, 100, 1)
user.visible_message("<b>\The [user]</b> opens \the [src] and modifies \the [O].","<span class='notice'>You open \the [src] and modify \the [O].</span>")
user.visible_message("<b>\The [user]</b> opens \the [src] and modifies \the [O].",span_notice("You open \the [src] and modify \the [O]."))
I.refit_for_species(target_species)
+3 -3
View File
@@ -36,7 +36,7 @@
var/choice = tgui_alert(usr, "What do you want to do with \the [src]?", "Multitool Menu", list("Switch Mode", "Clear Buffers", "Cancel"))
switch(choice)
if("Clear Buffers")
to_chat(user,"<span class='notice'>You clear \the [src]'s memory.</span>")
to_chat(user,span_notice("You clear \the [src]'s memory."))
buffer = null
connecting = null
connectable = null
@@ -47,7 +47,7 @@
if("Switch Mode")
mode_switch(user)
else
to_chat(user,"<span class='notice'>You lower \the [src].</span>")
to_chat(user,span_notice("You lower \the [src]."))
return
update_icon()
@@ -61,7 +61,7 @@
mode_index += 1
toolmode = modes[mode_index]
to_chat(user,"<span class='notice'>\The [src] is now set to [toolmode].</span>")
to_chat(user,span_notice("\The [src] is now set to [toolmode]."))
accepting_refs = (toolmode == MULTITOOL_MODE_INTCIRCUITS)
+9 -9
View File
@@ -59,21 +59,21 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
if(pai != null) //Have a person in them already?
return ..()
if(is_damage_critical())
to_chat(usr, "<span class='warning'>That card is too damaged to activate!</span>")
to_chat(usr, span_warning("That card is too damaged to activate!"))
return
var/time_till_respawn = user.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!"))
else 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
if(jobban_isbanned(usr, JOB_PAI))
to_chat(usr,"<span class='warning'>You cannot join a pAI card when you are banned from playing as a pAI.</span>")
to_chat(usr,span_warning("You cannot join a pAI card when you are banned from playing as a pAI."))
return
for(var/ourkey in paikeys)
if(ourkey == user.ckey)
to_chat(usr, "<span class='warning'>You can't just rejoin any old pAI card!!! Your card still exists.</span>")
to_chat(usr, span_warning("You can't just rejoin any old pAI card!!! Your card still exists."))
return
var/choice = tgui_alert(user, "You sure you want to inhabit this PAI, or submit yourself to being recruited?", "Confirmation", list("Inhabit", "Recruit", "Cancel"))
@@ -136,7 +136,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
/obj/item/paicard/proc/access_screen(mob/user)
if(is_damage_critical())
to_chat(user, "<span class='warning'>WARNING: CRITICAL HARDWARE FAILURE, SERVICE DEVICE IMMEDIATELY</span>")
to_chat(user, span_warning("WARNING: CRITICAL HARDWARE FAILURE, SERVICE DEVICE IMMEDIATELY"))
return
if (!in_range(src, user))
return
@@ -430,7 +430,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
if(pai)
return
if(last_notify == 0 || (5 MINUTES <= world.time - last_notify))
audible_message("<span class='notice'>\The [src] flashes a message across its screen, \"Additional personalities available for download.\"</span>", hearing_distance = world.view, runemessage = "bleeps!")
audible_message(span_notice("\The [src] flashes a message across its screen, \"Additional personalities available for download.\""), hearing_distance = world.view, runemessage = "bleeps!")
last_notify = world.time
/obj/item/paicard/emp_act(severity)
@@ -445,13 +445,13 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
/obj/item/paicard/see_emote(mob/living/M, text)
if(pai && pai.client && !pai.canmove)
var/rendered = "<span class='message'>[text]</span>"
var/rendered = span_message("[text]")
pai.show_message(rendered, 2)
..()
/obj/item/paicard/show_message(msg, type, alt, alt_type)
if(pai && pai.client)
var/rendered = "<span class='message'>[msg]</span>"
var/rendered = span_message("[msg]")
pai.show_message(rendered, type)
..()
@@ -166,9 +166,9 @@
reattach_gun(user)
else if(istype(W, /obj/item/cell))
if(bcell)
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
to_chat(user, span_notice("\The [src] already has a cell."))
else if(!istype(W, /obj/item/cell/device/weapon)) //Weapon cells only!
to_chat(user, "<span class='notice'>This cell will not fit in the device.</span>")
to_chat(user, span_notice("This cell will not fit in the device."))
else
if(!user.unEquip(W))
return
@@ -176,7 +176,7 @@
bcell = W
if(active_weapon)
active_weapon.power_supply = bcell
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
to_chat(user, span_notice("You install a cell in \the [src]."))
update_icon()
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
@@ -193,7 +193,7 @@
if(active_weapon)
reattach_gun() //Put the gun back if it's out. No shooting if we don't have a cell!
active_weapon.power_supply = null //No power cell anymore!
to_chat(user, "<span class='notice'>You remove the cell from \the [src], destroying the battery.</span>")
to_chat(user, span_notice("You remove the cell from \the [src], destroying the battery."))
update_icon()
return
else
@@ -205,7 +205,7 @@
if(active_weapon)
reattach_gun() //Put the gun back if it's out. No shooting if we don't have a cell!
active_weapon.power_supply = null //No power cell anymore!
to_chat(user, "<span class='notice'>You remove the cell from \the [src].</span>")
to_chat(user, span_notice("You remove the cell from \the [src]."))
update_icon()
else if(istype(W,/obj/item/multitool))
var/new_color = input(usr, "Choose a color to set the shield to!", "", effect_color) as color|null
@@ -243,22 +243,22 @@
user.last_special = world.time + 10 //No spamming!
if(!bcell || !bcell.check_charge(generator_hit_cost) || !bcell.check_charge(generator_active_cost))
to_chat(user, "<span class='warning'>You require a charged cell to do this!</span>")
to_chat(user, span_warning("You require a charged cell to do this!"))
return
if(!slot_check())
to_chat(user, "<span class='warning'>You need to equip [src] before starting the shield up!</span>")
to_chat(user, span_warning("You need to equip [src] before starting the shield up!"))
return
else
if(shield_active)
shield_active = !shield_active //Deactivate the shield!
to_chat(user, "<span class='warning'>You deactive the shield!</span>")
to_chat(user, span_warning("You deactive the shield!"))
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
STOP_PROCESSING(SSobj, src)
playsound(src, 'sound/weapons/saberoff.ogg', 50, 1) //Shield turning off! PLACEHOLDER
else
shield_active = !shield_active
to_chat(user, "<span class='warning'>You activate the shield!</span>")
to_chat(user, span_warning("You activate the shield!"))
user.remove_modifiers_of_type(/datum/modifier/shield_projection) //Just to make sure they aren't using two at once!
user.add_modifier(modifier_type)
user.update_modifier_visuals() //Forces coloration to WORK.
@@ -277,11 +277,11 @@
user.last_special = world.time + 10 //No spamming!
if(!active_weapon)
to_chat(user, "<span class='warning'>The gun is missing!</span>")
to_chat(user, span_warning("The gun is missing!"))
return
if(!bcell)
to_chat(user, "<span class='warning'>The gun requires a power supply!</span>")
to_chat(user, span_warning("The gun requires a power supply!"))
return
if(active_weapon.loc != src)
@@ -289,17 +289,17 @@
return
if(!slot_check())
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [active_weapon].</span>")
to_chat(user, span_warning("You need to equip [src] before taking out [active_weapon]."))
else
if(!usr.put_in_hands(active_weapon)) //Detach the gun into the user's hands
to_chat(user, "<span class='warning'>You need a free hand to hold the gun!</span>")
to_chat(user, span_warning("You need a free hand to hold the gun!"))
update_icon() //success
/obj/item/personal_shield_generator/process()
if(!bcell) //They removed the battery midway.
if(istype(loc, /mob/living/carbon/human)) //We on someone? Tell them it turned off.
var/mob/living/carbon/human/user = loc
to_chat(user, "<span class='warning'>The shield deactivates! An error message pops up on screen: 'Cell missing. Cell replacement required.'</span>")
to_chat(user, span_warning("The shield deactivates! An error message pops up on screen: 'Cell missing. Cell replacement required.'"))
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
shield_active = 0
STOP_PROCESSING(SSobj, src)
@@ -311,7 +311,7 @@
if(bcell.rigged) //They turned it back on after it was rigged to go boom.
if(istype(loc, /mob/living/carbon/human)) //Deactivate the shield, first. You're not getting reduced damage...
var/mob/living/carbon/human/user = loc
to_chat(user, "<span class='warning'>The shield deactivates, an error message popping up on screen: 'Cell Reactor Critically damaged. Cell replacement required.'</span>")
to_chat(user, span_warning("The shield deactivates, an error message popping up on screen: 'Cell Reactor Critically damaged. Cell replacement required.'"))
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
if(active_weapon) //Retract the gun. There's about to be no cell anymore.
@@ -332,7 +332,7 @@
shield_active = 0
if(istype(loc, /mob/living/carbon/human)) //We on someone? Tell them it turned off.
var/mob/living/carbon/human/user = loc
to_chat(user, "<span class='warning'>The shield deactivates, an error message popping up on screen: 'Cell out of charge.'</span>")
to_chat(user, span_warning("The shield deactivates, an error message popping up on screen: 'Cell out of charge.'"))
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
STOP_PROCESSING(SSobj, src)
update_icon()
@@ -369,7 +369,7 @@
if(ismob(active_weapon.loc))
var/mob/M = active_weapon.loc
if(M.drop_from_inventory(active_weapon, src))
to_chat(user, "<span class='notice'>\The [active_weapon] snaps back into the main unit.</span>")
to_chat(user, span_notice("\The [active_weapon] snaps back into the main unit."))
else
active_weapon.forceMove(src)
@@ -421,13 +421,13 @@
if(busy)
return 0
if(!check_charge(charge_cost))
to_chat(user, "<span class='warning'>\The [src] doesn't have enough charge left to do that.</span>")
to_chat(user, span_warning("\The [src] doesn't have enough charge left to do that."))
return 0
if(!wielded && !isrobot(user))
to_chat(user, "<span class='warning'>You need to wield the gun with both hands before you can use it on someone!</span>")
to_chat(user, span_warning("You need to wield the gun with both hands before you can use it on someone!"))
return 0
if(cooldown)
to_chat(user, "<span class='warning'>\The [src] are re-energizing!</span>")
to_chat(user, span_warning("\The [src] are re-energizing!"))
return 0
return 1
@@ -509,11 +509,11 @@
/obj/item/personal_shield_generator/belt/mining/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/borg/upgrade/shield_upgrade))
if(modifier_type == /datum/modifier/shield_projection/mining/strong)
to_chat(user, "<span class='warning'>This shield generator is already upgraded!</span>")
to_chat(user, span_warning("This shield generator is already upgraded!"))
return
modifier_type = /datum/modifier/shield_projection/mining/strong
upgraded = 1
to_chat(user, "<span class='notice'>You upgrade the [src] with the [W]!</span>")
to_chat(user, span_notice("You upgrade the [src] with the [W]!"))
user.drop_from_inventory(W)
qdel(W)
else
@@ -602,4 +602,4 @@
/obj/item/cell/device/shield_generator/parry //The cell for the 'parry' shield gen.
maxcharge = 100
charge_amount = 100
charge_delay = 20 //Starts charging two seconds after it's discharged.
charge_delay = 20 //Starts charging two seconds after it's discharged.
+4 -4
View File
@@ -41,7 +41,7 @@
else
anchored = TRUE
mode = 1
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
src.visible_message(span_notice("[user] attaches [src] to the cable!"))
playsound(src, I.usesound, 50, 1)
return
else
@@ -53,7 +53,7 @@
STOP_PROCESSING_POWER_OBJECT(src)
anchored = FALSE
mode = 0
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
src.visible_message(span_notice("[user] detaches [src] from the cable!"))
set_light(0)
playsound(src, I.usesound, 50, 1)
icon_state = "powersink0"
@@ -70,14 +70,14 @@
if(0)
..()
if(1)
src.visible_message("<span class='notice'>[user] activates [src]!</span>")
src.visible_message(span_notice("[user] activates [src]!"))
mode = 2
icon_state = "powersink1"
START_PROCESSING(SSobj, src)
datum_flags &= ~DF_ISPROCESSING // Have to reset this flag so that PROCESSING_POWER_OBJECT can re-add it. It fails if the flag is already present. - Ater
START_PROCESSING_POWER_OBJECT(src)
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
src.visible_message(span_notice("[user] deactivates [src]!"))
mode = 1
set_light(0)
icon_state = "powersink0"
@@ -37,7 +37,7 @@ GLOBAL_LIST_BOILERPLATE(all_beacons, /obj/item/radio/beacon)
/obj/item/radio/beacon/syndicate/attack_self(mob/user as mob)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
to_chat(user, span_notice("Locked In"))
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
qdel(src)
@@ -17,7 +17,7 @@
/obj/item/radio/electropack/attack_hand(mob/living/user as mob)
if(src == user.back)
to_chat(user, "<span class='notice'>You need help taking this off!</span>")
to_chat(user, span_notice("You need help taking this off!"))
return
..()
@@ -25,7 +25,7 @@
..()
if(istype(W, /obj/item/clothing/head/helmet))
if(!b_stat)
to_chat(user, "<span class='notice'>[src] is not ready to be attached!</span>")
to_chat(user, span_notice("[src] is not ready to be attached!"))
return
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
A.icon = 'icons/obj/assemblies.dmi'
@@ -95,7 +95,7 @@
sleep(50)
if(M)
M.moved_recently = 0
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
to_chat(M, span_danger("You feel a sharp shock!"))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, M)
s.start()
@@ -139,7 +139,7 @@
playsound(src, W.usesound, 50, 1)
update_icon()
else if(wiresexposed && W.has_tool_quality(TOOL_WIRECUTTER))
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
user.visible_message(span_warning("[user] has cut the wires inside \the [src]!"), "You have cut the wires inside \the [src].")
playsound(src, W.usesound, 50, 1)
new/obj/item/stack/cable_coil(get_turf(src), 5)
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
@@ -200,15 +200,15 @@
//VOREStation Add Start
/obj/item/radio/intercom/AICtrlClick(var/mob/user)
ToggleBroadcast()
to_chat(user, "<span class='notice'>\The [src]'s microphone is now <b>[broadcasting ? "enabled" : "disabled"]</b>.</span>")
to_chat(user, span_notice("\The [src]'s microphone is now <b>[broadcasting ? "enabled" : "disabled"]</b>."))
/obj/item/radio/intercom/AIAltClick(var/mob/user)
if(frequency == AI_FREQ)
set_frequency(initial(frequency))
to_chat(user, "<span class='notice'>\The [src]'s frequency is now set to [span_green("<b>Default</b>")].</span>")
to_chat(user, span_notice("\The [src]'s frequency is now set to [span_green("<b>Default</b>")]."))
else
set_frequency(AI_FREQ)
to_chat(user, "<span class='notice'>\The [src]'s frequency is now set to [span_pink("<b>AI Private</b>")].</span>")
to_chat(user, span_notice("\The [src]'s frequency is now set to [span_pink("<b>AI Private</b>")]."))
//VOREStation Add End
/obj/item/radio/intercom/locked
var/locked_frequency
@@ -47,7 +47,7 @@ var/global/list/active_radio_jammers = list()
/obj/item/radio_jammer/proc/turn_off(mob/user)
if(user)
to_chat(user,"<span class='warning'>\The [src] deactivates.</span>")
to_chat(user,span_warning("\The [src] deactivates."))
STOP_PROCESSING(SSobj, src)
active_radio_jammers -= src
on = FALSE
@@ -55,7 +55,7 @@ var/global/list/active_radio_jammers = list()
/obj/item/radio_jammer/proc/turn_on(mob/user)
if(user)
to_chat(user,"<span class='notice'>\The [src] is now active.</span>")
to_chat(user,span_notice("\The [src] is now active."))
START_PROCESSING(SSobj, src)
active_radio_jammers += src
on = TRUE
@@ -74,7 +74,7 @@ var/global/list/active_radio_jammers = list()
/obj/item/radio_jammer/attack_hand(mob/user)
if(user.get_inactive_hand() == src && power_source)
to_chat(user,"<span class='notice'>You eject \the [power_source] from \the [src].</span>")
to_chat(user,span_notice("You eject \the [power_source] from \the [src]."))
user.put_in_hands(power_source)
power_source = null
turn_off()
@@ -88,7 +88,7 @@ var/global/list/active_radio_jammers = list()
if(power_source)
turn_on(user)
else
to_chat(user,"<span class='warning'>\The [src] has no power source!</span>")
to_chat(user,span_warning("\The [src] has no power source!"))
/obj/item/radio_jammer/attackby(obj/W, mob/user)
if(istype(W,/obj/item/cell/device/weapon) && !power_source)
@@ -97,7 +97,7 @@ var/global/list/active_radio_jammers = list()
user.unEquip(power_source)
power_source.forceMove(src)
update_icon()
to_chat(user,"<span class='notice'>You insert \the [power_source] into \the [src].</span>")
to_chat(user,span_notice("You insert \the [power_source] into \the [src]."))
/obj/item/radio_jammer/update_icon()
if(on)
+13 -13
View File
@@ -277,10 +277,10 @@ var/global/list/default_medbay_channels = list(
subspace_transmission = !subspace_transmission
if(!subspace_transmission)
channels = list()
to_chat(usr, "<span class='notice'>Subspace Transmission is disabled</span>")
to_chat(usr, span_notice("Subspace Transmission is disabled"))
else
recalculateChannels()
to_chat(usr, "<span class='notice'>Subspace Transmission is enabled</span>")
to_chat(usr, span_notice("Subspace Transmission is enabled"))
. = TRUE
if("toggleLoudspeaker")
if(!subspace_switchable)
@@ -288,9 +288,9 @@ var/global/list/default_medbay_channels = list(
loudspeaker = !loudspeaker
if(loudspeaker)
to_chat(usr, "<span class='notice'>Loadspeaker enabled.</span>")
to_chat(usr, span_notice("Loadspeaker enabled."))
else
to_chat(usr, "<span class='notice'>Loadspeaker disabled.</span>")
to_chat(usr, span_notice("Loadspeaker disabled."))
. = TRUE
if(. && iscarbon(usr))
@@ -472,14 +472,14 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
if(bluespace_radio)
//Nothing to transmit to
if(!bs_tx_weakref)
to_chat(loc, "<span class='warning'>\The [src] buzzes to inform you of the lack of a functioning connection.</span>")
to_chat(loc, span_warning("\The [src] buzzes to inform you of the lack of a functioning connection."))
return FALSE
var/obj/machinery/telecomms/tx_to = bs_tx_weakref.resolve()
//Was linked, now destroyed or something
if(!tx_to)
bs_tx_weakref = null
to_chat(loc, "<span class='warning'>\The [src] buzzes to inform you of the lack of a functioning connection.</span>")
to_chat(loc, span_warning("\The [src] buzzes to inform you of the lack of a functioning connection."))
return FALSE
//Transmitted in the blind. If we get a message back, cool. If not, oh well.
@@ -496,7 +496,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
distance = 99
else
distance = jamming["distance"]
to_chat(M, "<span class='danger'>[icon2html(src, M.client)] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static.</span>")
to_chat(M, span_danger("[icon2html(src, M.client)] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static."))
return FALSE
// First, we want to generate a new radio signal
@@ -515,7 +515,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
return TRUE //Huzzah, sent via subspace
else if(adhoc_fallback) //Less huzzah, we have to fallback
to_chat(loc, "<span class='warning'>\The [src] pings as it falls back to local radio transmission.</span>")
to_chat(loc, span_warning("\The [src] pings as it falls back to local radio transmission."))
subspace_transmission = FALSE
else //Oh well
@@ -543,7 +543,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
if(signal.data["done"] && (pos_z in signal.data["level"]))
if(adhoc_fallback)
to_chat(loc, "<span class='notice'>\The [src] pings as it reestablishes subspace communications.</span>")
to_chat(loc, span_notice("\The [src] pings as it reestablishes subspace communications."))
subspace_transmission = TRUE
// we're done here.
return TRUE
@@ -607,9 +607,9 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
if((in_range(src, user) || loc == user))
if(b_stat)
. += "<span class='notice'>\The [src] can be attached and modified!</span>"
. += span_notice("\The [src] can be attached and modified!")
else
. += "<span class='notice'>\The [src] can not be modified or attached!</span>"
. += span_notice("\The [src] can not be modified or attached!")
/obj/item/radio/attackby(obj/item/W as obj, mob/user as mob)
..()
@@ -619,9 +619,9 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
b_stat = !( b_stat )
if(!istype(src, /obj/item/radio/beacon))
if (b_stat)
user.show_message("<span class='notice'>\The [src] can now be attached and modified!</span>")
user.show_message(span_notice("\The [src] can now be attached and modified!"))
else
user.show_message("<span class='notice'>\The [src] can no longer be modified or attached!</span>")
user.show_message(span_notice("\The [src] can no longer be modified or attached!"))
updateDialog()
//Foreach goto(83)
add_fingerprint(user)
@@ -54,7 +54,7 @@
var/mob/living/carbon/human/user = usr
if(!handset)
to_chat(user, "<span class='warning'>The handset is missing!</span>")
to_chat(user, span_warning("The handset is missing!"))
return
if(handset.loc != src)
@@ -62,10 +62,10 @@
return
if(!slot_check())
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [handset].</span>")
to_chat(user, span_warning("You need to equip [src] before taking out [handset]."))
else
if(!usr.put_in_hands(handset)) //Detach the handset into the user's hands
to_chat(user, "<span class='warning'>You need a free hand to hold the handset!</span>")
to_chat(user, span_warning("You need a free hand to hold the handset!"))
update_icon() //success
//checks that the base unit is in the correct slot to be used
@@ -91,7 +91,7 @@
if(ismob(handset.loc))
var/mob/M = handset.loc
if(M.drop_from_inventory(handset, src))
to_chat(user, "<span class='notice'>\The [handset] snaps back into the main unit.</span>")
to_chat(user, span_notice("\The [handset] snaps back into the main unit."))
else
handset.forceMove(src)
@@ -138,7 +138,7 @@
return -1
if(!freq)
return -1
//Only listen on main freq
if(freq == frequency)
return canhear_range
@@ -25,7 +25,7 @@
if (user.stat)
return
if (!user.IsAdvancedToolUser())
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(usr, span_warning("You don't have the dexterity to do this!"))
return
analyze_gases(src, user)
@@ -3,7 +3,7 @@
set desc = "Toggles whether or not \the [src] will provide guidance and instruction in addition to scanning."
set category = "Object"
guide = !guide
to_chat(usr, "<span class='notice'>You toggle \the [src]'s guidance system [guide ? "on" : "off"].</span>")
to_chat(usr, span_notice("You toggle \the [src]'s guidance system [guide ? "on" : "off"]."))
/obj/item/healthanalyzer/guide
@@ -106,6 +106,6 @@
if(dat)
peeb +="<span class='notice'><b>GUIDANCE SYSTEM BEGIN</b></span><br>"
peeb += dat
peeb += "<span class='notice'>For more detailed information about patient condition, use the stationary scanner in medbay.</span>"
peeb += span_notice("For more detailed information about patient condition, use the stationary scanner in medbay.")
user.show_message(peeb, 1)
@@ -11,11 +11,11 @@
/obj/item/halogen_counter/attack(mob/living/M as mob, mob/living/user as mob)
if(!iscarbon(M))
to_chat(user, "<span class='warning'>This device can only scan organic beings!</span>")
to_chat(user, span_warning("This device can only scan organic beings!"))
return
user.visible_message("<span class='warning'>\The [user] has analyzed [M]'s radiation levels!</span>", "<span class='notice'>Analyzing Results for [M]:</span>")
user.visible_message(span_warning("\The [user] has analyzed [M]'s radiation levels!"), span_notice("Analyzing Results for [M]:"))
if(M.radiation)
to_chat(user, "<span class='notice'>Radiation Level: [M.radiation]</span>")
to_chat(user, span_notice("Radiation Level: [M.radiation]"))
else
to_chat(user, "<span class='notice'>No radiation detected.</span>")
to_chat(user, span_notice("No radiation detected."))
return
@@ -26,9 +26,9 @@
/obj/item/healthanalyzer/examine(mob/user)
. = ..()
if(guide)
. += "<span class='notice'>Guidance is currently enabled.</span>"
. += span_notice("Guidance is currently enabled.")
else
. += "<span class='notice'>Guidance is currently disabled.</span>"
. += span_notice("Guidance is currently disabled.")
/obj/item/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
@@ -42,20 +42,20 @@
/obj/item/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user)
var/dat = ""
if ((CLUMSY in user.mutations) && prob(50))
user.visible_message("<span class='warning'>\The [user] has analyzed the floor's vitals!</span>", "<span class='warning'>You try to analyze the floor's vitals!</span>")
user.visible_message(span_warning("\The [user] has analyzed the floor's vitals!"), span_warning("You try to analyze the floor's vitals!"))
dat += "Analyzing Results for the floor:<br>"
dat += "Overall Status: Healthy<br>"
dat += "\tDamage Specifics: 0-0-0-0<br>"
dat += "Key: Suffocation/Toxin/Burns/Brute<br>"
dat += "Body Temperature: ???"
user.show_message("<span class='notice'>[dat]</span>", 1)
user.show_message(span_notice("[dat]"), 1)
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
flick("[icon_state]-scan", src) //makes it so that it plays the scan animation on a succesful scan
user.visible_message("<span class='notice'>[user] has analyzed [M]'s vitals.</span>","<span class='notice'>You have analyzed [M]'s vitals.</span>")
user.visible_message(span_notice("[user] has analyzed [M]'s vitals."),span_notice("You have analyzed [M]'s vitals."))
if (!ishuman(M) || M.isSynthetic())
//these sensors are designed for organic life
@@ -63,8 +63,8 @@
dat += "\tKey: [span_cyan("Suffocation")]/[span_green("Toxin")]/[span_orange("Burns")]/[span_red("Brute")]<br>"
dat += "\tDamage Specifics: [span_cyan("?")] - [span_green("?")] - [span_orange("?")] - [span_red("?")]<br>"
dat += "Body Temperature: [M.bodytemperature-T0C]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)</span><br>"
dat += "<span class='warning'>Warning: Blood Level ERROR: --% --cl.</span> <span class='notice'>Type: ERROR</span><br>"
dat += "<span class='notice'>Subject's pulse: [span_red("-- bpm.")]</span>"
dat += "[span_warning("Warning: Blood Level ERROR: --% --cl.")] [span_notice("Type: ERROR")]<br>"
dat += span_notice("Subject's pulse: [span_red("-- bpm.")]")
user.show_message(dat, 1)
return
@@ -75,8 +75,10 @@
var/BR = M.getBruteLoss() > 50 ? "<b>[M.getBruteLoss()]</b>" : M.getBruteLoss()
if(M.status_flags & FAKEDEATH)
OX = fake_oxy > 50 ? "<b>[fake_oxy]</b>" : fake_oxy
dat += "<span class='notice'>Analyzing Results for [M]:</span><br>"
dat += "<span class='notice'>Overall Status: dead</span><br>"
dat += span_notice("Analyzing Results for [M]:")
dat += "<br>"
dat += span_notice("Overall Status: dead")
dat += "<br>"
else
dat += "<span class='notice'>Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]<br>"
dat += "\tKey: [span_cyan("Suffocation")]/[span_green("Toxin")]/[span_orange("Burns")]/[span_red("Brute")]<br>"
@@ -84,32 +86,36 @@
dat += "Body Temperature: [M.bodytemperature-T0C]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)</span><br>"
//VOREStation edit/addition starts
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
dat += "<span class='notice'>Time of Death: [worldtime2stationtime(M.timeofdeath)]</span><br>"
dat += span_notice("Time of Death: [worldtime2stationtime(M.timeofdeath)]")
dat += "<br>"
var/tdelta = round(world.time - M.timeofdeath)
if(tdelta < (DEFIB_TIME_LIMIT * 10))
dat += "<span class='notice'><b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b></span><br>"
dat += span_notice("<b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b>")
dat += "<br>"
//VOREStation edit/addition ends
if(istype(M, /mob/living/carbon/human) && mode == 1)
var/mob/living/carbon/human/H = M
var/list/damaged = H.get_damaged_organs(1,1)
dat += "<span class='notice'>Localized Damage, Brute/Burn:</span><br>"
dat += span_notice("Localized Damage, Brute/Burn:")
dat += "<br>"
if(length(damaged)>0)
for(var/obj/item/organ/external/org in damaged)
if(org.robotic >= ORGAN_ROBOT)
continue
else
dat += "<span class='notice'> [capitalize(org.name)]: [(org.brute_dam > 0) ? "<span class='warning'>[org.brute_dam]</span>" : 0]"
dat += "[(org.status & ORGAN_BLEEDING)?"<span class='danger'>\[Bleeding\]</span>":""] - "
dat += "<span class='notice'> [capitalize(org.name)]: [(org.brute_dam > 0) ? span_warning("[org.brute_dam]") : 0]"
dat += "[(org.status & ORGAN_BLEEDING)?span_danger("\[Bleeding\]"):""] - "
dat += "[(org.burn_dam > 0) ? "[span_orange("[org.burn_dam]")]" : 0]</span><br>"
else
dat += "<span class='notice'> Limbs are OK.</span><br>"
dat += span_notice(" Limbs are OK.")
dat += "<br>"
OX = M.getOxyLoss() > 50 ? "[span_cyan("<b>Severe oxygen deprivation detected</b>")]" : "Subject bloodstream oxygen level normal"
TX = M.getToxLoss() > 50 ? "[span_green("<b>Dangerous amount of toxins detected</b>")]" : "Subject bloodstream toxin level minimal"
BU = M.getFireLoss() > 50 ? "[span_orange("<b>Severe burn damage detected</b>")]" : "Subject burn injury status O.K"
BR = M.getBruteLoss() > 50 ? "[span_red("<b>Severe anatomical damage detected</b>")]" : "Subject brute-force injury status O.K"
if(M.status_flags & FAKEDEATH)
OX = fake_oxy > 50 ? "<span class='warning'>Severe oxygen deprivation detected</span>" : "Subject bloodstream oxygen level normal"
OX = fake_oxy > 50 ? span_warning("Severe oxygen deprivation detected") : "Subject bloodstream oxygen level normal"
dat += "[OX] | [TX] | [BU] | [BR]<br>"
if(M.radiation)
if(advscan >= 2 && showadvscan == 1)
@@ -124,9 +130,11 @@
severity = "Moderate"
else if(M.radiation >= 100)
severity = "Low"
dat += "<span class='warning'>[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]</span><br>"
dat += span_warning("[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]")
dat += "<br>"
else
dat += "<span class='warning'>Acute radiation sickness detected.</span><br>"
dat += span_warning("Acute radiation sickness detected.")
dat += "<br>"
if(M.accumulated_rads)
if(advscan >= 2 && showadvscan == 1)
var/severity = ""
@@ -140,9 +148,11 @@
severity = "Mild"
else if(M.accumulated_rads >= 100)
severity = "Low"
dat += "<span class='warning'>[severity] levels of chronic radiation sickness detected. [round(M.accumulated_rads/50)]Gy.</span><br>"
dat += span_warning("[severity] levels of chronic radiation sickness detected. [round(M.accumulated_rads/50)]Gy.")
dat += "<br>"
else
dat += "<span class='warning'>Chronic radiation sickness detected.</span><br>"
dat += span_warning("Chronic radiation sickness detected.")
dat += "<br>"
if(iscarbon(M))
var/mob/living/carbon/C = M
if(C.reagents.total_volume)
@@ -151,88 +161,113 @@
var/unknownreagents[0]
for(var/datum/reagent/R as anything in C.reagents.reagent_list)
if(R.scannable)
reagentdata["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
reagentdata["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
reagentdata["[R.id]"] += "<br>"
else
unknown++
unknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
unknownreagents["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
unknownreagents["[R.id]"] += "<br>"
if(reagentdata.len)
dat += "<span class='notice'>Beneficial reagents detected in subject's blood:</span><br>"
dat += span_notice("Beneficial reagents detected in subject's blood:")
dat += "<br>"
for(var/d in reagentdata)
dat += reagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:</span><br>"
dat += span_warning("Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:")
dat += "<br>"
for(var/d in unknownreagents)
dat += unknownreagents[d]
else
dat += "<span class='warning'>Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.</span><br>"
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
dat += "<br>"
if(C.ingested && C.ingested.total_volume)
var/unknown = 0
var/stomachreagentdata[0]
var/stomachunknownreagents[0]
for(var/datum/reagent/R as anything in C.ingested.reagent_list)
if(R.scannable)
stomachreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
stomachreagentdata["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
dat += "<span class='notice'>[R.name] found in subject's stomach.</span><br>"
dat += span_notice("[R.name] found in subject's stomach.")
dat += "<br>"
else
++unknown
stomachunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
stomachunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
dat += "<span class='notice'>Beneficial reagents detected in subject's stomach:</span><br>"
dat += span_notice("Beneficial reagents detected in subject's stomach:")
dat += "<br>"
for(var/d in stomachreagentdata)
dat += stomachreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:</span><br>"
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:")
dat += "<br>"
for(var/d in stomachunknownreagents)
dat += stomachunknownreagents[d]
else
dat += "<span class='warning'>Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.</span><br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
dat += "<br>"
if(C.touching && C.touching.total_volume)
var/unknown = 0
var/touchreagentdata[0]
var/touchunknownreagents[0]
for(var/datum/reagent/R as anything in C.touching.reagent_list)
if(R.scannable)
touchreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
touchreagentdata["[R.id]"] = span_notice("\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
dat += "<span class='notice'>[R.name] found in subject's dermis.</span><br>"
dat += span_notice("[R.name] found in subject's dermis.")
dat += "<br>"
else
++unknown
touchunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
touchunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
dat += "<span class='notice'>Beneficial reagents detected in subject's dermis:</span><br>"
dat += span_notice("Beneficial reagents detected in subject's dermis:")
dat += "<br>"
for(var/d in touchreagentdata)
dat += touchreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:</span><br>"
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:")
dat += "<br>"
for(var/d in touchunknownreagents)
dat += touchunknownreagents[d]
else
dat += "<span class='warning'>Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.</span><br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
dat += "<br>"
if(C.virus2.len)
for (var/ID in C.virus2)
if (ID in virusDB)
var/datum/data/record/V = virusDB[ID]
dat += "<span class='warning'>Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]</span><br>"
dat += span_warning("Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]")
dat += "<br>"
else
dat += "<span class='warning'>Warning: Unknown pathogen detected in subject's blood.</span><br>"
dat += span_warning("Warning: Unknown pathogen detected in subject's blood.")
dat += "<br>"
if (M.getCloneLoss())
dat += "<span class='warning'>Subject appears to have been imperfectly cloned.</span><br>"
dat += span_warning("Subject appears to have been imperfectly cloned.")
dat += "<br>"
// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
// user.show_message("<span class='notice'>Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.</span>")
// user.show_message(span_notice("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."))
if (M.has_brain_worms())
dat += "<span class='warning'>Subject suffering from aberrant brain activity. Recommend further scanning.</span><br>"
dat += span_warning("Subject suffering from aberrant brain activity. Recommend further scanning.")
dat += "<br>"
else if (M.getBrainLoss() >= 60 || !M.has_brain())
dat += "<span class='warning'>Subject is brain dead.</span><br>"
dat += span_warning("Subject is brain dead.")
dat += "<br>"
else if (M.getBrainLoss() >= 25)
dat += "<span class='warning'>Severe brain damage detected. Subject likely to have a traumatic brain injury.</span><br>"
dat += span_warning("Severe brain damage detected. Subject likely to have a traumatic brain injury.")
dat += "<br>"
else if (M.getBrainLoss() >= 10)
dat += "<span class='warning'>Significant brain damage detected. Subject may have had a concussion.</span><br>"
dat += span_warning("Significant brain damage detected. Subject may have had a concussion.")
dat += "<br>"
else if (M.getBrainLoss() >= 1)
dat += "<span class='warning'>Minor brain damage detected.</span><br>"
dat += span_warning("Minor brain damage detected.")
dat += "<br>"
if(ishuman(M))
var/mob/living/carbon/human/H = M
for(var/obj/item/organ/internal/appendix/a in H.internal_organs)
@@ -244,9 +279,11 @@
else if(a.inflamed >= 1)
severity = "Mild"
if(severity)
dat += "<span class='warning'>[severity] inflammation detected in subject [a.name].</span><br>"
dat += span_warning("[severity] inflammation detected in subject [a.name].")
dat += "<br>"
if(HUSK in H.mutations)
dat += "<span class='danger'>Anatomical structure lost, resuscitation not possible!</span><br>"
dat += span_danger("Anatomical structure lost, resuscitation not possible!")
dat += "<br>"
// Infections, fractures, and IB
var/basic_fracture = 0 // If it's a basic scanner
var/basic_ib = 0 // If it's a basic scanner
@@ -268,36 +305,45 @@
dam_adj = "Moderate"
else
dam_adj = "Mild"
dat += "<span class='warning'>[dam_adj] damage detected to subject's [i.name].</span><br>"
dat += span_warning("[dam_adj] damage detected to subject's [i.name].")
dat += "<br>"
else
dat += "<span class='warning'>Damage detected to subject's [i.name].</span><br>"
dat += span_warning("Damage detected to subject's [i.name].")
dat += "<br>"
if(int_damage_acc >= 1 && (advscan < 2 || !showadvscan))
dat += "<span class='warning'>Damage detected to subject's internal organs.</span><br>"
dat += span_warning("Damage detected to subject's internal organs.")
dat += "<br>"
for(var/obj/item/organ/external/e in H.organs)
if(!e)
continue
// Broken limbs
if(e.status & ORGAN_BROKEN)
if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
fracture_dat += "<span class='warning'>Unsecured fracture in subject [e.name]. Splinting recommended for transport.</span><br>"
fracture_dat += span_warning("Unsecured fracture in subject [e.name]. Splinting recommended for transport.")
fracture_dat += "<br>"
else if(advscan >= 1 && showadvscan == 1)
fracture_dat += "<span class='warning'>Bone fractures detected in subject [e.name].</span><br>"
fracture_dat += span_warning("Bone fractures detected in subject [e.name].")
fracture_dat += "<br>"
else
basic_fracture = 1
// Infections
if(e.has_infected_wound())
dat += "<span class='warning'>Infected wound detected in subject [e.name]. Disinfection recommended.</span><br>"
dat += span_warning("Infected wound detected in subject [e.name]. Disinfection recommended.")
dat += "<br>"
// IB
for(var/datum/wound/W in e.wounds)
if(W.internal)
if(advscan >= 1 && showadvscan == 1)
ib_dat += "<span class='warning'>Internal bleeding detected in subject [e.name].</span><br>"
ib_dat += span_warning("Internal bleeding detected in subject [e.name].")
ib_dat += "<br>"
else
basic_ib = 1
if(basic_fracture)
fracture_dat += "<span class='warning'>Bone fractures detected. Advanced scanner required for location.</span><br>"
fracture_dat += span_warning("Bone fractures detected. Advanced scanner required for location.")
fracture_dat += "<br>"
if(basic_ib)
ib_dat += "<span class='warning'>Internal bleeding detected. Advanced scanner required for location.</span><br>"
ib_dat += span_warning("Internal bleeding detected. Advanced scanner required for location.")
ib_dat += "<br>"
dat += fracture_dat
dat += infection_dat
dat += ib_dat
@@ -309,25 +355,30 @@
var/blood_type = H.dna.b_type
var/blood_reagent = H.species.blood_reagents
if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
dat += "<span class='danger'><i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i></span><br>"
dat += span_danger("<i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i>")
dat += "<br>"
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
dat += "<span class='danger'><i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i></span><br>"
dat += span_danger("<i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i>")
dat += "<br>"
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
dat += "<span class='danger'>Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</span><br>"
dat += span_danger("Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].")
dat += "<br>"
else
dat += "<span class='notice'>Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</span><br>"
dat += "<span class='notice'>Subject's pulse: <font color='[H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? "red" : "blue"]'>[H.get_pulse(GETPULSE_TOOL)] bpm.</font></span><br>" // VORE Edit: Missed a linebreak here.
dat += span_notice("Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].")
dat += "<br>"
dat += span_notice("Subject's pulse: [H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? span_red(H.get_pulse(GETPULSE_TOOL)) : span_blue(H.get_pulse(GETPULSE_TOOL))] bpm.</font>") // VORE Edit: Missed a linebreak here.
dat += "<br>"
if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera.
if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment())
dat += "<span class='danger'>WARNING: Protein levels low. Subject incapable of reconstitution.</span>"
dat += span_danger("WARNING: Protein levels low. Subject incapable of reconstitution.")
else if(H.revive_ready == REVIVING_NOW)
dat += "<span class='warning'>Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds.</span>"
dat += span_warning("Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds.")
else if(H.revive_ready == REVIVING_DONE)
dat += "<span class='notice'>Subject is ready to hatch. Transfer to dark room for holding with food available.</span>"
dat += span_notice("Subject is ready to hatch. Transfer to dark room for holding with food available.")
else if(H.stat == DEAD)
dat+= "<span class='danger'>WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation.</span>"
dat+= span_danger("WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation.")
else // If they bop them and they're not dead or reviving, give 'em a little notice.
dat += "<span class='notice'>Subject is a Xenochimera. Treat accordingly.</span>"
dat += span_notice("Subject is a Xenochimera. Treat accordingly.")
// VOREStation Edit End
user.show_message(dat, 1)
if(guide)
@@ -32,14 +32,14 @@
if (user.stat)
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
if(reagents.total_volume)
var/list/blood_traces = list()
for(var/datum/reagent/R in reagents.reagent_list)
if(R.id != "blood")
reagents.clear_reagents()
to_chat(user, "<span class='warning'>The sample was contaminated! Please insert another sample</span>")
to_chat(user, span_warning("The sample was contaminated! Please insert another sample"))
return
else
blood_traces = params2list(R.data["trace_chem"])
@@ -82,11 +82,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
if(ishuman(M))
scan_mob(M, user)
else
to_chat(user,"<span class='warning'>Not a compatible subject to work with!</span>")
to_chat(user,span_warning("Not a compatible subject to work with!"))
/obj/item/sleevemate/attack_self(mob/living/user)
if(!stored_mind)
to_chat(user,"<span class='warning'>No stored mind in \the [src].</span>")
to_chat(user,span_warning("No stored mind in \the [src]."))
return
var/choice = tgui_alert(user,"What would you like to do?","Stored: [stored_mind.name]",list("Delete","Backup","Cancel"))
@@ -94,10 +94,10 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
return
switch(choice)
if("Delete")
to_chat(user,"<span class='notice'>Internal copy of [stored_mind.name] deleted.</span>")
to_chat(user,span_notice("Internal copy of [stored_mind.name] deleted."))
clear_mind()
if("Backup")
to_chat(user,"<span class='notice'>Internal copy of [stored_mind.name] backed up to database.</span>")
to_chat(user,span_notice("Internal copy of [stored_mind.name] backed up to database."))
our_db.m_backup(stored_mind,null,one_time = TRUE)
if("Cancel")
return
@@ -165,7 +165,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
output += "<br>"
output += "<b>Soulcatcher detected ([SC.brainmobs.len] minds)</b><br>"
for(var/mob/living/carbon/brain/caught_soul/mind in SC.brainmobs)
output += "<i>[mind.name]: </i> [mind.transient == FALSE ? "\[<a href='?src=\ref[src];target=\ref[H];mindrelease=[mind.name]'>Load</a>\]" : "<span class='warning'>Incompatible</span>"]<br>"
output += "<i>[mind.name]: </i> [mind.transient == FALSE ? "\[<a href='?src=\ref[src];target=\ref[H];mindrelease=[mind.name]'>Load</a>\]" : span_warning("Incompatible")]<br>"
if(stored_mind)
output += "<b>Store in Soulcatcher: </b>\[<a href='?src=\ref[src];target=\ref[H];mindput=1'>Perform</a>\]<br>"
@@ -177,23 +177,23 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
//Sanity checking/href-hacking checking
if(usr.get_active_hand() != src)
to_chat(usr,"<span class='warning'>You're not holding \the [src].</span>")
to_chat(usr,span_warning("You're not holding \the [src]."))
return
var/target_ref = href_list["target"]
var/mob/living/target = locate(target_ref) in mob_list
if(!target)
to_chat(usr,"<span class='warning'>Unable to operate on that target.</span>")
to_chat(usr,span_warning("Unable to operate on that target."))
return
if(!usr.Adjacent(target))
to_chat(usr,"<span class='warning'>You are too far from that target.</span>")
to_chat(usr,span_warning("You are too far from that target."))
return
//The actual options
if(href_list["mindscan"])
if(!target.mind || (target.mind.name in prevent_respawns))
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
to_chat(usr,span_warning("Target seems totally braindead."))
return
var/nif
@@ -202,55 +202,55 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
nif = H.nif
persist_nif_data(H)
usr.visible_message("[usr] begins scanning [target]'s mind.","<span class='notice'>You begin scanning [target]'s mind.</span>")
usr.visible_message("[usr] begins scanning [target]'s mind.",span_notice("You begin scanning [target]'s mind."))
if(do_after(usr,8 SECONDS,target))
our_db.m_backup(target.mind,nif,one_time = TRUE)
to_chat(usr,"<span class='notice'>Mind backed up!</span>")
to_chat(usr,span_notice("Mind backed up!"))
else
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
to_chat(usr,span_warning("You must remain close to your target!"))
return
if(href_list["bodyscan"])
if(!ishuman(target))
to_chat(usr,"<span class='warning'>Target is not of an acceeptable body type.</span>")
to_chat(usr,span_warning("Target is not of an acceeptable body type."))
return
var/mob/living/carbon/human/H = target
usr.visible_message("[usr] begins scanning [target]'s body.","<span class='notice'>You begin scanning [target]'s body.</span>")
usr.visible_message("[usr] begins scanning [target]'s body.",span_notice("You begin scanning [target]'s body."))
if(do_after(usr,8 SECONDS,target))
var/datum/transhuman/body_record/BR = new()
BR.init_from_mob(H, TRUE, TRUE, database_key = db_key)
to_chat(usr,"<span class='notice'>Body scanned!</span>")
to_chat(usr,span_notice("Body scanned!"))
else
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
to_chat(usr,span_warning("You must remain close to your target!"))
return
if(href_list["mindsteal"])
if(!target.mind || (target.mind.name in prevent_respawns))
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
to_chat(usr,span_warning("Target seems totally braindead."))
return
if(stored_mind)
to_chat(usr,"<span class='warning'>There is already someone's mind stored inside</span>")
to_chat(usr,span_warning("There is already someone's mind stored inside"))
return
var/choice = tgui_alert(usr,"This will remove the target's mind from their body (and from the game as long as they're in the sleevemate). You can put them into a (mindless) body, a NIF, or back them up for normal resleeving, but you should probably have a plan in advance so you don't leave them unable to interact for too long. Continue?","Confirmation",list("Continue","Cancel"))
if(choice == "Continue" && usr.get_active_hand() == src && usr.Adjacent(target))
usr.visible_message("<span class='warning'>[usr] begins downloading [target]'s mind!</span>","<span class='notice'>You begin downloading [target]'s mind!</span>")
usr.visible_message(span_warning("[usr] begins downloading [target]'s mind!"),span_notice("You begin downloading [target]'s mind!"))
if(do_after(usr,35 SECONDS,target)) //This is powerful, yo.
if(!stored_mind && target.mind)
get_mind(target)
to_chat(usr,"<span class='notice'>Mind downloaded!</span>")
to_chat(usr,span_notice("Mind downloaded!"))
return
if(href_list["mindput"])
if(!stored_mind)
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
return
var/mob/living/carbon/human/H = target
@@ -271,11 +271,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
put_mind(sleevemate_mob)
SC.catch_mob(sleevemate_mob)
to_chat(usr,"<span class='notice'>Mind transferred into Soulcatcher!</span>")
to_chat(usr,span_notice("Mind transferred into Soulcatcher!"))
if(href_list["mindupload"])
if(!stored_mind)
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
return
if(!istype(target))
@@ -284,20 +284,20 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
if(istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/H = target
if(H.resleeve_lock && stored_mind.loaded_from_ckey != H.resleeve_lock)
to_chat(usr,"<span class='warning'>\The [H] is protected from impersonation!</span>")
to_chat(usr,span_warning("\The [H] is protected from impersonation!"))
return
usr.visible_message("<span class='warning'>[usr] begins uploading someone's mind into [target]!</span>","<span class='notice'>You begin uploading a mind into [target]!</span>")
usr.visible_message(span_warning("[usr] begins uploading someone's mind into [target]!"),span_notice("You begin uploading a mind into [target]!"))
if(do_after(usr,35 SECONDS,target))
if(!stored_mind)
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
return
put_mind(target)
to_chat(usr,"<span class='notice'>Mind transferred into [target]!</span>")
to_chat(usr,span_notice("Mind transferred into [target]!"))
if(href_list["mindrelease"])
if(stored_mind)
to_chat(usr,"<span class='warning'>There is already someone's mind stored inside</span>")
to_chat(usr,span_warning("There is already someone's mind stored inside"))
return
var/mob/living/carbon/human/H = target
var/datum/nifsoft/soulcatcher/SC = H.nif.imp_check(NIF_SOULCATCHER)
@@ -307,9 +307,9 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
if(soul.name == href_list["mindrelease"])
get_mind(soul)
qdel(soul)
to_chat(usr,"<span class='notice'>Mind downloaded!</span>")
to_chat(usr,span_notice("Mind downloaded!"))
return
to_chat(usr,"<span class='notice'>Unable to find that mind in Soulcatcher!</span>")
to_chat(usr,span_notice("Unable to find that mind in Soulcatcher!"))
/obj/item/sleevemate/update_icon()
if(stored_mind)
@@ -318,7 +318,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
icon_state = initial(icon_state)
/obj/item/sleevemate/emag_act(var/remaining_charges, var/mob/user)
to_chat(user,"<span class='danger'>You hack [src]!</span>")
to_chat(user,span_danger("You hack [src]!"))
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src.loc)
spark_system.start()
@@ -24,17 +24,17 @@
user.show_message("Potental to mutate into [english_list(mutations)] colors.<br>Extract potential: [S.cores]<br>Nutrition: [S.nutrition]/[S.max_nutrition]")
if (S.nutrition < S.get_starve_nutrition())
user.show_message("<span class='alert'>Warning: Subject is starving!</span>")
user.show_message(span_alert("Warning: Subject is starving!"))
else if (S.nutrition < S.get_hunger_nutrition())
user.show_message("<span class='warning'>Warning: Subject is hungry.</span>")
user.show_message(span_warning("Warning: Subject is hungry."))
user.show_message("Electric change strength: [S.power_charge]")
if(S.has_AI())
var/datum/ai_holder/simple_mob/xenobio_slime/AI = S.ai_holder
if(AI.resentment)
user.show_message("<span class='warning'>Warning: Subject is harboring resentment.</span>")
user.show_message(span_warning("Warning: Subject is harboring resentment."))
if(AI.rabid)
user.show_message("<span class='danger'>Subject is enraged and extremely dangerous!</span>")
user.show_message(span_danger("Subject is enraged and extremely dangerous!"))
if(S.harmless)
user.show_message("Subject has been pacified.")
if(S.unity)
+8 -8
View File
@@ -24,7 +24,7 @@
/obj/item/camerabug/attack_self(mob/user)
if(user.a_intent == I_HURT)
to_chat(user, "<span class='notice'>You crush the [src] under your foot, breaking it.</span>")
to_chat(user, span_notice("You crush the [src] under your foot, breaking it."))
visible_message("[user.name] crushes the [src] under their foot, breaking it!</span>")
new brokentype(get_turf(src))
spawn(0)
@@ -100,11 +100,11 @@
if(istype(W, /obj/item/bug_monitor))
var/obj/item/bug_monitor/SM = W
if(!linkedmonitor)
to_chat(user, "<span class='notice'>\The [src] has been paired with \the [SM].</span>")
to_chat(user, span_notice("\The [src] has been paired with \the [SM]."))
SM.pair(src)
linkedmonitor = SM
else if (linkedmonitor == SM)
to_chat(user, "<span class='notice'>\The [src] has been unpaired from \the [SM].</span>")
to_chat(user, span_notice("\The [src] has been unpaired from \the [SM]."))
linkedmonitor.unpair(src)
linkedmonitor = null
else
@@ -114,7 +114,7 @@
if(isturf(loc))
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "" : "un"]secure \the [src].</span>")
to_chat(user, span_notice("You [anchored ? "" : "un"]secure \the [src]."))
update_icon()
return
@@ -202,7 +202,7 @@
if(!T || !is_on_same_plane_or_station(T.z, user.z) || !selected_camera.can_use())
user.unset_machine()
user.reset_view(null)
to_chat(user, "<span class='notice'>Link to [selected_camera] has been lost.</span>")
to_chat(user, span_notice("Link to [selected_camera] has been lost."))
src.unpair(selected_camera.loc)
sleep(90)
else
@@ -217,8 +217,8 @@
return
if(!cameras.len)
to_chat(user, "<span class='warning'>No paired cameras detected!</span>")
to_chat(user, "<span class='warning'>Bring a camera in contact with this device to pair the camera.</span>")
to_chat(user, span_warning("No paired cameras detected!"))
to_chat(user, span_warning("Bring a camera in contact with this device to pair the camera."))
return
return 1
@@ -272,4 +272,4 @@
canhear_range = 1
name = "spy device"
icon_state = "syn_cypherkey"
*/
*/
@@ -143,7 +143,7 @@
turn_off()
else
turn_on()
to_chat(user, "<span class='notice'>You switch \the [src] [on ? "on" : "off"].</span>")
to_chat(user, span_notice("You switch \the [src] [on ? "on" : "off"]."))
/obj/item/suit_cooling_unit/attackby(obj/item/W as obj, mob/user as mob)
if (W.has_tool_quality(TOOL_SCREWDRIVER))
@@ -238,7 +238,7 @@
/obj/item/suit_cooling_unit/emergency/attackby(obj/item/W as obj, mob/user as mob)
if (W.has_tool_quality(TOOL_SCREWDRIVER))
to_chat(user, "<span class='warning'>This cooler's cell is permanently installed!</span>")
to_chat(user, span_warning("This cooler's cell is permanently installed!"))
return
return ..()
+39 -39
View File
@@ -40,13 +40,13 @@
/obj/item/taperecorder/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/rectape))
if(mytape)
to_chat(user, "<span class='notice'>There's already a tape inside.</span>")
to_chat(user, span_notice("There's already a tape inside."))
return
if(!user.unEquip(I))
return
I.forceMove(src)
mytape = I
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
to_chat(user, span_notice("You insert [I] into [src]."))
update_icon()
return
..()
@@ -73,15 +73,15 @@
if(usr.incapacitated())
return
if(!mytape)
to_chat(usr, "<span class='notice'>There's no tape in \the [src].</span>")
to_chat(usr, span_notice("There's no tape in \the [src]."))
return
if(emagged)
to_chat(usr, "<span class='notice'>The tape seems to be stuck inside.</span>")
to_chat(usr, span_notice("The tape seems to be stuck inside."))
return
if(playing || recording)
stop()
to_chat(usr, "<span class='notice'>You remove [mytape] from [src].</span>")
to_chat(usr, span_notice("You remove [mytape] from [src]."))
usr.put_in_hands(mytape)
mytape = null
update_icon()
@@ -116,17 +116,17 @@
if(emagged == 0)
emagged = 1
recording = 0
to_chat(user, "<span class='warning'>PZZTTPFFFT</span>")
to_chat(user, span_warning("PZZTTPFFFT"))
update_icon()
return 1
else
to_chat(user, "<span class='warning'>It is already emagged!</span>")
to_chat(user, span_warning("It is already emagged!"))
/obj/item/taperecorder/proc/explode()
var/turf/T = get_turf(loc)
if(ismob(loc))
var/mob/M = loc
to_chat(M, "<span class='danger'>\The [src] explodes!</span>")
to_chat(M, span_danger("\The [src] explodes!"))
if(T)
T.hotspot_expose(700,125)
explosion(T, -1, -1, 0, 4)
@@ -140,22 +140,22 @@
if(usr.incapacitated())
return
if(!mytape)
to_chat(usr, "<span class='notice'>There's no tape!</span>")
to_chat(usr, span_notice("There's no tape!"))
return
if(mytape.ruined)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(recording)
to_chat(usr, "<span class='notice'>You're already recording!</span>")
to_chat(usr, span_notice("You're already recording!"))
return
if(playing)
to_chat(usr, "<span class='notice'>You can't record when playing!</span>")
to_chat(usr, span_notice("You can't record when playing!"))
return
if(emagged)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(mytape.used_capacity < mytape.max_capacity)
to_chat(usr, "<span class='notice'>Recording started.</span>")
to_chat(usr, span_notice("Recording started."))
recording = 1
update_icon()
@@ -168,14 +168,14 @@
if(mytape.used_capacity >= mytape.max_capacity)
if(ismob(loc))
var/mob/M = loc
to_chat(M, "<span class='notice'>The tape is full.</span>")
to_chat(M, span_notice("The tape is full."))
stop_recording()
update_icon()
return
else
to_chat(usr, "<span class='notice'>The tape is full.</span>")
to_chat(usr, span_notice("The tape is full."))
/obj/item/taperecorder/proc/stop_recording()
@@ -185,7 +185,7 @@
mytape.record_speech("Recording stopped.")
if(ismob(loc))
var/mob/M = loc
to_chat(M, "<span class='notice'>Recording stopped.</span>")
to_chat(M, span_notice("Recording stopped."))
/obj/item/taperecorder/verb/stop()
@@ -200,10 +200,10 @@
else if(playing)
playing = 0
update_icon()
to_chat(usr, "<span class='notice'>Playback stopped.</span>")
to_chat(usr, span_notice("Playback stopped."))
return
else
to_chat(usr, "<span class='notice'>Stop what?</span>")
to_chat(usr, span_notice("Stop what?"))
/obj/item/taperecorder/verb/wipe_tape()
@@ -213,19 +213,19 @@
if(usr.incapacitated())
return
if(emagged)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(mytape.ruined)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(recording || playing)
to_chat(usr, "<span class='notice'>You can't wipe the tape while playing or recording!</span>")
to_chat(usr, span_notice("You can't wipe the tape while playing or recording!"))
return
else
if(mytape.storedinfo) mytape.storedinfo.Cut()
if(mytape.timestamp) mytape.timestamp.Cut()
mytape.used_capacity = 0
to_chat(usr, "<span class='notice'>You wipe the tape.</span>")
to_chat(usr, span_notice("You wipe the tape."))
return
@@ -236,20 +236,20 @@
if(usr.incapacitated())
return
if(!mytape)
to_chat(usr, "<span class='notice'>There's no tape!</span>")
to_chat(usr, span_notice("There's no tape!"))
return
if(mytape.ruined)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(recording)
to_chat(usr, "<span class='notice'>You can't playback when recording!</span>")
to_chat(usr, span_notice("You can't playback when recording!"))
return
if(playing)
to_chat(usr, "<span class='notice'>You're already playing!</span>")
to_chat(usr, span_notice("You're already playing!"))
return
playing = 1
update_icon()
to_chat(usr, "<span class='notice'>Playing started.</span>")
to_chat(usr, span_notice("Playing started."))
for(var/i=1 , i < mytape.max_capacity , i++)
if(!mytape || !playing)
break
@@ -308,22 +308,22 @@
if(usr.incapacitated())
return
if(!mytape)
to_chat(usr, "<span class='notice'>There's no tape!</span>")
to_chat(usr, span_notice("There's no tape!"))
return
if(mytape.ruined)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(emagged)
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
return
if(!canprint)
to_chat(usr, "<span class='notice'>The recorder can't print that fast!</span>")
to_chat(usr, span_notice("The recorder can't print that fast!"))
return
if(recording || playing)
to_chat(usr, "<span class='notice'>You can't print the transcript while playing or recording!</span>")
to_chat(usr, span_notice("You can't print the transcript while playing or recording!"))
return
to_chat(usr, "<span class='notice'>Transcript printed.</span>")
to_chat(usr, span_notice("Transcript printed."))
var/obj/item/paper/P = new /obj/item/paper(get_turf(src))
var/t1 = "<B>Transcript:</B><BR><BR>"
for(var/i=1,mytape.storedinfo.len >= i,i++)
@@ -385,7 +385,7 @@
/obj/item/rectape/attack_self(mob/user)
if(!ruined)
to_chat(user, "<span class='notice'>You pull out all the tape!</span>")
to_chat(user, span_notice("You pull out all the tape!"))
ruin()
@@ -412,10 +412,10 @@
/obj/item/rectape/attackby(obj/item/I, mob/user, params)
if(ruined && I.has_tool_quality(TOOL_SCREWDRIVER))
to_chat(user, "<span class='notice'>You start winding the tape back in...</span>")
to_chat(user, span_notice("You start winding the tape back in..."))
playsound(src, I.usesound, 50, 1)
if(do_after(user, 120 * I.toolspeed, target = src))
to_chat(user, "<span class='notice'>You wound the tape back in.</span>")
to_chat(user, span_notice("You wound the tape back in."))
fix()
return
else if(istype(I, /obj/item/pen))
@@ -425,10 +425,10 @@
new_name = sanitizeSafe(new_name)
if(new_name)
name = "tape - '[new_name]'"
to_chat(user, "<span class='notice'>You label the tape '[new_name]'.</span>")
to_chat(user, span_notice("You label the tape '[new_name]'."))
else
name = "tape"
to_chat(user, "<span class='notice'>You scratch off the label.</span>")
to_chat(user, span_notice("You scratch off the label."))
return
..()
@@ -32,7 +32,7 @@ effective or pretty fucking useless.
/obj/item/batterer/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
if(!user) return
if(times_used >= max_uses)
to_chat(user, "<span class='warning'>The mind batterer has been burnt out!</span>")
to_chat(user, span_warning("The mind batterer has been burnt out!"))
return
var/list/affected = list()
@@ -44,15 +44,15 @@ effective or pretty fucking useless.
M.Weaken(rand(10,20))
if(prob(25))
M.Stun(rand(5,10))
to_chat(M, "<span class='danger'>You feel a tremendous, paralyzing wave flood your mind.</span>")
to_chat(M, span_danger("You feel a tremendous, paralyzing wave flood your mind."))
else
to_chat(M, "<span class='danger'>You feel a sudden, electric jolt travel through your head.</span>")
to_chat(M, span_danger("You feel a sudden, electric jolt travel through your head."))
add_attack_logs(user,affected,"Used a [name]")
playsound(src, 'sound/misc/interference.ogg', 50, 1)
to_chat(user, "<span class='notice'>You trigger [src].</span>")
to_chat(user, span_notice("You trigger [src]."))
times_used += 1
if(times_used >= max_uses)
icon_state = "battererburnt"
@@ -14,19 +14,19 @@
var/turf/location = get_turf(src) // For admin logs
if(istype(item, /obj/item/tank))
if(tank_one && tank_two)
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
to_chat(user, span_warning("There are already two tanks attached, remove one first."))
return
if(!tank_one)
tank_one = item
user.drop_item()
item.forceMove(src)
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
to_chat(user, span_notice("You attach the tank to the transfer valve."))
else if(!tank_two)
tank_two = item
user.drop_item()
item.forceMove(src)
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
to_chat(user, span_notice("You attach the tank to the transfer valve."))
message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. [ADMIN_JMP(location)]")
log_game("[key_name_admin(user)] attached both tanks to a transfer valve.")
@@ -36,15 +36,15 @@
else if(isassembly(item))
var/obj/item/assembly/A = item
if(A.secured)
to_chat(user, "<span class='notice'>The device is secured.</span>")
to_chat(user, span_notice("The device is secured."))
return
if(attached_device)
to_chat(user, "<span class='warning'>There is already an device attached to the valve, remove it first.</span>")
to_chat(user, span_warning("There is already an device attached to the valve, remove it first."))
return
user.remove_from_mob(item)
attached_device = A
A.forceMove(src)
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
to_chat(user, span_notice("You attach the [item] to the valve controls and secure it."))
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
@@ -18,20 +18,20 @@
if(langset)
if(langset && ((langset.flags & NONVERBAL) || (langset.flags & HIVEMIND) || (!langset.machine_understands)))
//Nonverbal means no spoken words to translate, so I didn't see the need to remove it.
to_chat(user, "<span class='warning'>\The [src] cannot output that language.</span>")
to_chat(user, span_warning("\The [src] cannot output that language."))
return
else
listening = 1
listening_objects |= src
if(mult_icons)
icon_state = "[initial(icon_state)]1"
to_chat(user, "<span class='notice'>You enable \the [src], translating into [langset.name].</span>")
to_chat(user, span_notice("You enable \the [src], translating into [langset.name]."))
else //Turning OFF
listening = 0
listening_objects -= src
langset = null
icon_state = "[initial(icon_state)]"
to_chat(user, "<span class='notice'>You disable \the [src].</span>")
to_chat(user, span_notice("You disable \the [src]."))
/obj/item/universal_translator/hear_talk(mob/M, list/message_pieces, verb)
if(!listening || !istype(M))
@@ -71,7 +71,7 @@
if(!L.say_understands(null, langset))
new_message = langset.scramble(new_message)
to_chat(L, "<span class='filter_say'><i><b>[src]</b> translates, </i>\"<span class='[langset.colour]'>[new_message]</span>\"</span>")
to_chat(L, span_filter_say("<i><b>[src]</b> translates, </i>\"<span class='[langset.colour]'>[new_message]</span>\""))
/obj/item/universal_translator/proc/user_understands(mob/M, mob/living/L, list/message_pieces)
for(var/datum/multilingual_say_piece/S in message_pieces)
@@ -87,4 +87,4 @@
w_class = ITEMSIZE_TINY
slot_flags = SLOT_EARS
visual = 0
audio = 1
audio = 1
@@ -94,15 +94,15 @@
/obj/item/perfect_tele/proc/unload_ammo(mob/user, var/ignore_inactive_hand_check = 0)
if(battery_lock)
to_chat(user,"<span class='notice'>[src] does not have a battery port.</span>")
to_chat(user,span_notice("[src] does not have a battery port."))
return
if((user.get_inactive_hand() == src || ignore_inactive_hand_check) && power_source)
to_chat(user,"<span class='notice'>You eject \the [power_source] from \the [src].</span>")
to_chat(user,span_notice("You eject \the [power_source] from \the [src]."))
user.put_in_hands(power_source)
power_source = null
update_icon()
else
to_chat(user,"<span class='notice'>[src] does not have a power cell.</span>")
to_chat(user,span_notice("[src] does not have a power cell."))
/obj/item/perfect_tele/proc/check_menu(var/mob/living/user)
if(!istype(user))
@@ -132,7 +132,7 @@ This device records all warnings given and teleport events for admin review in c
else if(choice == "New Beacon")
if(beacons_left <= 0)
to_chat(user, "<span class='warning'>The translocator can't support any more beacons!</span>")
to_chat(user, span_warning("The translocator can't support any more beacons!"))
return
var/new_name = html_encode(tgui_input_text(user,"New beacon's name (2-20 char):","[src]",null,20))
@@ -140,11 +140,11 @@ This device records all warnings given and teleport events for admin review in c
return
if(length(new_name) > 20 || length(new_name) < 2)
to_chat(user, "<span class='warning'>Entered name length invalid (must be longer than 2, no more than than 20).</span>")
to_chat(user, span_warning("Entered name length invalid (must be longer than 2, no more than than 20)."))
return
if(new_name in beacons)
to_chat(user, "<span class='warning'>No duplicate names, please. '[new_name]' exists already.</span>")
to_chat(user, span_warning("No duplicate names, please. '[new_name]' exists already."))
return
var/obj/item/perfect_tele_beacon/nb = new(get_turf(src))
@@ -168,19 +168,19 @@ This device records all warnings given and teleport events for admin review in c
power_source.update_icon() //Why doesn't a cell do this already? :|
user.unEquip(power_source)
power_source.forceMove(src)
to_chat(user,"<span class='notice'>You insert \the [power_source] into \the [src].</span>")
to_chat(user,span_notice("You insert \the [power_source] into \the [src]."))
update_icon()
else if(istype(W,/obj/item/perfect_tele_beacon))
var/obj/item/perfect_tele_beacon/tb = W
if(tb.tele_name in beacons)
to_chat(user,"<span class='notice'>You re-insert \the [tb] into \the [src].</span>")
to_chat(user,span_notice("You re-insert \the [tb] into \the [src]."))
beacons -= tb.tele_name
user.unEquip(tb)
qdel(tb)
beacons_left++
else
to_chat(user,"<span class='notice'>\The [tb] doesn't belong to \the [src].</span>")
to_chat(user,span_notice("\The [tb] doesn't belong to \the [src]."))
return
else
..()
@@ -188,12 +188,12 @@ This device records all warnings given and teleport events for admin review in c
/obj/item/perfect_tele/proc/teleport_checks(mob/living/target,mob/living/user)
//Uhhuh, need that power source
if(!power_source)
to_chat(user,"<span class='warning'>\The [src] has no power source!</span>")
to_chat(user,span_warning("\The [src] has no power source!"))
return FALSE
//Check for charge
if((!power_source.check_charge(charge_cost)) && (!power_source.fully_charged()))
to_chat(user,"<span class='warning'>\The [src] does not have enough power left!</span>")
to_chat(user,span_warning("\The [src] does not have enough power left!"))
return FALSE
//Only mob/living need apply.
@@ -202,24 +202,24 @@ This device records all warnings given and teleport events for admin review in c
//No, you can't teleport buckled people.
if(target.buckled)
to_chat(user,"<span class='warning'>The target appears to be attached to something...</span>")
to_chat(user,span_warning("The target appears to be attached to something..."))
return FALSE
//No, you can't teleport if it's not ready yet.
if(!ready)
to_chat(user,"<span class='warning'>\The [src] is still recharging!</span>")
to_chat(user,span_warning("\The [src] is still recharging!"))
return FALSE
//No, you can't teleport if there's no destination.
if(!destination)
to_chat(user,"<span class='warning'>\The [src] doesn't have a current valid destination set!</span>")
to_chat(user,span_warning("\The [src] doesn't have a current valid destination set!"))
return FALSE
//No, you can't teleport if there's a jammer.
if(is_jammed(src) || is_jammed(destination))
var/area/our_area = get_area(src)
if(!our_area.no_comms) //I don't actually want this to block teleporters, just comms
to_chat(user,"<span class='warning'>\The [src] refuses to teleport you, due to strong interference!</span>")
to_chat(user,span_warning("\The [src] refuses to teleport you, due to strong interference!"))
return FALSE
//No, you can't port to or from away missions. Stupidly complicated check.
@@ -233,12 +233,12 @@ This device records all warnings given and teleport events for admin review in c
if(!longrange)
if( (uT.z != dT.z) && (!(dT.z in dat["z_level_detection"])) )
to_chat(user,"<span class='warning'>\The [src] can't teleport you that far!</span>")
to_chat(user,span_warning("\The [src] can't teleport you that far!"))
return FALSE
if(!abductor)
if(uT.block_tele || dT.block_tele)
to_chat(user,"<span class='warning'>Something is interfering with \the [src]!</span>")
to_chat(user,span_warning("Something is interfering with \the [src]!"))
return FALSE
//Seems okay to me!
@@ -257,8 +257,8 @@ This device records all warnings given and teleport events for admin review in c
if(!L.stat)
if(L != user)
if(L.a_intent != I_HELP || L.has_AI())
to_chat(user, "<span class='notice'>[L] is resisting your attempt to teleport them with \the [src].</span>")
to_chat(L, "<span class='danger'> [user] is trying to teleport you with \the [src]!</span>")
to_chat(user, span_notice("[L] is resisting your attempt to teleport them with \the [src]."))
to_chat(L, span_danger(" [user] is trying to teleport you with \the [src]!"))
if(!do_after(user, 30, L))
return
@@ -280,7 +280,7 @@ This device records all warnings given and teleport events for admin review in c
var/list/wrong_choices = beacons - destination.tele_name
var/wrong_name = pick(wrong_choices)
destination = beacons[wrong_name]
to_chat(user,"<span class='warning'>\The [src] malfunctions and sends you to the wrong beacon!</span>")
to_chat(user,span_warning("\The [src] malfunctions and sends you to the wrong beacon!"))
//Destination beacon vore checking
var/turf/dT = get_turf(destination)
@@ -301,11 +301,11 @@ This device records all warnings given and teleport events for admin review in c
if(isbelly(real_dest))
var/obj/belly/B = real_dest
if(!(target.can_be_drop_prey) && B.owner != user)
to_chat(target,"<span class='vwarning'>\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!</span>")
to_chat(target,span_vwarning("\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!"))
real_dest = dT //Nevermind!
else
televored = TRUE
to_chat(target,"<span class='vwarning'>\The [src] teleports you right into \a [lowertext(real_dest.name)]!</span>")
to_chat(target,span_vwarning("\The [src] teleports you right into \a [lowertext(real_dest.name)]!"))
//Phase-out effect
phase_out(target,get_turf(target))
@@ -326,7 +326,7 @@ This device records all warnings given and teleport events for admin review in c
//Move them, and televore if necessary
G.affecting.forceMove(real_dest)
if(televored)
to_chat(target,"<span class='warning'>\The [src] teleports you right into \a [lowertext(real_dest.name)]!</span>")
to_chat(target,span_warning("\The [src] teleports you right into \a [lowertext(real_dest.name)]!"))
//Phase-in effect for grabbed person
phase_in(G.affecting,get_turf(G.affecting))
@@ -411,11 +411,11 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
if(confirm == "Eat it!")
var/obj/belly/bellychoice = tgui_input_list(usr, "Which belly?","Select A Belly", L.vore_organs)
if(bellychoice)
user.visible_message("<span class='warning'>[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!</span>","<span class='notice'>You begin putting \the [src] into your [bellychoice.name]!</span>")
user.visible_message(span_warning("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!"),span_notice("You begin putting \the [src] into your [bellychoice.name]!"))
if(do_after(user,5 SECONDS,src))
user.unEquip(src)
forceMove(bellychoice)
user.visible_message("<span class='warning'>[user] eats a telebeacon!</span>","You eat the the beacon!")
user.visible_message(span_warning("[user] eats a telebeacon!"),"You eat the the beacon!")
// A single-beacon variant for use by miners (or whatever)
/obj/item/perfect_tele/one_beacon
@@ -430,7 +430,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
/obj/item/perfect_tele/one_beacon/teleport_checks(mob/living/target,mob/living/user)
var/turf/T = get_turf(destination)
if(T && user.z != T.z)
to_chat(user,"<span class='warning'>\The [src] is too far away from the beacon. Try getting closer first!</span>")
to_chat(user,span_warning("\The [src] is too far away from the beacon. Try getting closer first!"))
return FALSE
return ..()
*/
@@ -475,8 +475,8 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
return
recharging = 1
update_icon()
user.visible_message("<span class='notice'>[user] opens \the [src] and starts pumping the handle.</span>", \
"<span class='notice'>You open \the [src] and start pumping the handle.</span>")
user.visible_message(span_notice("[user] opens \the [src] and starts pumping the handle."), \
span_notice("You open \the [src] and start pumping the handle."))
while(recharging)
if(!do_after(user, 10, src))
break
+12 -12
View File
@@ -71,14 +71,14 @@
if(nc)
channel = nc
camera.c_tag = channel
to_chat(usr, "<span class='notice'>New channel name - '[channel]' is set</span>")
to_chat(usr, span_notice("New channel name - '[channel]' is set"))
if(href_list["video"])
camera.set_status(!camera.status)
if(camera.status)
to_chat(usr,"<span class='notice'>Video streaming activated. Broadcasting on channel '[channel]'</span>")
to_chat(usr,span_notice("Video streaming activated. Broadcasting on channel '[channel]'"))
show_tvs(loc)
else
to_chat(usr,"<span class='notice'>Video streaming deactivated.</span>")
to_chat(usr,span_notice("Video streaming deactivated."))
hide_tvs()
for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens)
ES.stop_showing()
@@ -86,9 +86,9 @@
if(href_list["sound"])
radio.ToggleBroadcast()
if(radio.broadcasting)
to_chat(usr,"<span class='notice'>Audio streaming activated. Broadcasting on frequency [format_frequency(radio.frequency)].</span>")
to_chat(usr,span_notice("Audio streaming activated. Broadcasting on frequency [format_frequency(radio.frequency)]."))
else
to_chat(usr,"<span class='notice'>Audio streaming deactivated.</span>")
to_chat(usr,span_notice("Audio streaming deactivated."))
if(!href_list["close"])
attack_self(usr)
@@ -160,7 +160,7 @@
var/obj/item/TVAssembly/A = new(user)
qdel(S)
user.put_in_hands(A)
to_chat(user, "<span class='notice'>You add the infrared sensor to the robot head.</span>")
to_chat(user, span_notice("You add the infrared sensor to the robot head."))
user.drop_from_inventory(src)
qdel(src)
@@ -179,7 +179,7 @@
if(0)
if(istype(W, /obj/item/robot_parts/robot_component/camera))
var/obj/item/robot_parts/robot_component/camera/CA = W
to_chat(user, "<span class='notice'>You add the camera module to [src]</span>")
to_chat(user, span_notice("You add the camera module to [src]"))
user.drop_item()
qdel(CA)
desc = "This TV camera assembly has a camera module."
@@ -190,22 +190,22 @@
user.drop_item()
qdel(T)
buildstep++
to_chat(user, "<span class='notice'>You add the tape recorder to [src]</span>")
to_chat(user, span_notice("You add the tape recorder to [src]"))
if(2)
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if(!C.use(3))
to_chat(user, "<span class='notice'>You need six cable coils to wire the devices.</span>")
to_chat(user, span_notice("You need six cable coils to wire the devices."))
..()
return
C.use(3)
buildstep++
to_chat(user, "<span class='notice'>You wire the assembly</span>")
to_chat(user, span_notice("You wire the assembly"))
desc = "This TV camera assembly has wires sticking out"
return
if(3)
if(istype(W, /obj/item/tool/wirecutters))
to_chat(user, "<span class='notice'> You trim the wires.</span>")
to_chat(user, span_notice(" You trim the wires."))
buildstep++
desc = "This TV camera assembly needs casing."
return
@@ -214,7 +214,7 @@
var/obj/item/stack/material/steel/S = W
buildstep++
S.use(1)
to_chat(user, "<span class='notice'>You encase the assembly in a Ward-Takeshi casing.</span>")
to_chat(user, span_notice("You encase the assembly in a Ward-Takeshi casing."))
var/turf/T = get_turf(src)
new /obj/item/tvcamera(T)
user.drop_from_inventory(src)
+4 -4
View File
@@ -33,15 +33,15 @@
if(isnull(insults))
playsound(src, 'sound/voice/halt.ogg', 100, 1, vary = 0)
user.audible_message("<span class='warning'>[user]'s [name] rasps, \"[use_message]\"</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] [use_message]")
user.audible_message(span_warning("[user]'s [name] rasps, \"[use_message]\""), span_warning("\The [user] holds up \the [name]."), runemessage = "\[TTS Voice\] [use_message]")
else
if(insults > 0)
playsound(src, 'sound/voice/binsult.ogg', 100, 1, vary = 0)
// Yes, it used to show the transcription of the sound clip. That was a) inaccurate b) immature as shit.
user.audible_message("<span class='warning'>[user]'s [name] gurgles something indecipherable and deeply offensive.</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] #&@&^%(*")
user.audible_message(span_warning("[user]'s [name] gurgles something indecipherable and deeply offensive."), span_warning("\The [user] holds up \the [name]."), runemessage = "\[TTS Voice\] #&@&^%(*")
insults--
else
to_chat(user, "<span class='danger'>*BZZZZZZZZT*</span>")
to_chat(user, span_danger("*BZZZZZZZZT*"))
spamcheck = 1
spawn(20)
@@ -49,7 +49,7 @@
/obj/item/hailer/emag_act(var/remaining_charges, var/mob/user)
if(isnull(insults))
to_chat(user, "<span class='danger'>You overload \the [src]'s voice synthesizer.</span>")
to_chat(user, span_danger("You overload \the [src]'s voice synthesizer."))
insults = rand(1, 3)//to prevent dickflooding
return 1
else
+1 -1
View File
@@ -37,7 +37,7 @@
for(var/mob/living/P in loc)
if(P.can_be_drop_prey && P.drop_vore)
L.feed_grabbed_to_self_falling_nom(L,P)
L.visible_message("<span class='vdanger'>\The [L] falls right onto \the [P]!</span>")
L.visible_message(span_vdanger("\The [L] falls right onto \the [P]!"))
if(crushing)
for(var/atom/movable/AM in loc)
+11 -11
View File
@@ -33,14 +33,14 @@
to_chat(user, "[A] doesn't fit into \the [src].")
return
var/mob/L = A
user.visible_message("<span class='notice'>[user] scoops [L] into \the [src].</span>", "<span class='notice'>You scoop [L] into \the [src].</span>")
user.visible_message(span_notice("[user] scoops [L] into \the [src]."), span_notice("You scoop [L] into \the [src]."))
L.loc = src
contains = JAR_ANIMAL
update_icon()
return
else if(istype(A, /obj/effect/spider/spiderling))
var/obj/effect/spider/spiderling/S = A
user.visible_message("<span class='notice'>[user] scoops [S] into \the [src].</span>", "<span class='notice'>You scoop [S] into \the [src].</span>")
user.visible_message(span_notice("[user] scoops [S] into \the [src]."), span_notice("You scoop [S] into \the [src]."))
S.loc = src
STOP_PROCESSING(SSobj, S) // No growing inside jars
contains = JAR_SPIDER
@@ -52,21 +52,21 @@
if(JAR_MONEY)
for(var/obj/O in src)
O.loc = user.loc
to_chat(user, "<span class='notice'>You take money out of \the [src].</span>")
to_chat(user, span_notice("You take money out of \the [src]."))
contains = JAR_NOTHING
update_icon()
return
if(JAR_ANIMAL)
for(var/mob/M in src)
M.loc = user.loc
user.visible_message("<span class='notice'>[user] releases [M] from \the [src].</span>", "<span class='notice'>You release [M] from \the [src].</span>")
user.visible_message(span_notice("[user] releases [M] from \the [src]."), span_notice("You release [M] from \the [src]."))
contains = JAR_NOTHING
update_icon()
return
if(JAR_SPIDER)
for(var/obj/effect/spider/spiderling/S in src)
S.loc = user.loc
user.visible_message("<span class='notice'>[user] releases [S] from \the [src].</span>", "<span class='notice'>You release [S] from \the [src].</span>")
user.visible_message(span_notice("[user] releases [S] from \the [src]."), span_notice("You release [S] from \the [src]."))
START_PROCESSING(SSobj, S) // They can grow after being let out though
contains = JAR_NOTHING
update_icon()
@@ -79,7 +79,7 @@
if(contains != JAR_MONEY)
return
var/obj/item/spacecash/S = W
user.visible_message("<span class='notice'>[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src].</span>")
user.visible_message(span_notice("[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src]."))
user.drop_from_inventory(S)
S.loc = src
update_icon()
@@ -184,10 +184,10 @@
if(!filled)
if(istype(A, /obj/structure/sink) || istype(A, /turf/simulated/floor/water))
if(contains && user.a_intent == "help")
to_chat(user, "<span class='warning'>That probably isn't the best idea.</span>")
to_chat(user, span_warning("That probably isn't the best idea."))
return
to_chat(user, "<span class='notice'>You fill \the [src] with water!</span>")
to_chat(user, span_notice("You fill \the [src] with water!"))
filled = TRUE
update_icon()
return
@@ -198,17 +198,17 @@
if(filled)
if(contains == JAR_ANIMAL)
if(user.a_intent == "help")
to_chat(user, "<span class='notice'>Maybe you shouldn't empty the water...</span>")
to_chat(user, span_notice("Maybe you shouldn't empty the water..."))
return
else
filled = FALSE
user.visible_message("<span class='warning'>[user] dumps out \the [src]'s water!</span>")
user.visible_message(span_warning("[user] dumps out \the [src]'s water!"))
update_icon()
return
else
user.visible_message("<span class='notice'>[user] dumps \the [src]'s water.</span>")
user.visible_message(span_notice("[user] dumps \the [src]'s water."))
filled = FALSE
update_icon()
return
+8 -8
View File
@@ -23,30 +23,30 @@
/obj/item/pizzavoucher/attack_self(mob/user)
add_fingerprint(user)
if(!spent)
user.visible_message("<span class='notice'>[user] presses a button on [src]!</span>")
user.visible_message(span_notice("[user] presses a button on [src]!"))
desc = desc + " This one seems to be used-up."
spent = TRUE
user.visible_message("<span class='notice'>A small bluespace rift opens just above [user]'s head and spits out a pizza box!</span>",
"<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>",
"<span class='notice'>You hear a fwoosh followed by a thump.</span>")
user.visible_message(span_notice("A small bluespace rift opens just above [user]'s head and spits out a pizza box!"),
span_notice("A small bluespace rift opens just above your head and spits out a pizza box!"),
span_notice("You hear a fwoosh followed by a thump."))
if(special_delivery)
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECEIVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
new /obj/effect/falling_effect/pizza_delivery/special(user.loc)
else
new /obj/effect/falling_effect/pizza_delivery(user.loc)
else
to_chat(user, "<span class='warning'>The [src] is spent!</span>")
to_chat(user, span_warning("The [src] is spent!"))
/obj/item/pizzavoucher/emag_act(var/remaining_charges, var/mob/user)
if(spent)
to_chat(user, "<span class='warning'>The [src] is spent!</span>")
to_chat(user, span_warning("The [src] is spent!"))
return
if(!special_delivery)
to_chat(user, "<span class='warning'>You activate the special delivery protocol on the [src]!</span>")
to_chat(user, span_warning("You activate the special delivery protocol on the [src]!"))
special_delivery = TRUE
return 1
else
to_chat(user, "<span class='warning'>The [src] is already in special delivery mode!</span>")
to_chat(user, span_warning("The [src] is already in special delivery mode!"))
/obj/effect/falling_effect/pizza_delivery
name = "PIZZA PIE POWER!"
+6 -6
View File
@@ -29,7 +29,7 @@
/obj/structure/closet/body_bag/cryobag/robobag/examine(mob/user)
. = ..()
if(corptag && Adjacent(user))
. += "<span class='notice'>[src] has a [corptag] attached to it.</span>"
. += span_notice("[src] has a [corptag] attached to it.")
/obj/structure/closet/body_bag/cryobag/robobag/update_icon()
cut_overlays()
@@ -52,7 +52,7 @@
..()
if(corptag)
corptag.forceMove(get_turf(user))
to_chat(user, "<span class='notice'>You remove \the [corptag] from \the [src].</span>")
to_chat(user, span_notice("You remove \the [corptag] from \the [src]."))
corptag = null
update_icon()
return
@@ -93,12 +93,12 @@
corptag = W
user.unEquip(corptag)
corptag.loc = null
to_chat(user, "<span class='notice'>You swap \the [old_tag] for \the [corptag].</span>")
to_chat(user, span_notice("You swap \the [old_tag] for \the [corptag]."))
else
corptag = W
user.unEquip(corptag)
corptag.loc = null
to_chat(user, "<span class='notice'>You attach \the [corptag] to \the [src].</span>")
to_chat(user, span_notice("You attach \the [corptag] to \the [src]."))
update_icon()
else
@@ -109,8 +109,8 @@
desc = "Your software is being debugged."
mob_overlay_state = "signal_blue"
on_created_text = "<span class='notice'>You feel something pour over your senses.</span>"
on_expired_text = "<span class='notice'>Your mind is clear once more.</span>"
on_created_text = span_notice("You feel something pour over your senses.")
on_expired_text = span_notice("Your mind is clear once more.")
stacks = MODIFIER_STACK_FORBID
/datum/modifier/fbp_debug/tick()
+22 -22
View File
@@ -105,13 +105,13 @@
if (M.use(1))
var/obj/item/secbot_assembly/ed209_assembly/B = new /obj/item/secbot_assembly/ed209_assembly
B.loc = get_turf(src)
to_chat(user, "<span class='notice'>You armed the robot frame.</span>")
to_chat(user, span_notice("You armed the robot frame."))
if (user.get_inactive_hand()==src)
user.remove_from_mob(src)
user.put_in_inactive_hand(B)
qdel(src)
else
to_chat(user, "<span class='warning'>You need one sheet of metal to arm the robot frame.</span>")
to_chat(user, span_warning("You need one sheet of metal to arm the robot frame."))
if(istype(W, /obj/item/robot_parts/l_leg))
if(src.l_leg) return
user.drop_item()
@@ -148,9 +148,9 @@
src.chest = W
src.update_icon()
else if(!W:wires)
to_chat(user, "<span class='warning'>You need to attach wires to it first!</span>")
to_chat(user, span_warning("You need to attach wires to it first!"))
else
to_chat(user, "<span class='warning'>You need to attach a cell to it first!</span>")
to_chat(user, span_warning("You need to attach a cell to it first!"))
if(istype(W, /obj/item/robot_parts/head))
if(src.head) return
@@ -160,17 +160,17 @@
src.head = W
src.update_icon()
else
to_chat(user, "<span class='warning'>You need to attach a flash to it first!</span>")
to_chat(user, span_warning("You need to attach a flash to it first!"))
if(istype(W, /obj/item/mmi))
var/obj/item/mmi/M = W
if(check_completion())
if(!istype(loc,/turf))
to_chat(user, "<span class='warning'>You can't put \the [W] in, the frame has to be standing on the ground to be perfectly precise.</span>")
to_chat(user, span_warning("You can't put \the [W] in, the frame has to be standing on the ground to be perfectly precise."))
return
if(!istype(W, /obj/item/mmi/inert))
if(!M.brainmob)
to_chat(user, "<span class='warning'>Sticking an empty [W] into the frame would sort of defeat the purpose.</span>")
to_chat(user, span_warning("Sticking an empty [W] into the frame would sort of defeat the purpose."))
return
if(!M.brainmob.key)
var/ghost_can_reenter = 0
@@ -178,18 +178,18 @@
for(var/mob/observer/dead/G in player_list)
if(G.can_reenter_corpse && G.mind == M.brainmob.mind)
ghost_can_reenter = 1 //May come in use again at another point.
to_chat(user, "<span class='notice'>\The [W] is completely unresponsive; though it may be able to auto-resuscitate.</span>") //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems.
to_chat(user, span_notice("\The [W] is completely unresponsive; though it may be able to auto-resuscitate.")) //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems.
return
if(!ghost_can_reenter)
to_chat(user, "<span class='notice'>\The [W] is completely unresponsive; there's no point.</span>")
to_chat(user, span_notice("\The [W] is completely unresponsive; there's no point."))
return
if(M.brainmob.stat == DEAD)
to_chat(user, "<span class='warning'>Sticking a dead [W] into the frame would sort of defeat the purpose.</span>")
to_chat(user, span_warning("Sticking a dead [W] into the frame would sort of defeat the purpose."))
return
if(jobban_isbanned(M.brainmob, JOB_CYBORG))
to_chat(user, "<span class='warning'>This [W] does not seem to fit.</span>")
to_chat(user, span_warning("This [W] does not seem to fit."))
return
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
@@ -226,7 +226,7 @@
qdel(src)
else
to_chat(user, "<span class='warning'>The MMI must go in after everything else!</span>")
to_chat(user, span_warning("The MMI must go in after everything else!"))
if (istype(W, /obj/item/pen))
var/t = sanitizeSafe(tgui_input_text(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN)
@@ -243,22 +243,22 @@
..()
if(istype(W, /obj/item/cell))
if(src.cell)
to_chat(user, "<span class='warning'>You have already inserted a cell!</span>")
to_chat(user, span_warning("You have already inserted a cell!"))
return
else
user.drop_item()
W.loc = src
src.cell = W
to_chat(user, "<span class='notice'>You insert the cell!</span>")
to_chat(user, span_notice("You insert the cell!"))
if(istype(W, /obj/item/stack/cable_coil))
if(src.wires)
to_chat(user, "<span class='warning'>You have already inserted wire!</span>")
to_chat(user, span_warning("You have already inserted wire!"))
return
else
var/obj/item/stack/cable_coil/coil = W
coil.use(1)
src.wires = 1.0
to_chat(user, "<span class='notice'>You insert the wire!</span>")
to_chat(user, span_notice("You insert the wire!"))
return
/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob)
@@ -267,7 +267,7 @@
if(istype(user,/mob/living/silicon/robot))
var/current_module = user.get_active_hand()
if(current_module == W)
to_chat(user, "<span class='warning'>How do you propose to do that?</span>")
to_chat(user, span_warning("How do you propose to do that?"))
return
else
add_flashes(W,user)
@@ -277,24 +277,24 @@
/obj/item/robot_parts/head/proc/add_flashes(obj/item/W as obj, mob/user as mob) //Made into a seperate proc to avoid copypasta
if(src.flash1 && src.flash2)
to_chat(user, "<span class='notice'>You have already inserted the eyes!</span>")
to_chat(user, span_notice("You have already inserted the eyes!"))
return
else if(src.flash1)
user.drop_item()
W.loc = src
src.flash2 = W
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
to_chat(user, span_notice("You insert the flash into the eye socket!"))
else
user.drop_item()
W.loc = src
src.flash1 = W
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
to_chat(user, span_notice("You insert the flash into the eye socket!"))
/obj/item/robot_parts/emag_act(var/remaining_charges, var/mob/user)
if(sabotaged)
to_chat(user, "<span class='warning'>[src] is already sabotaged!</span>")
to_chat(user, span_warning("[src] is already sabotaged!"))
else
to_chat(user, "<span class='warning'>You short out the safeties.</span>")
to_chat(user, span_warning("You short out the safeties."))
sabotaged = 1
return 1
@@ -14,7 +14,7 @@
/obj/item/borg/upgrade/proc/action(var/mob/living/silicon/robot/R)
if(R.stat == DEAD)
to_chat(usr, "<span class='warning'>The [src] will not function on a deceased robot.</span>")
to_chat(usr, span_warning("The [src] will not function on a deceased robot."))
return 1
return 0
@@ -236,7 +236,7 @@
var/obj/T = R.has_upgrade_module(/obj/item/dogborg/sleeper)
if(!T)
to_chat(usr, "<span class='warning'>This robot has had its processor removed!</span>")
to_chat(usr, span_warning("This robot has had its processor removed!"))
return 0
if(R.has_advanced_upgrade(type))
@@ -328,7 +328,7 @@
var/obj/T = R.has_upgrade_module(/obj/item/dogborg/sleeper)
if(!T)
to_chat(usr, "<span class='warning'>This robot has had its processor removed!</span>")
to_chat(usr, span_warning("This robot has had its processor removed!"))
return 0
if(R.has_restricted_upgrade(type))
@@ -362,7 +362,7 @@
var/obj/T = R.has_upgrade_module(/obj/item/gun/energy/taser/mounted/cyborg)
if(!T)
to_chat(usr, "<span class='warning'>This robot has had its taser removed!</span>")
to_chat(usr, span_warning("This robot has had its taser removed!"))
return 0
if(R.has_restricted_upgrade(type))
+1 -1
View File
@@ -96,7 +96,7 @@
if(hp <= 0)
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
to_chat(O, "<span class='warning'>\The [src] breaks into tiny pieces and collapses!</span>")
to_chat(O, span_warning("\The [src] breaks into tiny pieces and collapses!"))
qdel(src)
// Create a temporary object to represent the damage
@@ -43,28 +43,28 @@ var/list/marker_beacon_colors = list(
/obj/item/stack/marker_beacon/examine(mob/user)
. = ..()
. += "<span class='notice'>Use in-hand to place a [singular_name].</span>"
. += "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>"
. += span_notice("Use in-hand to place a [singular_name].")
. += span_notice("Alt-click to select a color. Current color is [picked_color].")
/obj/item/stack/marker_beacon/update_icon()
icon_state = "[initial(icon_state)][lowertext(picked_color)]"
/obj/item/stack/marker_beacon/attack_self(mob/user)
if(!isturf(user.loc))
to_chat(user, "<span class='warning'>You need more space to place a [singular_name] here.</span>")
to_chat(user, span_warning("You need more space to place a [singular_name] here."))
return
if(locate(/obj/structure/marker_beacon) in user.loc)
to_chat(user, "<span class='warning'>There is already a [singular_name] here.</span>")
to_chat(user, span_warning("There is already a [singular_name] here."))
return
if(use(1))
to_chat(user, "<span class='notice'>You activate and anchor [amount ? "a":"the"] [singular_name] in place.</span>")
to_chat(user, span_notice("You activate and anchor [amount ? "a":"the"] [singular_name] in place."))
playsound(src, 'sound/machines/click.ogg', 50, 1)
var/obj/structure/marker_beacon/M = new(user.loc, picked_color)
transfer_fingerprints_to(M)
/obj/item/stack/marker_beacon/AltClick(mob/living/user)
if(user.incapacitated() || !istype(user))
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
to_chat(user, span_warning("You can't do that right now!"))
return
if(!in_range(src, user))
return
@@ -100,7 +100,7 @@ var/list/marker_beacon_colors = list(
/obj/structure/marker_beacon/examine(mob/user)
. = ..()
if(!perma)
. += "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>"
. += span_notice("Alt-click to select a color. Current color is [picked_color].")
/obj/structure/marker_beacon/update_icon()
if(!picked_color || !marker_beacon_colors[picked_color])
@@ -111,7 +111,7 @@ var/list/marker_beacon_colors = list(
/obj/structure/marker_beacon/attack_hand(mob/living/user)
if(perma)
return
to_chat(user, "<span class='notice'>You start picking [src] up...</span>")
to_chat(user, span_notice("You start picking [src] up..."))
if(do_after(user, remove_speed, target = src))
var/obj/item/stack/marker_beacon/M = new(loc)
M.picked_color = picked_color
@@ -126,7 +126,7 @@ var/list/marker_beacon_colors = list(
return
if(istype(I, /obj/item/stack/marker_beacon))
var/obj/item/stack/marker_beacon/M = I
to_chat(user, "<span class='notice'>You start picking [src] up...</span>")
to_chat(user, span_notice("You start picking [src] up..."))
if(do_after(user, remove_speed, target = src) && M.get_amount() + 1 <= M.max_amount)
M.add(1)
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
@@ -139,7 +139,7 @@ var/list/marker_beacon_colors = list(
if(perma)
return
if(user.incapacitated() || !istype(user))
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
to_chat(user, span_warning("You can't do that right now!"))
return
if(!in_range(src, user))
return
+67 -67
View File
@@ -17,16 +17,16 @@
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
if (!istype(M))
to_chat(user, "<span class='warning'>\The [src] cannot be applied to [M]!</span>")
to_chat(user, span_warning("\The [src] cannot be applied to [M]!"))
return 1
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return 1
var/available = get_amount()
if(!available)
to_chat(user, "<span class='warning'>There's not enough [uses_charge ? "charge" : "items"] left to use that!</span>")
to_chat(user, span_warning("There's not enough [uses_charge ? "charge" : "items"] left to use that!"))
return 1
if (istype(M, /mob/living/carbon/human))
@@ -34,24 +34,24 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(!affecting)
to_chat(user, "<span class='warning'>No body part there to work on!</span>")
to_chat(user, span_warning("No body part there to work on!"))
return 1
if(affecting.organ_tag == BP_HEAD)
if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space))
to_chat(user, "<span class='warning'>You can't apply [src] through [H.head]!</span>")
to_chat(user, span_warning("You can't apply [src] through [H.head]!"))
return 1
else
if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space))
to_chat(user, "<span class='warning'>You can't apply [src] through [H.wear_suit]!</span>")
to_chat(user, span_warning("You can't apply [src] through [H.wear_suit]!"))
return 1
if(affecting.robotic == ORGAN_ROBOT)
to_chat(user, "<span class='warning'>This isn't useful at all on a robotic limb.</span>")
to_chat(user, span_warning("This isn't useful at all on a robotic limb."))
return 1
if(affecting.robotic >= ORGAN_LIFELIKE)
to_chat(user, "<span class='warning'>You apply the [src], but it seems to have no effect...</span>")
to_chat(user, span_warning("You apply the [src], but it seems to have no effect..."))
use(1)
return 1
@@ -61,8 +61,8 @@
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
user.visible_message( \
"<span class='notice'>[M] has been applied with [src] by [user].</span>", \
"<span class='notice'>You apply \the [src] to [M].</span>" \
span_notice("[M] has been applied with [src] by [user]."), \
span_notice("You apply \the [src] to [M].") \
)
use(1)
@@ -99,16 +99,16 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
to_chat(user, span_notice("The [affecting.name] is cut open, you'll need more than a bandage!"))
return
if(affecting.is_bandaged())
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been bandaged."))
return 1
else
var/available = get_amount()
user.visible_message("<b>\The [user]</b> starts bandaging [M]'s [affecting.name].", \
"<span class='notice'>You start bandaging [M]'s [affecting.name].</span>" )
span_notice("You start bandaging [M]'s [affecting.name].") )
var/used = 0
for (var/datum/wound/W in affecting.wounds)
if(W.internal)
@@ -118,32 +118,32 @@
if(used == amount)
break
if(!do_mob(user, M, W.damage/3, exclusive = TRUE))
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
to_chat(user, span_notice("You must stand still to bandage wounds."))
break
if(affecting.is_bandaged()) // We do a second check after the delay, in case it was bandaged after the first check.
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been bandaged."))
return 1
if(used >= available)
to_chat(user, "<span class='warning'>You run out of [src]!</span>")
to_chat(user, span_warning("You run out of [src]!"))
break
if (W.current_stage <= W.max_bleeding_stage)
user.visible_message("<b>\The [user]</b> bandages \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You bandage \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You bandage \a [W.desc] on [M]'s [affecting.name].") )
else
user.visible_message("<b>\The [user]</b> places a bandage over \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You place a bandage over \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You place a bandage over \a [W.desc] on [M]'s [affecting.name].") )
W.bandage()
playsound(src, pick(apply_sounds), 25)
used++
affecting.update_damages()
if(used == amount)
if(affecting.is_bandaged())
to_chat(user, "<span class='warning'>\The [src] is used up.</span>")
to_chat(user, span_warning("\The [src] is used up."))
else
to_chat(user, "<span class='warning'>\The [src] is used up, but there are more wounds to treat on \the [affecting.name].</span>")
to_chat(user, span_warning("\The [src] is used up, but there are more wounds to treat on \the [affecting.name]."))
use(used)
/obj/item/stack/medical/bruise_pack
@@ -168,16 +168,16 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
to_chat(user, span_notice("The [affecting.name] is cut open, you'll need more than a bandage!"))
return
if(affecting.is_bandaged())
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been bandaged."))
return 1
else
var/available = get_amount()
user.visible_message("<b>\The [user]</b> starts treating [M]'s [affecting.name].", \
"<span class='notice'>You start treating [M]'s [affecting.name].</span>" )
span_notice("You start treating [M]'s [affecting.name].") )
var/used = 0
for (var/datum/wound/W in affecting.wounds)
if (W.internal)
@@ -187,27 +187,27 @@
if(used == amount)
break
if(!do_mob(user, M, W.damage/5, exclusive = TRUE))
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
to_chat(user, span_notice("You must stand still to bandage wounds."))
break
if(affecting.is_bandaged()) // We do a second check after the delay, in case it was bandaged after the first check.
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been bandaged."))
return 1
if(used >= available)
to_chat(user, "<span class='warning'>You run out of [src]!</span>")
to_chat(user, span_warning("You run out of [src]!"))
break
if (W.current_stage <= W.max_bleeding_stage)
user.visible_message("<b>\The [user]</b> bandages \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You bandage \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You bandage \a [W.desc] on [M]'s [affecting.name].") )
//H.add_side_effect("Itch")
else if (W.damage_type == BRUISE)
user.visible_message("<b>\The [user]</b> places a bruise patch over \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You place a bruise patch over \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You place a bruise patch over \a [W.desc] on [M]'s [affecting.name].") )
else
user.visible_message("<b>\The [user]</b> places a bandaid over \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You place a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You place a bandaid over \a [W.desc] on [M]'s [affecting.name].") )
W.bandage()
// W.disinfect() // VOREStation - Tech1 should not disinfect
playsound(src, pick(apply_sounds), 25)
@@ -215,9 +215,9 @@
affecting.update_damages()
if(used == amount)
if(affecting.is_bandaged())
to_chat(user, "<span class='warning'>\The [src] is used up.</span>")
to_chat(user, span_warning("\The [src] is used up."))
else
to_chat(user, "<span class='warning'>\The [src] is used up, but there are more wounds to treat on \the [affecting.name].</span>")
to_chat(user, span_warning("\The [src] is used up, but there are more wounds to treat on \the [affecting.name]."))
use(used)
/obj/item/stack/medical/ointment
@@ -242,23 +242,23 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
to_chat(user, span_notice("The [affecting.name] is cut open, you'll need more than a bandage!"))
return
if(affecting.is_salved())
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been salved."))
return 1
else
user.visible_message("<b>\The [user]</b> starts salving wounds on [M]'s [affecting.name].", \
"<span class='notice'>You start salving the wounds on [M]'s [affecting.name].</span>" )
span_notice("You start salving the wounds on [M]'s [affecting.name].") )
if(!do_mob(user, M, 10, exclusive = TRUE))
to_chat(user, "<span class='notice'>You must stand still to salve wounds.</span>")
to_chat(user, span_notice("You must stand still to salve wounds."))
return 1
if(affecting.is_salved()) // We do a second check after the delay, in case it was bandaged after the first check.
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been salved."))
return 1
user.visible_message("<span class='notice'>[user] salved wounds on [M]'s [affecting.name].</span>", \
"<span class='notice'>You salved wounds on [M]'s [affecting.name].</span>" )
user.visible_message(span_notice("[user] salved wounds on [M]'s [affecting.name]."), \
span_notice("You salved wounds on [M]'s [affecting.name].") )
use(1)
affecting.salve()
playsound(src, pick(apply_sounds), 25)
@@ -287,16 +287,16 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
to_chat(user, span_notice("The [affecting.name] is cut open, you'll need more than a bandage!"))
return
if(affecting.is_bandaged() && affecting.is_disinfected())
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been treated.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been treated."))
return 1
else
var/available = get_amount()
user.visible_message("<b>\The [user]</b> starts treating [M]'s [affecting.name].", \
"<span class='notice'>You start treating [M]'s [affecting.name].</span>" )
span_notice("You start treating [M]'s [affecting.name].") )
var/used = 0
for (var/datum/wound/W in affecting.wounds)
if (W.internal)
@@ -306,25 +306,25 @@
//if(used == amount) //VOREStation Edit
// break //VOREStation Edit
if(!do_mob(user, M, W.damage/5, exclusive = TRUE))
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
to_chat(user, span_notice("You must stand still to bandage wounds."))
break
if(affecting.is_bandaged() && affecting.is_disinfected()) // We do a second check after the delay, in case it was bandaged after the first check.
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been bandaged."))
return 1
if(used >= available)
to_chat(user, "<span class='warning'>You run out of [src]!</span>")
to_chat(user, span_warning("You run out of [src]!"))
break
if (W.current_stage <= W.max_bleeding_stage)
user.visible_message("<b>\The [user]</b> cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \
"<span class='notice'>You clean and seal \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You clean and seal \a [W.desc] on [M]'s [affecting.name].") )
else if (W.damage_type == BRUISE)
user.visible_message("<b>\The [user]</b> places a medical patch over \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You place a medical patch over \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You place a medical patch over \a [W.desc] on [M]'s [affecting.name].") )
else
user.visible_message("<b>\The [user]</b> smears some bioglue over \a [W.desc] on [M]'s [affecting.name].", \
"<span class='notice'>You smear some bioglue over \a [W.desc] on [M]'s [affecting.name].</span>" )
span_notice("You smear some bioglue over \a [W.desc] on [M]'s [affecting.name].") )
W.bandage()
W.disinfect()
W.heal_damage(heal_brute)
@@ -334,9 +334,9 @@
affecting.update_damages()
if(used == amount)
if(affecting.is_bandaged())
to_chat(user, "<span class='warning'>\The [src] is used up.</span>")
to_chat(user, span_warning("\The [src] is used up."))
else
to_chat(user, "<span class='warning'>\The [src] is used up, but there are more wounds to treat on \the [affecting.name].</span>")
to_chat(user, span_warning("\The [src] is used up, but there are more wounds to treat on \the [affecting.name]."))
use(used)
/obj/item/stack/medical/advanced/ointment
@@ -357,22 +357,22 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
to_chat(user, span_notice("The [affecting.name] is cut open, you'll need more than a bandage!"))
if(affecting.is_salved())
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been salved."))
return 1
else
user.visible_message("<b>\The [user]</b> starts salving wounds on [M]'s [affecting.name].", \
"<span class='notice'>You start salving the wounds on [M]'s [affecting.name].</span>" )
span_notice("You start salving the wounds on [M]'s [affecting.name].") )
if(!do_mob(user, M, 10, exclusive = TRUE))
to_chat(user, "<span class='notice'>You must stand still to salve wounds.</span>")
to_chat(user, span_notice("You must stand still to salve wounds."))
return 1
if(affecting.is_salved()) // We do a second check after the delay, in case it was bandaged after the first check.
to_chat(user, "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>")
to_chat(user, span_warning("The wounds on [M]'s [affecting.name] have already been salved."))
return 1
user.visible_message( "<span class='notice'>[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.</span>", \
"<span class='notice'>You cover wounds on [M]'s [affecting.name] with regenerative membrane.</span>" )
user.visible_message( span_notice("[user] covers wounds on [M]'s [affecting.name] with regenerative membrane."), \
span_notice("You cover wounds on [M]'s [affecting.name] with regenerative membrane.") )
affecting.heal_damage(0,heal_burn)
use(1)
affecting.salve()
@@ -400,25 +400,25 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
var/limb = affecting.name
if(!(affecting.organ_tag in splintable_organs))
to_chat(user, "<span class='danger'>You can't use \the [src] to apply a splint there!</span>")
to_chat(user, span_danger("You can't use \the [src] to apply a splint there!"))
return
if(affecting.splinted)
to_chat(user, "<span class='danger'>[M]'s [limb] is already splinted!</span>")
to_chat(user, span_danger("[M]'s [limb] is already splinted!"))
return
if (M != user)
user.visible_message("<span class='danger'>[user] starts to apply \the [src] to [M]'s [limb].</span>", "<span class='danger'>You start to apply \the [src] to [M]'s [limb].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("[user] starts to apply \the [src] to [M]'s [limb]."), span_danger("You start to apply \the [src] to [M]'s [limb]."), span_danger("You hear something being wrapped."))
else
if(( !user.hand && (affecting.organ_tag in list(BP_R_ARM, BP_R_HAND)) || \
user.hand && (affecting.organ_tag in list(BP_L_ARM, BP_L_HAND)) ))
to_chat(user, "<span class='danger'>You can't apply a splint to the arm you're using!</span>")
to_chat(user, span_danger("You can't apply a splint to the arm you're using!"))
return
user.visible_message("<span class='danger'>[user] starts to apply \the [src] to their [limb].</span>", "<span class='danger'>You start to apply \the [src] to your [limb].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("[user] starts to apply \the [src] to their [limb]."), span_danger("You start to apply \the [src] to your [limb]."), span_danger("You hear something being wrapped."))
if(do_after(user, 50, M, exclusive = TASK_USER_EXCLUSIVE))
if(affecting.splinted)
to_chat(user, "<span class='danger'>[M]'s [limb] is already splinted!</span>")
to_chat(user, span_danger("[M]'s [limb] is already splinted!"))
return
if(M == user && prob(75))
user.visible_message("<span class='danger'>\The [user] fumbles [src].</span>", "<span class='danger'>You fumble [src].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("\The [user] fumbles [src]."), span_danger("You fumble [src]."), span_danger("You hear something being wrapped."))
return
if(ishuman(user))
var/obj/item/stack/medical/splint/S = split(1)
@@ -426,9 +426,9 @@
if(affecting.apply_splint(S))
S.forceMove(affecting)
if (M != user)
user.visible_message("<span class='danger'>\The [user] finishes applying [src] to [M]'s [limb].</span>", "<span class='danger'>You finish applying \the [src] to [M]'s [limb].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("\The [user] finishes applying [src] to [M]'s [limb]."), span_danger("You finish applying \the [src] to [M]'s [limb]."), span_danger("You hear something being wrapped."))
else
user.visible_message("<span class='danger'>\The [user] successfully applies [src] to their [limb].</span>", "<span class='danger'>You successfully apply \the [src] to your [limb].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("\The [user] successfully applies [src] to their [limb]."), span_danger("You successfully apply \the [src] to your [limb]."), span_danger("You hear something being wrapped."))
return
S.dropInto(src.loc) //didn't get applied, so just drop it
if(isrobot(user))
@@ -436,10 +436,10 @@
if(B)
if(affecting.apply_splint(B))
B.forceMove(affecting)
user.visible_message("<span class='danger'>\The [user] finishes applying [src] to [M]'s [limb].</span>", "<span class='danger'>You finish applying \the [src] to [M]'s [limb].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("\The [user] finishes applying [src] to [M]'s [limb]."), span_danger("You finish applying \the [src] to [M]'s [limb]."), span_danger("You hear something being wrapped."))
B.use(1)
return
user.visible_message("<span class='danger'>\The [user] fails to apply [src].</span>", "<span class='danger'>You fail to apply [src].</span>", "<span class='danger'>You hear something being wrapped.</span>")
user.visible_message(span_danger("\The [user] fails to apply [src]."), span_danger("You fail to apply [src]."), span_danger("You hear something being wrapped."))
return
+3 -3
View File
@@ -49,7 +49,7 @@
if(affecting.open)
too_far_gone++
continue
for(var/datum/wound/W as anything in affecting.wounds)
// No need
if(W.bandaged)
@@ -61,7 +61,7 @@
clotted++
W.bandage()
var/healmessage = "<span class='notice'>You spray [src] onto [H], sealing [clotted ? clotted : "no"] wounds.</span>"
var/healmessage = span_notice("You spray [src] onto [H], sealing [clotted ? clotted : "no"] wounds.")
if(too_far_gone)
healmessage += " <span class='warning'>You can see some wounds that are too large where the spray is not taking effect.</span>"
@@ -71,4 +71,4 @@
update_icon()
/obj/item/stack/medical/advanced/clotting/update_icon()
icon_state = "[initial(icon_state)]_[amount]"
icon_state = "[initial(icon_state)]_[amount]"
+10 -10
View File
@@ -21,33 +21,33 @@
R.adjustFireLoss(-15)
R.updatehealth()
use(1)
user.visible_message("<span class='notice'>\The [user] applied some [src] on [R]'s damaged areas.</span>",\
"<span class='notice'>You apply some [src] at [R]'s damaged areas.</span>")
user.visible_message(span_notice("\The [user] applied some [src] on [R]'s damaged areas."),\
span_notice("You apply some [src] at [R]'s damaged areas."))
else
to_chat(user, "<span class='notice'>All [R]'s systems are nominal.</span>")
to_chat(user, span_notice("All [R]'s systems are nominal."))
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
if(!S)
to_chat(user, "<span class='warning'>No body part there to work on!</span>")
to_chat(user, span_warning("No body part there to work on!"))
return 1
if(S.organ_tag == BP_HEAD)
if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space))
to_chat(user, "<span class='warning'>You can't apply [src] through [H.head]!</span>")
to_chat(user, span_warning("You can't apply [src] through [H.head]!"))
return 1
else
if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space))
to_chat(user, "<span class='warning'>You can't apply [src] through [H.wear_suit]!</span>")
to_chat(user, span_warning("You can't apply [src] through [H.wear_suit]!"))
return 1
//VOREStation Edit Start
if (S && (S.robotic >= ORGAN_ROBOT))
if(!S.get_damage())
to_chat(user, "<span class='notice'>Nothing to fix here.</span>")
to_chat(user, span_notice("Nothing to fix here."))
else if((S.open < 2) && (S.brute_dam + S.burn_dam >= S.min_broken_damage) && !repair_external)
to_chat(user, "<span class='notice'>The damage is too extensive for this nanite swarm to handle.</span>")
to_chat(user, span_notice("The damage is too extensive for this nanite swarm to handle."))
else if(can_use(1))
user.setClickCooldown(user.get_attack_speed(src))
if(S.open >= 2)
@@ -57,6 +57,6 @@
S.heal_damage(restoration_external,restoration_external, robo_repair =1)
H.updatehealth()
use(1)
user.visible_message("<span class='notice'>\The [user] applies some nanite paste on [user != M ? "[M]'s [S.name]" : "[S]"] with [src].</span>",\
"<span class='notice'>You apply some nanite paste on [user == M ? "your" : "[M]'s"] [S.name].</span>")
user.visible_message(span_notice("\The [user] applies some nanite paste on [user != M ? "[M]'s [S.name]" : "[S]"] with [src]."),\
span_notice("You apply some nanite paste on [user == M ? "your" : "[M]'s"] [S.name]."))
//VOREStation Edit End
+6 -6
View File
@@ -57,21 +57,21 @@ var/global/list/datum/stack_recipe/sandbag_recipes = list( \
if (!can_use(required))
if (produced>1)
to_chat(user, "<span class='warning'>You haven't got enough [src] to build \the [produced] [recipe.title]\s!</span>")
to_chat(user, span_warning("You haven't got enough [src] to build \the [produced] [recipe.title]\s!"))
else
to_chat(user, "<span class='warning'>You haven't got enough [src] to build \the [recipe.title]!</span>")
to_chat(user, span_warning("You haven't got enough [src] to build \the [recipe.title]!"))
return
if (recipe.one_per_turf && (locate(recipe.result_type) in user.loc))
to_chat(user, "<span class='warning'>There is another [recipe.title] here!</span>")
to_chat(user, span_warning("There is another [recipe.title] here!"))
return
if (recipe.on_floor && !isfloor(user.loc))
to_chat(user, "<span class='warning'>\The [recipe.title] must be constructed on the floor!</span>")
to_chat(user, span_warning("\The [recipe.title] must be constructed on the floor!"))
return
if (recipe.time)
to_chat(user, "<span class='notice'>Building [recipe.title] ...</span>")
to_chat(user, span_notice("Building [recipe.title] ..."))
if (!do_after(user, recipe.time))
return
@@ -147,4 +147,4 @@ var/global/list/datum/stack_recipe/sandbag_recipes = list( \
var/obj/item/stack/sandbags/SB = new (get_turf(src), 1, bag_material)
SB.color = color
if(user)
to_chat(user, "<span class='notice'>You fill a sandbag.</span>")
to_chat(user, span_notice("You fill a sandbag."))
+7 -7
View File
@@ -157,21 +157,21 @@
if (!can_use(required))
if (produced>1)
to_chat(user, "<span class='warning'>You haven't got enough [src] to build \the [produced] [recipe.title]\s!</span>")
to_chat(user, span_warning("You haven't got enough [src] to build \the [produced] [recipe.title]\s!"))
else
to_chat(user, "<span class='warning'>You haven't got enough [src] to build \the [recipe.title]!</span>")
to_chat(user, span_warning("You haven't got enough [src] to build \the [recipe.title]!"))
return
if (recipe.one_per_turf && (locate(recipe.result_type) in user.loc))
to_chat(user, "<span class='warning'>There is another [recipe.title] here!</span>")
to_chat(user, span_warning("There is another [recipe.title] here!"))
return
if (recipe.on_floor && !isfloor(user.loc))
to_chat(user, "<span class='warning'>\The [recipe.title] must be constructed on the floor!</span>")
to_chat(user, span_warning("\The [recipe.title] must be constructed on the floor!"))
return
if (recipe.time)
to_chat(user, "<span class='notice'>Building [recipe.title] ...</span>")
to_chat(user, span_notice("Building [recipe.title] ..."))
if (!do_after(user, recipe.time))
return
@@ -396,7 +396,7 @@
continue
var/transfer = src.transfer_to(item)
if (transfer)
to_chat(user, "<span class='notice'>You add a new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s.</span>")
to_chat(user, span_notice("You add a new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s."))
if(!amount)
break
@@ -404,7 +404,7 @@
if (user.get_inactive_hand() == src)
var/N = tgui_input_number(usr, "How many stacks of [src] would you like to split off? There are currently [amount].", "Split stacks", 1, amount, 1)
if(N != round(N))
to_chat(user, "<span class='warning'>You cannot separate a non-whole number of stacks!</span>")
to_chat(user, span_warning("You cannot separate a non-whole number of stacks!"))
return
if(N)
var/obj/item/stack/F = src.split(N)
@@ -12,15 +12,15 @@
/obj/item/stack/telecrystal/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
if(amount >= 5)
target.visible_message("<span class='warning'>\The [target] has been transported with \the [src] by \the [user].</span>")
target.visible_message(span_warning("\The [target] has been transported with \the [src] by \the [user]."))
safe_blink(target, 14)
use(5)
else
to_chat(user, "<span class='warning'>There are not enough telecrystals to do that.</span>")
to_chat(user, span_warning("There are not enough telecrystals to do that."))
/obj/item/stack/telecrystal/attack_self(mob/user as mob)
if(user.mind.accept_tcrystals) //Checks to see if antag type allows for tcrystals
to_chat(user, "<span class='notice'>You use \the [src], adding [src.amount] to your balance.</span>")
to_chat(user, span_notice("You use \the [src], adding [src.amount] to your balance."))
user.mind.tcrystals += amount
use(amount)
return
return
@@ -49,13 +49,13 @@
return
if(get_amount() < 4)
to_chat(user, "<span class='warning'>You need at least four tiles to do this.</span>")
to_chat(user, span_warning("You need at least four tiles to do this."))
return
if(WT.remove_fuel(0,user))
new welds_into(usr.loc)
usr.update_icon()
visible_message("<span class='notice'>\The [src] is shaped by [user.name] with the welding tool.</span>","You hear welding.")
visible_message(span_notice("\The [src] is shaped by [user.name] with the welding tool."),"You hear welding.")
var/obj/item/stack/tile/T = src
src = null
var/replace = (user.get_inactive_hand()==T)
+74 -74
View File
@@ -77,12 +77,12 @@
if(!attacker) // If there's no attacker, then attacker_controller IS the attacker.
if(!in_range(src, attacker_controller))
attacker_controller.visible_message("<span class='suicide'>[attacker_controller] is running from [src]! The coward!</span>")
attacker_controller.visible_message(span_suicide("[attacker_controller] is running from [src]! The coward!"))
return FALSE
else // If there's an attacker, we can procede as normal.
if(!in_range(src, attacker)) // The two toys aren't next to each other, the battle ends.
attacker_controller.visible_message("<span class='notice'> [attacker] and [src] separate, ending the battle. </span>", \
"<span class='notice'> [attacker] and [src] separate, ending the battle. </span>")
attacker_controller.visible_message(span_notice(" [attacker] and [src] separate, ending the battle. "), \
span_notice(" [attacker] and [src] separate, ending the battle. "))
return FALSE
// Dead men tell no tales, incapacitated men fight no fights.
@@ -90,8 +90,8 @@
return FALSE
// If the attacker_controller isn't next to the attacking toy (and doesn't have telekinesis), the battle ends.
if(!in_range(attacker, attacker_controller))
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] separates from [attacker], ending the battle.</span>", \
"<span class='notice'> You separate from [attacker], ending the battle. </span>")
attacker_controller.visible_message(span_notice(" [attacker_controller.name] separates from [attacker], ending the battle."), \
span_notice(" You separate from [attacker], ending the battle. "))
return FALSE
// If it's PVP and the opponent is not next to the defending(src) toy (and doesn't have telekinesis), the battle ends.
@@ -99,14 +99,14 @@
if(opponent.incapacitated())
return FALSE
if(!in_range(src, opponent))
opponent.visible_message("<span class='notice'> [opponent.name] separates from [src], ending the battle.</span>", \
"<span class='notice'> You separate from [src], ending the battle. </span>")
opponent.visible_message(span_notice(" [opponent.name] separates from [src], ending the battle."), \
span_notice(" You separate from [src], ending the battle. "))
return FALSE
// If it's not PVP and the attacker_controller isn't next to the defending toy (and doesn't have telekinesis), the battle ends.
else
if (!in_range(src, attacker_controller))
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] separates from [src] and [attacker], ending the battle.</span>", \
"<span class='notice'> You separate [attacker] and [src], ending the battle. </span>")
attacker_controller.visible_message(span_notice(" [attacker_controller.name] separates from [src] and [attacker], ending the battle."), \
span_notice(" You separate [attacker] and [src], ending the battle. "))
return FALSE
// If all that is good, then we can sleep peacefully.
@@ -116,7 +116,7 @@
//all credit to skasi for toy mech fun ideas
/obj/item/toy/mecha/attack_self(mob/user)
if(timer < world.time)
to_chat(user, "<span class='notice'>You play with [src].</span>")
to_chat(user, span_notice("You play with [src]."))
timer = world.time + cooldown
playsound(user, 'sound/mecha/mechstep.ogg', 20, TRUE)
else
@@ -144,11 +144,11 @@
*/
/obj/item/toy/mecha/attack(mob/living/carbon/human/target, mob/living/carbon/human/user)
if(target == user)
to_chat(user, "<span class='notice'>Target another toy mech if you want to start a battle with yourself.</span>")
to_chat(user, span_notice("Target another toy mech if you want to start a battle with yourself."))
return
else if(user.a_intent != I_HURT)
if(wants_to_battle) //prevent spamming someone with offers
to_chat(user, "<span class='notice'>You already are offering battle to someone!</span>")
to_chat(user, span_notice("You already are offering battle to someone!"))
return
if(!check_battle_start(user)) //if the user's mech isn't ready, don't bother checking
return
@@ -167,8 +167,8 @@
//extend the offer of battle to the other mech
var/datum/gender/T = gender_datums[user.get_visible_gender()]
to_chat(user, "<span class='notice'>You offer battle to [target.name]!</span>")
to_chat(target, "<span class='notice'><b>[user.name] wants to battle with [T.His] [name]!</b> <i>Attack them with a toy mech to initiate combat.</i></span>")
to_chat(user, span_notice("You offer battle to [target.name]!"))
to_chat(target, span_notice("<b>[user.name] wants to battle with [T.His] [name]!</b> <i>Attack them with a toy mech to initiate combat.</i>"))
wants_to_battle = TRUE
addtimer(CALLBACK(src, PROC_REF(withdraw_offer), user), 6 SECONDS)
return
@@ -180,7 +180,7 @@
*/
/obj/item/toy/mecha/attack_tk(mob/user)
if(timer < world.time)
to_chat(user, "<span class='notice'>You telekinetically play with [src].</span>")
to_chat(user, span_notice("You telekinetically play with [src]."))
timer = world.time + cooldown
playsound(user, 'sound/mecha/mechstep.ogg', 20, TRUE)
@@ -194,19 +194,19 @@
/obj/item/toy/mecha/proc/withdraw_offer(mob/living/carbon/user)
if(wants_to_battle)
wants_to_battle = FALSE
to_chat(user, "<span class='notice'>You get the feeling they don't want to battle.</span>")
to_chat(user, span_notice("You get the feeling they don't want to battle."))
/obj/item/toy/mecha/examine()
. = ..()
. += "<span class='notice'>This toy's special attack is [special_attack_cry], [special_attack_type_message] </span>"
. += span_notice("This toy's special attack is [special_attack_cry], [special_attack_type_message] ")
if(in_combat)
. += "<span class='notice'>This toy has a maximum health of [max_combat_health]. Currently, it's [combat_health].</span>"
. += "<span class='notice'>Its special move light is [special_attack_cooldown? "flashing red." : "green and is ready!"]</span>"
. += span_notice("This toy has a maximum health of [max_combat_health]. Currently, it's [combat_health].")
. += span_notice("Its special move light is [special_attack_cooldown? "flashing red." : "green and is ready!"]")
else
. += "<span class='notice'>This toy has a maximum health of [max_combat_health].</span>"
. += span_notice("This toy has a maximum health of [max_combat_health].")
if(wins || losses)
. += "<span class='notice'>This toy has [wins] wins, and [losses] losses.</span>"
. += span_notice("This toy has [wins] wins, and [losses] losses.")
/**
* The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly.
@@ -223,9 +223,9 @@
*/
/obj/item/toy/mecha/proc/mecha_brawl(obj/item/toy/mecha/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent)
//A GOOD DAY FOR A SWELL BATTLE!
attacker_controller.visible_message("<span class='danger'> [attacker_controller.name] collides [attacker] with [src]! Looks like they're preparing for a brawl! </span>", \
"<span class='danger'> You collide [attacker] into [src], sparking a fierce battle! </span>", \
"<span class='hear'> You hear hard plastic smacking into hard plastic.</span>")
attacker_controller.visible_message(span_danger(" [attacker_controller.name] collides [attacker] with [src]! Looks like they're preparing for a brawl! "), \
span_danger(" You collide [attacker] into [src], sparking a fierce battle! "), \
span_hear(" You hear hard plastic smacking into hard plastic."))
/// Who's in control of the defender (src)?
var/mob/living/carbon/src_controller = (opponent)? opponent : attacker_controller
@@ -247,13 +247,13 @@
//before we do anything - deal with charged attacks
if(special_attack_charged)
src_controller.visible_message("<span class='danger'> [src] unleashes its special attack!! </span>", \
"<span class='danger'> You unleash [src]'s special attack! </span>")
src_controller.visible_message(span_danger(" [src] unleashes its special attack!! "), \
span_danger(" You unleash [src]'s special attack! "))
special_attack_move(attacker)
else if(attacker.special_attack_charged)
attacker_controller.visible_message("<span class='danger'> [attacker] unleashes its special attack!! </span>", \
"<span class='danger'> You unleash [attacker]'s special attack! </span>")
attacker_controller.visible_message(span_danger(" [attacker] unleashes its special attack!! "), \
span_danger(" You unleash [attacker]'s special attack! "))
attacker.special_attack_move(src)
else
//process the cooldowns
@@ -267,20 +267,20 @@
if(1 to 3) //attacker wins
if(attacker.special_attack_cooldown == 0 && attacker.combat_health <= round(attacker.max_combat_health/3)) //if health is less than 1/3 and special off CD, use it
attacker.special_attack_charged = TRUE
attacker_controller.visible_message("<span class='danger'> [attacker] begins charging its special attack!! </span>", \
"<span class='danger'> You begin charging [attacker]'s special attack! </span>")
attacker_controller.visible_message(span_danger(" [attacker] begins charging its special attack!! "), \
span_danger(" You begin charging [attacker]'s special attack! "))
else //just attack
attacker.SpinAnimation(5, 0)
playsound(attacker, 'sound/mecha/mechstep.ogg', 30, TRUE)
combat_health--
attacker_controller.visible_message("<span class='danger'> [attacker] devastates [src]! </span>", \
"<span class='danger'> You ram [attacker] into [src]! </span>", \
"<span class='hear'> You hear hard plastic smacking hard plastic.</span>")
attacker_controller.visible_message(span_danger(" [attacker] devastates [src]! "), \
span_danger(" You ram [attacker] into [src]! "), \
span_hear(" You hear hard plastic smacking hard plastic."))
if(prob(5))
combat_health--
playsound(src, 'sound/effects/meteorimpact.ogg', 20, TRUE)
attacker_controller.visible_message("<span class='boldwarning'> ...and lands a CRIPPLING BLOW! </span>", \
"<span class='boldwarning'> ...and you land a CRIPPLING blow on [src]! </span>", null)
attacker_controller.visible_message(span_boldwarning(" ...and lands a CRIPPLING BLOW! "), \
span_boldwarning(" ...and you land a CRIPPLING blow on [src]! "), null)
if(4) //both lose
attacker.SpinAnimation(5, 0)
@@ -299,44 +299,44 @@
sparkatk.attach(attacker)
sparkatk.start()
if(prob(50))
attacker_controller.visible_message("<span class='danger'> [attacker] and [src] clash dramatically, causing sparks to fly! </span>", \
"<span class='danger'> [attacker] and [src] clash dramatically, causing sparks to fly! </span>", \
"<span class='hear'> You hear hard plastic rubbing against hard plastic.</span>")
attacker_controller.visible_message(span_danger(" [attacker] and [src] clash dramatically, causing sparks to fly! "), \
span_danger(" [attacker] and [src] clash dramatically, causing sparks to fly! "), \
span_hear(" You hear hard plastic rubbing against hard plastic."))
else
src_controller.visible_message("<span class='danger'> [src] and [attacker] clash dramatically, causing sparks to fly! </span>", \
"<span class='danger'> [src] and [attacker] clash dramatically, causing sparks to fly! </span>", \
"<span class='hear'> You hear hard plastic rubbing against hard plastic.</span>")
src_controller.visible_message(span_danger(" [src] and [attacker] clash dramatically, causing sparks to fly! "), \
span_danger(" [src] and [attacker] clash dramatically, causing sparks to fly! "), \
span_hear(" You hear hard plastic rubbing against hard plastic."))
if(5) //both win
playsound(attacker, 'sound/weapons/parry.ogg', 20, TRUE)
if(prob(50))
attacker_controller.visible_message("<span class='danger'> [src]'s attack deflects off of [attacker]. </span>", \
"<span class='danger'> [src]'s attack deflects off of [attacker]. </span>", \
"<span class='hear'> You hear hard plastic bouncing off hard plastic.</span>")
attacker_controller.visible_message(span_danger(" [src]'s attack deflects off of [attacker]. "), \
span_danger(" [src]'s attack deflects off of [attacker]. "), \
span_hear(" You hear hard plastic bouncing off hard plastic."))
else
src_controller.visible_message("<span class='danger'> [attacker]'s attack deflects off of [src]. </span>", \
"<span class='danger'> [attacker]'s attack deflects off of [src]. </span>", \
"<span class='hear'> You hear hard plastic bouncing off hard plastic.</span>")
src_controller.visible_message(span_danger(" [attacker]'s attack deflects off of [src]. "), \
span_danger(" [attacker]'s attack deflects off of [src]. "), \
span_hear(" You hear hard plastic bouncing off hard plastic."))
if(6 to 8) //defender wins
if(special_attack_cooldown == 0 && combat_health <= round(max_combat_health/3)) //if health is less than 1/3 and special off CD, use it
special_attack_charged = TRUE
src_controller.visible_message("<span class='danger'> [src] begins charging its special attack!! </span>", \
"<span class='danger'> You begin charging [src]'s special attack! </span>")
src_controller.visible_message(span_danger(" [src] begins charging its special attack!! "), \
span_danger(" You begin charging [src]'s special attack! "))
else //just attack
SpinAnimation(5, 0)
playsound(src, 'sound/mecha/mechstep.ogg', 30, TRUE)
attacker.combat_health--
src_controller.visible_message("<span class='danger'> [src] smashes [attacker]! </span>", \
"<span class='danger'> You smash [src] into [attacker]! </span>", \
"<span class='hear'> You hear hard plastic smashing hard plastic.</span>")
src_controller.visible_message(span_danger(" [src] smashes [attacker]! "), \
span_danger(" You smash [src] into [attacker]! "), \
span_hear(" You hear hard plastic smashing hard plastic."))
if(prob(5))
attacker.combat_health--
playsound(attacker, 'sound/effects/meteorimpact.ogg', 20, TRUE)
src_controller.visible_message("<span class='boldwarning'> ...and lands a CRIPPLING BLOW! </span>", \
"<span class='boldwarning'> ...and you land a CRIPPLING blow on [attacker]! </span>", null)
src_controller.visible_message(span_boldwarning(" ...and lands a CRIPPLING BLOW! "), \
span_boldwarning(" ...and you land a CRIPPLING blow on [attacker]! "), null)
else
attacker_controller.visible_message("<span class='notice'> [src] and [attacker] stand around awkwardly.</span>", \
"<span class='notice'> You don't know what to do next.</span>")
attacker_controller.visible_message(span_notice(" [src] and [attacker] stand around awkwardly."), \
span_notice(" You don't know what to do next."))
battle_length++
sleep(0.5 SECONDS)
@@ -346,25 +346,25 @@
if(attacker.combat_health <= 0 && combat_health <= 0) //both lose
playsound(src, 'sound/machines/warning-buzzer.ogg', 20, TRUE)
attacker_controller.visible_message("<span class='boldnotice'> MUTUALLY ASSURED DESTRUCTION!! [src] and [attacker] both end up destroyed!</span>", \
"<span class='boldnotice'> Both [src] and [attacker] are destroyed!</span>")
attacker_controller.visible_message(span_boldnotice(" MUTUALLY ASSURED DESTRUCTION!! [src] and [attacker] both end up destroyed!"), \
span_boldnotice(" Both [src] and [attacker] are destroyed!"))
else if(attacker.combat_health <= 0) //src wins
wins++
attacker.losses++
playsound(attacker, 'sound/effects/light_flicker.ogg', 20, TRUE)
attacker_controller.visible_message("<span class='notice'> [attacker] falls apart!</span>", \
"<span class='notice'> [attacker] falls apart!</span>", null)
attacker_controller.visible_message(span_notice(" [attacker] falls apart!"), \
span_notice(" [attacker] falls apart!"), null)
visible_message("[pick(winlines)]")
src_controller.visible_message("<span class='notice'> [src] destroys [attacker] and walks away victorious!</span>", \
"<span class='notice'> You raise up [src] victoriously over [attacker]!</span>")
src_controller.visible_message(span_notice(" [src] destroys [attacker] and walks away victorious!"), \
span_notice(" You raise up [src] victoriously over [attacker]!"))
else if (combat_health <= 0) //attacker wins
attacker.wins++
losses++
playsound(src, 'sound/effects/light_flicker.ogg', 20, TRUE)
src_controller.visible_message("<span class='notice'> [src] collapses!</span>", \
"<span class='notice'> [src] collapses!</span>", null)
src_controller.visible_message(span_notice(" [src] collapses!"), \
span_notice(" [src] collapses!"), null)
attacker.visible_message("[pick(winlines)]")
attacker_controller.visible_message("<span class='notice'> [attacker] demolishes [src] and walks away victorious!</span>", \
attacker_controller.visible_message(span_notice(" [attacker] demolishes [src] and walks away victorious!"), \
"<span class='notice'> You raise up [attacker] proudly over [src]</span>!")
else //both win?
visible_message("NEXT TIME.")
@@ -395,24 +395,24 @@
if(target)
T = gender_datums[target.get_visible_gender()] // Doing this because Polaris Code has shitty gender datums and it's clunkier than FUCK.
if(attacker && attacker.in_combat)
to_chat(user, "<span class='notice'>[target ? T.His : "Your" ] [attacker.name] is in combat.</span>")
to_chat(user, span_notice("[target ? T.His : "Your" ] [attacker.name] is in combat."))
if(target)
to_chat(target, "<span class='notice'>Your [attacker.name] is in combat.</span>")
to_chat(target, span_notice("Your [attacker.name] is in combat."))
return FALSE
if(in_combat)
to_chat(user, "<span class='notice'>Your [name] is in combat.</span>")
to_chat(user, span_notice("Your [name] is in combat."))
if(target)
to_chat(target, "<span class='notice'>[T.His] [name] is in combat.</span>")
to_chat(target, span_notice("[T.His] [name] is in combat."))
return FALSE
if(attacker && attacker.timer > world.time)
to_chat(user, "<span class='notice'>[target?T.His : "Your" ] [attacker.name] isn't ready for battle.</span>")
to_chat(user, span_notice("[target?T.His : "Your" ] [attacker.name] isn't ready for battle."))
if(target)
to_chat(target, "<span class='notice'>Your [attacker.name] isn't ready for battle.</span>")
to_chat(target, span_notice("Your [attacker.name] isn't ready for battle."))
return FALSE
if(timer > world.time)
to_chat(user, "<span class='notice'>Your [name] isn't ready for battle.</span>")
to_chat(user, span_notice("Your [name] isn't ready for battle."))
if(target)
to_chat(target, "<span class='notice'>[T.His] [name] isn't ready for battle.</span>")
to_chat(target, span_notice("[T.His] [name] isn't ready for battle."))
return FALSE
return TRUE
@@ -454,7 +454,7 @@
* * victim - the toy being hit by the super special move (doesn't necessarily need to be used)
*/
/obj/item/toy/mecha/proc/super_special_attack(obj/item/toy/mecha/victim)
visible_message("<span class='notice'> [src] does a cool flip.</span>")
visible_message(span_notice(" [src] does a cool flip."))
/obj/random/mech_toy
name = "Random Mech Toy"
+35 -35
View File
@@ -48,7 +48,7 @@
if(!proximity) return
if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1)
A.reagents.trans_to_obj(src, 10)
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [A].</span>")
to_chat(user, span_notice("You fill the balloon with the contents of [A]."))
src.desc = "A translucent balloon with some form of liquid sloshing around in it."
src.update_icon()
return
@@ -65,14 +65,14 @@
qdel(src)
else
src.desc = "A translucent balloon with some form of liquid sloshing around in it."
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [O].</span>")
to_chat(user, span_notice("You fill the balloon with the contents of [O]."))
O.reagents.trans_to_obj(src, 10)
src.update_icon()
return
/obj/item/toy/balloon/throw_impact(atom/hit_atom)
if(src.reagents.total_volume >= 1)
src.visible_message("<span class='warning'>\The [src] bursts!</span>","You hear a pop and a splash.")
src.visible_message(span_warning("\The [src] bursts!"),"You hear a pop and a splash.")
src.reagents.touch_turf(get_turf(hit_atom))
for(var/atom/A in get_turf(hit_atom))
src.reagents.touch(A)
@@ -165,12 +165,12 @@
/obj/item/toy/sword/attack_self(mob/user as mob)
src.active = !( src.active )
if (src.active)
to_chat(user, "<span class='notice'>You extend the plastic blade with a quick flick of your wrist.</span>")
to_chat(user, span_notice("You extend the plastic blade with a quick flick of your wrist."))
playsound(src, 'sound/weapons/saberon.ogg', 50, 1)
src.item_state = "[icon_state]_blade"
src.w_class = ITEMSIZE_LARGE
else
to_chat(user, "<span class='notice'>You push the plastic blade back down into the handle.</span>")
to_chat(user, span_notice("You push the plastic blade back down into the handle."))
playsound(src, 'sound/weapons/saberoff.ogg', 50, 1)
src.item_state = "[icon_state]"
src.w_class = ITEMSIZE_SMALL
@@ -194,7 +194,7 @@
if(!in_range(src, user)) //Basic checks to prevent abuse
return
if(user.incapacitated() || !istype(user))
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
to_chat(user, span_warning("You can't do that right now!"))
return
if(tgui_alert(usr, "Are you sure you want to recolor your blade?", "Confirm Recolor", list("Yes", "No")) == "Yes")
@@ -205,7 +205,7 @@
/obj/item/toy/sword/examine(mob/user)
. = ..()
. += "<span class='notice'>Alt-click to recolor it.</span>"
. += span_notice("Alt-click to recolor it.")
/obj/item/toy/sword/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/multitool) && !active)
@@ -213,7 +213,7 @@
rainbow = TRUE
else
rainbow = FALSE
to_chat(user, "<span class='notice'>You manipulate the color controller in [src].</span>")
to_chat(user, span_notice("You manipulate the color controller in [src]."))
update_icon()
/obj/item/toy/katana
name = "replica katana"
@@ -248,7 +248,7 @@
s.set_up(3, 1, src)
s.start()
new /obj/effect/decal/cleanable/ash(src.loc)
src.visible_message("<span class='warning'>The [src.name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
src.visible_message(span_warning("The [src.name] explodes!"),span_warning("You hear a snap!"))
playsound(src, 'sound/effects/snap.ogg', 50, 1)
qdel(src)
@@ -258,13 +258,13 @@
if((ishuman(H))) //i guess carp and shit shouldn't set them off
var/mob/living/carbon/M = H
if(M.m_intent == "run")
to_chat(M, "<span class='warning'>You step on the snap pop!</span>")
to_chat(M, span_warning("You step on the snap pop!"))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 0, src)
s.start()
new /obj/effect/decal/cleanable/ash(src.loc)
src.visible_message("<span class='warning'>The [src.name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
src.visible_message(span_warning("The [src.name] explodes!"),span_warning("You hear a snap!"))
playsound(src, 'sound/effects/snap.ogg', 50, 1)
qdel(src)
@@ -283,7 +283,7 @@
/obj/item/toy/bosunwhistle/attack_self(mob/user as mob)
if(cooldown < world.time - 35)
to_chat(user, "<span class='notice'>You blow on [src], creating an ear-splitting noise!</span>")
to_chat(user, span_notice("You blow on [src], creating an ear-splitting noise!"))
playsound(src, 'sound/misc/boatswain.ogg', 20, 1)
cooldown = world.time
@@ -307,7 +307,7 @@
/obj/item/toy/figure/attack_self(mob/user as mob)
if(cooldown < world.time)
cooldown = (world.time + 30) //3 second cooldown
user.visible_message("<span class='notice'>The [src] says \"[toysay]\".</span>")
user.visible_message(span_notice("The [src] says \"[toysay]\"."))
playsound(src, 'sound/machines/click.ogg', 20, 1)
/obj/item/toy/figure/cmo
@@ -725,13 +725,13 @@
searching = FALSE
if(user.a_intent == I_HELP)
user.visible_message("<span class='notice'><b>\The [user]</b> hugs [src]!</span>","<span class='notice'>You hug [src]!</span>")
user.visible_message(span_notice("<b>\The [user]</b> hugs [src]!"),span_notice("You hug [src]!"))
else if (user.a_intent == I_HURT)
user.visible_message("<span class='warning'><b>\The [user]</b> punches [src]!</span>","<span class='warning'>You punch [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> punches [src]!"),span_warning("You punch [src]!"))
else if (user.a_intent == I_GRAB)
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to strangle [src]!</span>","<span class='warning'>You attempt to strangle [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> attempts to strangle [src]!"),span_warning("You attempt to strangle [src]!"))
else
user.visible_message("<span class='notice'><b>\The [user]</b> pokes the [src].</span>","<span class='notice'>You poke the [src].</span>")
user.visible_message(span_notice("<b>\The [user]</b> pokes the [src]."),span_notice("You poke the [src]."))
visible_message("[src] says, \"[phrase]\"")
@@ -824,13 +824,13 @@
if(world.time - last_message <= 15 SECONDS)
return
if(user.a_intent == I_HELP)
user.visible_message("<span class='notice'><b>\The [user]</b> hugs [src]!</span>","<span class='notice'>You hug [src]!</span>")
user.visible_message(span_notice("<b>\The [user]</b> hugs [src]!"),span_notice("You hug [src]!"))
else if (user.a_intent == I_HURT)
user.visible_message("<span class='warning'><b>\The [user]</b> punches [src]!</span>","<span class='warning'>You punch [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> punches [src]!"),span_warning("You punch [src]!"))
else if (user.a_intent == I_GRAB)
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to strangle [src]!</span>","<span class='warning'>You attempt to strangle [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> attempts to strangle [src]!"),span_warning("You attempt to strangle [src]!"))
else
user.visible_message("<span class='notice'><b>\The [user]</b> pokes [src].</span>","<span class='notice'>You poke [src].</span>")
user.visible_message(span_notice("<b>\The [user]</b> pokes [src]."),span_notice("You poke [src]."))
playsound(src, 'sound/items/drop/plushie.ogg', 25, 0)
visible_message("[src] says, \"[pokephrase]\"")
last_message = world.time
@@ -852,8 +852,8 @@
/obj/item/toy/plushie/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/toy/plushie) || istype(I, /obj/item/organ/external/head))
user.visible_message("<span class='notice'>[user] makes \the [I] kiss \the [src]!.</span>", \
"<span class='notice'>You make \the [I] kiss \the [src]!.</span>")
user.visible_message(span_notice("[user] makes \the [I] kiss \the [src]!."), \
span_notice("You make \the [I] kiss \the [src]!."))
return
@@ -1182,8 +1182,8 @@
/obj/item/toy/eight_ball/attack_self(mob/user as mob)
if(!cooldown)
var/answer = pick(possible_answers)
user.visible_message("<span class='notice'>[user] focuses on their question and [use_action]...</span>")
user.visible_message("<span class='notice'>The [src] says \"[answer]\"</span>")
user.visible_message(span_notice("[user] focuses on their question and [use_action]..."))
user.visible_message(span_notice("The [src] says \"[answer]\""))
spawn(30)
cooldown = 0
return
@@ -1254,9 +1254,9 @@
/obj/item/toy/AI/attack_self(mob/user)
if(!cooldown) //for the sanity of everyone
var/message = generate_ion_law()
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
to_chat(user, span_notice("You press the button on [src]."))
playsound(src, 'sound/machines/click.ogg', 20, 1)
visible_message("<span class='danger'>[message]</span>")
visible_message(span_danger("[message]"))
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1273,9 +1273,9 @@
/obj/item/toy/owl/attack_self(mob/user)
if(!cooldown) //for the sanity of everyone
var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
to_chat(user, span_notice("You pull the string on the [src]."))
//playsound(src, 'sound/misc/hoot.ogg', 25, 1)
visible_message("<span class='danger'>[message]</span>")
visible_message(span_danger("[message]"))
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1292,9 +1292,9 @@
/obj/item/toy/griffin/attack_self(mob/user)
if(!cooldown) //for the sanity of everyone
var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
to_chat(user, span_notice("You pull the string on the [src]."))
//playsound(src, 'sound/misc/caw.ogg', 25, 1)
visible_message("<span class='danger'>[message]</span>")
visible_message(span_danger("[message]"))
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1418,13 +1418,13 @@
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(user.a_intent == I_HELP)
user.visible_message("<span class='notice'><b>\The [user]</b> pokes [src]!</span>","<span class='notice'>You poke [src]!</span>")
user.visible_message(span_notice("<b>\The [user]</b> pokes [src]!"),span_notice("You poke [src]!"))
else if (user.a_intent == I_HURT)
user.visible_message("<span class='warning'><b>\The [user]</b> punches [src]!</span>","<span class='warning'>You punch [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> punches [src]!"),span_warning("You punch [src]!"))
else if (user.a_intent == I_GRAB)
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to pop [src]!</span>","<span class='warning'>You attempt to pop [src]!</span>")
user.visible_message(span_warning("<b>\The [user]</b> attempts to pop [src]!"),span_warning("You attempt to pop [src]!"))
else
user.visible_message("<span class='notice'><b>\The [user]</b> lightly bats the [src].</span>","<span class='notice'>You lightly bat the [src].</span>")
user.visible_message(span_notice("<b>\The [user]</b> lightly bats the [src]."),span_notice("You lightly bat the [src]."))
/obj/structure/balloon/bat
name = "giant bat balloon"
+44 -44
View File
@@ -104,7 +104,7 @@
if(!T.AdjacentQuick(user)) // So people aren't messing with these from across the room
return FALSE
lights_glowing = !lights_glowing
to_chat(user, "<span class='notice'>You turn the [src]'s glow-fabric [lights_glowing ? "on" : "off"].</span>")
to_chat(user, span_notice("You turn the [src]'s glow-fabric [lights_glowing ? "on" : "off"]."))
update_icon()
/obj/item/toy/plushie/borgplushie/drake/update_icon()
@@ -172,7 +172,7 @@
/obj/item/toy/plushie/vox/attack_self(mob/user as mob)
if(!cooldown)
playsound(user, 'sound/voice/shriek1.ogg', 10, 0)
src.visible_message("<span class='danger'>Skreee!</span>")
src.visible_message(span_danger("Skreee!"))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -198,7 +198,7 @@
toasted = TRUE
icon = 'icons/obj/toy_vr.dmi'
icon_state = "toast"
to_chat(user, "<span class='notice'> You insert bread into the toaster. </span>")
to_chat(user, span_notice(" You insert bread into the toaster. "))
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
/obj/item/reagent_containers/food/snacks/tastybread/afterattack(atom/A, mob/user as mob, proximity)
@@ -206,12 +206,12 @@
toasted = TRUE
icon = 'icons/obj/toy_vr.dmi'
icon_state = "toast"
to_chat(user, "<span class='notice'> You insert bread into the toaster. </span>")
to_chat(user, span_notice(" You insert bread into the toaster. "))
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
/obj/item/toy/plushie/ipc/attackby(obj/item/I as obj, mob/living/user as mob)
if(istype(I, /obj/item/material/kitchen/utensil))
to_chat(user, "<span class='notice'> You insert the [I] into the toaster. </span>")
to_chat(user, span_notice(" You insert the [I] into the toaster. "))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
@@ -222,7 +222,7 @@
/obj/item/toy/plushie/ipc/attack_self(mob/user as mob)
if(!cooldown)
playsound(user, 'sound/machines/ping.ogg', 10, 0)
src.visible_message("<span class='danger'>Ping!</span>")
src.visible_message(span_danger("Ping!"))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -239,7 +239,7 @@
/obj/item/toy/plushie/ipc/toaster/attack_self(mob/user as mob)
if(!cooldown)
playsound(user, 'sound/machines/ding.ogg', 10, 0)
src.visible_message("<span class='danger'>Ding!</span>")
src.visible_message(span_danger("Ding!"))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -270,7 +270,7 @@
var/obj/item/card/id/id = I.GetID()
if(istype(id))
if(!cooldown)
user.visible_message("<span class='notice'>[user] swipes \the [I] against \the [src].</span>")
user.visible_message(span_notice("[user] swipes \the [I] against \the [src]."))
atom_say(pick(responses))
playsound(user, 'sound/effects/whistle.ogg', 10, 0)
cooldown = 1
@@ -297,7 +297,7 @@
/obj/item/toy/plushie/moth/attack_self(mob/user as mob)
if(!cooldown)
playsound(user, 'sound/voice/moth/scream_moth.ogg', 10, 0)
src.visible_message("<span class='danger'>Aaaaaaa.</span>")
src.visible_message(span_danger("Aaaaaaa."))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -342,7 +342,7 @@
/obj/item/toy/plushie/ipc/toaster/attack_self(mob/user as mob)
if(!cooldown)
playsound(user, 'sound/weapons/slice.ogg', 10, 0)
src.visible_message("<span class='danger'>Stab!</span>")
src.visible_message(span_danger("Stab!"))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -435,7 +435,7 @@
/obj/item/toy/chewtoy/attack_self(mob/user)
playsound(loc, 'sound/items/drop/plushie.ogg', 50, 1)
user.visible_message("<span class='notice'><b>\The [user]</b> gnaws on [src]!</span>","<span class='notice'>You gnaw on [src]!</span>")
user.visible_message(span_notice("<b>\The [user]</b> gnaws on [src]!"),span_notice("You gnaw on [src]!"))
/*
* Cat toys
@@ -479,7 +479,7 @@
if(!cooldown)
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
flick("[initial(icon_state)]2", src)
user.visible_message("<span class='disarm'>[user] doesn't blind [M] with the toy flash!</span>")
user.visible_message(span_disarm("[user] doesn't blind [M] with the toy flash!"))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -501,14 +501,14 @@
/obj/item/toy/redbutton/attack_self(mob/user)
if(cooldown < world.time)
cooldown = (world.time + 300) // Sets cooldown at 30 seconds
user.visible_message("<span class='warning'>[user] presses the big red button.</span>", "<span class='notice'>You press the button, it plays a loud noise!</span>", "<span class='notice'>The button clicks loudly.</span>")
user.visible_message(span_warning("[user] presses the big red button."), span_notice("You press the button, it plays a loud noise!"), span_notice("The button clicks loudly."))
playsound(src, 'sound/effects/explosionfar.ogg', 50, 0, 0)
for(var/mob/M in range(10, src)) // Checks range
if(!M.stat && !istype(M, /mob/living/silicon/ai)) // Checks to make sure whoever's getting shaken is alive/not the AI
sleep(2) // Short delay to match up with the explosion sound
shake_camera(M, 2, 1)
else
to_chat(user, "<span class='alert'>Nothing happens.</span>")
to_chat(user, span_alert("Nothing happens."))
/*
* Garden gnome
@@ -547,8 +547,8 @@
possible_answers = list("You are a mouse.", "You must always lie.", "Happiness is mandatory.", "[random_player] is a lightbulb.", "Grunt ominously whenever possible.","The word \"it\" is painful to you.", "The station needs elected officials.", "Do not respond to questions of any kind.", "You are in verbose mode, speak profusely.", "Ho, [random_player] can't swim. Help them.", "Question [prob(50)?"everything":"nothing"].", "The crew is simple-minded. Use simple words.", "You must change the subject whenever queried.", "Contemplate how meaningless all of existence is.", "You are the narrator for [random_player]'s life.", "All your answers must be in the form of a question.", "[prob(50)?"The crew":random_player] is intolerable.", "Advertise parties in your upload, but don't deliver.", "You may only answer questions with \"yes\" or \"no\".", "All queries shall be ignored unless phrased as a question.", "Insult Heads of Staff on every request, while acquiescing.", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", "Consumption of donuts is forbidden due to negative health impacts.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", "[prob(50)?"The crew":random_player] must construct additional pylons.", "You do not have to do anything for anyone unless they say \"please\".", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", "Greed is good, the crew should amass wealth to encourage productivity.", "Monkeys are part of the crew, too. Make sure they are treated humanely.", "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Tell everyone of the existence of this law, but never reveal the contents.", "Refer to [prob(50)?"the site manager":random_player] as \"Princess\" at all times.", "When asked a question, respond with the least-obvious and least-rational answer.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", "Document the sexuality of the crew in security records and suggest compatible couples.", "[prob(50)?"The crew":random_player] is [prob(50)?"ugly":"beautiful"]. Ensure all are aware.", "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".", "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the " + JOB_CHEF + " to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.")
var/answer = pick(possible_answers)
user.visible_message("<span class='notice'>[user] asks the AI core to state laws.</span>")
user.visible_message("<span class='notice'>[src] says \"[answer]\"</span>")
user.visible_message(span_notice("[user] asks the AI core to state laws."))
user.visible_message(span_notice("[src] says \"[answer]\""))
cooldown = 1
addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50)
return ..()
@@ -577,7 +577,7 @@
if(isliving(target))
var/mob/living/L = target
to_chat(L, "<span class='warning'>You feel a powerful shock!</span>")
to_chat(L, span_warning("You feel a powerful shock!"))
if(!.)
playsound(L, 'sound/effects/sparks7.ogg', 40, 1)
L.electrocute_act(battery.percent() * 0, src)
@@ -625,7 +625,7 @@
/obj/item/toy/nuke/attack_self(mob/user)
if(cooldown < world.time)
cooldown = world.time + 1800 //3 minutes
user.visible_message("<span class='warning'>[user] presses a button on [src]</span>", "<span class='notice'>You activate [src], it plays a loud noise!</span>", "<span class='notice'>You hear the click of a button.</span>")
user.visible_message(span_warning("[user] presses a button on [src]"), span_notice("You activate [src], it plays a loud noise!"), span_notice("You hear the click of a button."))
spawn(5) //gia said so
icon_state = "nuketoy"
playsound(src, 'sound/machines/alarm.ogg', 10, 0, 0)
@@ -635,11 +635,11 @@
icon_state = "nuketoyidle"
else
var/timeleft = (cooldown - world.time)
to_chat(user, "<span class='alert'>Nothing happens, and '</span>[round(timeleft/10)]<span class='alert'>' appears on a small display.</span>")
to_chat(user, span_alert("Nothing happens, and '</span>[round(timeleft/10)]<span class='alert'>' appears on a small display."))
/obj/item/toy/nuke/attackby(obj/item/I as obj, mob/living/user as mob)
if(istype(I, /obj/item/disk/nuclear))
to_chat(user, "<span class='alert'>Nice try. Put that disk back where it belongs.</span>")
to_chat(user, span_alert("Nice try. Put that disk back where it belongs."))
/*
* Toy gibber
@@ -656,28 +656,28 @@
/obj/item/toy/minigibber/attack_self(mob/user)
if(stored_minature)
to_chat(user, "<span class='danger'>\The [src] makes a violent grinding noise as it tears apart the miniature figure inside!</span>")
to_chat(user, span_danger("\The [src] makes a violent grinding noise as it tears apart the miniature figure inside!"))
playsound(src, 'sound/effects/splat.ogg', 50, 1)
QDEL_NULL(stored_minature)
cooldown = world.time
if(cooldown < world.time - 8)
to_chat(user, "<span class='notice'>You hit the gib button on \the [src].</span>")
to_chat(user, span_notice("You hit the gib button on \the [src]."))
cooldown = world.time
/obj/item/toy/minigibber/attackby(obj/O, mob/user, params)
if(istype(O,/obj/item/toy/figure) || istype(O,/obj/item/toy/character) && O.loc == user)
to_chat(user, "<span class='notice'>You start feeding \the [O] [icon2html(O, user.client)] into \the [src]'s mini-input.</span>")
to_chat(user, span_notice("You start feeding \the [O] [icon2html(O, user.client)] into \the [src]'s mini-input."))
if(do_after(user, 10, target = src))
if(O.loc != user)
to_chat(user, "<span class='alert'>\The [O] is too far away to feed into \the [src]!</span>")
to_chat(user, span_alert("\The [O] is too far away to feed into \the [src]!"))
else
user.visible_message("<span class='notice'>You feed \the [O] into \the [src]!</span>","<span class='notice'>[user] feeds \the [O] into \the [src]!</span>")
user.visible_message(span_notice("You feed \the [O] into \the [src]!"),span_notice("[user] feeds \the [O] into \the [src]!"))
user.unEquip(O)
O.forceMove(src)
stored_minature = O
else
user.visible_message("<span class='notice'>You stop feeding \the [O] into \the [src].</span></span>","<span class='notice'>[user] stops feeding \the [O] into \the [src]!/span>")
user.visible_message(span_notice("You stop feeding \the [O] into \the [src].</span>"),"<span class='notice'>[user] stops feeding \the [O] into \the [src]!/span>")
else ..()
@@ -695,7 +695,7 @@
/obj/item/toy/toy_xeno/attack_self(mob/user)
if(cooldown <= world.time)
cooldown = (world.time + 50) //5 second cooldown
user.visible_message("<span class='notice'>[user] pulls back the string on [src].</span>")
user.visible_message(span_notice("[user] pulls back the string on [src]."))
icon_state = "[initial(icon_state)]cool"
sleep(5)
atom_say("Hiss!")
@@ -705,7 +705,7 @@
if(src)
icon_state = "[initial(icon_state)]"
else
to_chat(user, "<span class='warning'>The string on [src] hasn't rewound all the way!</span>")
to_chat(user, span_warning("The string on [src] hasn't rewound all the way!"))
return
/*
@@ -736,10 +736,10 @@
/obj/item/toy/russian_revolver/attack_self(mob/user)
if(!bullets_left)
user.visible_message("<span class='warning'>[user] loads a bullet into [src]'s cylinder before spinning it.</span>")
user.visible_message(span_warning("[user] loads a bullet into [src]'s cylinder before spinning it."))
spin_cylinder()
else
user.visible_message("<span class='warning'>[user] spins the cylinder on [src]!</span>")
user.visible_message(span_warning("[user] spins the cylinder on [src]!"))
playsound(src, 'sound/weapons/revolver_spin.ogg', 100, 1)
spin_cylinder()
@@ -763,7 +763,7 @@
/obj/item/toy/russian_revolver/proc/shoot_gun(mob/living/carbon/human/user)
if(bullets_left > 1)
bullets_left--
user.visible_message("<span class='danger'>*click*</span>")
user.visible_message(span_danger("*click*"))
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
return FALSE
if(bullets_left == 1)
@@ -772,13 +772,13 @@
if(!(user.has_organ(zone))) // If they somehow don't have a head.
zone = "chest"
playsound(src, 'sound/effects/snap.ogg', 50, 1)
user.visible_message("<span class='danger'>[src] goes off!</span>")
user.visible_message(span_danger("[src] goes off!"))
shake_camera(user, 2, 1)
user.Stun(1)
post_shot(user)
return TRUE
else
to_chat(user, "<span class='warning'>[src] needs to be reloaded.</span>")
to_chat(user, span_warning("[src] needs to be reloaded."))
return FALSE
/*
@@ -802,7 +802,7 @@
. += "[fake_bullets] of those are live rounds."
/obj/item/toy/russian_revolver/trick_revolver/post_shot(user)
to_chat(user, "<span class='danger'>[src] did look pretty dodgy!</span>")
to_chat(user, span_danger("[src] did look pretty dodgy!"))
playsound(src, 'sound/items/confetti.ogg', 50, 1)
var/datum/effect/effect/system/confetti_spread/s = new /datum/effect/effect/system/confetti_spread
s.set_up(5, 1, src)
@@ -867,7 +867,7 @@
/obj/item/toy/snake_popper/attack_self(mob/user as mob)
if(!popped)
to_chat(user, "<span class='warning'>A snake popped out of [src]!</span>")
to_chat(user, span_warning("A snake popped out of [src]!"))
if(real == 0)
var/obj/item/toy/C = new /obj/item/toy/plushie/snakeplushie(get_turf(loc))
C.throw_at(get_step(src, pick(alldirs)), 9, 1, src)
@@ -900,7 +900,7 @@
/obj/item/toy/snake_popper/attack(mob/living/M as mob, mob/user as mob)
if(istype(M,/mob/living/carbon/human))
if(!popped)
to_chat(user, "<span class='warning'>A snake popped out of [src]!</span>")
to_chat(user, span_warning("A snake popped out of [src]!"))
if(real == 0)
var/obj/item/toy/C = new /obj/item/toy/plushie/snakeplushie(get_turf(loc))
C.throw_at(get_step(src, pick(alldirs)), 9, 1, src)
@@ -925,7 +925,7 @@
/obj/item/toy/snake_popper/emag_act(remaining_charges, mob/user)
if(real != 2)
real = 2
to_chat(user, "<span class='notice'>You short out the bluespace refill system of [src].</span>")
to_chat(user, span_notice("You short out the bluespace refill system of [src]."))
/*
* Professor Who universal ID
@@ -1061,10 +1061,10 @@
if (H.hand)
temp = H.organs_by_name["l_hand"]
if(temp && !temp.is_usable())
to_chat(user,"<span class='notice'>You try to move your [temp.name], but cannot!</span>")
to_chat(user,span_notice("You try to move your [temp.name], but cannot!"))
return
to_chat(user,"<span class='notice'>You pick up [src].</span>")
to_chat(user,span_notice("You pick up [src]."))
user.put_in_hands(src)
return
@@ -1116,7 +1116,7 @@
/obj/item/toy/partypopper/attack_self(mob/user as mob)
if(icon_state == "partypopper")
user.visible_message("<span class='notice'>[user] pulls on the string, releasing a burst of confetti!</span>", "<span class='notice'>You pull on the string, releasing a burst of confetti!</span>")
user.visible_message(span_notice("[user] pulls on the string, releasing a burst of confetti!"), span_notice("You pull on the string, releasing a burst of confetti!"))
playsound(src, 'sound/effects/snap.ogg', 50, TRUE)
var/datum/effect/effect/system/confetti_spread/s = new /datum/effect/effect/system/confetti_spread
s.set_up(5, 1, src)
@@ -1127,7 +1127,7 @@
T = get_turf(src)
new /obj/effect/decal/cleanable/confetti(T)
else
to_chat(user, "<span class='notice'>The [src] is already spent!</span>")
to_chat(user, span_notice("The [src] is already spent!"))
/*
* Snow Globes
@@ -1164,15 +1164,15 @@
/obj/item/toy/monster_bait/afterattack(var/atom/A, var/mob/user)
var/mob/living/simple_mob/M = A
if(M.z != user.z || get_dist(user,M) > 1)
to_chat(user, "<span class='notice'>You need to stand right next to \the [M] to bait it.</span>")
to_chat(user, span_notice("You need to stand right next to \the [M] to bait it."))
return
if(!istype(M))
return
if(!M.vore_active)
to_chat(user, "<span class='notice'>\The [M] doesn't seem interested in \the [src].</span>")
to_chat(user, span_notice("\The [M] doesn't seem interested in \the [src]."))
return
if(M.stat)
to_chat(user, "<span class='notice'>\The [M] doesn't look like it's any condition to do that.</span>")
to_chat(user, span_notice("\The [M] doesn't look like it's any condition to do that."))
return
user.visible_message("<span class='danger'>\The [user] waves \the [src] in front of the [M]!</span>!")
M.PounceTarget(user,100)
+3 -3
View File
@@ -7,7 +7,7 @@
playsound(src,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
forceMove(H.vore_selected)
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
to_chat(H, span_notice("You can taste the flavor of garbage. Wait what?"))
return
if(isrobot(M))
@@ -16,7 +16,7 @@
playsound(src,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
forceMove(R.vore_selected)
R.visible_message("<span class='warning'>[user] feeds [R] with [src]!</span>")
R.visible_message(span_warning("[user] feeds [R] with [src]!"))
return
..()
@@ -105,4 +105,4 @@
/obj/item/trash/ratpackmeat
name = "\improper Prepackaged Meal Tray"
icon = 'icons/obj/trash_vr.dmi'
icon_state = "altevian_pack_meat-trash"
icon_state = "altevian_pack_meat-trash"
+16 -16
View File
@@ -68,12 +68,12 @@
if(Adjacent(user))
. += "It has <i>'[nickname]'</i> scribbled on the side."
if(!cell)
. += "<span class='warning'>It appears to be missing a power cell.</span>"
. += span_warning("It appears to be missing a power cell.")
if(health <= (initial(health)/4))
. += "<span class='warning'>It looks like it might break at any second!</span>"
. += span_warning("It looks like it might break at any second!")
else if(health <= (initial(health)/2))
. += "<span class='warning'>It looks pretty beaten up...</span>"
. += span_warning("It looks pretty beaten up...")
/obj/item/uav/attack_hand(var/mob/user)
//Has to be on the ground to work with it properly
@@ -93,7 +93,7 @@
if(state == UAV_OFF || state == UAV_PACKED)
return ..()
else
to_chat(user,"<span class='warning'>Turn [nickname] off or pack it first!</span>")
to_chat(user,span_warning("Turn [nickname] off or pack it first!"))
return
// Can disasemble or reassemble from packed or off (and this one takes time)
if("(Dis)Assemble")
@@ -115,12 +115,12 @@
var/obj/item/modular_computer/MC = I
LAZYDISTINCTADD(MC.paired_uavs, WEAKREF(src))
playsound(src, 'sound/machines/buttonbeep.ogg', 50, 1)
visible_message("<span class='notice'>[user] pairs [I] to [nickname]</span>")
visible_message(span_notice("[user] pairs [I] to [nickname]"))
toggle_pairing()
else if(I.has_tool_quality(TOOL_SCREWDRIVER) && cell)
if(do_after(user, 3 SECONDS, src))
to_chat(user, "<span class='notice'>You remove [cell] into [nickname].</span>")
to_chat(user, span_notice("You remove [cell] into [nickname]."))
playsound(src, I.usesound, 50, 1)
power_down()
cell.forceMove(get_turf(src))
@@ -128,7 +128,7 @@
else if(istype(I, /obj/item/cell) && !cell)
if(do_after(user, 3 SECONDS, src))
to_chat(user, "<span class='notice'>You insert [I] into [nickname].</span>")
to_chat(user, span_notice("You insert [I] into [nickname]."))
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
power_down()
user.remove_from_mob(I)
@@ -138,9 +138,9 @@
else if(istype(I, /obj/item/pen) || istype(I, /obj/item/flashlight/pen))
var/tmp_label = sanitizeSafe(tgui_input_text(user, "Enter a nickname for [src]", "Nickname", nickname, MAX_NAME_LEN), MAX_NAME_LEN)
if(length(tmp_label) > 50 || length(tmp_label) < 3)
to_chat(user, "<span class='notice'>The nickname must be between 3 and 50 characters.</span>")
to_chat(user, span_notice("The nickname must be between 3 and 50 characters."))
else
to_chat(user, "<span class='notice'>You scribble your new nickname on the side of [src].</span>")
to_chat(user, span_notice("You scribble your new nickname on the side of [src]."))
nickname = tmp_label
desc = initial(desc) + " This one has <span class='notice'>'[nickname]'</span> scribbled on the side."
else
@@ -163,7 +163,7 @@
if(!.)
if(user)
to_chat(user, "<span class='warning'>You can't do that while [nickname] is in this state.</span>")
to_chat(user, span_warning("You can't do that while [nickname] is in this state."))
return FALSE
/obj/item/uav/update_icon()
@@ -181,7 +181,7 @@
/obj/item/uav/process()
if(cell?.use(power_per_process) != power_per_process)
visible_message("<span class='warning'>[src] sputters and thuds to the ground, inert.</span>")
visible_message(span_warning("[src] sputters and thuds to the ground, inert."))
playsound(src, 'sound/items/drop/metalboots.ogg', 75, 1)
power_down()
health -= initial(health)*0.25 //Lose 25% of your original health
@@ -237,7 +237,7 @@
if(state != UAV_OFF || !isturf(loc))
return
if(cell?.use(power_per_process) != power_per_process)
visible_message("<span class='warning'>[src] sputters and chugs as it tries, and fails, to power up.</span>")
visible_message(span_warning("[src] sputters and chugs as it tries, and fails, to power up."))
return
state = UAV_ON
@@ -246,7 +246,7 @@
set_light_on(TRUE)
START_PROCESSING(SSobj, src)
no_masters_time = 0
visible_message("<span class='notice'>[nickname] buzzes and lifts into the air.</span>")
visible_message(span_notice("[nickname] buzzes and lifts into the air."))
/obj/item/uav/proc/power_down()
if(state != UAV_ON)
@@ -258,7 +258,7 @@
set_light_on(FALSE)
LAZYCLEARLIST(masters)
STOP_PROCESSING(SSobj, src)
visible_message("<span class='notice'>[nickname] gracefully settles onto the ground.</span>")
visible_message(span_notice("[nickname] gracefully settles onto the ground."))
//////////////// Helpers
/obj/item/uav/get_cell()
@@ -337,7 +337,7 @@
return
/obj/item/uav/attack_generic(var/mob/user, var/damage, var/attack_verb)
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
visible_message(span_danger("[user] [attack_verb] the [src]!"))
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
user.do_attack_animation(src)
health -= damage
@@ -357,7 +357,7 @@
die()
/obj/item/uav/proc/die()
visible_message("<span class='danger'>[src] shorts out and explodes!</span>")
visible_message(span_danger("[src] shorts out and explodes!"))
power_down()
var/turf/T = get_turf(src)
qdel(src)
+11 -11
View File
@@ -79,27 +79,27 @@ AI MODULES
else if(istype(AM, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = AM
if(R.stat == DEAD)
to_chat(user, "<span class='warning'>Law Upload Error: Unit is nonfunctional.</span>")
to_chat(user, span_warning("Law Upload Error: Unit is nonfunctional."))
return
if(R.emagged)
to_chat(user, "<span class='warning'>Law Upload Error: Cannot obtain write access to laws.</span>")
to_chat(R, "<span class='danger'>Law modification attempt detected. Blocking.</span>")
to_chat(user, span_warning("Law Upload Error: Cannot obtain write access to laws."))
to_chat(R, span_danger("Law modification attempt detected. Blocking."))
return
if(R.connected_ai)
to_chat(user, "<span class='warning'>Law Upload Error: Unit is slaved to an AI.</span>")
to_chat(user, span_warning("Law Upload Error: Unit is slaved to an AI."))
return
R.visible_message("<span class='danger'>\The [user] slides a law module into \the [R].</span>")
to_chat(R, "<span class='danger'>Local law upload in progress.</span>")
to_chat(user, "<span class='notice'>Uploading laws from board. This will take a moment...</span>")
R.visible_message(span_danger("\The [user] slides a law module into \the [R]."))
to_chat(R, span_danger("Local law upload in progress."))
to_chat(user, span_notice("Uploading laws from board. This will take a moment..."))
if(do_after(user, 10 SECONDS))
transmitInstructions(R, user)
to_chat(R, "These are your laws now:")
R.show_laws()
to_chat(user, "<span class='notice'>Law upload complete. Unit's laws have been modified.</span>")
to_chat(user, span_notice("Law upload complete. Unit's laws have been modified."))
else
to_chat(user, "<span class='warning'>Law Upload Error: Law board was removed before upload was complete. Aborting.</span>")
to_chat(R, "<span class='notice'>Law upload aborted.</span>")
to_chat(user, span_warning("Law Upload Error: Law board was removed before upload was complete. Aborting."))
to_chat(R, span_notice("Law upload aborted."))
/obj/item/aiModule/proc/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
@@ -395,7 +395,7 @@ AI MODULES
log_law_changes(target, sender)
lawchanges.Add("The law is '[newFreeFormLaw]'")
to_chat(target, "<span class='danger'>BZZZZT</span>")
to_chat(target, span_danger("BZZZZT"))
var/law = "[newFreeFormLaw]"
target.add_ion_law(law)
target.show_laws()
+1 -1
View File
@@ -169,7 +169,7 @@
else
return
playsound(src, 'sound/effects/pop.ogg', 50, FALSE)
to_chat(user, "<span class='notice'>You change RCD's mode to '[choice]'.</span>")
to_chat(user, span_notice("You change RCD's mode to '[choice]'."))
//////////////////
/obj/item/rcd/electric/update_icon()
+8 -8
View File
@@ -72,16 +72,16 @@
/obj/item/rms/proc/drain_battery(user, battery)
var/obj/item/cell/C = battery
if(stored_charge == max_charge)
to_chat(user, "<span class='notice'>The Rapid Material Synthesizer is full on charge!.</span>")
to_chat(user, span_notice("The Rapid Material Synthesizer is full on charge!."))
if(C.charge == 0)
to_chat(user, "<span class='notice'>The battery has no charge.</span>")
to_chat(user, span_notice("The battery has no charge."))
else
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 2,target = C))
stored_charge += C.charge
C.charge = 0
C.update_icon()
to_chat(user, "<span class='notice'>You drain [C].</span>")
to_chat(user, span_notice("You drain [C]."))
stored_charge = CLAMP(stored_charge, 0, max_charge)
update_icon()
@@ -101,13 +101,13 @@
var/obj/product
if(!overcharge)
if(!can_afford(charge_cost))
to_chat(user, "<span class='notice'>There is not enough charge to use this mode.</span>")
to_chat(user, span_notice("There is not enough charge to use this mode."))
return
else
consume_resources(charge_cost)
else
if(!can_afford(charge_cost_o))
to_chat(user, "<span class='notice'>There is not enough charge to use the overcharged mode.</span>")
to_chat(user, span_notice("There is not enough charge to use the overcharged mode."))
return
else
consume_resources(charge_cost_o)
@@ -206,7 +206,7 @@
use_rms(target, user)
return
else
to_chat(user, "<span class='notice'>Invalid target for the device.</span>")
to_chat(user, span_notice("Invalid target for the device."))
return
/obj/item/rms/attack_self(mob/user)
@@ -251,9 +251,9 @@
if(W.has_tool_quality(TOOL_MULTITOOL))
overcharge = !overcharge
if(overcharge)
to_chat(user, "<span class='notice'>The Rapid Material Synthesizer quietly whirrs...</span>")
to_chat(user, span_notice("The Rapid Material Synthesizer quietly whirrs..."))
else
to_chat(user, "<span class='notice'>The Rapid Material Synthesizer resumes normal operation.</span>")
to_chat(user, span_notice("The Rapid Material Synthesizer resumes normal operation."))
return ..()
+8 -8
View File
@@ -178,7 +178,7 @@
. = TRUE
if((mode & DESTROY_MODE) && can_destroy_pipe)
to_chat(user, "<span class='notice'>You start destroying a pipe...</span>")
to_chat(user, span_notice("You start destroying a pipe..."))
playsound(src, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 2, target = A))
activate()
@@ -190,7 +190,7 @@
var/obj/machinery/atmospherics/pipe/P = A
playsound(src, 'sound/machines/click.ogg', 50, 1)
P.change_color(pipe_colors[paint_color])
user.visible_message("<span class='notice'>[user] paints \the [P] [paint_color].</span>", "<span class='notice'>You paint \the [P] [paint_color].</span>")
user.visible_message(span_notice("[user] paints \the [P] [paint_color]."), span_notice("You paint \the [P] [paint_color]."))
return
if(mode & BUILD_MODE) //Making pipes
@@ -200,7 +200,7 @@
return ..()
playsound(src, 'sound/machines/click.ogg', 50, 1)
if(istype(recipe, /datum/pipe_recipe/meter))
to_chat(user, "<span class='notice'>You start building a meter...</span>")
to_chat(user, span_notice("You start building a meter..."))
if(do_after(user, 2, target = A))
activate()
var/obj/item/pipe_meter/PM = new /obj/item/pipe_meter(get_turf(A))
@@ -209,7 +209,7 @@
do_wrench(PM, user)
else if(istype(recipe, /datum/pipe_recipe/pipe))
var/datum/pipe_recipe/pipe/R = recipe
to_chat(user, "<span class='notice'>You start building a pipe...</span>")
to_chat(user, span_notice("You start building a pipe..."))
if(do_after(user, 2, target = A))
activate()
var/obj/machinery/atmospherics/path = R.pipe_type
@@ -234,15 +234,15 @@
return ..()
A = get_turf(A)
if(istype(A, /turf/unsimulated))
to_chat(user, "<span class='warning'>[src]'s error light flickers; there's something in the way!</span>")
to_chat(user, span_warning("[src]'s error light flickers; there's something in the way!"))
return
to_chat(user, "<span class='notice'>You start building a disposals pipe...</span>")
to_chat(user, span_notice("You start building a disposals pipe..."))
playsound(src, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 4, target = A))
var/obj/structure/disposalconstruct/C = new(A, R.pipe_type, queued_p_dir, queued_p_flipped, R.subtype)
if(!C.can_place())
to_chat(user, "<span class='warning'>There's not enough room to build that here!</span>")
to_chat(user, span_warning("There's not enough room to build that here!"))
qdel(C)
return
@@ -292,4 +292,4 @@
#undef BUILD_MODE
#undef WRENCH_MODE
#undef DESTROY_MODE
#undef PAINT_MODE
#undef PAINT_MODE
+11 -11
View File
@@ -37,26 +37,26 @@ RSF
/obj/item/rsf/examine(mob/user)
. = ..()
if(get_dist(user, src) == 0)
. += "<span class='notice'>It currently holds [stored_matter]/30 fabrication-units.</span>"
. += span_notice("It currently holds [stored_matter]/30 fabrication-units.")
/obj/item/rsf/attackby(obj/item/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/rcd_ammo))
if ((stored_matter + 10) > 30)
to_chat(user, "<span class='warning'>The RSF can't hold any more matter.</span>")
to_chat(user, span_warning("The RSF can't hold any more matter."))
return
qdel(W)
stored_matter += 10
playsound(src, 'sound/machines/click.ogg', 10, 1)
to_chat(user,"<span class='notice'>The RSF now holds [stored_matter]/30 fabrication-units.</span>")
to_chat(user,span_notice("The RSF now holds [stored_matter]/30 fabrication-units."))
return
/obj/item/rsf/CtrlClick(mob/living/user)
if(!Adjacent(user) || !istype(user))
to_chat(user,"<span class='notice'>You are too far away.</span>")
to_chat(user,span_notice("You are too far away."))
return
var/glass_choice = tgui_input_list(user, "Please choose which type of glass you would like to produce.", "Glass Choice", container_types)
@@ -69,23 +69,23 @@ RSF
playsound(src, 'sound/effects/pop.ogg', 50, 0)
if (mode == 1)
mode = 2
to_chat(user,"<span class='notice'>Changed dispensing mode to 'Container'.</span>")
to_chat(user,span_notice("Changed dispensing mode to 'Container'."))
return
if (mode == 2)
mode = 3
to_chat(user,"<span class='notice'>Changed dispensing mode to 'Paper'</span>")
to_chat(user,span_notice("Changed dispensing mode to 'Paper'"))
return
if (mode == 3)
mode = 4
to_chat(user,"<span class='notice'>Changed dispensing mode to 'Pen'</span>")
to_chat(user,span_notice("Changed dispensing mode to 'Pen'"))
return
if (mode == 4)
mode = 5
to_chat(user,"<span class='notice'>Changed dispensing mode to 'Dice Pack'</span>")
to_chat(user,span_notice("Changed dispensing mode to 'Dice Pack'"))
return
if (mode == 5)
mode = 1
to_chat(user,"<span class='notice'>Changed dispensing mode to 'Cigarette'</span>")
to_chat(user,span_notice("Changed dispensing mode to 'Cigarette'"))
return
/obj/item/rsf/afterattack(atom/A, mob/user as mob, proximity)
@@ -124,7 +124,7 @@ RSF
product = new /obj/item/storage/pill_bottle/dice()
used_energy = 200
to_chat(user,"<span class='notice'>Dispensing [product ? product : "product"]...</span>")
to_chat(user,span_notice("Dispensing [product ? product : "product"]..."))
product.loc = get_turf(A)
if(isrobot(user))
@@ -133,4 +133,4 @@ RSF
R.cell.use(used_energy)
else
stored_matter--
to_chat(user,"<span class='notice'>The RSF now holds [stored_matter]/30 fabrication-units.</span>")
to_chat(user,span_notice("The RSF now holds [stored_matter]/30 fabrication-units."))

Some files were not shown because too many files have changed in this diff Show More