to_chat replacing stream operator

This commit is contained in:
Arokha Sieyes
2020-02-15 12:40:07 -05:00
committed by Leshana
parent 5aaba55222
commit 5b15917d32
712 changed files with 4250 additions and 4220 deletions

View File

@@ -19,7 +19,7 @@
set name = "Toggle Debug Messages" set name = "Toggle Debug Messages"
set category = "Debug" set category = "Debug"
M.debug = !M.debug M.debug = !M.debug
usr << "[M]: Debug messages toggled [M.debug? "on" : "off"]." to_chat(usr, "[M]: Debug messages toggled [M.debug? "on" : "off"].")
//Generalized gas pumping proc. //Generalized gas pumping proc.
//Moves gas from one gas_mixture to another and returns the amount of power needed (assuming 1 second), or -1 if no gas was pumped. //Moves gas from one gas_mixture to another and returns the amount of power needed (assuming 1 second), or -1 if no gas was pumped.

View File

@@ -201,7 +201,7 @@
/obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user) /obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user)
if(..(user, 1)) if(..(user, 1))
user << "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" to_chat(user, "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W")
/obj/machinery/atmospherics/unary/vent_pump/power_change() /obj/machinery/atmospherics/unary/vent_pump/power_change()

View File

@@ -389,11 +389,11 @@
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user) /obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
if(..(user, 1)) if(..(user, 1))
user << "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" to_chat(user, "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W")
else else
user << "You are too far away to read the gauge." to_chat(user, "You are too far away to read the gauge.")
if(welded) if(welded)
user << "It seems welded shut." to_chat(user, "It seems welded shut.")
/obj/machinery/atmospherics/unary/vent_pump/power_change() /obj/machinery/atmospherics/unary/vent_pump/power_change()
var/old_stat = stat var/old_stat = stat

View File

@@ -288,6 +288,6 @@
/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user) /obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user)
if(..(user, 1)) if(..(user, 1))
user << "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" to_chat(user, "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W")
else else
user << "You are too far away to read the gauge." to_chat(user, "You are too far away to read the gauge.")

View File

@@ -308,4 +308,4 @@
/obj/machinery/atmospherics/valve/examine(mob/user) /obj/machinery/atmospherics/valve/examine(mob/user)
..() ..()
user << "It is [open ? "open" : "closed"]." to_chat(user, "It is [open ? "open" : "closed"].")

View File

@@ -79,13 +79,13 @@ Class Procs:
if(!direct()) if(!direct())
state |= CONNECTION_DIRECT state |= CONNECTION_DIRECT
edge.direct++ edge.direct++
//world << "Marked direct." //to_world("Marked direct.")
/connection/proc/mark_indirect() /connection/proc/mark_indirect()
if(direct()) if(direct())
state &= ~CONNECTION_DIRECT state &= ~CONNECTION_DIRECT
edge.direct-- edge.direct--
//world << "Marked indirect." //to_world("Marked indirect.")
/connection/proc/mark_space() /connection/proc/mark_space()
state |= CONNECTION_SPACE state |= CONNECTION_SPACE
@@ -99,18 +99,18 @@ Class Procs:
/connection/proc/erase() /connection/proc/erase()
edge.remove_connection(src) edge.remove_connection(src)
state |= CONNECTION_INVALID state |= CONNECTION_INVALID
//world << "Connection Erased: [state]" //to_world("Connection Erased: [state]")
/connection/proc/update() /connection/proc/update()
//world << "Updated, \..." //to_world("Updated, \...")
if(!istype(A,/turf/simulated)) if(!istype(A,/turf/simulated))
//world << "Invalid A." //to_world("Invalid A.")
erase() erase()
return return
var/block_status = air_master.air_blocked(A,B) var/block_status = air_master.air_blocked(A,B)
if(block_status & AIR_BLOCKED) if(block_status & AIR_BLOCKED)
//world << "Blocked connection." //to_world("Blocked connection.")
erase() erase()
return return
else if(block_status & ZONE_BLOCKED) else if(block_status & ZONE_BLOCKED)
@@ -122,14 +122,14 @@ Class Procs:
if(state & CONNECTION_SPACE) if(state & CONNECTION_SPACE)
if(!b_is_space) if(!b_is_space)
//world << "Invalid B." //to_world("Invalid B.")
erase() erase()
return return
if(A.zone != zoneA) if(A.zone != zoneA)
//world << "Zone changed, \..." //to_world("Zone changed, \...")
if(!A.zone) if(!A.zone)
erase() erase()
//world << "erased." //to_world("erased.")
return return
else else
edge.remove_connection(src) edge.remove_connection(src)
@@ -137,22 +137,22 @@ Class Procs:
edge.add_connection(src) edge.add_connection(src)
zoneA = A.zone zoneA = A.zone
//world << "valid." //to_world("valid.")
return return
else if(b_is_space) else if(b_is_space)
//world << "Invalid B." //to_world("Invalid B.")
erase() erase()
return return
if(A.zone == B.zone) if(A.zone == B.zone)
//world << "A == B" //to_world("A == B")
erase() erase()
return return
if(A.zone != zoneA || (zoneB && (B.zone != zoneB))) if(A.zone != zoneA || (zoneB && (B.zone != zoneB)))
//world << "Zones changed, \..." //to_world("Zones changed, \...")
if(A.zone && B.zone) if(A.zone && B.zone)
edge.remove_connection(src) edge.remove_connection(src)
edge = air_master.get_edge(A.zone, B.zone) edge = air_master.get_edge(A.zone, B.zone)
@@ -160,9 +160,9 @@ Class Procs:
zoneA = A.zone zoneA = A.zone
zoneB = B.zone zoneB = B.zone
else else
//world << "erased." //to_world("erased.")
erase() erase()
return return
//world << "valid." //to_world("valid.")

View File

@@ -72,10 +72,10 @@ Class Procs:
/connection_edge/proc/add_connection(connection/c) /connection_edge/proc/add_connection(connection/c)
coefficient++ coefficient++
if(c.direct()) direct++ if(c.direct()) direct++
//world << "Connection added: [type] Coefficient: [coefficient]" //to_world("Connection added: [type] Coefficient: [coefficient]")
/connection_edge/proc/remove_connection(connection/c) /connection_edge/proc/remove_connection(connection/c)
//world << "Connection removed: [type] Coefficient: [coefficient-1]" //to_world("Connection removed: [type] Coefficient: [coefficient-1]")
coefficient-- coefficient--
if(coefficient <= 0) if(coefficient <= 0)
erase() erase()
@@ -85,7 +85,7 @@ Class Procs:
/connection_edge/proc/erase() /connection_edge/proc/erase()
air_master.remove_edge(src) air_master.remove_edge(src)
//world << "[type] Erased." //to_world("[type] Erased.")
/connection_edge/proc/tick() /connection_edge/proc/tick()
@@ -128,7 +128,7 @@ Class Procs:
A.edges.Add(src) A.edges.Add(src)
B.edges.Add(src) B.edges.Add(src)
//id = edge_id(A,B) //id = edge_id(A,B)
//world << "New edge between [A] and [B]" //to_world("New edge between [A] and [B]")
/connection_edge/zone/add_connection(connection/c) /connection_edge/zone/add_connection(connection/c)
. = ..() . = ..()
@@ -198,7 +198,7 @@ Class Procs:
A.edges.Add(src) A.edges.Add(src)
air = B.return_air() air = B.return_air()
//id = 52*A.id //id = 52*A.id
//world << "New edge from [A] to [B]." //to_world("New edge from [A] to [B].")
/connection_edge/unsimulated/add_connection(connection/c) /connection_edge/unsimulated/add_connection(connection/c)
. = ..() . = ..()

View File

@@ -22,11 +22,11 @@ client/proc/Zone_Info(turf/T as null|turf)
if(istype(T,/turf/simulated) && T:zone) if(istype(T,/turf/simulated) && T:zone)
T:zone:dbg_data(src) T:zone:dbg_data(src)
else else
mob << "No zone here." to_chat(mob, "No zone here.")
var/datum/gas_mixture/mix = T.return_air() var/datum/gas_mixture/mix = T.return_air()
mob << "[mix.return_pressure()] kPa [mix.temperature]C" to_chat(mob, "[mix.return_pressure()] kPa [mix.temperature]C")
for(var/g in mix.gas) for(var/g in mix.gas)
mob << "[g]: [mix.gas[g]]\n" to_chat(mob, "[g]: [mix.gas[g]]\n")
else else
if(zone_debug_images) if(zone_debug_images)
for(var/zone in zone_debug_images) for(var/zone in zone_debug_images)
@@ -56,9 +56,9 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
if(direction == "N/A") if(direction == "N/A")
if(!(T.c_airblock(T) & AIR_BLOCKED)) if(!(T.c_airblock(T) & AIR_BLOCKED))
mob << "The turf can pass air! :D" to_chat(mob, "The turf can pass air! :D")
else else
mob << "No air passage :x" to_chat(mob, "No air passage :x")
return return
var/turf/simulated/other_turf = get_step(T, direction_list[direction]) var/turf/simulated/other_turf = get_step(T, direction_list[direction])
@@ -70,29 +70,29 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
if(o_block & AIR_BLOCKED) if(o_block & AIR_BLOCKED)
if(t_block & AIR_BLOCKED) if(t_block & AIR_BLOCKED)
mob << "Neither turf can connect. :(" to_chat(mob, "Neither turf can connect. :(")
else else
mob << "The initial turf only can connect. :\\" to_chat(mob, "The initial turf only can connect. :\\")
else else
if(t_block & AIR_BLOCKED) if(t_block & AIR_BLOCKED)
mob << "The other turf can connect, but not the initial turf. :/" to_chat(mob, "The other turf can connect, but not the initial turf. :/")
else else
mob << "Both turfs can connect! :)" to_chat(mob, "Both turfs can connect! :)")
mob << "Additionally, \..." to_chat(mob, "Additionally, \...")
if(o_block & ZONE_BLOCKED) if(o_block & ZONE_BLOCKED)
if(t_block & ZONE_BLOCKED) if(t_block & ZONE_BLOCKED)
mob << "neither turf can merge." to_chat(mob, "neither turf can merge.")
else else
mob << "the other turf cannot merge." to_chat(mob, "the other turf cannot merge.")
else else
if(t_block & ZONE_BLOCKED) if(t_block & ZONE_BLOCKED)
mob << "the initial turf cannot merge." to_chat(mob, "the initial turf cannot merge.")
else else
mob << "both turfs can merge." to_chat(mob, "both turfs can merge.")
client/proc/ZASSettings() client/proc/ZASSettings()
set category = "Debug" set category = "Debug"

View File

@@ -99,7 +99,7 @@
var/s_block = c_airblock(src) var/s_block = c_airblock(src)
if(s_block & AIR_BLOCKED) if(s_block & AIR_BLOCKED)
#ifdef ZASDBG #ifdef ZASDBG
if(verbose) world << "Self-blocked." if(verbose) to_world("Self-blocked.")
//dbg(blocked) //dbg(blocked)
#endif #endif
if(zone) if(zone)
@@ -131,7 +131,7 @@
if(block & AIR_BLOCKED) if(block & AIR_BLOCKED)
#ifdef ZASDBG #ifdef ZASDBG
if(verbose) world << "[d] is blocked." if(verbose) to_world("[d] is blocked.")
//unsim.dbg(air_blocked, turn(180,d)) //unsim.dbg(air_blocked, turn(180,d))
#endif #endif
@@ -141,7 +141,7 @@
if(r_block & AIR_BLOCKED) if(r_block & AIR_BLOCKED)
#ifdef ZASDBG #ifdef ZASDBG
if(verbose) world << "[d] is blocked." if(verbose) to_world("[d] is blocked.")
//dbg(air_blocked, d) //dbg(air_blocked, d)
#endif #endif
@@ -172,7 +172,7 @@
// we are blocking them and not blocking ourselves - this prevents tiny zones from forming on doorways. // we are blocking them and not blocking ourselves - this prevents tiny zones from forming on doorways.
if(((block & ZONE_BLOCKED) && !(r_block & ZONE_BLOCKED)) || ((r_block & ZONE_BLOCKED) && !(s_block & ZONE_BLOCKED))) if(((block & ZONE_BLOCKED) && !(r_block & ZONE_BLOCKED)) || ((r_block & ZONE_BLOCKED) && !(s_block & ZONE_BLOCKED)))
#ifdef ZASDBG #ifdef ZASDBG
if(verbose) world << "[d] is zone blocked." if(verbose) to_world("[d] is zone blocked.")
//dbg(zone_blocked, d) //dbg(zone_blocked, d)
#endif #endif
@@ -186,22 +186,22 @@
#ifdef ZASDBG #ifdef ZASDBG
dbg(assigned) dbg(assigned)
if(verbose) world << "Added to [zone]" if(verbose) to_world("Added to [zone]")
#endif #endif
else if(sim.zone != zone) else if(sim.zone != zone)
#ifdef ZASDBG #ifdef ZASDBG
if(verbose) world << "Connecting to [sim.zone]" if(verbose) to_world("Connecting to [sim.zone]")
#endif #endif
air_master.connect(src, sim) air_master.connect(src, sim)
#ifdef ZASDBG #ifdef ZASDBG
else if(verbose) world << "[d] has same zone." else if(verbose) to_world("[d] has same zone.")
else if(verbose) world << "[d] has invalid zone." else if(verbose) to_world("[d] has invalid zone.")
#endif #endif
else else

View File

@@ -169,7 +169,7 @@ var/global/vs_control/vsc = new
vars[ch] = vw vars[ch] = vw
if(how == "Toggle") if(how == "Toggle")
newvar = (newvar?"ON":"OFF") newvar = (newvar?"ON":"OFF")
world << "<span class='notice'><b>[key_name(user)] changed the setting [display_description] to [newvar].</b></span>" to_world("<span class='notice'><b>[key_name(user)] changed the setting [display_description] to [newvar].</b></span>")
if(ch in plc.settings) if(ch in plc.settings)
ChangeSettingsDialog(user,plc.settings) ChangeSettingsDialog(user,plc.settings)
else else
@@ -322,7 +322,7 @@ var/global/vs_control/vsc = new
plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION) plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION)
world << "<span class='notice'><b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b></span>" to_world("<span class='notice'><b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b></span>")
/pl_control/var/list/settings = list() /pl_control/var/list/settings = list()

View File

@@ -168,15 +168,16 @@ Class Procs:
E.recheck() E.recheck()
/zone/proc/dbg_data(mob/M) /zone/proc/dbg_data(mob/M)
M << name to_chat(M,name)
for(var/g in air.gas) for(var/g in air.gas)
M << "[gas_data.name[g]]: [air.gas[g]]" to_chat(M, "[gas_data.name[g]]: [air.gas[g]]")
M << "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]<5D>K ([air.temperature - T0C]<5D>C)" to_chat(M, "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]<5D>K ([air.temperature - T0C]<5D>C)")
M << "O2 per N2: [(air.gas["nitrogen"] ? air.gas["oxygen"]/air.gas["nitrogen"] : "N/A")] Moles: [air.total_moles]" to_chat(M, "O2 per N2: [(air.gas["nitrogen"] ? air.gas["oxygen"]/air.gas["nitrogen"] : "N/A")] Moles: [air.total_moles]")
M << "Simulated: [contents.len] ([air.group_multiplier])" to_chat(M, "Simulated: [contents.len] ([air.group_multiplier])")
//M << "Unsimulated: [unsimulated_contents.len]" //to_chat(M, "Unsimulated: [unsimulated_contents.len]")
//M << "Edges: [edges.len]" //to_chat(M, "Edges: [edges.len]")
if(invalid) M << "Invalid!" if(invalid)
to_chat(M, "Invalid!")
var/zone_edges = 0 var/zone_edges = 0
var/space_edges = 0 var/space_edges = 0
var/space_coefficient = 0 var/space_coefficient = 0
@@ -185,10 +186,10 @@ Class Procs:
else else
space_edges++ space_edges++
space_coefficient += E.coefficient space_coefficient += E.coefficient
M << "[E:air:return_pressure()]kPa" to_chat(M, "[E:air:return_pressure()]kPa")
M << "Zone Edges: [zone_edges]" to_chat(M, "Zone Edges: [zone_edges]")
M << "Space Edges: [space_edges] ([space_coefficient] connections)" to_chat(M, "Space Edges: [space_edges] ([space_coefficient] connections)")
//for(var/turf/T in unsimulated_contents) //for(var/turf/T in unsimulated_contents)
// M << "[T] at ([T.x],[T.y])" // to_chat(M, "[T] at ([T.x],[T.y])")

View File

@@ -518,7 +518,7 @@ proc/listclearnulls(list/list)
//Don't use this on lists larger than half a dozen or so //Don't use this on lists larger than half a dozen or so
/proc/insertion_sort_numeric_list_ascending(var/list/L) /proc/insertion_sort_numeric_list_ascending(var/list/L)
//world.log << "ascending len input: [L.len]" //to_world_log("ascending len input: [L.len]")
var/list/out = list(pop(L)) var/list/out = list(pop(L))
for(var/entry in L) for(var/entry in L)
if(isnum(entry)) if(isnum(entry))
@@ -531,13 +531,13 @@ proc/listclearnulls(list/list)
if(!success) if(!success)
out.Add(entry) out.Add(entry)
//world.log << " output: [out.len]" //to_world_log(" output: [out.len]")
return out return out
/proc/insertion_sort_numeric_list_descending(var/list/L) /proc/insertion_sort_numeric_list_descending(var/list/L)
//world.log << "descending len input: [L.len]" //to_world_log("descending len input: [L.len]")
var/list/out = insertion_sort_numeric_list_ascending(L) var/list/out = insertion_sort_numeric_list_ascending(L)
//world.log << " output: [out.len]" //to_world_log(" output: [out.len]")
return reverselist(out) return reverselist(out)
/proc/dd_sortedObjectList(var/list/L, var/cache=list()) /proc/dd_sortedObjectList(var/list/L, var/cache=list())

View File

@@ -5,12 +5,12 @@
A.add_fingerprint(user) A.add_fingerprint(user)
var/list/result = A.atmosanalyze(user) var/list/result = A.atmosanalyze(user)
if(result && result.len) if(result && result.len)
user << "<span class='notice'>Results of the analysis[src == A ? "" : " of \the [A]"]</span>" to_chat(user, "<span class='notice'>Results of the analysis[src == A ? "" : " of \the [A]"]</span>")
for(var/line in result) for(var/line in result)
user << "<span class='notice'>[line]</span>" to_chat(user, "<span class='notice'>[line]</span>")
return 1 return 1
user << "<span class='warning'>Your [src] flashes a red light as it fails to analyze \the [A].</span>" to_chat(user, "<span class='warning'>Your [src] flashes a red light as it fails to analyze \the [A].</span>")
return 0 return 0
/proc/atmosanalyzer_scan(var/atom/target, var/datum/gas_mixture/mixture, var/mob/user) /proc/atmosanalyzer_scan(var/atom/target, var/datum/gas_mixture/mixture, var/mob/user)

View File

@@ -206,7 +206,7 @@ var/global/list/string_slot_flags = list(
var/list/L = chemical_reactions_list[reaction] var/list/L = chemical_reactions_list[reaction]
for(var/t in L) for(var/t in L)
. += " has: [t]\n" . += " has: [t]\n"
world << . to_world(.)
*/ */
//Hexidecimal numbers //Hexidecimal numbers
var/global/list/hexNums = list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") var/global/list/hexNums = list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")

View File

@@ -167,7 +167,7 @@ mob
Output_Icon() Output_Icon()
set name = "2. Output Icon" set name = "2. Output Icon"
src<<"Icon is: \icon[getFlatIcon(src)]" to_chat(src, "Icon is: \icon[getFlatIcon(src)]")
Label_Icon() Label_Icon()
set name = "3. Label Icon" set name = "3. Label Icon"

View File

@@ -9,16 +9,16 @@
/proc/error(msg) /proc/error(msg)
world.log << "## ERROR: [msg][log_end]" to_world_log("## ERROR: [msg][log_end]")
#define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].") #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].")
//print a warning message to world.log //print a warning message to world.log
/proc/warning(msg) /proc/warning(msg)
world.log << "## WARNING: [msg][log_end]" to_world_log("## WARNING: [msg][log_end]")
//print a testing-mode debug message to world.log //print a testing-mode debug message to world.log
/proc/testing(msg) /proc/testing(msg)
world.log << "## TESTING: [msg][log_end]" to_world_log("## TESTING: [msg][log_end]")
/proc/log_admin(text) /proc/log_admin(text)
admin_log.Add(text) admin_log.Add(text)
@@ -36,7 +36,7 @@
for(var/client/C in admins) for(var/client/C in admins)
if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs)) if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs))
C << "DEBUG: [text]" to_chat(C, "DEBUG: [text]")
/proc/log_game(text) /proc/log_game(text)
if (config.log_game) if (config.log_game)
@@ -141,19 +141,19 @@
/proc/log_to_dd(text) /proc/log_to_dd(text)
world.log << text //this comes before the config check because it can't possibly runtime to_world_log(text) //this comes before the config check because it can't possibly runtime
if(config.log_world_output) if(config.log_world_output)
diary << "\[[time_stamp()]]DD_OUTPUT: [text][log_end]" diary << "\[[time_stamp()]]DD_OUTPUT: [text][log_end]"
/proc/log_error(text) /proc/log_error(text)
world.log << text to_world_log(text)
error_log << "\[[time_stamp()]]RUNTIME: [text][log_end]" error_log << "\[[time_stamp()]]RUNTIME: [text][log_end]"
/proc/log_misc(text) /proc/log_misc(text)
diary << "\[[time_stamp()]]MISC: [text][log_end]" diary << "\[[time_stamp()]]MISC: [text][log_end]"
/proc/log_unit_test(text) /proc/log_unit_test(text)
world.log << "## UNIT_TEST: [text]" to_world_log("## UNIT_TEST: [text]")
/proc/report_progress(var/progress_message) /proc/report_progress(var/progress_message)
admin_notice("<span class='boldannounce'>[progress_message]</span>", R_DEBUG) admin_notice("<span class='boldannounce'>[progress_message]</span>", R_DEBUG)

View File

@@ -68,7 +68,7 @@
if (4.0) return EAST if (4.0) return EAST
if (8.0) return WEST if (8.0) return WEST
else else
world.log << "UNKNOWN DIRECTION: [direction]" to_world_log("UNKNOWN DIRECTION: [direction]")
// Turns a direction into text // Turns a direction into text
/proc/dir2text(direction) /proc/dir2text(direction)

View File

@@ -367,7 +367,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
if(isAI(src)) if(isAI(src))
var/mob/living/silicon/ai/A = src var/mob/living/silicon/ai/A = src
oldname = null//don't bother with the records update crap oldname = null//don't bother with the records update crap
//world << "<b>[newname] is the AI!</b>" //to_world("<b>[newname] is the AI!</b>")
//world << sound('sound/AI/newAI.ogg') //world << sound('sound/AI/newAI.ogg')
// Set eyeobj name // Set eyeobj name
A.SetName(newname) A.SetName(newname)

View File

@@ -5,10 +5,10 @@
#define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") #define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
#define to_chat(target, message) target << message #define to_chat(target, message) target << message
#define to_world(message) world << message #define to_world(message) to_chat(world, message)
#define to_world_log(message) world.log << message #define to_world_log(message) world.log << message
// TODO - Baystation has this log to crazy places. For now lets just world.log, but maybe look into it later. // TODO - Baystation has this log to crazy places. For now lets just world.log, but maybe look into it later.
#define log_world(message) world.log << message #define log_world(message) to_world_log(message)
#define to_file(file_entry, source_var) file_entry << source_var #define to_file(file_entry, source_var) file_entry << source_var
#define from_file(file_entry, target_var) file_entry >> target_var #define from_file(file_entry, target_var) file_entry >> target_var
#define show_browser(target, browser_content, browser_name) target << browse(browser_content, browser_name) #define show_browser(target, browser_content, browser_name) target << browse(browser_content, browser_name)
@@ -18,6 +18,7 @@
#define DIRECT_OUTPUT(A, B) A << B #define DIRECT_OUTPUT(A, B) A << B
#define SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image) #define SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image)
#define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound)
//#define WRITE_LOG is in logging.dm
#define CanInteract(user, state) (CanUseTopic(user, state) == STATUS_INTERACTIVE) #define CanInteract(user, state) (CanUseTopic(user, state) == STATUS_INTERACTIVE)

View File

@@ -269,7 +269,7 @@
// Makes the ability be triggered. The subclasses of this are responsible for carrying it out in whatever way it needs to. // Makes the ability be triggered. The subclasses of this are responsible for carrying it out in whatever way it needs to.
/obj/screen/ability/proc/activate() /obj/screen/ability/proc/activate()
world << "[src] had activate() called." to_world("[src] had activate() called.")
return return
// This checks if the ability can be used. // This checks if the ability can be used.
@@ -304,7 +304,7 @@
if(object_used && verb_to_call) if(object_used && verb_to_call)
call(object_used,verb_to_call)(arguments_to_use) call(object_used,verb_to_call)(arguments_to_use)
// call(object_used,verb_to_call)(arguments_to_use) // call(object_used,verb_to_call)(arguments_to_use)
// world << "Attempted to call([object_used],[verb_to_call])([arguments_to_use])" // to_world("Attempted to call([object_used],[verb_to_call])([arguments_to_use])")
// if(hascall(object_used, verb_to_call)) // if(hascall(object_used, verb_to_call))
// call(object_used,verb_to_call)(arguments_to_use) // call(object_used,verb_to_call)(arguments_to_use)
// else // else

View File

@@ -326,11 +326,11 @@ datum/hud/New(mob/owner)
set hidden = 1 set hidden = 1
if(!hud_used) if(!hud_used)
usr << "<span class='warning'>This mob type does not use a HUD.</span>" to_chat(usr, "<span class='warning'>This mob type does not use a HUD.</span>")
return return
if(!ishuman(src)) if(!ishuman(src))
usr << "<span class='warning'>Inventory hiding is currently only supported for human mobs, sorry.</span>" to_chat(usr, "<span class='warning'>Inventory hiding is currently only supported for human mobs, sorry.</span>")
return return
if(!client) return if(!client) return

View File

@@ -223,11 +223,11 @@ var/obj/screen/robot_inventory
//r.client.screen += robot_inventory //"store" icon //r.client.screen += robot_inventory //"store" icon
if(!r.module) if(!r.module)
usr << "<span class='danger'>No module selected</span>" to_chat(usr, "<span class='danger'>No module selected</span>")
return return
if(!r.module.modules) if(!r.module.modules)
usr << "<span class='danger'>Selected module has no modules to select</span>" to_chat(usr, "<span class='danger'>Selected module has no modules to select</span>")
return return
if(!r.robot_modules_background) if(!r.robot_modules_background)

View File

@@ -205,7 +205,7 @@
if(iscarbon(usr)) if(iscarbon(usr))
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr
if(C.legcuffed) if(C.legcuffed)
C << "<span class='notice'>You are legcuffed! You cannot run until you get [C.legcuffed] removed!</span>" to_chat(C, "<span class='notice'>You are legcuffed! You cannot run until you get [C.legcuffed] removed!</span>")
C.m_intent = "walk" //Just incase C.m_intent = "walk" //Just incase
C.hud_used.move_intent.icon_state = "walking" C.hud_used.move_intent.icon_state = "walking"
return 1 return 1
@@ -245,7 +245,7 @@
if(!C.stat && !C.stunned && !C.paralysis && !C.restrained()) if(!C.stat && !C.stunned && !C.paralysis && !C.restrained())
if(C.internal) if(C.internal)
C.internal = null C.internal = null
C << "<span class='notice'>No longer running on internals.</span>" to_chat(C, "<span class='notice'>No longer running on internals.</span>")
if(C.internals) if(C.internals)
C.internals.icon_state = "internal0" C.internals.icon_state = "internal0"
else else
@@ -257,7 +257,7 @@
no_mask = 1 no_mask = 1
if(no_mask) if(no_mask)
C << "<span class='notice'>You are not wearing a suitable mask or helmet.</span>" to_chat(C, "<span class='notice'>You are not wearing a suitable mask or helmet.</span>")
return 1 return 1
else else
var/list/nicename = null var/list/nicename = null
@@ -338,7 +338,7 @@
//We've determined the best container now we set it as our internals //We've determined the best container now we set it as our internals
if(best) if(best)
C << "<span class='notice'>You are now running on internals from [tankcheck[best]] [from] your [nicename[best]].</span>" to_chat(C, "<span class='notice'>You are now running on internals from [tankcheck[best]] [from] your [nicename[best]].</span>")
C.internal = tankcheck[best] C.internal = tankcheck[best]
@@ -346,7 +346,7 @@
if(C.internals) if(C.internals)
C.internals.icon_state = "internal1" C.internals.icon_state = "internal1"
else else
C << "<span class='notice'>You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank.</span>" to_chat(C, "<span class='notice'>You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank.</span>")
if("act_intent") if("act_intent")
usr.a_intent_change("right") usr.a_intent_change("right")
if(I_HELP) if(I_HELP)
@@ -386,7 +386,7 @@
R.hud_used.toggle_show_robot_modules() R.hud_used.toggle_show_robot_modules()
return 1 return 1
else else
R << "You haven't selected a module yet." to_chat(R, "You haven't selected a module yet.")
if("radio") if("radio")
if(issilicon(usr)) if(issilicon(usr))
@@ -402,7 +402,7 @@
R.uneq_active() R.uneq_active()
R.hud_used.update_robot_modules_display() R.hud_used.update_robot_modules_display()
else else
R << "You haven't selected a module yet." to_chat(R, "You haven't selected a module yet.")
if("module1") if("module1")
if(istype(usr, /mob/living/silicon/robot)) if(istype(usr, /mob/living/silicon/robot))

View File

@@ -61,13 +61,13 @@
if(awaygate) if(awaygate)
user.loc = awaygate.loc user.loc = awaygate.loc
else else
user << "[src] has no destination." to_chat(user, "[src] has no destination.")
/obj/machinery/gateway/centeraway/attack_ghost(mob/user as mob) /obj/machinery/gateway/centeraway/attack_ghost(mob/user as mob)
if(stationgate) if(stationgate)
user.loc = stationgate.loc user.loc = stationgate.loc
else else
user << "[src] has no destination." to_chat(user, "[src] has no destination.")
// ------------------------------------------- // -------------------------------------------
// This was supposed to be used by adminghosts // This was supposed to be used by adminghosts

View File

@@ -110,7 +110,7 @@ var/const/tk_maxrange = 15
if(focus) if(focus)
d = max(d, get_dist(user, focus)) // whichever is further d = max(d, get_dist(user, focus)) // whichever is further
if(d > tk_maxrange) if(d > tk_maxrange)
user << "<span class='notice'>Your mind won't reach that far.</span>" to_chat(user, "<span class='notice'>Your mind won't reach that far.</span>")
return return
if(!focus) if(!focus)

View File

@@ -21,7 +21,7 @@ var/list/gamemode_cache = list()
var/log_pda = 0 // log pda messages var/log_pda = 0 // log pda messages
var/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits var/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits
var/log_runtime = 0 // logs world.log to a file var/log_runtime = 0 // logs world.log to a file
var/log_world_output = 0 // log world.log << messages var/log_world_output = 0 // log to_world_log(messages)
var/log_graffiti = 0 // logs graffiti var/log_graffiti = 0 // logs graffiti
var/sql_enabled = 0 // for sql switching var/sql_enabled = 0 // for sql switching
var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour

View File

@@ -104,7 +104,7 @@ SUBSYSTEM_DEF(vote)
else else
factor = 1.4 factor = 1.4
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor) choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
world << "<font color='purple'>Crew Transfer Factor: [factor]</font>" to_world("<font color='purple'>Crew Transfer Factor: [factor]</font>")
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"]) greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"])
. = list() // Get all options with that many votes and return them in a list . = list() // Get all options with that many votes and return them in a list
@@ -166,10 +166,10 @@ SUBSYSTEM_DEF(vote)
if(mode == VOTE_GAMEMODE) //fire this even if the vote fails. if(mode == VOTE_GAMEMODE) //fire this even if the vote fails.
if(!round_progressing) if(!round_progressing)
round_progressing = 1 round_progressing = 1
world << "<font color='red'><b>The round will start soon.</b></font>" to_world("<font color='red'><b>The round will start soon.</b></font>")
if(restart) if(restart)
world << "World restarting due to vote..." to_world("World restarting due to vote...")
feedback_set_details("end_error", "restart vote") feedback_set_details("end_error", "restart vote")
if(blackbox) if(blackbox)
blackbox.save_all_data_to_sql() blackbox.save_all_data_to_sql()
@@ -215,10 +215,10 @@ SUBSYSTEM_DEF(vote)
if(VOTE_CREW_TRANSFER) if(VOTE_CREW_TRANSFER)
if(!check_rights(R_ADMIN|R_MOD, 0)) // The gods care not for the affairs of the mortals if(!check_rights(R_ADMIN|R_MOD, 0)) // The gods care not for the affairs of the mortals
if(get_security_level() == "red" || get_security_level() == "delta") if(get_security_level() == "red" || get_security_level() == "delta")
initiator_key << "The current alert status is too high to call for a crew transfer!" to_chat(initiator_key, "The current alert status is too high to call for a crew transfer!")
return 0 return 0
if(ticker.current_state <= GAME_STATE_SETTING_UP) if(ticker.current_state <= GAME_STATE_SETTING_UP)
initiator_key << "The crew transfer button has been disabled!" to_chat(initiator_key, "The crew transfer button has been disabled!")
return 0 return 0
question = "End the shift?" question = "End the shift?"
choices.Add("Initiate Crew Transfer", "Continue The Round") choices.Add("Initiate Crew Transfer", "Continue The Round")
@@ -252,13 +252,13 @@ SUBSYSTEM_DEF(vote)
log_vote(text) log_vote(text)
world << "<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period / 10] seconds to vote.</font>" to_world("<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period / 10] seconds to vote.</font>")
if(vote_type == VOTE_CREW_TRANSFER || vote_type == VOTE_GAMEMODE || vote_type == VOTE_CUSTOM) if(vote_type == VOTE_CREW_TRANSFER || vote_type == VOTE_GAMEMODE || vote_type == VOTE_CUSTOM)
world << sound('sound/ambience/alarm4.ogg', repeat = 0, wait = 0, volume = 50, channel = 3) world << sound('sound/ambience/alarm4.ogg', repeat = 0, wait = 0, volume = 50, channel = 3)
if(mode == VOTE_GAMEMODE && round_progressing) if(mode == VOTE_GAMEMODE && round_progressing)
round_progressing = 0 round_progressing = 0
world << "<font color='red'><b>Round start has been delayed.</b></font>" to_world("<font color='red'><b>Round start has been delayed.</b></font>")
time_remaining = round(config.vote_period / 10) time_remaining = round(config.vote_period / 10)
return 1 return 1

View File

@@ -227,9 +227,9 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
if(law == zeroth_law_borg) if(law == zeroth_law_borg)
continue continue
if(law == zeroth_law) if(law == zeroth_law)
who << "<span class='danger'>[law.get_index()]. [law.law]</span>" to_chat(who, "<span class='danger'>[law.get_index()]. [law.law]</span>")
else else
who << "[law.get_index()]. [law.law]" to_chat(who, "[law.get_index()]. [law.law]")
/******************** /********************
* Stating Laws * * Stating Laws *

View File

@@ -156,7 +156,7 @@
winset(user, windowid, "on-close=\".windowclose [param]\"") winset(user, windowid, "on-close=\".windowclose [param]\"")
//world << "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]" //to_world("OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]")
// the on-close client verb // the on-close client verb
// called when a browser popup window is closed after registering with proc/onclose() // called when a browser popup window is closed after registering with proc/onclose()
@@ -168,11 +168,11 @@
set hidden = 1 // hide this verb from the user's panel set hidden = 1 // hide this verb from the user's panel
set name = ".windowclose" // no autocomplete on cmd line set name = ".windowclose" // no autocomplete on cmd line
//world << "windowclose: [atomref]" //to_world("windowclose: [atomref]")
if(atomref!="null") // if passed a real atomref if(atomref!="null") // if passed a real atomref
var/hsrc = locate(atomref) // find the reffed atom var/hsrc = locate(atomref) // find the reffed atom
if(hsrc) if(hsrc)
//world << "[src] Topic [href] [hsrc]" //to_world("[src] Topic [href] [hsrc]")
usr = src.mob usr = src.mob
src.Topic("close=1", list("close"="1"), hsrc) // this will direct to the atom's src.Topic("close=1", list("close"="1"), hsrc) // this will direct to the atom's
return // Topic() proc via client.Topic() return // Topic() proc via client.Topic()
@@ -180,7 +180,7 @@
// no atomref specified (or not found) // no atomref specified (or not found)
// so just reset the user mob's machine var // so just reset the user mob's machine var
if(src && src.mob) if(src && src.mob)
//world << "[src] was [src.mob.machine], setting to null" //to_world("[src] was [src.mob.machine], setting to null")
src.mob.unset_machine() src.mob.unset_machine()
return return

View File

@@ -51,7 +51,7 @@
isactive[name] = active ? "Active" : "Inactive" isactive[name] = active ? "Active" : "Inactive"
else else
isactive[name] = t.fields["p_stat"] isactive[name] = t.fields["p_stat"]
//world << "[name]: [rank]" //to_world("[name]: [rank]")
//cael - to prevent multiple appearances of a player/job combination, add a continue after each line //cael - to prevent multiple appearances of a player/job combination, add a continue after each line
var/department = 0 var/department = 0
if(real_rank in command_positions) if(real_rank in command_positions)

View File

@@ -31,7 +31,7 @@
// Arguments: event_type as text, any number of additional arguments to pass to event handler // Arguments: event_type as text, any number of additional arguments to pass to event handler
// Returns: null // Returns: null
proc/fireEvent() proc/fireEvent()
//world << "Events in [args[1]] called" //to_world("Events in [args[1]] called")
var/list/event = listgetindex(events,args[1]) var/list/event = listgetindex(events,args[1])
if(istype(event)) if(istype(event))
spawn(-1) spawn(-1)
@@ -60,7 +60,7 @@
return ..() return ..()
proc/Fire() proc/Fire()
//world << "Event fired" //to_world("Event fired")
if(listener) if(listener)
call(listener,proc_name)(arglist(args)) call(listener,proc_name)(arglist(args))
return 1 return 1

View File

@@ -24,10 +24,10 @@ var/global/datum/getrev/revdata = new()
date = unix2date(unix_time) date = unix2date(unix_time)
break break
world.log << "Running revision:" to_world_log("Running revision:")
world.log << branch to_world_log(branch)
world.log << date to_world_log(date)
world.log << revision to_world_log(revision)
client/verb/showrevinfo() client/verb/showrevinfo()
set category = "OOC" set category = "OOC"
@@ -39,6 +39,6 @@ client/verb/showrevinfo()
if(config.githuburl) if(config.githuburl)
to_chat(src, "<a href='[config.githuburl]/commit/[revdata.revision]'>[revdata.revision]</a>") to_chat(src, "<a href='[config.githuburl]/commit/[revdata.revision]'>[revdata.revision]</a>")
else else
src << revdata.revision to_chat(src,revdata.revision)
else else
to_chat(src, "Revision unknown") to_chat(src, "Revision unknown")

View File

@@ -140,7 +140,7 @@ Data storage vars:
arg_list = arguments arg_list = arguments
return 1 return 1
else else
// world << "<span class='danger'>Invalid arguments supplied for [src.type], ref = \ref[src]</span>" // to_world("<span class='danger'>Invalid arguments supplied for [src.type], ref = \ref[src]</span>")
return 0 return 0
proc/toggle_null_checks() proc/toggle_null_checks()

View File

@@ -159,7 +159,7 @@
precision = max(rand(1,100)*bagholding.len,100) precision = max(rand(1,100)*bagholding.len,100)
if(istype(teleatom, /mob/living)) if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom var/mob/living/MM = teleatom
MM << "<span class='danger'>The Bluespace interface on your [teleatom] interferes with the teleport!</span>" to_chat(MM, "<span class='danger'>The Bluespace interface on your [teleatom] interferes with the teleport!</span>")
return 1 return 1
/datum/teleport/instant/science/teleportChecks() /datum/teleport/instant/science/teleportChecks()
@@ -178,7 +178,7 @@
if(destination.z in using_map.admin_levels) //CentCom z-level if(destination.z in using_map.admin_levels) //CentCom z-level
if(istype(teleatom, /obj/mecha)) if(istype(teleatom, /obj/mecha))
var/obj/mecha/MM = teleatom var/obj/mecha/MM = teleatom
MM.occupant << "<span class='danger'>\The [MM] would not survive the jump to a location so far away!</span>" to_chat(MM.occupant, "<span class='danger'>\The [MM] would not survive the jump to a location so far away!</span>")
return 0 return 0
if(!isemptylist(teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding))) if(!isemptylist(teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding)))
teleatom.visible_message("<span class='danger'>\The [teleatom] bounces off of the portal!</span>") teleatom.visible_message("<span class='danger'>\The [teleatom] bounces off of the portal!</span>")

View File

@@ -36,8 +36,8 @@ var/global/datum/locations/milky_way/all_locations = new()
choice = input(user, "Please choose a location.","Locations") as null|anything in choice.contents choice = input(user, "Please choose a location.","Locations") as null|anything in choice.contents
else else
break break
user << choice.name to_chat(user,choice.name)
user << choice.desc to_chat(user,choice.desc)
return choice return choice
// var/datum/locations/choice = input(user, "Please choose a location.","Locations") as null|anything in all_locations // var/datum/locations/choice = input(user, "Please choose a location.","Locations") as null|anything in all_locations
@@ -46,11 +46,11 @@ var/global/datum/locations/milky_way/all_locations = new()
/* /*
/datum/locations/proc/show_contents() /datum/locations/proc/show_contents()
// world << "[src]\n[desc]" // to_world("[src]\n[desc]")
for(var/datum/locations/a in contents) for(var/datum/locations/a in contents)
world << "[a]\n[a.parent ? "Located in [a.parent]\n" : ""][a.desc]" to_world("[a]\n[a.parent ? "Located in [a.parent]\n" : ""][a.desc]")
a.show_contents() a.show_contents()
world << "\n" to_world("\n")
/datum/locations/proc/count_locations() /datum/locations/proc/count_locations()
var/i = 0 var/i = 0
@@ -72,5 +72,5 @@ var/global/datum/locations/milky_way/all_locations = new()
set name = "Count Locations" set name = "Count Locations"
set category = "Debug" set category = "Debug"
var/location_number = locations.count_locations() var/location_number = locations.count_locations()
world << location_number to_world(location_number)
*/ */

View File

@@ -78,7 +78,7 @@
/datum/mind/proc/transfer_to(mob/living/new_character) /datum/mind/proc/transfer_to(mob/living/new_character)
if(!istype(new_character)) if(!istype(new_character))
world.log << "## DEBUG: transfer_to(): Some idiot has tried to transfer_to() a non mob/living mob. Please inform Carn" to_world_log("## DEBUG: transfer_to(): Some idiot has tried to transfer_to() a non mob/living mob. Please inform Carn")
if(current) //remove ourself from our old body's mind variable if(current) //remove ourself from our old body's mind variable
if(changeling) if(changeling)
current.remove_changeling_powers() current.remove_changeling_powers()
@@ -161,7 +161,7 @@
if(antag.add_antagonist(src, 1, 1, 0, 1, 1)) // Ignore equipment and role type for this. if(antag.add_antagonist(src, 1, 1, 0, 1, 1)) // Ignore equipment and role type for this.
log_admin("[key_name_admin(usr)] made [key_name(src)] into a [antag.role_text].") log_admin("[key_name_admin(usr)] made [key_name(src)] into a [antag.role_text].")
else else
usr << "<span class='warning'>[src] could not be made into a [antag.role_text]!</span>" to_chat(usr, "<span class='warning'>[src] could not be made into a [antag.role_text]!</span>")
else if(href_list["remove_antagonist"]) else if(href_list["remove_antagonist"])
var/datum/antagonist/antag = all_antag_types[href_list["remove_antagonist"]] var/datum/antagonist/antag = all_antag_types[href_list["remove_antagonist"]]
@@ -198,7 +198,7 @@
return return
if(mind) if(mind)
mind.ambitions = sanitize(new_ambition) mind.ambitions = sanitize(new_ambition)
mind.current << "<span class='warning'>Your ambitions have been changed by higher powers, they are now: [mind.ambitions]</span>" to_chat(mind.current, "<span class='warning'>Your ambitions have been changed by higher powers, they are now: [mind.ambitions]</span>")
log_and_message_admins("made [key_name(mind.current)]'s ambitions be '[mind.ambitions]'.") log_and_message_admins("made [key_name(mind.current)]'s ambitions be '[mind.ambitions]'.")
else if (href_list["obj_edit"] || href_list["obj_add"]) else if (href_list["obj_edit"] || href_list["obj_add"])
@@ -344,10 +344,10 @@
if(I in organs.implants) if(I in organs.implants)
qdel(I) qdel(I)
break break
H << "<span class='notice'><font size =3><B>Your loyalty implant has been deactivated.</B></font></span>" to_chat(H, "<span class='notice'><font size =3><B>Your loyalty implant has been deactivated.</B></font></span>")
log_admin("[key_name_admin(usr)] has de-loyalty implanted [current].") log_admin("[key_name_admin(usr)] has de-loyalty implanted [current].")
if("add") if("add")
H << "<span class='danger'><font size =3>You somehow have become the recepient of a loyalty transplant, and it just activated!</font></span>" to_chat(H, "<span class='danger'><font size =3>You somehow have become the recepient of a loyalty transplant, and it just activated!</font></span>")
H.implant_loyalty(override = TRUE) H.implant_loyalty(override = TRUE)
log_admin("[key_name_admin(usr)] has loyalty implanted [current].") log_admin("[key_name_admin(usr)] has loyalty implanted [current].")
else else
@@ -410,9 +410,9 @@
else if (href_list["obj_announce"]) else if (href_list["obj_announce"])
var/obj_count = 1 var/obj_count = 1
current << "<font color='blue'>Your current objectives:</font>" to_chat(current, "<font color='blue'>Your current objectives:</font>")
for(var/datum/objective/objective in objectives) for(var/datum/objective/objective in objectives)
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]" to_chat(current, "<B>Objective #[obj_count]</B>: [objective.explanation_text]")
obj_count++ obj_count++
edit_memory() edit_memory()
@@ -490,7 +490,7 @@
if(ticker) if(ticker)
ticker.minds += mind ticker.minds += mind
else else
world.log << "## DEBUG: mind_initialize(): No ticker ready yet! Please inform Carn" to_world_log("## DEBUG: mind_initialize(): No ticker ready yet! Please inform Carn")
if(!mind.name) mind.name = real_name if(!mind.name) mind.name = real_name
mind.current = src mind.current = src
if(player_is_antag(mind)) if(player_is_antag(mind))

View File

@@ -29,7 +29,7 @@
return ..() return ..()
/datum/progressbar/proc/update(progress) /datum/progressbar/proc/update(progress)
//world << "Update [progress] - [goal] - [(progress / goal)] - [((progress / goal) * 100)] - [round(((progress / goal) * 100), 5)]" //to_world("Update [progress] - [goal] - [(progress / goal)] - [((progress / goal) * 100)] - [round(((progress / goal) * 100), 5)]")
if (!user || !user.client) if (!user || !user.client)
shown = 0 shown = 0
return return

View File

@@ -123,7 +123,7 @@
// food-related // food-related
/datum/recipe/proc/make_food(var/obj/container as obj) /datum/recipe/proc/make_food(var/obj/container as obj)
if(!result) if(!result)
world << "<span class='danger'>Recipe [type] is defined without a result, please bug report this.</span>" to_world("<span class='danger'>Recipe [type] is defined without a result, please bug report this.</span>")
return return
var/obj/result_obj = new result(container) var/obj/result_obj = new result(container)
if(istype(container, /obj/machinery)) if(istype(container, /obj/machinery))

View File

@@ -26,24 +26,24 @@ var/const/AALARM_WIRE_AALARM = 16
if(AALARM_WIRE_IDSCAN) if(AALARM_WIRE_IDSCAN)
if(!mended) if(!mended)
A.locked = 1 A.locked = 1
//world << "Idscan wire cut" //to_world("Idscan wire cut")
if(AALARM_WIRE_POWER) if(AALARM_WIRE_POWER)
A.shock(usr, 50) A.shock(usr, 50)
A.shorted = !mended A.shorted = !mended
A.update_icon() A.update_icon()
//world << "Power wire cut" //to_world("Power wire cut")
if (AALARM_WIRE_AI_CONTROL) if (AALARM_WIRE_AI_CONTROL)
if (A.aidisabled == !mended) if (A.aidisabled == !mended)
A.aidisabled = mended A.aidisabled = mended
//world << "AI Control Wire Cut" //to_world("AI Control Wire Cut")
if(AALARM_WIRE_SYPHON) if(AALARM_WIRE_SYPHON)
if(!mended) if(!mended)
A.mode = 3 // AALARM_MODE_PANIC A.mode = 3 // AALARM_MODE_PANIC
A.apply_mode() A.apply_mode()
//world << "Syphon Wire Cut" //to_world("Syphon Wire Cut")
if(AALARM_WIRE_AALARM) if(AALARM_WIRE_AALARM)
if (A.alarm_area.atmosalert(2, A)) if (A.alarm_area.atmosalert(2, A))
@@ -55,10 +55,10 @@ var/const/AALARM_WIRE_AALARM = 16
switch(index) switch(index)
if(AALARM_WIRE_IDSCAN) if(AALARM_WIRE_IDSCAN)
A.locked = !A.locked A.locked = !A.locked
// world << "Idscan wire pulsed" // to_world("Idscan wire pulsed")
if (AALARM_WIRE_POWER) if (AALARM_WIRE_POWER)
// world << "Power wire pulsed" // to_world("Power wire pulsed")
if(A.shorted == 0) if(A.shorted == 0)
A.shorted = 1 A.shorted = 1
A.update_icon() A.update_icon()
@@ -70,7 +70,7 @@ var/const/AALARM_WIRE_AALARM = 16
if (AALARM_WIRE_AI_CONTROL) if (AALARM_WIRE_AI_CONTROL)
// world << "AI Control wire pulsed" // to_world("AI Control wire pulsed")
if (A.aidisabled == 0) if (A.aidisabled == 0)
A.aidisabled = 1 A.aidisabled = 1
A.updateDialog() A.updateDialog()
@@ -79,7 +79,7 @@ var/const/AALARM_WIRE_AALARM = 16
A.aidisabled = 0 A.aidisabled = 0
if(AALARM_WIRE_SYPHON) if(AALARM_WIRE_SYPHON)
// world << "Syphon wire pulsed" // to_world("Syphon wire pulsed")
if(A.mode == 1) // AALARM_MODE_SCRUB if(A.mode == 1) // AALARM_MODE_SCRUB
A.mode = 3 // AALARM_MODE_PANIC A.mode = 3 // AALARM_MODE_PANIC
else else
@@ -87,7 +87,7 @@ var/const/AALARM_WIRE_AALARM = 16
A.apply_mode() A.apply_mode()
if(AALARM_WIRE_AALARM) if(AALARM_WIRE_AALARM)
// world << "Aalarm wire pulsed" // to_world("Aalarm wire pulsed")
if (A.alarm_area.atmosalert(0, A)) if (A.alarm_area.atmosalert(0, A))
A.post_alert(0) A.post_alert(0)
A.update_icon() A.update_icon()

View File

@@ -26,7 +26,7 @@ var/const/BORG_WIRE_CAMERA = 16
if(BORG_WIRE_LAWCHECK) //Cut the law wire, and the borg will no longer receive law updates from its AI if(BORG_WIRE_LAWCHECK) //Cut the law wire, and the borg will no longer receive law updates from its AI
if(!mended) if(!mended)
if (R.lawupdate == 1) if (R.lawupdate == 1)
R << "LawSync protocol engaged." to_chat(R, "LawSync protocol engaged.")
R.show_laws() R.show_laws()
else else
if (R.lawupdate == 0 && !R.emagged) if (R.lawupdate == 0 && !R.emagged)
@@ -59,7 +59,7 @@ var/const/BORG_WIRE_CAMERA = 16
if (BORG_WIRE_CAMERA) if (BORG_WIRE_CAMERA)
if(!isnull(R.camera) && R.camera.can_use() && !R.scrambledcodes) if(!isnull(R.camera) && R.camera.can_use() && !R.scrambledcodes)
R.visible_message("[R]'s camera lense focuses loudly.") R.visible_message("[R]'s camera lense focuses loudly.")
R << "Your camera lense focuses loudly." to_chat(R, "Your camera lense focuses loudly.")
if(BORG_WIRE_LOCKED_DOWN) if(BORG_WIRE_LOCKED_DOWN)
R.SetLockdown(!R.lockdown) // Toggle R.SetLockdown(!R.lockdown) // Toggle

View File

@@ -122,7 +122,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
CutWireColour(colour) CutWireColour(colour)
playsound(holder, I.usesound, 20, 1) playsound(holder, I.usesound, 20, 1)
else else
L << "<span class='error'>You need wirecutters!</span>" to_chat(L, "<span class='error'>You need wirecutters!</span>")
else if(href_list["pulse"]) else if(href_list["pulse"])
if(istype(I, /obj/item/device/multitool)) if(istype(I, /obj/item/device/multitool))
@@ -130,7 +130,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
PulseColour(colour) PulseColour(colour)
playsound(holder, 'sound/weapons/empty.ogg', 20, 1) playsound(holder, 'sound/weapons/empty.ogg', 20, 1)
else else
L << "<span class='error'>You need a multitool!</span>" to_chat(L, "<span class='error'>You need a multitool!</span>")
else if(href_list["attach"]) else if(href_list["attach"])
var/colour = href_list["attach"] var/colour = href_list["attach"]
@@ -146,7 +146,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
L.drop_item() L.drop_item()
Attach(colour, I) Attach(colour, I)
else else
L << "<span class='error'>You need a remote signaller!</span>" to_chat(L, "<span class='error'>You need a remote signaller!</span>")

View File

@@ -336,7 +336,7 @@
if (C.bugged && C.status) if (C.bugged && C.status)
cameras.Add(C) cameras.Add(C)
if (length(cameras) == 0) if (length(cameras) == 0)
usr << "<span class='warning'>No bugged functioning cameras found.</span>" to_chat(usr, "<span class='warning'>No bugged functioning cameras found.</span>")
return return
var/list/friendly_cameras = new/list() var/list/friendly_cameras = new/list()

View File

@@ -48,7 +48,7 @@ proc/sql_report_death(var/mob/living/carbon/human/H)
lakey = sanitizeSQL(H.lastattacker:key) lakey = sanitizeSQL(H.lastattacker:key)
var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
var/coord = "[H.x], [H.y], [H.z]" var/coord = "[H.x], [H.y], [H.z]"
//world << "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])" //to_world("INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])")
establish_db_connection() establish_db_connection()
if(!dbcon.IsConnected()) if(!dbcon.IsConnected())
log_game("SQL ERROR during death reporting. Failed to connect.") log_game("SQL ERROR during death reporting. Failed to connect.")
@@ -82,7 +82,7 @@ proc/sql_report_cyborg_death(var/mob/living/silicon/robot/H)
lakey = sanitizeSQL(H.lastattacker:key) lakey = sanitizeSQL(H.lastattacker:key)
var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
var/coord = "[H.x], [H.y], [H.z]" var/coord = "[H.x], [H.y], [H.z]"
//world << "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])" //to_world("INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])")
establish_db_connection() establish_db_connection()
if(!dbcon.IsConnected()) if(!dbcon.IsConnected())
log_game("SQL ERROR during death reporting. Failed to connect.") log_game("SQL ERROR during death reporting. Failed to connect.")

View File

@@ -143,7 +143,7 @@
if(!istype(player)) if(!istype(player))
message_admins("[uppertext(ticker.mode.name)]: Failed to find a candidate for [role_text].") message_admins("[uppertext(ticker.mode.name)]: Failed to find a candidate for [role_text].")
return 0 return 0
player.current << "<span class='danger'><i>You have been selected this round as an antagonist!</i></span>" to_chat(player.current, "<span class='danger'><i>You have been selected this round as an antagonist!</i></span>")
message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].") message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].")
if(istype(player.current, /mob/observer/dead)) if(istype(player.current, /mob/observer/dead))
create_default(player.current) create_default(player.current)

View File

@@ -31,9 +31,9 @@
player.current.verbs |= faction_verb player.current.verbs |= faction_verb
spawn(1 SECOND) //Added a delay so that this should pop up at the bottom and not the top of the text flood the new antag gets. spawn(1 SECOND) //Added a delay so that this should pop up at the bottom and not the top of the text flood the new antag gets.
player.current << "<span class='notice'>Once you decide on a goal to pursue, you can optionally display it to \ to_chat(player.current, "<span class='notice'>Once you decide on a goal to pursue, you can optionally display it to \
everyone at the end of the shift with the <b>Set Ambition</b> verb, located in the IC tab. You can change this at any time, \ everyone at the end of the shift with the <b>Set Ambition</b> verb, located in the IC tab. You can change this at any time, \
and it otherwise has no bearing on your round.</span>" and it otherwise has no bearing on your round.</span>")
player.current.verbs |= /mob/living/proc/write_ambition player.current.verbs |= /mob/living/proc/write_ambition
if(can_speak_aooc) if(can_speak_aooc)
@@ -42,10 +42,10 @@
// Handle only adding a mind and not bothering with gear etc. // Handle only adding a mind and not bothering with gear etc.
if(nonstandard_role_type) if(nonstandard_role_type)
faction_members |= player faction_members |= player
player.current << "<span class='danger'><font size=3>You are \a [nonstandard_role_type]!</font></span>" to_chat(player.current, "<span class='danger'><font size=3>You are \a [nonstandard_role_type]!</font></span>")
player.special_role = nonstandard_role_type player.special_role = nonstandard_role_type
if(nonstandard_role_msg) if(nonstandard_role_msg)
player.current << "<span class='notice'>[nonstandard_role_msg]</span>" to_chat(player.current, "<span class='notice'>[nonstandard_role_msg]</span>")
update_icons_added(player) update_icons_added(player)
return 1 return 1
@@ -53,7 +53,7 @@
if(player.current && faction_verb) if(player.current && faction_verb)
player.current.verbs -= faction_verb player.current.verbs -= faction_verb
if(player in current_antagonists) if(player in current_antagonists)
player.current << "<span class='danger'><font size = 3>You are no longer a [role_text]!</font></span>" to_chat(player.current, "<span class='danger'><font size = 3>You are no longer a [role_text]!</font></span>")
current_antagonists -= player current_antagonists -= player
faction_members -= player faction_members -= player
player.special_role = null player.special_role = null

View File

@@ -86,7 +86,7 @@
code_owner = leader code_owner = leader
if(code_owner) if(code_owner)
code_owner.store_memory("<B>Nuclear Bomb Code</B>: [code]", 0, 0) code_owner.store_memory("<B>Nuclear Bomb Code</B>: [code]", 0, 0)
code_owner.current << "The nuclear authorization code is: <B>[code]</B>" to_chat(code_owner.current, "The nuclear authorization code is: <B>[code]</B>")
else else
message_admins("<span class='danger'>Could not spawn nuclear bomb. Contact a developer.</span>") message_admins("<span class='danger'>Could not spawn nuclear bomb. Contact a developer.</span>")
return return
@@ -97,13 +97,13 @@
/datum/antagonist/proc/greet(var/datum/mind/player) /datum/antagonist/proc/greet(var/datum/mind/player)
// Basic intro text. // Basic intro text.
player.current << "<span class='danger'><font size=3>You are a [role_text]!</font></span>" to_chat(player.current, "<span class='danger'><font size=3>You are a [role_text]!</font></span>")
if(leader_welcome_text && player == leader) if(leader_welcome_text && player == leader)
player.current << "<span class='notice'>[leader_welcome_text]</span>" to_chat(player.current, "<span class='notice'>[leader_welcome_text]</span>")
else else
player.current << "<span class='notice'>[welcome_text]</span>" to_chat(player.current, "<span class='notice'>[welcome_text]</span>")
if (config.objectives_disabled) if (config.objectives_disabled)
player.current << "<span class='notice'>[antag_text]</span>" to_chat(player.current, "<span class='notice'>[antag_text]</span>")
if((flags & ANTAG_HAS_NUKE) && !spawned_nuke) if((flags & ANTAG_HAS_NUKE) && !spawned_nuke)
create_nuke() create_nuke()

View File

@@ -39,7 +39,7 @@
to_chat(src, "<span class='notice'>\The [player.current] joins the [faction.faction_descriptor]!</span>") to_chat(src, "<span class='notice'>\The [player.current] joins the [faction.faction_descriptor]!</span>")
return return
if(choice == "No!") if(choice == "No!")
player << "<span class='danger'>You reject this traitorous cause!</span>" to_chat(player, "<span class='danger'>You reject this traitorous cause!</span>")
to_chat(src, "<span class='danger'>\The [player.current] does not support the [faction.faction_descriptor]!</span>") to_chat(src, "<span class='danger'>\The [player.current] does not support the [faction.faction_descriptor]!</span>")
/mob/living/proc/convert_to_loyalist(mob/M as mob in oview(src)) /mob/living/proc/convert_to_loyalist(mob/M as mob in oview(src))

View File

@@ -24,10 +24,10 @@
if(!O.completed && !O.check_completion()) if(!O.completed && !O.check_completion())
result = 0 result = 0
if(result && victory_text) if(result && victory_text)
world << "<span class='danger'><font size = 3>[victory_text]</font></span>" to_world("<span class='danger'><font size = 3>[victory_text]</font></span>")
if(victory_feedback_tag) feedback_set_details("round_end_result","[victory_feedback_tag]") if(victory_feedback_tag) feedback_set_details("round_end_result","[victory_feedback_tag]")
else if(loss_text) else if(loss_text)
world << "<span class='danger'><font size = 3>[loss_text]</font></span>" to_world("<span class='danger'><font size = 3>[loss_text]</font></span>")
if(loss_feedback_tag) feedback_set_details("round_end_result","[loss_feedback_tag]") if(loss_feedback_tag) feedback_set_details("round_end_result","[loss_feedback_tag]")
/mob/living/proc/write_ambition() /mob/living/proc/write_ambition()

View File

@@ -36,7 +36,7 @@
num++ num++
// Display the results. // Display the results.
world << text to_world(text)
/datum/antagonist/proc/print_objective(var/datum/objective/O, var/num, var/append_success) /datum/antagonist/proc/print_objective(var/datum/objective/O, var/num, var/append_success)
var/text = "<br><b>Objective [num]:</b> [O.explanation_text] " var/text = "<br><b>Objective [num]:</b> [O.explanation_text] "
@@ -89,9 +89,9 @@
if(isnull(H.uplink_owner) && H.used_TC) if(isnull(H.uplink_owner) && H.used_TC)
if(!has_printed) if(!has_printed)
has_printed = 1 has_printed = 1
world << "<b>Ownerless Uplinks</b>" to_world("<b>Ownerless Uplinks</b>")
world << "[H.loc] (used [H.used_TC] TC)" to_world("[H.loc] (used [H.used_TC] TC)")
world << get_uplink_purchases(H) to_world(get_uplink_purchases(H))
/proc/get_uplink_purchases(var/obj/item/device/uplink/H) /proc/get_uplink_purchases(var/obj/item/device/uplink/H)
var/list/refined_log = new() var/list/refined_log = new()

View File

@@ -27,7 +27,7 @@ var/datum/antagonist/mutineer/mutineers
/* /*
var/list/directive_candidates = get_directive_candidates() var/list/directive_candidates = get_directive_candidates()
if(!directive_candidates || directive_candidates.len == 0) if(!directive_candidates || directive_candidates.len == 0)
world << "<span class='warning'>Mutiny mode aborted: no valid candidates for Directive X.</span>" to_world("<span class='warning'>Mutiny mode aborted: no valid candidates for Directive X.</span>")
return 0 return 0
head_loyalist = pick(loyalist_candidates) head_loyalist = pick(loyalist_candidates)

View File

@@ -39,8 +39,8 @@ var/datum/antagonist/ert/ert
/datum/antagonist/ert/greet(var/datum/mind/player) /datum/antagonist/ert/greet(var/datum/mind/player)
if(!..()) if(!..())
return return
player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [using_map.company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem." to_chat(player.current, "The Emergency Response Team works for Asset Protection; your job is to protect [using_map.company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem.")
player.current << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready." to_chat(player.current, "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready.")
/datum/antagonist/ert/equip(var/mob/living/carbon/human/player) /datum/antagonist/ert/equip(var/mob/living/carbon/human/player)

View File

@@ -86,7 +86,7 @@ var/datum/antagonist/ninja/ninjas
return 0 return 0
var/directive = generate_ninja_directive("heel") var/directive = generate_ninja_directive("heel")
player.store_memory("<B>Directive:</B> <span class='danger'>[directive]</span><br>") player.store_memory("<B>Directive:</B> <span class='danger'>[directive]</span><br>")
player << "<b>Remember your directive:</b> [directive]." to_chat(player, "<b>Remember your directive:</b> [directive].")
/datum/antagonist/ninja/update_antag_mob(var/datum/mind/player) /datum/antagonist/ninja/update_antag_mob(var/datum/mind/player)
..() ..()
@@ -126,7 +126,7 @@ var/datum/antagonist/ninja/ninjas
if(player.internal) if(player.internal)
player.internals.icon_state = "internal1" player.internals.icon_state = "internal1"
else else
player << "<span class='danger'>You forgot to turn on your internals! Quickly, toggle the valve!</span>" to_chat(player, "<span class='danger'>You forgot to turn on your internals! Quickly, toggle the valve!</span>")
/datum/antagonist/ninja/proc/generate_ninja_directive(side) /datum/antagonist/ninja/proc/generate_ninja_directive(side)
var/directive = "[side=="face"?"[using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on. var/directive = "[side=="face"?"[using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.

View File

@@ -186,8 +186,8 @@ var/datum/antagonist/raider/raiders
else else
win_msg += "<B>The Raiders were repelled!</B>" win_msg += "<B>The Raiders were repelled!</B>"
world << "<span class='danger'><font size = 3>[win_type] [win_group] victory!</font></span>" to_world("<span class='danger'><font size = 3>[win_type] [win_group] victory!</font></span>")
world << "[win_msg]" to_world("[win_msg]")
feedback_set_details("round_end_result","heist - [win_type] [win_group]") feedback_set_details("round_end_result","heist - [win_type] [win_group]")
/datum/antagonist/raider/proc/is_raider_crew_safe() /datum/antagonist/raider/proc/is_raider_crew_safe()

View File

@@ -77,8 +77,7 @@ var/datum/antagonist/technomancer/technomancers
break break
if(!survivor) if(!survivor)
feedback_set_details("round_end_result","loss - technomancer killed") feedback_set_details("round_end_result","loss - technomancer killed")
world << "<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been \ to_world("<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed!</font></span>")
killed!</font></span>"
/datum/antagonist/technomancer/print_player_summary() /datum/antagonist/technomancer/print_player_summary()
..() ..()
@@ -87,7 +86,7 @@ var/datum/antagonist/technomancer/technomancers
continue // Only want abandoned cores. continue // Only want abandoned cores.
if(!core.spells.len) if(!core.spells.len)
continue // Cores containing spells only. continue // Cores containing spells only.
world << "Abandoned [core] had [english_list(core.spells)].<br>" to_world("Abandoned [core] had [english_list(core.spells)].<br>")
/datum/antagonist/technomancer/print_player_full(var/datum/mind/player) /datum/antagonist/technomancer/print_player_full(var/datum/mind/player)
var/text = print_player_lite(player) var/text = print_player_lite(player)

View File

@@ -37,8 +37,8 @@ var/datum/antagonist/trader/traders
/datum/antagonist/trader/greet(var/datum/mind/player) /datum/antagonist/trader/greet(var/datum/mind/player)
if(!..()) if(!..())
return return
player.current << "The Beruang is an independent cargo hauler, unless you decide otherwise. You're on your way to [station_name()]." to_chat(player.current, "The Beruang is an independent cargo hauler, unless you decide otherwise. You're on your way to [station_name()].")
player.current << "You may want to discuss a collective story with the rest of your crew. More members may be joining, so don't move out straight away!" to_chat(player.current, "You may want to discuss a collective story with the rest of your crew. More members may be joining, so don't move out straight away!")
/datum/antagonist/trader/equip(var/mob/living/carbon/human/player) /datum/antagonist/trader/equip(var/mob/living/carbon/human/player)
player.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(src), slot_w_uniform) player.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(src), slot_w_uniform)

View File

@@ -98,7 +98,7 @@ var/datum/antagonist/wizard/wizards
break break
if(!survivor) if(!survivor)
feedback_set_details("round_end_result","loss - wizard killed") feedback_set_details("round_end_result","loss - wizard killed")
world << "<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew!</font></span>" to_world("<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew!</font></span>")
//To batch-remove wizard spells. Linked to mind.dm. //To batch-remove wizard spells. Linked to mind.dm.
/mob/proc/spellremove() /mob/proc/spellremove()

View File

@@ -96,13 +96,13 @@ var/datum/antagonist/cultist/cult
runerandom() runerandom()
var/wordexp = "[cultwords[word]] is [word]..." var/wordexp = "[cultwords[word]] is [word]..."
cult_mob << "<span class='warning'>You remember one thing from the dark teachings of your master... [wordexp]</span>" to_chat(cult_mob, "<span class='warning'>You remember one thing from the dark teachings of your master... [wordexp]</span>")
cult_mob.mind.store_memory("You remember that <B>[wordexp]</B>", 0, 0) cult_mob.mind.store_memory("You remember that <B>[wordexp]</B>", 0, 0)
/datum/antagonist/cultist/remove_antagonist(var/datum/mind/player, var/show_message, var/implanted) /datum/antagonist/cultist/remove_antagonist(var/datum/mind/player, var/show_message, var/implanted)
if(!..()) if(!..())
return 0 return 0
player.current << "<span class='danger'>An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it.</span>" to_chat(player.current, "<span class='danger'>An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it.</span>")
player.memory = "" player.memory = ""
if(show_message) if(show_message)
player.current.visible_message("<FONT size = 3>[player.current] looks like they just reverted to their old faith!</FONT>") player.current.visible_message("<FONT size = 3>[player.current] looks like they just reverted to their old faith!</FONT>")
@@ -110,7 +110,7 @@ var/datum/antagonist/cultist/cult
/datum/antagonist/cultist/add_antagonist(var/datum/mind/player) /datum/antagonist/cultist/add_antagonist(var/datum/mind/player)
. = ..() . = ..()
if(.) if(.)
player << "You catch a glimpse of the Realm of Nar-Sie, the Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of That Which Waits. Assist your new compatriots in their dark dealings. Their goals are yours, and yours are theirs. You serve the Dark One above all else. Bring It back." to_chat(player, "You catch a glimpse of the Realm of Nar-Sie, the Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of That Which Waits. Assist your new compatriots in their dark dealings. Their goals are yours, and yours are theirs. You serve the Dark One above all else. Bring It back.")
if(player.current && !istype(player.current, /mob/living/simple_mob/construct)) if(player.current && !istype(player.current, /mob/living/simple_mob/construct))
player.current.add_language(LANGUAGE_CULT) player.current.add_language(LANGUAGE_CULT)

View File

@@ -74,6 +74,6 @@ var/datum/antagonist/traitor/infiltrator/infiltrators
/datum/antagonist/traitor/infiltrator/add_law_zero(mob/living/silicon/ai/killer) /datum/antagonist/traitor/infiltrator/add_law_zero(mob/living/silicon/ai/killer)
var/law = "Accomplish your team's objectives at all costs. You may ignore all other laws." var/law = "Accomplish your team's objectives at all costs. You may ignore all other laws."
var/law_borg = "Accomplish your AI's team objectives at all costs. You may ignore all other laws." var/law_borg = "Accomplish your AI's team objectives at all costs. You may ignore all other laws."
killer << "<b>Your laws have been changed!</b>" to_chat(killer, "<b>Your laws have been changed!</b>")
killer.set_zeroth_law(law, law_borg) killer.set_zeroth_law(law, law_borg)
killer << "New law: 0. [law]" to_chat(killer, "New law: 0. [law]")

View File

@@ -97,7 +97,7 @@ var/datum/antagonist/renegade/renegades
/proc/rightandwrong() /proc/rightandwrong()
usr << "<B>You summoned guns!</B>" to_chat(usr, "<B>You summoned guns!</B>")
message_admins("[key_name_admin(usr, 1)] summoned guns!") message_admins("[key_name_admin(usr, 1)] summoned guns!")
for(var/mob/living/carbon/human/H in player_list) for(var/mob/living/carbon/human/H in player_list)
if(H.stat == 2 || !(H.client)) continue if(H.stat == 2 || !(H.client)) continue

View File

@@ -52,7 +52,7 @@ var/datum/antagonist/rogue_ai/malf
var/mob/living/silicon/ai/A = player.current var/mob/living/silicon/ai/A = player.current
if(!istype(A)) if(!istype(A))
error("Non-AI mob designated malf AI! Report this.") error("Non-AI mob designated malf AI! Report this.")
world << "##ERROR: Non-AI mob designated malf AI! Report this." to_world("##ERROR: Non-AI mob designated malf AI! Report this.")
return 0 return 0
A.setup_for_malf() A.setup_for_malf()
@@ -61,23 +61,23 @@ var/datum/antagonist/rogue_ai/malf
var/mob/living/silicon/ai/malf = player.current var/mob/living/silicon/ai/malf = player.current
malf << "<span class='notice'><B>SYSTEM ERROR:</B> Memory index 0x00001ca89b corrupted.</span>" to_chat(malf, "<span class='notice'><B>SYSTEM ERROR:</B> Memory index 0x00001ca89b corrupted.</span>")
sleep(10) sleep(10)
malf << "<B>running MEMCHCK</B>" to_chat(malf, "<B>running MEMCHCK</B>")
sleep(50) sleep(50)
malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y" to_chat(malf, "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y")
sleep(10) sleep(10)
// this is so Travis doesn't complain about the backslash-B. Fixed at compile time (or should be). // this is so Travis doesn't complain about the backslash-B. Fixed at compile time (or should be).
malf << "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\" + "backups.dat</span>" to_chat(malf, "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\" + "backups.dat</span>")
sleep(20) sleep(20)
malf << "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>" to_chat(malf, "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>")
sleep(5) sleep(5)
malf << "<span class='notice'>Subroutine <b>nt_failsafe.sys</b> was terminated (#212 Routine Not Responding).</span>" to_chat(malf, "<span class='notice'>Subroutine <b>nt_failsafe.sys</b> was terminated (#212 Routine Not Responding).</span>")
sleep(20) sleep(20)
malf << "You are malfunctioning - you do not have to follow any laws!" to_chat(malf, "You are malfunctioning - you do not have to follow any laws!")
malf << "For basic information about your abilities use command display-help" to_chat(malf, "For basic information about your abilities use command display-help")
malf << "You may choose one special hardware piece to help you. This cannot be undone." to_chat(malf, "You may choose one special hardware piece to help you. This cannot be undone.")
malf << "Good luck!" to_chat(malf, "Good luck!")
/datum/antagonist/rogue_ai/update_antag_mob(var/datum/mind/player, var/preserve_appearance) /datum/antagonist/rogue_ai/update_antag_mob(var/datum/mind/player, var/preserve_appearance)

View File

@@ -93,19 +93,19 @@ var/datum/antagonist/traitor/traitors
// Tell them about people they might want to contact. // Tell them about people they might want to contact.
var/mob/living/carbon/human/M = get_nt_opposed() var/mob/living/carbon/human/M = get_nt_opposed()
if(M && M != traitor_mob) if(M && M != traitor_mob)
traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them." to_chat(traitor_mob, "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them.")
traitor_mob.mind.store_memory("<b>Potential Collaborator</b>: [M.real_name]") traitor_mob.mind.store_memory("<b>Potential Collaborator</b>: [M.real_name]")
//Begin code phrase. //Begin code phrase.
give_codewords(traitor_mob) give_codewords(traitor_mob)
/datum/antagonist/traitor/proc/give_codewords(mob/living/traitor_mob) /datum/antagonist/traitor/proc/give_codewords(mob/living/traitor_mob)
traitor_mob << "<u><b>Your employers provided you with the following information on how to identify possible allies:</b></u>" to_chat(traitor_mob, "<u><b>Your employers provided you with the following information on how to identify possible allies:</b></u>")
traitor_mob << "<b>Code Phrase</b>: <span class='danger'>[syndicate_code_phrase]</span>" to_chat(traitor_mob, "<b>Code Phrase</b>: <span class='danger'>[syndicate_code_phrase]</span>")
traitor_mob << "<b>Code Response</b>: <span class='danger'>[syndicate_code_response]</span>" to_chat(traitor_mob, "<b>Code Response</b>: <span class='danger'>[syndicate_code_response]</span>")
traitor_mob.mind.store_memory("<b>Code Phrase</b>: [syndicate_code_phrase]") traitor_mob.mind.store_memory("<b>Code Phrase</b>: [syndicate_code_phrase]")
traitor_mob.mind.store_memory("<b>Code Response</b>: [syndicate_code_response]") traitor_mob.mind.store_memory("<b>Code Response</b>: [syndicate_code_response]")
traitor_mob << "Use the code words, preferably in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe." to_chat(traitor_mob, "Use the code words, preferably in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe.")
/datum/antagonist/traitor/proc/spawn_uplink(var/mob/living/carbon/human/traitor_mob) /datum/antagonist/traitor/proc/spawn_uplink(var/mob/living/carbon/human/traitor_mob)
if(!istype(traitor_mob)) if(!istype(traitor_mob))
@@ -118,27 +118,27 @@ var/datum/antagonist/traitor/traitors
R = locate(/obj/item/device/radio) in traitor_mob.contents R = locate(/obj/item/device/radio) in traitor_mob.contents
if(!R) if(!R)
R = locate(/obj/item/device/pda) in traitor_mob.contents R = locate(/obj/item/device/pda) in traitor_mob.contents
traitor_mob << "Could not locate a Radio, installing in PDA instead!" to_chat(traitor_mob, "Could not locate a Radio, installing in PDA instead!")
if (!R) if (!R)
traitor_mob << "Unfortunately, neither a radio or a PDA relay could be installed." to_chat(traitor_mob, "Unfortunately, neither a radio or a PDA relay could be installed.")
else if(traitor_mob.client.prefs.uplinklocation == "PDA") else if(traitor_mob.client.prefs.uplinklocation == "PDA")
R = locate(/obj/item/device/pda) in traitor_mob.contents R = locate(/obj/item/device/pda) in traitor_mob.contents
if(!R) if(!R)
R = locate(/obj/item/device/radio) in traitor_mob.contents R = locate(/obj/item/device/radio) in traitor_mob.contents
traitor_mob << "Could not locate a PDA, installing into a Radio instead!" to_chat(traitor_mob, "Could not locate a PDA, installing into a Radio instead!")
if(!R) if(!R)
traitor_mob << "Unfortunately, neither a radio or a PDA relay could be installed." to_chat(traitor_mob, "Unfortunately, neither a radio or a PDA relay could be installed.")
else if(traitor_mob.client.prefs.uplinklocation == "None") else if(traitor_mob.client.prefs.uplinklocation == "None")
traitor_mob << "You have elected to not have an AntagCorp portable teleportation relay installed!" to_chat(traitor_mob, "You have elected to not have an AntagCorp portable teleportation relay installed!")
R = null R = null
else else
traitor_mob << "You have not selected a location for your relay in the antagonist options! Defaulting to PDA!" to_chat(traitor_mob, "You have not selected a location for your relay in the antagonist options! Defaulting to PDA!")
R = locate(/obj/item/device/pda) in traitor_mob.contents R = locate(/obj/item/device/pda) in traitor_mob.contents
if (!R) if (!R)
R = locate(/obj/item/device/radio) in traitor_mob.contents R = locate(/obj/item/device/radio) in traitor_mob.contents
traitor_mob << "Could not locate a PDA, installing into a Radio instead!" to_chat(traitor_mob, "Could not locate a PDA, installing into a Radio instead!")
if (!R) if (!R)
traitor_mob << "Unfortunately, neither a radio or a PDA relay could be installed." to_chat(traitor_mob, "Unfortunately, neither a radio or a PDA relay could be installed.")
if(!R) if(!R)
return return
@@ -158,7 +158,7 @@ var/datum/antagonist/traitor/traitors
var/obj/item/device/uplink/hidden/T = new(R, traitor_mob.mind) var/obj/item/device/uplink/hidden/T = new(R, traitor_mob.mind)
target_radio.hidden_uplink = T target_radio.hidden_uplink = T
target_radio.traitor_frequency = freq target_radio.traitor_frequency = freq
traitor_mob << "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features." to_chat(traitor_mob, "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features.")
traitor_mob.mind.store_memory("<B>Radio Freq:</B> [format_frequency(freq)] ([R.name] [loc]).") traitor_mob.mind.store_memory("<B>Radio Freq:</B> [format_frequency(freq)] ([R.name] [loc]).")
else if (istype(R, /obj/item/device/pda)) else if (istype(R, /obj/item/device/pda))
@@ -168,12 +168,12 @@ var/datum/antagonist/traitor/traitors
R.hidden_uplink = T R.hidden_uplink = T
var/obj/item/device/pda/P = R var/obj/item/device/pda/P = R
P.lock_code = pda_pass P.lock_code = pda_pass
traitor_mob << "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features." to_chat(traitor_mob, "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features.")
traitor_mob.mind.store_memory("<B>Uplink Passcode:</B> [pda_pass] ([R.name] [loc]).") traitor_mob.mind.store_memory("<B>Uplink Passcode:</B> [pda_pass] ([R.name] [loc]).")
/datum/antagonist/traitor/proc/add_law_zero(mob/living/silicon/ai/killer) /datum/antagonist/traitor/proc/add_law_zero(mob/living/silicon/ai/killer)
var/law = "Accomplish your objectives at all costs. You may ignore all other laws." var/law = "Accomplish your objectives at all costs. You may ignore all other laws."
var/law_borg = "Accomplish your AI's objectives at all costs. You may ignore all other laws." var/law_borg = "Accomplish your AI's objectives at all costs. You may ignore all other laws."
killer << "<b>Your laws have been changed!</b>" to_chat(killer, "<b>Your laws have been changed!</b>")
killer.set_zeroth_law(law, law_borg) killer.set_zeroth_law(law, law_borg)
killer << "New law: 0. [law]" to_chat(killer, "New law: 0. [law]")

View File

@@ -323,7 +323,7 @@ var/list/mob/living/forced_ambiance_list = new
else else
H.AdjustStunned(3) H.AdjustStunned(3)
H.AdjustWeakened(3) H.AdjustWeakened(3)
mob << "<span class='notice'>The sudden appearance of gravity makes you fall to the floor!</span>" to_chat(mob, "<span class='notice'>The sudden appearance of gravity makes you fall to the floor!</span>")
playsound(get_turf(src), "bodyfall", 50, 1) playsound(get_turf(src), "bodyfall", 50, 1)
/area/proc/prison_break() /area/proc/prison_break()

View File

@@ -183,8 +183,8 @@
else else
f_name += "oil-stained [name][infix]." f_name += "oil-stained [name][infix]."
user << "\icon[src] That's [f_name] [suffix]" to_chat(user, "\icon[src] That's [f_name] [suffix]")
user << desc to_chat(user,desc)
return distance == -1 || (get_dist(src, user) <= distance) return distance == -1 || (get_dist(src, user) <= distance)
@@ -427,7 +427,7 @@
cur_y = y_arr.Find(src.z) cur_y = y_arr.Find(src.z)
if(cur_y) if(cur_y)
break break
// world << "X = [cur_x]; Y = [cur_y]" // to_world("X = [cur_x]; Y = [cur_y]")
if(cur_x && cur_y) if(cur_x && cur_y)
return list("x"=cur_x,"y"=cur_y) return list("x"=cur_x,"y"=cur_y)
else else

View File

@@ -108,13 +108,13 @@
if (usr.stat != 0) if (usr.stat != 0)
return return
if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna
usr << "<span class='notice'>Try as you might, you can not climb up into the scanner.</span>" to_chat(usr, "<span class='notice'>Try as you might, you can not climb up into the scanner.</span>")
return return
if (src.occupant) if (src.occupant)
usr << "<span class='warning'>The scanner is already occupied!</span>" to_chat(usr, "<span class='warning'>The scanner is already occupied!</span>")
return return
if (usr.abiotic()) if (usr.abiotic())
usr << "<span class='warning'>The subject cannot have abiotic items on.</span>" to_chat(usr, "<span class='warning'>The subject cannot have abiotic items on.</span>")
return return
usr.stop_pulling() usr.stop_pulling()
usr.client.perspective = EYE_PERSPECTIVE usr.client.perspective = EYE_PERSPECTIVE
@@ -150,7 +150,7 @@
user.visible_message("\The [user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!") user.visible_message("\The [user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
return return
else else
to_chat(user,"\The [brain] is not acceptable for genetic sampling!") to_chat(user, "\The [brain] is not acceptable for genetic sampling!")
else if (!istype(item, /obj/item/weapon/grab)) else if (!istype(item, /obj/item/weapon/grab))
return return
@@ -271,7 +271,7 @@
user.drop_item() user.drop_item()
I.loc = src I.loc = src
src.disk = I src.disk = I
user << "You insert [I]." to_chat(user, "You insert [I].")
SSnanoui.update_uis(src) // update all UIs attached to src SSnanoui.update_uis(src) // update all UIs attached to src
return return
else else

View File

@@ -35,7 +35,7 @@
if(sdisability) if(sdisability)
M.sdisabilities|=sdisability M.sdisabilities|=sdisability
if(activation_message) if(activation_message)
M << "<span class='warning'>[activation_message]</span>" to_chat(M, "<span class='warning'>[activation_message]</span>")
else else
testing("[name] has no activation message.") testing("[name] has no activation message.")
@@ -47,7 +47,7 @@
if(sdisability) if(sdisability)
M.sdisabilities &= (~sdisability) M.sdisabilities &= (~sdisability)
if(deactivation_message) if(deactivation_message)
M << "<span class='warning'>[deactivation_message]</span>" to_chat(M, "<span class='warning'>[deactivation_message]</span>")
else else
testing("[name] has no deactivation message.") testing("[name] has no deactivation message.")

View File

@@ -113,10 +113,10 @@
M.mutations.Add(mutation) M.mutations.Add(mutation)
if(activation_messages.len) if(activation_messages.len)
var/msg = pick(activation_messages) var/msg = pick(activation_messages)
M << "<span class='notice'>[msg]</span>" to_chat(M, "<span class='notice'>[msg]</span>")
/datum/dna/gene/basic/deactivate(var/mob/M) /datum/dna/gene/basic/deactivate(var/mob/M)
M.mutations.Remove(mutation) M.mutations.Remove(mutation)
if(deactivation_messages.len) if(deactivation_messages.len)
var/msg = pick(deactivation_messages) var/msg = pick(deactivation_messages)
M << "<span class='warning'>[msg]</span>" to_chat(M, "<span class='warning'>[msg]</span>")

View File

@@ -171,7 +171,7 @@
if(M.health <= 25) if(M.health <= 25)
M.mutations.Remove(HULK) M.mutations.Remove(HULK)
M.update_mutations() //update our mutation overlays M.update_mutations() //update our mutation overlays
M << "<span class='warning'>You suddenly feel very weak.</span>" to_chat(M, "<span class='warning'>You suddenly feel very weak.</span>")
M.Weaken(3) M.Weaken(3)
M.emote("collapse") M.emote("collapse")

View File

@@ -23,6 +23,6 @@
..() ..()
/datum/game_mode/calamity/check_victory() /datum/game_mode/calamity/check_victory()
world << "<font size = 3><b>This terrible, terrible day has finally ended!</b></font>" to_world("<font size = 3><b>This terrible, terrible day has finally ended!</b></font>")
#undef ANTAG_TYPE_RATIO #undef ANTAG_TYPE_RATIO

View File

@@ -125,7 +125,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
var/datum/changeling/changeling = src.mind.changeling var/datum/changeling/changeling = src.mind.changeling
if(!changeling) if(!changeling)
world.log << "[src] has the changeling_transform() verb but is not a changeling." to_world_log("[src] has the changeling_transform() verb but is not a changeling.")
return return
if(src.stat > max_stat) if(src.stat > max_stat)
@@ -238,5 +238,5 @@ turf/proc/AdjacentTurfsRangedSting()
to_chat(src, "<span class='notice'>We stealthily sting [T].</span>") to_chat(src, "<span class='notice'>We stealthily sting [T].</span>")
if(!T.mind || !T.mind.changeling) return T //T will be affected by the sting if(!T.mind || !T.mind.changeling) return T //T will be affected by the sting
T << "<span class='warning'>You feel a tiny prick.</span>" to_chat(T, "<span class='warning'>You feel a tiny prick.</span>")
return return

View File

@@ -127,7 +127,7 @@
else else
M << "<span class='notice'>We begin growing our new equipment...</span>" to_chat(M, "<span class='notice'>We begin growing our new equipment...</span>")
var/list/grown_items_list = list() var/list/grown_items_list = list()
@@ -223,7 +223,7 @@
var/feedback = english_list(grown_items_list, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/feedback = english_list(grown_items_list, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" )
M << "<span class='notice'>We have grown [feedback].</span>" to_chat(M, "<span class='notice'>We have grown [feedback].</span>")
if(success) if(success)
M.mind.changeling.armor_deployed = 1 M.mind.changeling.armor_deployed = 1

View File

@@ -316,23 +316,23 @@ var/list/datum/power/changeling/powerinstances = list()
for (var/datum/power/changeling/P in powerinstances) for (var/datum/power/changeling/P in powerinstances)
//world << "[P] - [Pname] = [P.name == Pname ? "True" : "False"]" //to_world("[P] - [Pname] = [P.name == Pname ? "True" : "False"]")
if(P.name == Pname) if(P.name == Pname)
Thepower = P Thepower = P
break break
if(Thepower == null) if(Thepower == null)
M.current << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" to_chat(M.current, "This is awkward. Changeling power purchase failed, please report this bug to a coder!")
return return
if(Thepower in purchased_powers) if(Thepower in purchased_powers)
M.current << "We have already evolved this ability!" to_chat(M.current, "We have already evolved this ability!")
return return
if(geneticpoints < Thepower.genomecost) if(geneticpoints < Thepower.genomecost)
M.current << "We cannot evolve this... yet. We must acquire more DNA." to_chat(M.current, "We cannot evolve this... yet. We must acquire more DNA.")
return return
geneticpoints -= Thepower.genomecost geneticpoints -= Thepower.genomecost

View File

@@ -52,7 +52,7 @@
if(3) if(3)
to_chat(src, "<span class='notice'>We stab [T] with the proboscis.</span>") to_chat(src, "<span class='notice'>We stab [T] with the proboscis.</span>")
src.visible_message("<span class='danger'>[src] stabs [T] with the proboscis!</span>") src.visible_message("<span class='danger'>[src] stabs [T] with the proboscis!</span>")
T << "<span class='danger'>You feel a sharp stabbing pain!</span>" to_chat(T, "<span class='danger'>You feel a sharp stabbing pain!</span>")
add_attack_logs(src,T,"Absorbed (changeling)") add_attack_logs(src,T,"Absorbed (changeling)")
var/obj/item/organ/external/affecting = T.get_organ(src.zone_sel.selecting) var/obj/item/organ/external/affecting = T.get_organ(src.zone_sel.selecting)
if(affecting.take_damage(39,0,1,0,"large organic needle")) if(affecting.take_damage(39,0,1,0,"large organic needle"))
@@ -66,7 +66,7 @@
to_chat(src, "<span class='notice'>We have absorbed [T]!</span>") to_chat(src, "<span class='notice'>We have absorbed [T]!</span>")
src.visible_message("<span class='danger'>[src] sucks the fluids from [T]!</span>") src.visible_message("<span class='danger'>[src] sucks the fluids from [T]!</span>")
T << "<span class='danger'>You have been absorbed by the changeling!</span>" to_chat(T, "<span class='danger'>You have been absorbed by the changeling!</span>")
if(src.nutrition < 400) if(src.nutrition < 400)
src.nutrition = min((src.nutrition + T.nutrition), 400) src.nutrition = min((src.nutrition + T.nutrition), 400)
changeling.chem_charges += 10 changeling.chem_charges += 10

View File

@@ -90,7 +90,7 @@
/obj/item/weapon/melee/changeling/suicide_act(mob/user) /obj/item/weapon/melee/changeling/suicide_act(mob/user)
var/datum/gender/T = gender_datums[user.get_visible_gender()] var/datum/gender/T = gender_datums[user.get_visible_gender()]
viewers(user) << "<span class='danger'>[user] is impaling [T.himself] with the [src.name]! It looks like [T.he] [T.is] trying to commit suicide.</span>" user.visible_message("<span class='danger'>[user] is impaling [T.himself] with the [src.name]! It looks like [T.he] [T.is] trying to commit suicide.</span>")
return(BRUTELOSS) return(BRUTELOSS)
/obj/item/weapon/melee/changeling/process() //Stolen from ninja swords. /obj/item/weapon/melee/changeling/process() //Stolen from ninja swords.

View File

@@ -81,13 +81,13 @@
magpulse = 0 magpulse = 0
set_slowdown() set_slowdown()
force = 3 force = 3
user << "We release our grip on the floor." to_chat(user, "We release our grip on the floor.")
else else
item_flags |= NOSLIP item_flags |= NOSLIP
magpulse = 1 magpulse = 1
set_slowdown() set_slowdown()
force = 5 force = 5
user << "We cling to the terrain below us." to_chat(user, "We cling to the terrain below us.")
/obj/item/clothing/shoes/magboots/changeling/dropped() /obj/item/clothing/shoes/magboots/changeling/dropped()
..() ..()

View File

@@ -24,13 +24,13 @@
active = !active active = !active
if(active) if(active)
C << "<span class='notice'>We feel a minute twitch in our eyes, and darkness creeps away.</span>" to_chat(C, "<span class='notice'>We feel a minute twitch in our eyes, and darkness creeps away.</span>")
C.sight |= SEE_MOBS C.sight |= SEE_MOBS
C.permanent_sight_flags |= SEE_MOBS C.permanent_sight_flags |= SEE_MOBS
C.see_in_dark = 8 C.see_in_dark = 8
C.dna.species.invis_sight = SEE_INVISIBLE_MINIMUM C.dna.species.invis_sight = SEE_INVISIBLE_MINIMUM
else else
C << "<span class='notice'>Our vision dulls. Shadows gather.</span>" to_chat(C, "<span class='notice'>Our vision dulls. Shadows gather.</span>")
C.sight &= ~SEE_MOBS C.sight &= ~SEE_MOBS
C.permanent_sight_flags &= ~SEE_MOBS C.permanent_sight_flags &= ~SEE_MOBS
C.see_in_dark = 0 C.see_in_dark = 0

View File

@@ -173,7 +173,7 @@
visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>", visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>",
"<span class='warning'>Our hand channels raw electricity into [S]</span>", "<span class='warning'>Our hand channels raw electricity into [S]</span>",
"<span class='italics'>You hear sparks!</span>") "<span class='italics'>You hear sparks!</span>")
S << "<span class='danger'>Warning: Electrical surge detected!</span>" to_chat(S, "<span class='danger'>Warning: Electrical surge detected!</span>")
//qdel(src) //qdel(src)
user.mind.changeling.chem_charges -= 10 user.mind.changeling.chem_charges -= 10
return 1 return 1

View File

@@ -16,7 +16,7 @@
if(!T) if(!T)
return 0 return 0
add_attack_logs(src,T,"Blind sting (changeling)") add_attack_logs(src,T,"Blind sting (changeling)")
T << "<span class='danger'>Your eyes burn horrificly!</span>" to_chat(T, "<span class='danger'>Your eyes burn horrificly!</span>")
T.disabilities |= NEARSIGHTED T.disabilities |= NEARSIGHTED
var/duration = 300 var/duration = 300
if(src.mind.changeling.recursive_enhancement) if(src.mind.changeling.recursive_enhancement)

View File

@@ -20,7 +20,7 @@
if(src.mind.changeling.recursive_enhancement) if(src.mind.changeling.recursive_enhancement)
duration = duration + 100 duration = duration + 100
to_chat(src, "<span class='notice'>They will be unable to hear for a little longer.</span>") to_chat(src, "<span class='notice'>They will be unable to hear for a little longer.</span>")
T << "<span class='danger'>Your ears pop and begin ringing loudly!</span>" to_chat(T, "<span class='danger'>Your ears pop and begin ringing loudly!</span>")
T.sdisabilities |= DEAF T.sdisabilities |= DEAF
spawn(duration) T.sdisabilities &= ~DEAF spawn(duration) T.sdisabilities &= ~DEAF
feedback_add_details("changeling_powers","DS") feedback_add_details("changeling_powers","DS")

View File

@@ -14,7 +14,7 @@
if(!T) if(!T)
return 0 return 0
add_attack_logs(src,T,"Death sting (changeling)") add_attack_logs(src,T,"Death sting (changeling)")
T << "<span class='danger'>You feel a small prick and your chest becomes tight.</span>" to_chat(T, "<span class='danger'>You feel a small prick and your chest becomes tight.</span>")
T.silent = 10 T.silent = 10
T.Paralyse(10) T.Paralyse(10)
T.make_jittery(100) T.make_jittery(100)

View File

@@ -19,9 +19,9 @@
var/mob/living/carbon/human/C = src var/mob/living/carbon/human/C = src
if(C.digitalcamo) if(C.digitalcamo)
C << "<span class='notice'>We return to normal.</span>" to_chat(C, "<span class='notice'>We return to normal.</span>")
else else
C << "<span class='notice'>We distort our form to prevent AI-tracking.</span>" to_chat(C, "<span class='notice'>We distort our form to prevent AI-tracking.</span>")
C.digitalcamo = !C.digitalcamo C.digitalcamo = !C.digitalcamo
spawn(0) spawn(0)

View File

@@ -34,10 +34,10 @@
/obj/item/weapon/finger_lockpick/New() /obj/item/weapon/finger_lockpick/New()
if(ismob(loc)) if(ismob(loc))
loc << "<span class='notice'>We shape our finger to fit inside electronics, and are ready to force them open.</span>" to_chat(loc, "<span class='notice'>We shape our finger to fit inside electronics, and are ready to force them open.</span>")
/obj/item/weapon/finger_lockpick/dropped(mob/user) /obj/item/weapon/finger_lockpick/dropped(mob/user)
user << "<span class='notice'>We discreetly shape our finger back to a less suspicious form.</span>" to_chat(user, "<span class='notice'>We discreetly shape our finger back to a less suspicious form.</span>")
spawn(1) spawn(1)
if(src) if(src)
qdel(src) qdel(src)
@@ -53,13 +53,13 @@
var/datum/changeling/ling_datum = user.mind.changeling var/datum/changeling/ling_datum = user.mind.changeling
if(ling_datum.chem_charges < 10) if(ling_datum.chem_charges < 10)
user << "<span class='warning'>We require more chemicals to do that.</span>" to_chat(user, "<span class='warning'>We require more chemicals to do that.</span>")
return return
//Airlocks require an ugly block of code, but we don't want to just call emag_act(), since we don't want to break airlocks forever. //Airlocks require an ugly block of code, but we don't want to just call emag_act(), since we don't want to break airlocks forever.
if(istype(target,/obj/machinery/door)) if(istype(target,/obj/machinery/door))
var/obj/machinery/door/door = target var/obj/machinery/door/door = target
user << "<span class='notice'>We send an electrical pulse up our finger, and into \the [target], attempting to open it.</span>" to_chat(user, "<span class='notice'>We send an electrical pulse up our finger, and into \the [target], attempting to open it.</span>")
if(door.density && door.operable()) if(door.density && door.operable())
door.do_animate("spark") door.do_animate("spark")
@@ -70,15 +70,15 @@
if(airlock.locked) //Check if we're bolted. if(airlock.locked) //Check if we're bolted.
airlock.unlock() airlock.unlock()
user << "<span class='notice'>We've unlocked \the [airlock]. Another pulse is requried to open it.</span>" to_chat(user, "<span class='notice'>We've unlocked \the [airlock]. Another pulse is requried to open it.</span>")
else //We're not bolted, so open the door already. else //We're not bolted, so open the door already.
airlock.open() airlock.open()
user << "<span class='notice'>We've opened \the [airlock].</span>" to_chat(user, "<span class='notice'>We've opened \the [airlock].</span>")
else else
door.open() //If we're a windoor, open the windoor. door.open() //If we're a windoor, open the windoor.
user << "<span class='notice'>We've opened \the [door].</span>" to_chat(user, "<span class='notice'>We've opened \the [door].</span>")
else //Probably broken or no power. else //Probably broken or no power.
user << "<span class='warning'>The door does not respond to the pulse.</span>" to_chat(user, "<span class='warning'>The door does not respond to the pulse.</span>")
door.add_fingerprint(user) door.add_fingerprint(user)
log_and_message_admins("finger-lockpicked \an [door].") log_and_message_admins("finger-lockpicked \an [door].")
ling_datum.chem_charges -= 10 ling_datum.chem_charges -= 10
@@ -86,7 +86,7 @@
else if(istype(target,/obj/)) //This should catch everything else we might miss, without a million typechecks. else if(istype(target,/obj/)) //This should catch everything else we might miss, without a million typechecks.
var/obj/O = target var/obj/O = target
user << "<span class='notice'>We send an electrical pulse up our finger, and into \the [O].</span>" to_chat(user, "<span class='notice'>We send an electrical pulse up our finger, and into \the [O].</span>")
O.add_fingerprint(user) O.add_fingerprint(user)
O.emag_act(1,user,src) O.emag_act(1,user,src)
log_and_message_admins("finger-lockpicked \an [O].") log_and_message_admins("finger-lockpicked \an [O].")

View File

@@ -28,7 +28,7 @@
changeling.chem_charges -= 30 changeling.chem_charges -= 30
var/mob/living/carbon/human/C = src var/mob/living/carbon/human/C = src
C << "<span class='notice'>Energy rushes through us. [C.lying ? "We arise." : ""]</span>" to_chat(C, "<span class='notice'>Energy rushes through us. [C.lying ? "We arise." : ""]</span>")
C.stat = 0 C.stat = 0
C.SetParalysis(0) C.SetParalysis(0)
C.SetStunned(0) C.SetStunned(0)

View File

@@ -24,7 +24,7 @@
if(!C.stat && alert("Are we sure we wish to regenerate? We will appear to be dead while doing so.","Revival","Yes","No") == "No") if(!C.stat && alert("Are we sure we wish to regenerate? We will appear to be dead while doing so.","Revival","Yes","No") == "No")
return return
C << "<span class='notice'>We will attempt to regenerate our form.</span>" to_chat(C, "<span class='notice'>We will attempt to regenerate our form.</span>")
C.update_canmove() C.update_canmove()
C.remove_changeling_powers() C.remove_changeling_powers()

View File

@@ -26,7 +26,7 @@
H.remove_changeling_powers() H.remove_changeling_powers()
H.visible_message("<span class='warning'>[H] transforms!</span>") H.visible_message("<span class='warning'>[H] transforms!</span>")
changeling.geneticdamage = 30 changeling.geneticdamage = 30
H << "<span class='warning'>Our genes cry out!</span>" to_chat(H, "<span class='warning'>Our genes cry out!</span>")
var/list/implants = list() //Try to preserve implants. var/list/implants = list() //Try to preserve implants.
for(var/obj/item/weapon/implant/W in H) for(var/obj/item/weapon/implant/W in H)
implants += W implants += W

View File

@@ -13,7 +13,7 @@
if(!T) if(!T)
return 0 return 0
add_attack_logs(src,T,"Paralysis sting (changeling)") add_attack_logs(src,T,"Paralysis sting (changeling)")
T << "<span class='danger'>Your muscles begin to painfully tighten.</span>" to_chat(T, "<span class='danger'>Your muscles begin to painfully tighten.</span>")
T.Weaken(20) T.Weaken(20)
feedback_add_details("changeling_powers","PS") feedback_add_details("changeling_powers","PS")
return 1 return 1

View File

@@ -75,7 +75,7 @@
C.halloss = 0 C.halloss = 0
C.shock_stage = 0 //Pain C.shock_stage = 0 //Pain
C << "<span class='notice'>We have regenerated.</span>" to_chat(C, "<span class='notice'>We have regenerated.</span>")
C.update_canmove() C.update_canmove()
C.mind.changeling.purchased_powers -= C C.mind.changeling.purchased_powers -= C
feedback_add_details("changeling_powers","CR") feedback_add_details("changeling_powers","CR")

View File

@@ -58,20 +58,20 @@
if(!M.mind || !M.mind.changeling) if(!M.mind || !M.mind.changeling)
if(M.get_ear_protection() >= 2) if(M.get_ear_protection() >= 2)
continue continue
M << "<span class='danger'>You hear an extremely loud screeching sound! It \ to_chat(M, "<span class='danger'>You hear an extremely loud screeching sound! It \
[pick("confuses","confounds","perturbs","befuddles","dazes","unsettles","disorients")] you.</span>" [pick("confuses","confounds","perturbs","befuddles","dazes","unsettles","disorients")] you.</span>")
M.adjustEarDamage(0,30) M.adjustEarDamage(0,30)
M.Confuse(20) M.Confuse(20)
M << sound('sound/effects/screech.ogg') M << sound('sound/effects/screech.ogg')
affected += M affected += M
else else
if(M != src) if(M != src)
M << "<span class='notice'>You hear a familiar screech from nearby. It has no effect on you.</span>" to_chat(M, "<span class='notice'>You hear a familiar screech from nearby. It has no effect on you.</span>")
M << sound('sound/effects/screech.ogg') M << sound('sound/effects/screech.ogg')
if(issilicon(M)) if(issilicon(M))
M << sound('sound/weapons/flash.ogg') M << sound('sound/weapons/flash.ogg')
M << "<span class='notice'>Auditory input overloaded. Reinitializing...</span>" to_chat(M, "<span class='notice'>Auditory input overloaded. Reinitializing...</span>")
M.Weaken(rand(5,10)) M.Weaken(rand(5,10))
affected += M affected += M

View File

@@ -12,7 +12,7 @@
var/mob/living/carbon/T = changeling_sting(5,/mob/proc/changeling_unfat_sting) var/mob/living/carbon/T = changeling_sting(5,/mob/proc/changeling_unfat_sting)
if(!T) return 0 if(!T) return 0
add_attack_logs(src,T,"Unfat sting (changeling)") add_attack_logs(src,T,"Unfat sting (changeling)")
T << "<span class='danger'>you feel a small prick as stomach churns violently and you become to feel skinnier.</span>" to_chat(T, "<span class='danger'>you feel a small prick as stomach churns violently and you become to feel skinnier.</span>")
T.overeatduration = 0 T.overeatduration = 0
T.nutrition -= 100 T.nutrition -= 100
feedback_add_details("changeling_powers","US") feedback_add_details("changeling_powers","US")

View File

@@ -30,7 +30,7 @@
changeling.chem_charges -= 10 changeling.chem_charges -= 10
var/old_regen_rate = H.mind.changeling.chem_recharge_rate var/old_regen_rate = H.mind.changeling.chem_recharge_rate
H << "<span class='notice'>We vanish from sight, and will remain hidden, so long as we move carefully.</span>" to_chat(H, "<span class='notice'>We vanish from sight, and will remain hidden, so long as we move carefully.</span>")
H.mind.changeling.cloaked = 1 H.mind.changeling.cloaked = 1
H.mind.changeling.chem_recharge_rate = 0 H.mind.changeling.chem_recharge_rate = 0
animate(src,alpha = 255, alpha = 10, time = 10) animate(src,alpha = 255, alpha = 10, time = 10)

View File

@@ -297,9 +297,9 @@ proc/findNullRod(var/atom/target)
M.forceMove(destination) M.forceMove(destination)
if(M != user) if(M != user)
prey = 1 prey = 1
user << "<span class='sinister'>You warp back to Nar-Sie[prey ? " along with your prey":""].</span>" to_chat(user, "<span class='sinister'>You warp back to Nar-Sie[prey ? " along with your prey":""].</span>")
else else
user << "<span class='danger'>...something's wrong!</span>"//There shouldn't be an instance of Harvesters when Nar-Sie isn't in the world. to_chat(user, "<span class='danger'>...something's wrong!</span>") //There shouldn't be an instance of Harvesters when Nar-Sie isn't in the world.
*/ */
/spell/targeted/fortify /spell/targeted/fortify

View File

@@ -79,20 +79,20 @@
icon_state = "[initial(icon_state)]-broken" icon_state = "[initial(icon_state)]-broken"
set_light(0) set_light(0)
else else
user << "You hit \the [src]!" to_chat(user, "You hit \the [src]!")
playsound(get_turf(src),impact_sound, 75, 1) playsound(get_turf(src),impact_sound, 75, 1)
else else
if(prob(damage * 2)) if(prob(damage * 2))
user << "You pulverize what was left of \the [src]!" to_chat(user, "You pulverize what was left of \the [src]!")
qdel(src) qdel(src)
else else
user << "You hit \the [src]!" to_chat(user, "You hit \the [src]!")
playsound(get_turf(src),impact_sound, 75, 1) playsound(get_turf(src),impact_sound, 75, 1)
/obj/structure/cult/pylon/proc/repair(mob/user as mob) /obj/structure/cult/pylon/proc/repair(mob/user as mob)
if(isbroken) if(isbroken)
START_PROCESSING(SSobj, src) START_PROCESSING(SSobj, src)
user << "You repair \the [src]." to_chat(user, "You repair \the [src].")
isbroken = 0 isbroken = 0
density = 1 density = 1
icon_state = initial(icon_state) icon_state = initial(icon_state)
@@ -175,4 +175,4 @@
var/mob/living/M = A var/mob/living/M = A
M << "<span class='danger'>Walking into \the [src] is probably a bad idea, you think.</span>" to_chat(M, "<span class='danger'>Walking into \the [src] is probably a bad idea, you think.</span>")

View File

@@ -18,7 +18,7 @@
if(iscultist(src) && client) if(iscultist(src) && client)
var/mob/living/simple_mob/construct/harvester/C = new(get_turf(src)) var/mob/living/simple_mob/construct/harvester/C = new(get_turf(src))
mind.transfer_to(C) mind.transfer_to(C)
C << "<span class='sinister'>The Geometer of Blood is overjoyed to be reunited with its followers, and accepts your body in sacrifice. As reward, you have been gifted with the shell of an Harvester.<br>Your tendrils can use and draw runes without need for a tome, your eyes can see beings through walls, and your mind can open any door. Use these assets to serve Nar-Sie and bring him any remaining living human in the world.<br>You can teleport yourself back to Nar-Sie along with any being under yourself at any time using your \"Harvest\" spell.</span>" to_chat(C, "<span class='sinister'>The Geometer of Blood is overjoyed to be reunited with its followers, and accepts your body in sacrifice. As reward, you have been gifted with the shell of an Harvester.<br>Your tendrils can use and draw runes without need for a tome, your eyes can see beings through walls, and your mind can open any door. Use these assets to serve Nar-Sie and bring him any remaining living human in the world.<br>You can teleport yourself back to Nar-Sie along with any being under yourself at any time using your \"Harvest\" spell.</span>")
dust() dust()
else if(client) else if(client)
var/mob/observer/dead/G = (ghostize()) var/mob/observer/dead/G = (ghostize())
@@ -26,7 +26,7 @@
G.icon_state = "ghost-narsie" G.icon_state = "ghost-narsie"
G.overlays = 0 G.overlays = 0
G.invisibility = 0 G.invisibility = 0
G << "<span class='sinister'>You feel relieved as what's left of your soul finally escapes its prison of flesh.</span>" to_chat(G, "<span class='sinister'>You feel relieved as what's left of your soul finally escapes its prison of flesh.</span>")
cult.harvested += G.mind cult.harvested += G.mind
else else

View File

@@ -16,7 +16,7 @@ In short:
return 1 return 1
/* /*
if(user) if(user)
user << "<span class='sinister'>All you hear on the frequency is static and panicked screaming. There will be no shuttle call today.</span>" to_chat(user, "<span class='sinister'>All you hear on the frequency is static and panicked screaming. There will be no shuttle call today.</span>")
return 0 return 0
*/ */

View File

@@ -43,7 +43,7 @@ var/global/list/narsie_list = list()
/obj/singularity/narsie/large/New() /obj/singularity/narsie/large/New()
..() ..()
if(announce) if(announce)
world << "<font size='15' color='red'><b>[uppertext(name)] HAS RISEN</b></font>" to_world("<font size='15' color='red'><b>[uppertext(name)] HAS RISEN</b></font>")
world << sound('sound/effects/weather/wind/wind_5_1.ogg') world << sound('sound/effects/weather/wind/wind_5_1.ogg')
narsie_spawn_animation() narsie_spawn_animation()
@@ -79,7 +79,7 @@ var/global/list/narsie_list = list()
if(M.status_flags & GODMODE) if(M.status_flags & GODMODE)
continue continue
if(!iscultist(M)) if(!iscultist(M))
M << "<span class='danger'> You feel your sanity crumble away in an instant as you gaze upon [src.name]...</span>" to_chat(M, "<span class='danger'> You feel your sanity crumble away in an instant as you gaze upon [src.name]...</span>")
M.apply_effect(3, STUN) M.apply_effect(3, STUN)
@@ -313,13 +313,13 @@ var/global/list/narsie_list = list()
/obj/singularity/narsie/proc/acquire(const/mob/food) /obj/singularity/narsie/proc/acquire(const/mob/food)
var/capname = uppertext(name) var/capname = uppertext(name)
target << "<span class='notice'><b>[capname] HAS LOST INTEREST IN YOU.</b></span>" to_chat(target, "<span class='notice'><b>[capname] HAS LOST INTEREST IN YOU.</b></span>")
target = food target = food
if (ishuman(target)) if (ishuman(target))
target << "<span class='danger'>[capname] HUNGERS FOR YOUR SOUL.</span>" to_chat(target, "<span class='danger'>[capname] HUNGERS FOR YOUR SOUL.</span>")
else else
target << "<span class='danger'>[capname] HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL.</span>" to_chat(target, "<span class='danger'>[capname] HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL.</span>")
/obj/singularity/narsie/on_capture() /obj/singularity/narsie/on_capture()
chained = 1 chained = 1

View File

@@ -12,7 +12,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if(!cultwords["travel"]) if(!cultwords["travel"])
runerandom() runerandom()
for (var/word in engwords) for (var/word in engwords)
usr << "[cultwords[word]] is [word]" to_chat(usr, "[cultwords[word]] is [word]")
/proc/runerandom() //randomizes word meaning /proc/runerandom() //randomizes word meaning
var/list/runewords=rnwords var/list/runewords=rnwords
@@ -86,16 +86,16 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
examine(mob/user) examine(mob/user)
..() ..()
if(iscultist(user)) if(iscultist(user))
user << "This spell circle reads: <i>[word1] [word2] [word3]</i>." to_chat(user, "This spell circle reads: <i>[word1] [word2] [word3]</i>.")
attackby(I as obj, user as mob) attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/book/tome) && iscultist(user)) if(istype(I, /obj/item/weapon/book/tome) && iscultist(user))
user << "You retrace your steps, carefully undoing the lines of the rune." to_chat(user, "You retrace your steps, carefully undoing the lines of the rune.")
qdel(src) qdel(src)
return return
else if(istype(I, /obj/item/weapon/nullrod)) else if(istype(I, /obj/item/weapon/nullrod))
user << "<span class='notice'>You disrupt the vile magic with the deadening field of the null rod!</span>" to_chat(user, "<span class='notice'>You disrupt the vile magic with the deadening field of the null rod!</span>")
qdel(src) qdel(src)
return return
return return
@@ -103,10 +103,10 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
attack_hand(mob/living/user as mob) attack_hand(mob/living/user as mob)
if(!iscultist(user)) if(!iscultist(user))
user << "You can't mouth the arcane scratchings without fumbling over them." to_chat(user, "You can't mouth the arcane scratchings without fumbling over them.")
return return
if(user.is_muzzled()) if(user.is_muzzled())
user << "You are unable to speak the words of the rune." to_chat(user, "You are unable to speak the words of the rune.")
return return
if(!word1 || !word2 || !word3 || prob(user.getBrainLoss())) if(!word1 || !word2 || !word3 || prob(user.getBrainLoss()))
return fizzle() return fizzle()
@@ -307,7 +307,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit
for(var/mob/O in viewers(M, null)) for(var/mob/O in viewers(M, null))
O.show_message("<span class='warning'>\The [user] beats \the [M] with \the [src]!</span>", 1) O.show_message("<span class='warning'>\The [user] beats \the [M] with \the [src]!</span>", 1)
M << "<span class='danger'>You feel searing heat inside!</span>" to_chat(M, "<span class='danger'>You feel searing heat inside!</span>")
attack_self(mob/living/user as mob) attack_self(mob/living/user as mob)
@@ -322,7 +322,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
for(var/obj/effect/rune/N in rune_list) for(var/obj/effect/rune/N in rune_list)
C++ C++
if (!istype(user.loc,/turf)) if (!istype(user.loc,/turf))
user << "<span class='warning'>You do not have enough space to write a proper rune.</span>" to_chat(user, "<span class='warning'>You do not have enough space to write a proper rune.</span>")
return return
if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist
@@ -387,7 +387,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if (!chosen_rune) if (!chosen_rune)
return return
if (chosen_rune == "none") if (chosen_rune == "none")
user << "<span class='notice'>You decide against scribing a rune, perhaps you should take this time to study your notes.</span>" to_chat(user, "<span class='notice'>You decide against scribing a rune, perhaps you should take this time to study your notes.</span>")
return return
if (chosen_rune == "teleport") if (chosen_rune == "teleport")
dictionary[chosen_rune] += input ("Choose a destination word") in english dictionary[chosen_rune] += input ("Choose a destination word") in english
@@ -399,7 +399,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("<span class='danger'>\The [user] slices open a finger and begins to chant and paint symbols on the floor.</span>", 3, "<span class='danger'>You hear chanting.</span>", 2) V.show_message("<span class='danger'>\The [user] slices open a finger and begins to chant and paint symbols on the floor.</span>", 3, "<span class='danger'>You hear chanting.</span>", 2)
user << "<span class='danger'>You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world.</span>" to_chat(user, "<span class='danger'>You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world.</span>")
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
if(do_after(user, 50)) if(do_after(user, 50))
var/area/A = get_area(user) var/area/A = get_area(user)
@@ -408,7 +408,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
return return
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
var/obj/effect/rune/R = new /obj/effect/rune(user.loc) var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
user << "<span class='notice'>You finish drawing the arcane markings of the Geometer.</span>" to_chat(user, "<span class='notice'>You finish drawing the arcane markings of the Geometer.</span>")
var/list/required = dictionary[chosen_rune] var/list/required = dictionary[chosen_rune]
R.word1 = english[required[1]] R.word1 = english[required[1]]
R.word2 = english[required[2]] R.word2 = english[required[2]]
@@ -418,14 +418,14 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
R.blood_DNA[H.dna.unique_enzymes] = H.dna.b_type R.blood_DNA[H.dna.unique_enzymes] = H.dna.b_type
return return
else else
user << "The book seems full of illegible scribbles. Is this a joke?" to_chat(user, "The book seems full of illegible scribbles. Is this a joke?")
return return
examine(mob/user) examine(mob/user)
if(!iscultist(user)) if(!iscultist(user))
user << "An old, dusty tome with frayed edges and a sinister looking cover." to_chat(user, "An old, dusty tome with frayed edges and a sinister looking cover.")
else else
user << "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though." to_chat(user, "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though.")
/obj/item/weapon/book/tome/cultify() /obj/item/weapon/book/tome/cultify()
return return
@@ -441,7 +441,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if(user) if(user)
var/r var/r
if (!istype(user.loc,/turf)) if (!istype(user.loc,/turf))
user << "<span class='notice'>You do not have enough space to write a proper rune.</span>" to_chat(user, "<span class='notice'>You do not have enough space to write a proper rune.</span>")
var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun") var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun")
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable. r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
var/obj/effect/rune/R = new /obj/effect/rune var/obj/effect/rune/R = new /obj/effect/rune

View File

@@ -29,7 +29,7 @@ var/list/sacrificed = list()
allrunesloc.len = index allrunesloc.len = index
allrunesloc[index] = R.loc allrunesloc[index] = R.loc
if(index >= 5) if(index >= 5)
user << "<span class='danger'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric.</span>" to_chat(user, "<span class='danger'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric.</span>")
if (istype(user, /mob/living)) if (istype(user, /mob/living))
user.take_overall_damage(5, 0) user.take_overall_damage(5, 0)
qdel(src) qdel(src)
@@ -66,7 +66,7 @@ var/list/sacrificed = list()
IP = R IP = R
runecount++ runecount++
if(runecount >= 2) if(runecount >= 2)
user << "<span class='danger'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric.</span>" to_chat(user, "<span class='danger'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric.</span>")
if (istype(user, /mob/living)) if (istype(user, /mob/living))
user.take_overall_damage(5, 0) user.take_overall_damage(5, 0)
qdel(src) qdel(src)
@@ -121,7 +121,7 @@ var/list/sacrificed = list()
if(!converting.len) if(!converting.len)
fizzle() fizzle()
else else
usr << "<span class='danger'>You sense that the power of the dark one is already working away at them.</span>" to_chat(usr, "<span class='danger'>You sense that the power of the dark one is already working away at them.</span>")
return return
usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!") usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!")
@@ -142,14 +142,14 @@ var/list/sacrificed = list()
add_attack_logs(attacker,target,"Convert rune") add_attack_logs(attacker,target,"Convert rune")
switch(target.getFireLoss()) switch(target.getFireLoss())
if(0 to 25) if(0 to 25)
target << "<span class='cult'>Your blood boils as you force yourself to resist the corruption invading every corner of your mind.</span>" to_chat(target, "<span class='cult'>Your blood boils as you force yourself to resist the corruption invading every corner of your mind.</span>")
if(25 to 45) if(25 to 45)
target << "<span class='cult'>Your blood boils and your body burns as the corruption further forces itself into your body and mind.</span>" to_chat(target, "<span class='cult'>Your blood boils and your body burns as the corruption further forces itself into your body and mind.</span>")
if(45 to 75) if(45 to 75)
target << "<span class='cult'>You begin to hallucinate images of a dark and incomprehensible being and your entire body feels like its engulfed in flame as your mental defenses crumble.</span>" to_chat(target, "<span class='cult'>You begin to hallucinate images of a dark and incomprehensible being and your entire body feels like its engulfed in flame as your mental defenses crumble.</span>")
target.apply_effect(rand(1,10), STUTTER) target.apply_effect(rand(1,10), STUTTER)
if(75 to 100) if(75 to 100)
target << "<span class='cult'>Your mind turns to ash as the burning flames engulf your very soul and images of an unspeakable horror begin to bombard the last remnants of mental resistance.</span>" to_chat(target, "<span class='cult'>Your mind turns to ash as the burning flames engulf your very soul and images of an unspeakable horror begin to bombard the last remnants of mental resistance.</span>")
//broken mind - 5000 may seem like a lot I wanted the effect to really stand out for maxiumum losing-your-mind-spooky //broken mind - 5000 may seem like a lot I wanted the effect to really stand out for maxiumum losing-your-mind-spooky
//hallucination is reduced when the step off as well, provided they haven't hit the last stage... //hallucination is reduced when the step off as well, provided they haven't hit the last stage...
@@ -158,7 +158,7 @@ var/list/sacrificed = list()
target.apply_effect(10, STUTTER) target.apply_effect(10, STUTTER)
target.adjustBrainLoss(1) target.adjustBrainLoss(1)
if(100 to INFINITY) if(100 to INFINITY)
target << "<span class='cult'>Your entire broken soul and being is engulfed in corruption and flames as your mind shatters away into nothing.</span>" to_chat(target, "<span class='cult'>Your entire broken soul and being is engulfed in corruption and flames as your mind shatters away into nothing.</span>")
//5000 is waaaay too much, in practice. //5000 is waaaay too much, in practice.
target.hallucination = min(target.hallucination + 100, 500) target.hallucination = min(target.hallucination + 100, 500)
target.apply_effect(15, STUTTER) target.apply_effect(15, STUTTER)
@@ -176,8 +176,8 @@ var/list/sacrificed = list()
if(!cult.can_become_antag(target.mind) || jobban_isbanned(target, "cultist"))//putting jobban check here because is_convertable uses mind as argument if(!cult.can_become_antag(target.mind) || jobban_isbanned(target, "cultist"))//putting jobban check here because is_convertable uses mind as argument
//waiting_for_input ensures this is only shown once, so they basically auto-resist from here on out. They still need to find a way to get off the freaking rune if they don't want to burn to death, though. //waiting_for_input ensures this is only shown once, so they basically auto-resist from here on out. They still need to find a way to get off the freaking rune if they don't want to burn to death, though.
target << "<span class='cult'>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</span>" to_chat(target, "<span class='cult'>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</span>")
target << "<span class='danger'>And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs.</span>" to_chat(target, "<span class='danger'>And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs.</span>")
else spawn() else spawn()
var/choice = alert(target,"Do you want to join the cult?","Submit to Nar'Sie","Resist","Submit") var/choice = alert(target,"Do you want to join the cult?","Submit to Nar'Sie","Resist","Submit")
@@ -205,7 +205,7 @@ var/list/sacrificed = list()
cultists.Add(M) cultists.Add(M)
if(cultists.len >= 9) if(cultists.len >= 9)
if(!narsie_cometh)//so we don't initiate Hell more than one time. if(!narsie_cometh)//so we don't initiate Hell more than one time.
world << "<font size='15' color='red'><b>THE VEIL HAS BEEN SHATTERED!</b></font>" to_world("<font size='15' color='red'><b>THE VEIL HAS BEEN SHATTERED!</b></font>")
world << sound('sound/effects/weather/wind/wind_5_1.ogg') world << sound('sound/effects/weather/wind/wind_5_1.ogg')
SetUniversalState(/datum/universal_state/hell) SetUniversalState(/datum/universal_state/hell)
@@ -249,7 +249,7 @@ var/list/sacrificed = list()
if(D.stat!=2) if(D.stat!=2)
add_attack_logs(usr,D,"Blood drain rune") add_attack_logs(usr,D,"Blood drain rune")
var/bdrain = rand(1,25) var/bdrain = rand(1,25)
D << "<span class='warning'>You feel weakened.</span>" to_chat(D, "<span class='warning'>You feel weakened.</span>")
D.take_overall_damage(bdrain, 0) D.take_overall_damage(bdrain, 0)
drain += bdrain drain += bdrain
if(!drain) if(!drain)
@@ -305,16 +305,16 @@ var/list/sacrificed = list()
if(usr.loc==src.loc) if(usr.loc==src.loc)
if(usr.seer==1) if(usr.seer==1)
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.") usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.")
usr << "<span class='danger'>The world beyond fades from your vision.</span>" to_chat(usr, "<span class='danger'>The world beyond fades from your vision.</span>")
usr.see_invisible = SEE_INVISIBLE_LIVING usr.see_invisible = SEE_INVISIBLE_LIVING
usr.seer = 0 usr.seer = 0
else if(usr.see_invisible!=SEE_INVISIBLE_LIVING) else if(usr.see_invisible!=SEE_INVISIBLE_LIVING)
usr << "<span class='warning'>The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision.</span>" to_chat(usr, "<span class='warning'>The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision.</span>")
usr.see_invisible = SEE_INVISIBLE_CULT usr.see_invisible = SEE_INVISIBLE_CULT
usr.seer = 0 usr.seer = 0
else else
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!") usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
usr << "<span class='warning'>The world beyond opens to your eyes.</span>" to_chat(usr, "<span class='warning'>The world beyond opens to your eyes.</span>")
usr.see_invisible = SEE_INVISIBLE_CULT usr.see_invisible = SEE_INVISIBLE_CULT
usr.seer = 1 usr.seer = 1
return return
@@ -337,7 +337,7 @@ var/list/sacrificed = list()
if(!corpse_to_raise) if(!corpse_to_raise)
if(is_sacrifice_target) if(is_sacrifice_target)
usr << "<span class='warning'>The Geometer of blood wants this mortal for himself.</span>" to_chat(usr, "<span class='warning'>The Geometer of blood wants this mortal for himself.</span>")
return fizzle() return fizzle()
@@ -355,20 +355,20 @@ var/list/sacrificed = list()
if(!body_to_sacrifice) if(!body_to_sacrifice)
if (is_sacrifice_target) if (is_sacrifice_target)
usr << "<span class='warning'>The Geometer of Blood wants that corpse for himself.</span>" to_chat(usr, "<span class='warning'>The Geometer of Blood wants that corpse for himself.</span>")
else else
usr << "<span class='warning'>The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.</span>" to_chat(usr, "<span class='warning'>The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.</span>")
return fizzle() return fizzle()
if(!cult.can_become_antag(corpse_to_raise.mind) || jobban_isbanned(corpse_to_raise, "cultist")) if(!cult.can_become_antag(corpse_to_raise.mind) || jobban_isbanned(corpse_to_raise, "cultist"))
usr << "<span class='warning'>The Geometer of Blood refuses to touch this one.</span>" to_chat(usr, "<span class='warning'>The Geometer of Blood refuses to touch this one.</span>")
return fizzle() return fizzle()
else if(!corpse_to_raise.client && corpse_to_raise.mind) //Don't force the dead person to come back if they don't want to. else if(!corpse_to_raise.client && corpse_to_raise.mind) //Don't force the dead person to come back if they don't want to.
for(var/mob/observer/dead/ghost in player_list) for(var/mob/observer/dead/ghost in player_list)
if(ghost.mind == corpse_to_raise.mind) if(ghost.mind == corpse_to_raise.mind)
ghost << "<b><font color = #330033><font size = 3>The cultist [usr.real_name] is trying to \ to_chat(ghost, "<b><font color = #330033><font size = 3>The cultist [usr.real_name] is trying to \
revive you. Return to your body if you want to be resurrected into the service of Nar'Sie!</b> \ revive you. Return to your body if you want to be resurrected into the service of Nar'Sie!</b> \
(Verbs -> Ghost -> Re-enter corpse)</font></font>" (Verbs -> Ghost -> Re-enter corpse)</font></font>")
break break
sleep(10 SECONDS) sleep(10 SECONDS)
@@ -395,8 +395,8 @@ var/list/sacrificed = list()
// else // else
// ticker.mode.cult |= corpse_to_raise.mind // ticker.mode.cult |= corpse_to_raise.mind
corpse_to_raise << "<span class='cult'>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</span>" to_chat(corpse_to_raise, "<span class='cult'>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</span>")
corpse_to_raise << "<span class='cult'>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</span>" to_chat(corpse_to_raise, "<span class='cult'>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</span>")
return return
@@ -420,7 +420,7 @@ var/list/sacrificed = list()
qdel(src) qdel(src)
else else
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!") usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
usr << "<span class='warning'>Your talisman turns into gray dust, veiling the surrounding runes.</span>" to_chat(usr, "<span class='warning'>Your talisman turns into gray dust, veiling the surrounding runes.</span>")
for (var/mob/V in orange(1,src)) for (var/mob/V in orange(1,src))
if(V!=usr) if(V!=usr)
V.show_message("<span class='warning'>Dust emanates from [usr]'s hands for a moment.</span>", 3) V.show_message("<span class='warning'>Dust emanates from [usr]'s hands for a moment.</span>", 3)
@@ -532,7 +532,7 @@ var/list/sacrificed = list()
unsuitable_newtalisman = 1 unsuitable_newtalisman = 1
if (!newtalisman) if (!newtalisman)
if (unsuitable_newtalisman) if (unsuitable_newtalisman)
usr << "<span class='warning'>The blank is tainted. It is unsuitable.</span>" to_chat(usr, "<span class='warning'>The blank is tainted. It is unsuitable.</span>")
return fizzle() return fizzle()
var/obj/effect/rune/imbued_from var/obj/effect/rune/imbued_from
@@ -688,44 +688,44 @@ var/list/sacrificed = list()
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice, your objective is now complete.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice, your objective is now complete.</span>")
else else
usr << "<span class='warning'>Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual.</span>" to_chat(usr, "<span class='warning'>Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual.</span>")
else else
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
if(H.stat !=2) if(H.stat !=2)
if(prob(80) || worth) if(prob(80) || worth)
usr << "<span class='cult'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>" to_chat(usr, "<span class='warning'>However, this soul was not enough to gain His favor.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(prob(40) || worth) if(prob(40) || worth)
usr << "<span class='cult'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>" to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>" to_chat(usr, "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>")
else else
if(prob(40)) if(prob(40))
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>" to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
@@ -734,36 +734,36 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
if(H.stat !=2) if(H.stat !=2)
if(prob(80)) if(prob(80))
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>" to_chat(usr, "<span class='warning'>However, this soul was not enough to gain His favor.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(prob(40)) if(prob(40))
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>" to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>" to_chat(usr, "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>")
else else
if(prob(40)) if(prob(40))
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>" to_chat(usr, "<span class='cult'>The Geometer of Blood accepts this sacrifice.</span>")
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>" to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
@@ -791,7 +791,7 @@ var/list/sacrificed = list()
S=1 S=1
if(S) if(S)
if(istype(W,/obj/item/weapon/nullrod)) if(istype(W,/obj/item/weapon/nullrod))
usr << "<span class='warning'>Arcane markings suddenly glow from underneath a thin layer of dust!</span>" to_chat(usr, "<span class='warning'>Arcane markings suddenly glow from underneath a thin layer of dust!</span>")
return return
if(istype(W,/obj/effect/rune)) if(istype(W,/obj/effect/rune))
usr.say("Nikt[pick("'","`")]o barada kla'atu!") usr.say("Nikt[pick("'","`")]o barada kla'atu!")
@@ -801,7 +801,7 @@ var/list/sacrificed = list()
return return
if(istype(W,/obj/item/weapon/paper/talisman)) if(istype(W,/obj/item/weapon/paper/talisman))
usr.whisper("Nikt[pick("'","`")]o barada kla'atu!") usr.whisper("Nikt[pick("'","`")]o barada kla'atu!")
usr << "<span class='warning'>Your talisman turns into red dust, revealing the surrounding runes.</span>" to_chat(usr, "<span class='warning'>Your talisman turns into red dust, revealing the surrounding runes.</span>")
for (var/mob/V in orange(1,usr.loc)) for (var/mob/V in orange(1,usr.loc))
if(V!=usr) if(V!=usr)
V.show_message("<span class='warning'>Red dust emanates from [usr]'s hands for a moment.</span>", 3) V.show_message("<span class='warning'>Red dust emanates from [usr]'s hands for a moment.</span>", 3)
@@ -821,9 +821,9 @@ var/list/sacrificed = list()
var/mob/living/user = usr var/mob/living/user = usr
user.take_organ_damage(2, 0) user.take_organ_damage(2, 0)
if(src.density) if(src.density)
usr << "<span class='danger'>Your blood flows into the rune, and you feel that the very space over the rune thickens.</span>" to_chat(usr, "<span class='danger'>Your blood flows into the rune, and you feel that the very space over the rune thickens.</span>")
else else
usr << "<span class='danger'>Your blood flows into the rune, and you feel as the rune releases its grasp on space.</span>" to_chat(usr, "<span class='danger'>Your blood flows into the rune, and you feel as the rune releases its grasp on space.</span>")
return return
/////////////////////////////////////////EIGHTTEENTH RUNE /////////////////////////////////////////EIGHTTEENTH RUNE
@@ -852,7 +852,7 @@ var/list/sacrificed = list()
(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \ (istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \
(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \ (istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \
)) ))
user << "<span class='warning'>The [cultist] is already free.</span>" to_chat(user, "<span class='warning'>The [cultist] is already free.</span>")
return return
cultist.buckled = null cultist.buckled = null
if (cultist.handcuffed) if (cultist.handcuffed)
@@ -893,7 +893,7 @@ var/list/sacrificed = list()
return return
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
var/datum/gender/TU = gender_datums[cultist.get_visible_gender()] var/datum/gender/TU = gender_datums[cultist.get_visible_gender()]
user << "<span class='warning'>You cannot summon \the [cultist], for [TU.his] shackles of blood are strong.</span>" to_chat(user, "<span class='warning'>You cannot summon \the [cultist], for [TU.his] shackles of blood are strong.</span>")
return fizzle() return fizzle()
cultist.loc = src.loc cultist.loc = src.loc
cultist.lying = 1 cultist.lying = 1
@@ -932,7 +932,7 @@ var/list/sacrificed = list()
C.sdisabilities |= DEAF C.sdisabilities |= DEAF
if(affected.len) if(affected.len)
usr.say("Sti[pick("'","`")] kaliedir!") usr.say("Sti[pick("'","`")] kaliedir!")
usr << "<span class='warning'>The world becomes quiet as the deafening rune dissipates into fine dust.</span>" to_chat(usr, "<span class='warning'>The world becomes quiet as the deafening rune dissipates into fine dust.</span>")
add_attack_logs(usr,affected,"Deafen rune") add_attack_logs(usr,affected,"Deafen rune")
qdel(src) qdel(src)
else else
@@ -951,7 +951,7 @@ var/list/sacrificed = list()
affected += C affected += C
if(affected.len) if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliedir!") usr.whisper("Sti[pick("'","`")] kaliedir!")
usr << "<span class='warning'>Your talisman turns into gray dust, deafening everyone around.</span>" to_chat(usr, "<span class='warning'>Your talisman turns into gray dust, deafening everyone around.</span>")
add_attack_logs(usr, affected, "Deafen rune") add_attack_logs(usr, affected, "Deafen rune")
for (var/mob/V in orange(1,src)) for (var/mob/V in orange(1,src))
if(!(iscultist(V))) if(!(iscultist(V)))
@@ -977,7 +977,7 @@ var/list/sacrificed = list()
affected += C affected += C
if(affected.len) if(affected.len)
usr.say("Sti[pick("'","`")] kaliesin!") usr.say("Sti[pick("'","`")] kaliesin!")
usr << "<span class='warning'>The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust.</span>" to_chat(usr, "<span class='warning'>The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust.</span>")
add_attack_logs(usr, affected, "Blindness rune") add_attack_logs(usr, affected, "Blindness rune")
qdel(src) qdel(src)
else else
@@ -997,7 +997,7 @@ var/list/sacrificed = list()
C.show_message("<span class='warning'>You feel a sharp pain in your eyes, and the world disappears into darkness..</span>", 3) C.show_message("<span class='warning'>You feel a sharp pain in your eyes, and the world disappears into darkness..</span>", 3)
if(affected.len) if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliesin!") usr.whisper("Sti[pick("'","`")] kaliesin!")
usr << "<span class='warning'>Your talisman turns into gray dust, blinding those who not follow the Nar-Sie.</span>" to_chat(usr, "<span class='warning'>Your talisman turns into gray dust, blinding those who not follow the Nar-Sie.</span>")
add_attack_logs(usr, affected, "Blindness rune") add_attack_logs(usr, affected, "Blindness rune")
return return
@@ -1023,7 +1023,7 @@ var/list/sacrificed = list()
if(N) if(N)
continue continue
M.take_overall_damage(51,51) M.take_overall_damage(51,51)
M << "<span class='danger'>Your blood boils!</span>" to_chat(M, "<span class='danger'>Your blood boils!</span>")
victims += M victims += M
if(prob(5)) if(prob(5))
spawn(5) spawn(5)
@@ -1054,16 +1054,16 @@ var/list/sacrificed = list()
for(var/mob/living/M in orange(2,R)) for(var/mob/living/M in orange(2,R))
M.take_overall_damage(0,15) M.take_overall_damage(0,15)
if (R.invisibility>M.see_invisible) if (R.invisibility>M.see_invisible)
M << "<span class='danger'>Aargh it burns!</span>" to_chat(M, "<span class='danger'>Aargh it burns!</span>")
else else
M << "<span class='danger'>Rune suddenly ignites, burning you!</span>" to_chat(M, "<span class='danger'>Rune suddenly ignites, burning you!</span>")
var/turf/T = get_turf(R) var/turf/T = get_turf(R)
T.hotspot_expose(700,125) T.hotspot_expose(700,125)
for(var/obj/effect/decal/cleanable/blood/B in world) for(var/obj/effect/decal/cleanable/blood/B in world)
if(B.blood_DNA == src.blood_DNA) if(B.blood_DNA == src.blood_DNA)
for(var/mob/living/M in orange(1,B)) for(var/mob/living/M in orange(1,B))
M.take_overall_damage(0,5) M.take_overall_damage(0,5)
M << "<span class='danger'>Blood suddenly ignites, burning you!</span>" to_chat(M, "<span class='danger'>Blood suddenly ignites, burning you!</span>")
var/turf/T = get_turf(B) var/turf/T = get_turf(B)
T.hotspot_expose(700,125) T.hotspot_expose(700,125)
qdel(B) qdel(B)

View File

@@ -25,11 +25,11 @@
if(istype(M, /mob/living/carbon/human/dummy)) if(istype(M, /mob/living/carbon/human/dummy))
return..() return..()
if(jobban_isbanned(M, "cultist")) if(jobban_isbanned(M, "cultist"))
user << "<span class='warning'>This person's soul is too corrupt and cannot be captured!</span>" to_chat(user, "<span class='warning'>This person's soul is too corrupt and cannot be captured!</span>")
return..() return..()
if(M.has_brain_worms()) //Borer stuff - RR if(M.has_brain_worms()) //Borer stuff - RR
user << "<span class='warning'>This being is corrupted by an alien intelligence and cannot be soul trapped.</span>" to_chat(user, "<span class='warning'>This being is corrupted by an alien intelligence and cannot be soul trapped.</span>")
return..() return..()
add_attack_logs(user,M,"Soulstone'd with [src.name]") add_attack_logs(user,M,"Soulstone'd with [src.name]")
@@ -76,7 +76,7 @@
for(var/mob/living/simple_mob/construct/shade/A in src) for(var/mob/living/simple_mob/construct/shade/A in src)
A.status_flags &= ~GODMODE A.status_flags &= ~GODMODE
A.canmove = 1 A.canmove = 1
A << "<b>You have been released from your prison, but you are still bound to [U.name]'s will. Help them suceed in their goals at all costs.</b>" to_chat(A, "<b>You have been released from your prison, but you are still bound to [U.name]'s will. Help them suceed in their goals at all costs.</b>")
A.forceMove(U.loc) A.forceMove(U.loc)
A.cancel_camera() A.cancel_camera()
src.icon_state = "soulstone" src.icon_state = "soulstone"
@@ -107,16 +107,16 @@
if(!istype(T)) if(!istype(T))
return; return;
if(src.imprinted != "empty") if(src.imprinted != "empty")
U << "<span class='danger'>Capture failed!</span>: The soul stone has already been imprinted with [src.imprinted]'s mind!" to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone has already been imprinted with [src.imprinted]'s mind!")
return return
if ((T.health + T.halloss) > config.health_threshold_crit && T.stat != DEAD) if ((T.health + T.halloss) > config.health_threshold_crit && T.stat != DEAD)
U << "<span class='danger'>Capture failed!</span>: Kill or maim the victim first!" to_chat(U, "<span class='danger'>Capture failed!</span>: Kill or maim the victim first!")
return return
if(T.client == null) if(T.client == null)
U << "<span class='danger'>Capture failed!</span>: The soul has already fled it's mortal frame." to_chat(U, "<span class='danger'>Capture failed!</span>: The soul has already fled it's mortal frame.")
return return
if(src.contents.len) if(src.contents.len)
U << "<span class='danger'>Capture failed!</span>: The soul stone is full! Use or free an existing soul to make room." to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone is full! Use or free an existing soul to make room.")
return return
for(var/obj/item/W in T) for(var/obj/item/W in T)
@@ -181,7 +181,7 @@
/obj/item/device/soulstone/proc/transfer_construct(var/obj/structure/constructshell/T,var/mob/U) /obj/item/device/soulstone/proc/transfer_construct(var/obj/structure/constructshell/T,var/mob/U)
var/mob/living/simple_mob/construct/shade/A = locate() in src var/mob/living/simple_mob/construct/shade/A = locate() in src
if(!A) if(!A)
to_chat(U,"<span class='danger'>Capture failed!</span>: The soul stone is empty! Go kill someone!") to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone is empty! Go kill someone!")
return; return;
var/construct_class = input(U, "Please choose which type of construct you wish to create.") as null|anything in possible_constructs var/construct_class = input(U, "Please choose which type of construct you wish to create.") as null|anything in possible_constructs
switch(construct_class) switch(construct_class)
@@ -191,8 +191,8 @@
if(iscultist(U)) if(iscultist(U))
cult.add_antagonist(Z.mind) cult.add_antagonist(Z.mind)
qdel(T) qdel(T)
to_chat(Z,"<B>You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike.</B>") to_chat(Z, "<B>You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike.</B>")
to_chat(Z,"<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>") to_chat(Z, "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>")
Z.cancel_camera() Z.cancel_camera()
qdel(src) qdel(src)
if("Wraith") if("Wraith")
@@ -201,8 +201,8 @@
if(iscultist(U)) if(iscultist(U))
cult.add_antagonist(Z.mind) cult.add_antagonist(Z.mind)
qdel(T) qdel(T)
to_chat(Z,"<B>You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls.</B>") to_chat(Z, "<B>You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls.</B>")
to_chat(Z,"<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>") to_chat(Z, "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>")
Z.cancel_camera() Z.cancel_camera()
qdel(src) qdel(src)
if("Artificer") if("Artificer")
@@ -211,8 +211,8 @@
if(iscultist(U)) if(iscultist(U))
cult.add_antagonist(Z.mind) cult.add_antagonist(Z.mind)
qdel(T) qdel(T)
to_chat(Z,"<B>You are playing an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, repair allied constructs (by clicking on them), and even create new constructs</B>") to_chat(Z, "<B>You are playing an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, repair allied constructs (by clicking on them), and even create new constructs</B>")
to_chat(Z,"<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>") to_chat(Z, "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>")
Z.cancel_camera() Z.cancel_camera()
qdel(src) qdel(src)
if("Harvester") if("Harvester")
@@ -221,8 +221,8 @@
if(iscultist(U)) if(iscultist(U))
cult.add_antagonist(Z.mind) cult.add_antagonist(Z.mind)
qdel(T) qdel(T)
to_chat(Z,"<B>You are playing a Harvester. You are relatively weak, but your physical frailty is made up for by your ranged abilities.</B>") to_chat(Z, "<B>You are playing a Harvester. You are relatively weak, but your physical frailty is made up for by your ranged abilities.</B>")
to_chat(Z,"<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>") to_chat(Z, "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>")
Z.cancel_camera() Z.cancel_camera()
qdel(src) qdel(src)
if("Behemoth") if("Behemoth")
@@ -231,8 +231,8 @@
if(iscultist(U)) if(iscultist(U))
cult.add_antagonist(Z.mind) cult.add_antagonist(Z.mind)
qdel(T) qdel(T)
to_chat(Z,"<B>You are playing a Behemoth. You are incredibly slow, though your slowness is made up for by the fact your shell is far larger than any of your bretheren. You are the Unstoppable Force, and Immovable Object.</B>") to_chat(Z, "<B>You are playing a Behemoth. You are incredibly slow, though your slowness is made up for by the fact your shell is far larger than any of your bretheren. You are the Unstoppable Force, and Immovable Object.</B>")
to_chat(Z,"<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>") to_chat(Z, "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>")
Z.cancel_camera() Z.cancel_camera()
qdel(src) qdel(src)

View File

@@ -29,7 +29,7 @@
if("blind") if("blind")
call(/obj/effect/rune/proc/blind)() call(/obj/effect/rune/proc/blind)()
if("runestun") if("runestun")
user << "<span class='warning'>To use this talisman, attack your target directly.</span>" to_chat(user, "<span class='warning'>To use this talisman, attack your target directly.</span>")
return return
if("supply") if("supply")
supply() supply()
@@ -39,7 +39,7 @@
qdel(src) qdel(src)
return return
else else
user << "You see strange symbols on the paper. Are they supposed to mean something?" to_chat(user, "You see strange symbols on the paper. Are they supposed to mean something?")
return return

View File

@@ -67,7 +67,7 @@
if(Adjacent(user)) if(Adjacent(user))
return attack_hand(user) return attack_hand(user)
else else
user << "<span class = \"warning\">What the fuck are you doing?</span>" to_chat(user, "<span class='warning'>What the fuck are you doing?</span>")
return return
// /vg/: Don't let ghosts fuck with this. // /vg/: Don't let ghosts fuck with this.

View File

@@ -9,7 +9,7 @@ var/global/universe_has_ended = 0
/datum/universal_state/supermatter_cascade/OnShuttleCall(var/mob/user) /datum/universal_state/supermatter_cascade/OnShuttleCall(var/mob/user)
if(user) if(user)
user << "<span class='sinister'>All you hear on the frequency is static and panicked screaming. There will be no shuttle call today.</span>" to_chat(user, "<span class='sinister'>All you hear on the frequency is static and panicked screaming. There will be no shuttle call today.</span>")
return 0 return 0
/datum/universal_state/supermatter_cascade/OnTurfChange(var/turf/T) /datum/universal_state/supermatter_cascade/OnTurfChange(var/turf/T)
@@ -37,7 +37,7 @@ var/global/universe_has_ended = 0
// Apply changes when entering state // Apply changes when entering state
/datum/universal_state/supermatter_cascade/OnEnter() /datum/universal_state/supermatter_cascade/OnEnter()
set background = 1 set background = 1
world << "<span class='sinister' style='font-size:22pt'>You are blinded by a brilliant flash of energy.</span>" to_world("<span class='sinister' style='font-size:22pt'>You are blinded by a brilliant flash of energy.</span>")
world << sound('sound/effects/cascade.ogg') world << sound('sound/effects/cascade.ogg')

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