mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-14 00:26:02 +01:00
refactors most spans
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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. /////////
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
. = ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]'."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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]'."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]°C ([M.bodytemperature*1.8-459.67]°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]°C ([M.bodytemperature*1.8-459.67]°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)
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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!"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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]"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user