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 category = "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.
//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)
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()

View File

@@ -389,11 +389,11 @@
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
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
user << "You are too far away to read the gauge."
to_chat(user, "You are too far away to read the gauge.")
if(welded)
user << "It seems welded shut."
to_chat(user, "It seems welded shut.")
/obj/machinery/atmospherics/unary/vent_pump/power_change()
var/old_stat = stat

View File

@@ -288,6 +288,6 @@
/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user)
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
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)
..()
user << "It is [open ? "open" : "closed"]."
to_chat(user, "It is [open ? "open" : "closed"].")

View File

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

View File

@@ -72,10 +72,10 @@ Class Procs:
/connection_edge/proc/add_connection(connection/c)
coefficient++
if(c.direct()) direct++
//world << "Connection added: [type] Coefficient: [coefficient]"
//to_world("Connection added: [type] Coefficient: [coefficient]")
/connection_edge/proc/remove_connection(connection/c)
//world << "Connection removed: [type] Coefficient: [coefficient-1]"
//to_world("Connection removed: [type] Coefficient: [coefficient-1]")
coefficient--
if(coefficient <= 0)
erase()
@@ -85,7 +85,7 @@ Class Procs:
/connection_edge/proc/erase()
air_master.remove_edge(src)
//world << "[type] Erased."
//to_world("[type] Erased.")
/connection_edge/proc/tick()
@@ -128,7 +128,7 @@ Class Procs:
A.edges.Add(src)
B.edges.Add(src)
//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)
. = ..()
@@ -198,7 +198,7 @@ Class Procs:
A.edges.Add(src)
air = B.return_air()
//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)
. = ..()

View File

@@ -22,11 +22,11 @@ client/proc/Zone_Info(turf/T as null|turf)
if(istype(T,/turf/simulated) && T:zone)
T:zone:dbg_data(src)
else
mob << "No zone here."
to_chat(mob, "No zone here.")
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)
mob << "[g]: [mix.gas[g]]\n"
to_chat(mob, "[g]: [mix.gas[g]]\n")
else
if(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(!(T.c_airblock(T) & AIR_BLOCKED))
mob << "The turf can pass air! :D"
to_chat(mob, "The turf can pass air! :D")
else
mob << "No air passage :x"
to_chat(mob, "No air passage :x")
return
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(t_block & AIR_BLOCKED)
mob << "Neither turf can connect. :("
to_chat(mob, "Neither turf can connect. :(")
else
mob << "The initial turf only can connect. :\\"
to_chat(mob, "The initial turf only can connect. :\\")
else
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
mob << "Both turfs can connect! :)"
to_chat(mob, "Both turfs can connect! :)")
mob << "Additionally, \..."
to_chat(mob, "Additionally, \...")
if(o_block & ZONE_BLOCKED)
if(t_block & ZONE_BLOCKED)
mob << "neither turf can merge."
to_chat(mob, "neither turf can merge.")
else
mob << "the other turf cannot merge."
to_chat(mob, "the other turf cannot merge.")
else
if(t_block & ZONE_BLOCKED)
mob << "the initial turf cannot merge."
to_chat(mob, "the initial turf cannot merge.")
else
mob << "both turfs can merge."
to_chat(mob, "both turfs can merge.")
client/proc/ZASSettings()
set category = "Debug"

View File

@@ -99,7 +99,7 @@
var/s_block = c_airblock(src)
if(s_block & AIR_BLOCKED)
#ifdef ZASDBG
if(verbose) world << "Self-blocked."
if(verbose) to_world("Self-blocked.")
//dbg(blocked)
#endif
if(zone)
@@ -131,7 +131,7 @@
if(block & AIR_BLOCKED)
#ifdef ZASDBG
if(verbose) world << "[d] is blocked."
if(verbose) to_world("[d] is blocked.")
//unsim.dbg(air_blocked, turn(180,d))
#endif
@@ -141,7 +141,7 @@
if(r_block & AIR_BLOCKED)
#ifdef ZASDBG
if(verbose) world << "[d] is blocked."
if(verbose) to_world("[d] is blocked.")
//dbg(air_blocked, d)
#endif
@@ -172,7 +172,7 @@
// 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)))
#ifdef ZASDBG
if(verbose) world << "[d] is zone blocked."
if(verbose) to_world("[d] is zone blocked.")
//dbg(zone_blocked, d)
#endif
@@ -186,22 +186,22 @@
#ifdef ZASDBG
dbg(assigned)
if(verbose) world << "Added to [zone]"
if(verbose) to_world("Added to [zone]")
#endif
else if(sim.zone != zone)
#ifdef ZASDBG
if(verbose) world << "Connecting to [sim.zone]"
if(verbose) to_world("Connecting to [sim.zone]")
#endif
air_master.connect(src, sim)
#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
else

View File

@@ -169,7 +169,7 @@ var/global/vs_control/vsc = new
vars[ch] = vw
if(how == "Toggle")
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)
ChangeSettingsDialog(user,plc.settings)
else
@@ -322,7 +322,7 @@ var/global/vs_control/vsc = new
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()

View File

@@ -168,15 +168,16 @@ Class Procs:
E.recheck()
/zone/proc/dbg_data(mob/M)
M << name
to_chat(M,name)
for(var/g in air.gas)
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)"
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])"
//M << "Unsimulated: [unsimulated_contents.len]"
//M << "Edges: [edges.len]"
if(invalid) M << "Invalid!"
to_chat(M, "[gas_data.name[g]]: [air.gas[g]]")
to_chat(M, "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]<5D>K ([air.temperature - T0C]<5D>C)")
to_chat(M, "O2 per N2: [(air.gas["nitrogen"] ? air.gas["oxygen"]/air.gas["nitrogen"] : "N/A")] Moles: [air.total_moles]")
to_chat(M, "Simulated: [contents.len] ([air.group_multiplier])")
//to_chat(M, "Unsimulated: [unsimulated_contents.len]")
//to_chat(M, "Edges: [edges.len]")
if(invalid)
to_chat(M, "Invalid!")
var/zone_edges = 0
var/space_edges = 0
var/space_coefficient = 0
@@ -185,10 +186,10 @@ Class Procs:
else
space_edges++
space_coefficient += E.coefficient
M << "[E:air:return_pressure()]kPa"
to_chat(M, "[E:air:return_pressure()]kPa")
M << "Zone Edges: [zone_edges]"
M << "Space Edges: [space_edges] ([space_coefficient] connections)"
to_chat(M, "Zone Edges: [zone_edges]")
to_chat(M, "Space Edges: [space_edges] ([space_coefficient] connections)")
//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
/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))
for(var/entry in L)
if(isnum(entry))
@@ -531,13 +531,13 @@ proc/listclearnulls(list/list)
if(!success)
out.Add(entry)
//world.log << " output: [out.len]"
//to_world_log(" output: [out.len]")
return out
/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)
//world.log << " output: [out.len]"
//to_world_log(" output: [out.len]")
return reverselist(out)
/proc/dd_sortedObjectList(var/list/L, var/cache=list())

View File

@@ -5,12 +5,12 @@
A.add_fingerprint(user)
var/list/result = A.atmosanalyze(user)
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)
user << "<span class='notice'>[line]</span>"
to_chat(user, "<span class='notice'>[line]</span>")
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
/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]
for(var/t in L)
. += " has: [t]\n"
world << .
to_world(.)
*/
//Hexidecimal numbers
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()
set name = "2. Output Icon"
src<<"Icon is: \icon[getFlatIcon(src)]"
to_chat(src, "Icon is: \icon[getFlatIcon(src)]")
Label_Icon()
set name = "3. Label Icon"

View File

@@ -9,16 +9,16 @@
/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].")
//print a warning message to world.log
/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
/proc/testing(msg)
world.log << "## TESTING: [msg][log_end]"
to_world_log("## TESTING: [msg][log_end]")
/proc/log_admin(text)
admin_log.Add(text)
@@ -36,7 +36,7 @@
for(var/client/C in admins)
if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs))
C << "DEBUG: [text]"
to_chat(C, "DEBUG: [text]")
/proc/log_game(text)
if (config.log_game)
@@ -141,19 +141,19 @@
/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)
diary << "\[[time_stamp()]]DD_OUTPUT: [text][log_end]"
/proc/log_error(text)
world.log << text
to_world_log(text)
error_log << "\[[time_stamp()]]RUNTIME: [text][log_end]"
/proc/log_misc(text)
diary << "\[[time_stamp()]]MISC: [text][log_end]"
/proc/log_unit_test(text)
world.log << "## UNIT_TEST: [text]"
to_world_log("## UNIT_TEST: [text]")
/proc/report_progress(var/progress_message)
admin_notice("<span class='boldannounce'>[progress_message]</span>", R_DEBUG)

View File

@@ -68,7 +68,7 @@
if (4.0) return EAST
if (8.0) return WEST
else
world.log << "UNKNOWN DIRECTION: [direction]"
to_world_log("UNKNOWN DIRECTION: [direction]")
// Turns a direction into text
/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))
var/mob/living/silicon/ai/A = src
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')
// Set eyeobj name
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 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
// 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 from_file(file_entry, target_var) file_entry >> target_var
#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 SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image)
#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)

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.
/obj/screen/ability/proc/activate()
world << "[src] had activate() called."
to_world("[src] had activate() called.")
return
// This checks if the ability can be used.
@@ -304,7 +304,7 @@
if(object_used && verb_to_call)
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))
// call(object_used,verb_to_call)(arguments_to_use)
// else

View File

@@ -326,11 +326,11 @@ datum/hud/New(mob/owner)
set hidden = 1
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
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
if(!client) return

View File

@@ -223,11 +223,11 @@ var/obj/screen/robot_inventory
//r.client.screen += robot_inventory //"store" icon
if(!r.module)
usr << "<span class='danger'>No module selected</span>"
to_chat(usr, "<span class='danger'>No module selected</span>")
return
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
if(!r.robot_modules_background)

View File

@@ -205,7 +205,7 @@
if(iscarbon(usr))
var/mob/living/carbon/C = usr
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.hud_used.move_intent.icon_state = "walking"
return 1
@@ -245,7 +245,7 @@
if(!C.stat && !C.stunned && !C.paralysis && !C.restrained())
if(C.internal)
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)
C.internals.icon_state = "internal0"
else
@@ -257,7 +257,7 @@
no_mask = 1
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
else
var/list/nicename = null
@@ -338,7 +338,7 @@
//We've determined the best container now we set it as our internals
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]
@@ -346,7 +346,7 @@
if(C.internals)
C.internals.icon_state = "internal1"
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")
usr.a_intent_change("right")
if(I_HELP)
@@ -386,7 +386,7 @@
R.hud_used.toggle_show_robot_modules()
return 1
else
R << "You haven't selected a module yet."
to_chat(R, "You haven't selected a module yet.")
if("radio")
if(issilicon(usr))
@@ -402,7 +402,7 @@
R.uneq_active()
R.hud_used.update_robot_modules_display()
else
R << "You haven't selected a module yet."
to_chat(R, "You haven't selected a module yet.")
if("module1")
if(istype(usr, /mob/living/silicon/robot))

View File

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

View File

@@ -110,7 +110,7 @@ var/const/tk_maxrange = 15
if(focus)
d = max(d, get_dist(user, focus)) // whichever is further
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
if(!focus)

View File

@@ -21,7 +21,7 @@ var/list/gamemode_cache = list()
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_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/sql_enabled = 0 // for sql switching
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
factor = 1.4
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"])
. = 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(!round_progressing)
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)
world << "World restarting due to vote..."
to_world("World restarting due to vote...")
feedback_set_details("end_error", "restart vote")
if(blackbox)
blackbox.save_all_data_to_sql()
@@ -215,10 +215,10 @@ SUBSYSTEM_DEF(vote)
if(VOTE_CREW_TRANSFER)
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")
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
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
question = "End the shift?"
choices.Add("Initiate Crew Transfer", "Continue The Round")
@@ -252,13 +252,13 @@ SUBSYSTEM_DEF(vote)
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)
world << sound('sound/ambience/alarm4.ogg', repeat = 0, wait = 0, volume = 50, channel = 3)
if(mode == VOTE_GAMEMODE && round_progressing)
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)
return 1

View File

@@ -227,9 +227,9 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
if(law == zeroth_law_borg)
continue
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
who << "[law.get_index()]. [law.law]"
to_chat(who, "[law.get_index()]. [law.law]")
/********************
* Stating Laws *

View File

@@ -156,7 +156,7 @@
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
// 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 name = ".windowclose" // no autocomplete on cmd line
//world << "windowclose: [atomref]"
//to_world("windowclose: [atomref]")
if(atomref!="null") // if passed a real atomref
var/hsrc = locate(atomref) // find the reffed atom
if(hsrc)
//world << "[src] Topic [href] [hsrc]"
//to_world("[src] Topic [href] [hsrc]")
usr = src.mob
src.Topic("close=1", list("close"="1"), hsrc) // this will direct to the atom's
return // Topic() proc via client.Topic()
@@ -180,7 +180,7 @@
// no atomref specified (or not found)
// so just reset the user mob's machine var
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()
return

View File

@@ -51,7 +51,7 @@
isactive[name] = active ? "Active" : "Inactive"
else
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
var/department = 0
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
// Returns: null
proc/fireEvent()
//world << "Events in [args[1]] called"
//to_world("Events in [args[1]] called")
var/list/event = listgetindex(events,args[1])
if(istype(event))
spawn(-1)
@@ -60,7 +60,7 @@
return ..()
proc/Fire()
//world << "Event fired"
//to_world("Event fired")
if(listener)
call(listener,proc_name)(arglist(args))
return 1

View File

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

View File

@@ -140,7 +140,7 @@ Data storage vars:
arg_list = arguments
return 1
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
proc/toggle_null_checks()

View File

@@ -159,7 +159,7 @@
precision = max(rand(1,100)*bagholding.len,100)
if(istype(teleatom, /mob/living))
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
/datum/teleport/instant/science/teleportChecks()
@@ -178,7 +178,7 @@
if(destination.z in using_map.admin_levels) //CentCom z-level
if(istype(teleatom, /obj/mecha))
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
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>")

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
else
break
user << choice.name
user << choice.desc
to_chat(user,choice.name)
to_chat(user,choice.desc)
return choice
// 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()
// world << "[src]\n[desc]"
// to_world("[src]\n[desc]")
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()
world << "\n"
to_world("\n")
/datum/locations/proc/count_locations()
var/i = 0
@@ -72,5 +72,5 @@ var/global/datum/locations/milky_way/all_locations = new()
set name = "Count Locations"
set category = "Debug"
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)
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(changeling)
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.
log_admin("[key_name_admin(usr)] made [key_name(src)] into a [antag.role_text].")
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"])
var/datum/antagonist/antag = all_antag_types[href_list["remove_antagonist"]]
@@ -198,7 +198,7 @@
return
if(mind)
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]'.")
else if (href_list["obj_edit"] || href_list["obj_add"])
@@ -344,10 +344,10 @@
if(I in organs.implants)
qdel(I)
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].")
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)
log_admin("[key_name_admin(usr)] has loyalty implanted [current].")
else
@@ -410,9 +410,9 @@
else if (href_list["obj_announce"])
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)
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
to_chat(current, "<B>Objective #[obj_count]</B>: [objective.explanation_text]")
obj_count++
edit_memory()
@@ -490,7 +490,7 @@
if(ticker)
ticker.minds += mind
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
mind.current = src
if(player_is_antag(mind))

View File

@@ -29,7 +29,7 @@
return ..()
/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)
shown = 0
return

View File

@@ -123,7 +123,7 @@
// food-related
/datum/recipe/proc/make_food(var/obj/container as obj)
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
var/obj/result_obj = new result(container)
if(istype(container, /obj/machinery))

View File

@@ -26,24 +26,24 @@ var/const/AALARM_WIRE_AALARM = 16
if(AALARM_WIRE_IDSCAN)
if(!mended)
A.locked = 1
//world << "Idscan wire cut"
//to_world("Idscan wire cut")
if(AALARM_WIRE_POWER)
A.shock(usr, 50)
A.shorted = !mended
A.update_icon()
//world << "Power wire cut"
//to_world("Power wire cut")
if (AALARM_WIRE_AI_CONTROL)
if (A.aidisabled == !mended)
A.aidisabled = mended
//world << "AI Control Wire Cut"
//to_world("AI Control Wire Cut")
if(AALARM_WIRE_SYPHON)
if(!mended)
A.mode = 3 // AALARM_MODE_PANIC
A.apply_mode()
//world << "Syphon Wire Cut"
//to_world("Syphon Wire Cut")
if(AALARM_WIRE_AALARM)
if (A.alarm_area.atmosalert(2, A))
@@ -55,10 +55,10 @@ var/const/AALARM_WIRE_AALARM = 16
switch(index)
if(AALARM_WIRE_IDSCAN)
A.locked = !A.locked
// world << "Idscan wire pulsed"
// to_world("Idscan wire pulsed")
if (AALARM_WIRE_POWER)
// world << "Power wire pulsed"
// to_world("Power wire pulsed")
if(A.shorted == 0)
A.shorted = 1
A.update_icon()
@@ -70,7 +70,7 @@ var/const/AALARM_WIRE_AALARM = 16
if (AALARM_WIRE_AI_CONTROL)
// world << "AI Control wire pulsed"
// to_world("AI Control wire pulsed")
if (A.aidisabled == 0)
A.aidisabled = 1
A.updateDialog()
@@ -79,7 +79,7 @@ var/const/AALARM_WIRE_AALARM = 16
A.aidisabled = 0
if(AALARM_WIRE_SYPHON)
// world << "Syphon wire pulsed"
// to_world("Syphon wire pulsed")
if(A.mode == 1) // AALARM_MODE_SCRUB
A.mode = 3 // AALARM_MODE_PANIC
else
@@ -87,7 +87,7 @@ var/const/AALARM_WIRE_AALARM = 16
A.apply_mode()
if(AALARM_WIRE_AALARM)
// world << "Aalarm wire pulsed"
// to_world("Aalarm wire pulsed")
if (A.alarm_area.atmosalert(0, A))
A.post_alert(0)
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(!mended)
if (R.lawupdate == 1)
R << "LawSync protocol engaged."
to_chat(R, "LawSync protocol engaged.")
R.show_laws()
else
if (R.lawupdate == 0 && !R.emagged)
@@ -59,7 +59,7 @@ var/const/BORG_WIRE_CAMERA = 16
if (BORG_WIRE_CAMERA)
if(!isnull(R.camera) && R.camera.can_use() && !R.scrambledcodes)
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)
R.SetLockdown(!R.lockdown) // Toggle

View File

@@ -122,7 +122,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
CutWireColour(colour)
playsound(holder, I.usesound, 20, 1)
else
L << "<span class='error'>You need wirecutters!</span>"
to_chat(L, "<span class='error'>You need wirecutters!</span>")
else if(href_list["pulse"])
if(istype(I, /obj/item/device/multitool))
@@ -130,7 +130,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
PulseColour(colour)
playsound(holder, 'sound/weapons/empty.ogg', 20, 1)
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"])
var/colour = href_list["attach"]
@@ -146,7 +146,7 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
L.drop_item()
Attach(colour, I)
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)
cameras.Add(C)
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
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)
var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
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()
if(!dbcon.IsConnected())
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)
var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
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()
if(!dbcon.IsConnected())
log_game("SQL ERROR during death reporting. Failed to connect.")

View File

@@ -143,7 +143,7 @@
if(!istype(player))
message_admins("[uppertext(ticker.mode.name)]: Failed to find a candidate for [role_text].")
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].")
if(istype(player.current, /mob/observer/dead))
create_default(player.current)

View File

@@ -31,9 +31,9 @@
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.
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, \
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
if(can_speak_aooc)
@@ -42,10 +42,10 @@
// Handle only adding a mind and not bothering with gear etc.
if(nonstandard_role_type)
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
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)
return 1
@@ -53,7 +53,7 @@
if(player.current && faction_verb)
player.current.verbs -= faction_verb
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
faction_members -= player
player.special_role = null

View File

@@ -86,7 +86,7 @@
code_owner = leader
if(code_owner)
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
message_admins("<span class='danger'>Could not spawn nuclear bomb. Contact a developer.</span>")
return
@@ -97,13 +97,13 @@
/datum/antagonist/proc/greet(var/datum/mind/player)
// 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)
player.current << "<span class='notice'>[leader_welcome_text]</span>"
to_chat(player.current, "<span class='notice'>[leader_welcome_text]</span>")
else
player.current << "<span class='notice'>[welcome_text]</span>"
to_chat(player.current, "<span class='notice'>[welcome_text]</span>")
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)
create_nuke()

View File

@@ -39,7 +39,7 @@
to_chat(src, "<span class='notice'>\The [player.current] joins the [faction.faction_descriptor]!</span>")
return
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>")
/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())
result = 0
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]")
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]")
/mob/living/proc/write_ambition()

View File

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

View File

@@ -27,7 +27,7 @@ var/datum/antagonist/mutineer/mutineers
/*
var/list/directive_candidates = get_directive_candidates()
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
head_loyalist = pick(loyalist_candidates)

View File

@@ -39,8 +39,8 @@ var/datum/antagonist/ert/ert
/datum/antagonist/ert/greet(var/datum/mind/player)
if(!..())
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."
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, "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, "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)

View File

@@ -86,7 +86,7 @@ var/datum/antagonist/ninja/ninjas
return 0
var/directive = generate_ninja_directive("heel")
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)
..()
@@ -126,7 +126,7 @@ var/datum/antagonist/ninja/ninjas
if(player.internal)
player.internals.icon_state = "internal1"
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)
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
win_msg += "<B>The Raiders were repelled!</B>"
world << "<span class='danger'><font size = 3>[win_type] [win_group] victory!</font></span>"
world << "[win_msg]"
to_world("<span class='danger'><font size = 3>[win_type] [win_group] victory!</font></span>")
to_world("[win_msg]")
feedback_set_details("round_end_result","heist - [win_type] [win_group]")
/datum/antagonist/raider/proc/is_raider_crew_safe()

View File

@@ -77,8 +77,7 @@ var/datum/antagonist/technomancer/technomancers
break
if(!survivor)
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 \
killed!</font></span>"
to_world("<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed!</font></span>")
/datum/antagonist/technomancer/print_player_summary()
..()
@@ -87,7 +86,7 @@ var/datum/antagonist/technomancer/technomancers
continue // Only want abandoned cores.
if(!core.spells.len)
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)
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)
if(!..())
return
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, "The Beruang is an independent cargo hauler, unless you decide otherwise. You're on your way to [station_name()].")
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)
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
if(!survivor)
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.
/mob/proc/spellremove()

View File

@@ -96,13 +96,13 @@ var/datum/antagonist/cultist/cult
runerandom()
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)
/datum/antagonist/cultist/remove_antagonist(var/datum/mind/player, var/show_message, var/implanted)
if(!..())
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 = ""
if(show_message)
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)
. = ..()
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))
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)
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."
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 << "New law: 0. [law]"
to_chat(killer, "New law: 0. [law]")

View File

@@ -97,7 +97,7 @@ var/datum/antagonist/renegade/renegades
/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!")
for(var/mob/living/carbon/human/H in player_list)
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
if(!istype(A))
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
A.setup_for_malf()
@@ -61,23 +61,23 @@ var/datum/antagonist/rogue_ai/malf
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)
malf << "<B>running MEMCHCK</B>"
to_chat(malf, "<B>running MEMCHCK</B>")
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)
// 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)
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)
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)
malf << "You are malfunctioning - you do not have to follow any laws!"
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."
malf << "Good luck!"
to_chat(malf, "You are malfunctioning - you do not have to follow any laws!")
to_chat(malf, "For basic information about your abilities use command display-help")
to_chat(malf, "You may choose one special hardware piece to help you. This cannot be undone.")
to_chat(malf, "Good luck!")
/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.
var/mob/living/carbon/human/M = get_nt_opposed()
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]")
//Begin code phrase.
give_codewords(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>"
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, "<u><b>Your employers provided you with the following information on how to identify possible allies:</b></u>")
to_chat(traitor_mob, "<b>Code Phrase</b>: <span class='danger'>[syndicate_code_phrase]</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 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)
if(!istype(traitor_mob))
@@ -118,27 +118,27 @@ var/datum/antagonist/traitor/traitors
R = locate(/obj/item/device/radio) in traitor_mob.contents
if(!R)
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)
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")
R = locate(/obj/item/device/pda) in traitor_mob.contents
if(!R)
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)
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")
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
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
if (!R)
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)
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)
return
@@ -158,7 +158,7 @@ var/datum/antagonist/traitor/traitors
var/obj/item/device/uplink/hidden/T = new(R, traitor_mob.mind)
target_radio.hidden_uplink = T
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]).")
else if (istype(R, /obj/item/device/pda))
@@ -168,12 +168,12 @@ var/datum/antagonist/traitor/traitors
R.hidden_uplink = T
var/obj/item/device/pda/P = R
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]).")
/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_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 << "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
H.AdjustStunned(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)
/area/proc/prison_break()

View File

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

View File

@@ -108,13 +108,13 @@
if (usr.stat != 0)
return
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
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
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
usr.stop_pulling()
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]!")
return
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))
return
@@ -271,7 +271,7 @@
user.drop_item()
I.loc = src
src.disk = I
user << "You insert [I]."
to_chat(user, "You insert [I].")
SSnanoui.update_uis(src) // update all UIs attached to src
return
else

View File

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

View File

@@ -113,10 +113,10 @@
M.mutations.Add(mutation)
if(activation_messages.len)
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)
M.mutations.Remove(mutation)
if(deactivation_messages.len)
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)
M.mutations.Remove(HULK)
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.emote("collapse")

View File

@@ -23,6 +23,6 @@
..()
/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

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
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
if(src.stat > max_stat)
@@ -238,5 +238,5 @@ turf/proc/AdjacentTurfsRangedSting()
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
T << "<span class='warning'>You feel a tiny prick.</span>"
to_chat(T, "<span class='warning'>You feel a tiny prick.</span>")
return

View File

@@ -127,7 +127,7 @@
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()
@@ -223,7 +223,7 @@
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)
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)
//world << "[P] - [Pname] = [P.name == Pname ? "True" : "False"]"
//to_world("[P] - [Pname] = [P.name == Pname ? "True" : "False"]")
if(P.name == Pname)
Thepower = P
break
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
if(Thepower in purchased_powers)
M.current << "We have already evolved this ability!"
to_chat(M.current, "We have already evolved this ability!")
return
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
geneticpoints -= Thepower.genomecost

View File

@@ -52,7 +52,7 @@
if(3)
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>")
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)")
var/obj/item/organ/external/affecting = T.get_organ(src.zone_sel.selecting)
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>")
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)
src.nutrition = min((src.nutrition + T.nutrition), 400)
changeling.chem_charges += 10

View File

@@ -90,7 +90,7 @@
/obj/item/weapon/melee/changeling/suicide_act(mob/user)
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)
/obj/item/weapon/melee/changeling/process() //Stolen from ninja swords.

View File

@@ -81,13 +81,13 @@
magpulse = 0
set_slowdown()
force = 3
user << "We release our grip on the floor."
to_chat(user, "We release our grip on the floor.")
else
item_flags |= NOSLIP
magpulse = 1
set_slowdown()
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()
..()

View File

@@ -24,13 +24,13 @@
active = !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.permanent_sight_flags |= SEE_MOBS
C.see_in_dark = 8
C.dna.species.invis_sight = SEE_INVISIBLE_MINIMUM
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.permanent_sight_flags &= ~SEE_MOBS
C.see_in_dark = 0

View File

@@ -173,7 +173,7 @@
visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>",
"<span class='warning'>Our hand channels raw electricity into [S]</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)
user.mind.changeling.chem_charges -= 10
return 1

View File

@@ -16,7 +16,7 @@
if(!T)
return 0
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
var/duration = 300
if(src.mind.changeling.recursive_enhancement)

View File

@@ -20,7 +20,7 @@
if(src.mind.changeling.recursive_enhancement)
duration = duration + 100
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
spawn(duration) T.sdisabilities &= ~DEAF
feedback_add_details("changeling_powers","DS")

View File

@@ -14,7 +14,7 @@
if(!T)
return 0
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.Paralyse(10)
T.make_jittery(100)

View File

@@ -19,9 +19,9 @@
var/mob/living/carbon/human/C = src
if(C.digitalcamo)
C << "<span class='notice'>We return to normal.</span>"
to_chat(C, "<span class='notice'>We return to normal.</span>")
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
spawn(0)

View File

@@ -34,10 +34,10 @@
/obj/item/weapon/finger_lockpick/New()
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)
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)
if(src)
qdel(src)
@@ -53,13 +53,13 @@
var/datum/changeling/ling_datum = user.mind.changeling
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
//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))
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())
door.do_animate("spark")
@@ -70,15 +70,15 @@
if(airlock.locked) //Check if we're bolted.
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.
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
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.
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)
log_and_message_admins("finger-lockpicked \an [door].")
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.
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.emag_act(1,user,src)
log_and_message_admins("finger-lockpicked \an [O].")

View File

@@ -28,7 +28,7 @@
changeling.chem_charges -= 30
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.SetParalysis(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")
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.remove_changeling_powers()

View File

@@ -26,7 +26,7 @@
H.remove_changeling_powers()
H.visible_message("<span class='warning'>[H] transforms!</span>")
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.
for(var/obj/item/weapon/implant/W in H)
implants += W

View File

@@ -13,7 +13,7 @@
if(!T)
return 0
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)
feedback_add_details("changeling_powers","PS")
return 1

View File

@@ -75,7 +75,7 @@
C.halloss = 0
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.mind.changeling.purchased_powers -= C
feedback_add_details("changeling_powers","CR")

View File

@@ -58,20 +58,20 @@
if(!M.mind || !M.mind.changeling)
if(M.get_ear_protection() >= 2)
continue
M << "<span class='danger'>You hear an extremely loud screeching sound! It \
[pick("confuses","confounds","perturbs","befuddles","dazes","unsettles","disorients")] you.</span>"
to_chat(M, "<span class='danger'>You hear an extremely loud screeching sound! It \
[pick("confuses","confounds","perturbs","befuddles","dazes","unsettles","disorients")] you.</span>")
M.adjustEarDamage(0,30)
M.Confuse(20)
M << sound('sound/effects/screech.ogg')
affected += M
else
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')
if(issilicon(M))
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))
affected += M

View File

@@ -12,7 +12,7 @@
var/mob/living/carbon/T = changeling_sting(5,/mob/proc/changeling_unfat_sting)
if(!T) return 0
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.nutrition -= 100
feedback_add_details("changeling_powers","US")

View File

@@ -30,7 +30,7 @@
changeling.chem_charges -= 10
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.chem_recharge_rate = 0
animate(src,alpha = 255, alpha = 10, time = 10)

View File

@@ -297,9 +297,9 @@ proc/findNullRod(var/atom/target)
M.forceMove(destination)
if(M != user)
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
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

View File

@@ -79,20 +79,20 @@
icon_state = "[initial(icon_state)]-broken"
set_light(0)
else
user << "You hit \the [src]!"
to_chat(user, "You hit \the [src]!")
playsound(get_turf(src),impact_sound, 75, 1)
else
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)
else
user << "You hit \the [src]!"
to_chat(user, "You hit \the [src]!")
playsound(get_turf(src),impact_sound, 75, 1)
/obj/structure/cult/pylon/proc/repair(mob/user as mob)
if(isbroken)
START_PROCESSING(SSobj, src)
user << "You repair \the [src]."
to_chat(user, "You repair \the [src].")
isbroken = 0
density = 1
icon_state = initial(icon_state)
@@ -175,4 +175,4 @@
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)
var/mob/living/simple_mob/construct/harvester/C = new(get_turf(src))
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()
else if(client)
var/mob/observer/dead/G = (ghostize())
@@ -26,7 +26,7 @@
G.icon_state = "ghost-narsie"
G.overlays = 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
else

View File

@@ -16,7 +16,7 @@ In short:
return 1
/*
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
*/

View File

@@ -43,7 +43,7 @@ var/global/list/narsie_list = list()
/obj/singularity/narsie/large/New()
..()
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')
narsie_spawn_animation()
@@ -79,7 +79,7 @@ var/global/list/narsie_list = list()
if(M.status_flags & GODMODE)
continue
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)
@@ -313,13 +313,13 @@ var/global/list/narsie_list = list()
/obj/singularity/narsie/proc/acquire(const/mob/food)
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
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
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()
chained = 1

View File

@@ -12,7 +12,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if(!cultwords["travel"])
runerandom()
for (var/word in engwords)
usr << "[cultwords[word]] is [word]"
to_chat(usr, "[cultwords[word]] is [word]")
/proc/runerandom() //randomizes word meaning
var/list/runewords=rnwords
@@ -86,16 +86,16 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
examine(mob/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)
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)
return
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)
return
return
@@ -103,10 +103,10 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
attack_hand(mob/living/user as mob)
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
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
if(!word1 || !word2 || !word3 || prob(user.getBrainLoss()))
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
for(var/mob/O in viewers(M, null))
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)
@@ -322,7 +322,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
for(var/obj/effect/rune/N in rune_list)
C++
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
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)
return
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
if (chosen_rune == "teleport")
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))
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
if(do_after(user, 50))
var/area/A = get_area(user)
@@ -408,7 +408,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
return
var/mob/living/carbon/human/H = user
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]
R.word1 = english[required[1]]
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
return
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
examine(mob/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
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()
return
@@ -441,7 +441,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if(user)
var/r
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")
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
var/obj/effect/rune/R = new /obj/effect/rune

View File

@@ -29,7 +29,7 @@ var/list/sacrificed = list()
allrunesloc.len = index
allrunesloc[index] = R.loc
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))
user.take_overall_damage(5, 0)
qdel(src)
@@ -66,7 +66,7 @@ var/list/sacrificed = list()
IP = R
runecount++
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))
user.take_overall_damage(5, 0)
qdel(src)
@@ -121,7 +121,7 @@ var/list/sacrificed = list()
if(!converting.len)
fizzle()
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
usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!")
@@ -142,14 +142,14 @@ var/list/sacrificed = list()
add_attack_logs(attacker,target,"Convert rune")
switch(target.getFireLoss())
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)
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)
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)
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
//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.adjustBrainLoss(1)
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.
target.hallucination = min(target.hallucination + 100, 500)
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
//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>"
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='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='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()
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)
if(cultists.len >= 9)
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')
SetUniversalState(/datum/universal_state/hell)
@@ -249,7 +249,7 @@ var/list/sacrificed = list()
if(D.stat!=2)
add_attack_logs(usr,D,"Blood drain rune")
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)
drain += bdrain
if(!drain)
@@ -305,16 +305,16 @@ var/list/sacrificed = list()
if(usr.loc==src.loc)
if(usr.seer==1)
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.seer = 0
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.seer = 0
else
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.seer = 1
return
@@ -337,7 +337,7 @@ var/list/sacrificed = list()
if(!corpse_to_raise)
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()
@@ -355,20 +355,20 @@ var/list/sacrificed = list()
if(!body_to_sacrifice)
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
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()
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()
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)
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> \
(Verbs -> Ghost -> Re-enter corpse)</font></font>"
(Verbs -> Ghost -> Re-enter corpse)</font></font>")
break
sleep(10 SECONDS)
@@ -395,8 +395,8 @@ var/list/sacrificed = list()
// else
// 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>"
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'>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'>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
@@ -420,7 +420,7 @@ var/list/sacrificed = list()
qdel(src)
else
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))
if(V!=usr)
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
if (!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()
var/obj/effect/rune/imbued_from
@@ -688,44 +688,44 @@ var/list/sacrificed = list()
H.dust()//To prevent the MMI from remaining
else
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
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
if(cultsinrange.len >= 3)
if(H.stat !=2)
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, this soul was not enough to gain His favor.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
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
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
@@ -734,36 +734,36 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3)
if(H.stat !=2)
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, this soul was not enough to gain His favor.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
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
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)
else
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='cult'>The Geometer of Blood accepts this sacrifice.</span>")
to_chat(usr, "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>")
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
@@ -791,7 +791,7 @@ var/list/sacrificed = list()
S=1
if(S)
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
if(istype(W,/obj/effect/rune))
usr.say("Nikt[pick("'","`")]o barada kla'atu!")
@@ -801,7 +801,7 @@ var/list/sacrificed = list()
return
if(istype(W,/obj/item/weapon/paper/talisman))
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))
if(V!=usr)
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
user.take_organ_damage(2, 0)
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
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
/////////////////////////////////////////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/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
cultist.buckled = null
if (cultist.handcuffed)
@@ -893,7 +893,7 @@ var/list/sacrificed = list()
return
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
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()
cultist.loc = src.loc
cultist.lying = 1
@@ -932,7 +932,7 @@ var/list/sacrificed = list()
C.sdisabilities |= DEAF
if(affected.len)
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")
qdel(src)
else
@@ -951,7 +951,7 @@ var/list/sacrificed = list()
affected += C
if(affected.len)
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")
for (var/mob/V in orange(1,src))
if(!(iscultist(V)))
@@ -977,7 +977,7 @@ var/list/sacrificed = list()
affected += C
if(affected.len)
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")
qdel(src)
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)
if(affected.len)
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")
return
@@ -1023,7 +1023,7 @@ var/list/sacrificed = list()
if(N)
continue
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
if(prob(5))
spawn(5)
@@ -1054,16 +1054,16 @@ var/list/sacrificed = list()
for(var/mob/living/M in orange(2,R))
M.take_overall_damage(0,15)
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
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)
T.hotspot_expose(700,125)
for(var/obj/effect/decal/cleanable/blood/B in world)
if(B.blood_DNA == src.blood_DNA)
for(var/mob/living/M in orange(1,B))
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)
T.hotspot_expose(700,125)
qdel(B)

View File

@@ -25,11 +25,11 @@
if(istype(M, /mob/living/carbon/human/dummy))
return..()
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..()
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..()
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)
A.status_flags &= ~GODMODE
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.cancel_camera()
src.icon_state = "soulstone"
@@ -107,16 +107,16 @@
if(!istype(T))
return;
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
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
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
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
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)
var/mob/living/simple_mob/construct/shade/A = locate() in src
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;
var/construct_class = input(U, "Please choose which type of construct you wish to create.") as null|anything in possible_constructs
switch(construct_class)
@@ -191,8 +191,8 @@
if(iscultist(U))
cult.add_antagonist(Z.mind)
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 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 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>")
Z.cancel_camera()
qdel(src)
if("Wraith")
@@ -201,8 +201,8 @@
if(iscultist(U))
cult.add_antagonist(Z.mind)
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 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 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>")
Z.cancel_camera()
qdel(src)
if("Artificer")
@@ -211,8 +211,8 @@
if(iscultist(U))
cult.add_antagonist(Z.mind)
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 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 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>")
Z.cancel_camera()
qdel(src)
if("Harvester")
@@ -221,8 +221,8 @@
if(iscultist(U))
cult.add_antagonist(Z.mind)
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 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 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>")
Z.cancel_camera()
qdel(src)
if("Behemoth")
@@ -231,8 +231,8 @@
if(iscultist(U))
cult.add_antagonist(Z.mind)
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 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 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>")
Z.cancel_camera()
qdel(src)

View File

@@ -29,7 +29,7 @@
if("blind")
call(/obj/effect/rune/proc/blind)()
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
if("supply")
supply()
@@ -39,7 +39,7 @@
qdel(src)
return
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

View File

@@ -67,7 +67,7 @@
if(Adjacent(user))
return attack_hand(user)
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
// /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)
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
/datum/universal_state/supermatter_cascade/OnTurfChange(var/turf/T)
@@ -37,7 +37,7 @@ var/global/universe_has_ended = 0
// Apply changes when entering state
/datum/universal_state/supermatter_cascade/OnEnter()
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')

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