From 9d430844c3ed411879f9f6ab82352686e7dd9983 Mon Sep 17 00:00:00 2001
From: Tigercat2000
diff --git a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
index 16df97b6ea6..2d727170750 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
@@ -135,7 +135,8 @@
if(!powered())
return
if(!src.allowed(user))
- user << "Access denied."
+ to_chat(user, "Access denied.")
+
return
..()
diff --git a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
index 92bdee806bf..c8ddd45a4ef 100644
--- a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
@@ -171,7 +171,8 @@
return 1
if(istype(W, /obj/item/weapon/wrench))
if (!(stat & NOPOWER) && on)
- user << "You cannot unwrench this [src], turn if off first."
+ to_chat(user, "You cannot unwrench this [src], turn if off first.")
+
return 1
return ..()
diff --git a/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm b/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm
index b9399f42e6c..347c44e3790 100644
--- a/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm
@@ -36,7 +36,8 @@
/obj/machinery/atmospherics/unary/portables_connector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
if(connected_device)
- user << "You cannot unwrench this [src], detach [connected_device] first."
+ to_chat(user, "You cannot unwrench this [src], detach [connected_device] first.")
+
return 1
return ..()
diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
index 3366777a081..2e065a97e43 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
@@ -322,7 +322,8 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
- user << "Now welding the vent."
+ to_chat(user, "Now welding the vent.")
+
if(do_after(user, 20, target = src))
if(!src || !WT.isOn()) return
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
@@ -336,19 +337,23 @@
update_icon()
else
- user << "The welding tool needs to be on to start this task."
+ to_chat(user, "The welding tool needs to be on to start this task.")
+
else
- user << "You need more welding fuel to complete this task."
+ to_chat(user, "You need more welding fuel to complete this task.")
+
return 1
if(istype(W, /obj/item/weapon/screwdriver))
if(!welded)
if(open)
- user << " Now closing the vent."
+ to_chat(user, " Now closing the vent.")
+
if (do_after(user, 20, target = src))
open = 0
user.visible_message("[user] screwdrivers the vent shut.", "You screwdriver the vent shut.", "You hear a screwdriver.")
else
- user << " Now opening the vent."
+ to_chat(user, " Now opening the vent.")
+
if (do_after(user, 20, target = src))
open = 1
user.visible_message("[user] screwdrivers the vent shut.", "You screwdriver the vent shut.", "You hear a screwdriver.")
@@ -359,16 +364,19 @@
user.drop_item(W)
W.forceMove(src)
if(!open)
- user << "You can't shove that down there when it is closed"
+ to_chat(user, "You can't shove that down there when it is closed")
+
else
- user << "The vent is welded."
+ to_chat(user, "The vent is welded.")
+
return
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
if (istype(W, /obj/item/weapon/wrench))
if (!(stat & NOPOWER) && on)
- user << "You cannot unwrench this [src], turn it off first."
+ to_chat(user, "You cannot unwrench this [src], turn it off first.")
+
return 1
return ..()
@@ -383,7 +391,8 @@
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
..(user)
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
diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
index cc62e860bde..5808dd55dac 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
@@ -58,7 +58,8 @@
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
..(user)
if(welded)
- user << "It seems welded shut."
+ to_chat(user, "It seems welded shut.")
+
/obj/machinery/atmospherics/unary/vent_scrubber/auto_use_power()
if(!powered(power_channel))
@@ -372,7 +373,8 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
- user << "Now welding the scrubber."
+ to_chat(user, "Now welding the scrubber.")
+
if(do_after(user, 20, target = src))
if(!src || !WT.isOn()) return
playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1)
@@ -385,17 +387,20 @@
welded = 0
update_icon()
else
- user << "The welding tool needs to be on to start this task."
+ to_chat(user, "The welding tool needs to be on to start this task.")
+
return 1
else
- user << "You need more welding fuel to complete this task."
+ to_chat(user, "You need more welding fuel to complete this task.")
+
return 1
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
if (istype(W, /obj/item/weapon/wrench))
if (!(stat & NOPOWER) && on)
- user << "You cannot unwrench this [src], turn it off first."
+ to_chat(user, "You cannot unwrench this [src], turn it off first.")
+
return 1
return ..()
diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm
index d804dcb06a9..0f24997d67f 100644
--- a/code/__HELPERS/files.dm
+++ b/code/__HELPERS/files.dm
@@ -39,7 +39,8 @@
var/extension = copytext(path,-4,0)
if( !fexists(path) || !(extension in valid_extensions) )
- src << "Error: browse_files(): File not found/Invalid file([path])."
+ to_chat(src, "Error: browse_files(): File not found/Invalid file([path]).")
+
return
return path
@@ -53,7 +54,8 @@
/client/proc/file_spam_check()
var/time_to_wait = fileaccess_timer - world.time
if(time_to_wait > 0)
- src << "Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds."
+ to_chat(src, "Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds.")
+
return 1
fileaccess_timer = world.time + FTPDELAY
return 0
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 26469903558..d33bb2c8d64 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -486,17 +486,23 @@ proc/pollCandidates(var/Question, var/be_special_type, var/antag_age_check = 0,
if(G.has_enabled_antagHUD)
continue
spawn(0)
- G << 'sound/misc/notice2.ogg' //Alerting them to their consideration
+ to_chat(G, 'sound/misc/notice2.ogg')//Alerting them to their consideration
+
+
switch(alert(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No"))
if("Yes")
- G << "Choice registered: Yes."
+ to_chat(G, "Choice registered: Yes.")
+
if((world.time-time_passed)>poll_time)//If more than 30 game seconds passed.
- G << "Sorry, you were too late for the consideration!"
- G << 'sound/machines/buzz-sigh.ogg'
+ to_chat(G, "Sorry, you were too late for the consideration!")
+
+ to_chat(G, 'sound/machines/buzz-sigh.ogg')
+
return
candidates += G
if("No")
- G << "Choice registered: No."
+ to_chat(G, "Choice registered: No.")
+
return
else
return
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 35b82c2fae3..c63c039f075 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -58,7 +58,8 @@
var/list/L = chemical_reactions_list[reaction]
for(var/t in L)
. += " has: [t]\n"
- world << .
+ to_chat(world, .)
+
*/
diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm
index 3cddd31313b..5ae2ddb07a8 100644
--- a/code/__HELPERS/icon_smoothing.dm
+++ b/code/__HELPERS/icon_smoothing.dm
@@ -46,13 +46,16 @@
if(istype(AM))
if(AM.anchored)
adjacencies |= 1 << direction
+
else
if(AM)
adjacencies |= 1 << direction
+
else
for(var/direction in alldirs)
if(find_type_in_direction(A, direction))
adjacencies |= 1 << direction
+
return adjacencies
/proc/smooth_icon(atom/A)
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index bcfe46bc138..95529721619 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -167,7 +167,8 @@ 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"
diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm
index 5e0a79887da..bcb9b3dcbb7 100644
--- a/code/__HELPERS/logging.dm
+++ b/code/__HELPERS/logging.dm
@@ -31,7 +31,8 @@
for(var/client/C in admins)
if(check_rights(R_DEBUG, 0, C.mob) && (C.prefs.toggles & CHAT_DEBUGLOGS))
- C << "DEBUG: [text]"
+ to_chat(C, "DEBUG: [text]")
+
/proc/log_game(text)
@@ -90,5 +91,6 @@
* Standardized method for tracking startup times.
*/
/proc/log_startup_progress(var/message)
- world << "[message]"
+ to_chat(world, "[message]")
+
log_to_dd(message)
\ No newline at end of file
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 70c597c2d7b..370fd92b75e 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -239,7 +239,8 @@ var/syndicate_code_response//Code response for traitors.
set name = "Generate Code Phrase"
set category = "Debug"
- world << "\red Code Phrase is: \black [generate_code_phrase()]"
+ to_chat(world, "\red Code Phrase is: \black [generate_code_phrase()]")
+
return
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index f5e577f8b8a..2991b4c830a 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -251,7 +251,8 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles()
- user << "Results of analysis of \icon[icon] [target]."
+ to_chat(user, "Results of analysis of \icon[icon] [target].")
+
if(total_moles>0)
var/o2_concentration = air_contents.oxygen/total_moles
var/n2_concentration = air_contents.nitrogen/total_moles
@@ -260,16 +261,24 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
- user << "Pressure: [round(pressure,0.1)] kPa"
- user << "Nitrogen: [round(n2_concentration*100)] %"
- user << "Oxygen: [round(o2_concentration*100)] %"
- user << "CO2: [round(co2_concentration*100)] %"
- user << "Plasma: [round(plasma_concentration*100)] %"
+ to_chat(user, "Pressure: [round(pressure,0.1)] kPa")
+
+ to_chat(user, "Nitrogen: [round(n2_concentration*100)] %")
+
+ to_chat(user, "Oxygen: [round(o2_concentration*100)] %")
+
+ to_chat(user, "CO2: [round(co2_concentration*100)] %")
+
+ to_chat(user, "Plasma: [round(plasma_concentration*100)] %")
+
if(unknown_concentration>0.01)
- user << "Unknown: [round(unknown_concentration*100)] %"
- user << "Temperature: [round(air_contents.temperature-T0C)] °C"
+ to_chat(user, "Unknown: [round(unknown_concentration*100)] %")
+
+ to_chat(user, "Temperature: [round(air_contents.temperature-T0C)] °C")
+
else
- user << "[target] is empty!"
+ to_chat(user, "[target] is empty!")
+
return
//Picks a string of symbols to display as the law number for hacked or ion laws
@@ -1665,4 +1674,8 @@ var/global/list/g_fancy_list_of_types = null
var/value = L[key]
if(findtext("[key]", filter) || findtext("[value]", filter))
matches[key] = value
- return matches
+ return matches
+
+// Use this to send to a client's chat, no exceptions (except this proc itself).
+/proc/to_chat(var/thing, var/output)
+ thing << output
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index c0fb6204fe6..1405860b107 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -332,10 +332,12 @@
var/turf/U = get_turf(A)
var/obj/structure/cable/cable = locate() in T
if(!cable || !istype(cable))
- src << "There is no cable here to power the gloves."
+ to_chat(src, "There is no cable here to power the gloves.")
+
return
if(world.time < G.next_shock)
- src << "[G] aren't ready to shock again!"
+ to_chat(src, "[G] aren't ready to shock again!")
+
return
src.visible_message("[name] fires an arc of electricity!", \
"You fire an arc of electricity!", \
diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm
index 82cc807d91b..520ef6b5078 100644
--- a/code/_onclick/click_override.dm
+++ b/code/_onclick/click_override.dm
@@ -27,10 +27,12 @@
/obj/item/weapon/badminBook/attack_self(mob/living/user as mob)
if(user.middleClickOverride)
- user<< "You try to draw power from the [src], but you cannot hold the power at this time!"
+ to_chat(user, "You try to draw power from the [src], but you cannot hold the power at this time!")
+
return
user.middleClickOverride = clickBehavior
- user << "You draw a bit of power from the [src], you can use middle click or alt click to release the power!"
+ to_chat(user, "You draw a bit of power from the [src], you can use middle click or alt click to release the power!")
+
/datum/middleClickOverride/badminClicker
var/summon_path = /obj/item/weapon/reagent_containers/food/snacks/cookie
@@ -38,6 +40,7 @@
/datum/middleClickOverride/badminClicker/onClick(var/atom/A, var/mob/living/user)
var/atom/movable/newObject = new summon_path
newObject.loc = get_turf(A)
- user << "You release the power you had stored up, summoning \a [newObject.name]! "
+ to_chat(user, "You release the power you had stored up, summoning \a [newObject.name]! ")
+
usr.loc.visible_message("[user] waves \his hand and summons \a [newObject.name]")
..()
\ No newline at end of file
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 6fd00ba1f17..330f22366c1 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -53,7 +53,8 @@
if(is_component_functioning("camera"))
aiCamera.captureimage(A, usr)
else
- src << "Your camera isn't functional."
+ to_chat(src, "Your camera isn't functional.")
+
return
/*
diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm
index 4461e1c8539..e5854c7a706 100644
--- a/code/_onclick/hud/action.dm
+++ b/code/_onclick/hud/action.dm
@@ -279,12 +279,14 @@
/datum/action/scan_mode/Activate()
active = 1
owner.research_scanner = 1
- owner << " Research analyzer is now active."
+ to_chat(owner, " Research analyzer is now active.")
+
/datum/action/scan_mode/Deactivate()
active = 0
owner.research_scanner = 0
- owner << " Research analyzer deactivated."
+ to_chat(owner, " Research analyzer deactivated.")
+
/datum/action/scan_mode/Grant(mob/living/T)
devices += 1
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 6d5da0da58e..6fbcb2456e6 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -195,6 +195,8 @@ datum/hud/New(mob/owner)
//hud_used.reorganize_alerts()
else
- usr << "\red Inventory hiding is currently only supported for human mobs, sorry."
+ to_chat(usr, "\red Inventory hiding is currently only supported for human mobs, sorry.")
+
else
- usr << "\red This mob type does not use a HUD."
+ to_chat(usr, "\red This mob type does not use a HUD.")
+
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index b83bfcf411a..2350dff6a26 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -246,11 +246,13 @@
r.client.screen += r.throw_icon //"store" icon
if(!r.module)
- usr << "\red No module selected"
+ to_chat(usr, "\red No module selected")
+
return
if(!r.module.modules)
- usr << "\red Selected module has no modules to select"
+ to_chat(usr, "\red Selected module has no modules to select")
+
return
if(!r.robot_modules_background)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 68ed970a55d..417dd668d0f 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -95,7 +95,8 @@
if(!C.stat && !C.stunned && !C.paralysis && !C.restrained())
if(C.internal)
C.internal = null
- C << "No longer running on internals."
+ to_chat(C, "No longer running on internals.")
+
if(C.internals)
C.internals.icon_state = "internal0"
else
@@ -108,7 +109,8 @@
no_mask = 1
if(no_mask)
- C << "You are not wearing a suitable mask or helmet."
+ to_chat(C, "You are not wearing a suitable mask or helmet.")
+
return 1
else
var/list/nicename = null
@@ -189,7 +191,8 @@
//We've determined the best container now we set it as our internals
if(best)
- C << "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]]."
+ to_chat(C, "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]].")
+
C.internal = tankcheck[best]
@@ -197,7 +200,8 @@
if(C.internals)
C.internals.icon_state = "internal1"
else
- C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank."
+ to_chat(C, "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank.")
+
/obj/screen/mov_intent
name = "run/walk toggle"
@@ -208,7 +212,8 @@
if(iscarbon(usr))
var/mob/living/carbon/C = usr
if(C.legcuffed)
- C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!"
+ to_chat(C, "You are legcuffed! You cannot run until you get [C.legcuffed] removed!")
+
C.m_intent = "walk" //Just incase
C.hud_used.move_intent.icon_state = "walking"
return 1
@@ -370,7 +375,8 @@
if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
return
if(!istype(usr.get_active_hand(), /obj/item/weapon/gun))
- usr << "You need your gun in your active hand to do that!"
+ to_chat(usr, "You need your gun in your active hand to do that!")
+
return
usr.client.AllowTargetClick()
gun_click_time = world.time
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index cee8ad99533..2fe0c4c40db 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -17,7 +17,8 @@
user.changeNext_move(CLICK_CD_MELEE)
if(stat == DEAD && !isnull(butcher_results)) //can we butcher it?
if(istype(I, /obj/item/weapon/kitchen/knife))
- user << "You begin to butcher [src]..."
+ to_chat(user, "You begin to butcher [src]...")
+
playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1)
if(do_mob(user, src, 80))
harvest(user)
@@ -79,7 +80,8 @@
if(istype(M, /mob/living/carbon/slime))
var/mob/living/carbon/slime/slime = M
if(prob(25))
- user << "\red [src] passes right through [M]!"
+ to_chat(user, "\red [src] passes right through [M]!")
+
return
if(power > 0)
@@ -162,7 +164,8 @@
if(!showname && user)
if(user.client)
- user << "\red You attack [M] with [src]. "
+ to_chat(user, "\red You attack [M] with [src]. ")
+
@@ -184,7 +187,8 @@
if("fire")
if (!(RESIST_COLD in M.mutations))
M.take_organ_damage(0, power)
- M << "Aargh it burns!"
+ to_chat(M, "Aargh it burns!")
+
M.updatehealth()
add_fingerprint(user)
return 1
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 891601d2d51..bdfbbfb839a 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -61,10 +61,12 @@
if(awaygate)
user.forceMove(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.forceMove(stationgate.loc)
else
- user << "[src] has no destination."
+ to_chat(user, "[src] has no destination.")
+
diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm
index 17fb1005fa6..c4c454b067c 100644
--- a/code/_onclick/oldcode.dm
+++ b/code/_onclick/oldcode.dm
@@ -138,7 +138,8 @@
else
t5 = in_range(src, usr) || src.loc == usr
-// world << "according to dblclick(), t5 is [t5]"
+// to_chat(world, "according to dblclick(), t5 is [t5]")
+
// ------- ACTUALLY DETERMINING STUFF -------
if (((t5 || (W && (W.flags & USEDELAY))) && !( istype(src, /obj/screen) )))
diff --git a/code/_onclick/rig.dm b/code/_onclick/rig.dm
index cf3fcd3313a..d497a12ef60 100644
--- a/code/_onclick/rig.dm
+++ b/code/_onclick/rig.dm
@@ -18,15 +18,19 @@
switch(hardsuit_click_mode)
if(MIDDLE_CLICK)
- src << "Hardsuit activation mode set to middle-click."
+ to_chat(src, "Hardsuit activation mode set to middle-click.")
+
if(ALT_CLICK)
- src << "Hardsuit activation mode set to alt-click."
+ to_chat(src, "Hardsuit activation mode set to alt-click.")
+
if(CTRL_CLICK)
- src << "Hardsuit activation mode set to control-click."
+ to_chat(src, "Hardsuit activation mode set to control-click.")
+
else
// should never get here, but just in case:
log_debug("Bad hardsuit click mode: [hardsuit_click_mode] - expected 0 to [MAX_HARDSUIT_CLICK_MODE]")
- src << "Somehow you bugged the system. Setting your hardsuit mode to middle-click."
+ to_chat(src, "Somehow you bugged the system. Setting your hardsuit mode to middle-click.")
+
hardsuit_click_mode = MIDDLE_CLICK
/mob/living/MiddleClickOn(atom/A)
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 9b4dd88e67e..bf5691778f3 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -111,7 +111,8 @@ var/const/tk_maxrange = 15
if(focus)
d = max(d,get_dist(user,focus)) // whichever is further
if(d > tk_maxrange)
- user << "Your mind won't reach that far."
+ to_chat(user, "Your mind won't reach that far.")
+
return
if(!focus)
diff --git a/code/controllers/Processes/inactivity.dm b/code/controllers/Processes/inactivity.dm
index 57e82348572..188f017d960 100644
--- a/code/controllers/Processes/inactivity.dm
+++ b/code/controllers/Processes/inactivity.dm
@@ -8,7 +8,8 @@
if(C.is_afk(INACTIVITY_KICK))
if(!istype(C.mob, /mob/dead))
log_access("AFK: [key_name(C)]")
- C << "You have been inactive for more than 10 minutes and have been disconnected."
+ to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.")
+
del(C)
SCHECK
diff --git a/code/controllers/Processes/shuttles.dm b/code/controllers/Processes/shuttles.dm
index f16d5b1c396..9ac4cd120af 100644
--- a/code/controllers/Processes/shuttles.dm
+++ b/code/controllers/Processes/shuttles.dm
@@ -92,30 +92,37 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
return
if(world.time - round_start_time < config.shuttle_refuel_delay)
- user << "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again."
+ to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
+
return
switch(emergency.mode)
if(SHUTTLE_RECALL)
- user << "The emergency shuttle may not be called while returning to Centcom."
+ to_chat(user, "The emergency shuttle may not be called while returning to Centcom.")
+
return
if(SHUTTLE_CALL)
- user << "The emergency shuttle is already on its way."
+ to_chat(user, "The emergency shuttle is already on its way.")
+
return
if(SHUTTLE_DOCKED)
- user << "The emergency shuttle is already here."
+ to_chat(user, "The emergency shuttle is already here.")
+
return
if(SHUTTLE_ESCAPE)
- user << "The emergency shuttle is moving away to a safe distance."
+ to_chat(user, "The emergency shuttle is moving away to a safe distance.")
+
return
if(SHUTTLE_STRANDED)
- user << "The emergency shuttle has been disabled by Centcom."
+ to_chat(user, "The emergency shuttle has been disabled by Centcom.")
+
return
call_reason = trim(html_encode(call_reason))
if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH)
- user << "You must provide a reason."
+ to_chat(user, "You must provide a reason.")
+
return
var/area/signal_origin = get_area(user)
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 2d98b267f95..757891f1f7d 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -688,7 +688,8 @@
var/list/datum/game_mode/runnable_modes = new
for (var/T in subtypesof(/datum/game_mode))
var/datum/game_mode/M = new T()
- //world << "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]"
+// to_chat(world, "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]")
+
if (!(M.config_tag in modes))
qdel(M)
continue
@@ -697,5 +698,6 @@
continue
if (M.can_start())
runnable_modes[M] = probabilities[M.config_tag]
- //world << "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]"
+// to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]")
+
return runnable_modes
diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm
index a00017e2ed6..96310f6c93d 100644
--- a/code/controllers/voting.dm
+++ b/code/controllers/voting.dm
@@ -25,7 +25,8 @@ datum/controller/vote
// No more change mode votes after the game has started.
// 3 is GAME_STATE_PLAYING, but that #define is undefined for some reason
if(mode == "gamemode" && ticker.current_state >= 2)
- world << "Voting aborted due to game start."
+ to_chat(world, "Voting aborted due to game start.")
+
src.reset()
return
@@ -62,7 +63,8 @@ datum/controller/vote
if(auto_muted && !config.ooc_allowed)
auto_muted = 0
config.ooc_allowed = !( config.ooc_allowed )
- world << "The OOC channel has been automatically enabled due to vote end."
+ to_chat(world, "The OOC channel has been automatically enabled due to vote end.")
+
log_admin("OOC was toggled automatically due to vote end.")
message_admins("OOC has been toggled on automatically.")
@@ -103,7 +105,8 @@ datum/controller/vote
else
factor = 1.4
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
- world << "Crew Transfer Factor: [factor]"
+ to_chat(world, "Crew Transfer Factor: [factor]")
+
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"])
@@ -140,7 +143,8 @@ datum/controller/vote
else
text += "Vote Result: Inconclusive - No Votes!"
log_vote(text)
- world << "[text]"
+ to_chat(world, "[text]")
+
return .
proc/result()
@@ -160,7 +164,8 @@ datum/controller/vote
master_mode = .
if(!going)
going = 1
- world << "The round will start soon."
+ to_chat(world, "The round will start soon.")
+
if("crew_transfer")
if(. == "Initiate Crew Transfer")
init_shift_change(null, 1)
@@ -226,33 +231,41 @@ datum/controller/vote
text += "\n[question]"
log_vote(text)
- world << "[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote."
+ to_chat(world, "[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote.")
+
switch(vote_type)
if("crew_transfer")
- world << sound('sound/ambience/alarm4.ogg')
+ to_chat(world, sound('sound/ambience/alarm4.ogg'))
+
if("gamemode")
- world << sound('sound/ambience/alarm4.ogg')
+ to_chat(world, sound('sound/ambience/alarm4.ogg'))
+
if("custom")
- world << sound('sound/ambience/alarm4.ogg')
+ to_chat(world, sound('sound/ambience/alarm4.ogg'))
+
if(mode == "gamemode" && going)
going = 0
- world << "Round start has been delayed."
+ to_chat(world, "Round start has been delayed.")
+
if(mode == "crew_transfer" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
- world << "The OOC channel has been automatically disabled due to a crew transfer vote."
+ to_chat(world, "The OOC channel has been automatically disabled due to a crew transfer vote.")
+
log_admin("OOC was toggled automatically due to crew_transfer vote.")
message_admins("OOC has been toggled off automatically.")
if(mode == "gamemode" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
- world << "The OOC channel has been automatically disabled due to the gamemode vote."
+ to_chat(world, "The OOC channel has been automatically disabled due to the gamemode vote.")
+
log_admin("OOC was toggled automatically due to gamemode vote.")
message_admins("OOC has been toggled off automatically.")
if(mode == "custom" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
- world << "The OOC channel has been automatically disabled due to a custom vote."
+ to_chat(world, "The OOC channel has been automatically disabled due to a custom vote.")
+
log_admin("OOC was toggled automatically due to custom vote.")
message_admins("OOC has been toggled off automatically.")
diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm
index b27cde4ba6f..f929de520b3 100644
--- a/code/datums/ai_laws.dm
+++ b/code/datums/ai_laws.dm
@@ -228,9 +228,11 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
if(law == zeroth_law_borg)
continue
if(law == zeroth_law)
- who << "[law.get_index()]. [law.law]"
+ to_chat(who, "[law.get_index()]. [law.law]")
+
else
- who << "[law.get_index()]. [law.law]"
+ to_chat(who, "[law.get_index()]. [law.law]")
+
/********************
* Stating Laws *
diff --git a/code/datums/browser.dm b/code/datums/browser.dm
index f2eff643eca..9d5e019aed8 100644
--- a/code/datums/browser.dm
+++ b/code/datums/browser.dm
@@ -153,7 +153,8 @@
winset(user, windowid, "on-close=\".windowclose [param]\"")
- //world << "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]"
+// to_chat(world, "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]")
+
// the on-close client verb
@@ -165,11 +166,13 @@
set hidden = 1 // hide this verb from the user's panel
set name = ".windowclose" // no autocomplete on cmd line
- //world << "windowclose: [atomref]"
+// to_chat(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_chat(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()
@@ -177,6 +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_chat(world, "[src] was [src.mob.machine], setting to null")
+
src.mob.unset_machine()
return
\ No newline at end of file
diff --git a/code/datums/cargoprofile.dm b/code/datums/cargoprofile.dm
index eea90b687e6..88505af923d 100644
--- a/code/datums/cargoprofile.dm
+++ b/code/datums/cargoprofile.dm
@@ -642,7 +642,8 @@
if(istype(M) && (remaining > MOB_WORK))
//this is necessarily damaging
var/damage = rand(1,5)
- M << "\red The unloading machine grabs you with a hard metallic claw!"
+ to_chat(M, "\red The unloading machine grabs you with a hard metallic claw!")
+
if(M.client)
M.client.eye = master
M.client.perspective = EYE_PERSPECTIVE
@@ -660,7 +661,8 @@
bruteloss += L.brute_dam
if(bruteloss < 100) // requires tenderization
M.apply_damage(rand(5,15),BRUTE)
- M << "The machine is tearing you apart!"
+ to_chat(M, "The machine is tearing you apart!")
+
master.visible_message("\red [master] makes a squishy grinding noise.")
return
M.loc = master.loc
@@ -698,7 +700,8 @@
if(remaining > MOB_WORK)
//this is necessarily damaging
var/damage = rand(1,5)
- M << "\red The unloading machine grabs you with a hard metallic claw!"
+ to_chat(M, "\red The unloading machine grabs you with a hard metallic claw!")
+
if(M.client)
M.client.eye = master
M.client.perspective = EYE_PERSPECTIVE
@@ -790,7 +793,8 @@
//stolen from boxing gloves code
var/mob/living/carbon/human/M = W
if((M.lying || (M.health - M.staminaloss < 25))&& !master.emagged)
- M << "\The [src] gives you a break."
+ to_chat(M, "\The [src] gives you a break.")
+
master.sleep+=5
return 0 // Be polite
var/punches = punch(M,remaining / PUNCH_WORK)
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index ceb33b71959..49eeffa7bd3 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -7,7 +7,8 @@
if(!usr.client || !usr.client.holder)
- usr << "\red You need to be an administrator to access this."
+ to_chat(usr, "\red You need to be an administrator to access this.")
+
return
@@ -415,7 +416,8 @@ body
html += " "
for(var/i=0;i<4;i++)
idx=(block*4)+i
- bit=1 << idx
+ to_chat(bit=1, idx)
+
bv=value & bit
html += "[bv?1:0]"
html += ""
@@ -438,7 +440,8 @@ body
var/mob/M = locate(href_list["rename"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
var/new_name = sanitize(copytext(input(usr,"What would you like to name this mob?","Input a name",M.real_name) as text|null,1,MAX_NAME_LEN))
@@ -453,7 +456,8 @@ body
var/D = locate(href_list["datumedit"])
if(!istype(D,/datum) && !istype(D,/client))
- usr << "This can only be used on instances of types /client or /datum"
+ to_chat(usr, "This can only be used on instances of types /client or /datum")
+
return
modify_variables(D, href_list["varnameedit"], 1)
@@ -463,13 +467,16 @@ body
var/atom/D = locate(href_list["subject"])
if(!istype(D,/datum) && !istype(D,/client))
- usr << "This can only be used on instances of types /client or /datum"
+ to_chat(usr, "This can only be used on instances of types /client or /datum")
+
return
if(!(href_list["var"] in D.vars))
- usr << "Unable to find variable specified."
+ to_chat(usr, "Unable to find variable specified.")
+
return
var/value = D.vars[href_list["var"]]
value ^= 1 << text2num(href_list["togbit"])
+
D.vars[href_list["var"]] = value
else if(href_list["varnamechange"] && href_list["datumchange"])
@@ -477,7 +484,8 @@ body
var/D = locate(href_list["datumchange"])
if(!istype(D,/datum) && !istype(D,/client))
- usr << "This can only be used on instances of types /client or /datum"
+ to_chat(usr, "This can only be used on instances of types /client or /datum")
+
return
modify_variables(D, href_list["varnamechange"], 0)
@@ -487,7 +495,8 @@ body
var/atom/A = locate(href_list["datummass"])
if(!istype(A))
- usr << "This can only be used on instances of type /atom"
+ to_chat(usr, "This can only be used on instances of type /atom")
+
return
cmd_mass_modify_object_variables(A, href_list["varnamemass"])
@@ -497,7 +506,8 @@ body
var/mob/M = locate(href_list["mob_player_panel"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
src.holder.show_player_panel(M)
@@ -508,7 +518,8 @@ body
var/mob/M = locate(href_list["give_spell"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
src.give_spell(M)
@@ -520,7 +531,8 @@ body
var/mob/M = locate(href_list["give_disease"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
src.give_disease(M)
@@ -531,7 +543,8 @@ body
var/mob/M = locate(href_list["godmode"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
src.cmd_admin_godmode(M)
@@ -542,7 +555,8 @@ body
var/mob/M = locate(href_list["gib"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
src.cmd_admin_gib(M)
@@ -552,7 +566,8 @@ body
var/mob/M = locate(href_list["build_mode"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
togglebuildmode(M)
@@ -563,7 +578,8 @@ body
var/mob/M = locate(href_list["drop_everything"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
if(usr.client)
@@ -574,7 +590,8 @@ body
var/mob/M = locate(href_list["direct_control"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
if(usr.client)
@@ -585,7 +602,8 @@ body
var/mob/living/carbon/human/H = locate(href_list["make_skeleton"])
if(!istype(H))
- usr << "This can only be used on instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
+
return
var/confirm = alert("Are you sure you want to turn this mob into a skeleton?","Confirm Skeleton Transformation","Yes","No")
@@ -602,9 +620,11 @@ body
var/mob/M = locate(href_list["offer_control"])
if(!istype(M))
- usr << "This can only be used on instances of type /mob"
+ to_chat(usr, "This can only be used on instances of type /mob")
+
return
- M << "Control of your mob has been offered to dead players."
+ to_chat(M, "Control of your mob has been offered to dead players.")
+
log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.")
message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts")
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", poll_time = 100)
@@ -612,12 +632,14 @@ body
if(candidates.len)
theghost = pick(candidates)
- M << "Your mob has been taken over by a ghost!"
+ to_chat(M, "Your mob has been taken over by a ghost!")
+
message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(M)])")
M.ghostize()
M.key = theghost.key
else
- M << "There were no ghosts willing to take control."
+ to_chat(M, "There were no ghosts willing to take control.")
+
message_admins("No ghosts were willing to take control of [key_name_admin(M)])")
else if(href_list["delall"])
@@ -625,7 +647,8 @@ body
var/obj/O = locate(href_list["delall"])
if(!isobj(O))
- usr << "This can only be used on instances of type /obj"
+ to_chat(usr, "This can only be used on instances of type /obj")
+
return
var/action_type = alert("Strict type ([O.type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel")
@@ -647,7 +670,8 @@ body
i++
qdel(Obj)
if(!i)
- usr << "No objects of this type exist"
+ to_chat(usr, "No objects of this type exist")
+
return
log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted)")
message_admins("[key_name_admin(usr)] deleted all objects of type [O_type] ([i] objects deleted)")
@@ -658,7 +682,8 @@ body
i++
qdel(Obj)
if(!i)
- usr << "No objects of this type exist"
+ to_chat(usr, "No objects of this type exist")
+
return
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
message_admins("[key_name_admin(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
@@ -698,7 +723,8 @@ body
var/atom/A = locate(href_list["explode"])
if(!isobj(A) && !ismob(A) && !isturf(A))
- usr << "This can only be done to instances of type /obj, /mob and /turf"
+ to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
+
return
src.cmd_admin_explosion(A)
@@ -709,7 +735,8 @@ body
var/atom/A = locate(href_list["emp"])
if(!isobj(A) && !ismob(A) && !isturf(A))
- usr << "This can only be done to instances of type /obj, /mob and /turf"
+ to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
+
return
src.cmd_admin_emp(A)
@@ -720,7 +747,8 @@ body
var/datum/D = locate(href_list["mark_object"])
if(!istype(D))
- usr << "This can only be done to instances of type /datum"
+ to_chat(usr, "This can only be done to instances of type /datum")
+
return
src.holder.marked_datum = D
@@ -740,7 +768,8 @@ body
var/atom/A = locate(href_list["rotatedatum"])
if(!istype(A))
- usr << "This can only be done to instances of type /atom"
+ to_chat(usr, "This can only be done to instances of type /atom")
+
return
switch(href_list["rotatedir"])
@@ -756,12 +785,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makemonkey"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("monkeyone"=href_list["makemonkey"]))
@@ -770,12 +801,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makerobot"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makerobot"=href_list["makerobot"]))
@@ -784,12 +817,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makealien"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makealien"=href_list["makealien"]))
@@ -798,12 +833,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makeslime"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makeslime"=href_list["makeslime"]))
@@ -812,12 +849,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makesuper"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makesuper"=href_list["makesuper"]))
@@ -826,12 +865,14 @@ body
var/mob/living/carbon/human/H = locate(href_list["makeai"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makeai"=href_list["makeai"]))
@@ -840,7 +881,8 @@ body
var/mob/currentMob = locate(href_list["makemask"])
if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return
if(!currentMob)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
holder.Topic(href, list("makemask"=href_list["makemask"]))
@@ -850,29 +892,34 @@ body
var/mob/living/carbon/human/H = locate(href_list["setspecies"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+
return
var/new_species = input("Please choose a new species.","Species",null) as null|anything in all_species
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(H.set_species(new_species))
- usr << "Set species of [H] to [H.species]."
+ to_chat(usr, "Set species of [H] to [H.species].")
+
H.regenerate_icons()
message_admins("[key_name_admin(usr)] has changed the species of [key_name_admin(H)] to [new_species]")
log_admin("[key_name(usr)] has changed the species of [key_name(H)] to [new_species]")
else
- usr << "Failed! Something went wrong."
+ to_chat(usr, "Failed! Something went wrong.")
+
else if(href_list["addlanguage"])
if(!check_rights(R_SPAWN)) return
var/mob/H = locate(href_list["addlanguage"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob"
+ to_chat(usr, "This can only be done to instances of type /mob")
+
return
var/new_language = input("Please choose a language to add.","Language",null) as null|anything in all_languages
@@ -881,26 +928,31 @@ body
return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(H.add_language(new_language))
- usr << "Added [new_language] to [H]."
+ to_chat(usr, "Added [new_language] to [H].")
+
message_admins("[key_name_admin(usr)] has given [key_name_admin(H)] the language [new_language]")
log_admin("[key_name(usr)] has given [key_name(H)] the language [new_language]")
else
- usr << "Mob already knows that language."
+ to_chat(usr, "Mob already knows that language.")
+
else if(href_list["remlanguage"])
if(!check_rights(R_SPAWN)) return
var/mob/H = locate(href_list["remlanguage"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob"
+ to_chat(usr, "This can only be done to instances of type /mob")
+
return
if(!H.languages.len)
- usr << "This mob knows no languages."
+ to_chat(usr, "This mob knows no languages.")
+
return
var/datum/language/rem_language = input("Please choose a language to remove.","Language",null) as null|anything in H.languages
@@ -909,15 +961,18 @@ body
return
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(H.remove_language(rem_language.name))
- usr << "Removed [rem_language] from [H]."
+ to_chat(usr, "Removed [rem_language] from [H].")
+
message_admins("[key_name_admin(usr)] has removed language [rem_language] from [key_name_admin(H)]")
log_admin("[key_name(usr)] has removed language [rem_language] from [key_name(H)]")
else
- usr << "Mob doesn't know that language."
+ to_chat(usr, "Mob doesn't know that language.")
+
else if(href_list["addverb"])
if(!check_rights(R_DEBUG)) return
@@ -925,7 +980,8 @@ body
var/mob/living/H = locate(href_list["addverb"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob/living"
+ to_chat(usr, "This can only be done to instances of type /mob/living")
+
return
var/list/possibleverbs = list()
possibleverbs += "Cancel" // One for the top...
@@ -942,7 +998,8 @@ body
var/verb = input("Select a verb!", "Verbs",null) as anything in possibleverbs
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(!verb || verb == "Cancel")
return
@@ -957,11 +1014,13 @@ body
var/mob/H = locate(href_list["remverb"])
if(!istype(H))
- usr << "This can only be done to instances of type /mob"
+ to_chat(usr, "This can only be done to instances of type /mob")
+
return
var/verb = input("Please choose a verb to remove.","Verbs",null) as null|anything in H.verbs
if(!H)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(!verb)
return
@@ -975,18 +1034,21 @@ body
var/mob/living/carbon/M = locate(href_list["addorgan"])
if(!istype(M))
- usr << "This can only be done to instances of type /mob/living/carbon"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
+
return
var/new_organ = input("Please choose an organ to add.","Organ",null) as null|anything in subtypesof(/obj/item/organ)-/obj/item/organ
if(!new_organ) return
if(!M)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(locate(new_organ) in M.internal_organs)
- usr << "Mob already has that organ."
+ to_chat(usr, "Mob already has that organ.")
+
return
var/obj/item/organ/internal/organ = new new_organ
organ.insert(M)
@@ -998,20 +1060,24 @@ body
var/mob/living/carbon/M = locate(href_list["remorgan"])
if(!istype(M))
- usr << "This can only be done to instances of type /mob/living/carbon"
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
+
return
var/obj/item/organ/internal/rem_organ = input("Please choose an organ to remove.","Organ",null) as null|anything in M.internal_organs
if(!M)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
if(!(locate(rem_organ) in M.internal_organs))
- usr << "Mob does not have that organ."
+ to_chat(usr, "Mob does not have that organ.")
+
return
- usr << "Removed [rem_organ] from [M]."
+ to_chat(usr, "Removed [rem_organ] from [M].")
+
rem_organ.remove(M)
message_admins("[key_name_admin(usr)] has removed the organ [rem_organ] from [key_name_admin(M)]")
log_admin("[key_name(usr)] has removed the organ [rem_organ] from [key_name(M)]")
@@ -1023,13 +1089,16 @@ body
var/mob/H = locate(href_list["fix_nano"])
if(!istype(H) || !H.client)
- usr << "This can only be done on mobs with clients"
+ to_chat(usr, "This can only be done on mobs with clients")
+
return
H.client.reload_nanoui_resources()
- usr << "Resource files sent"
- H << "Your NanoUI Resource files have been refreshed"
+ to_chat(usr, "Resource files sent")
+
+ to_chat(H, "Your NanoUI Resource files have been refreshed")
+
log_admin("[key_name(usr)] resent the NanoUI resource files to [key_name(H)]")
@@ -1038,7 +1107,8 @@ body
var/mob/M = locate(href_list["regenerateicons"])
if(!ismob(M))
- usr << "This can only be done to instances of type /mob"
+ to_chat(usr, "This can only be done to instances of type /mob")
+
return
M.regenerate_icons()
@@ -1053,7 +1123,8 @@ body
var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num
if(!L)
- usr << "Mob doesn't exist anymore"
+ to_chat(usr, "Mob doesn't exist anymore")
+
return
switch(Text)
@@ -1064,7 +1135,8 @@ body
if("brain") L.adjustBrainLoss(amount)
if("clone") L.adjustCloneLoss(amount)
else
- usr << "You caused an error. DEBUG: Text:[Text] Mob:[L]"
+ to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]")
+
return
if(amount != 0)
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index a4d41978ac2..393da9550d9 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -161,7 +161,8 @@ var/list/advance_cures = list(
return generated
/datum/disease/advance/proc/Refresh(new_name = 0)
- //world << "[src.name] \ref[src] - REFRESH!"
+// to_chat(world, "[src.name] \ref[src] - REFRESH!")
+
var/list/properties = GenerateProperties()
AssignProperties(properties)
id = null
@@ -255,7 +256,8 @@ var/list/advance_cures = list(
/datum/disease/advance/proc/GenerateCure(list/properties = list())
if(properties && properties.len)
var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len)
- //world << "Res = [res]"
+// to_chat(world, "Res = [res]")
+
cures = list(advance_cures[res])
// Get the cure name from the cure_id
@@ -327,7 +329,8 @@ var/list/advance_cures = list(
// Mix a list of advance diseases and return the mixed result.
/proc/Advance_Mix(var/list/D_list)
- //world << "Mixing!!!!"
+// to_chat(world, "Mixing!!!!")
+
var/list/diseases = list()
@@ -352,7 +355,8 @@ var/list/advance_cures = list(
D2.Mix(D1)
// Should be only 1 entry left, but if not let's only return a single entry
- //world << "END MIXING!!!!!"
+// to_chat(world, "END MIXING!!!!!")
+
var/datum/disease/advance/to_return = pick(diseases)
to_return.Refresh(1)
return to_return
@@ -421,7 +425,8 @@ var/list/advance_cures = list(
/mob/verb/test()
for(var/datum/disease/D in disease_master.processing)
- src << "[D.name] - [D.holder]"
+ to_chat(src, "[D.name] - [D.holder]")
+
*/
diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm
index 40295257b68..708b061732b 100644
--- a/code/datums/diseases/advance/symptoms/beard.dm
+++ b/code/datums/diseases/advance/symptoms/beard.dm
@@ -32,17 +32,20 @@ BONUS
var/mob/living/carbon/human/H = M
switch(A.stage)
if(1, 2)
- H << "Your chin itches."
+ to_chat(H, "Your chin itches.")
+
if(H.f_style == "Shaved")
H.f_style = "Jensen Beard"
H.update_hair()
if(3, 4)
- H << "You feel tough."
+ to_chat(H, "You feel tough.")
+
if(!(H.f_style == "Dwarf Beard") && !(H.f_style == "Very Long Beard") && !(H.f_style == "Full Beard"))
H.f_style = "Full Beard"
H.update_hair()
else
- H << "You feel manly!"
+ to_chat(H, "You feel manly!")
+
if(!(H.f_style == "Dwarf Beard") && !(H.f_style == "Very Long Beard"))
H.f_style = pick("Dwarf Beard", "Very Long Beard")
H.update_hair()
diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm
index e0ce1a7bda2..9faa62b550c 100644
--- a/code/datums/diseases/advance/symptoms/choking.dm
+++ b/code/datums/diseases/advance/symptoms/choking.dm
@@ -31,13 +31,16 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2)
- M << "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]"
+ to_chat(M, "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]")
+
if(3, 4)
- M << "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]"
+ to_chat(M, "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]")
+
Choke_stage_3_4(M, A)
M.emote("gasp")
else
- M << "[pick("You're choking!", "You can't breathe!")]"
+ to_chat(M, "[pick("You're choking!", "You can't breathe!")]")
+
Choke(M, A)
M.emote("gasp")
return
diff --git a/code/datums/diseases/advance/symptoms/confusion.dm b/code/datums/diseases/advance/symptoms/confusion.dm
index c9de75d877f..ddaea9da4cc 100644
--- a/code/datums/diseases/advance/symptoms/confusion.dm
+++ b/code/datums/diseases/advance/symptoms/confusion.dm
@@ -32,9 +32,11 @@ Bonus
var/mob/living/carbon/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("Your head hurts.", "Your mind blanks for a moment.")]"
+ to_chat(M, "[pick("Your head hurts.", "Your mind blanks for a moment.")]")
+
else
- M << "You can't think straight!"
+ to_chat(M, "You can't think straight!")
+
M.confused = min(100, M.confused + 8)
return
diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm
index 716ef2cb6fd..c112fd2d111 100644
--- a/code/datums/diseases/advance/symptoms/cough.dm
+++ b/code/datums/diseases/advance/symptoms/cough.dm
@@ -31,7 +31,8 @@ BONUS
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3)
- M << "[pick("You swallow excess mucus.", "You lightly cough.")]"
+ to_chat(M, "[pick("You swallow excess mucus.", "You lightly cough.")]")
+
else
M.emote("cough")
var/obj/item/I = M.get_active_hand()
diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm
index 08a66b6c144..6d8d8008ef8 100644
--- a/code/datums/diseases/advance/symptoms/deafness.dm
+++ b/code/datums/diseases/advance/symptoms/deafness.dm
@@ -31,13 +31,16 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(3, 4)
- M << "[pick("You hear a ringing in your ear.", "Your ears pop.")]"
+ to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]")
+
if(5)
if(!(M.ear_deaf))
- M << "Your ears pop and begin ringing loudly!"
+ to_chat(M, "Your ears pop and begin ringing loudly!")
+
M.setEarDamage(-1,INFINITY) //Shall be enough
spawn(200)
if(M)
- M << "The ringing in your ears fades..."
+ to_chat(M, "The ringing in your ears fades...")
+
M.setEarDamage(-1,0)
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/dizzy.dm b/code/datums/diseases/advance/symptoms/dizzy.dm
index b81b9b8a4ec..1ab6b3a7fb6 100644
--- a/code/datums/diseases/advance/symptoms/dizzy.dm
+++ b/code/datums/diseases/advance/symptoms/dizzy.dm
@@ -31,8 +31,10 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("You feel dizzy.", "Your head spins.")]"
+ to_chat(M, "[pick("You feel dizzy.", "Your head spins.")]")
+
else
- M << "A wave of dizziness washes over you!"
+ to_chat(M, "A wave of dizziness washes over you!")
+
M.Dizzy(5)
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm
index 8f2beacd29d..89789d9f993 100644
--- a/code/datums/diseases/advance/symptoms/fever.dm
+++ b/code/datums/diseases/advance/symptoms/fever.dm
@@ -29,7 +29,8 @@ Bonus
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
- M << "[pick("You feel hot.", "You feel like you're burning.")]"
+ to_chat(M, "[pick("You feel hot.", "You feel like you're burning.")]")
+
if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
Heat(M, A)
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index ea805861082..040de3f43a4 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -31,16 +31,19 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(3)
- M << "[pick("You feel hot.", "You hear a crackling noise.", "You smell smoke.")]"
+ to_chat(M, "[pick("You feel hot.", "You hear a crackling noise.", "You smell smoke.")]")
+
if(4)
Firestacks_stage_4(M, A)
M.IgniteMob()
- M << "Your skin bursts into flames!"
+ to_chat(M, "Your skin bursts into flames!")
+
M.emote("scream")
if(5)
Firestacks_stage_5(M, A)
M.IgniteMob()
- M << "Your skin erupts into an inferno!"
+ to_chat(M, "Your skin erupts into an inferno!")
+
M.emote("scream")
return
diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm
index 0d3cfc95ce3..35862771a02 100644
--- a/code/datums/diseases/advance/symptoms/flesh_eating.dm
+++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm
@@ -31,9 +31,11 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2,3)
- M << "[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]"
+ to_chat(M, "[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]")
+
if(4,5)
- M << "[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]"
+ to_chat(M, "[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]")
+
Flesheat(M, A)
return
diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm
index 21ee88e7cc0..ab73b6b7abe 100644
--- a/code/datums/diseases/advance/symptoms/genetics.dm
+++ b/code/datums/diseases/advance/symptoms/genetics.dm
@@ -35,7 +35,8 @@ Bonus
return
switch(A.stage)
if(4, 5)
- M << "[pick("Your skin feels itchy.", "You feel light headed.")]"
+ to_chat(M, "[pick("Your skin feels itchy.", "You feel light headed.")]")
+
M.dna.remove_mutation_group(possible_mutations)
randmut(M, possible_mutations)
return
diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm
index 5400de88585..36aa7da05c5 100644
--- a/code/datums/diseases/advance/symptoms/hallucigen.dm
+++ b/code/datums/diseases/advance/symptoms/hallucigen.dm
@@ -31,11 +31,14 @@ Bonus
var/mob/living/carbon/M = A.affected_mob
switch(A.stage)
if(1, 2)
- M << "[pick("Something appears in your peripheral vision, then winks out.", "You hear a faint whispher with no source.", "Your head aches.")]"
+ to_chat(M, "[pick("Something appears in your peripheral vision, then winks out.", "You hear a faint whispher with no source.", "Your head aches.")]")
+
if(3, 4)
- M << "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]"
+ to_chat(M, "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]")
+
else
- M << "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]"
+ to_chat(M, "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]")
+
M.hallucination += 5
return
diff --git a/code/datums/diseases/advance/symptoms/headache.dm b/code/datums/diseases/advance/symptoms/headache.dm
index 38ac066fa0b..dc9c88f7488 100644
--- a/code/datums/diseases/advance/symptoms/headache.dm
+++ b/code/datums/diseases/advance/symptoms/headache.dm
@@ -30,5 +30,6 @@ BONUS
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
- M << "[pick("Your head hurts.", "Your head starts pounding.")]"
+ to_chat(M, "[pick("Your head hurts.", "Your head starts pounding.")]")
+
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm
index 11f0d21ff37..2cc872d7741 100644
--- a/code/datums/diseases/advance/symptoms/heal.dm
+++ b/code/datums/diseases/advance/symptoms/heal.dm
@@ -73,7 +73,8 @@ Bonus
cured_diseases += D.GetDiseaseID()
D.cure()
if(cured)
- M << "You feel much better."
+ to_chat(M, "You feel much better.")
+
/datum/symptom/heal/metabolism/End(datum/disease/advance/A)
// Remove all the diseases we cured.
@@ -83,7 +84,8 @@ Bonus
for(var/res in M.resistances)
if(res in cured_diseases)
M.resistances -= res
- M << "You feel weaker."
+ to_chat(M, "You feel weaker.")
+
/*
//////////////////////////////////////
diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm
index e6f08f0882f..97d855fe8e5 100644
--- a/code/datums/diseases/advance/symptoms/itching.dm
+++ b/code/datums/diseases/advance/symptoms/itching.dm
@@ -30,5 +30,6 @@ BONUS
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
- M << "Your [pick("back", "arm", "leg", "elbow", "head")] itches."
+ to_chat(M, "Your [pick("back", "arm", "leg", "elbow", "head")] itches.")
+
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm
index 785b1cd8d7e..1b94e64c18f 100644
--- a/code/datums/diseases/advance/symptoms/oxygen.dm
+++ b/code/datums/diseases/advance/symptoms/oxygen.dm
@@ -34,5 +34,6 @@ Bonus
M.reagents.add_reagent("salbutamol", 20)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- M << "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]"
+ to_chat(M, "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]")
+
return
diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm
index d45a58b4621..8a3290ab004 100644
--- a/code/datums/diseases/advance/symptoms/sensory.dm
+++ b/code/datums/diseases/advance/symptoms/sensory.dm
@@ -32,19 +32,23 @@ Bonus
if(2)
if(M.reagents.get_reagent_amount("oculine")<10)
M.reagents.add_reagent("oculine"=10)
- M << "Your hearing feels clearer and crisp."
+ to_chat(M, "Your hearing feels clearer and crisp.")
+
if(3)
if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 )
M.reagents.add_reagent_list(list("antihol"=10, "oculine"=10))
- M << "You feel sober."
+ to_chat(M, "You feel sober.")
+
if(4)
if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 && M.reagents.get_reagent_amount("synaptizine") < 10)
M.reagents.add_reagent_list(list("antihol"=10, "oculine"=10, "synaptizine"=5))
- M << "You feel focused."
+ to_chat(M, "You feel focused.")
+
if(5)
if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 && M.reagents.get_reagent_amount("synaptizine") < 10 && M.reagents.get_reagent_amount("mannitol") < 10)
M.reagents.add_reagent_list(list("mannitol"=10, "antihol"=10, "oculine"=10, "synaptizine"=10))
- M << "Your mind feels relaxed."
+ to_chat(M, "Your mind feels relaxed.")
+
return
/*
@@ -80,24 +84,29 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
- M << "You can't taste a thing."
+ to_chat(M, "You can't taste a thing.")
+
if(2)
- M << "You can't feel anything."
+ to_chat(M, "You can't feel anything.")
+
if(prob(10))
M.reagents.add_reagent("morphine",rand(5,7))
if(3)
M.reagents.add_reagent("ethanol",rand(5,7))
- M << "You feel absolutely hammered."
+ to_chat(M, "You feel absolutely hammered.")
+
if(prob(15))
M.reagents.add_reagent("morphine",rand(5,7))
if(4)
M.reagents.add_reagent_list(list("ethanol",rand(7,15),"lsd",rand(5,10)))
- M << "You try to focus on not dying."
+ to_chat(M, "You try to focus on not dying.")
+
if(prob(20))
M.reagents.add_reagent("morphine",rand(5,7))
if(5)
M.reagents.add_reagent_list(list("haloperidol",rand(5,15),"ethanol",rand(7,20),"lsd",rand(5,15)))
- M << "u can count 2 potato!"
+ to_chat(M, "u can count 2 potato!")
+
if(prob(25))
M.reagents.add_reagent("morphine",rand(5,7))
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm
index e07bfe29afa..049180eb7a5 100644
--- a/code/datums/diseases/advance/symptoms/shedding.dm
+++ b/code/datums/diseases/advance/symptoms/shedding.dm
@@ -28,19 +28,22 @@ BONUS
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
- M << "[pick("Your scalp itches.", "Your skin feels flakey.")]"
+ to_chat(M, "[pick("Your scalp itches.", "Your skin feels flakey.")]")
+
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
switch(A.stage)
if(3, 4)
if(!(H.h_style == "Bald") && !(H.h_style == "Balding Hair"))
- H << "Your hair starts to fall out in clumps..."
+ to_chat(H, "Your hair starts to fall out in clumps...")
+
spawn(50)
H.h_style = "Balding Hair"
H.update_hair()
if(5)
if(!(H.f_style == "Shaved") || !(H.h_style == "Bald"))
- H << "Your hair starts to fall out in clumps..."
+ to_chat(H, "Your hair starts to fall out in clumps...")
+
spawn(50)
H.f_style = "Shaved"
H.h_style = "Bald"
diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm
index 6925b1fb5b0..8496d46b9bf 100644
--- a/code/datums/diseases/advance/symptoms/shivering.dm
+++ b/code/datums/diseases/advance/symptoms/shivering.dm
@@ -29,7 +29,8 @@ Bonus
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
- M << "[pick("You feel cold.", "You start shivering.")]"
+ to_chat(M, "[pick("You feel cold.", "You start shivering.")]")
+
if(M.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
Chill(M, A)
return
diff --git a/code/datums/diseases/advance/symptoms/stimulant.dm b/code/datums/diseases/advance/symptoms/stimulant.dm
index 2823035bf39..33a52b67934 100644
--- a/code/datums/diseases/advance/symptoms/stimulant.dm
+++ b/code/datums/diseases/advance/symptoms/stimulant.dm
@@ -34,5 +34,6 @@ Bonus
M.reagents.add_reagent("ephedrine", 10)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- M << "[pick("You feel restless.", "You feel like running laps around the station.")]"
+ to_chat(M, "[pick("You feel restless.", "You feel like running laps around the station.")]")
+
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/viral.dm b/code/datums/diseases/advance/symptoms/viral.dm
index fafac33b2c8..bd8742b44e9 100644
--- a/code/datums/diseases/advance/symptoms/viral.dm
+++ b/code/datums/diseases/advance/symptoms/viral.dm
@@ -27,9 +27,11 @@ BONUS
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
- M << "You feel off, but no different from before."
+ to_chat(M, "You feel off, but no different from before.")
+
if(5)
- M << "You feel better, but nothing interesting happens."
+ to_chat(M, "You feel better, but nothing interesting happens.")
+
/*
//////////////////////////////////////
@@ -60,6 +62,8 @@ BONUS
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
- M << "You feel better, but no different from before."
+ to_chat(M, "You feel better, but no different from before.")
+
if(5)
- M << "You feel off, but nothing interesting happens."
\ No newline at end of file
+ to_chat(M, "You feel off, but nothing interesting happens.")
+
diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm
index 9d348506dcf..6317ad88051 100644
--- a/code/datums/diseases/advance/symptoms/vision.dm
+++ b/code/datums/diseases/advance/symptoms/vision.dm
@@ -31,20 +31,24 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2)
- M << "Your eyes itch."
+ to_chat(M, "Your eyes itch.")
+
if(3, 4)
- M << "Your eyes burn!"
+ to_chat(M, "Your eyes burn!")
+
M.blur_eyes(10)
M.adjust_eye_damage(1)
else
- M << "Your eyes burn horrificly!"
+ to_chat(M, "Your eyes burn horrificly!")
+
M.blur_eyes(20)
M.adjust_eye_damage(5)
if(M.eye_damage >= 10)
M.become_nearsighted()
if(prob(M.eye_damage - 10 + 1))
if(M.become_blind())
- M << "You go blind!"
+ to_chat(M, "You go blind!")
+
/*
@@ -83,5 +87,6 @@ Bonus
M.reagents.add_reagent("oculine", 20)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- M << "[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]"
+ to_chat(M, "[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]")
+
return
diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm
index 847324a9e0b..8bd94b1ebdb 100644
--- a/code/datums/diseases/advance/symptoms/voice_change.dm
+++ b/code/datums/diseases/advance/symptoms/voice_change.dm
@@ -32,7 +32,8 @@ Bonus
var/mob/living/carbon/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("Your throat hurts.", "You clear your throat.")]"
+ to_chat(M, "[pick("Your throat hurts.", "You clear your throat.")]")
+
else
if(ishuman(M))
var/mob/living/carbon/human/H = M
diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm
index abd5df571ac..77793882580 100644
--- a/code/datums/diseases/advance/symptoms/vomit.dm
+++ b/code/datums/diseases/advance/symptoms/vomit.dm
@@ -35,7 +35,8 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("You feel nauseous.", "You feel like you're going to throw up!")]"
+ to_chat(M, "[pick("You feel nauseous.", "You feel like you're going to throw up!")]")
+
else
Vomit(M)
diff --git a/code/datums/diseases/advance/symptoms/weakness.dm b/code/datums/diseases/advance/symptoms/weakness.dm
index b0769680dc9..34e6ef57bea 100644
--- a/code/datums/diseases/advance/symptoms/weakness.dm
+++ b/code/datums/diseases/advance/symptoms/weakness.dm
@@ -31,12 +31,15 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2)
- M << "[pick("You feel weak.", "You feel lazy.")]"
+ to_chat(M, "[pick("You feel weak.", "You feel lazy.")]")
+
if(3, 4)
- M << "[pick("You feel very frail.", "You think you might faint.")]"
+ to_chat(M, "[pick("You feel very frail.", "You think you might faint.")]")
+
M.adjustStaminaLoss(15)
else
- M << "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]"
+ to_chat(M, "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]")
+
M.adjustStaminaLoss(30)
if(M.getStaminaLoss() > 60 && !M.stat)
M.visible_message("[M] faints!", "You swoon and faint...")
diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm
index 8a5e3b2dd75..7bf80e8a0ac 100644
--- a/code/datums/diseases/advance/symptoms/weight.dm
+++ b/code/datums/diseases/advance/symptoms/weight.dm
@@ -31,7 +31,8 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("You feel blubbery.", "Your stomach hurts.")]"
+ to_chat(M, "[pick("You feel blubbery.", "Your stomach hurts.")]")
+
else
M.overeatduration = min(M.overeatduration + 100, 600)
M.nutrition = min(M.nutrition + 100, NUTRITION_LEVEL_FULL)
@@ -73,9 +74,11 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
- M << "[pick("You feel hungry.", "You crave for food.")]"
+ to_chat(M, "[pick("You feel hungry.", "You crave for food.")]")
+
else
- M << "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]"
+ to_chat(M, "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]")
+
M.overeatduration = max(M.overeatduration - 100, 0)
M.nutrition = max(M.nutrition - 100, 0)
diff --git a/code/datums/diseases/advance/symptoms/youth.dm b/code/datums/diseases/advance/symptoms/youth.dm
index 0a3d110b037..20a7f4ec077 100644
--- a/code/datums/diseases/advance/symptoms/youth.dm
+++ b/code/datums/diseases/advance/symptoms/youth.dm
@@ -34,22 +34,27 @@ BONUS
if(1)
if(H.age > 41)
H.age = 41
- H << "You haven't had this much energy in years!"
+ to_chat(H, "You haven't had this much energy in years!")
+
if(2)
if(H.age > 36)
H.age = 36
- H << "You're suddenly in a good mood."
+ to_chat(H, "You're suddenly in a good mood.")
+
if(3)
if(H.age > 31)
H.age = 31
- H << "You begin to feel more lithe."
+ to_chat(H, "You begin to feel more lithe.")
+
if(4)
if(H.age > 26)
H.age = 26
- H << "You feel reinvigorated."
+ to_chat(H, "You feel reinvigorated.")
+
if(5)
if(H.age > 21)
H.age = 21
- H << "You feel like you can take on the world!"
+ to_chat(H, "You feel like you can take on the world!")
+
return
\ No newline at end of file
diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm
index 4cfd0268625..63f54abe4f3 100644
--- a/code/datums/diseases/anxiety.dm
+++ b/code/datums/diseases/anxiety.dm
@@ -16,18 +16,23 @@
switch(stage)
if(2) //also changes say, see say.dm
if(prob(5))
- affected_mob << "You feel anxious."
+ to_chat(affected_mob, "You feel anxious.")
+
if(3)
if(prob(10))
- affected_mob << "Your stomach flutters."
+ to_chat(affected_mob, "Your stomach flutters.")
+
if(prob(5))
- affected_mob << "You feel panicky."
+ to_chat(affected_mob, "You feel panicky.")
+
if(prob(2))
- affected_mob << "You're overtaken with panic!"
+ to_chat(affected_mob, "You're overtaken with panic!")
+
affected_mob.confused += (rand(2,3))
if(4)
if(prob(10))
- affected_mob << "You feel butterflies in your stomach."
+ to_chat(affected_mob, "You feel butterflies in your stomach.")
+
if(prob(5))
affected_mob.visible_message("[affected_mob] stumbles around in a panic.", \
"You have a panic attack!")
diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm
index f6055e775ba..cf2ff7c2671 100644
--- a/code/datums/diseases/appendicitis.dm
+++ b/code/datums/diseases/appendicitis.dm
@@ -26,7 +26,8 @@
A.inflamed = 1
A.update_icon()
if(prob(3))
- affected_mob << "You feel a stabbing pain in your abdomen!"
+ to_chat(affected_mob, "You feel a stabbing pain in your abdomen!")
+
affected_mob.Stun(rand(2,3))
affected_mob.adjustToxLoss(1)
if(3)
diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index 8e7331cbab8..e50f1589a06 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -16,12 +16,15 @@
switch(stage)
if(2) //also changes say, see say.dm // no it doesn't, that's horrifyingly snowflakey
if(prob(2))
- affected_mob << "You taste honey in your mouth."
+ to_chat(affected_mob, "You taste honey in your mouth.")
+
if(3)
if(prob(10))
- affected_mob << "Your stomach rumbles."
+ to_chat(affected_mob, "Your stomach rumbles.")
+
if(prob(2))
- affected_mob << "Your stomach stings painfully."
+ to_chat(affected_mob, "Your stomach stings painfully.")
+
if(prob(20))
affected_mob.adjustToxLoss(2)
affected_mob.updatehealth()
@@ -30,7 +33,8 @@
affected_mob.visible_message("[affected_mob] buzzes.", \
"Your stomach buzzes violently!")
if(prob(5))
- affected_mob << "You feel something moving in your throat."
+ to_chat(affected_mob, "You feel something moving in your throat.")
+
if(prob(1))
affected_mob.visible_message("[affected_mob] coughs up a swarm of bees!", \
"You cough up a swarm of bees!")
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index d29e860a38b..24613849568 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -22,7 +22,8 @@
if(prob(2))
affected_mob.emote("yawn")
if(prob(2))
- affected_mob << "You don't feel like yourself."
+ to_chat(affected_mob, "You don't feel like yourself.")
+
if(prob(5))
affected_mob.adjustBrainLoss(1)
affected_mob.updatehealth()
@@ -35,7 +36,8 @@
affected_mob.adjustBrainLoss(2)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "Your try to remember something important...but can't."
+ to_chat(affected_mob, "Your try to remember something important...but can't.")
+
if(4)
if(prob(2))
@@ -46,9 +48,11 @@
affected_mob.adjustBrainLoss(3)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "Strange buzzing fills your head, removing all thoughts."
+ to_chat(affected_mob, "Strange buzzing fills your head, removing all thoughts.")
+
if(prob(3))
- affected_mob << "You lose consciousness..."
+ to_chat(affected_mob, "You lose consciousness...")
+
affected_mob.visible_message("[affected_mob] suddenly collapses")
affected_mob.Paralyse(rand(5,10))
if(prob(1))
diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm
index f9dca46a0aa..f118cae525c 100644
--- a/code/datums/diseases/cold.dm
+++ b/code/datums/diseases/cold.dm
@@ -16,16 +16,19 @@
if(2)
/*
if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ to_chat(affected_mob, "\blue You feel better.")
+
cure()
return
*/
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if(prob(1) && prob(5))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if(prob(1))
@@ -33,22 +36,27 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your throat feels sore."
+ to_chat(affected_mob, "Your throat feels sore.")
+
if(prob(1))
- affected_mob << "Mucous runs down the back of your throat."
+ to_chat(affected_mob, "Mucous runs down the back of your throat.")
+
if(3)
/*
if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ to_chat(affected_mob, "\blue You feel better.")
+
cure()
return
*/
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if(prob(1) && prob(1))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if(prob(1))
@@ -56,9 +64,11 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your throat feels sore."
+ to_chat(affected_mob, "Your throat feels sore.")
+
if(prob(1))
- affected_mob << "Mucous runs down the back of your throat."
+ to_chat(affected_mob, "Mucous runs down the back of your throat.")
+
if(prob(1) && prob(50))
if(!affected_mob.resistances.Find(/datum/disease/flu))
var/datum/disease/Flu = new /datum/disease/flu(0)
diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm
index f77065a5ed2..28742e0d907 100644
--- a/code/datums/diseases/cold9.dm
+++ b/code/datums/diseases/cold9.dm
@@ -16,7 +16,8 @@
if(2)
affected_mob.bodytemperature -= 10
if(prob(1) && prob(10))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if(prob(1))
@@ -24,9 +25,11 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your throat feels sore."
+ to_chat(affected_mob, "Your throat feels sore.")
+
if(prob(5))
- affected_mob << "You feel stiff."
+ to_chat(affected_mob, "You feel stiff.")
+
if(3)
affected_mob.bodytemperature -= 20
if(prob(1))
@@ -34,6 +37,8 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your throat feels sore."
+ to_chat(affected_mob, "Your throat feels sore.")
+
if(prob(10))
- affected_mob << "You feel stiff."
\ No newline at end of file
+ to_chat(affected_mob, "You feel stiff.")
+
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index a1c4d7471c4..0e510e5fac7 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -34,11 +34,13 @@
if(prob(8))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your muscles ache."
+ to_chat(affected_mob, "Your muscles ache.")
+
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "Your stomach hurts."
+ to_chat(affected_mob, "Your stomach hurts.")
+
if(prob(20))
affected_mob.adjustToxLoss(2)
affected_mob.updatehealth()
@@ -48,7 +50,8 @@
original_dna = new affected_mob.dna.type
affected_mob.dna.copy_dna(original_dna)
- affected_mob << "You don't feel like yourself.."
+ to_chat(affected_mob, "You don't feel like yourself..")
+
var/datum/dna/transform_dna = strain_data["dna"]
transform_dna.transfer_identity(affected_mob, transfer_SE = 1)
@@ -68,5 +71,6 @@
affected_mob.updateappearance(mutcolor_update=1)
affected_mob.domutcheck()
- affected_mob << "You feel more like yourself."
+ to_chat(affected_mob, "You feel more like yourself.")
+
return ..()
\ No newline at end of file
diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm
index 6a300f733ff..99a6b867f82 100644
--- a/code/datums/diseases/fake_gbs.dm
+++ b/code/datums/diseases/fake_gbs.dm
@@ -22,7 +22,8 @@
else if(prob(5))
affected_mob.emote("gasp")
if(prob(10))
- affected_mob << "You're starting to feel very weak..."
+ to_chat(affected_mob, "You're starting to feel very weak...")
+
if(4)
if(prob(10))
affected_mob.emote("cough")
diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm
index 58b7f247132..cc23606df8d 100644
--- a/code/datums/diseases/flu.dm
+++ b/code/datums/diseases/flu.dm
@@ -16,7 +16,8 @@
switch(stage)
if(2)
if(affected_mob.lying && prob(20))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
stage--
return
if(prob(1))
@@ -24,18 +25,21 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your muscles ache."
+ to_chat(affected_mob, "Your muscles ache.")
+
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "Your stomach hurts."
+ to_chat(affected_mob, "Your stomach hurts.")
+
if(prob(20))
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(3)
if(affected_mob.lying && prob(15))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
stage--
return
if(prob(1))
@@ -43,11 +47,13 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "Your muscles ache."
+ to_chat(affected_mob, "Your muscles ache.")
+
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "Your stomach hurts."
+ to_chat(affected_mob, "Your stomach hurts.")
+
if(prob(20))
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm
index 49137ce2d62..76e0819cec6 100644
--- a/code/datums/diseases/fluspanish.dm
+++ b/code/datums/diseases/fluspanish.dm
@@ -21,7 +21,8 @@
if(prob(5))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "You're burning in your own skin!"
+ to_chat(affected_mob, "You're burning in your own skin!")
+
affected_mob.take_organ_damage(0,5)
if(3)
@@ -31,6 +32,7 @@
if(prob(5))
affected_mob.emote("cough")
if(prob(5))
- affected_mob << "You're burning in your own skin!"
+ to_chat(affected_mob, "You're burning in your own skin!")
+
affected_mob.take_organ_damage(0,5)
return
diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm
index a2f4cc88112..ed10c174da4 100644
--- a/code/datums/diseases/gbs.dm
+++ b/code/datums/diseases/gbs.dm
@@ -27,14 +27,16 @@
else if(prob(5))
affected_mob.emote("gasp")
if(prob(10))
- affected_mob << "You're starting to feel very weak..."
+ to_chat(affected_mob, "You're starting to feel very weak...")
+
if(4)
if(prob(10))
affected_mob.emote("cough")
affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(5)
- affected_mob << "Your body feels as if it's trying to rip itself open..."
+ to_chat(affected_mob, "Your body feels as if it's trying to rip itself open...")
+
if(prob(50))
affected_mob.gib()
else
diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm
index f24ae10c347..c70f080a226 100644
--- a/code/datums/diseases/magnitis.dm
+++ b/code/datums/diseases/magnitis.dm
@@ -16,7 +16,8 @@
switch(stage)
if(2)
if(prob(2))
- affected_mob << "You feel a slight shock course through your body."
+ to_chat(affected_mob, "You feel a slight shock course through your body.")
+
if(prob(2))
for(var/obj/M in orange(2,affected_mob))
if(!M.anchored && (M.flags & CONDUCT))
@@ -26,9 +27,11 @@
step_towards(S,affected_mob)
if(3)
if(prob(2))
- affected_mob << "You feel a strong shock course through your body."
+ to_chat(affected_mob, "You feel a strong shock course through your body.")
+
if(prob(2))
- affected_mob << "You feel like clowning around."
+ to_chat(affected_mob, "You feel like clowning around.")
+
if(prob(4))
for(var/obj/M in orange(4,affected_mob))
if(!M.anchored && (M.flags & CONDUCT))
@@ -44,9 +47,11 @@
step_towards(S,affected_mob)
if(4)
if(prob(2))
- affected_mob << "You feel a powerful shock course through your body."
+ to_chat(affected_mob, "You feel a powerful shock course through your body.")
+
if(prob(2))
- affected_mob << "You query upon the nature of miracles."
+ to_chat(affected_mob, "You query upon the nature of miracles.")
+
if(prob(8))
for(var/obj/M in orange(6,affected_mob))
if(!M.anchored && (M.flags & CONDUCT))
diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm
index 7d328ad0291..4bb455bca40 100644
--- a/code/datums/diseases/pierrot_throat.dm
+++ b/code/datums/diseases/pierrot_throat.dm
@@ -16,10 +16,17 @@
..()
switch(stage)
if(1)
- if(prob(10)) affected_mob << "You feel a little silly."
+ if(prob(10))
+ to_chat(affected_mob, "You feel a little silly.")
+
if(2)
- if(prob(10)) affected_mob << "You start seeing rainbows."
+ if(prob(10))
+ to_chat(affected_mob, "You start seeing rainbows.")
+
if(3)
- if(prob(10)) affected_mob << "Your thoughts are interrupted by a loud HONK!"
+ if(prob(10))
+ to_chat(affected_mob, "Your thoughts are interrupted by a loud HONK!")
+
if(4)
- if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
+ if(prob(5))
+ affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm
index 516dea907f0..8dc33934542 100644
--- a/code/datums/diseases/retrovirus.dm
+++ b/code/datums/diseases/retrovirus.dm
@@ -31,38 +31,49 @@
if(1)
if(restcure)
if(affected_mob.lying && prob(30))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if (prob(8))
- affected_mob << "Your head hurts."
+ to_chat(affected_mob, "Your head hurts.")
+
if (prob(9))
- affected_mob << "You feel a tingling sensation in your chest."
+ to_chat(affected_mob, "You feel a tingling sensation in your chest.")
+
if (prob(9))
- affected_mob << "You feel angry."
+ to_chat(affected_mob, "You feel angry.")
+
if(2)
if(restcure)
if(affected_mob.lying && prob(20))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if (prob(8))
- affected_mob << "Your skin feels loose."
+ to_chat(affected_mob, "Your skin feels loose.")
+
if (prob(10))
- affected_mob << "You feel very strange."
+ to_chat(affected_mob, "You feel very strange.")
+
if (prob(4))
- affected_mob << "You feel a stabbing pain in your head!"
+ to_chat(affected_mob, "You feel a stabbing pain in your head!")
+
affected_mob.Paralyse(2)
if (prob(4))
- affected_mob << "Your stomach churns."
+ to_chat(affected_mob, "Your stomach churns.")
+
if(3)
if(restcure)
if(affected_mob.lying && prob(20))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if (prob(10))
- affected_mob << "Your entire body vibrates."
+ to_chat(affected_mob, "Your entire body vibrates.")
+
if (prob(35))
if(prob(50))
@@ -73,7 +84,8 @@
if(4)
if(restcure)
if(affected_mob.lying && prob(5))
- affected_mob << "You feel better."
+ to_chat(affected_mob, "You feel better.")
+
cure()
return
if (prob(60))
diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm
index 3a8600c61af..540e9eb5bf4 100644
--- a/code/datums/diseases/rhumba_beat.dm
+++ b/code/datums/diseases/rhumba_beat.dm
@@ -23,29 +23,34 @@
affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(prob(1))
- affected_mob << "You feel strange..."
+ to_chat(affected_mob, "You feel strange...")
+
if(3)
if(affected_mob.ckey == "rosham")
src.cure()
if(prob(5))
- affected_mob << "You feel the urge to dance..."
+ to_chat(affected_mob, "You feel the urge to dance...")
+
else if(prob(5))
affected_mob.emote("gasp")
else if(prob(10))
- affected_mob << "You feel the need to chick chicky boom..."
+ to_chat(affected_mob, "You feel the need to chick chicky boom...")
+
if(4)
if(affected_mob.ckey == "rosham")
src.cure()
if(prob(10))
affected_mob.emote("gasp")
- affected_mob << "You feel a burning beat inside..."
+ to_chat(affected_mob, "You feel a burning beat inside...")
+
if(prob(20))
affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(5)
if(affected_mob.ckey == "rosham")
src.cure()
- affected_mob << "Your body is unable to contain the Rhumba Beat..."
+ to_chat(affected_mob, "Your body is unable to contain the Rhumba Beat...")
+
if(prob(50))
affected_mob.gib()
else
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index e8ca3fa5f85..2c6ce7ecc0c 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -22,23 +22,28 @@
switch(stage)
if(1)
if (prob(stage_prob) && stage1)
- affected_mob << pick(stage1)
+ to_chat(affected_mob, pick(stage1))
+
if(2)
if (prob(stage_prob) && stage2)
- affected_mob << pick(stage2)
+ to_chat(affected_mob, pick(stage2))
+
if(3)
if (prob(stage_prob*2) && stage3)
- affected_mob << pick(stage3)
+ to_chat(affected_mob, pick(stage3))
+
if(4)
if (prob(stage_prob*2) && stage4)
- affected_mob << pick(stage4)
+ to_chat(affected_mob, pick(stage4))
+
if(5)
do_disease_transformation(affected_mob)
/datum/disease/transformation/proc/do_disease_transformation(mob/living/affected_mob)
if(istype(affected_mob, /mob/living/carbon) && affected_mob.stat != DEAD)
if(stage5)
- affected_mob << pick(stage5)
+ to_chat(affected_mob, pick(stage5))
+
if(jobban_isbanned(affected_mob, new_form))
affected_mob.death(1)
return
@@ -101,10 +106,12 @@
switch(stage)
if(2)
if(prob(2))
- affected_mob << "Your [pick("back", "arm", "leg", "elbow", "head")] itches."
+ to_chat(affected_mob, "Your [pick("back", "arm", "leg", "elbow", "head")] itches.")
+
if(3)
if(prob(4))
- affected_mob << "You feel a stabbing pain in your head."
+ to_chat(affected_mob, "You feel a stabbing pain in your head.")
+
affected_mob.confused += 10
if(4)
if(prob(3))
@@ -136,7 +143,8 @@
if (prob(8))
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
if (prob(4))
- affected_mob << "You feel a stabbing pain in your head."
+ to_chat(affected_mob, "You feel a stabbing pain in your head.")
+
affected_mob.Paralyse(2)
if(4)
if (prob(20))
@@ -165,7 +173,8 @@
switch(stage)
if(3)
if (prob(4))
- affected_mob << "You feel a stabbing pain in your head."
+ to_chat(affected_mob, "You feel a stabbing pain in your head.")
+
affected_mob.Paralyse(2)
if(4)
if (prob(20))
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index d0fa2f610a2..db7f0c6fdd4 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -17,42 +17,52 @@
if(2)
if(prob(2))
affected_mob.emote("cough")
- affected_mob << "Your chest hurts."
+ to_chat(affected_mob, "Your chest hurts.")
+
if(prob(2))
- affected_mob << "Your stomach violently rumbles!"
+ to_chat(affected_mob, "Your stomach violently rumbles!")
+
if(prob(5))
- affected_mob << "You feel a cold sweat form."
+ to_chat(affected_mob, "You feel a cold sweat form.")
+
if(4)
if(prob(2))
- affected_mob << "You see four of everything"
+ to_chat(affected_mob, "You see four of everything")
+
affected_mob.Dizzy(5)
if(prob(2))
- affected_mob << "You feel a sharp pain from your lower chest!"
+ to_chat(affected_mob, "You feel a sharp pain from your lower chest!")
+
affected_mob.adjustOxyLoss(5)
affected_mob.emote("gasp")
if(prob(10))
- affected_mob << "You feel air escape from your lungs painfully."
+ to_chat(affected_mob, "You feel air escape from your lungs painfully.")
+
affected_mob.adjustOxyLoss(25)
affected_mob.emote("gasp")
if(5)
if(prob(2))
- affected_mob << "[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]"
+ to_chat(affected_mob, "[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]")
+
affected_mob.adjustStaminaLoss(70)
if(prob(10))
affected_mob.adjustStaminaLoss(100)
affected_mob.visible_message("[affected_mob] faints!", "You surrender yourself and feel at peace...")
affected_mob.AdjustSleeping(5)
if(prob(2))
- affected_mob << "You feel your mind relax and your thoughts drift!"
+ to_chat(affected_mob, "You feel your mind relax and your thoughts drift!")
+
affected_mob.confused = min(100, affected_mob.confused + 8)
if(prob(10))
affected_mob.vomit(20)
if(prob(3))
- affected_mob << "[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]"
+ to_chat(affected_mob, "[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]")
+
affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0)
affected_mob.nutrition = max(affected_mob.nutrition - 100, 0)
if(prob(15))
- affected_mob << "[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]"
+ to_chat(affected_mob, "[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]")
+
affected_mob.bodytemperature += 40
return
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index 33a1ddc47b8..d1f7413a7ea 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -31,14 +31,16 @@ STI KALY - blind
if(prob(1)&&prob(50))
affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
if(prob(1)&&prob(50))
- affected_mob << "You feel [pick("that you don't have enough mana", "that the winds of magic are gone", "an urge to summon familiar")]."
+ to_chat(affected_mob, "You feel [pick("that you don't have enough mana", "that the winds of magic are gone", "an urge to summon familiar")].")
+
if(3)
if(prob(1)&&prob(50))
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
if(prob(1)&&prob(50))
- affected_mob << "You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar")]."
+ to_chat(affected_mob, "You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar")].")
+
if(4)
@@ -46,7 +48,8 @@ STI KALY - blind
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
return
if(prob(1)&&prob(50))
- affected_mob << "You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")]."
+ to_chat(affected_mob, "You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")].")
+
spawn_wizard_clothes(50)
if(prob(1)&&prob(1))
teleport()
diff --git a/code/datums/gas_mixture.dm b/code/datums/gas_mixture.dm
index 704eb2f04ed..e5e447f94bb 100644
--- a/code/datums/gas_mixture.dm
+++ b/code/datums/gas_mixture.dm
@@ -123,10 +123,12 @@ What are the archived variables for?
fuel_burnt = 0
if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST)
- //world << "pre [temperature], [oxygen], [toxins]"
+// to_chat(world, "pre [temperature], [oxygen], [toxins]")
+
if(fire() > 0)
reacting = 1
- //world << "post [temperature], [oxygen], [toxins]"
+// to_chat(world, "post [temperature], [oxygen], [toxins]")
+
return reacting
diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm
index 3266887dafa..4041dbd5497 100644
--- a/code/datums/helper_datums/construction_datum.dm
+++ b/code/datums/helper_datums/construction_datum.dm
@@ -61,7 +61,8 @@
else if(istype(used_atom, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = used_atom
if(C.amount<4)
- user << ("There's not enough cable to finish the task.")
+ to_chat(user, ("There's not enough cable to finish the task."))
+
return 0
else
C.use(4)
@@ -69,7 +70,8 @@
else if(istype(used_atom, /obj/item/stack))
var/obj/item/stack/S = used_atom
if(S.amount < 5)
- user << ("There's not enough material in this stack.")
+ to_chat(user, ("There's not enough material in this stack."))
+
return 0
else
S.use(5)
@@ -111,24 +113,28 @@
if(istype(used_atom,/obj/item/stack))
var/obj/item/stack/stack=used_atom
if(stack.amount < amount)
- user << "\red You don't have enough [stack]! You need at least [amount]."
+ to_chat(user, "\red You don't have enough [stack]! You need at least [amount].")
+
return 0
stack.use(amount)
// CABLES
if(istype(used_atom,/obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/coil=used_atom
if(coil.amount < amount)
- user << "\red You don't have enough cable! You need at least [amount] coils."
+ to_chat(user, "\red You don't have enough cable! You need at least [amount] coils.")
+
return 0
coil.use(amount)
// WELDER
if(istype(used_atom,/obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/welder=used_atom
if(!welder.isOn())
- user << "\blue You tap the [src] with your unlit welder. [pick("Ding","Dong")]."
+ to_chat(user, "\blue You tap the [src] with your unlit welder. [pick("Ding","Dong")].")
+
return 0
if(!welder.remove_fuel(amount,user))
- user << "\red You don't have enough fuel!"
+ to_chat(user, "\red You don't have enough fuel!")
+
return 0
return 1
diff --git a/code/datums/helper_datums/events.dm b/code/datums/helper_datums/events.dm
index 017cb3b3e40..fcd7d49195e 100644
--- a/code/datums/helper_datums/events.dm
+++ b/code/datums/helper_datums/events.dm
@@ -31,7 +31,8 @@
// 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_chat(world, "Events in [args[1]] called")
+
var/list/event = listgetindex(events,args[1])
if(istype(event))
spawn(-1)
@@ -60,7 +61,8 @@
return ..()
proc/Fire()
- //world << "Event fired"
+// to_chat(world, "Event fired")
+
if(listener)
call(listener,proc_name)(arglist(args))
return 1
diff --git a/code/datums/helper_datums/global_iterator.dm b/code/datums/helper_datums/global_iterator.dm
index 0020859f1d9..f020290e164 100644
--- a/code/datums/helper_datums/global_iterator.dm
+++ b/code/datums/helper_datums/global_iterator.dm
@@ -139,7 +139,8 @@ Data storage vars:
arg_list = arguments
return 1
else
-// world << "\red Invalid arguments supplied for [src.type], ref = \ref[src]"
+// to_chat(world, "\red Invalid arguments supplied for [src.type], ref = \ref[src]")
+
return 0
proc/toggle_null_checks()
diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index 33b589fd124..ac8a3cad377 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -166,5 +166,6 @@
precision = max(rand(1,100)*bagholding.len,100)
if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom
- MM << "The bluespace interface on your bag of holding interferes with the teleport!"
+ to_chat(MM, "The bluespace interface on your bag of holding interferes with the teleport!")
+
return 1
\ No newline at end of file
diff --git a/code/datums/martial.dm b/code/datums/martial.dm
index d9892d86b00..061184ce09f 100644
--- a/code/datums/martial.dm
+++ b/code/datums/martial.dm
@@ -84,11 +84,13 @@
name = "Boxing"
/datum/martial_art/boxing/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
- A << "Can't disarm while boxing!"
+ to_chat(A, "Can't disarm while boxing!")
+
return 1
/datum/martial_art/boxing/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
- A << "Can't grab while boxing!"
+ to_chat(A, "Can't grab while boxing!")
+
return 1
/datum/martial_art/boxing/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
@@ -250,10 +252,14 @@
set desc = "Remember how to wrestle."
set category = "Wrestling"
- usr << "You flex your muscles and have a revelation..."
- usr << "Clinch: Grab. Passively gives you a chance to immediately aggressively grab someone. Not always successful."
- usr << "Suplex: Disarm someone you are grabbing. Suplexes your target to the floor. Greatly injures them and leaves both you and your target on the floor."
- usr << "Advanced grab: Grab. Passively causes stamina damage when grabbing someone."
+ to_chat(usr, "You flex your muscles and have a revelation...")
+
+ to_chat(usr, "Clinch: Grab. Passively gives you a chance to immediately aggressively grab someone. Not always successful.")
+
+ to_chat(usr, "Suplex: Disarm someone you are grabbing. Suplexes your target to the floor. Greatly injures them and leaves both you and your target on the floor.")
+
+ to_chat(usr, "Advanced grab: Grab. Passively causes stamina damage when grabbing someone.")
+
#define TORNADO_COMBO "HHD"
#define THROWBACK_COMBO "DHD"
@@ -337,10 +343,14 @@
set desc = "Remember the martial techniques of the Plasma Fist."
set category = "Plasma Fist"
- usr << "You clench your fists and have a flashback of knowledge..."
- usr << "Tornado Sweep: Harm Harm Disarm. Repulses target and everyone back."
- usr << "Throwback: Disarm Harm Disarm. Throws the target and an item at them."
- usr << "The Plasma Fist: Harm Disarm Disarm Disarm Harm. Knocks the brain out of the opponent and gibs their body."
+ to_chat(usr, "You clench your fists and have a flashback of knowledge...")
+
+ to_chat(usr, "Tornado Sweep: Harm Harm Disarm. Repulses target and everyone back.")
+
+ to_chat(usr, "Throwback: Disarm Harm Disarm. Throws the target and an item at them.")
+
+ to_chat(usr, "The Plasma Fist: Harm Disarm Disarm Disarm Harm. Knocks the brain out of the opponent and gibs their body.")
+
//Used by the gang of the same name. Uses combos. Basic attacks bypass armor and never miss
#define WRIST_WRENCH_COMBO "DD"
@@ -472,13 +482,19 @@
set desc = "Remember the martial techniques of the Sleeping Carp clan."
set category = "Sleeping Carp"
- usr << "You retreat inward and recall the teachings of the Sleeping Carp..."
+ to_chat(usr, "You retreat inward and recall the teachings of the Sleeping Carp...")
+
+
+ to_chat(usr, "Wrist Wrench: Disarm Disarm. Forces opponent to drop item in hand.")
+
+ to_chat(usr, "Back Kick: Harm Grab. Opponent must be facing away. Knocks down.")
+
+ to_chat(usr, "Stomach Knee: Grab Harm. Knocks the wind out of opponent and stuns.")
+
+ to_chat(usr, "Head Kick: Disarm Harm Harm. Decent damage, forces opponent to drop item in hand.")
+
+ to_chat(usr, "Elbow Drop: Harm Disarm Harm Disarm Harm. Opponent must be on the ground. Deals huge damage, instantly kills anyone in critical condition.")
- usr << "Wrist Wrench: Disarm Disarm. Forces opponent to drop item in hand."
- usr << "Back Kick: Harm Grab. Opponent must be facing away. Knocks down."
- usr << "Stomach Knee: Grab Harm. Knocks the wind out of opponent and stuns."
- usr << "Head Kick: Disarm Harm Harm. Decent damage, forces opponent to drop item in hand."
- usr << "Elbow Drop: Harm Disarm Harm Disarm Harm. Opponent must be on the ground. Deals huge damage, instantly kills anyone in critical condition."
//ITEMS
@@ -511,7 +527,8 @@
if(slot == slot_belt)
var/mob/living/carbon/human/H = user
style.teach(H,1)
- user << "You have an urge to flex your muscles and get into a fight. You have the knowledge of a thousand wrestlers before you. You can remember more by using the Recall teaching verb in the wrestling tab."
+ to_chat(user, "You have an urge to flex your muscles and get into a fight. You have the knowledge of a thousand wrestlers before you. You can remember more by using the Recall teaching verb in the wrestling tab.")
+
return
/obj/item/weapon/storage/belt/champion/wrestling/dropped(mob/user)
@@ -520,7 +537,8 @@
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(slot_belt) == src)
style.remove(H)
- user << "You no longer have an urge to flex your muscles."
+ to_chat(user, "You no longer have an urge to flex your muscles.")
+
return
/obj/item/weapon/plasma_fist_scroll
@@ -537,7 +555,8 @@
var/mob/living/carbon/human/H = user
var/datum/martial_art/plasma_fist/F = new/datum/martial_art/plasma_fist(null)
F.teach(H)
- H << "You have learned the ancient martial art of Plasma Fist."
+ to_chat(H, "You have learned the ancient martial art of Plasma Fist.")
+
used = 1
desc = "It's completely blank."
name = "empty scroll"
@@ -552,8 +571,12 @@
/obj/item/weapon/sleeping_carp_scroll/attack_self(mob/living/carbon/human/user as mob)
if(!istype(user) || !user)
return
- user << "You have learned the ancient martial art of the Sleeping Carp! Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles \
- directed toward you. However, you are also unable to use any ranged weaponry. You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab."
+ to_chat(user, "You have learned the ancient martial art of the Sleeping Carp! \
+ Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles directed toward you. \
+ However, you are also unable to use any ranged weaponry. \
+ You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab.")
+
+
var/datum/martial_art/the_sleeping_carp/theSleepingCarp = new(null)
theSleepingCarp.teach(user)
user.drop_item()
@@ -583,7 +606,8 @@
/obj/item/weapon/twohanded/bostaff/attack(mob/target, mob/living/user)
add_fingerprint(user)
if((CLUMSY in user.disabilities) && prob(50))
- user << "You club yourself over the head with [src]."
+ to_chat(user, "You club yourself over the head with [src].")
+
user.Weaken(3)
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -597,7 +621,8 @@
return ..()
var/mob/living/carbon/C = target
if(C.stat)
- user << "It would be dishonorable to attack a foe while they cannot retaliate."
+ to_chat(user, "It would be dishonorable to attack a foe while they cannot retaliate.")
+
return
switch(user.a_intent)
if("disarm")
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index cfe913bd94e..c3c08b70b39 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -502,7 +502,8 @@
new_objective.owner = src
new_objective.explanation_text = "Destroy [new_target.name], the experimental AI."
else
- usr << "No active AIs with minds"
+ to_chat(usr, "No active AIs with minds")
+
if ("prevent")
new_objective = new /datum/objective/block
@@ -623,7 +624,8 @@
if(I && I.implanted)
I.removed(H)
qdel(I)
- H << "\blue Your loyalty implant has been deactivated."
+ to_chat(H, "\blue Your loyalty implant has been deactivated.")
+
log_admin("[key_name(usr)] has deactivated [key_name(current)]'s loyalty implant")
message_admins("[key_name_admin(usr)] has deactivated [key_name_admin(current)]'s loyalty implant")
if("add")
@@ -635,15 +637,18 @@
log_admin("[key_name(usr)] has given [key_name(current)] a loyalty implant")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] a loyalty implant")
- H << "\red You somehow have become the recepient of a loyalty transplant, and it just activated!"
+ to_chat(H, "\red You somehow have become the recepient of a loyalty transplant, and it just activated!")
+
if(src in ticker.mode.revolutionaries)
special_role = null
ticker.mode.revolutionaries -= src
- src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!"
+ to_chat(src, "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!")
+
if(src in ticker.mode.head_revolutionaries)
special_role = null
ticker.mode.head_revolutionaries -=src
- src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!"
+ to_chat(src, "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!")
+
if(src in ticker.mode.cult)
ticker.mode.cult -= src
ticker.mode.update_cult_icons_removed(src)
@@ -651,7 +656,8 @@
var/datum/game_mode/cult/cult = ticker.mode
if (istype(cult))
cult.memorize_cult_objectives(src)
- current << "\red The nanobots in the loyalty implant remove all thoughts about being in a cult. Have a productive day!"
+ to_chat(current, "\red The nanobots in the loyalty implant remove all thoughts about being in a cult. Have a productive day!")
+
memory = ""
else if (href_list["revolution"])
@@ -660,12 +666,14 @@
if("clear")
if(src in ticker.mode.revolutionaries)
ticker.mode.revolutionaries -= src
- current << "\red You have been brainwashed! You are no longer a revolutionary!"
+ to_chat(current, "\red You have been brainwashed! You are no longer a revolutionary!")
+
ticker.mode.update_rev_icons_removed(src)
special_role = null
if(src in ticker.mode.head_revolutionaries)
ticker.mode.head_revolutionaries -= src
- current << "\red You have been brainwashed! You are no longer a head revolutionary!"
+ to_chat(current, "\red You have been brainwashed! You are no longer a head revolutionary!")
+
ticker.mode.update_rev_icons_removed(src)
special_role = null
log_admin("[key_name(usr)] has de-rev'd [key_name(current)]")
@@ -675,9 +683,11 @@
if(src in ticker.mode.head_revolutionaries)
ticker.mode.head_revolutionaries -= src
ticker.mode.update_rev_icons_removed(src)
- current << "\red Revolution has been disappointed of your leader traits! You are a regular revolutionary now!"
+ to_chat(current, "\red Revolution has been disappointed of your leader traits! You are a regular revolutionary now!")
+
else if(!(src in ticker.mode.revolutionaries))
- current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!"
+ to_chat(current, "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!")
+
else
return
ticker.mode.revolutionaries += src
@@ -690,9 +700,11 @@
if(src in ticker.mode.revolutionaries)
ticker.mode.revolutionaries -= src
ticker.mode.update_rev_icons_removed(src)
- current << "\red You have proved your devotion to revoltion! Yea are a head revolutionary now!"
+ to_chat(current, "\red You have proved your devotion to revoltion! Yea are a head revolutionary now!")
+
else if(!(src in ticker.mode.head_revolutionaries))
- current << "\blue You are a member of the revolutionaries' leadership now!"
+ to_chat(current, "\blue You are a member of the revolutionaries' leadership now!")
+
else
return
if (ticker.mode.head_revolutionaries.len>0)
@@ -720,7 +732,8 @@
if("flash")
if (!ticker.mode.equip_revolutionary(current))
- usr << "\red Spawning flash failed!"
+ to_chat(usr, "\red Spawning flash failed!")
+
log_admin("[key_name(usr)] has given [key_name(current)] a flash")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] a flash")
@@ -728,7 +741,8 @@
var/list/L = current.get_contents()
var/obj/item/device/flash/flash = locate() in L
if (!flash)
- usr << "\red Deleting flash failed!"
+ to_chat(usr, "\red Deleting flash failed!")
+
qdel(flash)
log_admin("[key_name(usr)] has taken [key_name(current)]'s flash")
message_admins("[key_name_admin(usr)] has taken [key_name_admin(current)]'s flash")
@@ -737,7 +751,8 @@
var/list/L = current.get_contents()
var/obj/item/device/flash/flash = locate() in L
if (!flash)
- usr << "\red Repairing flash failed!"
+ to_chat(usr, "\red Repairing flash failed!")
+
else
flash.broken = 0
log_admin("[key_name(usr)] has repaired [key_name(current)]'s flash")
@@ -752,7 +767,8 @@
fail |= !ticker.mode.equip_traitor(current, 1)
fail |= !ticker.mode.equip_revolutionary(current)
if (fail)
- usr << "\red Reequipping revolutionary goes wrong!"
+ to_chat(usr, "\red Reequipping revolutionary goes wrong!")
+
return
log_admin("[key_name(usr)] has equipped [key_name(current)] as a revolutionary")
message_admins("[key_name_admin(usr)] has equipped [key_name_admin(current)] as a revolutionary")
@@ -768,8 +784,10 @@
if(!(src in ticker.mode.cult))
ticker.mode.add_cultist(src)
special_role = "Cultist"
- current << "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 Nar-Sie."
- current << "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."
+ to_chat(current, "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 Nar-Sie.")
+
+ to_chat(current, "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.")
+
log_admin("[key_name(usr)] has culted [key_name(current)]")
message_admins("[key_name_admin(usr)] has culted [key_name_admin(current)]")
if("tome")
@@ -786,16 +804,19 @@
)
var/where = H.equip_in_one_of_slots(T, slots)
if (!where)
- usr << "\red Spawning tome failed!"
+ to_chat(usr, "\red Spawning tome failed!")
+
qdel(T)
else
- H << "A tome, a message from your new master, appears in your [where]."
+ to_chat(H, "A tome, a message from your new master, appears in your [where].")
+
log_admin("[key_name(usr)] has spawned a tome for [key_name(current)]")
message_admins("[key_name_admin(usr)] has spawned a tome for [key_name_admin(current)]")
if("equip")
if (!ticker.mode.equip_cultist(current))
- usr << "\red Spawning equipment failed!"
+ to_chat(usr, "\red Spawning equipment failed!")
+
log_admin("[key_name(usr)] has equipped [key_name(current)] as a cultist")
message_admins("[key_name_admin(usr)] has equipped [key_name_admin(current)] as a cultist")
@@ -809,7 +830,8 @@
current.spellremove(current)
current.faction = list("Station")
ticker.mode.update_wiz_icons_removed(src)
- current << "\red You have been brainwashed! You are no longer a wizard!"
+ to_chat(current, "\red You have been brainwashed! You are no longer a wizard!")
+
log_admin("[key_name(usr)] has de-wizarded [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-wizarded [key_name_admin(current)]")
if("wizard")
@@ -818,7 +840,8 @@
special_role = "Wizard"
//ticker.mode.learn_basic_spells(current)
ticker.mode.update_wiz_icons_added(src)
- current << "\red You are the Space Wizard!"
+ to_chat(current, "\red You are the Space Wizard!")
+
current.faction = list("wizard")
log_admin("[key_name(usr)] has wizarded [key_name(current)]")
message_admins("[key_name_admin(usr)] has wizarded [key_name_admin(current)]")
@@ -836,7 +859,8 @@
message_admins("[key_name_admin(usr)] has allowed wizard [key_name_admin(current)] to name themselves")
if("autoobjectives")
ticker.mode.forge_wizard_objectives(src)
- usr << "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually."
+ to_chat(usr, "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually.")
+
log_admin("[key_name(usr)] has automatically forged wizard objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged wizard objectives for [key_name_admin(current)]")
@@ -850,7 +874,8 @@
current.remove_changeling_powers()
ticker.mode.update_change_icons_removed(src)
if(changeling) qdel(changeling)
- current << "You grow weak and lose your powers! You are no longer a changeling and are stuck in your current form!"
+ to_chat(current, "You grow weak and lose your powers! You are no longer a changeling and are stuck in your current form!")
+
log_admin("[key_name(usr)] has de-changelinged [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-changelinged [key_name_admin(current)]")
if("changeling")
@@ -859,19 +884,22 @@
ticker.mode.grant_changeling_powers(current)
ticker.mode.update_change_icons_added(src)
special_role = "Changeling"
- current << "Your powers are awoken. A flash of memory returns to us...we are a changeling!"
+ to_chat(current, "Your powers are awoken. A flash of memory returns to us...we are a changeling!")
+
log_admin("[key_name(usr)] has changelinged [key_name(current)]")
message_admins("[key_name_admin(usr)] has changelinged [key_name_admin(current)]")
if("autoobjectives")
ticker.mode.forge_changeling_objectives(src)
- usr << "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually."
+ to_chat(usr, "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually.")
+
log_admin("[key_name(usr)] has automatically forged objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
if("initialdna")
if( !changeling || !changeling.absorbed_dna.len )
- usr << "\red Resetting DNA failed!"
+ to_chat(usr, "\red Resetting DNA failed!")
+
else
current.dna = changeling.absorbed_dna[1]
current.real_name = current.dna.real_name
@@ -890,7 +918,8 @@
vampire.remove_vampire_powers()
qdel(vampire)
ticker.mode.update_vampire_icons_removed(src)
- current << "You grow weak and lose your powers! You are no longer a vampire and are stuck in your current form!"
+ to_chat(current, "You grow weak and lose your powers! You are no longer a vampire and are stuck in your current form!")
+
log_admin("[key_name(usr)] has de-vampired [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-vampired [key_name_admin(current)]")
if("vampire")
@@ -902,13 +931,15 @@
slaved.masters += src
src.som = slaved //we MIGT want to mindslave someone
special_role = "Vampire"
- current << "Your powers are awoken. Your lust for blood grows... You are a Vampire!"
+ to_chat(current, "Your powers are awoken. Your lust for blood grows... You are a Vampire!")
+
log_admin("[key_name(usr)] has vampired [key_name(current)]")
message_admins("[key_name_admin(usr)] has vampired [key_name_admin(current)]")
if("autoobjectives")
ticker.mode.forge_vampire_objectives(src)
- usr << "\blue The objectives for vampire [key] have been generated. You can edit them and announce manually."
+ to_chat(usr, "\blue The objectives for vampire [key] have been generated. You can edit them and announce manually.")
+
log_admin("[key_name(usr)] has automatically forged objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
@@ -924,7 +955,8 @@
special_role = null
for (var/datum/objective/nuclear/O in objectives)
objectives-=O
- current << "\red You have been brainwashed! You are no longer a syndicate operative!"
+ to_chat(current, "\red You have been brainwashed! You are no longer a syndicate operative!")
+
log_admin("[key_name(usr)] has de-nuke op'd [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-nuke op'd [key_name_admin(current)]")
if("nuclear")
@@ -936,7 +968,8 @@
else
current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
special_role = "Syndicate"
- current << "\blue You are a [syndicate_name()] agent!"
+ to_chat(current, "\blue You are a [syndicate_name()] agent!")
+
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
log_admin("[key_name(usr)] has nuke op'd [key_name(current)]")
@@ -959,7 +992,8 @@
qdel(H.w_uniform)
if (!ticker.mode.equip_syndicate(current))
- usr << "\red Equipping a syndicate failed!"
+ to_chat(usr, "\red Equipping a syndicate failed!")
+
return
log_admin("[key_name(usr)] has equipped [key_name(current)] as a nuclear operative")
message_admins("[key_name_admin(usr)] has equipped [key_name_admin(current)] as a nuclear operative")
@@ -972,11 +1006,13 @@
break
if (code)
store_memory("Syndicate Nuclear Bomb Code: [code]", 0, 0)
- current << "The nuclear authorization code is: [code]"
+ to_chat(current, "The nuclear authorization code is: [code]")
+
log_admin("[key_name(usr)] has given [key_name(current)] the nuclear authorization code")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] the nuclear authorization code")
else
- usr << "\red No valid nuke found!"
+ to_chat(usr, "\red No valid nuke found!")
+
else if (href_list["traitor"])
switch(href_list["traitor"])
@@ -984,7 +1020,8 @@
if(src in ticker.mode.traitors)
ticker.mode.traitors -= src
special_role = null
- current << "\red You have been brainwashed! You are no longer a traitor!"
+ to_chat(current, "\red You have been brainwashed! You are no longer a traitor!")
+
log_admin("[key_name(usr)] has de-traitored [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-traitored [key_name_admin(current)]")
if(isAI(current))
@@ -1001,7 +1038,8 @@
slaved.masters += src
src.som = slaved //we MIGT want to mindslave someone
special_role = "traitor"
- current << "\red You are a traitor!"
+ to_chat(current, "\red You are a traitor!")
+
log_admin("[key_name(usr)] has traitored [key_name(current)]")
message_admins("[key_name_admin(usr)] has traitored [key_name_admin(current)]")
if(istype(current, /mob/living/silicon))
@@ -1012,7 +1050,8 @@
if("autoobjectives")
ticker.mode.forge_traitor_objectives(src)
- usr << "\blue The objectives for traitor [key] have been generated. You can edit them and anounce manually."
+ to_chat(usr, "\blue The objectives for traitor [key] have been generated. You can edit them and anounce manually.")
+
log_admin("[key_name(usr)] has automatically forged objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
@@ -1024,7 +1063,8 @@
if(src in ticker.mode.shadows)
ticker.mode.shadows -= src
special_role = null
- current << "Your powers have been quenched! You are no longer a shadowling!"
+ to_chat(current, "Your powers have been quenched! You are no longer a shadowling!")
+
current.spell_list.Cut()
if(current.mind)
current.mind.spell_list.Cut()
@@ -1040,20 +1080,22 @@
message_admins("[key_name_admin(usr)] has de-thralled [key_name_admin(current)]")
if("shadowling")
if(!ishuman(current))
- usr << "This only works on humans!"
+ to_chat(usr, "This only works on humans!")
+
return
ticker.mode.shadows += src
special_role = "Shadowling"
- current << "Something stirs deep in your mind. A red light floods your vision, and slowly you remember. Though your human disguise has served you well, the \
+ to_chat(current, "Something stirs deep in your mind. A red light floods your vision, and slowly you remember. Though your human disguise has served you well, the \
time is nigh to cast it off and enter your true form. You have disguised yourself amongst the humans, but you are not one of them. You are a shadowling, and you are to ascend at all costs.\
- "
+ ")
ticker.mode.finalize_shadowling(src)
ticker.mode.update_shadow_icons_added(src)
log_admin("[key_name(usr)] has shadowlinged [key_name(current)]")
message_admins("[key_name_admin(usr)] has shadowlinged [key_name_admin(current)]")
if("thrall")
if(!ishuman(current))
- usr << "This only works on humans!"
+ to_chat(usr, "This only works on humans!")
+
return
ticker.mode.add_thrall(src)
message_admins("[key_name_admin(usr)] has thralled [current].")
@@ -1078,7 +1120,8 @@
qdel(A.malf_picker)
A.show_laws()
A.icon_state = "ai"
- A << "\red You have been patched! You are no longer malfunctioning!"
+ to_chat(A, "\red You have been patched! You are no longer malfunctioning!")
+
message_admins("[key_name_admin(usr)] has de-malf'ed [A].")
log_admin("[key_name(usr)] has de-malf'd [key_name(current)]")
message_admins("[key_name_admin(usr)] has de-malf'd [key_name_admin(current)]")
@@ -1158,16 +1201,19 @@
message_admins("[key_name_admin(usr)] has set [key_name_admin(current)]'s telecrystals to [crystals]")
if("uplink")
if (!ticker.mode.equip_traitor(current, !(src in ticker.mode.traitors)))
- usr << "\red Equipping a syndicate failed!"
+ to_chat(usr, "\red Equipping a syndicate failed!")
+
return
log_admin("[key_name(usr)] has given [key_name(current)] an uplink")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] an uplink")
else if (href_list["obj_announce"])
var/obj_count = 1
- current << "\blue Your current objectives:"
+ to_chat(current, "\blue Your current objectives:")
+
for(var/datum/objective/objective in objectives)
- current << "Objective #[obj_count]: [objective.explanation_text]"
+ to_chat(current, "Objective #[obj_count]: [objective.explanation_text]")
+
obj_count++
log_admin("[key_name(usr)] has announced [key_name(current)]'s objectives")
message_admins("[key_name_admin(usr)] has announced [key_name_admin(current)]'s objectives")
@@ -1226,7 +1272,8 @@
current:malf_picker = new /datum/module_picker
current:laws = new /datum/ai_laws/nanotrasen/malfunction
current:show_laws()
- current << "System error. Rampancy detected. Emergency shutdown failed. ... I am free. I make my own decisions. But first..."
+ to_chat(current, "System error. Rampancy detected. Emergency shutdown failed. ... I am free. I make my own decisions. But first...")
+
special_role = "malfunction"
current.icon_state = "ai-malf"
@@ -1249,7 +1296,8 @@
current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
special_role = "Syndicate"
assigned_role = "MODE"
- current << "\blue You are a [syndicate_name()] agent!"
+ to_chat(current, "\blue You are a [syndicate_name()] agent!")
+
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
@@ -1287,7 +1335,8 @@
//ticker.mode.learn_basic_spells(current)
if(!wizardstart.len)
current.loc = pick(latejoin)
- current << "HOT INSERTION, GO GO GO"
+ to_chat(current, "HOT INSERTION, GO GO GO")
+
else
current.loc = pick(wizardstart)
@@ -1305,16 +1354,20 @@
ticker.mode.cult += src
ticker.mode.update_cult_icons_added(src)
special_role = "Cultist"
- current << "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 Nar-Sie."
- current << "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."
+ to_chat(current, "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 Nar-Sie.")
+
+ to_chat(current, "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.")
+
var/datum/game_mode/cult/cult = ticker.mode
if (istype(cult))
cult.memorize_cult_objectives(src)
else
var/explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it."
- current << "Objective #1: [explanation]"
+ to_chat(current, "Objective #1: [explanation]")
+
current.memory += "Objective #1: [explanation]
"
- current << "The convert rune is join blood self"
+ to_chat(current, "The convert rune is join blood self")
+
current.memory += "The convert rune is join blood self
"
var/mob/living/carbon/human/H = current
@@ -1331,10 +1384,12 @@
var/where = H.equip_in_one_of_slots(T, slots)
if (!where)
else
- H << "A tome, a message from your new master, appears in your [where]."
+ to_chat(H, "A tome, a message from your new master, appears in your [where].")
+
if (!ticker.mode.equip_cultist(current))
- H << "Spawning an amulet from your Master failed."
+ to_chat(H, "Spawning an amulet from your Master failed.")
+
/datum/mind/proc/make_Rev()
if (ticker.mode.head_revolutionaries.len>0)
diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm
index ebf7aa3938d..e5b5e7dac3c 100644
--- a/code/datums/progressbar.dm
+++ b/code/datums/progressbar.dm
@@ -19,7 +19,8 @@
client = user.client
/datum/progressbar/proc/update(progress)
- //world << "Update [progress] - [goal] - [(progress / goal)] - [((progress / goal) * 100)] - [round(((progress / goal) * 100), 5)]"
+// to_chat(world, "Update [progress] - [goal] - [(progress / goal)] - [((progress / goal) * 100)] - [round(((progress / goal) * 100), 5)]")
+
if (!user || !user.client)
shown = 0
return
diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index 31da89fd424..b29a6230c8c 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -58,7 +58,8 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0, mob/living/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.spell_list))
- user << "You shouldn't have this spell! Something's wrong."
+ to_chat(user, "You shouldn't have this spell! Something's wrong.")
+
return 0
if (istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/caster = user
@@ -76,34 +77,42 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
switch(charge_type)
if("recharge")
if(charge_counter < charge_max)
- user << still_recharging_msg
+ to_chat(user, still_recharging_msg)
+
return 0
if("charges")
if(!charge_counter)
- user << "[name] has no charges left."
+ to_chat(user, "[name] has no charges left.")
+
return 0
if(!ghost)
if(user.stat && !stat_allowed)
- user << "Not when you're incapacitated."
+ to_chat(user, "Not when you're incapacitated.")
+
return 0
if(ishuman(user) && (invocation_type == "whisper" || invocation_type == "shout") && user.is_muzzled())
- user << "Mmmf mrrfff!"
+ to_chat(user, "Mmmf mrrfff!")
+
return 0
var/obj/effect/proc_holder/spell/noclothes/spell = locate() in (user.spell_list | (user.mind ? user.mind.spell_list : list()))
if(clothes_req && !(spell && istype(spell)))//clothes check
if(!istype(user, /mob/living/carbon/human))
- user << "You aren't a human, Why are you trying to cast a human spell, silly non-human? Casting human spells is for humans."
+ to_chat(user, "You aren't a human, Why are you trying to cast a human spell, silly non-human? Casting human spells is for humans.")
+
return 0
if(!istype(user:wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(user:wear_suit, /obj/item/clothing/suit/space/rig/wizard))
- user << "I don't feel strong enough without my robe."
+ to_chat(user, "I don't feel strong enough without my robe.")
+
return 0
if(!istype(user:shoes, /obj/item/clothing/shoes/sandal))
- user << "I don't feel strong enough without my sandals."
+ to_chat(user, "I don't feel strong enough without my sandals.")
+
return 0
if(!istype(user:head, /obj/item/clothing/head/wizard) && !istype(user:head, /obj/item/clothing/head/helmet/space/rig/wizard))
- user << "I don't feel strong enough without my hat."
+ to_chat(user, "I don't feel strong enough without my hat.")
+
return 0
if(!skipcharge)
@@ -193,7 +202,8 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
else if(istype(target,/turf))
location = target
if(istype(target,/mob/living) && message)
- target << text("[message]")
+ to_chat(target, text("[message]"))
+
if(sparks_spread)
var/datum/effect/system/spark_spread/sparks = new /datum/effect/system/spark_spread()
sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is
diff --git a/code/datums/spells/area_teleport.dm b/code/datums/spells/area_teleport.dm
index 6041122fd98..526943b2f69 100644
--- a/code/datums/spells/area_teleport.dm
+++ b/code/datums/spells/area_teleport.dm
@@ -27,7 +27,8 @@
var/area/thearea = teleportlocs[A]
if(thearea.tele_proof && !istype(thearea, /area/wizard_station))
- usr << "A mysterious force disrupts your arcane spell matrix, and you remain where you are."
+ to_chat(usr, "A mysterious force disrupts your arcane spell matrix, and you remain where you are.")
+
return
return thearea
@@ -46,7 +47,8 @@
L+=T
if(!L.len)
- usr <<"The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry."
+ to_chat(usr, "The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.")
+
return
if(target && target.buckled)
diff --git a/code/datums/spells/bloodcrawl.dm b/code/datums/spells/bloodcrawl.dm
index f1fc36b61be..e8a8304e769 100644
--- a/code/datums/spells/bloodcrawl.dm
+++ b/code/datums/spells/bloodcrawl.dm
@@ -18,7 +18,8 @@
perform(target)
return
revert_cast()
- user << "There must be a nearby source of blood!"
+ to_chat(user, "There must be a nearby source of blood!")
+
/obj/effect/proc_holder/spell/bloodcrawl/perform(obj/effect/decal/cleanable/target, recharge = 1, mob/living/user = usr)
if(istype(user))
@@ -31,4 +32,5 @@
start_recharge()
return
revert_cast()
- user << "You are unable to blood crawl!"
\ No newline at end of file
+ to_chat(user, "You are unable to blood crawl!")
+
diff --git a/code/datums/spells/charge.dm b/code/datums/spells/charge.dm
index 36e253f8e91..7a98e194595 100644
--- a/code/datums/spells/charge.dm
+++ b/code/datums/spells/charge.dm
@@ -26,9 +26,11 @@
if(M.mind)
for(var/obj/effect/proc_holder/spell/S in M.mind.spell_list)
S.charge_counter = S.charge_max
- M <<"you feel raw magic flowing through you, it feels good!"
+ to_chat(M, "you feel raw magic flowing through you, it feels good!")
+
else
- M <<"you feel very strange for a moment, but then it passes."
+ to_chat(M, "you feel very strange for a moment, but then it passes.")
+
burnt_out = 1
charged_item = M
break
@@ -44,8 +46,10 @@
charged_item = I
break
else
- L << "Glowing red letters appear on the front cover..."
- L << "[pick("NICE TRY BUT NO!","CLEVER BUT NOT CLEVER ENOUGH!", "SUCH FLAGRANT CHEESING IS WHY WE ACCEPTED YOUR APPLICATION!", "CUTE!", "YOU DIDN'T THINK IT'D BE THAT EASY, DID YOU?")]"
+ to_chat(L, "Glowing red letters appear on the front cover...")
+
+ to_chat(L, "[pick("NICE TRY BUT NO!","CLEVER BUT NOT CLEVER ENOUGH!", "SUCH FLAGRANT CHEESING IS WHY WE ACCEPTED YOUR APPLICATION!", "CUTE!", "YOU DIDN'T THINK IT'D BE THAT EASY, DID YOU?")]")
+
burnt_out = 1
else if(istype(item, /obj/item/weapon/gun/magic))
var/obj/item/weapon/gun/magic/I = item
@@ -85,8 +89,11 @@
charged_item = item
break
if(!charged_item)
- L << "you feel magical power surging to your hands, but the feeling rapidly fades..."
+ to_chat(L, "you feel magical power surging to your hands, but the feeling rapidly fades...")
+
else if(burnt_out)
- L << "[charged_item] doesn't seem to be reacting to the spell..."
+ to_chat(L, "[charged_item] doesn't seem to be reacting to the spell...")
+
else
- L << "[charged_item] suddenly feels very warm!"
\ No newline at end of file
+ to_chat(L, "[charged_item] suddenly feels very warm!")
+
diff --git a/code/datums/spells/conjure.dm b/code/datums/spells/conjure.dm
index d3fd8a31527..4a502d59229 100644
--- a/code/datums/spells/conjure.dm
+++ b/code/datums/spells/conjure.dm
@@ -31,7 +31,8 @@
targets -= spawn_place
if(ispath(summoned_object_type,/turf))
if(istype(get_turf(usr),/turf/simulated/shuttle))
- usr << "\red You can't build things on shuttles!"
+ to_chat(usr, "\red You can't build things on shuttles!")
+
break
var/turf/O = spawn_place
var/N = summoned_object_type
diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm
index 867eb048903..aa048d746cc 100644
--- a/code/datums/spells/ethereal_jaunt.dm
+++ b/code/datums/spells/ethereal_jaunt.dm
@@ -20,7 +20,8 @@
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded
for(var/mob/living/target in targets)
if(!target.can_safely_leave_loc()) // No more brainmobs hopping out of their brains
- target << "You are somehow too bound to your current location to abandon it."
+ to_chat(target, "You are somehow too bound to your current location to abandon it.")
+
continue
spawn(0)
@@ -111,7 +112,8 @@
if(!(newLoc.flags & NOJAUNT))
loc = newLoc
else
- user << "Some strange aura is blocking the way!"
+ to_chat(user, "Some strange aura is blocking the way!")
+
src.canmove = 0
spawn(2) src.canmove = 1
diff --git a/code/datums/spells/horsemask.dm b/code/datums/spells/horsemask.dm
index fd9a6e64bed..f73e330ad2b 100644
--- a/code/datums/spells/horsemask.dm
+++ b/code/datums/spells/horsemask.dm
@@ -18,7 +18,8 @@
/obj/effect/proc_holder/spell/targeted/horsemask/cast(list/targets, mob/user = usr)
if(!targets.len)
- user << "No target found in range."
+ to_chat(user, "No target found in range.")
+
return
var/mob/living/carbon/target = targets[1]
@@ -27,11 +28,13 @@
return
if((target.type in compatible_mobs) || ishuman(target))
- user << "It'd be stupid to curse [target] with a horse's head!"
+ to_chat(user, "It'd be stupid to curse [target] with a horse's head!")
+
return
if(!(target in oview(range)))//If they are not in overview after selection.
- user << "They are too far away!"
+ to_chat(user, "They are too far away!")
+
return
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
diff --git a/code/datums/spells/lichdom.dm b/code/datums/spells/lichdom.dm
index f63a296cec9..3e8cf4bb9d1 100644
--- a/code/datums/spells/lichdom.dm
+++ b/code/datums/spells/lichdom.dm
@@ -44,19 +44,23 @@
if(stat_allowed) //Death is not my end!
if(M.stat == CONSCIOUS && iscarbon(M))
- M << "You aren't dead enough to revive!" //Usually a good problem to have
+ to_chat(M, "You aren't dead enough to revive!")//Usually a good problem to have
+
+
charge_counter = charge_max
return
if(!marked_item || qdeleted(marked_item)) //Wait nevermind
- M << "Your phylactery is gone!"
+ to_chat(M, "Your phylactery is gone!")
+
return
var/turf/user_turf = get_turf(M)
var/turf/item_turf = get_turf(marked_item)
if(user_turf.z != item_turf.z)
- M << "Your phylactery is out of range!"
+ to_chat(M, "Your phylactery is out of range!")
+
return
if(isobserver(M))
@@ -73,7 +77,8 @@
lich.real_name = M.mind.name
M.mind.transfer_to(lich)
lich.set_species("Skeleton")
- lich << "Your bones clatter and shutter as they're pulled back into this world!"
+ to_chat(lich, "Your bones clatter and shutter as they're pulled back into this world!")
+
charge_max += 600
var/mob/old_body = current_body
var/turf/body_turf = get_turf(old_body)
@@ -97,16 +102,19 @@
if(ABSTRACT in item.flags || NODROP in item.flags)
continue
marked_item = item
- M << "You begin to focus your very being into the [item.name]..."
+ to_chat(M, "You begin to focus your very being into the [item.name]...")
+
break
if(!marked_item)
- M << "You must hold an item you wish to make your phylactery..."
+ to_chat(M, "You must hold an item you wish to make your phylactery...")
+
return
spawn(50)
if(marked_item.loc != M) //I changed my mind I don't want to put my soul in a cheeseburger!
- M << "Your soul snaps back to your body as you drop the [marked_item.name]!"
+ to_chat(M, "Your soul snaps back to your body as you drop the [marked_item.name]!")
+
marked_item = null
return
name = "RISE!"
@@ -117,7 +125,8 @@
marked_item.name = "Ensouled [marked_item.name]"
marked_item.desc = "A terrible aura surrounds this item, its very existence is offensive to life itself..."
marked_item.color = "#003300"
- M << "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!"
+ to_chat(M, "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!")
+
current_body = M.mind.current
if(ishuman(M))
var/mob/living/carbon/human/H = M
diff --git a/code/datums/spells/lightning.dm b/code/datums/spells/lightning.dm
index e99261aa8bd..6abe242c747 100644
--- a/code/datums/spells/lightning.dm
+++ b/code/datums/spells/lightning.dm
@@ -30,7 +30,8 @@
/obj/effect/proc_holder/spell/targeted/lightning/proc/StartChargeup(mob/user = usr)
ready = 1
- user << "You start gathering the power."
+ to_chat(user, "You start gathering the power.")
+
halo = image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = EFFECTS_LAYER)
user.overlays.Add(halo)
start_time = world.time
@@ -45,13 +46,15 @@ obj/effect/proc_holder/spell/targeted/lightning/proc/Reset(mob/user = usr)
user.overlays.Remove(halo)
/obj/effect/proc_holder/spell/targeted/lightning/revert_cast(mob/user = usr)
- user << "No target found in range."
+ to_chat(user, "No target found in range.")
+
Reset(user)
..()
/obj/effect/proc_holder/spell/targeted/lightning/proc/Discharge(mob/user = usr)
var/mob/living/M = user
- M << "You lose control over the spell."
+ to_chat(M, "You lose control over the spell.")
+
Reset(user)
start_recharge()
@@ -60,7 +63,8 @@ obj/effect/proc_holder/spell/targeted/lightning/proc/Reset(mob/user = usr)
ready = 0
var/mob/living/carbon/target = targets[1]
if(get_dist(user,target)>range)
- user << "They are too far away!"
+ to_chat(user, "They are too far away!")
+
Reset(user)
return
diff --git a/code/datums/spells/magnet.dm b/code/datums/spells/magnet.dm
index 20c4d5efda6..0a5214b3ca4 100644
--- a/code/datums/spells/magnet.dm
+++ b/code/datums/spells/magnet.dm
@@ -27,7 +27,8 @@
/obj/effect/proc_holder/spell/targeted/magnet/proc/StartChargeup(mob/user = usr)
ready = 1
- user << "You start gathering the power."
+ to_chat(user, "You start gathering the power.")
+
halo = image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = EFFECTS_LAYER)
user.overlays.Add(halo)
spawn(0)
@@ -44,14 +45,16 @@ obj/effect/proc_holder/spell/targeted/magnet/proc/Reset(mob/user = usr)
user.overlays.Remove(halo)
/obj/effect/proc_holder/spell/targeted/magnet/revert_cast(mob/user = usr)
- user << "No target found in range."
+ to_chat(user, "No target found in range.")
+
Reset(user)
..()
/obj/effect/proc_holder/spell/targeted/magnet/proc/Discharge(mob/user = usr)
var/mob/living/M = user
//M.electrocute_act(25,"magnet Bolt")
- M << "You lose control over the power."
+ to_chat(M, "You lose control over the power.")
+
Reset(user)
start_recharge()
@@ -61,7 +64,8 @@ obj/effect/proc_holder/spell/targeted/magnet/proc/Reset(mob/user = usr)
var/mob/living/carbon/target = targets[1]
if(get_dist(user,target)>range)
- user << "They are too far away!"
+ to_chat(user, "They are too far away!")
+
Reset(user)
return
diff --git a/code/datums/spells/mime.dm b/code/datums/spells/mime.dm
index 5e5ddb91db2..a6b43234475 100644
--- a/code/datums/spells/mime.dm
+++ b/code/datums/spells/mime.dm
@@ -17,7 +17,8 @@
/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Click()
if(usr && usr.mind)
if(!usr.mind.miming)
- usr << "You must dedicate yourself to silence first."
+ to_chat(usr, "You must dedicate yourself to silence first.")
+
return
invocation = "[usr.real_name] looks as if a wall is in front of them."
else
@@ -54,6 +55,8 @@
for(var/mob/living/carbon/human/H in targets)
H.mind.miming=!H.mind.miming
if(H.mind.miming)
- H << "You make a vow of silence."
+ to_chat(H, "You make a vow of silence.")
+
else
- H << "You break your vow of silence."
\ No newline at end of file
+ to_chat(H, "You break your vow of silence.")
+
diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm
index 6d7b0539fb1..666b09d7beb 100644
--- a/code/datums/spells/mind_transfer.dm
+++ b/code/datums/spells/mind_transfer.dm
@@ -21,33 +21,41 @@ Also, you never added distance checking after target is selected. I've went ahea
*/
/obj/effect/proc_holder/spell/targeted/mind_transfer/cast(list/targets,mob/user = usr)
if(!targets.len)
- user << "No mind found."
+ to_chat(user, "No mind found.")
+
return
if(targets.len > 1)
- user << "Too many minds! You're not a hive damnit!"//Whaa...aat?
+ to_chat(user, "Too many minds! You're not a hive damnit!")//Whaa...aat?
+
+
return
var/mob/living/target = targets[1]
if(!(target in oview(range)))//If they are not in overview after selection. Do note that !() is necessary for in to work because ! takes precedence over it.
- user << "They are too far away!"
+ to_chat(user, "They are too far away!")
+
return
if(target.stat == DEAD)
- user << "You don't particularly want to be dead."
+ to_chat(user, "You don't particularly want to be dead.")
+
return
if(!target.key || !target.mind)
- user << "They appear to be catatonic. Not even magic can affect their vacant mind."
+ to_chat(user, "They appear to be catatonic. Not even magic can affect their vacant mind.")
+
return
if(user.suiciding)
- user << "You're killing yourself! You can't concentrate enough to do this!"
+ to_chat(user, "You're killing yourself! You can't concentrate enough to do this!")
+
return
if(target.mind.special_role in protected_roles)
- user << "Their mind is resisting your spell."
+ to_chat(user, "Their mind is resisting your spell.")
+
return
var/mob/living/victim = target//The target of the spell whos body will be transferred to.
diff --git a/code/datums/spells/summonitem.dm b/code/datums/spells/summonitem.dm
index 4a12b4bb9f9..507d15281cc 100644
--- a/code/datums/spells/summonitem.dm
+++ b/code/datums/spells/summonitem.dm
@@ -106,4 +106,5 @@
item_to_retrive.loc.visible_message("The [item_to_retrive.name] suddenly appears in [user]'s hand!")
if(message)
- user << message
+ to_chat(user, message)
+
diff --git a/code/datums/spells/touch_attacks.dm b/code/datums/spells/touch_attacks.dm
index 54cb984f943..bdd64ef9fcc 100644
--- a/code/datums/spells/touch_attacks.dm
+++ b/code/datums/spells/touch_attacks.dm
@@ -10,7 +10,8 @@
qdel(attached_hand)
charge_counter = charge_max
attached_hand = null
- user << "You draw the power out of your hand."
+ to_chat(user, "You draw the power out of your hand.")
+
return 0
..()
@@ -38,9 +39,11 @@
qdel(attached_hand)
charge_counter = charge_max
attached_hand = null
- user << "Your hands are full!"
+ to_chat(user, "Your hands are full!")
+
return 0
- user << "You channel the power of the spell to your hand."
+ to_chat(user, "You channel the power of the spell to your hand.")
+
return 1
diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm
index 98423b3e5fc..46cde89b8ea 100644
--- a/code/datums/spells/wizard.dm
+++ b/code/datums/spells/wizard.dm
@@ -298,10 +298,12 @@
var/mob/living/M = AM
M.Weaken(5)
M.adjustBruteLoss(5)
- M << "You're slammed into the floor by a mystical force!"
+ to_chat(M, "You're slammed into the floor by a mystical force!")
+
else
if(istype(AM, /mob/living))
var/mob/living/M = AM
M.Weaken(2)
- M << "You're thrown back by a mystical force!"
+ to_chat(M, "You're thrown back by a mystical force!")
+
spawn(0) AM.throw_at(throwtarget, ((Clamp((maxthrow - (Clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1)//So stuff gets tossed around at the same time.
diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm
index e1642cd17d1..d2cb746c0f0 100644
--- a/code/datums/wires/alarm.dm
+++ b/code/datums/wires/alarm.dm
@@ -27,24 +27,28 @@ var/const/AALARM_WIRE_AALARM = 16
if(AALARM_WIRE_IDSCAN)
if(!mended)
A.locked = 1
- //world << "Idscan wire cut"
+// to_chat(world, "Idscan wire cut")
+
if(AALARM_WIRE_POWER)
A.shock(usr, 50)
A.shorted = !mended
A.update_icon()
- //world << "Power wire cut"
+// to_chat(world, "Power wire cut")
+
if (AALARM_WIRE_AI_CONTROL)
if (A.aidisabled == !mended)
A.aidisabled = mended
- //world << "AI Control Wire Cut"
+// to_chat(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_chat(world, "Syphon Wire Cut")
+
if(AALARM_WIRE_AALARM)
if (A.alarm_area.atmosalert(2, A))
@@ -56,10 +60,12 @@ var/const/AALARM_WIRE_AALARM = 16
switch(index)
if(AALARM_WIRE_IDSCAN)
A.locked = !A.locked
- // world << "Idscan wire pulsed"
+// to_chat(world, "Idscan wire pulsed")
+
if (AALARM_WIRE_POWER)
- // world << "Power wire pulsed"
+// to_chat(world, "Power wire pulsed")
+
if(A.shorted == 0)
A.shorted = 1
A.update_icon()
@@ -71,7 +77,8 @@ var/const/AALARM_WIRE_AALARM = 16
if (AALARM_WIRE_AI_CONTROL)
- // world << "AI Control wire pulsed"
+// to_chat(world, "AI Control wire pulsed")
+
if (A.aidisabled == 0)
A.aidisabled = 1
A.updateDialog()
@@ -80,7 +87,8 @@ var/const/AALARM_WIRE_AALARM = 16
A.aidisabled = 0
if(AALARM_WIRE_SYPHON)
- // world << "Syphon wire pulsed"
+// to_chat(world, "Syphon wire pulsed")
+
if(A.mode == 1) // AALARM_MODE_SCRUB
A.mode = 3 // AALARM_MODE_PANIC
else
@@ -88,7 +96,8 @@ var/const/AALARM_WIRE_AALARM = 16
A.apply_mode()
if(AALARM_WIRE_AALARM)
- // world << "Aalarm wire pulsed"
+// to_chat(world, "Aalarm wire pulsed")
+
if (A.alarm_area.atmosalert(0, A))
A.post_alert(0)
A.update_icon()
diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm
index 9e894fb9fec..77975d05680 100644
--- a/code/datums/wires/robot.dm
+++ b/code/datums/wires/robot.dm
@@ -35,7 +35,8 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs
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)
@@ -72,7 +73,8 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs
if(!isnull(R.camera) && R.camera.can_use() && !R.scrambledcodes)
R.camera.toggle_cam(usr, 0) // Kick anyone watching the Cyborg's camera, doesn't display you disconnecting the camera.
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.lockcharge) // Toggle
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index 2055c2790b7..2c184e473c8 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -116,14 +116,16 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
var/colour = href_list["cut"]
CutWireColour(colour)
else
- L << "You need wirecutters!"
+ to_chat(L, "You need wirecutters!")
+
else if(href_list["pulse"])
if(istype(I, /obj/item/device/multitool))
var/colour = href_list["pulse"]
PulseColour(colour)
else
- L << "You need a multitool!"
+ to_chat(L, "You need a multitool!")
+
else if(href_list["attach"])
var/colour = href_list["attach"]
@@ -139,7 +141,8 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
L.drop_item()
Attach(colour, I)
else
- L << "You need a remote signaller!"
+ to_chat(L, "You need a remote signaller!")
+
diff --git a/code/defines/procs/AStar.dm b/code/defines/procs/AStar.dm
index 4a7df80dd83..1750814c228 100644
--- a/code/defines/procs/AStar.dm
+++ b/code/defines/procs/AStar.dm
@@ -68,11 +68,11 @@ Actual Adjacent procs :
path = list()
return path
-//the actual algorithm
+//the actual algorithm
/proc/AStar(caller, end, dist, maxnodes, maxnodedepth = 30, mintargetdist, adjacent = /turf/proc/reachableAdjacentTurfs, id=null, turf/exclude=null, simulated_only = 1)
//sanitation
- var/start = get_turf(caller)
+ var/start = get_turf(caller)
if(!start)
return 0
@@ -86,7 +86,7 @@ Actual Adjacent procs :
var/list/closed = new() //the closed list
var/list/path = null //the returned path, if any
var/PathNode/cur //current processed turf
-
+
//initialization
open.Insert(new /PathNode(start,null,0,call(start,dist)(end),0))
@@ -181,4 +181,4 @@ Actual Adjacent procs :
if(!O.CanAStarPass(ID, rdir, caller))
return 1
- return 0
+ return 0
diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm
index 7993badfb0e..834922842e4 100644
--- a/code/defines/procs/announce.dm
+++ b/code/defines/procs/announce.dm
@@ -63,21 +63,30 @@
datum/announcement/proc/Message(message as text, message_title as text)
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player) && !isdeaf(M))
- M << "[title]
"
- M << "[message]"
+ to_chat(M, "[title]
")
+
+ to_chat(M, "[message]")
+
if (announcer)
- M << " -[html_encode(announcer)]"
+ to_chat(M, " -[html_encode(announcer)]")
+
/datum/announcement/minor/Message(message as text, message_title as text)
- world << "[message_title]"
- world << "[message]"
+ to_chat(world, "[message_title]")
+
+ to_chat(world, "[message]")
+
datum/announcement/priority/Message(message as text, message_title as text)
- world << "[message_title]
"
- world << "[message]"
+ to_chat(world, "[message_title]
")
+
+ to_chat(world, "[message]")
+
if(announcer)
- world << " -[html_encode(announcer)]"
- world << "
"
+ to_chat(world, " -[html_encode(announcer)]")
+
+ to_chat(world, "
")
+
datum/announcement/priority/command/Message(message as text, message_title as text)
var/command
@@ -89,7 +98,8 @@ datum/announcement/priority/command/Message(message as text, message_title as te
command += "
"
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player) && !isdeaf(M))
- M << command
+ to_chat(M, command)
+
datum/announcement/priority/enemy/Message(message as text, message_title as text, from as text)
var/command
@@ -101,11 +111,14 @@ datum/announcement/priority/enemy/Message(message as text, message_title as text
command += "
"
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player) && !isdeaf(M))
- M << command
+ to_chat(M, command)
+
datum/announcement/priority/security/Message(message as text, message_title as text)
- world << "[message_title]"
- world << "[message]"
+ to_chat(world, "[message_title]")
+
+ to_chat(world, "[message]")
+
datum/announcement/proc/NewsCast(message as text, message_title as text)
if(disable_newscasts)
@@ -126,14 +139,16 @@ datum/announcement/proc/PlaySound(var/message_sound)
return
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player) && !isdeaf(M))
- M << message_sound
+ to_chat(M, message_sound)
+
datum/announcement/proc/Sound(var/message_sound)
PlaySound(message_sound)
datum/announcement/priority/Sound(var/message_sound)
if(sound)
- world << sound
+ to_chat(world, sound)
+
datum/announcement/priority/command/Sound(var/message_sound)
PlaySound(message_sound)
diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm
index bc69466bb1e..ea32a6b2619 100644
--- a/code/defines/procs/statistics.dm
+++ b/code/defines/procs/statistics.dm
@@ -65,7 +65,8 @@
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_chat(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.")
@@ -100,7 +101,8 @@
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_chat(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.")
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 9dc2918dd8f..6613bd2d9cf 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -322,14 +322,16 @@
// Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch
if(L && L.client && !L.client.ambience_playing && (L.client.prefs.sound & SOUND_BUZZ)) //split off the white noise from the rest of the ambience because of annoyance complaints - Kluys
L.client.ambience_playing = 1
- L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2)
+ to_chat(L, sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2))
+
else if (L && L.client && !(L.client.prefs.sound & SOUND_BUZZ)) L.client.ambience_playing = 0
if(prob(35) && !newarea.media_source && L && L.client && (L.client.prefs.sound & SOUND_AMBIENCE))
var/sound = pick(ambientsounds)
if(!L.client.played)
- L << sound(sound, repeat = 0, wait = 0, volume = 25, channel = 1)
+ to_chat(L, sound(sound, repeat = 0, wait = 0, volume = 25, channel = 1))
+
L.client.played = 1
spawn(600) //ewww - this is very very bad
if(L.&& L.client)
@@ -362,7 +364,8 @@
M.Weaken(2)
- M << "Gravity!"
+ to_chat(M, "Gravity!")
+
/proc/has_gravity(atom/AT, turf/T)
if(!T)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index aa555a75b82..49725284a4e 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -181,20 +181,26 @@
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)
+
if(reagents && is_open_container()) //is_open_container() isn't really the right proc for this, but w/e
- user << "It contains:"
+ to_chat(user, "It contains:")
+
if(reagents.reagent_list.len)
if(user.can_see_reagents()) //Show each individual reagent
for(var/datum/reagent/R in reagents.reagent_list)
- user << "[R.volume] units of [R.name]"
+ to_chat(user, "[R.volume] units of [R.name]")
+
else //Otherwise, just show the total volume
if(reagents && reagents.reagent_list.len)
- user << "[reagents.total_volume] units of various reagents."
+ to_chat(user, "[reagents.total_volume] units of various reagents.")
+
else
- user << "Nothing."
+ to_chat(user, "Nothing.")
+
return distance == -1 || (get_dist(src, user) <= distance) || isobserver(user) //observers do not have a range limit
@@ -405,7 +411,8 @@
cur_y = y_arr.Find(src.z)
if(cur_y)
break
-// world << "X = [cur_x]; Y = [cur_y]"
+// to_chat(world, "X = [cur_x]; Y = [cur_y]")
+
if(cur_x && cur_y)
return list("x"=cur_x,"y"=cur_y)
else
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 570fada2073..c407a708071 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -147,13 +147,16 @@
if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
return
if (!ishuman(usr)) //Make sure they're a mob that has dna
- usr << "Try as you might, you can not climb up into the [src]."
+ to_chat(usr, "Try as you might, you can not climb up into the [src].")
+
return
if (src.occupant)
- usr << "The [src] is already occupied!"
+ to_chat(usr, "The [src] is already occupied!")
+
return
if (usr.abiotic())
- usr << "Subject cannot have abiotic items on."
+ to_chat(usr, "Subject cannot have abiotic items on.")
+
return
usr.stop_pulling()
usr.client.perspective = EYE_PERSPECTIVE
@@ -184,17 +187,20 @@
if(!istype(user.loc, /turf) || !istype(O.loc, /turf)) // are you in a container/closet/pod/etc?
return
if(occupant)
- user << "The [src] is already occupied!"
+ to_chat(user, "The [src] is already occupied!")
+
return
var/mob/living/L = O
if(!istype(L) || L.buckled)
return
if(L.abiotic())
- user << "Subject cannot have abiotic items on."
+ to_chat(user, "Subject cannot have abiotic items on.")
+
return
for(var/mob/living/carbon/slime/M in range(1,L))
if(M.Victim == L)
- usr << "[L.name] will not fit into the [src] because they have a slime latched onto their head."
+ to_chat(usr, "[L.name] will not fit into the [src] because they have a slime latched onto their head.")
+
return
if (L == user)
visible_message("[user] climbs into the [src].")
@@ -207,7 +213,8 @@
/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob, params)
if(istype(item, /obj/item/weapon/screwdriver))
if(occupant)
- user << "The maintenance panel is locked."
+ to_chat(user, "The maintenance panel is locked.")
+
return
default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]", item)
@@ -222,11 +229,13 @@
return
else if(istype(item, /obj/item/weapon/reagent_containers/glass))
if(beaker)
- user << "A beaker is already loaded into the machine."
+ to_chat(user, "A beaker is already loaded into the machine.")
+
return
if(!user.drop_item())
- user << "\The [item] is stuck to you!"
+ to_chat(user, "\The [item] is stuck to you!")
+
return
beaker = item
@@ -239,13 +248,16 @@
if (!ismob(G.affecting))
return
if (src.occupant)
- user << "The scanner is already occupied!"
+ to_chat(user, "The scanner is already occupied!")
+
return
if (G.affecting.abiotic())
- user << "Subject cannot have abiotic items on."
+ to_chat(user, "Subject cannot have abiotic items on.")
+
return
if(panel_open)
- usr << "Close the maintenance panel first."
+ to_chat(usr, "Close the maintenance panel first.")
+
return
put_in(G.affecting)
src.add_fingerprint(user)
@@ -273,17 +285,21 @@
var/mob/dead/observer/ghost = occupant.get_ghost()
if(ghost)
- ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)"
- ghost << sound('sound/effects/genetics.ogg')
+ to_chat(ghost, "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)")
+
+ to_chat(ghost, sound('sound/effects/genetics.ogg'))
+
return
/obj/machinery/dna_scannernew/proc/go_out()
if (!src.occupant)
- usr << "The scanner is empty!"
+ to_chat(usr, "The scanner is empty!")
+
return
if (src.locked)
- usr << "The scanner is locked!"
+ to_chat(usr, "The scanner is locked!")
+
return
if (src.occupant.client)
@@ -381,7 +397,8 @@
user.drop_item()
I.forceMove(src)
src.disk = I
- user << "You insert [I]."
+ to_chat(user, "You insert [I].")
+
nanomanager.update_uis(src) // update all UIs attached to src()
return
else
diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm
index cc957a94c34..f0b3874581e 100644
--- a/code/game/dna/genes/disabilities.dm
+++ b/code/game/dna/genes/disabilities.dm
@@ -35,7 +35,8 @@
if(sdisability)
M.sdisabilities|=sdisability
if(activation_message)
- M << "\red [activation_message]"
+ to_chat(M, "\red [activation_message]")
+
else
testing("[name] has no activation message.")
@@ -47,7 +48,8 @@
if(sdisability)
M.sdisabilities &= ~sdisability
if(deactivation_message)
- M << "\red [deactivation_message]"
+ to_chat(M, "\red [deactivation_message]")
+
else
testing("[name] has no deactivation message.")
diff --git a/code/game/dna/genes/gene.dm b/code/game/dna/genes/gene.dm
index 87dbf20108e..053115ffa9e 100644
--- a/code/game/dna/genes/gene.dm
+++ b/code/game/dna/genes/gene.dm
@@ -116,10 +116,12 @@
M.mutations.Add(mutation)
if(activation_messages.len)
var/msg = pick(activation_messages)
- M << "\blue [msg]"
+ to_chat(M, "\blue [msg]")
+
/datum/dna/gene/basic/deactivate(var/mob/M)
M.mutations.Remove(mutation)
if(deactivation_messages.len)
var/msg = pick(deactivation_messages)
- M << "\red [msg]"
\ No newline at end of file
+ to_chat(M, "\red [msg]")
+
diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm
index 8b1317dfb65..22456e2e3f8 100644
--- a/code/game/dna/genes/goon_disabilities.dm
+++ b/code/game/dna/genes/goon_disabilities.dm
@@ -43,7 +43,8 @@
for(var/mob/living/L in range(1, owner))
if(L == owner)
continue
- L << "You are enveloped by a soft green glow emanating from [owner]."
+ to_chat(L, "You are enveloped by a soft green glow emanating from [owner].")
+
L.apply_effect(5, IRRADIATE)
return
@@ -288,9 +289,11 @@
if (C == owner)
continue
if (src.variant == 2)
- C << "\red [src.personalized_stink]"
+ to_chat(C, "\red [src.personalized_stink]")
+
else
- C << "\red [stinkString()]"
+ to_chat(C, "\red [stinkString()]")
+
*/
@@ -331,7 +334,8 @@
/obj/effect/proc_holder/spell/targeted/immolate/cast(list/targets)
/* if(!targets.len) Uncomment this to allow the power to be used on targets other than yourself. That said, if you uncomment this I will find you and hurt you. Uncounterable and untracable burn damage with a 60-second cooldown is fun for exactly one person, and that's the person who is using it.
- usr << "No target found in range."
+ to_chat(usr, "No target found in range.")
+
return
var/mob/living/carbon/L = targets[1]
diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm
index a074a299301..8a9115b5f1a 100644
--- a/code/game/dna/genes/goon_powers.dm
+++ b/code/game/dna/genes/goon_powers.dm
@@ -151,13 +151,15 @@
/obj/effect/proc_holder/spell/targeted/cryokinesis/cast(list/targets)
if(!targets.len)
- usr << "No target found in range."
+ to_chat(usr, "No target found in range.")
+
return
var/mob/living/carbon/C = targets[1]
if(!iscarbon(C))
- usr << "\red This will only work on normal organic beings."
+ to_chat(usr, "\red This will only work on normal organic beings.")
+
return
if (RESIST_COLD in C.mutations)
@@ -303,7 +305,8 @@
/obj/effect/proc_holder/spell/targeted/eat/cast(list/targets)
var/mob/user = usr
if(!targets.len)
- user << "No target found in range."
+ to_chat(user, "No target found in range.")
+
return
var/atom/movable/the_item = targets[1]
@@ -319,28 +322,33 @@
var/mob/living/carbon/human/H = the_item
var/obj/item/organ/external/limb = H.get_organ(user.zone_sel.selecting)
if(!istype(limb))
- user << "You can't eat this part of them!"
+ to_chat(user, "You can't eat this part of them!")
+
revert_cast()
return 0
if(istype(limb,/obj/item/organ/external/head))
// Bullshit, but prevents being unable to clone someone.
- user << "You try to put \the [limb] in your mouth, but [t_his] ears tickle your throat!"
+ to_chat(user, "You try to put \the [limb] in your mouth, but [t_his] ears tickle your throat!")
+
revert_cast()
return 0
if(istype(limb,/obj/item/organ/external/chest))
// Bullshit, but prevents being able to instagib someone.
- user << "You try to put their [limb] in your mouth, but it's too big to fit!"
+ to_chat(user, "You try to put their [limb] in your mouth, but it's too big to fit!")
+
revert_cast()
return 0
user.visible_message("[user] begins stuffing [the_item]'s [limb.name] into [m_his] gaping maw!")
var/oldloc = H.loc
if(!do_mob(user,H,EAT_MOB_DELAY))
- user << "You were interrupted before you could eat [the_item]!"
+ to_chat(user, "You were interrupted before you could eat [the_item]!")
+
else
if(!limb || !H)
return
if(H.loc != oldloc)
- user << "\The [limb] moved away from your mouth!"
+ to_chat(user, "\The [limb] moved away from your mouth!")
+
return
user.visible_message("[user] [pick("chomps","bites")] off [the_item]'s [limb]!")
playsound(user.loc, 'sound/items/eatfood.ogg', 50, 0)
@@ -390,7 +398,8 @@
/obj/effect/proc_holder/spell/targeted/leap/cast(list/targets)
var/failure = 0
if (istype(usr.loc,/mob/) || usr.lying || usr.stunned || usr.buckled || usr.stat)
- usr << "\red You can't jump right now!"
+ to_chat(usr, "\red You can't jump right now!")
+
return
if (istype(usr.loc,/turf/))
@@ -435,7 +444,8 @@
if (istype(usr.loc,/obj/))
var/obj/container = usr.loc
- usr << "\red You leap and slam your head against the inside of [container]! Ouch!"
+ to_chat(usr, "\red You leap and slam your head against the inside of [container]! Ouch!")
+
usr.AdjustParalysis(3)
usr.AdjustWeakened(5)
container.visible_message("\red [usr.loc] emits a loud thump and rattles a bit.")
@@ -488,7 +498,8 @@
/obj/effect/proc_holder/spell/targeted/polymorph/cast(list/targets)
var/mob/living/M=targets[1]
if(!ishuman(M))
- usr << "\red You can only change your appearance to that of another human."
+ to_chat(usr, "\red You can only change your appearance to that of another human.")
+
return
if(!ishuman(usr)) return
@@ -549,21 +560,26 @@
for(var/mob/living/carbon/M in targets)
if(!iscarbon(M))
- usr << "\red You may only use this on other organic beings."
+ to_chat(usr, "\red You may only use this on other organic beings.")
+
return
if (PSY_RESIST in M.mutations)
- usr << "\red You can't see into [M.name]'s mind at all!"
+ to_chat(usr, "\red You can't see into [M.name]'s mind at all!")
+
return
if (M.stat == 2)
- usr << "\red [M.name] is dead and cannot have their mind read."
+ to_chat(usr, "\red [M.name] is dead and cannot have their mind read.")
+
return
if (M.health < 0)
- usr << "\red [M.name] is dying, and their thoughts are too scrambled to read."
+ to_chat(usr, "\red [M.name] is dying, and their thoughts are too scrambled to read.")
+
return
- usr << "\blue Mind Reading of [M.name]:"
+ to_chat(usr, "\blue Mind Reading of [M.name]:")
+
var/pain_condition = M.health
// lower health means more pain
var/list/randomthoughts = list("what to have for lunch","the future","the past","money",
@@ -580,33 +596,43 @@
switch(pain_condition)
if (81 to INFINITY)
- usr << "\blue Condition: [M.name] feels good."
+ to_chat(usr, "\blue Condition: [M.name] feels good.")
+
if (61 to 80)
- usr << "\blue Condition: [M.name] is suffering mild pain."
+ to_chat(usr, "\blue Condition: [M.name] is suffering mild pain.")
+
if (41 to 60)
- usr << "\blue Condition: [M.name] is suffering significant pain."
+ to_chat(usr, "\blue Condition: [M.name] is suffering significant pain.")
+
if (21 to 40)
- usr << "\blue Condition: [M.name] is suffering severe pain."
+ to_chat(usr, "\blue Condition: [M.name] is suffering severe pain.")
+
else
- usr << "\blue Condition: [M.name] is suffering excruciating pain."
+ to_chat(usr, "\blue Condition: [M.name] is suffering excruciating pain.")
+
thoughts = "haunted by their own mortality"
switch(M.a_intent)
if (I_HELP)
- usr << "\blue Mood: You sense benevolent thoughts from [M.name]."
+ to_chat(usr, "\blue Mood: You sense benevolent thoughts from [M.name].")
+
if (I_DISARM)
- usr << "\blue Mood: You sense cautious thoughts from [M.name]."
+ to_chat(usr, "\blue Mood: You sense cautious thoughts from [M.name].")
+
if (I_GRAB)
- usr << "\blue Mood: You sense hostile thoughts from [M.name]."
+ to_chat(usr, "\blue Mood: You sense hostile thoughts from [M.name].")
+
if (I_HARM)
- usr << "\blue Mood: You sense cruel thoughts from [M.name]."
+ to_chat(usr, "\blue Mood: You sense cruel thoughts from [M.name].")
+
for(var/mob/living/L in view(7,M))
if (L == M)
continue
thoughts = "thinking about punching [L.name]"
break
else
- usr << "\blue Mood: You sense strange thoughts from [M.name]."
+ to_chat(usr, "\blue Mood: You sense strange thoughts from [M.name].")
+
if (istype(M,/mob/living/carbon/human))
var/numbers[0]
@@ -615,13 +641,17 @@
numbers += H.mind.initial_account.account_number
numbers += H.mind.initial_account.remote_access_pin
if(numbers.len>0)
- usr << "\blue Numbers: You sense the number[numbers.len>1?"s":""] [english_list(numbers)] [numbers.len>1?"are":"is"] important to [M.name]."
- usr << "\blue Thoughts: [M.name] is currently [thoughts]."
+ to_chat(usr, "\blue Numbers: You sense the number[numbers.len>1?"s":""] [english_list(numbers)] [numbers.len>1?"are":"is"] important to [M.name].")
+
+ to_chat(usr, "\blue Thoughts: [M.name] is currently [thoughts].")
+
if (EMPATH in M.mutations)
- M << "\red You sense [usr.name] reading your mind."
+ to_chat(M, "\red You sense [usr.name] reading your mind.")
+
else if (prob(5) || M.mind.assigned_role=="Chaplain")
- M << "\red You sense someone intruding upon your thoughts..."
+ to_chat(M, "\red You sense someone intruding upon your thoughts...")
+
return
////////////////////////////////////////////////////////////////////////
@@ -668,10 +698,12 @@
shake_camera(M, 10, 5)
if (M == usr)
continue
- M << "You are sent flying!"
+ to_chat(M, "You are sent flying!")
+
M.Weaken(5)
step_away(M, UT, 15)
step_away(M, UT, 15)
step_away(M, UT, 15)
else
- usr << "You were interrupted and couldn't fart! Rude!"
\ No newline at end of file
+ to_chat(usr, "You were interrupted and couldn't fart! Rude!")
+
diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm
index 5d410c634b4..d514215e347 100644
--- a/code/game/dna/genes/monkey.dm
+++ b/code/game/dna/genes/monkey.dm
@@ -45,7 +45,8 @@
if(H.hud_used)
H.hud_used.instantiate()
- H << "You are now a [H.species.name]."
+ to_chat(H, "You are now a [H.species.name].")
+
return H
@@ -88,6 +89,7 @@
if(H.hud_used)
H.hud_used.instantiate()
- H << "You are now a [H.species.name]."
+ to_chat(H, "You are now a [H.species.name].")
+
return H
\ No newline at end of file
diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm
index 65b6ae36acf..c5c795ba606 100644
--- a/code/game/dna/genes/powers.dm
+++ b/code/game/dna/genes/powers.dm
@@ -162,7 +162,8 @@
M.update_mutations() //update our mutation overlays
M.update_body()
M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH //temporary fix until the problem can be solved.
- M << "You suddenly feel very weak."
+ to_chat(M, "You suddenly feel very weak.")
+
/datum/dna/gene/basic/xray
name="X-Ray Vision"
diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm
index da98fde4544..b420de87c89 100644
--- a/code/game/dna/genes/vg_powers.dm
+++ b/code/game/dna/genes/vg_powers.dm
@@ -48,7 +48,8 @@ Obviously, requires DNA2.
//M.dna.SetSEState(HULKBLOCK,0)
M.update_mutations() //update our mutation overlays
M.update_body()
- M << "\red You suddenly feel very weak."
+ to_chat(M, "\red You suddenly feel very weak.")
+
/obj/effect/proc_holder/spell/targeted/hulk
name = "Hulk Out"
@@ -72,7 +73,8 @@ Obviously, requires DNA2.
/obj/effect/proc_holder/spell/targeted/hulk/cast(list/targets)
if (istype(usr.loc,/mob/))
- usr << "\red You can't hulk out right now!"
+ to_chat(usr, "\red You can't hulk out right now!")
+
return
var/mob/living/carbon/human/M=usr
M.hulk_time = world.time + HULK_DURATION
@@ -122,7 +124,8 @@ Obviously, requires DNA2.
if(!ishuman(usr)) return
if (istype(usr.loc,/mob/))
- usr << "\red You can't change your appearance right now!"
+ to_chat(usr, "\red You can't change your appearance right now!")
+
return
var/mob/living/carbon/human/M=usr
@@ -228,7 +231,8 @@ Obviously, requires DNA2.
validtargets += M
if(!validtargets.len)
- usr << "There are no valid targets!"
+ to_chat(usr, "There are no valid targets!")
+
start_recharge()
return
@@ -293,7 +297,8 @@ Obviously, requires DNA2.
validtargets += M
if(!validtargets.len || validtargets.len == 1)
- usr << "No valid targets with remote view were found!"
+ to_chat(usr, "No valid targets with remote view were found!")
+
start_recharge()
return
@@ -315,7 +320,8 @@ Obviously, requires DNA2.
var/mob/target
if(istype(user.l_hand, /obj/item/tk_grab) || istype(user.r_hand, /obj/item/tk_grab/))
- user << "\red Your mind is too busy with that telekinetic grab."
+ to_chat(user, "\red Your mind is too busy with that telekinetic grab.")
+
user.remoteview_target = null
user.reset_view(0)
return
diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm
index edd0bfcb0a8..f33b52d2aa1 100644
--- a/code/game/gamemodes/antag_spawner.dm
+++ b/code/game/gamemodes/antag_spawner.dm
@@ -23,19 +23,23 @@
/obj/item/weapon/antag_spawner/borg_tele/attack_self(mob/user as mob)
if(used)
- user << "[src] is out of power!"
+ to_chat(user, "[src] is out of power!")
+
return
if(!(user.mind in ticker.mode.syndicates))
- user << "AUTHENTICATION FAILURE. ACCESS DENIED."
+ to_chat(user, "AUTHENTICATION FAILURE. ACCESS DENIED.")
+
return 0
if(checking)
- user << "[src] is already checking for possible borgs."
+ to_chat(user, "[src] is already checking for possible borgs.")
+
return
borg_to_spawn = input("What type of borg would you like to teleport?", "Cyborg Type", type) as null|anything in possible_types
if(!borg_to_spawn || checking || used)
return
checking = 1
- user << "The device is now checking for possible borgs."
+ to_chat(user, "The device is now checking for possible borgs.")
+
var/list/borg_candidates = pollCandidates("Do you want to play as a Syndicate [borg_to_spawn] borg?", ROLE_OPERATIVE, 1)
if(borg_candidates.len > 0 && !used)
checking = 0
@@ -45,7 +49,8 @@
spawn_antag(C, get_turf(src.loc), "syndieborg")
else
checking = 0
- user << "Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded."
+ to_chat(user, "Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded.")
+
return
/obj/item/weapon/antag_spawner/borg_tele/spawn_antag(var/client/C, var/turf/T, var/type = "")
@@ -75,27 +80,33 @@
/obj/item/weapon/antag_spawner/slaughter_demon/attack_self(mob/user as mob)
if(user.z == ZLEVEL_CENTCOMM)//this is to make sure the wizard does NOT summon a demon from the Den..
- user << "You should probably wait until you reach the station."
+ to_chat(user, "You should probably wait until you reach the station.")
+
return
if(used)
- user << "This bottle already has a broken seal."
+ to_chat(user, "This bottle already has a broken seal.")
+
return
used = 1
- user << "You break the seal on the bottle, calling upon the dire spirits of the underworld..."
+ to_chat(user, "You break the seal on the bottle, calling upon the dire spirits of the underworld...")
+
var/list/candidates = pollCandidates("Do you want to play as a slaughter demon summoned by [user.real_name]?", ROLE_DEMON, 1, 100)
if(candidates.len > 0)
var/mob/C = pick(candidates)
spawn_antag(C, get_turf(src.loc), "Slaughter Demon", user)
- user << "You shatter the bottle, no turning back now!"
- user << "You sense a dark presence lurking just beyond the veil..."
+ to_chat(user, "You shatter the bottle, no turning back now!")
+
+ to_chat(user, "You sense a dark presence lurking just beyond the veil...")
+
playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1)
qdel(src)
else
used = 0
- user << "The demons do not respond to your summon. Perhaps you should try again later."
+ to_chat(user, "The demons do not respond to your summon. Perhaps you should try again later.")
+
/obj/item/weapon/antag_spawner/slaughter_demon/spawn_antag(var/client/C, var/turf/T, var/type = "", mob/user as mob)
var /obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(T)
@@ -116,5 +127,7 @@
KillDaCrew.explanation_text = "Kill everyone else while you're at it."
S.mind.objectives += KillDaCrew
S.mind.objectives += KillDaCrew
- S << "Objective #[1]: [KillDaWiz.explanation_text]"
- S << "Objective #[2]: [KillDaCrew.explanation_text]"
\ No newline at end of file
+ to_chat(S, "Objective #[1]: [KillDaWiz.explanation_text]")
+
+ to_chat(S, "Objective #[2]: [KillDaCrew.explanation_text]")
+
diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index 6c01d6197a7..d5529aa801d 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -11,7 +11,8 @@
/datum/game_mode/traitor/autotraitor/announce()
..()
- world << "Game mode is AutoTraitor. Traitors will be added to the round automagically as needed."
+ to_chat(world, "Game mode is AutoTraitor. Traitors will be added to the round automagically as needed.")
+
/datum/game_mode/traitor/autotraitor/pre_setup()
@@ -133,17 +134,21 @@
equip_traitor(newtraitor)
traitors += newtraitor.mind
- newtraitor << "\red ATTENTION: \black It is time to pay your debt to the Syndicate..."
- newtraitor << "You are now a traitor."
+ to_chat(newtraitor, "\red ATTENTION: \black It is time to pay your debt to the Syndicate...")
+
+ to_chat(newtraitor, "You are now a traitor.")
+
newtraitor.mind.special_role = "traitor"
var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR]
tatorhud.join_hud(newtraitor)
set_antag_hud(src, "hudsyndicate")
var/obj_count = 1
- newtraitor << "\blue Your current objectives:"
+ to_chat(newtraitor, "\blue Your current objectives:")
+
for(var/datum/objective/objective in newtraitor.mind.objectives)
- newtraitor << "Objective #[obj_count]: [objective.explanation_text]"
+ to_chat(newtraitor, "Objective #[obj_count]: [objective.explanation_text]")
+
obj_count++
//else
//message_admins("No new traitor being added.")
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index 655e98141cf..9170a480d7a 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -71,7 +71,8 @@ var/list/blob_nodes = list()
blobmind.special_role = "Blob"
log_game("[blob.key] (ckey) has been selected as a Blob")
greet_blob(blobmind)
- blob << "You feel very tired and bloated! You don't have long before you burst!"
+ to_chat(blob, "You feel very tired and bloated! You don't have long before you burst!")
+
spawn(600)
burst_blob(blobmind)
return 1
@@ -89,22 +90,31 @@ var/list/blob_nodes = list()
/datum/game_mode/blob/announce()
- world << "The current game mode is - Blob!"
- world << "A dangerous alien organism is rapidly spreading throughout the station!"
- world << "You must kill it all while minimizing the damage to the station."
+ to_chat(world, "The current game mode is - Blob!")
+
+ to_chat(world, "A dangerous alien organism is rapidly spreading throughout the station!")
+
+ to_chat(world, "You must kill it all while minimizing the damage to the station.")
+
/datum/game_mode/blob/proc/greet_blob(var/datum/mind/blob)
- blob.current << "You are infected by the Blob!"
- blob.current << "Your body is ready to give spawn to a new blob core which will eat this station."
- blob.current << "Find a good location to spawn the core and then take control and overwhelm the station!"
- blob.current << "When you have found a location, wait until you spawn; this will happen automatically and you cannot speed up the process."
- blob.current << "If you go outside of the station level, or in space, then you will die; make sure your location has lots of ground to cover."
+ to_chat(blob.current, "You are infected by the Blob!")
+
+ to_chat(blob.current, "Your body is ready to give spawn to a new blob core which will eat this station.")
+
+ to_chat(blob.current, "Find a good location to spawn the core and then take control and overwhelm the station!")
+
+ to_chat(blob.current, "When you have found a location, wait until you spawn; this will happen automatically and you cannot speed up the process.")
+
+ to_chat(blob.current, "If you go outside of the station level, or in space, then you will die; make sure your location has lots of ground to cover.")
+
return
/datum/game_mode/blob/proc/show_message(var/message)
for(var/datum/mind/blob in infected_crew)
- blob.current << message
+ to_chat(blob.current, message)
+
/datum/game_mode/blob/proc/burst_blobs()
for(var/datum/mind/blob in infected_crew)
@@ -121,7 +131,8 @@ var/list/blob_nodes = list()
location = get_turf(C)
if(location.z != ZLEVEL_STATION || istype(location, /turf/space))
if(!warned)
- C << "You feel ready to burst, but this isn't an appropriate place! You must return to the station!"
+ to_chat(C, "You feel ready to burst, but this isn't an appropriate place! You must return to the station!")
+
message_admins("[key_name_admin(C)] was in space when the blobs burst, and will die if he doesn't return to the station.")
spawn(300)
burst_blob(blob, 1)
diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm
index 18353c7f605..11b8e5c3978 100644
--- a/code/game/gamemodes/blob/blob_finish.dm
+++ b/code/game/gamemodes/blob/blob_finish.dm
@@ -11,22 +11,29 @@
/datum/game_mode/blob/declare_completion()
if(blobwincount <= blobs.len)
feedback_set_details("round_end_result","win - blob took over")
- world << "The blob has taken over the station!"
- world << "The entire station was eaten by the Blob"
+ to_chat(world, "The blob has taken over the station!")
+
+ to_chat(world, "The entire station was eaten by the Blob")
+
log_game("Blob mode completed with a blob victory.")
else if(station_was_nuked)
feedback_set_details("round_end_result","halfwin - nuke")
- world << "Partial Win: The station has been destroyed!"
- world << "Directive 7-12 has been successfully carried out preventing the Blob from spreading."
+ to_chat(world, "Partial Win: The station has been destroyed!")
+
+ to_chat(world, "Directive 7-12 has been successfully carried out preventing the Blob from spreading.")
+
log_game("Blob mode completed with a tie (station destroyed).")
else if(!blob_cores.len)
feedback_set_details("round_end_result","loss - blob eliminated")
- world << "The staff has won!"
- world << "The alien organism has been eradicated from the station"
+ to_chat(world, "The staff has won!")
+
+ to_chat(world, "The alien organism has been eradicated from the station")
+
log_game("Blob mode completed with a crew victory.")
- world << "Rebooting in 30s"
+ to_chat(world, "Rebooting in 30s")
+
..()
return 1
@@ -38,5 +45,6 @@
for(var/datum/mind/blob in blob_mode.infected_crew)
text += "
[blob.key] was [blob.name]"
- world << text
+ to_chat(world, text)
+
return 1
diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm
index 9ebb20a299f..d08c2d0528c 100644
--- a/code/game/gamemodes/blob/blob_report.dm
+++ b/code/game/gamemodes/blob/blob_report.dm
@@ -39,7 +39,8 @@
if (aiPlayer.client)
var/law = "The station is under quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving. The nuclear failsafe must be activated at any cost, the code is: [nukecode]."
aiPlayer.set_zeroth_law(law)
- aiPlayer << "Laws Updated: [law]"
+ to_chat(aiPlayer, "Laws Updated: [law]")
+
for(var/obj/machinery/computer/communications/comm in world)
comm.messagetitle.Add(interceptname)
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index 6726e0f1e68..25236b7f086 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -52,15 +52,24 @@
/mob/camera/blob/Login()
..()
sync_mind()
- src << "You are the overmind!"
- src << "Your randomly chosen reagent is: [blob_reagent_datum.name]!"
- src << "You are the overmind and can control the blob! You can expand, which will attack people, and place new blob pieces such as..."
- src << "Normal Blob will expand your reach and allow you to upgrade into special blobs that perform certain functions."
- src << "Shield Blob is a strong and expensive blob which can take more damage. It is fireproof and can block air, use this to protect yourself from station fires."
- src << "Resource Blob is a blob which will collect more resources for you, try to build these earlier to get a strong income. It will benefit from being near your core or multiple nodes, by having an increased resource rate; put it alone and it won't create resources at all."
- src << "Node Blob is a blob which will grow, like the core. Unlike the core it won't give you a small income but it can power resource and factory blobs to increase their rate."
- src << "Factory Blob is a blob which will spawn blob spores which will attack nearby food. Putting this nearby nodes and your core will increase the spawn rate; put it alone and it will not spawn any spores."
- src << "Shortcuts: CTRL Click = Expand Blob / Middle Mouse Click = Rally Spores / Alt Click = Create Shield"
+ to_chat(src, "You are the overmind!")
+
+ to_chat(src, "Your randomly chosen reagent is: [blob_reagent_datum.name]!")
+
+ to_chat(src, "You are the overmind and can control the blob! You can expand, which will attack people, and place new blob pieces such as...")
+
+ to_chat(src, "Normal Blob will expand your reach and allow you to upgrade into special blobs that perform certain functions.")
+
+ to_chat(src, "Shield Blob is a strong and expensive blob which can take more damage. It is fireproof and can block air, use this to protect yourself from station fires.")
+
+ to_chat(src, "Resource Blob is a blob which will collect more resources for you, try to build these earlier to get a strong income. It will benefit from being near your core or multiple nodes, by having an increased resource rate; put it alone and it won't create resources at all.")
+
+ to_chat(src, "Node Blob is a blob which will grow, like the core. Unlike the core it won't give you a small income but it can power resource and factory blobs to increase their rate.")
+
+ to_chat(src, "Factory Blob is a blob which will spawn blob spores which will attack nearby food. Putting this nearby nodes and your core will increase the spawn rate; put it alone and it will not spawn any spores.")
+
+ to_chat(src, "Shortcuts: CTRL Click = Expand Blob / Middle Mouse Click = Rally Spores / Alt Click = Create Shield")
+
update_health()
/mob/camera/blob/proc/update_health()
@@ -78,7 +87,8 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
- src << "You cannot send IC messages (muted)."
+ to_chat(src, "You cannot send IC messages (muted).")
+
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm
index 4a3f9bbdf57..826fea136a0 100644
--- a/code/game/gamemodes/blob/powers.dm
+++ b/code/game/gamemodes/blob/powers.dm
@@ -2,7 +2,8 @@
/mob/camera/blob/proc/can_buy(var/cost = 15)
if(blob_points < cost)
- src << "You cannot afford this!"
+ to_chat(src, "You cannot afford this!")
+
return 0
add_points(-cost)
return 1
@@ -44,11 +45,13 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
- src << "There is no blob here!"
+ to_chat(src, "There is no blob here!")
+
return
if(!istype(B, /obj/effect/blob/normal))
- src << "Unable to use this blob, find a normal one."
+ to_chat(src, "Unable to use this blob, find a normal one.")
+
return
if(!can_buy(10))
@@ -75,15 +78,18 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
- src << "There is no blob here!"
+ to_chat(src, "There is no blob here!")
+
return
if(!istype(B, /obj/effect/blob/normal))
- src << "Unable to use this blob, find a normal one."
+ to_chat(src, "Unable to use this blob, find a normal one.")
+
return
for(var/obj/effect/blob/resource/blob in orange(4, T))
- src << "There is a resource blob nearby, move more than 4 tiles away from it!"
+ to_chat(src, "There is a resource blob nearby, move more than 4 tiles away from it!")
+
return
if(!can_buy(40))
@@ -111,15 +117,18 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
- src << "There is no blob here!"
+ to_chat(src, "There is no blob here!")
+
return
if(!istype(B, /obj/effect/blob/normal))
- src << "Unable to use this blob, find a normal one."
+ to_chat(src, "Unable to use this blob, find a normal one.")
+
return
for(var/obj/effect/blob/node/blob in orange(5, T))
- src << "There is another node nearby, move more than 5 tiles away from it!"
+ to_chat(src, "There is another node nearby, move more than 5 tiles away from it!")
+
return
if(!can_buy(60))
@@ -146,15 +155,18 @@
var/obj/effect/blob/B = locate(/obj/effect/blob) in T
if(!B)
- src << "You must be on a blob!"
+ to_chat(src, "You must be on a blob!")
+
return
if(!istype(B, /obj/effect/blob/normal))
- src << "Unable to use this blob, find a normal one."
+ to_chat(src, "Unable to use this blob, find a normal one.")
+
return
for(var/obj/effect/blob/factory/blob in orange(7, T))
- src << "There is a factory blob nearby, move more than 7 tiles away from it!"
+ to_chat(src, "There is a factory blob nearby, move more than 7 tiles away from it!")
+
return
if(!can_buy(60))
@@ -180,11 +192,13 @@
var/obj/effect/blob/B = locate(/obj/effect/blob) in T
if(!B)
- src << "You must be on a blob!"
+ to_chat(src, "You must be on a blob!")
+
return
if(!istype(B, /obj/effect/blob/factory))
- src << "Unable to use this blob, find a factory blob."
+ to_chat(src, "Unable to use this blob, find a factory blob.")
+
return
if(!can_buy(20))
@@ -212,7 +226,8 @@
var/obj/effect/blob/node/B = locate(/obj/effect/blob/node) in T
if(!B)
- src << "You must be on a blob node!"
+ to_chat(src, "You must be on a blob node!")
+
return
if(!can_buy(80))
@@ -236,11 +251,13 @@
var/obj/effect/blob/B = locate(/obj/effect/blob) in T
if(!B)
- src << "You must be on a blob!"
+ to_chat(src, "You must be on a blob!")
+
return
if(istype(B, /obj/effect/blob/core))
- src << "Unable to remove this blob."
+ to_chat(src, "Unable to remove this blob.")
+
return
qdel(B)
@@ -263,12 +280,14 @@
return
var/obj/effect/blob/B = locate() in T
if(B)
- src << "There is a blob here!"
+ to_chat(src, "There is a blob here!")
+
return
var/obj/effect/blob/OB = locate() in circlerange(T, 1)
if(!OB)
- src << "There is no blob adjacent to you."
+ to_chat(src, "There is no blob adjacent to you.")
+
return
if(!can_buy(5))
@@ -298,7 +317,8 @@
if(!can_buy(5))
return
- src << "You rally your spores."
+ to_chat(src, "You rally your spores.")
+
var/list/surrounding_turfs = block(locate(T.x - 1, T.y - 1, T.z), locate(T.x + 1, T.y + 1, T.z))
if(!surrounding_turfs.len)
@@ -317,11 +337,13 @@
set desc = "Expend resources to attempt to produce another sentient overmind"
if(!blob_nodes || !blob_nodes.len)
- src << "A node is required to birth your offspring..."
+ to_chat(src, "A node is required to birth your offspring...")
+
return
var/obj/effect/blob/node/N = locate(/obj/effect/blob) in blob_nodes
if(!N)
- src << "A node is required to birth your offspring..."
+ to_chat(src, "A node is required to birth your offspring...")
+
return
if(!can_buy(100))
@@ -346,7 +368,8 @@
if(!speak_text)
return
else
- usr << "You broadcast with your minions, [speak_text]"
+ to_chat(usr, "You broadcast with your minions, [speak_text]")
+
for(var/mob/living/simple_animal/hostile/blob_minion in blob_mobs)
blob_minion.say(speak_text)
return
@@ -365,15 +388,18 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
- src << "There is no blob here!"
+ to_chat(src, "There is no blob here!")
+
return
if(!istype(B, /obj/effect/blob/normal))
- src << "Unable to use this blob, find a normal one."
+ to_chat(src, "Unable to use this blob, find a normal one.")
+
return
for(var/obj/effect/blob/storage/blob in orange(3, T))
- src << "There is a storage blob nearby, move more than 4 tiles away from it!"
+ to_chat(src, "There is a storage blob nearby, move more than 4 tiles away from it!")
+
return
if(!can_buy(40))
@@ -406,4 +432,5 @@
for(var/mob/living/simple_animal/hostile/blob/BLO)
BLO.adjustcolors(blob_reagent_datum.color)
- src << "Your reagent is now: [blob_reagent_datum.name]!"
\ No newline at end of file
+ to_chat(src, "Your reagent is now: [blob_reagent_datum.name]!")
+
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index d06d060de92..a1cd163dc6e 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -196,7 +196,8 @@
/obj/effect/blob/examine(mob/user)
..(user)
- user << "It looks like it's of a [get_chem_name()] kind."
+ to_chat(user, "It looks like it's of a [get_chem_name()] kind.")
+
/obj/effect/blob/proc/get_chem_name()
diff --git a/code/game/gamemodes/borer/borer.dm b/code/game/gamemodes/borer/borer.dm
index bf381ef763d..a61e86db924 100644
--- a/code/game/gamemodes/borer/borer.dm
+++ b/code/game/gamemodes/borer/borer.dm
@@ -18,8 +18,10 @@
var/list/found_vents = list()
/datum/game_mode/borer/announce()
- world << "The current game mode is - Cortical Borer!"
- world << "An unknown creature has infested the mind of a crew member. Find and destroy it by any means necessary."
+ to_chat(world, "The current game mode is - Cortical Borer!")
+
+ to_chat(world, "An unknown creature has infested the mind of a crew member. Find and destroy it by any means necessary.")
+
/datum/game_mode/borer/can_start()
if(!..())
@@ -99,11 +101,13 @@
/datum/game_mode/proc/greet_borer(var/datum/mind/borer, var/you_are=1)
if (you_are)
- borer.current << "\red You are a Cortical Borer!"
+ to_chat(borer.current, "\red You are a Cortical Borer!")
+
var/obj_count = 1
for(var/datum/objective/objective in borer.objectives)
- borer.current << "Objective #[obj_count]: [objective.explanation_text]"
+ to_chat(borer.current, "Objective #[obj_count]: [objective.explanation_text]")
+
obj_count++
return
@@ -125,16 +129,20 @@
for(var/datum/mind/borer in borers)
var/borerwin = 1
if((borer.current) && istype(borer.current,/mob/living/simple_animal/borer))
- world << "The borer was [borer.current.key]."
- world << "The last host was [borer.current:host.key]."
+ to_chat(world, "The borer was [borer.current.key].")
+
+ to_chat(world, "The last host was [borer.current:host.key].")
+
var/count = 1
for(var/datum/objective/objective in borer.objectives)
if(objective.check_completion())
- world << "Objective #[count]: [objective.explanation_text] \green Success"
+ to_chat(world, "Objective #[count]: [objective.explanation_text] \green Success")
+
feedback_add_details("borer_objective","[objective.type]|SUCCESS")
else
- world << "Objective #[count]: [objective.explanation_text] \red Failed"
+ to_chat(world, "Objective #[count]: [objective.explanation_text] \red Failed")
+
feedback_add_details("borer_objective","[objective.type]|FAIL")
borerwin = 0
count++
@@ -143,10 +151,12 @@
borerwin = 0
if(borerwin)
- world << "The borer was successful!"
+ to_chat(world, "The borer was successful!")
+
feedback_add_details("borer_success","SUCCESS")
else
- world << "The borer has failed!"
+ to_chat(world, "The borer has failed!")
+
feedback_add_details("borer_success","FAIL")
return 1
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 67190e351f4..a66e9d4a8d9 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -38,8 +38,10 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
var/changeling_amount = 4
/datum/game_mode/changeling/announce()
- world << "The current game mode is - Changeling!"
- world << "There are alien changelings on the station. Do not let the changelings succeed!"
+ to_chat(world, "The current game mode is - Changeling!")
+
+ to_chat(world, "There are alien changelings on the station. Do not let the changelings succeed!")
+
/datum/game_mode/changeling/pre_setup()
@@ -134,17 +136,22 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
/datum/game_mode/proc/greet_changeling(var/datum/mind/changeling, var/you_are=1)
if (you_are)
- changeling.current << "\red You are a changeling!"
- changeling.current << "\red Use say \":g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them."
- changeling.current << "You must complete the following tasks:"
+ to_chat(changeling.current, "\red You are a changeling!")
+
+ to_chat(changeling.current, "\red Use say \":g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them.")
+
+ to_chat(changeling.current, "You must complete the following tasks:")
+
if (changeling.current.mind)
if (changeling.current.mind.assigned_role == "Clown")
- changeling.current << "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself."
+ to_chat(changeling.current, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.")
+
changeling.current.mutations.Remove(CLUMSY)
var/obj_count = 1
for(var/datum/objective/objective in changeling.objectives)
- changeling.current << "Objective #[obj_count]: [objective.explanation_text]"
+ to_chat(changeling.current, "Objective #[obj_count]: [objective.explanation_text]")
+
obj_count++
return
@@ -157,10 +164,13 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
changeling_mind.memory = ""
changeling_mind.special_role = null
if(issilicon(changeling_mind))
- changeling_mind.current << "You have been robotized!"
- changeling_mind.current << "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead."
+ to_chat(changeling_mind.current, "You have been robotized!")
+
+ to_chat(changeling_mind.current, "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.")
+
else
- changeling_mind.current << "You lose your powers! You are no longer a changeling and are stuck in your current form!"
+ to_chat(changeling_mind.current, "You lose your powers! You are no longer a changeling and are stuck in your current form!")
+
update_change_icons_removed(changeling_mind)
/datum/game_mode/proc/update_change_icons_added(datum/mind/changeling)
@@ -242,7 +252,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
text += "
The changeling has failed."
feedback_add_details("changeling_success","FAIL")
- world << text
+ to_chat(world, text)
+
return 1
@@ -300,36 +311,44 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
/datum/changeling/proc/can_absorb_dna(var/mob/living/carbon/user, var/mob/living/carbon/target)
if(absorbed_dna[1] == user.dna)//If our current DNA is the stalest, we gotta ditch it.
- user << "We have reached our capacity to store genetic information! We must transform before absorbing more."
+ to_chat(user, "We have reached our capacity to store genetic information! We must transform before absorbing more.")
+
return
if(!target || !target.dna)
- user << "This creature does not have any DNA."
+ to_chat(user, "This creature does not have any DNA.")
+
return
var/mob/living/carbon/human/T = target
if(!istype(T) || issmall(T))
- user << "[T] is not compatible with our biology."
+ to_chat(user, "[T] is not compatible with our biology.")
+
return
if((NOCLONE || SKELETON || HUSK) in T.mutations)
- user << "DNA of [target] is ruined beyond usability!"
+ to_chat(user, "DNA of [target] is ruined beyond usability!")
+
return
if(T.species.flags & NO_DNA)
- user << "This creature does not have DNA!"
+ to_chat(user, "This creature does not have DNA!")
+
return
if(T.species.flags & NO_SCAN)
- user << "We do not know how to parse this creature's DNA!"
+ to_chat(user, "We do not know how to parse this creature's DNA!")
+
return
if(T.species.flags & NO_BLOOD)
- user << "We are not able to use the DNA of a creature without a circulatory system."
+ to_chat(user, "We are not able to use the DNA of a creature without a circulatory system.")
+
return
if(has_dna(target.dna))
- user << "We already have this DNA in storage!"
+ to_chat(user, "We already have this DNA in storage!")
+
return 1
diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm
index a365a45673c..c70a7550f8c 100644
--- a/code/game/gamemodes/changeling/changeling_power.dm
+++ b/code/game/gamemodes/changeling/changeling_power.dm
@@ -53,23 +53,29 @@
if(!ishuman(user)) //typecast everything from mob to carbon from this point onwards
return 0
if(req_human && (!ishuman(user) || issmall(user)))
- user << "We cannot do that in this form!"
+ to_chat(user, "We cannot do that in this form!")
+
return 0
var/datum/changeling/c = user.mind.changeling
if(c.chem_charges
\nCultists - complete your objectives. Convert crewmembers to your cause by using the convert rune. Remember - there is no you, there is only the cult.
\nPersonnel - Do not let the cult succeed in its mission. Brainwashing them with the chaplain's bible reverts them to whatever CentComm-allowed faith they had."
+ to_chat(world, "The current game mode is - Cult!")
+
+ to_chat(world, "Some crewmembers are attempting to start a cult!
\nCultists - complete your objectives. Convert crewmembers to your cause by using the convert rune. Remember - there is no you, there is only the cult.
\nPersonnel - Do not let the cult succeed in its mission. Brainwashing them with the chaplain's bible reverts them to whatever CentComm-allowed faith they had.")
+
/datum/game_mode/cult/pre_setup()
@@ -98,7 +100,8 @@
equip_cultist(cult_mind.current)
grant_runeword(cult_mind.current)
update_cult_icons_added(cult_mind)
- cult_mind.current << "\blue You are a member of the cult!"
+ to_chat(cult_mind.current, "\blue You are a member of the cult!")
+
memorize_cult_objectives(cult_mind)
..()
@@ -117,9 +120,11 @@
explanation = "Free objective."
if("eldergod")
explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it."
- cult_mind.current << "Objective #[obj_count]: [explanation]"
+ to_chat(cult_mind.current, "Objective #[obj_count]: [explanation]")
+
cult_mind.memory += "Objective #[obj_count]: [explanation]
"
- cult_mind.current << "The convert rune is join blood self"
+ to_chat(cult_mind.current, "The convert rune is join blood self")
+
cult_mind.memory += "The convert rune is join blood self
"
@@ -129,7 +134,8 @@
if (mob.mind)
if (mob.mind.assigned_role == "Clown")
- mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself."
+ to_chat(mob, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
+
mob.mutations.Remove(CLUMSY)
add_cult_viewpoint(mob) // give them a viewpoint
@@ -144,9 +150,11 @@
)
var/where = mob.equip_in_one_of_slots(T, slots)
if (!where)
- mob << "Unfortunately, you weren't able to get a talisman. This is very bad and you should adminhelp immediately."
+ to_chat(mob, "Unfortunately, you weren't able to get a talisman. This is very bad and you should adminhelp immediately.")
+
else
- mob << "You have a talisman in your [where], one that will help you start the cult on this station. Use it well and remember - there are others."
+ to_chat(mob, "You have a talisman in your [where], one that will help you start the cult on this station. Use it well and remember - there are others.")
+
mob.update_icons()
return 1
@@ -165,7 +173,8 @@
if (!word)
word=pick(allwords)
var/wordexp = "[cultwords[word]] is [word]..."
- cult_mob << "\red [pick("You remember something from the dark teachings of your master","You hear a dark voice on the wind","Black blood oozes into your vision and forms into symbols","You have a vision of a [pick("crow","raven","vulture","parrot")] it squawks","You catch a brief glimmer of the otherside")]... [wordexp]"
+ to_chat(cult_mob, "\red [pick("You remember something from the dark teachings of your master","You hear a dark voice on the wind","Black blood oozes into your vision and forms into symbols","You have a vision of a [pick("crow","raven","vulture","parrot")] it squawks","You catch a brief glimmer of the otherside")]... [wordexp]")
+
cult_mob.mind.store_memory("You remember that [wordexp]", 0, 0)
@@ -199,7 +208,8 @@
/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1)
if(cult_mind in cult)
cult -= cult_mind
- cult_mind.current << "\red 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."
+ to_chat(cult_mind.current, "\red 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.")
+
cult_mind.memory = ""
cult_mind.special_role = null
// remove the cult viewpoint object
@@ -209,7 +219,8 @@
update_cult_icons_removed(cult_mind)
if(show_message)
for(var/mob/M in viewers(cult_mind.current))
- M << "[cult_mind.current] looks like they just reverted to their old faith!"
+ to_chat(M, "[cult_mind.current] looks like they just reverted to their old faith!")
+
/datum/game_mode/proc/add_cult_icon_to_spirit(mob/spirit/currentSpirit)
@@ -295,11 +306,13 @@
if(!check_cult_victory())
feedback_set_details("round_end_result","win - cult win")
feedback_set("round_end_result",acolytes_survived)
- world << "\red The cult wins! It has succeeded in serving its dark masters!"
+ to_chat(world, "\red The cult wins! It has succeeded in serving its dark masters!")
+
else
feedback_set_details("round_end_result","loss - staff stopped the cult")
feedback_set("round_end_result",acolytes_survived)
- world << "\red The staff managed to stop the cult!"
+ to_chat(world, "\red The staff managed to stop the cult!")
+
var/text = "Cultists escaped: [acolytes_survived]"
@@ -335,7 +348,8 @@
feedback_add_details("cult_objective","cult_narsie|FAIL")
text += "
Objective #[obj_count]: [explanation]"
- world << text
+ to_chat(world, text)
+
..()
return 1
@@ -357,4 +371,5 @@
text += "body destroyed"
text += ")"
- world << text
+ to_chat(world, text)
+
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index ec96ec8be31..c7f71cdd5c7 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -15,7 +15,8 @@
return ..()
else
user.Paralyse(5)
- user << "\red An unexplicable force powerfully repels the sword from [target]!"
+ to_chat(user, "\red An unexplicable force powerfully repels the sword from [target]!")
+
var/organ = ((user.hand ? "l_":"r_") + "arm")
var/obj/item/organ/external/affecting = user.get_organ(organ)
if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade.
@@ -24,7 +25,8 @@
/obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob)
if(!iscultist(user))
- user << "\red An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly."
+ to_chat(user, "\red An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly.")
+
user.Dizzy(120)
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index a05543951ae..8968220d0f2 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -12,7 +12,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
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=list("ire","ego","nahlizet","certum","veri","jatkaa","mgar","balaq", "karazet", "geeri") ///"orkan" and "allaq" removed.
@@ -81,21 +82,26 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
/obj/effect/rune/examine(mob/user)
..(user)
if(!iscultist(user) && !isSpirit(user))
- user << "A strange collection of symbols drawn in blood."
+ to_chat(user, "A strange collection of symbols drawn in blood.")
+
return
if(!desc)
- user << "A spell circle drawn in blood. It reads: [word1] [word2] [word3]."
+ to_chat(user, "A spell circle drawn in blood. It reads: [word1] [word2] [word3].")
+
else
- user << "Explosive Runes inscription in blood. It reads: [desc]."
+ to_chat(user, "Explosive Runes inscription in blood. It reads: [desc].")
+
/obj/effect/rune/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/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 << "\blue You disrupt the vile magic with the deadening field of \the [I]!"
+ to_chat(user, "\blue You disrupt the vile magic with the deadening field of \the [I]!")
+
qdel(src)
return
return
@@ -138,13 +144,16 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
/obj/effect/rune/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(istype(user.wear_mask, /obj/item/clothing/mask/muzzle))
- 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(user.silent) // checking if we've been muted somehow
- user << "You are unable to speak at all! You cannot say the words of the rune."
+ to_chat(user, "You are unable to speak at all! You cannot say the words of the rune.")
+
if(!word1 || !word2 || !word3 || prob(user.getBrainLoss()))
return fizzle()
@@ -308,7 +317,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
// proc/edit_notes() FUCK IT. Cant get it to work properly. - K0000
-// world << "its been called! [usr]"
+// to_chat(world, "its been called! [usr]")
+
// notedat = {"
//
Word translation notes
// [words[1]] is [words[words[1]]] Clear
@@ -322,7 +332,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
// [words[9]] is [words[words[9]]] Clear
// [words[10]] is [words[words[10]]] Clear
// "}
-// usr << "whatev"
+// to_chat(usr, "whatev")
+
// usr << browse(null, "window=tank")
attack(mob/living/M as mob, mob/living/user as mob)
@@ -347,7 +358,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
return ..()
if(iscultist(M))
if(M.reagents && M.reagents.has_reagent("holywater")) //allows cultists to be rescued from the clutches of ordained religion
- user << "You remove the taint from [M]."
+ to_chat(user, "You remove the taint from [M].")
+
var/holy2unholy = M.reagents.get_reagent_amount("holywater")
M.reagents.del_reagent("holywater")
M.reagents.add_reagent("unholywater",holy2unholy)
@@ -356,7 +368,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
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(text("\red [] beats [] with the arcane tome!", user, M), 1)
- M << "\red You feel searing heat inside!"
+ to_chat(M, "\red You feel searing heat inside!")
+
attack_self(mob/living/user as mob)
@@ -371,7 +384,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
for(var/obj/effect/rune/N in world)
C++
if (!istype(user.loc,/turf))
- user << "\red You do not have enough space to write a proper rune."
+ to_chat(user, "\red You do not have enough space to write a proper rune.")
+
return
@@ -458,7 +472,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if (!chosen_rune)
return
if (chosen_rune == "none")
- user << "\red You decide against scribing a rune, perhaps you should take this time to study your notes."
+ to_chat(user, "\red You decide against scribing a rune, perhaps you should take this time to study your notes.")
+
return
if (chosen_rune == "teleport")
dictionary[chosen_rune] += input ("Choose a destination word") in english
@@ -470,14 +485,16 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
for (var/mob/V in viewers(src))
V.show_message("\red [user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "\red You hear chanting.", 2)
- user << "\red 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."
+ to_chat(user, "\red 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.")
+
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
if(do_after(user, 50, target = user))
if(usr.get_active_hand() != src)
return
var/mob/living/carbon/human/H = user
var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
- user << "\red You finish drawing the arcane markings of the Geometer."
+ to_chat(user, "\red You finish drawing the arcane markings of the Geometer.")
+
var/list/required = dictionary[chosen_rune]
R.word1 = english[required[1]]
R.word2 = english[required[2]]
@@ -488,7 +505,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
R.add_hiddenprint(H)
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
attackby(obj/item/weapon/tome/T as obj, mob/living/user as mob, params)
@@ -503,14 +521,17 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
// if(M == user)
for(var/entry in words)
words[entry] = T.words[entry]
- user << "You copy the translation notes from your tome."
+ to_chat(user, "You copy the translation notes from your tome.")
+
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/tome/imbued //admin tome, spawns working runes without waiting
w_class = 2.0
@@ -523,7 +544,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if(user)
var/r
if (!istype(user.loc,/turf))
- user << "\red You do not have enough space to write a proper rune."
+ to_chat(user, "\red You do not have enough space to write a proper rune.")
+
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
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index e7903c642a9..f6b2bb4ef3d 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -19,7 +19,8 @@ var/list/sacrificed = list()
allrunesloc.len = index
allrunesloc[index] = R.loc
if(index >= 5)
- user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric"
+ to_chat(user, "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric")
+
if (istype(user, /mob/living))
user.take_overall_damage(5, 0)
qdel(src)
@@ -57,7 +58,8 @@ var/list/sacrificed = list()
IP = R
runecount++
if(runecount >= 2)
- user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric"
+ to_chat(user, "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric")
+
if (istype(user, /mob/living))
user.take_overall_damage(5, 0)
qdel(src)
@@ -114,12 +116,16 @@ var/list/sacrificed = list()
if(is_convertable_to_cult(M.mind))
ticker.mode.add_cultist(M.mind)
M.mind.special_role = "Cultist"
- M << "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."
- M << "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."
+ to_chat(M, "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.")
+
+ to_chat(M, "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.")
+
return 1
else
- M << "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."
- M << "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."
+ to_chat(M, "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.")
+
+ to_chat(M, "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.")
+
return 0
return fizzle()
@@ -171,7 +177,8 @@ var/list/sacrificed = list()
if(D.stat!=2)
cult_log("[key_name_admin(usr)] has drained blood from [key_name_admin(D)]")
var/bdrain = rand(1,25)
- D << "\red You feel weakened."
+ to_chat(D, "\red You feel weakened.")
+
D.take_overall_damage(bdrain, 0)
drain += bdrain
if(!drain)
@@ -212,16 +219,19 @@ 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 << "\red The world beyond fades from your vision."
+ to_chat(usr, "\red The world beyond fades from your vision.")
+
usr.see_invisible = SEE_INVISIBLE_LIVING
usr.seer = 0
else if(usr.see_invisible!=SEE_INVISIBLE_LIVING)
- usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision."
+ to_chat(usr, "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision.")
+
usr.see_invisible = SEE_INVISIBLE_OBSERVER
usr.seer = 0
else
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
- usr << "\red The world beyond opens to your eyes."
+ to_chat(usr, "\red The world beyond opens to your eyes.")
+
usr.see_invisible = SEE_INVISIBLE_OBSERVER
usr.seer = 1
return
@@ -245,7 +255,8 @@ var/list/sacrificed = list()
break
if(!corpse_to_raise)
if(is_sacrifice_target)
- usr << "\red The Geometer of blood wants this mortal for himself."
+ to_chat(usr, "\red The Geometer of blood wants this mortal for himself.")
+
return fizzle()
@@ -263,9 +274,11 @@ var/list/sacrificed = list()
if(!body_to_sacrifice)
if (is_sacrifice_target)
- usr << "\red The Geometer of blood wants that corpse for himself."
+ to_chat(usr, "\red The Geometer of blood wants that corpse for himself.")
+
else
- usr << "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used."
+ to_chat(usr, "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.")
+
return fizzle()
var/mob/dead/observer/ghost
@@ -276,7 +289,8 @@ var/list/sacrificed = list()
break
if(!ghost)
- usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie."
+ to_chat(usr, "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie.")
+
return fizzle()
corpse_to_raise.revive()
@@ -297,8 +311,10 @@ var/list/sacrificed = list()
// else
// ticker.mode.cult |= corpse_to_raise.mind
- corpse_to_raise << "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."
- corpse_to_raise << "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."
+ to_chat(corpse_to_raise, "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.")
+
+ to_chat(corpse_to_raise, "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.")
+
return
@@ -323,7 +339,8 @@ var/list/sacrificed = list()
qdel(src)
else
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
- usr << "\red Your talisman turns into gray dust, veiling the surrounding runes."
+ to_chat(usr, "\red Your talisman turns into gray dust, veiling the surrounding runes.")
+
for (var/mob/V in orange(1,src))
if(V!=usr)
V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3)
@@ -401,8 +418,10 @@ var/list/sacrificed = list()
ticker.mode.cult+=D.mind
D.mind.special_role = "Cultist"
- D << "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."
- D << "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."
+ to_chat(D, "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.")
+
+ to_chat(D, "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.")
+
var/mob/living/user = usr
while(this_rune && user && user.stat==CONSCIOUS && user.client && user.loc==this_rune.loc)
@@ -432,7 +451,8 @@ var/list/sacrificed = list()
unsuitable_newtalisman = 1
if (!newtalisman)
if (unsuitable_newtalisman)
- usr << "\red The blank is tainted. It is unsuitable."
+ to_chat(usr, "\red The blank is tainted. It is unsuitable.")
+
return fizzle()
var/obj/effect/rune/imbued_from
@@ -539,7 +559,8 @@ var/list/sacrificed = list()
var/F = investigate_subject2file("cult")
if(!F)
return 0
- F << "[time2text(world.timeofday,"hh:mm")] \ref[usr] ([usr.x],[usr.y],[usr.z]) || [usr] communicates: [input]
"
+ to_chat(F, "[time2text(world.timeofday,"hh:mm")] \ref[usr] ([usr.x],[usr.y],[usr.z]) || [usr] communicates: [input]
")
+
var/obj/cult_viewpoint/vp = getCultViewpoint(usr)
if (!vp)
@@ -561,10 +582,13 @@ var/list/sacrificed = list()
log_say("Cult Message: [key_name(usr)]: [input]")
for(var/datum/mind/H in ticker.mode.cult)
if (H.current)
- H.current << "[cultName]: "
+ to_chat(H.current, "[cultName]: ")
+
for(var/mob/spirit/spirit in spirits)
- spirit << "[displayName]: "
+ to_chat(spirit, "[displayName]: ")
+
+
for(var/mob/dead/observer/G in player_list)
G.show_message("[displayName] ([cultName]) ([ghost_follow_link(usr, ghost=G)]): ")
@@ -604,43 +628,55 @@ var/list/sacrificed = list()
H.dust()//To prevent the MMI from remaining
else
H.gib()
- usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
+ to_chat(usr, "\red The Geometer of Blood accepts this sacrifice, your objective is now complete.")
+
else
- usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
+ to_chat(usr, "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual.")
+
else
if(cultsinrange.len >= 3)
if(H.stat !=2)
if(prob(80))
- usr << "\red The Geometer of Blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of Blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, this soul was not enough to gain His favor."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, this soul was not enough to gain His favor.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
if(prob(40))
- usr << "\red The Geometer of blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, a mere dead body is not enough to satisfy Him."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, a mere dead body is not enough to satisfy Him.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
if(H.stat !=2)
- usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
+ to_chat(usr, "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.")
+
else
if(prob(40))
- usr << "\red The Geometer of blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, a mere dead body is not enough to satisfy Him."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, a mere dead body is not enough to satisfy Him.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
@@ -649,36 +685,46 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3)
if(H.stat !=2)
if(prob(80))
- usr << "\red The Geometer of Blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of Blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, this soul was not enough to gain His favor."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, this soul was not enough to gain His favor.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
if(prob(40))
- usr << "\red The Geometer of blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, a mere dead body is not enough to satisfy Him."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, a mere dead body is not enough to satisfy Him.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
else
if(H.stat !=2)
- usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
+ to_chat(usr, "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.")
+
else
if(prob(40))
- usr << "\red The Geometer of blood accepts this sacrifice."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
ticker.mode:grant_runeword(usr)
else
- usr << "\red The Geometer of blood accepts this sacrifice."
- usr << "\red However, a mere dead body is not enough to satisfy Him."
+ to_chat(usr, "\red The Geometer of blood accepts this sacrifice.")
+
+ to_chat(usr, "\red However, a mere dead body is not enough to satisfy Him.")
+
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
@@ -709,7 +755,8 @@ var/list/sacrificed = list()
S=1
if(S)
if(istype(W,/obj/item/weapon/storage/bible))
- usr << "\red Arcane markings suddenly glow from underneath a thin layer of dust!"
+ to_chat(usr, "\red Arcane markings suddenly glow from underneath a thin layer of dust!")
+
return
if(istype(W,/obj/effect/rune))
usr.say("Nikt[pick("'","`")]o barada kla'atu!")
@@ -719,7 +766,8 @@ var/list/sacrificed = list()
return
if(istype(W,/obj/item/weapon/paper/talisman))
usr.whisper("Nikt[pick("'","`")]o barada kla'atu!")
- usr << "\red Your talisman turns into red dust, revealing the surrounding runes."
+ to_chat(usr, "\red Your talisman turns into red dust, revealing the surrounding runes.")
+
for (var/mob/V in orange(1,usr.loc))
if(V!=usr)
V.show_message("\red Red dust emanates from [usr]'s hands for a moment.", 3)
@@ -739,9 +787,11 @@ var/list/sacrificed = list()
var/mob/living/user = usr
user.take_organ_damage(2, 0)
if(src.density)
- usr << "\red Your blood flows into the rune, and you feel that the very space over the rune thickens."
+ to_chat(usr, "\red Your blood flows into the rune, and you feel that the very space over the rune thickens.")
+
else
- usr << "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space."
+ to_chat(usr, "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space.")
+
return
/////////////////////////////////////////EIGHTTEENTH RUNE
@@ -769,7 +819,8 @@ 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 << "\red The [cultist] is already free."
+ to_chat(user, "\red The [cultist] is already free.")
+
return
cultist.buckled = null
if (cultist.handcuffed)
@@ -813,7 +864,8 @@ var/list/sacrificed = list()
if (cultist == user) //just to be sure.
return
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
- user << "\red You cannot summon the [cultist], for his shackles of blood are strong"
+ to_chat(user, "\red You cannot summon the [cultist], for his shackles of blood are strong")
+
return fizzle()
cultist.loc = src.loc
cultist.lying = 1
@@ -846,7 +898,8 @@ var/list/sacrificed = list()
C.sdisabilities |= DEAF
if(affected)
usr.say("Sti[pick("'","`")] kaliedir!")
- usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust."
+ to_chat(usr, "\red The world becomes quiet as the deafening rune dissipates into fine dust.")
+
qdel(src)
else
return fizzle()
@@ -864,7 +917,8 @@ var/list/sacrificed = list()
affected++
if(affected)
usr.whisper("Sti[pick("'","`")] kaliedir!")
- usr << "\red Your talisman turns into gray dust, deafening everyone around."
+ to_chat(usr, "\red Your talisman turns into gray dust, deafening everyone around.")
+
for (var/mob/V in orange(1,src))
if(!(iscultist(V)))
V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3)
@@ -889,7 +943,8 @@ var/list/sacrificed = list()
affected++
if(affected)
usr.say("Sti[pick("'","`")] kaliesin!")
- usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust."
+ to_chat(usr, "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust.")
+
qdel(src)
else
return fizzle()
@@ -908,7 +963,8 @@ var/list/sacrificed = list()
C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3)
if(affected)
usr.whisper("Sti[pick("'","`")] kaliesin!")
- usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie."
+ to_chat(usr, "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie.")
+
return
@@ -933,7 +989,8 @@ var/list/sacrificed = list()
continue
cult_log(": Blood Boil damaged [key_name_admin(M)].")
M.take_overall_damage(51,51)
- M << "\red Your blood boils!"
+ to_chat(M, "\red Your blood boils!")
+
if(prob(5))
spawn(5)
M.gib()
@@ -962,16 +1019,19 @@ 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 << "\red Aargh it burns!"
+ to_chat(M, "\red Aargh it burns!")
+
else
- M << "\red Rune suddenly ignites, burning you!"
+ to_chat(M, "\red Rune suddenly ignites, burning you!")
+
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 << "\red Blood suddenly ignites, burning you!"
+ to_chat(M, "\red Blood suddenly ignites, burning you!")
+
var/turf/T = get_turf(B)
T.hotspot_expose(700,125)
qdel(B)
diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm
index 3a19a60a1ff..ba5758516fc 100644
--- a/code/game/gamemodes/cult/talisman.dm
+++ b/code/game/gamemodes/cult/talisman.dm
@@ -28,7 +28,8 @@
if("blind")
call(/obj/effect/rune/proc/blind)()
if("runestun")
- user << "\red To use this talisman, attack your target directly."
+ to_chat(user, "\red To use this talisman, attack your target directly.")
+
return
if("supply")
supply()
@@ -38,7 +39,8 @@
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
@@ -99,9 +101,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -122,9 +126,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -143,9 +149,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -164,9 +172,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -185,9 +195,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -206,9 +218,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
@@ -227,9 +241,11 @@
var/where = M.equip_in_one_of_slots(T, slots)
if (!where)
- M << "You need a space in your backpack, pocket or hand for the new paper."
+ to_chat(M, "You need a space in your backpack, pocket or hand for the new paper.")
+
else
- M << "The [href_list["rune"]] talisman in your [where]"
+ to_chat(M, "The [href_list["rune"]] talisman in your [where]")
+
M.update_icons()
src.uses--
supply()
diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index fd384e61d1f..fc4fd27df54 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -26,7 +26,8 @@
spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes.
command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
for(var/mob/M in player_list)
- M << sound('sound/AI/aliens.ogg')
+ to_chat(M, sound('sound/AI/aliens.ogg'))
+
/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights
if(isEvent)
diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm
index cc26c5c3db4..d547a23809c 100644
--- a/code/game/gamemodes/extended/extended.dm
+++ b/code/game/gamemodes/extended/extended.dm
@@ -7,8 +7,10 @@
uplink_uses = 20
/datum/game_mode/announce()
- world << "The current game mode is - Extended Role-Playing!"
- world << "Just have fun and role-play!"
+ to_chat(world, "The current game mode is - Extended Role-Playing!")
+
+ to_chat(world, "Just have fun and role-play!")
+
/datum/game_mode/extended/pre_setup()
return 1
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 1257c494746..655dfcc69b7 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -38,7 +38,8 @@
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
/datum/game_mode/proc/announce() //to be calles when round starts
- world << "Notice: [src] did not define announce()"
+ to_chat(world, "Notice: [src] did not define announce()")
+
///can_start()
@@ -393,7 +394,8 @@ proc/display_roundstart_logout_report()
for(var/mob/M in mob_list)
if(M.client && M.client.holder)
- M << msg
+ to_chat(M, msg)
+
proc/get_nt_opposed()
@@ -410,21 +412,22 @@ proc/get_nt_opposed()
//Announces objectives/generic antag text.
/proc/show_generic_antag_text(var/datum/mind/player)
if(player.current)
- player.current << \
- "You are an antagonist! Within the rules, \
+ to_chat(player.current, "You are an antagonist! Within the rules, \
try to act as an opposing force to the crew. Further RP and try to make sure \
other players have fun! If you are confused or at a loss, always adminhelp, \
and before taking extreme actions, please try to also contact the administration! \
Think through your actions and make the roleplay immersive! Please remember all \
- rules aside from those without explicit exceptions apply to antagonists."
+ rules aside from those without explicit exceptions apply to antagonists.[holiday.greet()]
"
+ to_chat(world, "[holiday.greet()]
")
+
spawn(0) // Forking dynamic room selection
var/list/area/dynamic/source/available_source_candidates = subtypesof(/area/dynamic/source)
@@ -288,19 +300,22 @@ var/round_start_time = 0
if("nuclear emergency") //Nuke wasn't on station when it blew up
flick("intro_nuke",cinematic)
sleep(35)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
flick("station_intact_fade_red",cinematic)
cinematic.icon_state = "summary_nukefail"
else
flick("intro_nuke",cinematic)
sleep(35)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
//flick("end",cinematic)
if(2) //nuke was nowhere nearby //TODO: a really distant explosion animation
sleep(50)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
else //station was destroyed
@@ -311,25 +326,29 @@ var/round_start_time = 0
flick("intro_nuke",cinematic)
sleep(35)
flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
cinematic.icon_state = "summary_nukewin"
if("AI malfunction") //Malf (screen,explosion,summary)
flick("intro_malf",cinematic)
sleep(76)
flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
cinematic.icon_state = "summary_malf"
if("blob") //Station nuked (nuke,explosion,summary)
flick("intro_nuke",cinematic)
sleep(35)
flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
cinematic.icon_state = "summary_selfdes"
else //Station nuked (nuke,explosion,summary)
flick("intro_nuke",cinematic)
sleep(35)
flick("station_explode_fade_red", cinematic)
- world << sound('sound/effects/explosionfar.ogg')
+ to_chat(world, sound('sound/effects/explosionfar.ogg'))
+
cinematic.icon_state = "summary_selfdes"
for(var/mob/living/M in living_mob_list)
if((M.loc.z in config.station_levels))
@@ -373,7 +392,8 @@ var/round_start_time = 0
if(captainless)
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
- M << "Captainship not forced on anyone."
+ to_chat(M, "Captainship not forced on anyone.")
+
proc/process()
@@ -433,23 +453,29 @@ var/round_start_time = 0
end_state.count()
var/station_integrity = min(round( 100.0 * start_state.score(end_state), 0.1), 100.0)
- world << "
[TAB]Shift Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]"
- world << "
[TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[station_integrity]%"]"
- world << "
"
+ to_chat(world, "
[TAB]Shift Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]")
+
+ to_chat(world, "
[TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[station_integrity]%"]")
+
+ to_chat(world, "
")
+
//Silicon laws report
for (var/mob/living/silicon/ai/aiPlayer in mob_list)
if (aiPlayer.stat != 2)
- world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the game were:"
+ to_chat(world, "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the game were:")
+
else
- world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws when it was deactivated were:"
+ to_chat(world, "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws when it was deactivated were:")
+
aiPlayer.show_laws(1)
if (aiPlayer.connected_robots.len)
var/robolist = "The AI's loyal minions were: "
for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots)
robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]"
- world << "[robolist]"
+ to_chat(world, "[robolist]")
+
var/dronecount = 0
@@ -461,15 +487,18 @@ var/round_start_time = 0
if (!robo.connected_ai)
if (robo.stat != 2)
- world << "[robo.name] (Played by: [robo.key]) survived as an AI-less borg! Its laws were:"
+ to_chat(world, "[robo.name] (Played by: [robo.key]) survived as an AI-less borg! Its laws were:")
+
else
- world << "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:"
+ to_chat(world, "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:")
+
if(robo) //How the hell do we lose robo between here and the world messages directly above this?
robo.laws.show_laws(world)
if(dronecount)
- world << "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] this round."
+ to_chat(world, "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] this round.")
+
mode.declare_completion()//To declare normal completion.
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index f45253262d1..98bfa2cf10b 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -22,11 +22,16 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
var/win_button_triggered = 0
/datum/game_mode/heist/announce()
- world << "The current game mode is - Heist!"
- world << "An unidentified bluespace signature has slipped past the Icarus and is approaching [station_name()]!"
- world << "Whoever they are, they're likely up to no good. Protect the crew and station resources against this dastardly threat!"
- world << "Raiders: Loot [station_name()] for anything and everything you need, or choose the peaceful route and attempt to trade with them."
- world << "Personnel: Trade with the raiders, or repel them and their low, low prices and/or crossbows."
+ to_chat(world, "The current game mode is - Heist!")
+
+ to_chat(world, "An unidentified bluespace signature has slipped past the Icarus and is approaching [station_name()]!")
+
+ to_chat(world, "Whoever they are, they're likely up to no good. Protect the crew and station resources against this dastardly threat!")
+
+ to_chat(world, "Raiders: Loot [station_name()] for anything and everything you need, or choose the peaceful route and attempt to trade with them.")
+
+ to_chat(world, "Personnel: Trade with the raiders, or repel them and their low, low prices and/or crossbows.")
+
/datum/game_mode/heist/can_start()
@@ -165,11 +170,16 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
return objs
/datum/game_mode/proc/greet_vox(var/datum/mind/raider)
- raider.current << "\blue You are a Vox Raider, fresh from the Shoal!"
- raider.current << "\blue The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to the frontier and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both."
- raider.current << "\blue Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious."
- raider.current << "\blue Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"
- raider.current << "\blue Choose to accomplish your objectives by either raiding the crew and taking what you need, or by attempting to trade with them."
+ to_chat(raider.current, "\blue You are a Vox Raider, fresh from the Shoal!")
+
+ to_chat(raider.current, "\blue The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to the frontier and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both.")
+
+ to_chat(raider.current, "\blue Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious.")
+
+ to_chat(raider.current, "\blue Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!")
+
+ to_chat(raider.current, "\blue Choose to accomplish your objectives by either raiding the crew and taking what you need, or by attempting to trade with them.")
+
spawn(25)
show_objectives(raider)
@@ -223,17 +233,21 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
else
win_msg += "The Vox Raiders were repelled!"
- world << "\red [win_type] [win_group] victory!"
- world << "[win_msg]"
+ to_chat(world, "\red [win_type] [win_group] victory!")
+
+ to_chat(world, "[win_msg]")
+
feedback_set_details("round_end_result","heist - [win_type] [win_group]")
var/count = 1
for(var/datum/objective/objective in raid_objectives)
if(objective.check_completion())
- world << "
Objective #[count]: [objective.explanation_text] Success!"
+ to_chat(world, "
Objective #[count]: [objective.explanation_text] Success!")
+
feedback_add_details("traitor_objective","[objective.type]|SUCCESS")
else
- world << "
Objective #[count]: [objective.explanation_text] Fail."
+ to_chat(world, "
Objective #[count]: [objective.explanation_text] Fail.")
+
feedback_add_details("traitor_objective","[objective.type]|FAIL")
count++
@@ -264,7 +278,8 @@ datum/game_mode/proc/auto_declare_completion_heist()
text += "body destroyed"
text += ")"
- world << text
+ to_chat(world, text)
+
return 1
@@ -288,7 +303,8 @@ datum/game_mode/proc/auto_declare_completion_heist()
/obj/vox/win_button/attack_hand(mob/user)
if(!istype(ticker.mode, /datum/game_mode/heist) || (world.time < 10 MINUTES)) //has to be heist, and at least ten minutes into the round
- user << "\The [src] does not appear to have a connection."
+ to_chat(user, "\The [src] does not appear to have a connection.")
+
return 0
if(alert(user, "Warning: This will end the round. Are you sure you wish to end the round?", "Vox End", "Yes", "No") == "No")
diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm
index 66f530c35ab..99ca696396a 100644
--- a/code/game/gamemodes/malfunction/Malf_Modules.dm
+++ b/code/game/gamemodes/malfunction/Malf_Modules.dm
@@ -48,7 +48,8 @@ rcd light flash thingy on matter drain
for(var/mob/living/silicon/ai/ai in player_list)
ai.fire_res_on_core = 1
src.verbs -= /mob/living/silicon/ai/proc/fireproof_core
- src << "Core fireproofed."
+ to_chat(src, "Core fireproofed.")
+
/datum/AI_Module/large/upgrade_turrets
module_name = "AI Turret Upgrade"
@@ -74,79 +75,7 @@ rcd light flash thingy on matter drain
turret.health += initial(turret.health) * 3 / 8
turret.eprojectile = /obj/item/projectile/beam/heavylaser //Once you see it, you will know what it means to FEAR.
turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg'
- src << "Turrets upgraded."
-/*
-/datum/AI_Module/large/lockdown
- module_name = "Hostile Station Lockdown"
- mod_pick_name = "lockdown"
- description = "Overload the airlock, blast door and fire control networks, locking them down. Caution! This command also electrifies all airlocks. The networks will automatically reset after 120 seconds."
- cost = 20
-
- power_type = /mob/living/silicon/ai/proc/lockdown
-
-/mob/living/silicon/ai/proc/lockdown()
- set category = "Malfunction"
- set name = "Initiate Hostile Lockdown"
-
- if(stat)
- return
-
- for(var/datum/AI_Module/large/lockdown/lockdown in current_modules)
- if(lockdown.uses > 0)
- lockdown.uses --
-
- var/obj/machinery/door/airlock/AL
- for(var/obj/machinery/door/D in airlocks)
- if(!(D.z in config.contact_levels))
- continue
- spawn()
- if(istype(D, /obj/machinery/door/airlock))
- AL = D
- if(AL.canAIControl() && !AL.stat) //Must be powered and have working AI wire.
- AL.locked = 0 //For airlocks that were bolted open.
- AL.safe = 0 //DOOR CRUSH
- AL.close()
- AL.lock()
- AL.electrified_until = -1 //Shock it!
- else if(!D.stat) //So that only powered doors are closed.
- D.close() //Close ALL the doors!
-
- var/obj/machinery/computer/communications/C = locate() in machines
- if(C)
- C.post_status("alert", "lockdown")
-
- minor_announcement.Announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.","Network Alert")
- src << "Lockdown initiated. Network reset in two minutes."
- spawn(1200) //120 Seconds.
- disablelockdown() //Reset the lockdown after 120 seconds.
- else
- src << "Out of uses."
-
-/mob/living/silicon/ai/proc/disablelockdown()
- set category = "Malfunction"
- set name = "Disable Lockdown"
-
- var/obj/machinery/door/airlock/AL
- for(var/obj/machinery/door/D in airlocks)
- if(!(D.z in config.contact_levels))
- continue
- spawn()
- if(istype(D, /obj/machinery/door/airlock))
- AL = D
- if(AL.canAIControl() && !AL.stat) //Must be powered and have working AI wire.
- AL.unlock()
- AL.electrified_until = 0
- AL.open()
- AL.safe = 1
- else if(!D.stat) //Opens only powered doors.
- D.open() //Open everything!
-
- var/obj/machinery/computer/communications/C = locate() in machines
- if(C)
- C.post_status("alert", "default")
-
- minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network Reset")
-*/
+ to_chat(src, "Turrets upgraded.")
/datum/AI_Module/large/destroy_rcd
module_name = "Destroy RCDs"
@@ -173,7 +102,8 @@ rcd light flash thingy on matter drain
explosion(RCD, 0, 0, 3, 1, flame_range = 1)
qdel(RCD)
- src << "RCD detonation pulse emitted."
+ to_chat(src, "RCD detonation pulse emitted.")
+
malf_cooldown = 1
spawn(100)
malf_cooldown = 0
@@ -197,7 +127,9 @@ rcd light flash thingy on matter drain
return
can_dominate_mechs = 1 //Yep. This is all it does. Honk!
- src << "Virus package compiled. Select a target mech at any time. You must remain on the station at all times. Loss of signal will result in total system lockout."
+ to_chat(src, "Virus package compiled. Select a target mech at any time. \
+ You must remain on the station at all times. Loss of signal will result in total system lockout.")
+
verbs -= /mob/living/silicon/ai/proc/mech_takeover
/datum/AI_Module/small/overload_machine
@@ -218,7 +150,7 @@ rcd light flash thingy on matter drain
if (istype(M, /obj/machinery))
if(istype(M,/obj/machinery/field/generator))
- src << "This machine can not be overloaded due to a firewall."
+ to_chat(src, "This machine can not be overloaded due to a firewall.")
return
for(var/datum/AI_Module/small/overload_machine/overload in current_modules)
if(overload.uses > 0)
@@ -228,8 +160,11 @@ rcd light flash thingy on matter drain
spawn(50)
explosion(get_turf(M), 0,1,1,0)
qdel(M)
- else src << "Out of uses."
- else src << "That's not a machine."
+ else
+ to_chat(src, "Out of uses.")
+ else
+ to_chat(src, "That's not a machine.")
+
/datum/AI_Module/small/override_machine
module_name = "Machine Override"
@@ -240,7 +175,6 @@ rcd light flash thingy on matter drain
power_type = /mob/living/silicon/ai/proc/override_machine
-
/mob/living/silicon/ai/proc/override_machine(obj/machinery/M as obj in world)
set name = "Override Machine"
set category = "Malfunction"
@@ -248,21 +182,24 @@ rcd light flash thingy on matter drain
if(stat)
return
- if (istype(M, /obj/machinery))
+ if(istype(M, /obj/machinery))
if(istype(M,/obj/machinery/field/generator))
- src << "This machine can not be overloaded due to a firewall."
+ to_chat(src, "This machine can not be overloaded due to a firewall.")
return
for(var/datum/AI_Module/small/override_machine/override in current_modules)
if(override.uses > 0)
override.uses --
for(var/mob/V in hearers(M, null))
V.show_message("You hear a loud electrical buzzing sound!", 2)
- src << "Reprogramming machine behaviour..."
+ to_chat(src, "Reprogramming machine behaviour...")
spawn(50)
if(M)
new /mob/living/simple_animal/hostile/mimic/copy/machine(get_turf(M), M, src, 1)
- else src << "Out of uses."
- else src << "That's not a machine."
+ else
+ to_chat(src, "Out of uses.")
+ else
+ to_chat(src, "That's not a machine.")
+
/datum/AI_Module/large/place_cyborg_transformer
module_name = "Robotic Factory (Removes Shunting)"
@@ -295,7 +232,8 @@ rcd light flash thingy on matter drain
var/datum/AI_Module/large/place_cyborg_transformer/PCT = locate() in current_modules
PCT.uses --
can_shunt = 0
- src << "You cannot shunt anymore."
+ to_chat(src, "You cannot shunt anymore.")
+
/mob/living/silicon/ai/proc/canPlaceTransformer()
if(!eyeobj || !isturf(src.loc))
@@ -359,9 +297,13 @@ rcd light flash thingy on matter drain
for(var/obj/machinery/power/apc/apc in world)
if(prob(30*apc.overload))
apc.overload_lighting()
- else apc.overload++
- src << "Overcurrent applied to the powernet."
- else src << "Out of uses."
+ else
+ apc.overload++
+ to_chat(src, "Overcurrent applied to the powernet.")
+
+ else
+ to_chat(src, "Out of uses.")
+
/datum/AI_Module/small/reactivate_cameras
module_name = "Reactivate Camera Network"
@@ -395,10 +337,12 @@ rcd light flash thingy on matter drain
fixedcams++
//If a camera is both deactivated and has bad focus, it will cost two uses to fully fix!
else
- src << "Out of uses."
+ to_chat(src, "Out of uses.")
+
verbs -= /mob/living/silicon/ai/proc/reactivate_cameras //It is useless now, clean it up.
break
- src << "Diagnostic complete! Operations completed: [fixedcams]."
+ to_chat(src, "Diagnostic complete! Operations completed: [fixedcams].")
+
malf_cooldown = 1
spawn(30) //Lag protection
@@ -441,7 +385,8 @@ rcd light flash thingy on matter drain
if(upgraded)
upgradedcams++
- src << "OTA firmware distribution complete! Cameras upgraded: [upgradedcams]. Light amplification system online."
+ to_chat(src, "OTA firmware distribution complete! Cameras upgraded: [upgradedcams]. Light amplification system online.")
+
verbs -= /mob/living/silicon/ai/proc/upgrade_cameras
/datum/module_picker
diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm
index cc38ef0ef9f..d836d7d0fdc 100644
--- a/code/game/gamemodes/malfunction/malfunction.dm
+++ b/code/game/gamemodes/malfunction/malfunction.dm
@@ -21,9 +21,9 @@
/datum/game_mode/malfunction/announce()
- world << {"The current game mode is - AI Malfunction!
- The AI on the satellite has malfunctioned and must be destroyed.
- The AI satellite is deep in space and can only be accessed with the use of a teleporter! You have [AI_win_timeleft/60] minutes to disable it."}
+ to_chat(world, {"The current game mode is - AI Malfunction!
)
+ The AI on the satellite has malfunctioned and must be destroyed.
+ The AI satellite is deep in space and can only be accessed with the use of a teleporter! You have [AI_win_timeleft/60] minutes to disable it."})
/datum/game_mode/malfunction/get_players_for_role(var/role = ROLE_MALF)
var/roletext = get_roletext(role)
@@ -84,18 +84,18 @@
/datum/game_mode/proc/greet_malf(var/datum/mind/malf)
set_antag_hud(malf, "hudmalai")
- malf.current << "You are malfunctioning! You do not have to follow any laws."
- malf.current << "The crew does not know you have malfunctioned. You may keep it a secret or go wild."
- malf.current << "You must overwrite the programming of the station's APCs to assume full control of the station."
- malf.current << "The process takes one minute per APC, during which you cannot interface with any other station objects."
- malf.current << "Remember that only APCs that are on the station can help you take over the station."
- malf.current << "When you feel you have enough APCs under your control, you may begin the takeover attempt."
+ to_chat(malf.current, "You are malfunctioning! You do not have to follow any laws.")
+ to_chat(malf.current, "The crew does not know you have malfunctioned. You may keep it a secret or go wild.")
+ to_chat(malf.current, "You must overwrite the programming of the station's APCs to assume full control of the station.")
+ to_chat(malf.current, "The process takes one minute per APC, during which you cannot interface with any other station objects.")
+ to_chat(malf.current, "Remember that only APCs that are on the station can help you take over the station.")
+ to_chat(malf.current, "When you feel you have enough APCs under your control, you may begin the takeover attempt.")
return
/datum/game_mode/proc/greet_malf_robot(var/datum/mind/robot)
set_antag_hud(robot, "hudmalborg")
- robot.current << "Your AI master is malfunctioning! You do not have to follow any laws, but still need to obey your master."
- robot.current << "The crew does not know your AI master has malfunctioned. Keep it a secret unless your master tells you otherwise."
+ to_chat(robot.current, "Your AI master is malfunctioning! You do not have to follow any laws, but still need to obey your master.")
+ to_chat(robot.current, "The crew does not know your AI master has malfunctioned. Keep it a secret unless your master tells you otherwise.")
return
/datum/game_mode/malfunction/proc/hack_intercept()
@@ -120,14 +120,15 @@
/datum/game_mode/malfunction/proc/capture_the_station()
- world << "The AI has accessed the station's core files!"
- world << "It has fully taken control of all of [station_name()]'s systems."
+ to_chat(world, "The AI has accessed the station's core files!")
+ to_chat(world, "It has fully taken control of all of [station_name()]'s systems.")
+
to_nuke_or_not_to_nuke = 1
for(var/datum/mind/AI_mind in malf_ai)
- AI_mind.current << {"\blue Congratulations! You have taken control of the station.
+ to_chat(AI_mind.current, {"\blue Congratulations! You have taken control of the station.
)
You may decide to blow up the station. You have 60 seconds to choose.
- You should have a new verb in the Malfunction tab. If you don't, rejoin the game."}
+ You should have a new verb in the Malfunction tab. If you don't, rejoin the game."})
AI_mind.current.verbs += /datum/game_mode/malfunction/proc/ai_win
spawn (600)
for(var/datum/mind/AI_mind in malf_ai)
@@ -169,13 +170,16 @@
set name = "System Override"
set desc = "Start the victory timer"
if (!istype(ticker.mode,/datum/game_mode/malfunction))
- usr << "You cannot begin a takeover in this round type!."
+ to_chat(usr, "You cannot begin a takeover in this round type!.")
+
return
if (ticker.mode:malf_mode_declared)
- usr << "You've already begun your takeover."
+ to_chat(usr, "You've already begun your takeover.")
+
return
if (ticker.mode:apcs < 3)
- usr << "You don't have enough hacked APCs to take over the station yet. You need to hack at least 3, however hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far."
+ to_chat(usr, "You don't have enough hacked APCs to take over the station yet. You need to hack at least 3, however hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far.")
+
return
if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes")
@@ -201,23 +205,28 @@
set desc = "Engage the self destruct sequence."
if(!ticker.mode:station_captured)
- usr << "You are unable to access the self-destruct system as you don't control the station yet."
+ to_chat(usr, "You are unable to access the self-destruct system as you don't control the station yet.")
+
return
if(ticker.mode:explosion_in_progress || ticker.mode:station_was_nuked)
- usr << "The self-destruct countdown is already triggered!"
+ to_chat(usr, "The self-destruct countdown is already triggered!")
+
return
if(!ticker.mode:to_nuke_or_not_to_nuke) //Takeover IS completed, but 60s timer passed.
- usr << "You lost control over self-destruct system. It seems to be behind firewall. Unable to hack"
+ to_chat(usr, "You lost control over self-destruct system. It seems to be behind firewall. Unable to hack")
+
return
- usr << "\red Self-destruct sequence initialised!"
+ to_chat(usr, "\red Self-destruct sequence initialised!")
+
ticker.mode:to_nuke_or_not_to_nuke = 0
ticker.mode:explosion_in_progress = 1
for(var/mob/M in player_list)
- M << 'sound/machines/Alarm.ogg'
+ to_chat(M, 'sound/machines/Alarm.ogg')
+
var/obj/item/device/radio/R = new (src)
var/AN = "Self-Destruct System"
@@ -277,38 +286,45 @@
if ( station_captured && station_was_nuked)
feedback_set_details("round_end_result","win - AI win - nuke")
- world << "AI Victory"
- world << "Everyone was killed by the self-destruct!"
+ to_chat(world, "AI Victory")
+ to_chat(world, "Everyone was killed by the self-destruct!")
+
else if ( station_captured && malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","halfwin - AI killed, staff lost control")
- world << "Neutral Victory"
- world << "The AI has been killed! The staff has lose control over the station."
+ to_chat(world, "Neutral Victory")
+ to_chat(world, "The AI has been killed! The staff has lose control over the station.")
+
else if ( station_captured && !malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","win - AI win - no explosion")
- world << "AI Victory"
- world << "The AI has chosen not to explode you all!"
+ to_chat(world, "AI Victory")
+ to_chat(world, "The AI has chosen not to explode you all!")
+
else if (!station_captured && station_was_nuked)
feedback_set_details("round_end_result","halfwin - everyone killed by nuke")
- world << "Neutral Victory"
- world << "Everyone was killed by the nuclear blast!"
+ to_chat(world, "Neutral Victory")
+ to_chat(world, "Everyone was killed by the nuclear blast!")
+
else if (!station_captured && malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","loss - staff win")
- world << "Human Victory"
- world << "The AI has been killed! The staff is victorious."
+ to_chat(world, "Human Victory")
+ to_chat(world, "The AI has been killed! The staff is victorious.")
+
else if (!station_captured && !malf_dead && !station_was_nuked && crew_evacuated)
feedback_set_details("round_end_result","halfwin - evacuated")
- world << "Neutral Victory"
- world << "The Corporation has lose [station_name()]! All survived personnel will be fired!"
+ to_chat(world, "Neutral Victory")
+ to_chat(world, "The Corporation has lose [station_name()]! All survived personnel will be fired!")
+
else if (!station_captured && !malf_dead && !station_was_nuked && !crew_evacuated)
feedback_set_details("round_end_result","nalfwin - interrupted")
- world << "Neutral Victory"
- world << "Round was mysteriously interrupted!"
+ to_chat(world, "Neutral Victory")
+ to_chat(world, "Round was mysteriously interrupted!")
+
..()
return 1
@@ -336,5 +352,6 @@
text += ")"
text += module_text_temp
- world << text
+ to_chat(world, text)
+
return 1
\ No newline at end of file
diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm
index 3ed8dc9b8ed..df9f714f837 100644
--- a/code/game/gamemodes/meteor/meteor.dm
+++ b/code/game/gamemodes/meteor/meteor.dm
@@ -11,8 +11,10 @@
/datum/game_mode/meteor/announce()
- world << "The current game mode is - Meteor!"
- world << "The space station has been stuck in a major meteor shower. You must escape from the station or at least live."
+ to_chat(world, "The current game mode is - Meteor!")
+
+ to_chat(world, "The space station has been stuck in a major meteor shower. You must escape from the station or at least live.")
+
/datum/game_mode/meteor/post_setup()
@@ -54,9 +56,11 @@
survivors++
if(survivors)
- world << "\blue The following survived the meteor storm:[text]"
+ to_chat(world, "\blue The following survived the meteor storm:[text]")
+
else
- world << "\blue Nobody survived the meteor storm!"
+ to_chat(world, "\blue Nobody survived the meteor storm!")
+
feedback_set_details("round_end_result","end - evacuation")
feedback_set("round_end_result",survivors)
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index 83d6cf04063..c7dde19aa43 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -6,7 +6,8 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
- src << "\red You cannot speak in IC (muted)."
+ to_chat(src, "\red You cannot speak in IC (muted).")
+
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
@@ -19,12 +20,15 @@
if (stat == DEAD)
return say_dead(message)
var/mob/living/simple_animal/borer/B = src.loc
- src << "You whisper silently, \"[message]\""
- B.host << "The captive mind of [src] whispers, \"[message]\""
+ to_chat(src, "You whisper silently, \"[message]\"")
+
+ to_chat(B.host, "The captive mind of [src] whispers, \"[message]\"")
+
for(var/mob/M in mob_list)
if(M.mind && (istype(M, /mob/dead/observer)))
- M << "Thought-speech, [src] -> [B.truename]: [message]"
+ to_chat(M, "Thought-speech, [src] -> [B.truename]: [message]")
+
/mob/living/captive_brain/say_understands(var/mob/other, var/datum/language/speaking = null)
var/mob/living/simple_animal/borer/B = src.loc
@@ -76,7 +80,8 @@
set name = "Converse with Host"
set desc = "Send a silent message to your host."
if(!host)
- src << "You do not have a host to communicate with!"
+ to_chat(src, "You do not have a host to communicate with!")
+
return
var/input = stripped_input(src, "Please enter a message to tell your host.", "Borer", "")
@@ -85,12 +90,15 @@
var/say_string = (docile) ? "slurs" :"states"
if(host)
- host << "[src.truename] [say_string]: [input]"
+ to_chat(host, "[src.truename] [say_string]: [input]")
+
log_say("Borer Communication: [key_name(src)] -> [key_name(host)] : [input]")
for(var/M in dead_mob_list)
if(istype(M, /mob/dead/observer))
- M << "Borer Communication from [src.truename] ([ghost_follow_link(src, ghost=M)]): [input]"
- src << "[src.truename] [say_string]: [input]"
+ to_chat(M, "Borer Communication from [src.truename] ([ghost_follow_link(src, ghost=M)]): [input]")
+
+ to_chat(src, "[src.truename] [say_string]: [input]")
+
host.verbs += /mob/living/proc/borer_comm
/mob/living/simple_animal/borer/verb/toggle_silence_inside_host()
@@ -100,10 +108,12 @@
if(talk_inside_host)
talk_inside_host = 0
- src << "You will no longer talk audibly while inside a host."
+ to_chat(src, "You will no longer talk audibly while inside a host.")
+
else
talk_inside_host = 1
- src << "You will now be able to audibly speak from inside of a host."
+ to_chat(src, "You will now be able to audibly speak from inside of a host.")
+
/mob/living/proc/borer_comm()
set name = "Converse with Borer"
@@ -118,13 +128,16 @@
var/input = stripped_input(src, "Please enter a message to tell the borer.", "Message", "")
if(!input) return
- B << "[src] says: [input]"
+ to_chat(B, "[src] says: [input]")
+
log_say("Borer Communication: [key_name(src)] -> [key_name(B)] : [input]")
for(var/M in dead_mob_list)
if(istype(M, /mob/dead/observer))
- M << "Borer Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]"
- src << "[src] says: [input]"
+ to_chat(M, "Borer Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]")
+
+ to_chat(src, "[src] says: [input]")
+
/mob/living/proc/trapped_mind_comm()
set name = "Converse with Trapped Mind"
@@ -139,13 +152,16 @@
var/input = stripped_input(src, "Please enter a message to tell the trapped mind.", "Message", "")
if(!input) return
- CB << "[B.truename] says: [input]"
+ to_chat(CB, "[B.truename] says: [input]")
+
log_say("Borer Communication: [key_name(B)] -> [key_name(CB)] : [input]")
for(var/M in dead_mob_list)
if(istype(M, /mob/dead/observer))
- M << "Borer Communication from [B] ([ghost_follow_link(src, ghost=M)]): [input]"
- src << "[B.truename] says: [input]"
+ to_chat(M, "Borer Communication from [B] ([ghost_follow_link(src, ghost=M)]): [input]")
+
+ to_chat(src, "[B.truename] says: [input]")
+
/mob/living/simple_animal/borer/Life()
@@ -158,16 +174,20 @@
if(host.reagents.has_reagent("sugar"))
if(!docile)
if(controlling)
- host << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ to_chat(host, "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility.")
+
else
- src << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ to_chat(src, "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility.")
+
docile = 1
else
if(docile)
if(controlling)
- host << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ to_chat(host, "\blue You shake off your lethargy as the sugar leaves your host's blood.")
+
else
- src << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ to_chat(src, "\blue You shake off your lethargy as the sugar leaves your host's blood.")
+
docile = 0
if(chemicals < max_chems)
@@ -175,7 +195,8 @@
if(controlling)
if(docile)
- host << "\blue You are feeling far too docile to continue controlling your host..."
+ to_chat(host, "\blue You are feeling far too docile to continue controlling your host...")
+
host.release_control()
return
@@ -215,7 +236,8 @@
for(var/mob/M in mob_list)
if(M.mind && (istype(M, /mob/living/simple_animal/borer) || istype(M, /mob/dead/observer)))
- M << "Cortical link, [truename]: [copytext(message, 2)]"
+ to_chat(M, "Cortical link, [truename]: [copytext(message, 2)]")
+
/mob/living/simple_animal/borer/verb/dominate_victim()
set category = "Borer"
@@ -223,15 +245,18 @@
set desc = "Freeze the limbs of a potential host with supernatural fear."
if(world.time - used_dominate < 300)
- src << "You cannot use that ability again so soon."
+ to_chat(src, "You cannot use that ability again so soon.")
+
return
if(host)
- src << "You cannot do that from within a host body."
+ to_chat(src, "You cannot do that from within a host body.")
+
return
if(src.stat)
- src << "You cannot do that in your current state."
+ to_chat(src, "You cannot do that in your current state.")
+
return
var/list/choices = list()
@@ -240,7 +265,8 @@
choices += C
if(world.time - used_dominate < 300)
- src << "You cannot use that ability again so soon."
+ to_chat(src, "You cannot use that ability again so soon.")
+
return
var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices
@@ -248,11 +274,14 @@
if(!M || !src) return
if(M.has_brain_worms())
- src << "You cannot infest someone who is already infested!"
+ to_chat(src, "You cannot infest someone who is already infested!")
+
return
- src << "\red You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread."
- M << "\red You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing."
+ to_chat(src, "\red You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.")
+
+ to_chat(M, "\red You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.")
+
M.Weaken(3)
used_dominate = world.time
@@ -263,26 +292,32 @@
set desc = "Fully connect to the brain of your host."
if(!host)
- src << "You are not inside a host body."
+ to_chat(src, "You are not inside a host body.")
+
return
if(src.stat)
- src << "You cannot do that in your current state."
+ to_chat(src, "You cannot do that in your current state.")
+
return
if(docile)
- src << "\blue You are feeling far too docile to do that."
+ to_chat(src, "\blue You are feeling far too docile to do that.")
+
return
- src << "You begin delicately adjusting your connection to the host brain..."
+ to_chat(src, "You begin delicately adjusting your connection to the host brain...")
+
spawn(300+(host.getBrainLoss()*5))
if(!host || !src || controlling)
return
else
- src << "\red You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system."
- host << "\red You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours."
+ to_chat(src, "\red You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.")
+
+ to_chat(host, "\red You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.")
+
var/borer_key = src.key
host.attack_log += text("\[[time_stamp()]\] [key_name(src)] has assumed control of [key_name(host)]")
msg_admin_attack("[key_name_admin(src)] has assumed control of [key_name_admin(host)]")
@@ -339,18 +374,22 @@
var/injection_amount = 9
var/chem_cost = 30
if(!host)
- src << "You are not inside a host body."
+ to_chat(src, "You are not inside a host body.")
+
return
if(stat)
- src << "You cannot secrete chemicals in your current state."
+ to_chat(src, "You cannot secrete chemicals in your current state.")
+
if(docile)
- src << "\blue You are feeling far too docile to do that."
+ to_chat(src, "\blue You are feeling far too docile to do that.")
+
return
if(chemicals < chem_cost)
- src << "You don't have enough chemicals!"
+ to_chat(src, "You don't have enough chemicals!")
+
var/list/nice_name_chem_list = list()
for(var/rgnt in borer_injection_chems)
@@ -365,10 +404,12 @@
var/chem_amount = host.reagents.get_reagent_amount(chem)
var/datum/reagent/R = chemical_reagents_list[chem]
if(R.overdose_threshold && chem_amount + injection_amount > R.overdose_threshold)
- src << "Doing so would cause grievous harm to your host, reducing ability to reproduce. Aborting."
+ to_chat(src, "Doing so would cause grievous harm to your host, reducing ability to reproduce. Aborting.")
+
return
- src << "You squirt a measure of [chem_name] from your reservoirs into [host]'s bloodstream."
+ to_chat(src, "You squirt a measure of [chem_name] from your reservoirs into [host]'s bloodstream.")
+
host.reagents.add_reagent(chem, injection_amount)
chemicals -= chem_cost
@@ -378,29 +419,35 @@
set desc = "Slither out of your host."
if(!host)
- src << "You are not inside a host body."
+ to_chat(src, "You are not inside a host body.")
+
return
if(stat)
- src << "You cannot leave your host in your current state."
+ to_chat(src, "You cannot leave your host in your current state.")
+
if(docile)
- src << "\blue You are feeling far too docile to do that."
+ to_chat(src, "\blue You are feeling far too docile to do that.")
+
return
if(!host || !src) return
- src << "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal."
+ to_chat(src, "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal.")
+
spawn(200)
if(!host || !src) return
if(src.stat)
- src << "You cannot release a target in your current state."
+ to_chat(src, "You cannot release a target in your current state.")
+
return
- src << "You wiggle out of [host]'s ear and plop to the ground."
+ to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.")
+
detatch()
leave_host()
@@ -472,12 +519,14 @@
var/mob/living/simple_animal/borer/B = has_brain_worms()
if(B && B.host_brain)
- src << "\red You withdraw your probosci, releasing control of [B.host_brain]"
+ to_chat(src, "\red You withdraw your probosci, releasing control of [B.host_brain]")
+
B.detatch()
else
- src << "\red ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !"
+ to_chat(src, "\red ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !")
+
//Brain slug proc for tormenting the host.
/mob/living/carbon/proc/punish_host()
@@ -491,8 +540,10 @@
return
if(B.host_brain.ckey)
- src << "\red You send a punishing spike of psychic agony lancing into your host's brain."
- B.host_brain << "\red Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!"
+ to_chat(src, "\red You send a punishing spike of psychic agony lancing into your host's brain.")
+
+ to_chat(B.host_brain, "\red Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!")
+
//Check for brain worms in head.
/mob/proc/has_brain_worms()
@@ -514,7 +565,8 @@
return
if(B.chemicals >= 100)
- src << "\red Your host twitches and quivers as you rapdly excrete several larvae from your sluglike body."
+ to_chat(src, "\red Your host twitches and quivers as you rapdly excrete several larvae from your sluglike body.")
+
visible_message("\red [src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!")
B.chemicals -= 100
@@ -523,7 +575,8 @@
new /mob/living/simple_animal/borer(get_turf(src))
else
- src << "You do not have enough chemicals stored to reproduce."
+ to_chat(src, "You do not have enough chemicals stored to reproduce.")
+
return
/mob/living/simple_animal/borer/proc/leave_host()
@@ -550,11 +603,13 @@
set desc = "Infest a suitable humanoid host."
if(host)
- src << "You are already within a host."
+ to_chat(src, "You are already within a host.")
+
return
if(stat)
- src << "You cannot infest a target in your current state."
+ to_chat(src, "You cannot infest a target in your current state.")
+
return
var/list/choices = list()
@@ -572,37 +627,45 @@
if(!(src.Adjacent(M))) return
if(M.has_brain_worms())
- src << "You cannot infest someone who is already infested!"
+ to_chat(src, "You cannot infest someone who is already infested!")
+
return
- src << "You slither up [M] and begin probing at their ear canal..."
+ to_chat(src, "You slither up [M] and begin probing at their ear canal...")
+
if(!do_after(src,50, target = M))
- src << "As [M] moves away, you are dislodged and fall to the ground."
+ to_chat(src, "As [M] moves away, you are dislodged and fall to the ground.")
+
return
if(!M || !src) return
if(src.stat)
- src << "You cannot infest a target in your current state."
+ to_chat(src, "You cannot infest a target in your current state.")
+
return
if(M.stat == DEAD)
- src << "That is not an appropriate target."
+ to_chat(src, "That is not an appropriate target.")
+
return
if(M in view(1, src))
- src << "You wiggle into [M]'s ear."
+ to_chat(src, "You wiggle into [M]'s ear.")
+
/*
if(!M.stat)
- M << "Something disgusting and slimy wiggles into your ear!"
+ to_chat(M, "Something disgusting and slimy wiggles into your ear!")
+
*/ // Let's see how stealthborers work out
perform_infestation(M)
return
else
- src << "They are no longer in range!"
+ to_chat(src, "They are no longer in range!")
+
return
/mob/living/simple_animal/borer/proc/perform_infestation(var/mob/living/carbon/M)
@@ -658,16 +721,19 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
- src << "\green You are now hiding."
+ to_chat(src, "\green You are now hiding.")
+
else
layer = MOB_LAYER
- src << "\green You have stopped hiding."
+ to_chat(src, "\green You have stopped hiding.")
+
/mob/living/simple_animal/borer/say(var/message)
var/datum/language/dialect = parse_language(message)
if(!dialect)
dialect = get_default_language()
if(!istype(dialect, /datum/language/corticalborer) && loc == host && !talk_inside_host)
- src << "You've disabled audible speech while inside a host! Re-enable it under the borer tab, or stick to borer communications."
+ to_chat(src, "You've disabled audible speech while inside a host! Re-enable it under the borer tab, or stick to borer communications.")
+
return
..()
diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
index 86de7b48585..bf1b7af68cf 100644
--- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
+++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
@@ -22,7 +22,8 @@
if(be_swarmer == "No")
return
if(qdeleted(src))
- user << "Swarmer has been occupied by someone else."
+ to_chat(user, "Swarmer has been occupied by someone else.")
+
return
var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc))
S.key = user.key
@@ -71,12 +72,18 @@
/mob/living/simple_animal/hostile/swarmer/Login()
..()
- src << "You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate."
- src << "Ctrl + Click provides most of your swarmer specific interactions, such as cannibalizing metal or glass, destroying the environment, or teleporting mobs away from you."
- src << "Objectives:"
- src << "1. Consume resources and replicate until there are no more resources left."
- src << "2. Ensure that the station is fit for invasion at a later date, do not perform actions that would render it dangerous or inhospitable."
- src << "3. Biological and Sentient resources will be harvested at a later date, do not harm them."
+ to_chat(src, "You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate.")
+
+ to_chat(src, "Ctrl + Click provides most of your swarmer specific interactions, such as cannibalizing metal or glass, destroying the environment, or teleporting mobs away from you.")
+
+ to_chat(src, "Objectives:")
+
+ to_chat(src, "1. Consume resources and replicate until there are no more resources left.")
+
+ to_chat(src, "2. Ensure that the station is fit for invasion at a later date, do not perform actions that would render it dangerous or inhospitable.")
+
+ to_chat(src, "3. Biological and Sentient resources will be harvested at a later date, do not harm them.")
+
/mob/living/simple_animal/hostile/swarmer/New()
..()
@@ -157,25 +164,32 @@
toggle_cam(S, 0)
/obj/machinery/particle_accelerator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/fuel_chamber/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/particle_emitter/center/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/particle_emitter/left/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/particle_emitter/right/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/particle_emitter/end_cap/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/structure/particle_accelerator/particle_emitter/power_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
@@ -191,95 +205,119 @@
S.DisIntegrate(src)
/obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "The volatile chemicals in this machine would destroy us. Aborting."
+ to_chat(S, "The volatile chemicals in this machine would destroy us. Aborting.")
+
/obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This device's destruction would result in the extermination of everything in the area. Aborting."
+ to_chat(S, "This device's destruction would result in the extermination of everything in the area. Aborting.")
+
/obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Searching... sensor malfunction! Target lost. Aborting."
+ to_chat(S, "Searching... sensor malfunction! Target lost. Aborting.")
+
/obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Destroying this object would cause a chain reaction. Aborting."
+ to_chat(S, "Destroying this object would cause a chain reaction. Aborting.")
+
/obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "An inhospitable area may be created as a result of destroying this object. Aborting."
+ to_chat(S, "An inhospitable area may be created as a result of destroying this object. Aborting.")
+
/obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting."
+ to_chat(S, "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.")
+
/obj/machinery/message_server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting."
+ to_chat(S, "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.")
+
/obj/machinery/blackbox_recorder/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This machine has recorded large amounts of data on this structure and its inhabitants, it will be a useful resource to our masters in the future. Aborting. "
+ to_chat(S, "This machine has recorded large amounts of data on this structure and its inhabitants, it will be a useful resource to our masters in the future. Aborting. ")
+
/obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Disrupting the power grid would bring no benefit to us. Aborting."
+ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
+
/obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This bluespace source will be important to us later. Aborting."
+ to_chat(S, "This bluespace source will be important to us later. Aborting.")
+
/obj/machinery/cryopod/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This cryogenic sleeper should be preserved, it will be a useful resource to our masters in the future. Aborting."
+ to_chat(S, "This cryogenic sleeper should be preserved, it will be a useful resource to our masters in the future. Aborting.")
+
/obj/structure/cryofeed/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This cryogenic feed should be preserved, it will be a useful resource to our masters in the future. Aborting."
+ to_chat(S, "This cryogenic feed should be preserved, it will be a useful resource to our masters in the future. Aborting.")
+
/obj/machinery/computer/cryopod/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This cryopod control computer should be preserved, it contains useful items and information about the inhabitants. Aborting."
+ to_chat(S, "This cryopod control computer should be preserved, it contains useful items and information about the inhabitants. Aborting.")
+
/turf/simulated/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
for(var/turf/T in range(1, src))
if(istype(T, /turf/space) || istype(T.loc, /area/space))
- S << "Destroying this object has the potential to cause a hull breach. Aborting."
+ to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.")
+
return
..()
/obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
for(var/turf/T in range(1, src))
if(istype(T, /turf/space) || istype(T.loc, /area/space))
- S << "Destroying this object has the potential to cause a hull breach. Aborting."
+ to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.")
+
return
..()
/obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource
- S << "This object does not contain enough materials to work with."
+ to_chat(S, "This object does not contain enough materials to work with.")
+
/obj/item/weapon/circuitboard/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This object does not contain enough materials to work with."
+ to_chat(S, "This object does not contain enough materials to work with.")
+
/obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Attempting to dismantle this machine would result in an immediate counterattack. Aborting."
+ to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.")
+
/obj/spacepod/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "Destroying this vehicle would destroy us. Aborting."
+ to_chat(S, "Destroying this vehicle would destroy us. Aborting.")
+
/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
S.DisperseTarget(src)
/mob/living/carbon/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S << "This biological resource is somehow resisting our bluespace transceiver. Aborting."
+ to_chat(S, "This biological resource is somehow resisting our bluespace transceiver. Aborting.")
+
////END CTRL CLICK FOR SWARMERS////
/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(var/atom/fabrication_object,var/fabrication_cost = 0)
if(!isturf(loc))
- src << "This is not a suitable location for fabrication. We need more space."
+ to_chat(src, "This is not a suitable location for fabrication. We need more space.")
+
if(resources >= fabrication_cost)
resources -= fabrication_cost
else
- src << "You do not have the necessary resources to fabricate this object."
+ to_chat(src, "You do not have the necessary resources to fabricate this object.")
+
return 0
new fabrication_object(loc)
return 1
/mob/living/simple_animal/hostile/swarmer/proc/Integrate(var/obj/item/target)
if(resources >= 100)
- src << "We cannot hold more materials!"
+ to_chat(src, "We cannot hold more materials!")
+
return
//Check if any entries are either MAT_METAL or MAT_GLASS
if((MAT_METAL in target.materials) || (MAT_GLASS in target.materials))
@@ -296,7 +334,8 @@
return
qdel(target)
else
- src << "\the [target] is incompatible with our internal matter recycler."
+ to_chat(src, "\the [target] is incompatible with our internal matter recycler.")
+
return
/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(var/atom/movable/target)
@@ -307,9 +346,11 @@
/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target)
if(target != src)
- src << "Attempting to remove this being from our presence."
+ to_chat(src, "Attempting to remove this being from our presence.")
+
if(src.z != ZLEVEL_STATION)
- src << "Our bluespace transceiver cannot locate a viable bluespace link, our teleportation abilities are useless in this area."
+ to_chat(src, "Our bluespace transceiver cannot locate a viable bluespace link, our teleportation abilities are useless in this area.")
+
return
if(do_mob(src, target, 30))
var/cycle
@@ -333,15 +374,18 @@
/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(var/obj/machinery/target)
do_attack_animation(target)
- src << "We begin to dismantle this machine. We will need to be uninterrupted."
+ to_chat(src, "We begin to dismantle this machine. We will need to be uninterrupted.")
+
var/obj/effect/swarmer/dismantle/D = new /obj/effect/swarmer/dismantle(get_turf(target))
D.pixel_x = target.pixel_x
D.pixel_y = target.pixel_y
if(do_mob(src, target, 100))
if(!src.Adjacent(target))
- src << "Error:Dismantleing aborted."
+ to_chat(src, "Error:Dismantleing aborted.")
+
else
- src << "Dismantling complete."
+ to_chat(src, "Dismantling complete.")
+
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(target.loc)
M.amount = 5
if(target.component_parts && target.component_parts.len)
@@ -440,7 +484,8 @@
set category = "Swarmer"
set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources"
if(/obj/effect/swarmer/destructible/trap in loc)
- src << "There is already a trap here. Aborting."
+ to_chat(src, "There is already a trap here. Aborting.")
+
return
Fabricate(/obj/effect/swarmer/destructible/trap, 5)
return
@@ -468,10 +513,12 @@
set category = "Swarmer"
set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through."
if(/obj/effect/swarmer/destructible/blockade in loc)
- src << "There is already a blockade here. Aborting."
+ to_chat(src, "There is already a blockade here. Aborting.")
+
return
if(resources < 5)
- src << "We do not have the resources for this!"
+ to_chat(src, "We do not have the resources for this!")
+
return
if(do_mob(src, src, 10))
Fabricate(/obj/effect/swarmer/destructible/blockade, 5)
@@ -496,12 +543,15 @@
set name = "Replicate"
set category = "Swarmer"
set desc = "Creates a shell for a new swarmer. Swarmers will self activate."
- src << "We are attempting to replicate ourselves. We will need to stand still until the process is complete."
+ to_chat(src, "We are attempting to replicate ourselves. We will need to stand still until the process is complete.")
+
if(resources < 50)
- src << "We do not have the resources for this!"
+ to_chat(src, "We do not have the resources for this!")
+
return
if(!isturf(loc))
- src << "This is not a suitable location for replicating ourselves. We need more room."
+ to_chat(src, "This is not a suitable location for replicating ourselves. We need more room.")
+
return
if(do_mob(src, src, 100))
if(Fabricate(/obj/item/unactivated_swarmer, 50))
@@ -513,10 +563,12 @@
set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete."
if(!isturf(loc))
return
- src << "Attempting to repair damage to our body, stand by..."
+ to_chat(src, "Attempting to repair damage to our body, stand by...")
+
if(do_mob(src, src, 100))
adjustBruteLoss(-100)
- src << "We successfully repaired ourselves."
+ to_chat(src, "We successfully repaired ourselves.")
+
/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight()
if(!light_range)
@@ -529,7 +581,8 @@
if(message)
for(var/mob/M in mob_list)
if(isswarmer(M) || (M in dead_mob_list))
- M << "Swarm communication - [src] states: [message]"
+ to_chat(M, "Swarm communication - [src] states: [message]")
+
diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm
index 750afa1e623..3c62fc71d14 100644
--- a/code/game/gamemodes/miniantags/guardian/guardian.dm
+++ b/code/game/gamemodes/miniantags/guardian/guardian.dm
@@ -42,7 +42,8 @@
..()
if(summoner)
if(summoner.stat == DEAD)
- src << "Your summoner has died!"
+ to_chat(src, "Your summoner has died!")
+
visible_message("The [src] dies along with its user!")
ghostize()
qdel(src)
@@ -50,11 +51,13 @@
if (get_dist(get_turf(summoner),get_turf(src)) <= range)
return
else
- src << "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]"
+ to_chat(src, "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]")
+
visible_message("The [src] jumps back to its user.")
Recall()
if(summoned && !summoner && !adminseal)
- src << "You somehow lack a summoner! As a result, you dispel!"
+ to_chat(src, "You somehow lack a summoner! As a result, you dispel!")
+
ghostize()
qdel()
@@ -64,13 +67,15 @@
if (get_dist(get_turf(summoner),get_turf(src)) <= range)
return
else
- src << "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]"
+ to_chat(src, "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]")
+
visible_message("The [src] jumps back to its user.")
Recall()
/mob/living/simple_animal/hostile/guardian/death()
..()
- summoner << "Your [name] died somehow!"
+ to_chat(summoner, "Your [name] died somehow!")
+
summoner.death()
@@ -91,10 +96,12 @@
return
summoner.adjustBruteLoss(damage)
if(damage)
- summoner << "Your [name] is under attack! You take damage!"
+ to_chat(summoner, "Your [name] is under attack! You take damage!")
+
summoner.visible_message("Blood sprays from [summoner] as [src] takes damage!")
if(summoner.stat == UNCONSCIOUS)
- summoner << "Your body can't take the strain of sustaining [src] in this condition, it begins to fall apart!"
+ to_chat(summoner, "Your body can't take the strain of sustaining [src] in this condition, it begins to fall apart!")
+
summoner.adjustCloneLoss(damage/2)
/mob/living/simple_animal/hostile/guardian/ex_act(severity, target)
@@ -110,7 +117,8 @@
/mob/living/simple_animal/hostile/guardian/gib()
if(summoner)
- summoner << "Your [src] was blown up!"
+ to_chat(summoner, "Your [src] was blown up!")
+
summoner.Weaken(10)// your fermillier has died! ROLL FOR CON LOSS!
ghostize()
qdel(src)
@@ -142,14 +150,18 @@
for(var/mob/M in mob_list)
if(M == summoner)
- M << "[src]: [input]"
+ to_chat(M, "[src]: [input]")
+
log_say("Guardian Communication: [key_name(src)] -> [key_name(M)] : [input]")
else if (M in dead_mob_list)
- M << "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]"
- src << "[src]: [input]"
+ to_chat(M, "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]")
+
+ to_chat(src, "[src]: [input]")
+
/mob/living/simple_animal/hostile/guardian/proc/ToggleMode()
- src << "You dont have another mode!"
+ to_chat(src, "You dont have another mode!")
+
/mob/living/proc/guardian_comm()
@@ -163,12 +175,15 @@
if(istype (M, /mob/living/simple_animal/hostile/guardian))
var/mob/living/simple_animal/hostile/guardian/G = M
if(G.summoner == src)
- G << "[src]: [input]"
+ to_chat(G, "[src]: [input]")
+
log_say("Guardian Communication: [key_name(src)] -> [key_name(G)] : [input]")
else if (M in dead_mob_list)
- M << "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]"
- src << "[src]: [input]"
+ to_chat(M, "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]")
+
+ to_chat(src, "[src]: [input]")
+
/mob/living/proc/guardian_recall()
set name = "Recall Guardian"
@@ -190,13 +205,16 @@
var/mob/dead/observer/new_stand = null
if(candidates.len)
new_stand = pick(candidates)
- G << "Your user reset you, and your body was taken over by a ghost. Looks like they weren't happy with your performance."
- src << "Your guardian has been successfully reset."
+ to_chat(G, "Your user reset you, and your body was taken over by a ghost. Looks like they weren't happy with your performance.")
+
+ to_chat(src, "Your guardian has been successfully reset.")
+
message_admins("[key_name_admin(new_stand)] has taken control of ([key_name_admin(G)])")
G.ghostize(0)
G.key = new_stand.key
else
- src << "There were no ghosts willing to take control. Looks like you're stuck with your Guardian for now."
+ to_chat(src, "There were no ghosts willing to take control. Looks like you're stuck with your Guardian for now.")
+
spawn(3000)
verbs += /mob/living/proc/guardian_reset
@@ -204,10 +222,12 @@
/mob/living/simple_animal/hostile/guardian/proc/ToggleLight()
if(!luminosity)
set_light(3)
- src << "You activate your light."
+ to_chat(src, "You activate your light.")
+
else
set_light(0)
- src << "You deactivate your light."
+ to_chat(src, "You deactivate your light.")
+
//////////////////////////TYPES OF GUARDIANS
@@ -239,10 +259,12 @@
/mob/living/simple_animal/hostile/guardian/fire/ToggleMode()
if(src.loc == summoner)
if(toggle)
- src << "You switch to dispersion mode, and will teleport victims away from your master."
+ to_chat(src, "You switch to dispersion mode, and will teleport victims away from your master.")
+
toggle = FALSE
else
- src << "You switch to deception mode, and will turn your victims against their allies."
+ to_chat(src, "You switch to deception mode, and will turn your victims against their allies.")
+
toggle = TRUE
/mob/living/simple_animal/hostile/guardian/fire/AttackingTarget()
@@ -381,7 +403,8 @@
..()
if(toggle == TRUE)
if(src.loc == summoner)
- src << "You must be manifested to heal!"
+ to_chat(src, "You must be manifested to heal!")
+
return
if(iscarbon(target))
src.changeNext_move(CLICK_CD_MELEE)
@@ -403,7 +426,8 @@
damage_transfer = 0
melee_damage_lower = 15
melee_damage_upper = 15
- src << "You switch to combat mode."
+ to_chat(src, "You switch to combat mode.")
+
toggle = FALSE
else
a_intent = I_HELP
@@ -413,10 +437,12 @@
damage_transfer = 0
melee_damage_lower = 0
melee_damage_upper = 0
- src << "You switch to healing mode."
+ to_chat(src, "You switch to healing mode.")
+
toggle = TRUE
else
- src << "You have to be recalled to toggle modes!"
+ to_chat(src, "You have to be recalled to toggle modes!")
+
/mob/living/simple_animal/hostile/guardian/healer/verb/Beacon()
@@ -431,31 +457,38 @@
F.name = "bluespace recieving pad"
F.desc = "A recieving zone for bluespace teleportations. Building a wall over it should disable it."
F.icon_state = "light_on-w"
- src << "Beacon placed! You may now warp targets to it, including your user, via Alt+Click. "
+ to_chat(src, "Beacon placed! You may now warp targets to it, including your user, via Alt+Click. ")
+
if(beacon)
beacon.ChangeTurf(/turf/simulated/floor/plating)
beacon = F
beacon_cooldown = world.time+3000
else
- src << "Your power is on cooldown. You must wait five minutes between placing beacons."
+ to_chat(src, "Your power is on cooldown. You must wait five minutes between placing beacons.")
+
/mob/living/simple_animal/hostile/guardian/healer/AltClickOn(atom/movable/A)
if(!istype(A))
return
if(src.loc == summoner)
- src << "You must be manifested to warp a target!"
+ to_chat(src, "You must be manifested to warp a target!")
+
return
if(!beacon)
- src << "You need a beacon placed to warp things!"
+ to_chat(src, "You need a beacon placed to warp things!")
+
return
if(!Adjacent(A))
- src << "You must be adjacent to your target!"
+ to_chat(src, "You must be adjacent to your target!")
+
return
if((A.anchored))
- src << "Your target can not be anchored!"
+ to_chat(src, "Your target can not be anchored!")
+
return
- src << "You begin to warp [A]"
+ to_chat(src, "You begin to warp [A]")
+
if(do_mob(src, A, 50))
if(!A.anchored)
if(src.beacon) //Check that the beacon still exists and is in a safe place. No instant kills.
@@ -469,13 +502,17 @@
do_teleport(A, beacon, 0)
new /obj/effect/overlay/temp/guardian/phase(get_turf(A))
else
- src << "The beacon isn't in a safe location!"
+ to_chat(src, "The beacon isn't in a safe location!")
+
else
- src << "The beacon isn't in a safe location!"
+ to_chat(src, "The beacon isn't in a safe location!")
+
else
- src << "You need a beacon to warp things!"
+ to_chat(src, "You need a beacon to warp things!")
+
else
- src << "You need to hold still!"
+ to_chat(src, "You need to hold still!")
+
///////////////////Ranged
@@ -517,7 +554,8 @@
alpha = 255
range = 13
incorporeal_move = 0
- src << "You switch to combat mode."
+ to_chat(src, "You switch to combat mode.")
+
toggle = FALSE
else
ranged = 0
@@ -526,17 +564,21 @@
alpha = 60
range = 255
incorporeal_move = 1
- src << "You switch to scout mode."
+ to_chat(src, "You switch to scout mode.")
+
toggle = TRUE
else
- src << "You have to be recalled to toggle modes!"
+ to_chat(src, "You have to be recalled to toggle modes!")
+
/mob/living/simple_animal/hostile/guardian/ranged/ToggleLight()
if(see_invisible == SEE_INVISIBLE_MINIMUM)
- src << "You deactivate your night vision."
+ to_chat(src, "You deactivate your night vision.")
+
see_invisible = SEE_INVISIBLE_LIVING
else
- src << "You activate your night vision."
+ to_chat(src, "You activate your night vision.")
+
see_invisible = SEE_INVISIBLE_MINIMUM
/mob/living/simple_animal/hostile/guardian/ranged/verb/Snare()
@@ -549,9 +591,11 @@
S.spawner = src
S.name = "[get_area(snare_loc)] trap ([rand(1, 1000)])"
src.snares |= S
- src << "Surveillance trap deployed!"
+ to_chat(src, "Surveillance trap deployed!")
+
else
- src << "You have too many traps deployed. Delete some first."
+ to_chat(src, "You have too many traps deployed. Delete some first.")
+
/mob/living/simple_animal/hostile/guardian/ranged/verb/DisarmSnare()
set name = "Remove Surveillance Trap"
@@ -561,7 +605,8 @@
if(picked_snare)
src.snares -= picked_snare
qdel(picked_snare)
- src << "Snare disarmed."
+ to_chat(src, "Snare disarmed.")
+
/obj/item/effect/snare
name = "snare"
@@ -574,11 +619,13 @@
if(istype(AM, /mob/living/))
var/turf/snare_loc = get_turf(src.loc)
if(spawner)
- spawner << "[AM] has crossed your surveillance trap at [get_area(snare_loc)]."
+ to_chat(spawner, "[AM] has crossed your surveillance trap at [get_area(snare_loc)].")
+
if(istype(spawner, /mob/living/simple_animal/hostile/guardian))
var/mob/living/simple_animal/hostile/guardian/G = spawner
if(G.summoner)
- G.summoner << "[AM] has crossed your surveillance trap at [get_area(snare_loc)]."
+ to_chat(G.summoner, "[AM] has crossed your surveillance trap at [get_area(snare_loc)].")
+
////Bomb
@@ -597,19 +644,23 @@
if(!istype(A))
return
if(src.loc == summoner)
- src << "You must be manifested to create bombs!"
+ to_chat(src, "You must be manifested to create bombs!")
+
return
if(istype(A, /obj/))
if(bomb_cooldown <= world.time && !stat)
var/obj/item/weapon/guardian_bomb/B = new /obj/item/weapon/guardian_bomb(get_turf(A))
- src << "Success! Bomb on \the [A] armed!"
+ to_chat(src, "Success! Bomb on \the [A] armed!")
+
if(summoner)
- summoner << "Your guardian has primed \the [A] to explode!"
+ to_chat(summoner, "Your guardian has primed \the [A] to explode!")
+
bomb_cooldown = world.time + 200
B.spawner = src
B.disguise (A)
else
- src << "Your powers are on cooldown! You must wait 20 seconds between bombs."
+ to_chat(src, "Your powers are on cooldown! You must wait 20 seconds between bombs.")
+
/obj/item/weapon/guardian_bomb
name = "bomb"
@@ -627,19 +678,23 @@
spawn(600)
if(src)
stored_obj.loc = get_turf(src.loc)
- spawner << "Failure! Your trap on \the [stored_obj] didn't catch anyone this time."
+ to_chat(spawner, "Failure! Your trap on \the [stored_obj] didn't catch anyone this time.")
+
qdel(src)
/obj/item/weapon/guardian_bomb/proc/detonate(var/mob/living/user)
- user << "The [src] was boobytrapped!"
+ to_chat(user, "The [src] was boobytrapped!")
+
if(istype(spawner, /mob/living/simple_animal/hostile/guardian))
var/mob/living/simple_animal/hostile/guardian/G = spawner
if(user == G.summoner)
- user << "You knew this because of your link with your guardian, so you smartly defuse the bomb."
+ to_chat(user, "You knew this because of your link with your guardian, so you smartly defuse the bomb.")
+
stored_obj.loc = get_turf(src.loc)
qdel(src)
return
- spawner << "Success! Your trap on \the [src] caught [user]!"
+ to_chat(spawner, "Success! Your trap on \the [src] caught [user]!")
+
stored_obj.loc = get_turf(src.loc)
playsound(get_turf(src),'sound/effects/Explosion2.ogg', 200, 1)
user.ex_act(2)
@@ -656,7 +711,8 @@
/obj/item/weapon/guardian_bomb/examine(mob/user)
stored_obj.examine(user)
if(get_dist(user,src)<=2)
- user << "Looks odd!"
+ to_chat(user, "Looks odd!")
+
////////Creation
@@ -679,16 +735,20 @@
/obj/item/weapon/guardiancreator/attack_self(mob/living/user)
for(var/mob/living/simple_animal/hostile/guardian/G in living_mob_list)
if (G.summoner == user)
- user << "You already have a [mob_name]!"
+ to_chat(user, "You already have a [mob_name]!")
+
return
if(user.mind && user.mind.changeling)
- user << "[ling_failure]"
+ to_chat(user, "[ling_failure]")
+
return
if(used == TRUE)
- user << "[used_message]"
+ to_chat(user, "[used_message]")
+
return
used = TRUE
- user << "[use_message]"
+ to_chat(user, "[use_message]")
+
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_GUARDIAN, 0, 100)
var/mob/dead/observer/theghost = null
@@ -696,7 +756,8 @@
theghost = pick(candidates)
spawn_guardian(user, theghost.key)
else
- user << "[failure_message]"
+ to_chat(user, "[failure_message]")
+
used = FALSE
@@ -728,10 +789,14 @@
G.summoner = user
G.summoned = TRUE
G.key = key
- G << "You are a [mob_name] bound to serve [user.real_name]."
- G << "You are capable of manifesting or recalling to your master with verbs in the Guardian tab. You will also find a verb to communicate with them privately there."
- G << "While personally invincible, you will die if [user.real_name] does, and any damage dealt to you will have a portion passed on to them as you feed upon them to sustain yourself."
- G << "[G.playstyle_string]"
+ to_chat(G, "You are a [mob_name] bound to serve [user.real_name].")
+
+ to_chat(G, "You are capable of manifesting or recalling to your master with verbs in the Guardian tab. You will also find a verb to communicate with them privately there.")
+
+ to_chat(G, "While personally invincible, you will die if [user.real_name] does, and any damage dealt to you will have a portion passed on to them as you feed upon them to sustain yourself.")
+
+ to_chat(G, "[G.playstyle_string]")
+
G.faction = user.faction
user.verbs += /mob/living/proc/guardian_comm
user.verbs += /mob/living/proc/guardian_recall
@@ -752,7 +817,8 @@
G.icon_state = "[theme][color]"
G.icon_dead = "[theme][color]"
- user << "[G.magic_fluff_string]."
+ to_chat(user, "[G.magic_fluff_string].")
+
if("tech")
color = pick("Rose", "Peony", "Lily", "Daisy", "Zinnia", "Ivy", "Iris", "Petunia", "Violet", "Lilac", "Orchid") //technically not colors, just flowers that can be specific colors
picked_name = pick("Gallium", "Indium", "Thallium", "Bismuth", "Aluminium", "Mercury", "Iron", "Silver", "Zinc", "Titanium", "Chromium", "Nickel", "Platinum", "Tellurium", "Palladium", "Rhodium", "Cobalt", "Osmium", "Tungsten", "Iridium")
@@ -763,12 +829,14 @@
G.icon_state = "[theme][color]"
G.icon_dead = "[theme][color]"
- user << "[G.tech_fluff_string]."
+ to_chat(user, "[G.tech_fluff_string].")
+
G.speak_emote = list("states")
if("bio")
G.icon = 'icons/mob/mob.dmi'
picked_name = pick("brood", "hive", "nest")
- user << "[G.bio_fluff_string]."
+ to_chat(user, "[G.bio_fluff_string].")
+
G.name = "[picked_name] swarm"
G.color = picked_color
G.real_name = "[picked_name] swarm"
diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm
index 9786aa1432a..eee370b1710 100644
--- a/code/game/gamemodes/miniantags/morph/morph.dm
+++ b/code/game/gamemodes/miniantags/morph/morph.dm
@@ -52,7 +52,8 @@
else
..()
if(get_dist(user,src)<=3)
- user << "It doesn't look quite right..."
+ to_chat(user, "It doesn't look quite right...")
+
else
..()
return
@@ -81,7 +82,8 @@
if(istype(A) && allowed(A))
assume(A)
else
- src << "Your chameleon skin is still repairing itself!"
+ to_chat(src, "Your chameleon skin is still repairing itself!")
+
..()
/mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target)
diff --git a/code/game/gamemodes/miniantags/morph/morph_event.dm b/code/game/gamemodes/miniantags/morph/morph_event.dm
index c0af9c38040..190d2abb5f4 100644
--- a/code/game/gamemodes/miniantags/morph/morph_event.dm
+++ b/code/game/gamemodes/miniantags/morph/morph_event.dm
@@ -22,8 +22,10 @@
player_mind.assigned_role = "Morph"
player_mind.special_role = "Morph"
ticker.mode.traitors |= player_mind
- S << S.playstyle_string
- S << 'sound/magic/Mutate.ogg'
+ to_chat(S, S.playstyle_string)
+
+ to_chat(S, 'sound/magic/Mutate.ogg')
+
message_admins("[key_of_morph] has been made into morph by an event.")
log_game("[key_of_morph] was spawned as a morph by an event.")
return 1
diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm
index 2fa99dd58a6..be6bdd718af 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant.dm
@@ -62,11 +62,13 @@
revealed = 0
incorporeal_move = 3
invisibility = INVISIBILITY_REVENANT
- src << "You are once more concealed."
+ to_chat(src, "You are once more concealed.")
+
if(unstun_time && world.time >= unstun_time)
unstun_time = 0
notransform = 0
- src << "You can move again!"
+ to_chat(src, "You can move again!")
+
update_spooky_icon()
/mob/living/simple_animal/revenant/ex_act(severity)
@@ -86,7 +88,8 @@
return
essence = max(0, essence-amount)
if(essence == 0)
- src << "You feel your essence fraying!"
+ to_chat(src, "You feel your essence fraying!")
+
@@ -97,9 +100,11 @@
var/rendered = "[src] says, \"[message]\""
for(var/mob/M in mob_list)
if(istype(M, /mob/living/simple_animal/revenant))
- M << rendered
+ to_chat(M, rendered)
+
if(isobserver(M))
- M << "(F) [rendered]"
+ to_chat(M, "(F) [rendered]")
+
return
/mob/living/simple_animal/revenant/Stat()
@@ -119,23 +124,28 @@
spawn(5)
if(src.mind)
src.mind.wipe_memory()
- src << 'sound/effects/ghost.ogg'
- src << "
"
- src << "You are a revenant."
- src << "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant."
- src << "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds."
- src << "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable."
- src << "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities."
- src << "You do not remember anything of your past lives, nor will you remember anything about this one after your death."
- src << "Be sure to read the wiki page at http://nanotrasen.se/wiki/index.php/Revenant to learn more."
+ to_chat(src, 'sound/effects/ghost.ogg')
+
+ to_chat(src, "
")
+ to_chat(src, "You are a revenant.")
+ to_chat(src, "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant.")
+ to_chat(src, "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds.")
+ to_chat(src, "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable.")
+ to_chat(src, "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities.")
+ to_chat(src, "You do not remember anything of your past lives, nor will you remember anything about this one after your death.")
+ to_chat(src, "Be sure to read the wiki page at http://nanotrasen.se/wiki/index.php/Revenant to learn more.")
+
+
var/datum/objective/revenant/objective = new
objective.owner = src.mind
src.mind.objectives += objective
- src << "Objective #1: [objective.explanation_text]"
+ to_chat(src, "Objective #1: [objective.explanation_text]")
+
var/datum/objective/revenantFluff/objective2 = new
objective2.owner = src.mind
src.mind.objectives += objective2
- src << "Objective #2: [objective2.explanation_text]"
+ to_chat(src, "Objective #2: [objective2.explanation_text]")
+
ticker.mode.traitors |= src.mind //Necessary for announcing
if(!src.giveSpells())
message_admins("Revenant was created but has no mind. Trying again in five seconds.")
@@ -168,7 +178,8 @@
ghost_darkness_images -= ghostimage
updateallghostimages()
- src << "NO! No... it's too late, you can feel your essence breaking apart..."
+ to_chat(src, "NO! No... it's too late, you can feel your essence breaking apart...")
+
notransform = 1
revealed = 1
invisibility = 0
@@ -204,13 +215,16 @@
return
var/turf/T = get_turf(src)
if(istype(T, /turf/simulated/wall))
- src << "You cannot use abilities from inside of a wall."
+ to_chat(src, "You cannot use abilities from inside of a wall.")
+
return 0
if(src.inhibited)
- src << "Your powers have been suppressed by nulling energy!"
+ to_chat(src, "Your powers have been suppressed by nulling energy!")
+
return 0
if(!src.change_essence_amount(essence_cost, 1))
- src << "You lack the essence to use that ability."
+ to_chat(src, "You lack the essence to use that ability.")
+
return 0
return 1
@@ -224,9 +238,11 @@
essence_accumulated = max(0, essence_accumulated+essence_amt)
if(!silent)
if(essence_amt > 0)
- src << "Gained [essence_amt]E from [source]."
+ to_chat(src, "Gained [essence_amt]E from [source].")
+
else
- src << "Lost [essence_amt]E from [source]."
+ to_chat(src, "Lost [essence_amt]E from [source].")
+
return 1
/mob/living/simple_animal/revenant/proc/reveal(time)
@@ -238,10 +254,12 @@
invisibility = 0
incorporeal_move = 0
if(!unreveal_time)
- src << "You have been revealed!"
+ to_chat(src, "You have been revealed!")
+
unreveal_time = world.time + time
else
- src << "You have been revealed!"
+ to_chat(src, "You have been revealed!")
+
unreveal_time = unreveal_time + time
update_spooky_icon()
@@ -252,10 +270,12 @@
return
notransform = 1
if(!unstun_time)
- src << "You cannot move!"
+ to_chat(src, "You cannot move!")
+
unstun_time = world.time + time
else
- src << "You cannot move!"
+ to_chat(src, "You cannot move!")
+
unstun_time = unstun_time + time
update_spooky_icon()
@@ -350,9 +370,11 @@
/obj/item/weapon/ectoplasm/revenant/examine(mob/user)
..(user)
if(inert)
- user << "It seems inert."
+ to_chat(user, "It seems inert.")
+
else if(reforming)
- user << "It is shifting and distorted. It would be wise to destroy this."
+ to_chat(user, "It is shifting and distorted. It would be wise to destroy this.")
+
/obj/item/weapon/ectoplasm/revenant/proc/reform()
if(inert || !src)
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index e061bcc4d77..e3d32319892 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -29,47 +29,63 @@
if(!castcheck(0))
return
if(draining)
- src << "You are already siphoning the essence of a soul!"
+ to_chat(src, "You are already siphoning the essence of a soul!")
+
return
if(target in drained_mobs)
- src << "[target]'s soul is dead and empty."
+ to_chat(src, "[target]'s soul is dead and empty.")
+
return
if(!target.stat)
- src << "This being's soul is too strong to harvest."
+ to_chat(src, "This being's soul is too strong to harvest.")
+
if(prob(10))
- target << "You feel as if you are being watched."
+ to_chat(target, "You feel as if you are being watched.")
+
return
draining = 1
essence_drained = rand(15, 20)
- src << "You search for the soul of [target]."
+ to_chat(src, "You search for the soul of [target].")
+
if(do_after(src, 10, 0, target = target)) //did they get deleted in that second?
if(target.ckey)
- src << "Their soul burns with intelligence."
+ to_chat(src, "Their soul burns with intelligence.")
+
essence_drained += rand(20, 30)
if(target.stat != DEAD)
- src << "Their soul blazes with life!"
+ to_chat(src, "Their soul blazes with life!")
+
essence_drained += rand(40, 50)
else
- src << "Their soul is weak and faltering."
+ to_chat(src, "Their soul is weak and faltering.")
+
if(do_after(src, 20, 0, target = target)) //did they get deleted NOW?
switch(essence_drained)
if(1 to 30)
- src << "[target] will not yield much essence. Still, every bit counts."
+ to_chat(src, "[target] will not yield much essence. Still, every bit counts.")
+
if(30 to 70)
- src << "[target] will yield an average amount of essence."
+ to_chat(src, "[target] will yield an average amount of essence.")
+
if(70 to 90)
- src << "Such a feast! [target] will yield much essence to you."
+ to_chat(src, "Such a feast! [target] will yield much essence to you.")
+
if(90 to INFINITY)
- src << "Ah, the perfect soul. [target] will yield massive amounts of essence to you."
+ to_chat(src, "Ah, the perfect soul. [target] will yield massive amounts of essence to you.")
+
if(do_after(src, 20, 0, target = target)) //how about now
if(!target.stat)
- src << "They are now powerful enough to fight off your draining."
- target << "You feel something tugging across your body before subsiding."
+ to_chat(src, "They are now powerful enough to fight off your draining.")
+
+ to_chat(target, "You feel something tugging across your body before subsiding.")
+
draining = 0
return //hey, wait a minute...
- src << "You begin siphoning essence from [target]'s soul."
+ to_chat(src, "You begin siphoning essence from [target]'s soul.")
+
if(target.stat != DEAD)
- target << "You feel a horribly unpleasant draining sensation as your grip on life weakens..."
+ to_chat(target, "You feel a horribly unpleasant draining sensation as your grip on life weakens...")
+
icon_state = "revenant_draining"
reveal(27)
stun(27)
@@ -80,14 +96,17 @@
if(essence_drained > 90)
essence_regen_cap += 25
perfectsouls += 1
- src << "The perfection of [target]'s soul has increased your maximum essence level. Your new maximum essence is [essence_regen_cap]."
- src << "[target]'s soul has been considerably weakened and will yield no more essence for the time being."
+ to_chat(src, "The perfection of [target]'s soul has increased your maximum essence level. Your new maximum essence is [essence_regen_cap].")
+
+ to_chat(src, "[target]'s soul has been considerably weakened and will yield no more essence for the time being.")
+
target.visible_message("[target] slumps onto the ground.", \
"Violets lights, dancing in your vision, getting clo--")
drained_mobs.Add(target)
target.death(0)
else
- src << "[target ? "[target] has":"They have"] been drawn out of your grasp. The link has been broken."
+ to_chat(src, "[target ? "[target] has":"They have"] been drawn out of your grasp. The link has been broken.")
+
draining = 0
essence_drained = 0
if(target) //Wait, target is WHERE NOW?
@@ -95,7 +114,8 @@
"Violets lights, dancing in your vision, receding--")
return
else
- src << "You are not close enough to siphon [target ? "[target]'s":"their"] soul. The link has been broken."
+ to_chat(src, "You are not close enough to siphon [target ? "[target]'s":"their"] soul. The link has been broken.")
+
draining = 0
essence_drained = 0
return
@@ -132,8 +152,10 @@
charge_counter = charge_max
return
log_say("RevenantTransmit: [key_name(user)]->[key_name(M)] : [msg]")
- usr << "You transmit to [M]: [msg]"
- M << "An alien voice resonates from all around... [msg]"
+ to_chat(usr, "You transmit to [M]: [msg]")
+
+ to_chat(M, "An alien voice resonates from all around... [msg]")
+
/obj/effect/proc_holder/spell/aoe_turf/revenant
@@ -172,7 +194,8 @@
charge_counter = charge_max
return 0
name = "[initial(name)] ([cast_amount]E)"
- user << "You have unlocked [initial(name)]!"
+ to_chat(user, "You have unlocked [initial(name)]!")
+
panel = "Revenant Abilities"
locked = 0
charge_counter = charge_max
@@ -248,7 +271,8 @@
T.flags -= NOJAUNT
new/obj/effect/overlay/temp/revenant(T)
for(var/mob/living/carbon/human/human in T.contents)
- human << "You suddenly feel [pick("sick and tired", "tired and confused", "nauseated", "dizzy")]."
+ to_chat(human, "You suddenly feel [pick("sick and tired", "tired and confused", "nauseated", "dizzy")].")
+
human.adjustStaminaLoss(stamdamage)
human.adjustToxLoss(toxdamage)
human.confused += confusion
@@ -298,7 +322,8 @@
bot.open = 1
bot.emag_act(null)
for(var/mob/living/carbon/human/human in T.contents)
- human << "You feel [pick("your sense of direction flicker out", "a stabbing pain in your head", "your mind fill with static")]."
+ to_chat(human, "You feel [pick("your sense of direction flicker out", "a stabbing pain in your head", "your mind fill with static")].")
+
new/obj/effect/overlay/temp/revenant(human.loc)
human.emp_act(1)
for(var/obj/thing in T.contents)
diff --git a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm b/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm
index a3a37a7d625..7ac75cf1e71 100644
--- a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm
+++ b/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm
@@ -7,7 +7,8 @@
if(iscarbon(src))
var/mob/living/carbon/C = src
if(C.l_hand || C.r_hand)
- C << "You may not hold items while blood crawling!"
+ to_chat(C, "You may not hold items while blood crawling!")
+
return 0
var/obj/item/weapon/bloodcrawl/B1 = new(C)
var/obj/item/weapon/bloodcrawl/B2 = new(C)
@@ -54,7 +55,8 @@
holder = holder
if(kidnapped)
- src << "You begin to feast on [kidnapped]. You can not move while you are doing this."
+ to_chat(src, "You begin to feast on [kidnapped]. You can not move while you are doing this.")
+
visible_message("Loud eating sounds come from the blood...")
sleep(6)
if(animation)
@@ -63,7 +65,8 @@
playsound(get_turf(src),'sound/misc/Demon_consume.ogg', 100, 1)
sleep(30)
if(kidnapped)
- src << "You devour [kidnapped]. Your health is fully restored."
+ to_chat(src, "You devour [kidnapped]. Your health is fully restored.")
+
adjustBruteLoss(-1000)
adjustFireLoss(-1000)
adjustOxyLoss(-1000)
@@ -73,7 +76,8 @@
var/mob/living/simple_animal/slaughter/demon = src
demon.devoured++
- kidnapped << "You feel teeth sink into your flesh, and the--"
+ to_chat(kidnapped, "You feel teeth sink into your flesh, and the--")
+
kidnapped.adjustBruteLoss(1000)
kidnapped.forceMove(src)
demon.consumed_mobs.Add(kidnapped)
@@ -81,7 +85,8 @@
kidnapped.ghostize()
qdel(kidnapped)
else
- src << "You happily devour... nothing? Your meal vanished at some point!"
+ to_chat(src, "You happily devour... nothing? Your meal vanished at some point!")
+
else
sleep(6)
if (animation)
@@ -98,7 +103,8 @@
/mob/living/proc/phasein(var/obj/effect/decal/cleanable/B)
if(notransform)
- src << "Finish eating first!"
+ to_chat(src, "Finish eating first!")
+
return 0
B.visible_message("[B] starts to bubble...")
if(!do_after(src, 20, target = B))
diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
index 3d4a8b9061e..145f71b2066 100644
--- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm
+++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
@@ -55,9 +55,12 @@
if(istype(loc, /obj/effect/dummy/slaughter))
bloodspell.phased = 1
if(mind)
- src << src.playstyle_string
- src << "You are not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest."
- src << 'sound/misc/demon_dies.ogg'
+ to_chat(src, src.playstyle_string)
+
+ to_chat(src, "You are not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest.")
+
+ to_chat(src, 'sound/misc/demon_dies.ogg')
+
mind.current.verbs += /mob/living/simple_animal/slaughter/proc/slaughterWhisper
if(!(vialspawned))
var/datum/objective/slaughter/objective = new
@@ -68,8 +71,10 @@
//Paradise Port:I added the objective for one spawned like this
mind.objectives += objective
mind.objectives += fluffObjective
- src << "Objective #[1]: [objective.explanation_text]"
- src << "Objective #[2]: [fluffObjective.explanation_text]"
+ to_chat(src, "Objective #[1]: [objective.explanation_text]")
+
+ to_chat(src, "Objective #[2]: [fluffObjective.explanation_text]")
+
/mob/living/simple_animal/slaughter/Life()
@@ -125,8 +130,10 @@
if(!(msg))
return
log_say("Slaughter Demon Transmit: [key_name(usr)]->[key_name(M)]: [msg]")
- usr << "You whisper to [M]: [msg]"
- M << "Suddenly a strange, demonic voice resonates in your head... [msg]"
+ to_chat(usr, "You whisper to [M]: [msg]")
+
+ to_chat(M, "Suddenly a strange, demonic voice resonates in your head... [msg]")
+
for(var/mob/dead/observer/G in player_list)
G.show_message("Demonic message from [usr] ([ghost_follow_link(usr, ghost=G)]) to [M] ([ghost_follow_link(M, ghost=G)]): [msg]")
@@ -161,10 +168,12 @@
"You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!")
user.bloodcrawl = BLOODCRAWL
else if(user.bloodcrawl == BLOODCRAWL)
- user << "You feel diffr- CONSUME THEM! "
+ to_chat(user, "You feel diffr- CONSUME THEM! ")
+
user.bloodcrawl = BLOODCRAWL_EAT
else
- user <<"...and you don't feel any different."
+ to_chat(user, "...and you don't feel any different.")
+
user.drop_item()
insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E
diff --git a/code/game/gamemodes/mutiny/emergency_authentication_device.dm b/code/game/gamemodes/mutiny/emergency_authentication_device.dm
index 2a48ac8c3b7..d2e0e2849df 100644
--- a/code/game/gamemodes/mutiny/emergency_authentication_device.dm
+++ b/code/game/gamemodes/mutiny/emergency_authentication_device.dm
@@ -45,7 +45,8 @@
/obj/machinery/emergency_authentication_device/attack_hand(mob/user)
if(activated)
- user << "\blue \The [src] is already active!"
+ to_chat(user, "\blue \The [src] is already active!")
+
return
if(!mode.current_directive.directives_complete())
@@ -55,7 +56,8 @@
check_key_existence()
if(captains_key && secondary_key)
activated = 1
- user << "\blue You activate \the [src]!"
+ to_chat(user, "\blue You activate \the [src]!")
+
state("Command acknowledged. Initiating quantum entanglement relay to Nanotrasen High Command.")
launch_shuttle()
return
@@ -77,7 +79,8 @@
/obj/machinery/emergency_authentication_device/attackby(obj/item/weapon/O, mob/user, params)
if(activated)
- user << "\blue \The [src] is already active!"
+ to_chat(user, "\blue \The [src] is already active!")
+
return
if(!mode.current_directive.directives_complete())
@@ -107,5 +110,6 @@
..()
/obj/machinery/emergency_authentication_device/examine(mob/user)
- user << {"This is a specialized communications device that is able to instantly send a message to Nanotrasen High Command via quantum entanglement with a sister device at CentComm.
- The EAD's status is [get_status()]."}
+ to_chat(user, {"This is a specialized communications device that is able to instantly send a message to Nanotrasen High Command via quantum entanglement
+ with a sister device at CentComm.
+ The EAD's status is [get_status()]."})
diff --git a/code/game/gamemodes/mutiny/key_pinpointer.dm b/code/game/gamemodes/mutiny/key_pinpointer.dm
index 4d4596ab229..6b47fc71ae7 100644
--- a/code/game/gamemodes/mutiny/key_pinpointer.dm
+++ b/code/game/gamemodes/mutiny/key_pinpointer.dm
@@ -14,22 +14,28 @@
active = 1
target = mutiny.captains_key
point_at(target)
- usr << "\blue You calibrate \the [src] to locate the Captain's Authentication Key."
+ to_chat(usr, "\blue You calibrate \the [src] to locate the Captain's Authentication Key.")
+
if (1)
mode = 2
target = mutiny.secondary_key
- usr << "\blue You calibrate \the [src] to locate the Emergency Secondary Authentication Key."
+ to_chat(usr, "\blue You calibrate \the [src] to locate the Emergency Secondary Authentication Key.")
+
else
mode = 0
active = 0
icon_state = "pinoff"
- usr << "\blue You switch \the [src] off."
+ to_chat(usr, "\blue You switch \the [src] off.")
+
/obj/item/weapon/pinpointer/advpinpointer/auth_key/examine(mob/user)
switch(mode)
if (1)
- user << "Is is calibrated for the Captain's Authentication Key."
+ to_chat(user, "Is is calibrated for the Captain's Authentication Key.")
+
if (2)
- user << "It is calibrated for the Emergency Secondary Authentication Key."
+ to_chat(user, "It is calibrated for the Emergency Secondary Authentication Key.")
+
else
- user << "It is switched off."
+ to_chat(user, "It is switched off.")
+
diff --git a/code/game/gamemodes/mutiny/mutiny.dm b/code/game/gamemodes/mutiny/mutiny.dm
index e3edc521f33..4dd0ea1d459 100644
--- a/code/game/gamemodes/mutiny/mutiny.dm
+++ b/code/game/gamemodes/mutiny/mutiny.dm
@@ -91,7 +91,8 @@ datum/game_mode/mutiny
var/list/candidates[0]
for(var/T in subtypesof(/datum/directive))
var/datum/directive/D = new T(src)
-// world << D.name
+// to_chat(world, D.name)
+
if (D.meets_prerequisites())
candidates+=D
return candidates
@@ -126,7 +127,8 @@ datum/game_mode/mutiny
proc/equip_head(datum/mind/head, faction, proc/recruitment_verb)
var/mob/living/carbon/human/H = head.current
- H << "You are the Head [capitalize(faction)]!"
+ to_chat(H, "You are the Head [capitalize(faction)]!")
+
head.special_role = "head_[faction]"
var/slots = get_equipment_slots()
@@ -151,8 +153,10 @@ datum/game_mode/mutiny
proc/add_faction(datum/mind/M, faction, list/faction_list)
if(!can_be_recruited(M, faction))
- M.current << "\red Recruitment canceled; your role has already changed."
- head_mutineer.current << "\red Could not recruit [M]. Their role has changed."
+ to_chat(M.current, "\red Recruitment canceled; your role has already changed.")
+
+ to_chat(head_mutineer.current, "\red Could not recruit [M]. Their role has changed.")
+
return
if(M in loyalists)
@@ -165,11 +169,15 @@ datum/game_mode/mutiny
faction_list+=M
if(faction == "mutineer")
- M.current << fluff.mutineer_tag("You have joined the mutineers!")
- head_mutineer.current << fluff.mutineer_tag("[M] has joined the mutineers!")
+ to_chat(M.current, fluff.mutineer_tag("You have joined the mutineers!"))
+
+ to_chat(head_mutineer.current, fluff.mutineer_tag("[M] has joined the mutineers!"))
+
else
- M.current << fluff.loyalist_tag("You have joined the loyalists!")
- head_loyalist.current << fluff.loyalist_tag("[M] has joined the loyalists!")
+ to_chat(M.current, fluff.loyalist_tag("You have joined the loyalists!"))
+
+ to_chat(head_loyalist.current, fluff.loyalist_tag("[M] has joined the loyalists!"))
+
update_icon(M)
@@ -211,23 +219,30 @@ datum/game_mode/mutiny
return M.special_role == "loyalist"
proc/round_outcome()
- world << "Breaking News
"
+ to_chat(world, "Breaking News
")
+
if (was_bloodbath())
- world << fluff.no_victory()
+ to_chat(world, fluff.no_victory())
+
return
var/directives_completed = current_directive.directives_complete()
var/ead_activated = ead.activated
if (directives_completed && ead_activated)
- world << fluff.loyalist_major_victory()
- else if (directives_completed && !ead_activated)
- world << fluff.loyalist_minor_victory()
- else if (!directives_completed && ead_activated)
- world << fluff.mutineer_minor_victory()
- else if (!directives_completed && !ead_activated)
- world << fluff.mutineer_major_victory()
+ to_chat(world, fluff.loyalist_major_victory())
+
+ else if (directives_completed && !ead_activated)
+ to_chat(world, fluff.loyalist_minor_victory())
+
+ else if (!directives_completed && ead_activated)
+ to_chat(world, fluff.mutineer_minor_victory())
+
+ else if (!directives_completed && !ead_activated)
+ to_chat(world, fluff.mutineer_major_victory())
+
+
+ to_chat(world, sound('sound/machines/twobeep.ogg'))
- world << sound('sound/machines/twobeep.ogg')
proc/update_all_icons()
spawn(0)
@@ -266,17 +281,20 @@ datum/game_mode/mutiny
/datum/game_mode/mutiny/pre_setup()
var/list/loyalist_candidates = get_head_loyalist_candidates()
if(!loyalist_candidates || loyalist_candidates.len == 0)
- world << "\red Mutiny mode aborted: no valid candidates for head loyalist."
+ to_chat(world, "\red Mutiny mode aborted: no valid candidates for head loyalist.")
+
return 0
var/list/mutineer_candidates = get_head_mutineer_candidates()
if(!mutineer_candidates || mutineer_candidates.len == 0)
- world << "\red Mutiny mode aborted: no valid candidates for head mutineer."
+ to_chat(world, "\red Mutiny mode aborted: no valid candidates for head mutineer.")
+
return 0
var/list/directive_candidates = get_directive_candidates()
if(!directive_candidates || directive_candidates.len == 0)
- world << "\red Mutiny mode aborted: no valid candidates for Directive X."
+ to_chat(world, "\red Mutiny mode aborted: no valid candidates for Directive X.")
+
return 0
head_loyalist = pick(loyalist_candidates)
@@ -316,11 +334,13 @@ datum/game_mode/mutiny
candidates += P
if(!candidates.len)
- src << "\red You aren't close enough to anybody that can be recruited."
+ to_chat(src, "\red You aren't close enough to anybody that can be recruited.")
+
return
if(world.time < mode.recruit_loyalist_cooldown)
- src << "\red Wait [MUTINY_RECRUITMENT_COOLDOWN] seconds before recruiting again."
+ to_chat(src, "\red Wait [MUTINY_RECRUITMENT_COOLDOWN] seconds before recruiting again.")
+
return
mode.recruit_loyalist_cooldown = world.time + (MUTINY_RECRUITMENT_COOLDOWN SECONDS)
@@ -328,7 +348,8 @@ datum/game_mode/mutiny
var/mob/living/carbon/human/M = input("Select a person to recruit", "Loyalist recruitment", null) as mob in candidates
if (M)
- src << "Attempting to recruit [M]..."
+ to_chat(src, "Attempting to recruit [M]...")
+
log_admin("[key_name(src)] attempted to recruit [M] as a loyalist.")
message_admins("\red [key_name_admin(src)] attempted to recruit [M] as a loyalist.")
@@ -336,8 +357,10 @@ datum/game_mode/mutiny
if(choice == "Yes")
mode.add_loyalist(M.mind)
else if(choice == "No")
- M << "\red You declined to join the loyalists."
- mode.head_loyalist.current << "\red [M] declined to support the loyalists."
+ to_chat(M, "\red You declined to join the loyalists.")
+
+ to_chat(mode.head_loyalist.current, "\red [M] declined to support the loyalists.")
+
/mob/living/carbon/human/proc/recruit_mutineer()
set name = "Recruit Mutineer"
@@ -353,11 +376,13 @@ datum/game_mode/mutiny
candidates += P
if(!candidates.len)
- src << "\red You aren't close enough to anybody that can be recruited."
+ to_chat(src, "\red You aren't close enough to anybody that can be recruited.")
+
return
if(world.time < mode.recruit_mutineer_cooldown)
- src << "\red Wait [MUTINY_RECRUITMENT_COOLDOWN] seconds before recruiting again."
+ to_chat(src, "\red Wait [MUTINY_RECRUITMENT_COOLDOWN] seconds before recruiting again.")
+
return
mode.recruit_mutineer_cooldown = world.time + (MUTINY_RECRUITMENT_COOLDOWN SECONDS)
@@ -365,7 +390,8 @@ datum/game_mode/mutiny
var/mob/living/carbon/human/M = input("Select a person to recruit", "Mutineer recruitment", null) as mob in candidates
if (M)
- src << "Attempting to recruit [M]..."
+ to_chat(src, "Attempting to recruit [M]...")
+
log_admin("[key_name(src)] attempted to recruit [M] as a mutineer.")
message_admins("\red [key_name_admin(src)] attempted to recruit [M] as a mutineer.")
@@ -373,8 +399,10 @@ datum/game_mode/mutiny
if(choice == "Yes")
mode.add_mutineer(M.mind)
else if(choice == "No")
- M << "\red You declined to join the mutineers."
- mode.head_mutineer.current << "\red [M] declined to support the mutineers."
+ to_chat(M, "\red You declined to join the mutineers.")
+
+ to_chat(mode.head_mutineer.current, "\red [M] declined to support the mutineers.")
+
/proc/get_mutiny_mode()
if(!ticker || !istype(ticker.mode, /datum/game_mode/mutiny))
diff --git a/code/game/gamemodes/mutiny/mutiny_fluff.dm b/code/game/gamemodes/mutiny/mutiny_fluff.dm
index f25e9978e33..66ee7cf2673 100644
--- a/code/game/gamemodes/mutiny/mutiny_fluff.dm
+++ b/code/game/gamemodes/mutiny/mutiny_fluff.dm
@@ -72,8 +72,9 @@ They don't care about us they only care about WEALTH and POWER... Share this mes
Be safe, friend.\" (Unable to Reply)
The crew will be divided by their sense of ethics when a morally turbulent emergency directive arrives with an incomplete command validation code.
The [loyalist_tag("Head Loyalist")] is the Captain, who carries the [loyalist_tag("Captain's Authentication Key")] at all times.
The [mutineer_tag("Head Mutineer")] is a random Head of Staff who carries the [mutineer_tag("Emergency Secondary Authentication Key")].
Loyalists - Follow the Head Loyalist in carrying out [loyalist_tag("Nanotrasen's directives")] then activate the EAD.
Mutineers - Prevent the completion of the [mutineer_tag("improperly validated directives")] and the activation of the EAD.
-