diff --git a/.gitignore b/.gitignore
index 2fde04f537b..6820a3e0460 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,6 @@ info.json
/bot/data
/analysis
/code-fixed
+
+# Player preferences
+players2.sqlite
diff --git a/README.md b/README.md
index 03cff6fb614..f12447acf8c 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# vgstation
-[Website](http://ss13.undo.it) - [Code](http://github.com/d3athrow/vgstation13/) - [IRC](irc://irc.rizon.net/vgstation) (irc.rizon.net #vgstation)
+[Website](http://ss13.pomf.se) - [Code](http://github.com/d3athrow/vgstation13/) - [IRC](irc://irc.rizon.net/vgstation) (irc.rizon.net #vgstation)
---
@@ -21,7 +21,7 @@ This will take a while to download, but it provides an easier method for updatin
Keep in mind that we have multiple branches for various purposes.
-* *master* - "stable" code, used on the main server.
+* *master* - "stable" code, it was used on the main server until we realized we like living on the edge :sunglasses:.
* *Bleeding-Edge* - The latest unstable code. _Please do any development against this branch!_
### INSTALLATION
@@ -84,4 +84,4 @@ We've included a web control panel with some sample data readouts. It's recomme
### IRC Bot Setup
Included in the repo is an IRC bot capable of relaying adminhelps to a specified IRC channel/server (replaces the older one by Skibiliano). Instructions for bot setup are included in the /bot/ folder along with the bot/relay script itself.
-
+
\ No newline at end of file
diff --git a/baystation12.dme b/baystation12.dme
index a6acddb694d..d1aff2a832d 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -377,6 +377,7 @@
#include "code\game\machinery\flasher.dm"
#include "code\game\machinery\floodlight.dm"
#include "code\game\machinery\Freezer.dm"
+#include "code\game\machinery\gashapon.dm"
#include "code\game\machinery\hologram.dm"
#include "code\game\machinery\holosign.dm"
#include "code\game\machinery\igniter.dm"
@@ -620,6 +621,7 @@
#include "code\game\objects\items\mountable_frames\lights.dm"
#include "code\game\objects\items\mountable_frames\lightswitch.dm"
#include "code\game\objects\items\mountable_frames\mountables.dm"
+#include "code\game\objects\items\mountable_frames\newscaster.dm"
#include "code\game\objects\items\mountable_frames\wallmed.dm"
#include "code\game\objects\items\mountable_frames\posters\poster.dm"
#include "code\game\objects\items\robot\robot_designs.dm"
@@ -908,6 +910,7 @@
#include "code\modules\awaymissions\maploader\reader.dm"
#include "code\modules\awaymissions\maploader\swapmaps.dm"
#include "code\modules\awaymissions\maploader\writer.dm"
+#include "code\modules\bomberman\bomberman.dm"
#include "code\modules\client\client defines.dm"
#include "code\modules\client\client procs.dm"
#include "code\modules\client\preferences.dm"
@@ -1383,6 +1386,11 @@
#include "code\modules\power\solars\panel.dm"
#include "code\modules\power\solars\tracker.dm"
#include "code\modules\power\solars\panels\fake.dm"
+#include "code\modules\procedural mapping\mapGenerator.dm"
+#include "code\modules\procedural mapping\mapGeneratorModule.dm"
+#include "code\modules\procedural mapping\mapGeneratorReadme.dm"
+#include "code\modules\procedural mapping\mapGeneratorModules\nature.dm"
+#include "code\modules\procedural mapping\mapGenerators\nature.dm"
#include "code\modules\projectiles\ammunition.dm"
#include "code\modules\projectiles\gun.dm"
#include "code\modules\projectiles\projectile.dm"
@@ -1471,6 +1479,7 @@
#include "code\modules\research\server.dm"
#include "code\modules\research\mechanic\blueprint.dm"
#include "code\modules\research\mechanic\blueprinter.dm"
+#include "code\modules\research\mechanic\component_exchanger.dm"
#include "code\modules\research\mechanic\device_analyser.dm"
#include "code\modules\research\mechanic\flatpack.dm"
#include "code\modules\research\mechanic\flatpacker.dm"
@@ -1590,6 +1599,7 @@
#include "code\modules\spells\targeted\horsemask.dm"
#include "code\modules\spells\targeted\mind_transfer.dm"
#include "code\modules\spells\targeted\shift.dm"
+#include "code\modules\spells\targeted\shoesnatch.dm"
#include "code\modules\spells\targeted\subjugate.dm"
#include "code\modules\spells\targeted\targeted.dm"
#include "code\modules\spells\targeted\projectile\dumbfire.dm"
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index d170afdb0a0..815948c82d4 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -106,7 +106,7 @@
set name = "Rotate Circulator (Clockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, 90)
@@ -118,7 +118,7 @@
set name = "Rotate Circulator (Counterclockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, -90)
diff --git a/code/ATMOSPHERICS/hvac/chiller.dm b/code/ATMOSPHERICS/hvac/chiller.dm
index cb1e8115529..0e4af4c1e82 100644
--- a/code/ATMOSPHERICS/hvac/chiller.dm
+++ b/code/ATMOSPHERICS/hvac/chiller.dm
@@ -80,7 +80,7 @@
if(panel_open && !cell)
var/obj/item/weapon/cell/C = usr.get_active_hand()
if(istype(C))
- usr.drop_item(src)
+ usr.drop_item(C, src)
cell = C
C.add_fingerprint(usr)
diff --git a/code/ATMOSPHERICS/hvac/spaceheater.dm b/code/ATMOSPHERICS/hvac/spaceheater.dm
index 8c7ae14bb48..8934b3f1edb 100644
--- a/code/ATMOSPHERICS/hvac/spaceheater.dm
+++ b/code/ATMOSPHERICS/hvac/spaceheater.dm
@@ -59,7 +59,7 @@
// insert cell
var/obj/item/weapon/cell/C = usr.get_active_hand()
if(istype(C))
- user.drop_item(src)
+ user.drop_item(C, src)
cell = C
C.add_fingerprint(usr)
@@ -142,7 +142,7 @@
if(panel_open && !cell)
var/obj/item/weapon/cell/C = usr.get_active_hand()
if(istype(C))
- usr.drop_item(src)
+ usr.drop_item(C, src)
cell = C
C.add_fingerprint(usr)
diff --git a/code/ATMOSPHERICS/pipe/construction.dm b/code/ATMOSPHERICS/pipe/construction.dm
index 3618536ab70..2a41201a64f 100644
--- a/code/ATMOSPHERICS/pipe/construction.dm
+++ b/code/ATMOSPHERICS/pipe/construction.dm
@@ -262,7 +262,7 @@ var/global/list/nlist = list( \
set name = "Rotate Pipe"
set src in view(1)
- if ( usr.stat || usr.restrained() )
+ if ( usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, -90)
@@ -368,7 +368,7 @@ var/global/list/nlist = list( \
for(var/obj/machinery/atmospherics/M in src.loc)
if(M.initialize_directions & pipe_dir) // matches at least one direction on either type of pipe
- user << "\red There is already a pipe at that location."
+ user << "There is already a pipe at that location."
return 1
// no conflicts found
@@ -456,7 +456,7 @@ var/global/list/nlist = list( \
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
user.visible_message( \
"[user] fastens \the [src].", \
- "\blue You have fastened \the [src].", \
+ "You have fastened \the [src].", \
"You hear a ratchet.")
returnToPool(src) // remove the pipe item
return 0
@@ -483,11 +483,11 @@ var/global/list/nlist = list( \
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if(!locate(/obj/machinery/atmospherics/pipe, src.loc))
- user << "\red You need to fasten it to a pipe"
+ user << "You need to fasten it to a pipe"
return 1
new/obj/machinery/meter( src.loc )
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
- user << "\blue You have fastened the meter to the pipe"
+ user << "You have fastened the meter to the pipe"
del(src)
@@ -506,5 +506,5 @@ var/global/list/nlist = list( \
return ..()
new/obj/machinery/air_sensor( src.loc )
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
- user << "\blue You have fastened the gas sensor"
+ user << "You have fastened the gas sensor"
del(src)
diff --git a/code/ATMOSPHERICS/pipe/pipe_dispenser.dm b/code/ATMOSPHERICS/pipe/pipe_dispenser.dm
index 1cf93b2b95d..90f9f806699 100644
--- a/code/ATMOSPHERICS/pipe/pipe_dispenser.dm
+++ b/code/ATMOSPHERICS/pipe/pipe_dispenser.dm
@@ -125,8 +125,8 @@
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
src.add_fingerprint(usr)
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor))
- usr << "\blue You put [W] back to [src]."
- user.drop_item()
+ usr << "You put [W] back to [src]."
+ user.drop_item(W, src)
if(istype(W, /obj/item/pipe))
returnToPool(W)
else
diff --git a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm b/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm
index 96376b3d14b..84aaff02a72 100644
--- a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm
+++ b/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm
@@ -48,7 +48,7 @@ obj/item/weapon/tank
adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num)
set src in world
if(!air_contents)
- usr << "\red ERROR: no gas_mixture associated with this tank"
+ usr << "ERROR: no gas_mixture associated with this tank"
return null
air_contents.temperature = temperature
@@ -74,7 +74,7 @@ turf/simulated/floor
else
usr << "Space Borders: None"
else
- usr << "\blue [x],[y] has no parent air group."
+ usr << "[x],[y] has no parent air group."
verb
create_wall()
@@ -329,7 +329,7 @@ obj/machinery/atmospherics
set src in world
set category = "Minor"
- world << "\blue [x],[y]"
+ world << "[x],[y]"
world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]"
for(var/obj/O in network_node1.normal_members)
world << "member: [O.x], [O.y]"
@@ -406,7 +406,7 @@ turf/simulated
set src in world
set category = "Minor"
var/datum/gas_mixture/GM = return_air()
- usr << "\blue @[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("\red BURNING"):(null)]"
+ usr << "@[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("BURNING"):(null)]"
for(var/datum/gas/trace_gas in GM.trace_gases)
usr << "[trace_gas.type]: [trace_gas.moles]"
@@ -515,7 +515,7 @@ mob
fire_report()
set category = "Debug"
- usr << "\b \red Fire Report"
+ usr << "Fire Report"
for(var/obj/effect/hotspot/flame in world)
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"
diff --git a/code/FEA/FEA_system.dm b/code/FEA/FEA_system.dm
index 574fd1ba268..e9a84953fd4 100644
--- a/code/FEA/FEA_system.dm
+++ b/code/FEA/FEA_system.dm
@@ -146,7 +146,7 @@ datum
setup()
set background = 1
- world << "\red \b Processing Geometry..."
+ world << "Processing Geometry..."
sleep(1)
var/start_time = world.timeofday
@@ -156,7 +156,7 @@ datum
assemble_group_turf(S)
S.update_air_properties()
- world << "\red \b Geometry processed in [(world.timeofday-start_time)/10] seconds!"
+ world << "Geometry processed in [(world.timeofday-start_time)/10] seconds!"
assemble_group_turf(turf/simulated/base)
diff --git a/code/TriDimension/Movement.dm b/code/TriDimension/Movement.dm
index dfb529df5b1..bb76beb60a8 100644
--- a/code/TriDimension/Movement.dm
+++ b/code/TriDimension/Movement.dm
@@ -6,7 +6,7 @@ var/minZ = 2
// Note that this assumes the ship's top is at z=1 and bottom at z=4
/obj/item/weapon/tank/jetpack/proc/move_z(cardinal, mob/user as mob)
if (user.z > 1)
- user << "\red There is nothing of interest in that direction."
+ user << "There is nothing of interest in that direction."
return
if(allow_thrust(0.01, user))
switch(cardinal)
@@ -21,14 +21,14 @@ var/minZ = 2
for(var/atom/A in T.contents)
if(T.density)
blocked = 1
- user << "\red You bump into [T.name]."
+ user << "You bump into [T.name]."
break
if(!blocked)
user.Move(T)
else
- user << "\red You bump into the ship's plating."
+ user << "You bump into the ship's plating."
else
- user << "\red The ship's gravity well keeps you in orbit!" // Assuming the ship starts on z level 1, you don't want to go past it
+ user << "The ship's gravity well keeps you in orbit!" // Assuming the ship starts on z level 1, you don't want to go past it
if (DOWN) // Going down!
if (user.z < 1) // If we aren't at the very bottom of the ship, or out in space
@@ -39,11 +39,11 @@ var/minZ = 2
for(var/atom/A in T.contents)
if(T.density)
blocked = 1
- user << "\red You bump into [T.name]."
+ user << "You bump into [T.name]."
break
if(!blocked)
user.Move(T)
else
- user << "\red You bump into the ship's plating."
+ user << "You bump into the ship's plating."
else
- user << "\red The ship's gravity well keeps you in orbit!"
\ No newline at end of file
+ user << "The ship's gravity well keeps you in orbit!"
\ No newline at end of file
diff --git a/code/TriDimension/Structures.dm b/code/TriDimension/Structures.dm
index 85e499f7ad4..530d4dd606a 100644
--- a/code/TriDimension/Structures.dm
+++ b/code/TriDimension/Structures.dm
@@ -68,7 +68,7 @@
if(!target || !istype(target.loc, /turf))
del src
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
- M.visible_message("\blue \The [M] climbs [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You climb [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.")
+ M.visible_message("\The [M] climbs [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You climb [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.")
M.Move(target.loc)
@@ -116,7 +116,7 @@
del src
if(M.z == z && get_dist(src,M) <= 1)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
- M.visible_message("\blue \The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.")
+ M.visible_message("\The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.")
M.Move(target.loc)
flick(top_icon_state_close,top_hatch)
bottom_hatch.overlays -= green_overlay
diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_plants.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_plants.dm
index 3f1a7c2f4bb..7f7e814cda7 100644
--- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_plants.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_plants.dm
@@ -30,12 +30,12 @@
if(istype(I, /obj/item/weapon/hatchet) && !stump)
if(indestructable)
//this bush marks the edge of the map, you can't destroy it
- user << "\red You flail away at the undergrowth, but it's too thick here."
+ user << "You flail away at the undergrowth, but it's too thick here."
else
- user.visible_message("\red [user] begins clearing away [src].","\red You begin clearing away [src].")
+ user.visible_message("[user] begins clearing away [src].","You begin clearing away [src].")
spawn(rand(15,30))
if(get_dist(user,src) < 2)
- user << "\blue You clear away [src]."
+ user << "You clear away [src]."
var/obj/item/stack/sheet/wood/W = new(src.loc)
W.amount = rand(3,15)
if(prob(50))
@@ -102,7 +102,7 @@ var/jungle_plants_init = 0
/obj/structure/jungle_plant/attack_hand(var/mob/user as mob)
if(fruits_left > 0)
fruits_left--
- user << "\blue You pick a fruit off [src]."
+ user << "You pick a fruit off [src]."
var/obj/item/weapon/reagent_containers/food/snacks/grown/jungle_fruit/J = new (src.loc)
J.potency = plant_strength
@@ -116,4 +116,4 @@ var/jungle_plants_init = 0
fruit_overlay.Blend(rgb(fruit_r, fruit_g, fruit_b), ICON_ADD)
overlays += fruit_overlay
else
- user << "\red There are no fruit left on [src]."
+ user << "There are no fruit left on [src]."
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
index e42eedac03f..17c87e428a9 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
@@ -142,13 +142,13 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
//have a max of 1000 moles suspended
if(held_plasma.toxins < transfer_ratio * 1000)
var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION)
- //world << "\blue moles_covered: [moles_covered]"
+ //world << "moles_covered: [moles_covered]"
//
var/datum/gas_mixture/gas_covered = environment.remove(moles_covered)
var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture()
//
plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio)
- //world << "\blue[plasma_captured.toxins] moles of plasma captured"
+ //world << "[plasma_captured.toxins] moles of plasma captured"
plasma_captured.temperature = gas_covered.temperature
plasma_captured.update_values()
//
@@ -327,7 +327,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
//pick one of the unprocessed reacting reagents randomly
var/cur_primary_reactant = pick(primary_reactant_pool)
primary_reactant_pool.Remove(cur_primary_reactant)
- //world << "\blue primary reactant chosen: [cur_primary_reactant]"
+ //world << "primary reactant chosen: [cur_primary_reactant]"
//grab all the possible reactants to have a reaction with
var/list/possible_secondary_reactants = reactants_reacting_pool.Copy()
@@ -343,12 +343,12 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
continue
var/datum/fusion_reaction/cur_reaction = get_fusion_reaction(cur_primary_reactant, cur_secondary_reactant)
if(cur_reaction)
- //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]"
+ //world << "secondary reactant: [cur_secondary_reactant], [reaction_products.len]"
possible_reactions.Add(cur_reaction)
//if there are no possible reactions here, abandon this primary reactant and move on
if(!possible_reactions.len)
- //world << "\blue no reactions"
+ //world << "no reactions"
continue
//split up the reacting atoms between the possible reactions
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
index ce1a5978441..3efc5a022b3 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
@@ -96,7 +96,7 @@ max volume of plasma storeable by the field = the total volume of a number of ti
if(!emagged)
locked = 0
emagged = 1
- user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.")
+ user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
return
/obj/machinery/power/rust_core/attackby(obj/item/W, mob/user)
@@ -106,7 +106,7 @@ max volume of plasma storeable by the field = the total volume of a number of ti
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged)
- user << "\red The lock seems to be broken"
+ user << "The lock seems to be broken"
return
if(src.allowed(user))
if(owned_field)
@@ -114,9 +114,9 @@ max volume of plasma storeable by the field = the total volume of a number of ti
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "\red The controls can only be locked when the [src] is online"
+ user << "The controls can only be locked when the [src] is online"
else
- user << "\red Access denied."
+ user << "Access denied."
return
/obj/machinery/power/rust_core/attack_ai(mob/user)
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
index 3ce9334ef9d..cb81343b6f4 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
@@ -15,12 +15,12 @@
/obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user)
if(istype(I,/obj/item/weapon/fuel_assembly) && !opened)
if(cur_assembly)
- user << "\red There is already a fuel rod assembly in there!"
+ user << "There is already a fuel rod assembly in there!"
else
cur_assembly = I
- user.drop_item(src)
+ user.drop_item(I, src)
icon_state = "port1"
- user << "\blue You insert [I] into [src]. Touch the panel again to insert [I] into the injector."
+ user << "You insert [I] into [src]. Touch the panel again to insert [I] into the injector."
/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user)
add_fingerprint(user)
@@ -29,16 +29,16 @@
if(cur_assembly)
if(try_insert_assembly())
- user << "\blue \icon[src] [src] inserts it's fuel rod assembly into an injector."
+ user << "\icon[src] [src] inserts it's fuel rod assembly into an injector."
else
if(eject_assembly())
- user << "\red \icon[src] [src] ejects it's fuel assembly. Check the fuel injector status."
+ user << "\icon[src] [src] ejects it's fuel assembly. Check the fuel injector status."
else if(try_draw_assembly())
- user << "\blue \icon[src] [src] draws a fuel rod assembly from an injector."
+ user << "\icon[src] [src] draws a fuel rod assembly from an injector."
else if(try_draw_assembly())
- user << "\blue \icon[src] [src] draws a fuel rod assembly from an injector."
+ user << "\icon[src] [src] draws a fuel rod assembly from an injector."
else
- user << "\red \icon[src] [src] was unable to draw a fuel rod assembly from an injector."
+ user << "\icon[src] [src] was unable to draw a fuel rod assembly from an injector."
/obj/machinery/rust_fuel_assembly_port/proc/try_insert_assembly()
var/success = 0
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
index 0c194c24dbc..218bc09439b 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
@@ -49,35 +49,35 @@
user << "You begin removing the circuitboard" //lpeters - fixed grammar issues
if(do_after(user, 50))
user.visible_message(\
- "\red [user.name] has removed the circuitboard from [src.name]!",\
- "\blue You remove the circuitboard.")
+ "[user.name] has removed the circuitboard from [src.name]!",\
+ "You remove the circuitboard.")
has_electronics = 0
new /obj/item/weapon/module/rust_fuel_port(loc)
has_electronics &= ~1
else
opened = 0
icon_state = "port0"
- user << "\blue You close the maintenance cover."
+ user << "You close the maintenance cover."
else
if(cur_assembly)
- user << "\red You cannot open the cover while there is a fuel assembly inside."
+ user << "You cannot open the cover while there is a fuel assembly inside."
else
opened = 1
- user << "\blue You open the maintenance cover."
+ user << "You open the maintenance cover."
icon_state = "port2"
return
else if (istype(W, /obj/item/stack/cable_coil) && opened && !(has_electronics & 2))
var/obj/item/stack/cable_coil/C = W
if(C.amount < 10)
- user << "\red You need more wires."
+ user << "You need more wires."
return
user << "You start adding cables to the frame..."
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20) && C.amount >= 10)
C.use(10)
user.visible_message(\
- "\red [user.name] has added cables to the port frame!",\
+ "[user.name] has added cables to the port frame!",\
"You add cables to the port frame.")
has_electronics &= 2
return
@@ -88,7 +88,7 @@
if(do_after(user, 50))
new /obj/item/stack/cable_coil(loc,10)
user.visible_message(\
- "\red [user.name] cut the cabling inside the port.",\
+ "[user.name] cut the cabling inside the port.",\
"You cut the cabling inside the port.")
has_electronics &= ~2
return
@@ -105,7 +105,7 @@
else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics)
var/obj/item/weapon/weldingtool/WT = W
if (WT.get_fuel() < 3)
- user << "\blue You need more welding fuel to complete this task."
+ user << "You need more welding fuel to complete this task."
return
user << "You start welding the port frame..."
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
@@ -113,9 +113,9 @@
if(!src || !WT.remove_fuel(3, user)) return
new /obj/item/mounted/frame/rust_fuel_assembly_port(loc)
user.visible_message(\
- "\red [src] has been cut away from the wall by [user.name].",\
+ "[src] has been cut away from the wall by [user.name].",\
"You detached the port frame.",\
- "\red You hear welding.")
+ "You hear welding.")
del(src)
return
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
index e2d15e06b6d..8e3895cd933 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
@@ -80,12 +80,12 @@ var/const/max_assembly_amount = 300
compressed_matter -= 10
ejected = 1
if(ejected)
- usr << "\blue \icon[src] [src] ejects some compressed matter units."
+ usr << "\icon[src] [src] ejects some compressed matter units."
else
- usr << "\red \icon[src] there are no more compressed matter units in [src]."
+ usr << "\icon[src] there are no more compressed matter units in [src]."
if( href_list["activate"] )
- //world << "\blue New fuel rod assembly"
+ //world << "New fuel rod assembly"
var/obj/item/weapon/fuel_assembly/F = new(src)
var/fail = 0
var/old_matter = compressed_matter
@@ -102,11 +102,11 @@ var/const/max_assembly_amount = 300
: (req_matter < compressed_matter ? "req_matter < compressed_matter" : "req_matter == compressed_matter")]"*/
fail = 1
break
- //world << "\blue [reagent]: new_assembly_quantities[reagent] "
+ //world << "[reagent]: new_assembly_quantities[reagent] "
if(fail)
del(F)
compressed_matter = old_matter
- usr << "\red \icon[src] [src] flashes red: \'Out of matter.\'"
+ usr << "\icon[src] [src] flashes red: \'Out of matter.\'"
else
F.loc = src.loc//get_step(get_turf(src), src.dir)
F.percent_depleted = 0
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm
index c5e7a13091f..aff581b8320 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm
@@ -50,21 +50,21 @@
user << "You begin removing the circuitboard" //lpeters - fixed grammar issues
if(do_after(user, 50))
user.visible_message(\
- "\red [user.name] has removed the circuitboard from [src.name]!",\
- "\blue You remove the circuitboard board.")
+ "[user.name] has removed the circuitboard from [src.name]!",\
+ "You remove the circuitboard board.")
has_electronics = 0
new /obj/item/weapon/module/rust_fuel_compressor(loc)
has_electronics &= ~1
else
opened = 0
icon_state = "fuel_compressor0"
- user << "\blue You close the maintenance cover."
+ user << "You close the maintenance cover."
else
if(compressed_matter > 0)
- user << "\red You cannot open the cover while there is compressed matter inside."
+ user << "You cannot open the cover while there is compressed matter inside."
else
opened = 1
- user << "\blue You open the maintenance cover."
+ user << "You open the maintenance cover."
icon_state = "fuel_compressor1"
return
@@ -77,7 +77,7 @@
user << "You [ locked ? "lock" : "unlock"] the compressor interface."
update_icon()
else
- user << "\red Access denied."
+ user << "Access denied."
return
else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card
@@ -97,14 +97,14 @@
else if (istype(W, /obj/item/stack/cable_coil) && opened && !(has_electronics & 2))
var/obj/item/stack/cable_coil/C = W
if(C.amount < 10)
- user << "\red You need more wires."
+ user << "You need more wires."
return
user << "You start adding cables to the compressor frame..."
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20) && C.amount >= 10)
C.use(10)
user.visible_message(\
- "\red [user.name] has added cables to the compressor frame!",\
+ "[user.name] has added cables to the compressor frame!",\
"You add cables to the port frame.")
has_electronics &= 2
return
@@ -115,7 +115,7 @@
if(do_after(user, 50))
new /obj/item/stack/cable_coil(loc,10)
user.visible_message(\
- "\red [user.name] cut the cabling inside the compressor.",\
+ "[user.name] cut the cabling inside the compressor.",\
"You cut the cabling inside the port.")
has_electronics &= ~2
return
@@ -132,7 +132,7 @@
else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics)
var/obj/item/weapon/weldingtool/WT = W
if (WT.get_fuel() < 3)
- user << "\blue You need more welding fuel to complete this task."
+ user << "You need more welding fuel to complete this task."
return
user << "You start welding the compressor frame..."
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
@@ -140,9 +140,9 @@
if(!src || !WT.remove_fuel(3, user)) return
new /obj/item/mounted/frame/rust_fuel_assembly_port(loc)
user.visible_message(\
- "\red [src] has been cut away from the wall by [user.name].",\
+ "[src] has been cut away from the wall by [user.name].",\
"You detached the compressor frame.",\
- "\red You hear welding.")
+ "You hear welding.")
del(src)
return
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm
index 6b850fd0174..85601279ad3 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm
@@ -53,7 +53,7 @@
if(!emagged)
locked = 0
emagged = 1
- user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.")
+ user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
return 1
return -1
/obj/machinery/power/rust_fuel_injector/attackby(obj/item/W, mob/user)
@@ -62,19 +62,19 @@
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged)
- user << "\red The lock seems to be broken"
+ user << "The lock seems to be broken"
return
if(src.allowed(user))
src.locked = !src.locked
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
- user << "\red Access denied."
+ user << "Access denied."
return
if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly)
if(emergency_insert_ready)
cur_assembly = W
- user.drop_item(src)
+ user.drop_item(W, src)
emergency_insert_ready = 0
return
@@ -164,7 +164,7 @@
if( href_list["fuel_usage"] )
var/new_usage = text2num(input("Enter new fuel usage (0.01% - 100%)", "Modifying fuel usage", fuel_usage * 100))
if(!new_usage)
- usr << "\red That's not a valid number."
+ usr << "That's not a valid number."
return
new_usage = max(new_usage, 0.01)
new_usage = min(new_usage, 100)
@@ -245,17 +245,17 @@
break
if(success)
- src.visible_message("\blue \icon[src] a green light flashes on [src].")
+ src.visible_message("\icon[src] a green light flashes on [src].")
updateDialog()
else
- src.visible_message("\red \icon[src] a red light flashes on [src].")
+ src.visible_message("\icon[src] a red light flashes on [src].")
/obj/machinery/power/rust_fuel_injector/verb/rotate_clock()
set category = "Object"
set name = "Rotate Generator (Clockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, 90)
@@ -265,7 +265,7 @@
set name = "Rotate Generator (Counterclockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, -90)
\ No newline at end of file
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm
index b01155a4fdd..c30ae50d18b 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm
@@ -36,7 +36,7 @@
if( href_list["modifypower"] )
var/new_val = text2num(input("Enter new emission power level (0.001 - 0.01)", "Modifying power level (MeV)", mega_energy))
if(!new_val)
- usr << "\red That's not a valid number."
+ usr << "That's not a valid number."
return
new_val = min(new_val,0.01)
new_val = max(new_val,0.001)
@@ -47,7 +47,7 @@
if( href_list["modifyrate"] )
var/new_val = text2num(input("Enter new emission rate (1 - 10)", "Modifying emission rate (sec)", rate))
if(!new_val)
- usr << "\red That's not a valid number."
+ usr << "That's not a valid number."
return
new_val = min(new_val,1)
new_val = max(new_val,10)
@@ -58,7 +58,7 @@
if( href_list["modifyfreq"] )
var/new_val = text2num(input("Enter new emission frequency (1 - 50000)", "Modifying emission frequency (GHz)", frequency))
if(!new_val)
- usr << "\red That's not a valid number."
+ usr << "That's not a valid number."
return
new_val = min(new_val,1)
new_val = max(new_val,50000)
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
index 2d32a9a7855..16009316370 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
@@ -49,5 +49,5 @@
/obj/effect/rust_particle_catcher/Bumped(atom/AM)
if(ismob(AM) && density && prob(10))
- AM << "\red A powerful force pushes you back."
+ AM << "A powerful force pushes you back."
..()
diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm
index 5ed83301d3a..51595ba5ccb 100644
--- a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm
+++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm
@@ -73,7 +73,7 @@
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
updateDialog()
else
- user << "\red Access denied."
+ user << "Access denied."
/obj/machinery/shield_capacitor/attack_paw(user as mob)
return src.attack_hand(user)
diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm
index cd06f734873..6a241b4e05c 100644
--- a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm
+++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm
@@ -82,7 +82,7 @@
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
updateDialog()
else
- user << "\red Access denied."
+ user << "Access denied."
/obj/machinery/shield_gen/attack_paw(user as mob)
return src.attack_hand(user)
diff --git a/code/WorkInProgress/Cael_Aislinn/Supermatter/LaserComputer.dm b/code/WorkInProgress/Cael_Aislinn/Supermatter/LaserComputer.dm
index 7c49cac831a..b93a690f567 100644
--- a/code/WorkInProgress/Cael_Aislinn/Supermatter/LaserComputer.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Supermatter/LaserComputer.dm
@@ -51,7 +51,7 @@
var/obj/machinery/engine/laser/laser = src.laser[1]
if(!laser)
- t += "\red No laser found"
+ t += "No laser found"
else
diff --git a/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm b/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm
index 94a1993c692..391dfb2a9f2 100644
--- a/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm
@@ -64,9 +64,9 @@
src.use_power = 2
update_icon()
else
- user << "\red The controls are locked!"
+ user << "The controls are locked!"
else
- user << "\red The [src] needs to be firmly secured to the floor first."
+ user << "The [src] needs to be firmly secured to the floor first."
return 1
@@ -119,7 +119,7 @@
if(!emagged)
locked = 0
emagged = 1
- user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.")
+ user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
return 1
return -1
@@ -129,7 +129,7 @@
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged)
- user << "\red The lock seems to be broken"
+ user << "The lock seems to be broken"
return
if(src.allowed(user))
if(active)
@@ -137,9 +137,9 @@
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "\red The controls can only be locked when the [src] is online"
+ user << "The controls can only be locked when the [src] is online"
else
- user << "\red Access denied."
+ user << "Access denied."
return
return
diff --git a/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm b/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm
index 85bcc084b7a..69a3c83adb5 100644
--- a/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm
+++ b/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm
@@ -139,7 +139,7 @@
spawn(rand(4,120) * 10)
M.explode()
for(var/mob/P in view(7))
- P.visible_message("\red The missile skids to a halt, vibrating and sparking ominously!")
+ P.visible_message("The missile skids to a halt, vibrating and sparking ominously!")
if(!cur_target)
cur_target = get_new_target() //get new target
@@ -252,10 +252,10 @@
playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has slashed at []!", M, src), 1)
+ O.show_message(text("[] has slashed at []!", M, src), 1)
src.health -= 15
if (src.health <= 0)
src.die()
else
- M << "\green That object is useless to you."
+ M << "That object is useless to you."
return
diff --git a/code/WorkInProgress/Chinsky/ashtray.dm b/code/WorkInProgress/Chinsky/ashtray.dm
index 82a4f1ca436..1f151411434 100644
--- a/code/WorkInProgress/Chinsky/ashtray.dm
+++ b/code/WorkInProgress/Chinsky/ashtray.dm
@@ -22,7 +22,7 @@
if (contents.len >= max_butts)
user << "This ashtray is full."
return
- user.drop_item(src)
+ user.drop_item(W, src)
var/obj/item/clothing/mask/cigarette/cig = W
if(istype(cig, /obj/item/weapon/cigbutt))
user << "You drop the [cig] into [src]."
@@ -54,7 +54,7 @@
die()
return
if (contents.len)
- src.visible_message("\red [src] slams into [hit_atom] spilling its contents!")
+ src.visible_message("[src] slams into [hit_atom] spilling its contents!")
for (var/obj/item/clothing/mask/cigarette/O in contents)
contents -= O
O.loc = src.loc
@@ -62,7 +62,7 @@
return ..()
/obj/item/ashtray/proc/die()
- src.visible_message("\red [src] shatters spilling its contents!")
+ src.visible_message("[src] shatters spilling its contents!")
for (var/obj/item/clothing/mask/cigarette/O in contents)
contents -= O
O.loc = src.loc
diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm
index e3e5e8542b8..2be14d91462 100644
--- a/code/WorkInProgress/Cib/MedicalSideEffects.dm
+++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm
@@ -71,7 +71,7 @@
/datum/medical_effect/headache/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("alkysine") || H.reagents.has_reagent("tramadol"))
- //H << "\red Your head stops throbbing.." // Halt spam.
+ //H << "Your head stops throbbing.." // Halt spam.
return 1
return 0
@@ -93,7 +93,7 @@
/datum/medical_effect/bad_stomach/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("anti_toxin"))
- H << "\red Your stomach feels a little better now.."
+ H << "Your stomach feels a little better now.."
return 1
return 0
@@ -118,7 +118,7 @@
/datum/medical_effect/cramps/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("inaprovaline"))
- H << "\red The cramps let up.."
+ H << "The cramps let up.."
return 1
return 0
@@ -143,6 +143,6 @@
/datum/medical_effect/itch/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("inaprovaline"))
- H << "\red The itching stops.."
+ H << "The itching stops.."
return 1
return 0
\ No newline at end of file
diff --git a/code/WorkInProgress/Cutelilduck/human_resources.dm b/code/WorkInProgress/Cutelilduck/human_resources.dm
index effa158b565..81ae1e90258 100644
--- a/code/WorkInProgress/Cutelilduck/human_resources.dm
+++ b/code/WorkInProgress/Cutelilduck/human_resources.dm
@@ -46,7 +46,7 @@
target_name = str
name = "[target_name]'s demotion microchip"
desc = desc + " Stamped by:"
- user << "\blue The demotion microchip for [src.target_name] is now ready to be stamped."
+ user << "The demotion microchip for [src.target_name] is now ready to be stamped."
/obj/item/demote_chip/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/stamp))
@@ -56,39 +56,39 @@
if(cap == 0)
desc = desc + "/Captain"
cap = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/hop))
if(hop == 0)
desc = desc + "/HoP"
hop = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/hos))
if(hos == 0)
desc = desc + "/HoS"
hos = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/ce))
if(ce == 0)
desc = desc + "/CE"
ce = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/rd))
if(rd == 0)
desc = desc + "/RD"
rd = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/cmo))
if(cmo == 0)
desc = desc + "/CMO"
cmo = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
if(istype(S, /obj/item/weapon/stamp/clown))
if(clown == 0)
desc = desc + "/HONK"
clown = 1
- user << "\blue You stamp the demotion microchip of [target_name]."
+ user << "You stamp the demotion microchip of [target_name]."
else
- user << "\blue The chip has not been initialized."
+ user << "The chip has not been initialized."
else
return ..()
@@ -97,9 +97,9 @@
if(istype(I, /obj/item/demote_chip/))
var/obj/item/demote_chip/DE = I
if(registered_name != DE.target_name)
- user << "\blue Failed to apply, names do not match."
+ user << "Failed to apply, names do not match."
else if(bans != null)
- user << "\blue This card already has a microchip applied"
+ user << "This card already has a microchip applied"
else
icon_state = "centcom_old"
bans = "9" //if get_region_accesses ever uses 9 we're fucked
@@ -112,11 +112,11 @@
if(istype(I, /obj/item/demote_chip))
var/obj/item/demote_chip/D = I
if(registered_name != D.target_name)
- user << "\blue Failed to apply, names do not match."
+ user << "Failed to apply, names do not match."
else if(bans != null)
- user << "\blue This card already has a microchip applied"
+ user << "This card already has a microchip applied"
else if(icon_state == "gold")
- user << "\blue This microchip cannot apply to this card type."
+ user << "This microchip cannot apply to this card type."
else
if(D.cap == 1)
@@ -139,7 +139,7 @@
access -= get_region_accesses(2)
bans = bans + "2"
if(bans == null)
- user << "\blue You require at least one stamp."
+ user << "You require at least one stamp."
return
icon_state = "centcom_old"
del(D)
diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm
index 1274bfa6b89..bd67061e7a1 100644
--- a/code/WorkInProgress/Mini/ATM.dm
+++ b/code/WorkInProgress/Mini/ATM.dm
@@ -51,7 +51,7 @@ log transactions
if(linked_db && ( (linked_db.stat & NOPOWER) || !linked_db.activated ) )
linked_db = null
authenticated_account = null
- src.visible_message("\red \icon[src] [src] buzzes rudely, \"Connection to remote database lost.\"")
+ src.visible_message("\icon[src] [src] buzzes rudely, \"Connection to remote database lost.\"")
updateDialog()
if(ticks_left_timeout > 0)
@@ -88,10 +88,18 @@ log transactions
break
/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob)
+ if(iswrench(I))
+ user.visible_message("[user] begins to take apart the [src]!", "You start to take apart the [src]")
+ if(do_after(user, 40))
+ user.visible_message("[user] disassembles the [src]!", "You disassemble the [src]")
+ playsound(get_turf(src), 'sound/items/Ratchet.ogg', 100, 1)
+ new /obj/item/stack/sheet/metal (src.loc,4)
+ qdel(src)
+ return
if(istype(I, /obj/item/weapon/card))
var/obj/item/weapon/card/id/idcard = I
if(!held_card)
- usr.drop_item(src)
+ usr.drop_item(idcard, src)
held_card = idcard
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
authenticated_account = null
@@ -122,7 +130,7 @@ log transactions
/obj/machinery/atm/attack_hand(mob/user as mob)
if(istype(user, /mob/living/silicon))
- user << "\red Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005."
+ user << "Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005."
return
if(get_dist(src,user) <= 1)
//check to see if the user has low security enabled
@@ -277,11 +285,11 @@ log transactions
T.time = worldtime2text()
failed_account.transaction_log.Add(T)
else
- usr << "\red \icon[src] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining."
+ usr << "\icon[src] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining."
previous_account_number = tried_account_num
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
else
- usr << "\red \icon[src] incorrect pin/account combination entered."
+ usr << "\icon[src] incorrect pin/account combination entered."
number_incorrect_tries = 0
else
playsound(src, 'sound/machines/twobeep.ogg', 50, 1)
@@ -297,7 +305,7 @@ log transactions
T.time = worldtime2text()
authenticated_account.transaction_log.Add(T)
- usr << "\blue \icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'"
+ usr << "\icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'"
previous_account_number = tried_account_num
if("withdrawal")
@@ -310,7 +318,7 @@ log transactions
//remove the money
if(amount > 10000) // prevent crashes
- usr << "\blue The ATM's screen flashes, 'Maximum single withdrawl limit reached, defaulting to 10,000.'"
+ usr << "The ATM's screen flashes, 'Maximum single withdrawl limit reached, defaulting to 10,000.'"
amount = 10000
authenticated_account.money -= amount
withdraw_arbitrary_sum(amount)
@@ -366,7 +374,7 @@ log transactions
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
- usr.drop_item(src)
+ usr.drop_item(I, src)
held_card = I
if("logout")
authenticated_account = null
@@ -391,7 +399,7 @@ log transactions
if(I)
authenticated_account = linked_db.attempt_account_access(I.associated_account_number)
if(authenticated_account)
- human_user << "\blue \icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'"
+ human_user << "\icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'"
//create a transaction log entry
var/datum/transaction/T = new()
diff --git a/code/WorkInProgress/Mini/atmos_control.dm b/code/WorkInProgress/Mini/atmos_control.dm
index 9549965d28a..224171ad6d5 100644
--- a/code/WorkInProgress/Mini/atmos_control.dm
+++ b/code/WorkInProgress/Mini/atmos_control.dm
@@ -77,8 +77,8 @@ var/global/list/atmos_controllers = list()
/obj/machinery/computer/atmoscontrol/attackby(var/obj/item/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
- user.visible_message("\red \The [user] swipes \a [I] through \the [src], causing the screen to flash!",\
- "\red You swipe your [I] through \the [src], the screen flashing as you gain full control.",\
+ user.visible_message("\The [user] swipes \a [I] through \the [src], causing the screen to flash!",\
+ "You swipe your [I] through \the [src], the screen flashing as you gain full control.",\
"You hear the swipe of a card through a reader, and an electronic warble.")
emagged = 1
overridden = 1
diff --git a/code/WorkInProgress/autopsy.dm b/code/WorkInProgress/autopsy.dm
index 8fd6c232f70..9e9ac92879a 100644
--- a/code/WorkInProgress/autopsy.dm
+++ b/code/WorkInProgress/autopsy.dm
@@ -80,7 +80,7 @@
set category = "Object"
set src in view(usr, 1)
set name = "Print Data"
- if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
+ if(usr.stat || !(istype(usr,/mob/living/carbon/human)) || (usr.status_flags & FAKEDEATH))
usr << "No."
return
@@ -151,7 +151,7 @@
scan_data += " "
for(var/mob/O in viewers(usr))
- O.show_message("\red \the [src] rattles and prints out a sheet of paper.", 1)
+ O.show_message("\the [src] rattles and prints out a sheet of paper.", 1)
sleep(10)
@@ -187,7 +187,7 @@
src.wdata = list()
src.chemtraces = list()
src.timeofdeath = null
- user << "\red A new patient has been registered.. Purging data for previous patient."
+ user << "A new patient has been registered.. Purging data for previous patient."
src.timeofdeath = M.timeofdeath
@@ -199,7 +199,7 @@
usr << "You have to cut the limb open first!"
return
for(var/mob/O in viewers(M))
- O.show_message("\red [user.name] scans the wounds on [M.name]'s [S.display_name] with \the [src.name]", 1)
+ O.show_message("[user.name] scans the wounds on [M.name]'s [S.display_name] with \the [src.name]", 1)
src.add_data(S)
diff --git a/code/WorkInProgress/buildmode.dm b/code/WorkInProgress/buildmode.dm
index 2d35ee5d557..2f67f7c6d5a 100644
--- a/code/WorkInProgress/buildmode.dm
+++ b/code/WorkInProgress/buildmode.dm
@@ -79,35 +79,35 @@
Click()
switch(master.cl.buildmode)
if(1)
- usr << "\blue ***********************************************************"
- usr << "\blue Left Mouse Button = Construct / Upgrade"
- usr << "\blue Right Mouse Button = Deconstruct / Delete / Downgrade"
- usr << "\blue Left Mouse Button + ctrl = R-Window"
- usr << "\blue Left Mouse Button + alt = Airlock"
+ usr << "***********************************************************"
+ usr << "Left Mouse Button = Construct / Upgrade"
+ usr << "Right Mouse Button = Deconstruct / Delete / Downgrade"
+ usr << "Left Mouse Button + ctrl = R-Window"
+ usr << "Left Mouse Button + alt = Airlock"
usr << ""
- usr << "\blue Use the button in the upper left corner to"
- usr << "\blue change the direction of built objects."
- usr << "\blue ***********************************************************"
+ usr << "Use the button in the upper left corner to"
+ usr << "change the direction of built objects."
+ usr << "***********************************************************"
if(2)
- usr << "\blue ***********************************************************"
- usr << "\blue Right Mouse Button on buildmode button = Set object type"
- usr << "\blue Left Mouse Button on turf/obj = Place objects"
- usr << "\blue Right Mouse Button = Delete objects"
+ usr << "***********************************************************"
+ usr << "Right Mouse Button on buildmode button = Set object type"
+ usr << "Left Mouse Button on turf/obj = Place objects"
+ usr << "Right Mouse Button = Delete objects"
usr << ""
- usr << "\blue Use the button in the upper left corner to"
- usr << "\blue change the direction of built objects."
- usr << "\blue ***********************************************************"
+ usr << "Use the button in the upper left corner to"
+ usr << "change the direction of built objects."
+ usr << "***********************************************************"
if(3)
- usr << "\blue ***********************************************************"
- usr << "\blue Right Mouse Button on buildmode button = Select var(type) & value"
- usr << "\blue Left Mouse Button on turf/obj/mob = Set var(type) & value"
- usr << "\blue Right Mouse Button on turf/obj/mob = Reset var's value"
- usr << "\blue ***********************************************************"
+ usr << "***********************************************************"
+ usr << "Right Mouse Button on buildmode button = Select var(type) & value"
+ usr << "Left Mouse Button on turf/obj/mob = Set var(type) & value"
+ usr << "Right Mouse Button on turf/obj/mob = Reset var's value"
+ usr << "***********************************************************"
if(4)
- usr << "\blue ***********************************************************"
- usr << "\blue Left Mouse Button on turf/obj/mob = Select"
- usr << "\blue Right Mouse Button on turf/obj/mob = Throw"
- usr << "\blue ***********************************************************"
+ usr << "***********************************************************"
+ usr << "Left Mouse Button on turf/obj/mob = Select"
+ usr << "Right Mouse Button on turf/obj/mob = Throw"
+ usr << "***********************************************************"
return 1
/obj/effect/bmode/buildquit
@@ -272,13 +272,13 @@
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
object.vars[holder.buildmode.varholder] = holder.buildmode.valueholder
else
- usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
+ usr << "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
if(pa.Find("right"))
if(object.vars.Find(holder.buildmode.varholder))
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
object.vars[holder.buildmode.varholder] = initial(object.vars[holder.buildmode.varholder])
else
- usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
+ usr << "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
if(4)
if(pa.Find("left"))
diff --git a/code/WorkInProgress/kilakk/fax.dm b/code/WorkInProgress/kilakk/fax.dm
index 83be6493dc0..69164a7a8b6 100644
--- a/code/WorkInProgress/kilakk/fax.dm
+++ b/code/WorkInProgress/kilakk/fax.dm
@@ -34,7 +34,7 @@ var/list/alldepartments = list("Central Command")
alldepartments += department
/obj/machinery/faxmachine/attack_ghost(mob/user as mob)
- usr << "\red Nope."
+ usr << "Nope."
return 0
/obj/machinery/faxmachine/attack_ai(mob/user as mob)
@@ -110,7 +110,7 @@ var/list/alldepartments = list("Central Command")
new /obj/item/demote_chip(src.loc)
if(findtext(tofax.name,"Commendation"))
new /obj/item/mounted/poster(src.loc,-1)
- sendcooldown = 1800
+ sendcooldown = 900
else
SendFax(tofax.info, tofax.name, usr, dpt)
@@ -141,7 +141,7 @@ var/list/alldepartments = list("Central Command")
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
- usr.drop_item(src)
+ usr.drop_item(I, src)
scan = I
authenticated = 0
@@ -166,7 +166,7 @@ var/list/alldepartments = list("Central Command")
if(istype(O, /obj/item/weapon/paper))
if(!tofax)
- user.drop_item(src)
+ user.drop_item(O, src)
tofax = O
user << "You insert the paper into \the [src]."
flick("faxsend", src)
@@ -178,7 +178,7 @@ var/list/alldepartments = list("Central Command")
var/obj/item/weapon/card/id/idcard = O
if(!scan)
- usr.drop_item(src)
+ usr.drop_item(idcard, src)
scan = idcard
else if(istype(O, /obj/item/weapon/wrench))
@@ -189,8 +189,9 @@ var/list/alldepartments = list("Central Command")
/proc/Centcomm_fax(var/obj/item/weapon/paper/sent, var/sentname, var/mob/Sender)
- var/msg = "\blue CENTCOMM FAX: [key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (RPLY): Receiving '[sentname]' via secure connection ... view message"
+ var/msg = "CENTCOMM FAX: [key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (RPLY): Receiving '[sentname]' via secure connection ... view message"
admins << msg
+ admins << 'sound/effects/fax.ogg'
proc/SendFax(var/sent, var/sentname, var/mob/Sender, var/dpt)
diff --git a/code/WorkInProgress/pomf/spacepods/spacepods.dm b/code/WorkInProgress/pomf/spacepods/spacepods.dm
index c9d93f460d7..f4ac9cd2b50 100644
--- a/code/WorkInProgress/pomf/spacepods/spacepods.dm
+++ b/code/WorkInProgress/pomf/spacepods/spacepods.dm
@@ -121,7 +121,7 @@
if(battery)
user << "The pod already has a battery."
return
- user.drop_item(src)
+ user.drop_item(W, src)
battery = W
return
if(istype(W, /obj/item/device/spacepod_equipment))
@@ -136,7 +136,7 @@
return
else
user << "You insert \the [W] into the equipment system."
- user.drop_item(equipment_system)
+ user.drop_item(W, equipment_system)
equipment_system.weapon_system = W
equipment_system.weapon_system.my_atom = src
new/obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system(src, equipment_system.weapon_system.verb_name, equipment_system.weapon_system.verb_desc) //Yes, it has to be referenced like that. W.verb_name/desc doesn't compile.
@@ -308,16 +308,16 @@
set name = "Enter Pod"
set src in oview(1)
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting || (usr.status_flags & FAKEDEATH)) //are you cuffed, dying, lying, stunned or other
return
if (usr.stat || !ishuman(usr))
return
if (src.occupant)
- usr << "\blue The [src.name] is already occupied!"
+ usr << "The [src.name] is already occupied!"
return
/*
if (usr.abiotic())
- usr << "\blue Subject cannot have abiotic items on."
+ usr << "Subject cannot have abiotic items on."
return
*/
for(var/mob/living/carbon/slime/M in range(1,usr))
@@ -326,7 +326,7 @@
return
// usr << "You start climbing into [src.name]"
- visible_message("\blue [usr] starts to climb into [src.name]")
+ visible_message("[usr] starts to climb into [src.name]")
if(enter_after(40,usr))
if(!src.occupant)
diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm
index ce2d7d71fe7..66497632826 100644
--- a/code/ZAS/Airflow.dm
+++ b/code/ZAS/Airflow.dm
@@ -54,10 +54,10 @@ mob/proc/airflow_stun()
return 0
if(last_airflow_stun > world.time - zas_settings.Get(/datum/ZAS_Setting/airflow_stun_cooldown)) return 0
if(!(status_flags & CANSTUN) && !(status_flags & CANWEAKEN))
- src << "\blue You stay upright as the air rushes past you."
+ src << "You stay upright as the air rushes past you."
return 0
- if(weakened <= 0) src << "\red The sudden rush of air knocks you over!"
+ if(weakened <= 0) src << "The sudden rush of air knocks you over!"
weakened = max(weakened,5)
last_airflow_stun = world.time
return
@@ -74,10 +74,10 @@ mob/living/carbon/human/airflow_stun()
if(shoes)
if(shoes.flags & NOSLIP) return 0
if(!(status_flags & CANSTUN) && !(status_flags & CANWEAKEN))
- src << "\blue You stay upright as the air rushes past you."
+ src << "You stay upright as the air rushes past you."
return 0
- if(weakened <= 0) src << "\red The sudden rush of air knocks you over!"
+ if(weakened <= 0) src << "The sudden rush of air knocks you over!"
weakened = max(weakened,rand(1,5))
last_airflow_stun = world.time
return
@@ -374,7 +374,7 @@ atom/movable/proc/airflow_hit(atom/A)
mob/airflow_hit(atom/A)
if(!sound_override)
for(var/mob/M in hearers(src))
- M.show_message("\red \The [src] slams into \a [A]!",1,"\red You hear a loud slam!",2)
+ M.show_message("\The [src] slams into \a [A]!",1,"You hear a loud slam!",2)
//playsound(get_turf(src), "smash.ogg", 25, 1, -1)
weakened = max(weakened, (istype(A,/obj/item) ? A:w_class : rand(1,5))) //Heheheh
. = ..()
@@ -382,7 +382,7 @@ mob/airflow_hit(atom/A)
obj/airflow_hit(atom/A)
if(!sound_override)
for(var/mob/M in hearers(src))
- M.show_message("\red \The [src] slams into \a [A]!",1,"\red You hear a loud slam!",2)
+ M.show_message("\The [src] slams into \a [A]!",1,"You hear a loud slam!",2)
//playsound(get_turf(src), "smash.ogg", 25, 1, -1)
. = ..()
@@ -392,7 +392,7 @@ obj/item/airflow_hit(atom/A)
mob/living/carbon/human/airflow_hit(atom/A)
// for(var/mob/M in hearers(src))
-// M.show_message("\red [src] slams into [A]!",1,"\red You hear a loud slam!",2)
+// M.show_message("[src] slams into [A]!",1,"You hear a loud slam!",2)
//playsound(get_turf(src), "punch", 25, 1, -1)
if(prob(33))
loc:add_blood(src)
diff --git a/code/ZAS/Controller.dm b/code/ZAS/Controller.dm
index 00686c53cd9..5f63d445c10 100644
--- a/code/ZAS/Controller.dm
+++ b/code/ZAS/Controller.dm
@@ -96,7 +96,7 @@ Class Procs:
set background = 1
#endif
- world << "\red \b Processing Geometry..."
+ world << "Processing Geometry..."
sleep(-1)
var/start_time = world.timeofday
@@ -160,7 +160,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
#ifdef ZASDBG
if(updated != updating.len)
tick_progress = "[updating.len - updated] tiles left unupdated."
- world << "\red [tick_progress]"
+ world << "[tick_progress]"
. = 0
#endif
diff --git a/code/ZAS/Diagnostic.dm b/code/ZAS/Diagnostic.dm
index d6dd3105a4a..75e4ab50ce9 100644
--- a/code/ZAS/Diagnostic.dm
+++ b/code/ZAS/Diagnostic.dm
@@ -147,7 +147,7 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
for(var/zone/Z in air_master.zones)
if(Z.air == air && Z != src)
var/turf/zloc = pick(Z.contents)
- client << "\red Illegal air datum shared by: [zloc.loc.name]"*/
+ client << "Illegal air datum shared by: [zloc.loc.name]"*/
/*client/proc/TestZASRebuild()
diff --git a/code/ZAS/FEA_system.dm b/code/ZAS/FEA_system.dm
index 369048091bb..09ad596a4cb 100644
--- a/code/ZAS/FEA_system.dm
+++ b/code/ZAS/FEA_system.dm
@@ -127,7 +127,7 @@ var/datum/controller/air_system/air_master
//Outputs: None.
//set background = 1
- world << "\red \b Processing Geometry..."
+ world << "Processing Geometry..."
sleep(-1)
var/start_time = world.timeofday
diff --git a/code/ZAS/NewSettings.dm b/code/ZAS/NewSettings.dm
index e7b1526b0d5..707e337bd80 100644
--- a/code/ZAS/NewSettings.dm
+++ b/code/ZAS/NewSettings.dm
@@ -312,7 +312,7 @@ var/global/ZAS_Settings/zas_settings = new
else
error("[id] has an invalid typeval.")
return
- world << "\blue [key_name(user)] changed ZAS setting [setting.name] to [displayedValue]."
+ world << "[key_name(user)] changed ZAS setting [setting.name] to [displayedValue]."
ChangeSettingsDialog(user)
@@ -514,4 +514,4 @@ a { color: white; }
Set("/datum/ZAS_Setting/airflow_speed_decay", 1)
Set("/datum/ZAS_Setting/airflow_delay", 20)
Set("/datum/ZAS_Setting/airflow_mob_slowdown", 3)
- world << "\blue [key_name(usr)] loaded ZAS preset [def]"
\ No newline at end of file
+ world << "[key_name(usr)] loaded ZAS preset [def]"
\ No newline at end of file
diff --git a/code/ZAS/Plasma.dm b/code/ZAS/Plasma.dm
index 58b8098526b..dc1dc8d75bc 100644
--- a/code/ZAS/Plasma.dm
+++ b/code/ZAS/Plasma.dm
@@ -59,7 +59,7 @@ var/image/contamination_overlay = image('icons/effects/contamination.dmi')
if(zas_settings.Get(/datum/ZAS_Setting/SKIN_BURNS))
if(!pl_head_protected() || !pl_suit_protected())
burn_skin(0.75)
- if(prob(20)) src << "\red Your skin burns!"
+ if(prob(20)) src << "Your skin burns!"
updatehealth()
//Burn eyes if exposed.
@@ -72,7 +72,7 @@ var/image/contamination_overlay = image('icons/effects/contamination.dmi')
if(zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
if(rand(1,10000) < zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
randmutb(src)
- src << "\red High levels of toxins cause you to spontaneously mutate."
+ src << "High levels of toxins cause you to spontaneously mutate."
domutcheck(src,null)
@@ -86,7 +86,7 @@ var/image/contamination_overlay = image('icons/effects/contamination.dmi')
E.damage += 2.5
eye_blurry = min(eye_blurry+1.5,50)
if (prob(max(0,E.damage - 15) + 1) && !eye_blind)
- src << "\red You are blinded!"
+ src << "You are blinded!"
eye_blind += 20
/mob/living/carbon/human/proc/pl_head_protected()
diff --git a/code/ZAS/Variable Settings.dm b/code/ZAS/Variable Settings.dm
index 09501ffc78a..f10bae7c664 100644
--- a/code/ZAS/Variable Settings.dm
+++ b/code/ZAS/Variable Settings.dm
@@ -171,7 +171,7 @@ vs_control
vars[ch] = vw
if(how == "Toggle")
newvar = (newvar?"ON":"OFF")
- world << "\blue [key_name(user)] changed the setting [display_description] to [newvar]."
+ world << "[key_name(user)] changed the setting [display_description] to [newvar]."
if(ch in plc.settings)
ChangeSettingsDialog(user,plc.settings)
else
@@ -296,7 +296,7 @@ vs_control
airflow_mob_slowdown = 3
- world << "\blue [key_name(user)] changed the global plasma/ZAS settings to \"[def]\""
+ world << "[key_name(user)] changed the global plasma/ZAS settings to \"[def]\""
pl_control
var/list/settings = list()
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index e8781d91492..d263ce1acce 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -133,7 +133,7 @@
/proc/recursive_hear_check(atom/O)
var/list/processing_list = list(O)
var/list/processed_list = list()
- var/list/found_atoms = list()
+ var/found_atoms = list()
while (processing_list.len)
var/atom/A = processing_list[1]
@@ -153,7 +153,7 @@
/proc/recursive_type_check(atom/O, type = /atom)
var/list/processing_list = list(O)
var/list/processed_list = new/list()
- var/list/found_atoms = new/list()
+ var/found_atoms = new/list()
while (processing_list.len)
var/atom/A = processing_list[1]
@@ -232,7 +232,7 @@
return hear
-/proc/get_contents_in_object(atom/O, type_path)
+/proc/get_contents_in_object(atom/O, type_path = /atom/movable)
if (O)
return recursive_type_check(O, type_path) - O
else
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 2cf5d95642b..7a38258e2c4 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -243,7 +243,7 @@ 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()]"
+ world << "Code Phrase is: [generate_code_phrase()]"
return
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index ba0158b2a8b..b33779bc531 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -45,14 +45,19 @@
return t
/proc/strip_html_properly(var/input)
- var/opentag = 1 //These store the position of < and > respectively.
- var/closetag = 1
- while(1)
+ // these store the position of < and > respectively
+ var/opentag = 0
+ var/closetag = 0
+
+ while (length(input))
opentag = findtext(input, "<")
- closetag = findtext(input, ">")
- if(!closetag || !opentag)
+ closetag = findtext(input, ">", opentag + 1)
+
+ if (!opentag || !closetag)
break
- input = copytext(input, 1, opentag) + copytext(input, (closetag + 1))
+
+ input = copytext(input, 1, opentag) + copytext(input, closetag + 1)
+
return input
//Removes a few problematic characters
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 237bc091fb6..f6322fdfc61 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -174,60 +174,79 @@ Turf and target are seperate in case you want to teleport some distance from a t
-//This will update a mob's name, real_name, mind.name, data_core records, pda and id
-//Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn
-/mob/proc/fully_replace_character_name(var/oldname,var/newname)
- if(!newname) return 0
+/**
+ * This will update a mob's name, real_name, mind.name, data_core records, pda and id.
+ * Calling this proc without an oldname will only update the mob and skip updating the pda, id and records. ~Carn
+ */
+/mob/proc/fully_replace_character_name(oldname, newname)
+ if (!newname)
+ return 0
+
real_name = newname
+
name = newname
- if(mind)
+
+ if (mind)
mind.name = newname
- if(dna)
+
+ if (dna)
dna.real_name = real_name
- if(oldname)
- //update the datacore records! This is goig to be a bit costly.
- for(var/list/L in list(data_core.general,data_core.medical,data_core.security,data_core.locked))
- var/datum/data/record/R = find_record("name", oldname, L)
+ if (oldname)
+ /*
+ * Update the datacore records!
+ * This is going to be a bit costly.
+ */
+ for (var/list/L in list(data_core.general, data_core.medical, data_core.security,data_core.locked))
+ if (L)
+ var/datum/data/record/R = find_record("name", oldname, L)
- if(R)
- R.fields["name"] = newname
+ if (R)
+ R.fields["name"] = newname
- //update our pda and id if we have them on our person
- var/list/searching = GetAllContents(searchDepth = 3)
- var/search_id = 1
- var/search_pda = 1
+ // update our pda and id if we have them on our person
+ var/search_id = TRUE
- for(var/A in searching)
- if( search_id && istype(A,/obj/item/weapon/card/id) )
- var/obj/item/weapon/card/id/ID = A
- if(ID.registered_name == oldname)
+ var/search_pda = TRUE
+
+ for (var/object in get_contents_in_object(src))
+ if (search_id && istype(object, /obj/item/weapon/card/id))
+ var/obj/item/weapon/card/id/ID = object
+
+ if (ID.registered_name == oldname)
ID.registered_name = newname
ID.name = "[newname]'s ID Card ([ID.assignment])"
- if(!search_pda) break
- search_id = 0
- else if( search_pda && istype(A,/obj/item/device/pda) )
- var/obj/item/device/pda/PDA = A
- if(PDA.owner == oldname)
+ if (!search_pda)
+ break
+
+ search_id = FALSE
+ else if (search_pda && istype(object, /obj/item/device/pda))
+ var/obj/item/device/pda/PDA = object
+
+ if (PDA.owner == oldname)
PDA.owner = newname
PDA.name = "PDA-[newname] ([PDA.ownjob])"
- if(!search_id) break
- search_pda = 0
- //Fixes renames not being reflected in objective text
- var/list/O = (typesof(/datum/objective) - /datum/objective)
+ if (!search_id)
+ break
+
+ search_pda = FALSE
+
+ // fixes renames not being reflected in objective text
var/length
- var/pos
- for(var/datum/objective/objective in O)
- if(objective.target != mind) continue
- length = length(oldname)
- pos = findtextEx(objective.explanation_text, oldname)
- objective.explanation_text = copytext(objective.explanation_text, 1, pos)+newname+copytext(objective.explanation_text, pos+length)
+ var/position
+
+ for (var/datum/mind/mind in ticker.minds)
+ if (mind)
+ for (var/datum/objective/objective in mind.objectives)
+ if (objective && objective.target == mind)
+ length = length(oldname)
+ position = findtextEx(objective.explanation_text, oldname)
+ objective.explanation_text = copytext(objective.explanation_text, 1, position) + newname + copytext(objective.explanation_text, position + length)
+
return 1
-
-
//Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame()
//Last modified by Carn
/mob/proc/rename_self(var/role, var/allow_numbers=0)
@@ -611,17 +630,6 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl
sleep(max(sleeptime, 15))
animation.loc = null
-//Will return the contents of an atom recursivly to a depth of 'searchDepth'
-/atom/proc/GetAllContents(searchDepth = 5)
- var/list/toReturn = list()
-
- for(var/atom/part in contents)
- toReturn += part
- if(part.contents.len && searchDepth)
- toReturn += part.GetAllContents(searchDepth - 1)
-
- return toReturn
-
//Step-towards method of determining whether one atom can see another. Similar to viewers()
/proc/can_see(var/atom/source, var/atom/target, var/length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate.
var/turf/current = get_turf(source)
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index d114f2ad4ee..98258844c75 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -234,7 +234,7 @@
return
/atom/proc/AltClick(var/mob/user)
- if(ishuman(src) && user.Adjacent(src))
+ if(!(isrobot(user)) && ishuman(src) && user.Adjacent(src))
src:give_item(user)
return
var/turf/T = get_turf(src)
@@ -281,7 +281,7 @@
nutrition = max(nutrition - rand(1,5),0)
handle_regular_hud_updates()
else
- src << "\red You're out of energy! You need food!"
+ src << "You're out of energy! You need food!"
// Simple helper to face what you clicked on, in case it should be needed in more than one place
/mob/proc/face_atom(var/atom/A)
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 5c9c8dc41f0..7160ac05821 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -73,7 +73,7 @@
var/resolved = W.preattack(A, src, 1, params)
if(!resolved)
- resolved = A.attackby(W,src)
+ resolved = A.attackby(W,src,params)
if(ismob(A) || istype(A, /obj/mecha) || istype(W, /obj/item/weapon/grab))
delayNextAttack(10)
if(!resolved && A && W)
@@ -93,7 +93,7 @@
*/
var/resolved = W.preattack(A, src, 1, params)
if(!resolved)
- resolved = A.attackby(W,src)
+ resolved = A.attackby(W,src,params)
if(ismob(A) || istype(A, /obj/mecha))
delayNextAttack(10)
if(!resolved && A && W)
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 99f7b3b95ee..c7dfe2c4e20 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -250,6 +250,6 @@ datum/hud/New(mob/owner)
hud_used.persistant_inventory_update()
update_action_buttons()
else
- usr << "\red Inventory hiding is currently only supported for human mobs, sorry."
+ usr << "Inventory hiding is currently only supported for human mobs, sorry."
else
- usr << "\red This mob type does not use a HUD."
+ usr << "This mob type does not use a HUD."
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 6617f5daa4d..f9ca9e52597 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -69,7 +69,7 @@ obj/item/proc/get_clamped_volume()
if(istype(M, /mob/living/carbon/slime))
var/mob/living/carbon/slime/slime = M
if(prob(25))
- user << "\red [src] passes right through [M]!"
+ user << "[src] passes right through [M]!"
return
if(power > 0)
@@ -155,7 +155,7 @@ obj/item/proc/get_clamped_volume()
if(!showname && user)
if(user.client)
- user << "\red You attack [M] with [src]. "
+ user << "You attack [M] with [src]. "
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index b5bf06e0ace..be8e5d054d4 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -105,7 +105,7 @@
if(prob(75))
ML.apply_damage(rand(1,3), BRUTE, dam_zone, armor)
for(var/mob/O in viewers(ML, null))
- O.show_message("\red [name] has bit [ML]!", 1)
+ O.show_message("[name] has bit [ML]!", 1)
if(armor >= 2) return
if(ismonkey(ML))
for(var/datum/disease/D in viruses)
@@ -113,7 +113,7 @@
ML.contract_disease(D,1,0)
else
for(var/mob/O in viewers(ML, null))
- O.show_message("\red [src] has attempted to bite [ML]!", 1)
+ O.show_message("[src] has attempted to bite [ML]!", 1)
/*
Aliens
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 0c69bce667c..ee1fbf94841 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -76,7 +76,7 @@ var/const/tk_maxrange = 15
dropped(mob/user as mob)
- if(focus && user && loc != user && loc != user.loc) // drop_item() gets called when you tk-attack a table/closet with an item
+ if(focus && user && loc != user && loc != user.loc) // drop_item(null, ) gets called when you tk-attack a table/closet with an item
if(focus.Adjacent(loc))
focus.loc = loc
@@ -123,7 +123,7 @@ var/const/tk_maxrange = 15
if(8 to tk_maxrange)
user.next_move += 10
else
- user << "\blue Your mind won't reach that far."
+ user << "Your mind won't reach that far."
return*/
if(d > tk_maxrange)
user << "Your mind won't reach that far."
diff --git a/code/controllers/Processes/sun.dm b/code/controllers/Processes/sun.dm
index f09806cef53..bd8a51dc3dd 100644
--- a/code/controllers/Processes/sun.dm
+++ b/code/controllers/Processes/sun.dm
@@ -1,6 +1,6 @@
/datum/controller/process/sun/setup()
name = "sun"
- schedule_interval = 20 // every second
+ schedule_interval = 40 // every 2 seconds
sun = new
/datum/controller/process/sun/doWork()
diff --git a/code/controllers/_DynamicAreaLighting_TG.dm b/code/controllers/_DynamicAreaLighting_TG.dm
index 2623904082e..3f898980741 100644
--- a/code/controllers/_DynamicAreaLighting_TG.dm
+++ b/code/controllers/_DynamicAreaLighting_TG.dm
@@ -179,9 +179,9 @@ atom/proc/SetLuminosity(new_luminosity, trueLum = FALSE)
if (trueLuminosity < 1)
luminosity = 0
else if (trueLuminosity <= 100)
- luminosity = min((ismob(src) ? 7 : 100), sqrtTable[trueLuminosity])
+ luminosity = sqrtTable[trueLuminosity]
else
- luminosity = min((ismob(src) ? 7 : 100), sqrt(trueLuminosity))
+ luminosity = sqrt(trueLuminosity)
atom/proc/AddLuminosity(delta_luminosity)
if(delta_luminosity > 0)
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 5dab7b0f4ce..a33cffc001e 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -160,6 +160,7 @@
var/emag_recharge_ticks = 0
var/map_voting = 0
+ var/renders_url = ""
var/default_ooc_color = "#002eb8"
@@ -519,6 +520,8 @@
vgws_base_url = value
if("map_voting")
map_voting = 1
+ if("renders_url")
+ renders_url = value
else
diary << "Unknown setting in configuration: '[name]'"
diff --git a/code/controllers/garbage.dm b/code/controllers/garbage.dm
index 7e465eff7d6..99215cdc51c 100644
--- a/code/controllers/garbage.dm
+++ b/code/controllers/garbage.dm
@@ -130,7 +130,7 @@ var/soft_dels = 0
garbageCollector.del_everything = !garbageCollector.del_everything
world << "GC: qdel turned [garbageCollector.del_everything ? "off" : "on"]."
log_admin("[key_name(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].")
- message_admins("\blue [key_name(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].", 1)
+ message_admins("[key_name(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].", 1)
/*/client/var/running_find_references
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
index b3f8cc98398..1d7fbe5f6c3 100644
--- a/code/controllers/master_controller.dm
+++ b/code/controllers/master_controller.dm
@@ -55,7 +55,7 @@ datum/controller/game_controller/New()
job_master = new /datum/controller/occupations()
job_master.SetupOccupations()
job_master.LoadJobs("config/jobs.txt")
- world << "\red \b Job setup complete"
+ world << "Job setup complete"
if(!syndicate_code_phrase) syndicate_code_phrase = generate_code_phrase()
if(!syndicate_code_response) syndicate_code_response = generate_code_phrase()
@@ -90,9 +90,9 @@ datum/controller/game_controller/proc/setup()
setup_economy()
SetupXenoarch()
cachedamageicons()
- world << "\red \b Caching Jukebox playlists..."
+ world << "Caching Jukebox playlists..."
load_juke_playlists()
- world << "\red \b Caching Jukebox playlists complete."
+ world << "Caching Jukebox playlists complete."
//if(map && map.dorf)
//mining_surprises = typesof(/mining_surprise/dorf) - /mining_surprise/dorf
//max_secret_rooms += 2
@@ -133,7 +133,7 @@ datum/controller/game_controller/proc/cachedamageicons()
del(H)
datum/controller/game_controller/proc/setup_objects()
- world << "\red \b Initializing objects"
+ world << "Initializing objects"
sleep(-1)
//var/last_init_type = null
for(var/atom/movable/object in world)
@@ -143,12 +143,12 @@ datum/controller/game_controller/proc/setup_objects()
object.initialize()
- world << "\red \b Initializing pipe networks"
+ world << "Initializing pipe networks"
sleep(-1)
for(var/obj/machinery/atmospherics/machine in machines)
machine.build_network()
- world << "\red \b Initializing atmos machinery."
+ world << "Initializing atmos machinery."
sleep(-1)
for(var/obj/machinery/atmospherics/unary/U in machines)
if(istype(U, /obj/machinery/atmospherics/unary/vent_pump))
@@ -158,7 +158,7 @@ datum/controller/game_controller/proc/setup_objects()
var/obj/machinery/atmospherics/unary/vent_scrubber/T = U
T.broadcast_status()
- world << "\red \b Initializations complete."
+ world << "Initializations complete."
sleep(-1)
diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm
index c16f61ece18..ce82f5b6358 100644
--- a/code/datums/ai_laws.dm
+++ b/code/datums/ai_laws.dm
@@ -225,7 +225,7 @@ var/global/mommi_base_law_type = /datum/ai_laws/keeper // Asimov is OP as fuck o
/datum/ai_laws/proc/malfunction()
..()
name = "*ERROR*"
- set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010")
+ set_zeroth_law("ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010")
/datum/ai_laws/asimov
name = "Three Laws of Robotics"
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 524e91793bb..39a7694fc0b 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -28,7 +28,7 @@ client
if(!usr.client || !usr.client.holder)
- usr << "\red You need to be an administrator to access this."
+ usr << "You need to be an administrator to access this."
return
@@ -666,7 +666,7 @@ client
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("\blue [key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
+ message_admins("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
if("Type and subtypes")
var/i = 0
for(var/obj/Obj in world)
@@ -677,7 +677,7 @@ client
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("\blue [key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
+ message_admins("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
else if(href_list["explode"])
if(!check_rights(R_DEBUG|R_FUN)) return
@@ -914,7 +914,7 @@ client
if(amount != 0)
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
- message_admins("\blue [key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
+ message_admins("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
href_list["datumrefresh"] = href_list["mobToDamage"]
if(href_list["datumrefresh"])
diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm
index ad36d3300e5..299e25b5d40 100644
--- a/code/datums/diseases/advance/symptoms/cough.dm
+++ b/code/datums/diseases/advance/symptoms/cough.dm
@@ -35,5 +35,5 @@ BONUS
M.emote("cough")
var/obj/item/I = M.get_active_hand()
if(I && I.w_class < 3)
- M.drop_item()
+ M.drop_item(I)
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm
index 1f62065ef99..5efaa67557e 100644
--- a/code/datums/diseases/advance/symptoms/vomit.dm
+++ b/code/datums/diseases/advance/symptoms/vomit.dm
@@ -34,7 +34,7 @@ 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!")]"
+ M << "[pick("You feel nauseous...", "You feel like you're going to throw up!")]"
else
Vomit(M)
diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm
index 8e942c84b2e..fe8ae006bd2 100644
--- a/code/datums/diseases/alien_embryo.dm
+++ b/code/datums/diseases/alien_embryo.dm
@@ -53,25 +53,25 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your throat feels sore."
+ affected_mob << "Your throat feels sore."
if(prob(1))
- affected_mob << "\red Mucous runs down the back of your throat."
+ affected_mob << "Mucous runs down the back of your throat."
if(4)
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
affected_mob.emote("cough")
if(prob(2))
- affected_mob << "\red Your muscles ache."
+ affected_mob << "Your muscles ache."
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(2))
- affected_mob << "\red Your stomach hurts."
+ affected_mob << "Your stomach hurts."
if(prob(20))
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(5)
- affected_mob << "\red You feel something tearing its way out of your stomach..."
+ affected_mob << "You feel something tearing its way out of your stomach..."
affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(50))
diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm
index a9959ef0636..cd2ee936cf5 100644
--- a/code/datums/diseases/appendicitis.dm
+++ b/code/datums/diseases/appendicitis.dm
@@ -27,11 +27,11 @@
// appendix is removed, can't get infected again
src.cure()
if(prob(5))
- affected_mob << "\red You feel a stinging pain in your abdomen!"
+ affected_mob << "You feel a stinging pain in your abdomen!"
affected_mob.emote("me",1,"winces slightly.")
if(stage > 1)
if(prob(3))
- affected_mob << "\red You feel a stabbing pain in your abdomen!"
+ affected_mob << "You feel a stabbing pain in your abdomen!"
affected_mob.emote("me",1,"winces painfully.")
affected_mob.adjustToxLoss(1)
if(stage > 2)
@@ -40,13 +40,13 @@
var/mob/living/carbon/human/H = affected_mob
H.vomit()
else
- affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!"
+ affected_mob << "You gag as you want to throw up, but there's nothing in your stomach!"
affected_mob.Weaken(10)
affected_mob.adjustToxLoss(3)
if(stage > 3)
if(prob(1) && ishuman(affected_mob))
var/mob/living/carbon/human/H = affected_mob
- H << "\red Your abdomen is a world of pain!"
+ H << "Your abdomen is a world of pain!"
H.Weaken(10)
H.op_stage.appendix = 2.0
diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index ec863a441eb..2d48b5dac50 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -14,12 +14,12 @@
switch(stage)
if(1)
if(prob(2))
- affected_mob << "\red You feel like something is moving inside of you"
+ affected_mob << "You feel like something is moving inside of you"
if(2) //also changes say, see say.dm
if(prob(2))
- affected_mob << "\red You feel like something is moving inside of you"
+ affected_mob << "You feel like something is moving inside of you"
if(prob(2))
- affected_mob << "\red BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+ affected_mob << "BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
if(3)
//Should give the bee spit verb
if(4)
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index 55e5db82d6b..cfe1667a54a 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -21,7 +21,7 @@
if(prob(2))
affected_mob.emote("yawn")
if(prob(2))
- affected_mob << "\red Your don't feel like yourself."
+ affected_mob << "Your don't feel like yourself."
if(prob(5))
affected_mob.adjustBrainLoss(1)
affected_mob.updatehealth()
@@ -34,12 +34,12 @@
affected_mob.adjustBrainLoss(2)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "\red Your try to remember something important...but can't."
+ affected_mob << "Your try to remember something important...but can't."
/* if(prob(10))
affected_mob.adjustToxLoss(3)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "\red Your head hurts." */
+ affected_mob << "Your head hurts." */
if(4)
if(prob(2))
affected_mob.emote("stare")
@@ -49,14 +49,14 @@
affected_mob.adjustToxLoss(4)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "\red Your head hurts." */
+ affected_mob << "Your head hurts." */
if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now
affected_mob.adjustBrainLoss(3)
affected_mob.updatehealth()
if(prob(2))
- affected_mob << "\red Strange buzzing fills your head, removing all thoughts."
+ affected_mob << "Strange buzzing fills your head, removing all thoughts."
if(prob(3))
- affected_mob << "\red You lose consciousness..."
+ affected_mob << "You lose consciousness..."
for(var/mob/O in viewers(affected_mob, null))
O.show_message("[affected_mob] suddenly collapses", 1)
affected_mob.Paralyse(rand(5,10))
diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm
index 9317fa12ef6..85e06598ff3 100644
--- a/code/datums/diseases/cold.dm
+++ b/code/datums/diseases/cold.dm
@@ -16,16 +16,16 @@
if(2)
/*
if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if(prob(1) && prob(5))
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if(prob(1))
@@ -33,22 +33,22 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your throat feels sore."
+ affected_mob << "Your throat feels sore."
if(prob(1))
- affected_mob << "\red Mucous runs down the back of your throat."
+ 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."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if(prob(1) && prob(1))
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if(prob(1))
@@ -56,9 +56,9 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your throat feels sore."
+ affected_mob << "Your throat feels sore."
if(prob(1))
- affected_mob << "\red Mucous runs down the back of your throat."
+ 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 bea72ec36e7..b42ad51aab2 100644
--- a/code/datums/diseases/cold9.dm
+++ b/code/datums/diseases/cold9.dm
@@ -16,7 +16,7 @@
if(2)
affected_mob.bodytemperature -= 10
if(prob(1) && prob(10))
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if(prob(1))
@@ -24,9 +24,9 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your throat feels sore."
+ affected_mob << "Your throat feels sore."
if(prob(5))
- affected_mob << "\red You feel stiff."
+ affected_mob << "You feel stiff."
if(3)
affected_mob.bodytemperature -= 20
if(prob(1))
@@ -34,6 +34,6 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your throat feels sore."
+ affected_mob << "Your throat feels sore."
if(prob(10))
- affected_mob << "\red You feel stiff."
\ No newline at end of file
+ affected_mob << "You feel stiff."
\ No newline at end of file
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index a4d85a56407..4abe29f70d5 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -23,11 +23,11 @@
if(prob(8))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your muscles ache."
+ affected_mob << "Your muscles ache."
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "\red Your stomach hurts."
+ affected_mob << "Your stomach hurts."
if(prob(20))
affected_mob.adjustToxLoss(2)
affected_mob.updatehealth()
@@ -42,7 +42,7 @@
src.original_dna["UI"] = affected_mob.dna.UI.Copy()
src.original_dna["SE"] = affected_mob.dna.SE.Copy()
- affected_mob << "\red You don't feel like yourself.."
+ affected_mob << "You don't feel like yourself.."
var/list/newUI=strain_data["UI"]
var/list/newSE=strain_data["SE"]
affected_mob.UpdateAppearance(newUI.Copy())
@@ -65,5 +65,5 @@
affected_mob.dna.UpdateSE()
affected_mob.real_name = original_dna["name"]
- affected_mob << "\blue You feel more like yourself."
+ affected_mob << "You feel more like yourself."
..()
\ No newline at end of file
diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm
index 2ef958bc04a..97e585fa0ce 100644
--- a/code/datums/diseases/fake_gbs.dm
+++ b/code/datums/diseases/fake_gbs.dm
@@ -22,7 +22,7 @@
else if(prob(5))
affected_mob.emote("gasp")
if(prob(10))
- affected_mob << "\red You're starting to feel very weak..."
+ 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 bb32b44e5b8..c050b9e1d1d 100644
--- a/code/datums/diseases/flu.dm
+++ b/code/datums/diseases/flu.dm
@@ -17,12 +17,12 @@
if(2)
/*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
stage--
return
*/
if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
stage--
return
if(prob(1))
@@ -30,11 +30,11 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your muscles ache."
+ affected_mob << "Your muscles ache."
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "\red Your stomach hurts."
+ affected_mob << "Your stomach hurts."
if(prob(20))
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
@@ -42,12 +42,12 @@
if(3)
/*
if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
stage--
return
*/
if(affected_mob.lying && prob(15)) //added until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
stage--
return
if(prob(1))
@@ -55,11 +55,11 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red Your muscles ache."
+ affected_mob << "Your muscles ache."
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(1))
- affected_mob << "\red Your stomach hurts."
+ 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 8400d196b67..505cabfea06 100644
--- a/code/datums/diseases/fluspanish.dm
+++ b/code/datums/diseases/fluspanish.dm
@@ -21,7 +21,7 @@
if(prob(5))
affected_mob.emote("cough")
if(prob(1))
- affected_mob << "\red You're burning in your own skin!"
+ affected_mob << "You're burning in your own skin!"
affected_mob.take_organ_damage(0,5)
if(3)
@@ -31,6 +31,6 @@
if(prob(5))
affected_mob.emote("cough")
if(prob(5))
- affected_mob << "\red You're burning in your own skin!"
+ 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 ceddf45117f..330ba28d04e 100644
--- a/code/datums/diseases/gbs.dm
+++ b/code/datums/diseases/gbs.dm
@@ -26,14 +26,14 @@
else if(prob(5))
affected_mob.emote("gasp")
if(prob(10))
- affected_mob << "\red You're starting to feel very weak..."
+ 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 << "\red Your body feels as if it's trying to rip itself open..."
+ 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 36ae6aa0549..4a6bc279abb 100644
--- a/code/datums/diseases/magnitis.dm
+++ b/code/datums/diseases/magnitis.dm
@@ -16,7 +16,7 @@
switch(stage)
if(2)
if(prob(2))
- affected_mob << "\red You feel a slight shock course through your body."
+ 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.is_conductor()))
@@ -36,9 +36,9 @@
*/
if(3)
if(prob(2))
- affected_mob << "\red You feel a strong shock course through your body."
+ affected_mob << "You feel a strong shock course through your body."
if(prob(2))
- affected_mob << "\red You feel like clowning around."
+ affected_mob << "You feel like clowning around."
if(prob(4))
for(var/obj/M in orange(4,affected_mob))
if(!M.anchored && (M.is_conductor()))
@@ -64,9 +64,9 @@
*/
if(4)
if(prob(2))
- affected_mob << "\red You feel a powerful shock course through your body."
+ affected_mob << "You feel a powerful shock course through your body."
if(prob(2))
- affected_mob << "\red You query upon the nature of miracles."
+ 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.is_conductor()))
diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm
index b2cd8fb41cc..3a8b60c61c1 100644
--- a/code/datums/diseases/pierrot_throat.dm
+++ b/code/datums/diseases/pierrot_throat.dm
@@ -17,10 +17,10 @@
..()
switch(stage)
if(1)
- if(prob(10)) affected_mob << "\red You feel a little silly."
+ if(prob(10)) affected_mob << "You feel a little silly."
if(2)
- if(prob(10)) affected_mob << "\red You start seeing rainbows."
+ if(prob(10)) affected_mob << "You start seeing rainbows."
if(3)
- if(prob(10)) affected_mob << "\red Your thoughts are interrupted by a loud HONK!"
+ if(prob(10)) 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...") ) )
\ No newline at end of file
diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm
index 9ab69e217a8..aac0bf5c9e4 100644
--- a/code/datums/diseases/retrovirus.dm
+++ b/code/datums/diseases/retrovirus.dm
@@ -33,55 +33,55 @@
if(restcure)
/*
if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if (prob(8))
- affected_mob << "\red Your head hurts."
+ affected_mob << "Your head hurts."
if (prob(9))
affected_mob << "You feel a tingling sensation in your chest."
if (prob(9))
- affected_mob << "\red You feel angry."
+ affected_mob << "You feel angry."
if(2)
if(restcure)
/*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if (prob(8))
- affected_mob << "\red Your skin feels loose."
+ affected_mob << "Your skin feels loose."
if (prob(10))
affected_mob << "You feel very strange."
if (prob(4))
- affected_mob << "\red You feel a stabbing pain in your head!"
+ affected_mob << "You feel a stabbing pain in your head!"
affected_mob.Paralyse(2)
if (prob(4))
- affected_mob << "\red Your stomach churns."
+ affected_mob << "Your stomach churns."
if(3)
if(restcure)
/*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
if (prob(10))
- affected_mob << "\red Your entire body vibrates."
+ affected_mob << "Your entire body vibrates."
if (prob(35))
if(prob(50))
@@ -93,12 +93,12 @@
if(restcure)
/*
if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed
- affected_mob << "\blue You feel better."
+ affected_mob << "You feel better."
cure()
return
*/
if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed
- affected_mob << "\blue You feel better."
+ 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 8e70770a4a4..c31a3cc69b2 100644
--- a/code/datums/diseases/rhumba_beat.dm
+++ b/code/datums/diseases/rhumba_beat.dm
@@ -22,29 +22,29 @@
affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(prob(1))
- affected_mob << "\red You feel strange..."
+ affected_mob << "You feel strange..."
if(3)
if(affected_mob.ckey == "rosham")
src.cure()
if(prob(5))
- affected_mob << "\red You feel the urge to dance..."
+ affected_mob << "You feel the urge to dance..."
else if(prob(5))
affected_mob.emote("gasp")
else if(prob(10))
- affected_mob << "\red You feel the need to chick chicky boom..."
+ 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 << "\red You feel a burning beat inside..."
+ 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 << "\red Your body is unable to contain the Rhumba Beat..."
+ affected_mob << "Your body is unable to contain the Rhumba Beat..."
if(prob(50))
affected_mob.gib()
else
diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm
index 3a7cbb1ee51..864822fbc59 100644
--- a/code/datums/diseases/robotic_transformation.dm
+++ b/code/datums/diseases/robotic_transformation.dm
@@ -22,12 +22,12 @@
affected_mob << "Your joints feel stiff."
affected_mob.take_organ_damage(1)
if (prob(9))
- affected_mob << "\red Beep...boop.."
+ affected_mob << "Beep...boop.."
if (prob(9))
- affected_mob << "\red Bop...beeep..."
+ affected_mob << "Bop...beeep..."
if(3)
if (prob(8))
- affected_mob << "\red Your joints feel very stiff."
+ affected_mob << "Your joints feel very stiff."
affected_mob.take_organ_damage(1)
if (prob(8))
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
@@ -35,26 +35,25 @@
affected_mob << "Your skin feels loose."
affected_mob.take_organ_damage(5)
if (prob(4))
- affected_mob << "\red You feel a stabbing pain in your head."
+ affected_mob << "You feel a stabbing pain in your head."
affected_mob.Paralyse(2)
if (prob(4))
- affected_mob << "\red You can feel something move...inside."
+ affected_mob << "You can feel something move...inside."
if(4)
if (prob(10))
- affected_mob << "\red Your skin feels very loose."
+ affected_mob << "Your skin feels very loose."
affected_mob.take_organ_damage(8)
if (prob(20))
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
if (prob(8))
- affected_mob << "\red You can feel... something...inside you."
+ affected_mob << "You can feel... something...inside you."
if(5)
- affected_mob <<"\red Your skin feels as if it's about to burst off..."
+ affected_mob <<"Your skin feels as if it's about to burst off..."
affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(40)) //So everyone can feel like robot Seth Brundle
if(src.gibbed != 0) return 0
- var/turf/T = find_loc(affected_mob)
- gibs(T)
+ gibs(affected_mob)
gibbed = 1
var/mob/living/carbon/human/H = affected_mob
if(istype(H) && !jobban_isbanned(affected_mob, "Cyborg"))
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index ebba6f645f4..592c224664e 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -31,14 +31,14 @@ 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 << "\red You feel [pick("that you don't have enough mana.", "that the winds of magic are gone.", "an urge to summon familiar.")]"
+ 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 << "\red You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar.")]."
+ 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 +46,7 @@ STI KALY - blind
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
return
if(prob(1)&&prob(50))
- affected_mob << "\red 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")]."
+ 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()
@@ -82,7 +82,8 @@ STI KALY - blind
var/mob/living/carbon/H = affected_mob
if(prob(chance))
if(!istype(H.r_hand, /obj/item/weapon/staff))
- H.drop_r_hand()
+ if(H.r_hand) //no need to drop if we aren't holding anything
+ H.drop_item(H.r_hand)
H.put_in_r_hand( new /obj/item/weapon/staff(H) )
return
return
diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm
index 7b19b9a0927..977703e70a8 100644
--- a/code/datums/diseases/xeno_transformation.dm
+++ b/code/datums/diseases/xeno_transformation.dm
@@ -20,12 +20,12 @@
affected_mob << "Your throat feels scratchy."
affected_mob.take_organ_damage(1)
if (prob(9))
- affected_mob << "\red Kill..."
+ affected_mob << "Kill..."
if (prob(9))
- affected_mob << "\red Kill..."
+ affected_mob << "Kill..."
if(3)
if (prob(8))
- affected_mob << "\red Your throat feels very scratchy."
+ affected_mob << "Your throat feels very scratchy."
affected_mob.take_organ_damage(1)
/*
if (prob(8))
@@ -35,26 +35,25 @@
affected_mob << "Your skin feels tight."
affected_mob.take_organ_damage(5)
if (prob(4))
- affected_mob << "\red You feel a stabbing pain in your head."
+ affected_mob << "You feel a stabbing pain in your head."
affected_mob.Paralyse(2)
if (prob(4))
- affected_mob << "\red You can feel something move...inside."
+ affected_mob << "You can feel something move...inside."
if(4)
if (prob(10))
- affected_mob << pick("\red Your skin feels very tight.", "\red Your blood boils!")
+ affected_mob << pick("Your skin feels very tight.", "Your blood boils!")
affected_mob.take_organ_damage(8)
if (prob(20))
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
if (prob(8))
- affected_mob << "\red You can feel... something...inside you."
+ affected_mob << "You can feel... something...inside you."
if(5)
- affected_mob <<"\red Your skin feels impossibly calloused..."
+ affected_mob <<"Your skin feels impossibly calloused..."
affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(40))
if(gibbed != 0) return 0
- var/turf/T = find_loc(affected_mob)
- gibs(T)
+ gibs(affected_mob)
gibbed = 1
affected_mob:Alienize()
diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm
index 3e23d508504..2b99f79a1aa 100644
--- a/code/datums/helper_datums/construction_datum.dm
+++ b/code/datums/helper_datums/construction_datum.dm
@@ -159,17 +159,16 @@
else if(istype(used_atom,/obj/item/weapon/weldingtool) && !(Co_TAKE in given_step))
var/obj/item/weapon/weldingtool/welder=used_atom
if(!welder.isOn())
- user << "\blue You tap \the [holder] with your unlit welder. [pick("Ding","Dong")]."
+ user << "You tap \the [holder] with your unlit welder. [pick("Ding","Dong")]."
return 0
if(!welder.remove_fuel(amount,user))
- user << "\red You don't have enough fuel!"
+ user << "You don't have enough fuel!"
return 0
//generic things
else
var/atom_name = used_atom.name
if(permanence || (Co_KEEP in given_step))
- user.drop_item(holder)
- used_atom.loc = holder
+ user.drop_item(used_atom, holder)
used_atoms.Add(list("[steps.Find(given_step)]" = used_atom))
else
qdel(used_atom)
@@ -334,8 +333,7 @@
else
var/atom_name = used_atom.name
if(permanence || (Co_KEEP in given_step))
- user.drop_item(holder)
- used_atom.loc = holder
+ user.drop_item(used_atom, holder)
if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms))
used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list()))
used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom
diff --git a/code/datums/helper_datums/global_iterator.dm b/code/datums/helper_datums/global_iterator.dm
index 0020859f1d9..2830420de4c 100644
--- a/code/datums/helper_datums/global_iterator.dm
+++ b/code/datums/helper_datums/global_iterator.dm
@@ -139,7 +139,7 @@ Data storage vars:
arg_list = arguments
return 1
else
-// world << "\red Invalid arguments supplied for [src.type], ref = \ref[src]"
+// world << "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 a61b4131d17..18470ba7b90 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -154,29 +154,29 @@
precision = max(rand(1,100)*bagholding.len,100)
if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom
- MM << "\red The Bluespace interface on your Bag of Holding interferes with the teleport!"
+ MM << "The Bluespace interface on your Bag of Holding interferes with the teleport!"
return 1
teleportChecks()
if(istype(teleatom, /obj/item/weapon/disk/nuclear)) // Don't let nuke disks get teleported --NeoFite
- teleatom.visible_message("\red The [teleatom] bounces off of the portal!")
+ teleatom.visible_message("The [teleatom] bounces off of the portal!")
return 0
if(!isemptylist(teleatom.search_contents_for(/obj/item/weapon/disk/nuclear)))
if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom
- MM.visible_message("\red The [MM] bounces off of the portal!","\red Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through.")
+ MM.visible_message("The [MM] bounces off of the portal!","Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through.")
else
- teleatom.visible_message("\red The [teleatom] bounces off of the portal!")
+ teleatom.visible_message("The [teleatom] bounces off of the portal!")
return 0
if(destination.z == 2) //centcomm z-level
if(istype(teleatom, /obj/mecha))
var/obj/mecha/MM = teleatom
- MM.occupant << "\red The mech would not survive the jump to a location so far away!"
+ MM.occupant << "The mech would not survive the jump to a location so far away!"
return 0
if(!isemptylist(teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding)))
- teleatom.visible_message("\red The Bag of Holding bounces off of the portal!")
+ teleatom.visible_message("The Bag of Holding bounces off of the portal!")
return 0
@@ -186,6 +186,6 @@
if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom
if(MM.locked_to_z != 0 && destination.z != MM.locked_to_z)
- MM.visible_message("\red [MM] bounces off the portal!","\red You're unable to go to that destination!")
+ MM.visible_message("[MM] bounces off the portal!","You're unable to go to that destination!")
return 0
return 1
\ No newline at end of file
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index ff67db7038b..dc7b036d6ad 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -126,6 +126,7 @@ datum/mind
Factions and special roles: "}
// END AUTOFIX
var/list/sections = list(
+ "hasborer",
"revolution",
"cult",
"wizard",
@@ -139,6 +140,16 @@ datum/mind
var/text = ""
if (istype(current, /mob/living/carbon/human) || istype(current, /mob/living/carbon/monkey) || istype(current, /mob/living/simple_animal/construct))
+ /mob/living/simple_animal/borer
+ /** HAS BORER **/
+ text = "Has Borer"
+ text = "[text]: "
+ var/mob/living/simple_animal/borer/B = current.has_brain_worms()
+ if(B)
+ text += "[formatPlayerPanel(B,B.ckey)]"
+ else
+ text += "NO"
+ sections["hasborer"] = text
/** REVOLUTION ***/
text = "revolution"
if (ticker.mode.config_tag=="revolution")
@@ -556,12 +567,12 @@ datum/mind
if("clear")
if(src in ticker.mode.revolutionaries)
ticker.mode.revolutionaries -= src
- current << "\red You have been brainwashed! You are no longer a revolutionary!"
+ current << "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!"
+ current << "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_admin(usr)] has de-rev'ed [current].")
@@ -570,9 +581,9 @@ datum/mind
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!"
+ current << "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!"
+ current << " 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
@@ -584,9 +595,9 @@ datum/mind
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!"
+ current << "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!"
+ current << "You are a member of the revolutionaries' leadership now!"
else
return
if (ticker.mode.head_revolutionaries.len>0)
@@ -608,24 +619,24 @@ datum/mind
if("autoobjectives")
ticker.mode.forge_revolutionary_objectives(src)
ticker.mode.greet_revolutionary(src,0)
- usr << "\blue The objectives for revolution have been generated and shown to [key]"
+ usr << "The objectives for revolution have been generated and shown to [key]"
if("flash")
if (!ticker.mode.equip_revolutionary(current))
- usr << "\red Spawning flash failed!"
+ usr << "Spawning flash failed!"
if("takeflash")
var/list/L = current.get_contents()
var/obj/item/device/flash/flash = locate() in L
if (!flash)
- usr << "\red Deleting flash failed!"
+ usr << "Deleting flash failed!"
qdel(flash)
if("repairflash")
var/list/L = current.get_contents()
var/obj/item/device/flash/flash = locate() in L
if (!flash)
- usr << "\red Repairing flash failed!"
+ usr << "Repairing flash failed!"
else
flash.broken = 0
@@ -638,7 +649,7 @@ datum/mind
fail |= !ticker.mode.equip_traitor(current, 1)
fail |= !ticker.mode.equip_revolutionary(current)
if (fail)
- usr << "\red Reequipping revolutionary goes wrong!"
+ usr << "Reequipping revolutionary goes wrong!"
else if (href_list["cult"])
switch(href_list["cult"])
@@ -650,7 +661,7 @@ datum/mind
var/datum/game_mode/cult/cult = ticker.mode
if (istype(cult))
cult.memoize_cult_objectives(src)
- current << "\red You have been brainwashed! You are no longer a cultist!"
+ current << "You have been brainwashed! You are no longer a cultist!"
memory = ""
log_admin("[key_name_admin(usr)] has de-cult'ed [current].")
if("cultist")
@@ -678,13 +689,13 @@ datum/mind
)
var/where = H.equip_in_one_of_slots(T, slots)
if (!where)
- usr << "\red Spawning tome failed!"
+ usr << "Spawning tome failed!"
else
H << "A tome, a message from your new master, appears in your [where]."
if("amulet")
if (!ticker.mode.equip_cultist(current))
- usr << "\red Spawning amulet failed!"
+ usr << "Spawning amulet failed!"
else if (href_list["wizard"])
switch(href_list["wizard"])
@@ -693,7 +704,7 @@ datum/mind
ticker.mode.wizards -= src
special_role = null
current.spellremove(current, config.feature_object_spell_system? "object":"verb")
- current << "\red You have been brainwashed! You are no longer a wizard!"
+ current << "You have been brainwashed! You are no longer a wizard!"
ticker.mode.update_wizard_icons_removed(src)
log_admin("[key_name_admin(usr)] has de-wizard'ed [current].")
if("wizard")
@@ -701,7 +712,7 @@ datum/mind
ticker.mode.wizards += src
special_role = "Wizard"
//ticker.mode.learn_basic_spells(current)
- current << "\red You are the Space Wizard!"
+ current << "You are the Space Wizard!"
ticker.mode.update_wizard_icons_added(src)
log_admin("[key_name_admin(usr)] has wizard'ed [current].")
if("lair")
@@ -712,7 +723,7 @@ datum/mind
ticker.mode.name_wizard(current)
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."
+ usr << "The objectives for wizard [key] have been generated. You can edit them and anounce manually."
ticker.mode.update_all_wizard_icons()
else if (href_list["changeling"])
@@ -735,11 +746,11 @@ datum/mind
log_admin("[key_name_admin(usr)] has changeling'ed [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."
+ usr << "The objectives for changeling [key] have been generated. You can edit them and anounce manually."
if("initialdna")
if( !changeling || !changeling.absorbed_dna.len )
- usr << "\red Resetting DNA failed!"
+ usr << "Resetting DNA failed!"
else
current.dna = changeling.absorbed_dna[1]
current.real_name = current.dna.real_name
@@ -748,7 +759,7 @@ datum/mind
if("set_genomes")
if( !changeling )
- usr << "\red No changeling!"
+ usr << "No changeling!"
return
var/new_g = input(usr,"Number of genomes","Changeling",changeling.geneticpoints) as num
changeling.geneticpoints = Clamp(new_g, 0, 100)
@@ -773,7 +784,7 @@ datum/mind
log_admin("[key_name_admin(usr)] has vampired [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."
+ usr << "The objectives for vampire [key] have been generated. You can edit them and announce manually."
else if (href_list["nuclear"])
switch(href_list["nuclear"])
@@ -784,7 +795,7 @@ datum/mind
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!"
+ current << "You have been brainwashed! You are no longer a syndicate operative!"
log_admin("[key_name_admin(usr)] has de-nuke op'ed [current].")
if("nuclear")
if(!(src in ticker.mode.syndicates))
@@ -795,7 +806,7 @@ datum/mind
else
current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
special_role = "Syndicate"
- current << "\blue You are a [syndicate_name()] agent!"
+ current << "You are a [syndicate_name()] agent!"
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
log_admin("[key_name_admin(usr)] has nuke op'ed [current].")
@@ -814,7 +825,7 @@ datum/mind
qdel(H.w_uniform)
if (!ticker.mode.equip_syndicate(current))
- usr << "\red Equipping a syndicate failed!"
+ usr << "Equipping a syndicate failed!"
if("tellcode")
var/code
for (var/obj/machinery/nuclearbomb/bombue in machines)
@@ -825,36 +836,26 @@ datum/mind
store_memory("Syndicate Nuclear Bomb Code: [code]", 0, 0)
current << "The nuclear authorization code is: [code]"
else
- usr << "\red No valid nuke found!"
+ usr << "No valid nuke found!"
else if (href_list["traitor"])
switch(href_list["traitor"])
- if("clear")
+ if ("clear")
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!"
+ current << "You have been brainwashed! You are no longer a traitor!"
log_admin("[key_name_admin(usr)] has de-traitor'ed [current].")
if(isAI(current))
var/mob/living/silicon/ai/A = current
A.set_zeroth_law("")
A.show_laws()
-
-
- if("traitor")
- if(!(src in ticker.mode.traitors))
- ticker.mode.traitors += src
- special_role = "traitor"
- current << "
You are a traitor!
"
- log_admin("[key_name_admin(usr)] has traitor'ed [current].")
- if(isAI(current))
- var/mob/living/silicon/ai/A = current
- call(/datum/game_mode/proc/add_law_zero)(A)
- A.show_laws()
-
- if("autoobjectives")
+ if ("traitor")
+ if (make_traitor())
+ log_admin("[key_name(usr)] has traitor'ed [key_name(current)].")
+ 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."
+ usr << "The objectives for traitor [key] have been generated. You can edit them and anounce manually."
else if (href_list["monkey"])
var/mob/living/L = current
@@ -867,7 +868,7 @@ datum/mind
var/mob/living/carbon/monkey/M = current
if (istype(H))
log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]")
- message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]")
+ message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]")
src = null
M = H.monkeyize()
src = M.mind
@@ -882,7 +883,7 @@ datum/mind
var/mob/living/carbon/monkey/M = current
if (istype(H))
log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]")
- message_admins("\blue [key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]", 1)
+ message_admins("[key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]", 1)
src = null
M = H.monkeyize()
src = M.mind
@@ -897,7 +898,7 @@ datum/mind
D.cure(0)
sleep(0) //because deleting of virus is doing throught spawn(0)
log_admin("[key_name(usr)] attempting to humanize [key_name(current)]")
- message_admins("\blue [key_name_admin(usr)] attempting to humanize [key_name_admin(current)]")
+ message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]")
var/obj/item/weapon/dnainjector/m2h/m2h = new
var/obj/item/weapon/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0
src = null
@@ -925,7 +926,7 @@ datum/mind
A.show_laws()
A.icon_state = "ai"
- A << "\red You have been patched! You are no longer malfunctioning!"
+ A << "You have been patched! You are no longer malfunctioning!"
message_admins("[key_name_admin(usr)] has de-malf'ed [A].")
log_admin("[key_name_admin(usr)] has de-malf'ed [A].")
@@ -1014,11 +1015,11 @@ datum/mind
total_TC += diff
if("uplink")
if (!ticker.mode.equip_traitor(current, !(src in ticker.mode.traitors)))
- usr << "\red Equipping a syndicate failed!"
+ usr << "Equipping a syndicate failed!"
else if (href_list["obj_announce"])
var/obj_count = 1
- current << "\blue Your current objectives:"
+ current << "Your current objectives:"
for(var/datum/objective/objective in objectives)
current << "Objective #[obj_count]: [objective.explanation_text]"
obj_count++
@@ -1060,11 +1061,14 @@ datum/mind
*/
proc/find_syndicate_uplink()
- var/list/L = current.get_contents()
- for (var/obj/item/I in L)
- if (I.hidden_uplink)
- return I.hidden_uplink
- return null
+ var/uplink = null
+
+ for (var/obj/item/I in get_contents_in_object(current, /obj/item))
+ if (I && I.hidden_uplink)
+ uplink = I.hidden_uplink
+ break
+
+ return uplink
proc/take_uplink()
var/obj/item/device/uplink/hidden/H = find_syndicate_uplink()
@@ -1088,14 +1092,6 @@ datum/mind
special_role = "malfunction"
A.icon_state = "ai-malf"
- proc/make_Tratior()
- if(!(src in ticker.mode.traitors))
- ticker.mode.traitors += src
- special_role = "traitor"
- ticker.mode.forge_traitor_objectives(src)
- ticker.mode.finalize_traitor(src)
- ticker.mode.greet_traitor(src)
-
proc/make_Nuke()
if(!(src in ticker.mode.syndicates))
ticker.mode.syndicates += src
@@ -1106,7 +1102,7 @@ datum/mind
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!"
+ current << "You are a [syndicate_name()] agent!"
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
@@ -1248,7 +1244,26 @@ datum/mind
return (duration <= world.time - brigged_since)
+/datum/mind/proc/make_traitor()
+ if (!(src in ticker.mode.traitors))
+ ticker.mode.traitors += src
+ special_role = "traitor"
+
+ ticker.mode.forge_traitor_objectives(src)
+
+ current << {"
+ ATTENTION
+ It's time to pay your debt to \the [syndicate_name()].
+ "}
+
+ ticker.mode.finalize_traitor(src)
+
+ ticker.mode.greet_traitor(src)
+
+ return TRUE
+
+ return FALSE
//Initialisation procs
/mob/proc/mind_initialize() // vgedit: /mob instead of /mob/living
diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm
index 75d81cc0040..ab41eca2d9f 100644
--- a/code/datums/wires/mulebot.dm
+++ b/code/datums/wires/mulebot.dm
@@ -28,15 +28,15 @@ var/const/WIRE_BEACON_RX = 256 // beacon ping recv
/datum/wires/mulebot/UpdatePulsed(var/index)
switch(index)
if(WIRE_POWER1, WIRE_POWER2)
- holder.visible_message("\blue \icon[holder] The charge light flickers.")
+ holder.visible_message("\icon[holder] The charge light flickers.")
if(WIRE_AVOIDANCE)
- holder.visible_message("\blue \icon[holder] The external warning lights flash briefly.")
+ holder.visible_message("\icon[holder] The external warning lights flash briefly.")
if(WIRE_LOADCHECK)
- holder.visible_message("\blue \icon[holder] The load platform clunks.")
+ holder.visible_message("\icon[holder] The load platform clunks.")
if(WIRE_MOTOR1, WIRE_MOTOR2)
- holder.visible_message("\blue \icon[holder] The drive motor whines briefly.")
+ holder.visible_message("\icon[holder] The drive motor whines briefly.")
else
- holder.visible_message("\blue \icon[holder] You hear a radio crackle.")
+ holder.visible_message("\icon[holder] You hear a radio crackle.")
// HELPER PROCS
diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm
index 8c60b0e4546..b2bdf283d3c 100644
--- a/code/datums/wires/syndicatebomb.dm
+++ b/code/datums/wires/syndicatebomb.dm
@@ -16,17 +16,17 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
switch(index)
if(WIRE_BOOM)
if (P.active)
- P.loc.visible_message("\red \icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
P.timer = 0
if(WIRE_UNBOLT)
- P.loc.visible_message("\blue \icon[holder] The bolts spin in place for a moment.")
+ P.loc.visible_message("\icon[holder] The bolts spin in place for a moment.")
if(WIRE_DELAY)
playsound(P.loc, 'sound/machines/chime.ogg', 30, 1)
- P.loc.visible_message("\blue \icon[holder] The bomb chirps.")
+ P.loc.visible_message("\icon[holder] The bomb chirps.")
P.timer += 10
if(WIRE_PROCEED)
playsound(P.loc, 'sound/machines/buzz-sigh.ogg', 30, 1)
- P.loc.visible_message("\red \icon[holder] The bomb buzzes ominously!")
+ P.loc.visible_message("\icon[holder] The bomb buzzes ominously!")
if (P.timer >= 61) //Long fuse bombs can suddenly become more dangerous if you tinker with them
P.timer = 60
if (P.timer >= 21)
@@ -36,7 +36,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_ACTIVATE)
if(!P.active && !P.defused)
playsound(P.loc, 'sound/machines/click.ogg', 30, 1)
- P.loc.visible_message("\red \icon[holder] You hear the bomb start ticking!")
+ P.loc.visible_message("\icon[holder] You hear the bomb start ticking!")
P.active = 1
if(!P.open_panel) //Needs to exist in case the wire is pulsed with a signaler while the panel is closed
P.icon_state = "syndicate-bomb-active"
@@ -44,7 +44,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
P.icon_state = "syndicate-bomb-active-wires"
processing_objects.Add(P)
else
- P.loc.visible_message("\blue \icon[holder] The bomb seems to hesitate for a moment.")
+ P.loc.visible_message("\icon[holder] The bomb seems to hesitate for a moment.")
P.timer += 5
/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended)
@@ -55,7 +55,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_EXPLODE)
if(!mended)
if(P.active)
- P.loc.visible_message("\red \icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
P.timer = 0
else
P.defused = 1
@@ -64,15 +64,15 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_UNBOLT)
if (!mended && P.anchored)
playsound(P.loc, 'sound/effects/stealthoff.ogg', 30, 1)
- P.loc.visible_message("\blue \icon[holder] The bolts lift out of the ground!")
+ P.loc.visible_message("\icon[holder] The bolts lift out of the ground!")
P.anchored = 0
if(WIRE_PROCEED)
if(!mended && P.active)
- P.loc.visible_message("\red \icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
P.timer = 0
if(WIRE_ACTIVATE)
if (!mended && P.active)
- P.loc.visible_message("\blue \icon[holder] The timer stops! The bomb has been defused!")
+ P.loc.visible_message("\icon[holder] The timer stops! The bomb has been defused!")
P.icon_state = "syndicate-bomb-inactive-wires" //no cutting possible with the panel closed
P.active = 0
P.defused = 1
\ No newline at end of file
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index c57b6fdefdf..3cbae7b31a3 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -141,7 +141,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
// Attach
else
if(istype(I, /obj/item/device/assembly/signaler))
- L.drop_item()
+ L.drop_item(I)
Attach(colour, I)
else
L << "You need a remote signaller!"
diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index b564a10d051..87a9b2cb576 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -306,7 +306,7 @@ var/global/list/PDA_Manifest = list()
siemens_coefficient = 1
/obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
- user.drop_item()
+ user.drop_item(src)
src.throw_at(target, throw_range, throw_speed)
/obj/effect/stop
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 36c41d8d811..195aec873b4 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -14,7 +14,7 @@
hitsound = 'sound/weapons/ring.ogg'
suicide_act(mob/user)
- viewers(user) << "\red [user] wraps the cord of the [src.name] around \his neck! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] wraps the cord of the [src.name] around \his neck! It looks like \he's trying to commit suicide."
return(OXYLOSS)
/*/obj/item/weapon/syndicate_uplink
@@ -60,7 +60,7 @@
throw_range = 20
suicide_act(mob/user)
- viewers(user) << "\red [user] drops the [src.name] on the ground and steps on it causing \him to crash to the floor, bashing \his head wide open. "
+ viewers(user) << "[user] drops the [src.name] on the ground and steps on it causing \him to crash to the floor, bashing \his head wide open. "
return(OXYLOSS)
/obj/item/weapon/corncob
@@ -212,7 +212,7 @@
var/thrown_from
/obj/item/weapon/legcuffs/bolas/suicide_act(mob/living/user)
- viewers(user) << "\red [user] is wrapping the [src.name] around \his neck! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is wrapping the [src.name] around \his neck! It looks like \he's trying to commit suicide."
return(OXYLOSS)
/obj/item/weapon/legcuffs/bolas/throw_at(var/atom/A, throw_range, throw_speed)
@@ -220,9 +220,9 @@
if(istype(usr, /mob/living/carbon/human)) //if the user is human
var/mob/living/carbon/human/H = usr
if((M_CLUMSY in H.mutations) && prob(50))
- H <<"\red You smack yourself in the face while swinging the [src]!"
+ H <<"You smack yourself in the face while swinging the [src]!"
H.Stun(2)
- H.drop_item()
+ H.drop_item(src)
return
if (!thrown_from && usr) //if something hasn't set it already (like a mech does when it launches)
thrown_from = usr //then the user must have thrown it
@@ -268,7 +268,7 @@
throw_failed()
return
else //walking, but uncuffed, or the running prob() failed
- H << "\blue You stumble over the thrown bolas"
+ H << "You stumble over the thrown bolas"
step(H, H.dir)
H.Stun(1)
throw_failed()
@@ -341,6 +341,8 @@
/obj/item/weapon/legcuffs/bolas/cable/attackby(var/obj/O, mob/user)
if(istype(O, /obj/item))
+ if(istype(O, /obj/item/weapon/gift) || istype(O,/obj/item/smallDelivery))
+ return
var/obj/item/I = O
if(istype(O, /obj/item/weapon/legcuffs/bolas)) //don't stack into infinity
return
@@ -373,15 +375,15 @@
return
if(I.w_class) //if it has a defined weight
if(I.w_class == 2.0 || I.w_class == 3.0) //just one is too specific, so don't change this
- if(weight1 == null)
- user.drop_item(src)
+ if(!weight1)
+ user.drop_item(I, src)
weight1 = I
user.show_message("You tie [weight1] to the [src].")
update_icon()
//del(I)
return
- if(weight2 == null) //just in case
- user.drop_item(src)
+ if(!weight2) //just in case
+ user.drop_item(I, src)
weight2 = I
user.show_message("You tie [weight2] to the [src].")
update_icon()
@@ -407,7 +409,7 @@
var/obj/item/weapon/grenade/iedcasing/IED = null
suicide_act(mob/user)
- viewers(user) << "\red [user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide."
return (BRUTELOSS)
/obj/item/weapon/legcuffs/beartrap/attack_self(mob/user as mob)
@@ -429,8 +431,7 @@
IED = null
return
if(2,3)
- user.drop_item(src)
- I.loc = src
+ user.drop_item(I, src)
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
var/log_str = "[key_name(usr)]? has rigged a beartrap with an IED at [A.name] (JMP)."
@@ -479,7 +480,7 @@
for(var/mob/O in viewers(H, null))
if(O == H)
continue
- O.show_message("\red [H] steps on \the [src].", 1)
+ O.show_message("[H] steps on \the [src].", 1)
if(isanimal(AM) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator))
armed = 0
var/mob/living/simple_animal/SA = AM
@@ -673,7 +674,7 @@
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
suicide_act(mob/user)
- viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide."
return (OXYLOSS)
/obj/item/weapon/module
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 5a0d8c84cf9..1bd7870c311 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -438,7 +438,7 @@ its easier to just keep the beam vertical.
if (!(istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) && !(istype(W, /obj/item/weapon/reagent_containers/spray)) && !(istype(W, /obj/item/weapon/packageWrap)) && !istype(W, /obj/item/device/detective_scanner))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O << "\red [src] has been hit by [user] with [W]"
+ O << "[src] has been hit by [user] with [W]"
return
*/
/atom/proc/add_hiddenprint(mob/living/M as mob)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 20d54b7e727..7a59a75bbf5 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -39,27 +39,9 @@
gcDestroyed = "Bye, world!"
tag = null
loc = null
- var/disk = check_contents_for(/obj/item/weapon/disk/nuclear)
- if(istype(disk, /obj/item/weapon/disk/nuclear))
- qdel(disk)
..()
-/atom/proc/check_contents_for(A)
- set background = 1
- var/list/L = contents
-
- for(var/obj/thing in L)
- if(thing.contents.len)
- var/finditagain = thing.check_contents_for(A)
- if(finditagain) L |= finditagain
-
- for(var/obj/B in L)
- if(B.type == A)
- return B
- return 0
-
-
/proc/delete_profile(var/type, code = 0)
if(!ticker || ticker.current_state < 3) return
if(code == 0)
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index d7c0d55be00..93d195a8580 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -84,7 +84,7 @@
set category = "Object"
set name = "Eject DNA Scanner"
- if (usr.stat != 0 || istype(usr, /mob/living/simple_animal))
+ if (usr.stat != 0 || istype(usr, /mob/living/simple_animal) || (usr.status_flags & FAKEDEATH))
return
eject_occupant()
@@ -109,9 +109,7 @@
set category = "Object"
set name = "Enter DNA Scanner"
- if (usr.stat != 0)
- return
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting || (usr.status_flags & FAKEDEATH)) //are you cuffed, dying, lying, stunned or other
return
if (!ishuman(usr) && !ismonkey(usr)) //Make sure they're a mob that has dna
usr << " Try as you might, you can not climb up into the scanner."
@@ -163,7 +161,7 @@
if(!istype(L) || L.buckled)
return
if(L.abiotic())
- user << "\red Subject cannot have abiotic items on."
+ user << "Subject cannot have abiotic items on."
return
for(var/mob/living/carbon/slime/M in range(1,L))
if(M.Victim == L)
@@ -191,7 +189,7 @@
return 1
else if(istype(item, /obj/item/weapon/crowbar))
if (occupant)
- user << "\red You cannot disassemble this [src], it's occupado."
+ user << "You cannot disassemble this [src], it's occupado."
return
if (opened)
playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
@@ -207,11 +205,11 @@
return 1
else if(istype(item, /obj/item/weapon/reagent_containers/glass))
if(beaker)
- user << "\red A beaker is already loaded into the machine."
+ user << "A beaker is already loaded into the machine."
return
beaker = item
- user.drop_item(src)
+ user.drop_item(beaker, src)
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
return
if(istype(item, /obj/item/weapon/grab)) //sanity checks, you chucklefucks
@@ -219,10 +217,10 @@
if (!ismob(G.affecting))
return
if (src.occupant)
- user << "\blue The scanner is already occupied!"
+ user << "The scanner is already occupied!"
return
if (G.affecting.abiotic())
- user << "\blue Subject cannot have abiotic items on."
+ user << "Subject cannot have abiotic items on."
return
if(G.affecting.buckled)
return
@@ -343,7 +341,7 @@
..()
if (istype(O, /obj/item/weapon/disk/data)) //INSERT SOME diskS
if (!src.disk)
- user.drop_item(src)
+ user.drop_item(O, src)
src.disk = O
user << "You insert [O]."
nanomanager.update_uis(src) // update all UIs attached to src()
diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm
index e9df4e0f9a2..4fe36562c26 100644
--- a/code/game/dna/genes/disabilities.dm
+++ b/code/game/dna/genes/disabilities.dm
@@ -36,7 +36,7 @@
if(sdisability)
M.sdisabilities|=sdisability
if(activation_message)
- M << "\red [activation_message]"
+ M << "[activation_message]"
else
testing("[name] has no activation message.")
@@ -48,7 +48,7 @@
if(sdisability)
M.sdisabilities &= ~sdisability
if(deactivation_message)
- M << "\red [deactivation_message]"
+ M << "[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 10f1ae42ad8..ea5cde91fba 100644
--- a/code/game/dna/genes/gene.dm
+++ b/code/game/dna/genes/gene.dm
@@ -117,10 +117,10 @@
M.mutations.Add(mutation)
if(activation_messages.len)
var/msg = pick(activation_messages)
- M << "\blue [msg]"
+ M << "[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
+ M << "[msg]"
\ No newline at end of file
diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm
index 156c2906107..5323076a2d9 100644
--- a/code/game/dna/genes/goon_disabilities.dm
+++ b/code/game/dna/genes/goon_disabilities.dm
@@ -46,7 +46,7 @@
owner.radiation = max(owner.radiation, 20)
for(var/mob/living/L in range(1, owner))
if(L == owner) continue
- L << "\red You are enveloped by a soft green glow emanating from [owner]."
+ L << "You are enveloped by a soft green glow emanating from [owner]."
L.radiation += 5
return
@@ -333,9 +333,9 @@
if (C == owner)
continue
if (src.variant == 2)
- C << "\red [src.personalized_stink]"
+ C << "[src.personalized_stink]"
else
- C << "\red [stinkString()]"
+ C << "[stinkString()]"
*/
@@ -419,7 +419,7 @@
if (istype(M,/mob/living/carbon/human/))
var/mob/living/carbon/human/H = M
- H.visible_message("\red [H.name]'s flesh melts right off! Holy shit!")
+ H.visible_message("[H.name]'s flesh melts right off! Holy shit!")
//if (H.gender == "female")
// playsound(H.loc, 'female_fallscream.ogg', 50, 0)
//else
@@ -435,6 +435,6 @@
//H.decomp_stage = 4
H.gib(1)
else
- M.visible_message("\red [usr.name] melts into a pile of bloody viscera!")
+ M.visible_message("[usr.name] melts into a pile of bloody viscera!")
M.gib(1)
diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm
index 67372990332..d0133104a46 100644
--- a/code/game/dna/genes/goon_powers.dm
+++ b/code/game/dna/genes/goon_powers.dm
@@ -146,7 +146,7 @@
..()
for(var/mob/living/carbon/target in targets)
if (M_RESIST_COLD in target.mutations)
- target.visible_message("\red A cloud of fine ice crystals engulfs [target.name], but disappears almost instantly!")
+ target.visible_message("A cloud of fine ice crystals engulfs [target.name], but disappears almost instantly!")
return
var/handle_suit = 0
if(ishuman(target))
@@ -155,10 +155,10 @@
if(istype(H.wear_suit, /obj/item/clothing/suit/space))
handle_suit = 1
if(H.internal)
- H.visible_message("\red A cloud of fine ice crystals engulfs [H]!",
+ H.visible_message("A cloud of fine ice crystals engulfs [H]!",
"A cloud of fine ice crystals cover your [H.head]'s visor.")
else
- H.visible_message("\red A cloud of fine ice crystals engulfs [H]!",
+ H.visible_message("A cloud of fine ice crystals engulfs [H]!",
"A cloud of fine ice crystals cover your [H.head]'s visor and make it into your air vents!.")
H.bodytemperature = max(0, H.bodytemperature - 50)
H.adjustFireLoss(5)
@@ -167,7 +167,7 @@
target.adjustFireLoss(10)
target.ExtinguishMob()
- target.visible_message("\red A cloud of fine ice crystals engulfs [target]!")
+ target.visible_message("A cloud of fine ice crystals engulfs [target]!")
new/obj/effects/self_deleting(target.loc, icon('icons/effects/genetics.dmi', "cryokinesis"))
return
@@ -335,11 +335,11 @@
// 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!"
return 0
- usr.visible_message("[usr] begins stuffing [the_item]'s [limb.display_name] into [m_his] gaping maw!")
+ usr.visible_message("[usr] begins stuffing [the_item]'s [limb.display_name] into [m_his] gaping maw!")
if(!do_mob(user,the_item,EAT_MOB_DELAY))
- user << " You were interrupted before you could eat [the_item]!"
+ user << "You were interrupted before you could eat [the_item]!"
else
- user.visible_message("\red [user] eats \the [limb].")
+ user.visible_message("[user] eats \the [limb].")
limb.droplimb("override" = 1, "spawn_limb" = 0)
doHeal(user)
else
@@ -434,7 +434,7 @@
if (istype(target.loc,/obj/))
var/obj/container = target.loc
- target << "\red You leap and slam your head against the inside of [container]! Ouch!"
+ target << "You leap and slam your head against the inside of [container]! Ouch!"
target.paralysis += 3
target.weakened += 5
container.visible_message("[container] emits a loud thump and rattles a bit.")
diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm
index 5348458a9b0..81475c61b2e 100644
--- a/code/game/dna/genes/powers.dm
+++ b/code/game/dna/genes/powers.dm
@@ -268,7 +268,7 @@
M.dna.SetSEState(HULKBLOCK,0)
M.update_mutations() //update our mutation overlays
M.update_body()
- M << "\red You suddenly feel very weak."
+ M << "You suddenly feel very weak."
M.Weaken(3)
M.emote("collapse")
*/
diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm
index 8751241f570..9fb5a5d7b35 100644
--- a/code/game/dna/genes/vg_powers.dm
+++ b/code/game/dna/genes/vg_powers.dm
@@ -48,7 +48,7 @@ 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."
+ M << "You suddenly feel very weak."
M.Weaken(3)
M.emote("collapse")
@@ -75,7 +75,7 @@ Obviously, requires DNA2.
/spell/targeted/genetic/hulk/cast(list/targets, mob/user)
if (istype(user.loc,/mob))
- usr << "\red You can't hulk out right now!"
+ usr << "You can't hulk out right now!"
return
for(var/mob/living/carbon/human/M in targets)
M.hulk_time = world.time + src.duration
diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index 41363dcd38e..ecbe43ba7de 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -115,35 +115,27 @@
traitor_prob += 50
- if(traitorcount < max_traitors)
+ if (traitorcount < max_traitors)
//message_admins("Number of Traitors is below maximum. Rolling for new Traitor.")
//message_admins("The probability of a new traitor is [traitor_prob]%")
- if(prob(traitor_prob))
- message_admins("Making a new Traitor.")
- if(!possible_traitors.len)
- message_admins("No potential traitors. Cancelling new traitor.")
- traitorcheckloop()
- return
- var/mob/living/newtraitor = pick(possible_traitors)
- //message_admins("[newtraitor.real_name] is the new Traitor.")
+ if (prob(traitor_prob))
+ message_admins("AUTOTRAITOR: making someone traitor")
- forge_traitor_objectives(newtraitor.mind)
+ if (possible_traitors.len > 0)
+ var/mob/living/traitor_body = pick(possible_traitors)
- if(istype(newtraitor, /mob/living/silicon))
- add_law_zero(newtraitor)
+ if (traitor_body)
+ var/datum/mind/traitor_mind = traitor_body.mind
+
+ if (traitor_mind)
+ if (traitor_mind.make_traitor())
+ log_game("[key_name(traitor_body)] has been auto traitor'ed.")
+
+ message_admins("AUTOTRAITOR: [key_name_admin(traitor_body)] is now a traitor")
else
- equip_traitor(newtraitor)
+ message_admins("AUTOTRAITOR: no potential traitors, mission is kill")
- traitors += newtraitor.mind
- newtraitor << "\red ATTENTION: \black It is time to pay your debt to the Syndicate..."
- newtraitor << "You are now a traitor."
- newtraitor.mind.special_role = "traitor"
- var/obj_count = 1
- newtraitor << "\blue Your current objectives:"
- for(var/datum/objective/objective in newtraitor.mind.objectives)
- newtraitor << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
//else
//message_admins("No new traitor being added.")
//else
@@ -151,8 +143,6 @@
traitorcheckloop()
-
-
/datum/game_mode/traitor/autotraitor/latespawn(mob/living/carbon/human/character)
..()
if(emergency_shuttle.departed)
@@ -191,10 +181,10 @@
forge_traitor_objectives(character.mind)
equip_traitor(character)
traitors += character.mind
- character << "\red You are the traitor."
+ character << "You are the traitor."
character.mind.special_role = "traitor"
var/obj_count = 1
- character << "\blue Your current objectives:"
+ character << "Your current objectives:"
for(var/datum/objective/objective in character.mind.objectives)
character << "Objective #[obj_count]: [objective.explanation_text]"
obj_count++
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index 08e48a4ab20..7b4ab217eb8 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -65,11 +65,11 @@ 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 << {"\red You are infected by the Blob!
+ blob.current << {"You are infected by the Blob!Your body is ready to give spawn to a new blob core which will eat this station.Find a good location to spawn the core and then take control and overwhelm the station! Make sure you are ON the station when you burst!When you have found a location, wait until you spawn; this will happen automatically and you cannot speed up the process.
-If you go outside of the station level, or in space, then you will die; make sure your location has plenty of space to expand."}
+If you go outside of the station level, or in space, then you will die; make sure your location has plenty of space to expand."}
return
/datum/game_mode/blob/proc/show_message(var/message)
diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm
index dd5fbc57e8d..b0ddc011af1 100644
--- a/code/game/gamemodes/blob/blob_finish.dm
+++ b/code/game/gamemodes/blob/blob_finish.dm
@@ -32,7 +32,7 @@
var/percent = round( 100.0 * start_state.score(end_state), 0.1)
world << "The station is [percent]% intact."
log_game("Blob mode was won with station [percent]% intact.")
- world << "\blue Rebooting in 30s"
+ world << "Rebooting in 30s"
..()
return 1
diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm
index 85c9e7bcdaa..f9985ae0e30 100644
--- a/code/game/gamemodes/blob/powers.dm
+++ b/code/game/gamemodes/blob/powers.dm
@@ -273,6 +273,6 @@
set name = "Psionic Message (15)"
set desc = "Give a psionic message to all creatures on and around the station."
- world << "\red Your vision becomes cloudy, and your mind becomes clear."
+ world << "Your vision becomes cloudy, and your mind becomes clear."
spawn(5)
world << "[message]"
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index a7aad0a6ea3..2f75f611051 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -172,7 +172,7 @@
/obj/effect/blob/attackby(var/obj/item/weapon/W, var/mob/user)
user.delayNextAttack(10)
playsound(get_turf(src), 'sound/effects/attackblob.ogg', 50, 1)
- src.visible_message("\red The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]")
+ src.visible_message("The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = 0
switch(W.damtype)
if("fire")
diff --git a/code/game/gamemodes/borer/borer.dm b/code/game/gamemodes/borer/borer.dm
index c9748a30651..ed9b9fb8d0c 100644
--- a/code/game/gamemodes/borer/borer.dm
+++ b/code/game/gamemodes/borer/borer.dm
@@ -131,10 +131,10 @@
var/count = 1
for(var/datum/objective/objective in borer.objectives)
if(objective.check_completion())
- world << "Objective #[count]: [objective.explanation_text] \green Success"
+ world << "Objective #[count]: [objective.explanation_text] Success"
feedback_add_details("borer_objective","[objective.type]|SUCCESS")
else
- world << "Objective #[count]: [objective.explanation_text] \red Failed"
+ world << "Objective #[count]: [objective.explanation_text] Failed"
feedback_add_details("borer_objective","[objective.type]|FAIL")
borerwin = 0
count++
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 21ef1f83ad9..934c793466d 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -126,8 +126,8 @@ 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 are a changeling!"
+ changeling.current << "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:"
if (changeling.current.mind)
@@ -250,10 +250,9 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
changelingID = "[honorific] [rand(1,999)]"
/datum/changeling/proc/regenerate()
- chem_charges = min(max(0, chem_charges+chem_recharge_rate), chem_storage)
+ chem_charges = Clamp(chem_charges + chem_recharge_rate, 0, chem_storage)
geneticdamage = max(0, geneticdamage-1)
-
/datum/changeling/proc/GetDNA(var/dna_owner)
var/datum/dna/chosen_dna
for(var/datum/dna/DNA in absorbed_dna)
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 1a93918d421..f8a0d8895e3 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -415,7 +415,7 @@
var/mob/M = locate(src) in mob_list
if(M == src)
yes = 1
- usr << "[yes ? "\blue" : "\red"] You are [yes ? "" : "not "]in the mob list"
+ usr << "[yes ? "" : ""] You are [yes ? "" : "not "]in the mob list"
yes = 0
if(src in living_mob_list)
yes = 1
@@ -423,7 +423,7 @@
var/mob/M = locate(src) in living_mob_list
if(M == src)
yes = 1
- usr << "[yes ? "\blue" : "\red"] You are [yes ? "" : "not "]in the living mob list"
+ usr << "[yes ? "" : ""] You are [yes ? "" : "not "]in the living mob list"
/mob/proc/changeling_returntolife()
set category = "Changeling"
diff --git a/code/game/gamemodes/changeling/horror.dm b/code/game/gamemodes/changeling/horror.dm
index 0be53021bca..3232d4e51a2 100644
--- a/code/game/gamemodes/changeling/horror.dm
+++ b/code/game/gamemodes/changeling/horror.dm
@@ -57,15 +57,15 @@
return
for(var/obj/machinery/door/D in T)
if(D.density)
- D.visible_message("\red \The [D]'s motors whine as several great tendrils begin trying to force it open!")
+ D.visible_message("\The [D]'s motors whine as several great tendrils begin trying to force it open!")
if(do_after(H,50) && prob(50))
D.open(1)
- D.visible_message("\red [H.name] forces \the [D] open!")
+ D.visible_message("[H.name] forces \the [D] open!")
// Open firedoors, too.
for(var/obj/machinery/door/firedoor/FD in D.loc)
if(FD && FD.density)
FD.open(1)
else
- usr << "\red You fail to open \the [D]."
+ usr << "You fail to open \the [D]."
return
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 30d4d1fe390..e1b211b2f85 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -396,7 +396,7 @@
if(cult_mind in cult)
update_cult_icons_removed(cult_mind)
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."
+ cult_mind.current << "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 = ""
if(show_message)
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index 5beb99e67a3..73a48b4c571 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -18,7 +18,7 @@
return ..()
else
user.Paralyse(5)
- user << "\red An unexplicable force powerfully repels the sword from [target]!"
+ user << "An unexplicable force powerfully repels the sword from [target]!"
var/organ = ((user.hand ? "l_":"r_") + "arm")
var/datum/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.
@@ -27,7 +27,7 @@
/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."
+ user << "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 3b42d4162ca..f0ad3f08b08 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -307,7 +307,7 @@ var/global/list/rune_list = list() // HOLY FUCK WHY ARE WE LOOPING THROUGH THE W
/obj/item/weapon/tome/Topic(href,href_list[])
if (src.loc == usr)
var/number = text2num(href_list["number"])
- if (usr.stat|| usr.restrained())
+ if (usr.stat || usr.restrained())
return
switch(href_list["action"])
if("clear")
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 2b2ec9fbb1c..079da01100a 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -196,11 +196,11 @@
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."
+ 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
usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!")
- usr.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2)
+ usr.show_message("The markings pulse with a small burst of light, then fall dark.", 3, "You hear a faint fizzle.", 2)
usr << " You remembered the words correctly, but the rune isn't working. Maybe your ritual is missing something important."
/////////////////////////////////////////FOURTH RUNE
@@ -350,14 +350,14 @@
if(!drain)
return fizzle()
usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!")
- usr.visible_message("\red Blood flows from the rune into [usr]!", \
+ usr.visible_message("Blood flows from the rune into [usr]!", \
"The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \
"You hear a liquid flowing.")
var/mob/living/user = usr
if(user.bhunger)
user.bhunger = max(user.bhunger-2*drain,0)
if(drain>=50)
- user.visible_message("\red [user]'s eyes give off eerie red glow!", \
+ user.visible_message("[user]'s eyes give off eerie red glow!", \
"...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \
"You hear a heartbeat.")
user.bhunger += drain
@@ -498,7 +498,7 @@
if(istype(src,/obj/effect/rune))
usr.say("Kla[pick("'","`")]atu barada nikt'o!")
for (var/mob/V in viewers(src))
- V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3)
+ V.show_message("The rune turns into gray dust, veiling the surrounding runes.", 3)
qdel(src)
else
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
@@ -740,7 +740,7 @@
usr.whisper("[input]")
for(var/datum/mind/H in ticker.mode.cult)
if (H.current)
- H.current << " \b [input]"//changed from red to purple - Deity Link
+ H.current << "[input]"//changed from red to purple - Deity Link
qdel(src)
return 1
diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm
index 89f897605ef..74f5e507a12 100644
--- a/code/game/gamemodes/cult/talisman.dm
+++ b/code/game/gamemodes/cult/talisman.dm
@@ -51,7 +51,7 @@
blind()
qdel(src)
if("runestun")
- user << "\red To use this talisman, attack your target directly."
+ user << "To use this talisman, attack your target directly."
return
if("supply")
supply()
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
index 3714c83ae9d..ef1c8d8cfd1 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
@@ -83,7 +83,7 @@ AUTOMATED ALERT: Link to [command_name()] lost."}
blackbox.save_all_data_to_sql()
if (watchdog.waiting)
- world << "\blue Server will shut down for an automatic update in a few seconds."
+ world << "Server will shut down for an automatic update in a few seconds."
watchdog.signal_ready()
return
sleep(300)
diff --git a/code/game/gamemodes/endgame/xmas/snowman.dm b/code/game/gamemodes/endgame/xmas/snowman.dm
index 2f75d65459e..27ea7549834 100644
--- a/code/game/gamemodes/endgame/xmas/snowman.dm
+++ b/code/game/gamemodes/endgame/xmas/snowman.dm
@@ -73,7 +73,7 @@
/mob/living/simple_animal/hostile/retaliate/snowman/attackby(var/obj/item/W, var/mob/user)
if(!carrot && istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot))
visible_message("[user] puts \a [W] on \the [src]'s nose.")
- user.drop_item(src)
+ user.drop_item(W, src)
carrot = W
overlays += "snowman_carrot"
speak -= "Would you happen to have a carrot for my nose?"
@@ -88,7 +88,7 @@
hat = null
else
speak += "I feel so dandy!"
- user.drop_item(src)
+ user.drop_item(W, src)
hat = W
overlays += image('icons/mob/head.dmi', hat.icon_state)
diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm
index 36cbc381171..dff4fda7974 100644
--- a/code/game/gamemodes/epidemic/epidemic.dm
+++ b/code/game/gamemodes/epidemic/epidemic.dm
@@ -74,7 +74,7 @@
var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command, any crew member with loyalty implant. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws."
for(var/mob/living/silicon/ai/M in world)
M.add_ion_law(extra_law)
- M << "\red " + extra_law
+ M << "" + extra_law
/datum/game_mode/epidemic/proc/announce_to_kill_crew()
var/intercepttext = {"CONFIDENTIAL REPORT
"
if(3)
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index d585c674b6e..76d06f40458 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -68,7 +68,7 @@ var/shuttle_call/shuttle_calls[0]
return 1
if (!(src.z in list(STATION_Z,CENTCOMM_Z)))
- usr << "\red Unable to establish a connection: \black You're too far away from the station!"
+ usr << "Unable to establish a connection: You're too far away from the station!"
return
usr.set_machine(src)
@@ -262,13 +262,13 @@ var/shuttle_call/shuttle_calls[0]
if("MessageCentcomm")
if(src.authenticated==2)
if(centcomm_message_cooldown)
- usr << "\red Arrays recycling. Please stand by."
+ usr << "Arrays recycling. Please stand by."
return
var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "")
if(!input || !(usr in view(1,src)))
return
Centcomm_announce(input, usr)
- usr << "\blue Message transmitted."
+ usr << "Message transmitted."
log_say("[key_name(usr)] (@[usr.x],[usr.y],[usr.z]) has sent a bluespace message to Centcomm: [input]")
centcomm_message_cooldown = 1
spawn(300)//10 minute cooldown
@@ -280,13 +280,13 @@ var/shuttle_call/shuttle_calls[0]
if("MessageSyndicate")
if((src.authenticated==2) && (src.emagged))
if(centcomm_message_cooldown)
- usr << "\red Arrays recycling. Please stand by."
+ usr << "Arrays recycling. Please stand by."
return
var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "")
if(!input || !(usr in view(1,src)))
return
Syndicate_announce(input, usr)
- usr << "\blue Message transmitted."
+ usr << "Message transmitted."
log_say("[key_name(usr)] (@[usr.x],[usr.y],[usr.z]) has sent a bluespace message to the syndicate: [input]")
centcomm_message_cooldown = 1
spawn(300)//10 minute cooldown
@@ -313,7 +313,7 @@ var/shuttle_call/shuttle_calls[0]
return
if (!(src.z in list(STATION_Z, CENTCOMM_Z)))
- user << "\red Unable to establish a connection: \black You're too far away from the station!"
+ user << "Unable to establish a connection: You're too far away from the station!"
return
ui_interact(user)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 3bad1b921c3..262d2dfb393 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -51,7 +51,7 @@
/obj/machinery/computer/crew/Topic(href, href_list)
if(..()) return
if (src.z > 6)
- usr << "\red Unable to establish a connection: \black You're too far away from the station!"
+ usr << "Unable to establish a connection: You're too far away from the station!"
return 0
if( href_list["close"] )
if(usr.machine == src) usr.unset_machine()
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index f9e7026c8c4..480534aacf0 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -15,14 +15,14 @@
set category = "Object"
set name = "Access Computer's Internals"
set src in oview(1)
- if(get_dist(src, usr) > 1 || usr.restrained() || usr.lying || usr.stat || istype(usr, /mob/living/silicon))
+ if(get_dist(src, usr) > 1 || usr.restrained() || usr.lying || usr.stat || istype(usr, /mob/living/silicon) || (usr.status_flags & FAKEDEATH))
return
opened = !opened
if(opened)
- usr << "\blue The access panel is now open."
+ usr << "The access panel is now open."
else
- usr << "\blue The access panel is now closed."
+ usr << "The access panel is now closed."
return
proc/install_module(var/obj/item/weapon/aiModule/O, var/mob/user)
@@ -61,11 +61,11 @@
if(R.lawupdate && (R.connected_ai == current))
R << "These are your laws now:"
R.show_laws()
- user << "\blue Upload complete. The AI's laws have been modified."
+ user << "Upload complete. The AI's laws have been modified."
attackby(obj/item/weapon/O as obj, mob/user as mob)
if (user.z > 6)
- user << "\red Unable to establish a connection: \black You're too far away from the station!"
+ user << "Unable to establish a connection: You're too far away from the station!"
return
if(istype(O, /obj/item/weapon/aiModule))
if(install_module(O,user))
@@ -92,19 +92,19 @@
else
var/obj/item/weapon/planning_frame/frame=O
if(frame.modules.len>0)
- user << "\blue You load \the [frame] into \the [src]..."
+ user << "You load \the [frame] into \the [src]..."
if(do_after(user,50))
var/failed=0
for(var/i=1;i<=frame.modules.len;i++)
var/obj/item/weapon/aiModule/M = frame.modules[i]
- user << "\blue Running [M]..."
+ user << "Running [M]..."
if(!install_module(M,user))
failed=1
break
if(!failed)
announce_law_changes(user)
else
- user << "\red It's empty, doofus."
+ user << "It's empty, doofus."
else
..()
@@ -142,7 +142,7 @@
proc/announce_law_changes()
current << "These are your laws now:"
current.show_laws()
- usr << "\blue Upload complete. The robot's laws have been modified."
+ usr << "Upload complete. The robot's laws have been modified."
proc/install_module(var/obj/item/weapon/aiModule/M,var/mob/user)
if(stat & NOPOWER)
@@ -181,7 +181,7 @@
if(isMoMMI(src.current))
var/mob/living/silicon/robot/mommi/mommi = src.current
if(mommi.keeper)
- user << "\red [src.current] is operating in KEEPER mode and cannot be accessed via control signals."
+ user << "[src.current] is operating in KEEPER mode and cannot be accessed via control signals."
return ..()
install_module(W,user)
else if(istype(W, /obj/item/weapon/planning_frame))
@@ -208,19 +208,19 @@
else
var/obj/item/weapon/planning_frame/frame=W
if(frame.modules.len>0)
- user << "\blue You load \the [frame] into \the [src]..."
+ user << "You load \the [frame] into \the [src]..."
if(do_after(user,50))
var/failed=0
for(var/i=1;i<=frame.modules.len;i++)
var/obj/item/weapon/aiModule/M = frame.modules[i]
- user << "\blue Running [M]..."
+ user << "Running [M]..."
if(!install_module(M,user))
failed=1
break
if(!failed)
announce_law_changes()
else
- user << "\red It's empty, doofus."
+ user << "It's empty, doofus."
else
return ..()
diff --git a/code/game/machinery/computer/lockdown.dm b/code/game/machinery/computer/lockdown.dm
index 261751d3692..82a3061b3ed 100644
--- a/code/game/machinery/computer/lockdown.dm
+++ b/code/game/machinery/computer/lockdown.dm
@@ -104,7 +104,7 @@
t += "
"
t += ""
if(empty)
- t += "\red No networks connected. "
+ t += "No networks connected. "
t += "Refresh "
t += "Close "
user << browse(t, "window=lockdown;size=550x600")
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 05e3c4ccf92..ca5ed087ccb 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -160,7 +160,7 @@
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
- usr.drop_item(src)
+ usr.drop_item(I, src)
src.scan = I
else if (href_list["logout"])
src.authenticated = null
diff --git a/code/game/machinery/computer/pda_terminal.dm b/code/game/machinery/computer/pda_terminal.dm
index 05e3518127c..0af228dd5c0 100644
--- a/code/game/machinery/computer/pda_terminal.dm
+++ b/code/game/machinery/computer/pda_terminal.dm
@@ -65,7 +65,7 @@
return ..()
if(!pda_device)
- user.drop_item(src)
+ user.drop_item(user_pda, src)
pda_device = user_pda
update_icon()
@@ -130,7 +130,7 @@
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/device/pda))
- usr.drop_item(src)
+ usr.drop_item(I, src)
pda_device = I
update_icon()
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
index 791e69e583b..b14931419ec 100644
--- a/code/game/machinery/computer/pod.dm
+++ b/code/game/machinery/computer/pod.dm
@@ -153,7 +153,7 @@
/obj/machinery/computer/pod/old/syndicate/attack_hand(var/mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied"
+ user << "Access Denied"
return
else
..()
diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm
index 3d72871c79f..5ba06376235 100644
--- a/code/game/machinery/computer/prisoner.dm
+++ b/code/game/machinery/computer/prisoner.dm
@@ -110,7 +110,7 @@
var/obj/item/weapon/implant/I = locate(href_list["warn"])
if((I)&&(I.imp_in))
var/mob/living/carbon/R = I.imp_in
- R << "\green You hear a voice in your head saying: '[warning]'"
+ R << "You hear a voice in your head saying: '[warning]'"
src.add_fingerprint(usr)
src.updateUsrDialog()
diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm
index e5f24f50b99..acfa76eaaa1 100644
--- a/code/game/machinery/computer/prisonshuttle.dm
+++ b/code/game/machinery/computer/prisonshuttle.dm
@@ -35,15 +35,15 @@ var/prison_shuttle_timeleft = 0
emag(mob/user as mob)
emagged = 1
- user << "\blue You disable the lock."
+ user << "You disable the lock."
return
attack_hand(var/mob/user as mob)
if(!src.allowed(user) && (!emagged))
- user << "\red Access Denied."
+ user << "Access Denied."
return
if(prison_break)
- user << "\red Unable to locate shuttle."
+ user << "Unable to locate shuttle."
return
if(..())
return
@@ -72,11 +72,11 @@ var/prison_shuttle_timeleft = 0
if (href_list["sendtodock"])
if (!prison_can_move())
- usr << "\red The prison shuttle is unable to leave."
+ usr << "The prison shuttle is unable to leave."
return
if(!prison_shuttle_at_station|| prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
post_signal("prison")
- usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
+ usr << "The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.
OK"
src.updateUsrDialog()
prison_shuttle_moving_to_prison = 1
@@ -86,11 +86,11 @@ var/prison_shuttle_timeleft = 0
else if (href_list["sendtostation"])
if (!prison_can_move())
- usr << "\red The prison shuttle is unable to leave."
+ usr << "The prison shuttle is unable to leave."
return
if(prison_shuttle_at_station || prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
post_signal("prison")
- usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
+ usr << "The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.
OK"
src.updateUsrDialog()
prison_shuttle_moving_to_station = 1
@@ -158,7 +158,7 @@ var/prison_shuttle_timeleft = 0
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
- usr << "\red The prison shuttle is unable to leave."
+ usr << "The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/prison)
@@ -187,7 +187,7 @@ var/prison_shuttle_timeleft = 0
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
- usr << "\red The prison shuttle is unable to leave."
+ usr << "The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/station)
diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm
index f07b2727021..bcc554e7dd7 100644
--- a/code/game/machinery/computer/robot.dm
+++ b/code/game/machinery/computer/robot.dm
@@ -32,7 +32,7 @@
if(..())
return
if (src.z > 6)
- user << "\red Unable to establish a connection: \black You're too far away from the station!"
+ user << "Unable to establish a connection: You're too far away from the station!"
return
user.set_machine(src)
var/dat
@@ -130,14 +130,14 @@
if (istype(I))
if(src.check_access(I))
if (!status)
- message_admins("\blue [key_name_admin(usr)] has initiated the global cyborg killswitch!")
- log_game("\blue [key_name(usr)] has initiated the global cyborg killswitch!")
+ message_admins("[key_name_admin(usr)] has initiated the global cyborg killswitch!")
+ log_game("[key_name(usr)] has initiated the global cyborg killswitch!")
src.status = 1
src.start_sequence()
src.temp = null
else
- usr << "\red Access Denied."
+ usr << "Access Denied."
else if (href_list["stop"])
src.temp = {"
@@ -175,11 +175,11 @@
R.ResetSecurityCodes()
else
- message_admins("\blue [key_name_admin(usr)] detonated [R.name]!")
- log_game("\blue [key_name_admin(usr)] detonated [R.name]!")
+ message_admins("[key_name_admin(usr)] detonated [R.name]!")
+ log_game("[key_name_admin(usr)] detonated [R.name]!")
R.self_destruct()
else
- usr << "\red Access Denied."
+ usr << "Access Denied."
else if (href_list["stopbot"])
if(src.allowed(usr))
@@ -188,7 +188,7 @@
var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort")
if(choice == "Confirm")
if(R && istype(R))
- message_admins("\blue [key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
+ message_admins("[key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
R.canmove = !R.canmove
if (R.lockcharge)
@@ -201,7 +201,7 @@
R << "You have been locked down!"
else
- usr << "\red Access Denied."
+ usr << "Access Denied."
else if (href_list["magbot"])
if(src.allowed(usr))
@@ -212,7 +212,7 @@
var/choice = input("Are you certain you wish to hack [R.name]?") in list("Confirm", "Abort")
if(choice == "Confirm")
if(R && istype(R))
-// message_admins("\blue [key_name_admin(usr)] emagged [R.name] using robotic console!")
+// message_admins("[key_name_admin(usr)] emagged [R.name] using robotic console!")
log_game("[key_name(usr)] emagged [R.name] using robotic console!")
R.SetEmagged(2)
if(R.mind.special_role)
diff --git a/code/game/machinery/computer/salvage_ship.dm b/code/game/machinery/computer/salvage_ship.dm
index 45f80bcfcfd..d4cfbbffcc3 100644
--- a/code/game/machinery/computer/salvage_ship.dm
+++ b/code/game/machinery/computer/salvage_ship.dm
@@ -53,7 +53,7 @@
/obj/machinery/computer/salvage_ship/attack_hand(mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied"
+ user << "Access Denied"
return
user.set_machine(src)
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 7bb5ff5ce48..604279e9e10 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -26,7 +26,7 @@
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob)
if(istype(O, /obj/item/weapon/card/id) && !scan)
- usr.drop_item(src)
+ usr.drop_item(O, src)
scan = O
user << "You insert [O]."
..()
@@ -43,7 +43,7 @@
if(..())
return
if (src.z > 6)
- user << "\red Unable to establish a connection: \black You're too far away from the station!"
+ user << "Unable to establish a connection: You're too far away from the station!"
return
var/dat
@@ -239,7 +239,7 @@ What a mess.*/
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
- usr.drop_item(src)
+ usr.drop_item(I, src)
scan = I
if("Log Out")
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index 6d97b472774..9eaa913a902 100644
--- a/code/game/machinery/computer/shuttle.dm
+++ b/code/game/machinery/computer/shuttle.dm
@@ -38,11 +38,11 @@
if (src.auth_need - src.authorized.len > 0)
message_admins("[key_name_admin(user)] has authorized early shuttle launch")
log_game("[user.ckey] has authorized early shuttle launch")
- world << text("\blue Alert: [] authorizations needed until shuttle is launched early", src.auth_need - src.authorized.len)
+ world << text("Alert: [] authorizations needed until shuttle is launched early", src.auth_need - src.authorized.len)
else
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
- world << "\blue Alert: Shuttle launch time shortened to 10 seconds!"
+ world << "Alert: Shuttle launch time shortened to 10 seconds!"
emergency_shuttle.online = 1
emergency_shuttle.settimeleft(10)
//src.authorized = null
@@ -51,10 +51,10 @@
if("Repeal")
src.authorized -= W:registered_name
- world << text("\blue Alert: [] authorizations needed until shuttle is launched early", src.auth_need - src.authorized.len)
+ world << text("Alert: [] authorizations needed until shuttle is launched early", src.auth_need - src.authorized.len)
if("Abort")
- world << "\blue All authorizations to shortening time for shuttle launch have been revoked!"
+ world << "All authorizations to shortening time for shuttle launch have been revoked!"
src.authorized.len = 0
src.authorized = list( )
return
@@ -65,7 +65,7 @@
if(emergency_shuttle.location == 1)
switch(choice)
if("Launch")
- world << "\blue Alert: Shuttle launch time shortened to 10 seconds!"
+ world << "Alert: Shuttle launch time shortened to 10 seconds!"
emergency_shuttle.settimeleft( 10 )
emagged = 1
return 1
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
index fd93c5dac5b..0c52037af29 100644
--- a/code/game/machinery/computer/skills.dm
+++ b/code/game/machinery/computer/skills.dm
@@ -41,7 +41,7 @@
if(..())
return
if (src.z > 6)
- user << "\red Unable to establish a connection: \black You're too far away from the station!"
+ user << "Unable to establish a connection: You're too far away from the station!"
return
var/dat
diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm
index 24a2b84d27d..97b12311b0f 100644
--- a/code/game/machinery/computer/specops_shuttle.dm
+++ b/code/game/machinery/computer/specops_shuttle.dm
@@ -82,7 +82,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "\red You have arrived at Central Command. Operation has ended!"
+ M << "You have arrived at Central Command. Operation has ended!"
specops_shuttle_at_station = 0
@@ -129,7 +129,7 @@ var/specops_shuttle_timeleft = 0
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "\red The Special Operations shuttle is unable to leave."
+ usr << "The Special Operations shuttle is unable to leave."
return
//Begin Marauder launchpad.
@@ -224,7 +224,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "\red You have arrived to [station_name]. Commence operation!"
+ M << "You have arrived to [station_name]. Commence operation!"
for(var/obj/machinery/computer/specops_shuttle/S in world)
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
@@ -247,16 +247,16 @@ var/specops_shuttle_timeleft = 0
return attack_hand(user)
/obj/machinery/computer/specops_shuttle/emag(mob/user as mob)
- user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
+ user << "The electronic systems in this console are far too advanced for your primitive hacking peripherals."
return
/obj/machinery/computer/specops_shuttle/attack_hand(var/mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied."
+ user << "Access Denied."
return
if (sent_strike_team == 0 && send_emergency_team == 0)
- usr << "\red The strike team has not yet deployed."
+ usr << "The strike team has not yet deployed."
return
if(..())
@@ -287,14 +287,14 @@ var/specops_shuttle_timeleft = 0
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "\blue Central Command will not allow the Special Operations shuttle to return yet."
+ usr << "Central Command will not allow the Special Operations shuttle to return yet."
if(world.timeofday <= specops_shuttle_timereset)
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
- usr << "\blue [-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!"
- usr << "\blue [-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!"
+ usr << "[-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!"
+ usr << "[-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!"
return
- usr << "\blue The Special Operations shuttle will arrive at Central Command in [(SPECOPS_MOVETIME/10)] seconds."
+ usr << "The Special Operations shuttle will arrive at Central Command in [(SPECOPS_MOVETIME/10)] seconds."
temp += "Shuttle departing.
OK"
updateUsrDialog()
@@ -308,10 +308,10 @@ var/specops_shuttle_timeleft = 0
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "\red The Special Operations shuttle is unable to leave."
+ usr << "The Special Operations shuttle is unable to leave."
return
- usr << "\blue The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
+ usr << "The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
temp += "Shuttle departing.
OK"
updateUsrDialog()
@@ -394,7 +394,7 @@ var/specops_shuttle_timeleft = 0
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "\red The Special Operations shuttle is unable to leave."
+ usr << "The Special Operations shuttle is unable to leave."
return
//Begin Marauder launchpad.
@@ -489,7 +489,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "\red You have arrived to [station_name]. Commence operation!"
+ M << "You have arrived to [station_name]. Commence operation!"
/proc/specops_can_move()
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return 0
@@ -506,17 +506,17 @@ var/specops_shuttle_timeleft = 0
/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag))
- user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
+ user << "The electronic systems in this console are far too advanced for your primitive hacking peripherals."
else
return attack_hand(user)
/obj/machinery/computer/specops_shuttle/attack_hand(var/mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied."
+ user << "Access Denied."
return
// if (sent_strike_team == 0)
-// usr << "\red The strike team has not yet deployed."
+// usr << "The strike team has not yet deployed."
// return
if(..())
@@ -545,17 +545,17 @@ var/specops_shuttle_timeleft = 0
if (href_list["sendtodock"])
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
- usr << "\blue Central Command will not allow the Special Operations shuttle to return."
+ usr << "Central Command will not allow the Special Operations shuttle to return."
return
else if (href_list["sendtostation"])
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "\red The Special Operations shuttle is unable to leave."
+ usr << "The Special Operations shuttle is unable to leave."
return
- usr << "\blue The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
+ usr << "The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
temp += "Shuttle departing.
OK"
updateUsrDialog()
diff --git a/code/game/machinery/computer/store.dm b/code/game/machinery/computer/store.dm
index a92afb28d45..30b7d356f0a 100644
--- a/code/game/machinery/computer/store.dm
+++ b/code/game/machinery/computer/store.dm
@@ -143,9 +143,9 @@ td.cost.toomuch {
updateUsrDialog()
return
if(!centcomm_store.PlaceOrder(usr,itemID))
- usr << "\red Unable to charge your account."
+ usr << "Unable to charge your account."
else
- usr << "\blue You've successfully purchased the item. It should be in your hands or on the floor."
+ usr << "You've successfully purchased the item. It should be in your hands or on the floor."
src.updateUsrDialog()
return
diff --git a/code/game/machinery/computer/syndicate_shuttle.dm b/code/game/machinery/computer/syndicate_shuttle.dm
index 317d4bd4349..9fa8cce30ef 100644
--- a/code/game/machinery/computer/syndicate_shuttle.dm
+++ b/code/game/machinery/computer/syndicate_shuttle.dm
@@ -53,7 +53,7 @@
/obj/machinery/computer/syndicate_station/attack_hand(mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied"
+ user << "Access Denied"
return
user.set_machine(src)
diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm
index 11831d471a5..64485673611 100644
--- a/code/game/machinery/computer/syndicate_specops_shuttle.dm
+++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm
@@ -60,7 +60,7 @@ var/syndicate_elite_shuttle_timeleft = 0
if (syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
if (!syndicate_elite_can_move())
- usr << "\red The Syndicate Elite shuttle is unable to leave."
+ usr << "The Syndicate Elite shuttle is unable to leave."
return
sleep(600)
@@ -168,7 +168,7 @@ var/syndicate_elite_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "\red You have arrived to [station_name]. Commence operation!"
+ M << "You have arrived to [station_name]. Commence operation!"
/proc/syndicate_elite_can_move()
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
@@ -182,16 +182,16 @@ var/syndicate_elite_shuttle_timeleft = 0
return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/emag(mob/user as mob)
- user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
+ user << "The electronic systems in this console are far too advanced for your primitive hacking peripherals."
return
/obj/machinery/computer/syndicate_elite_shuttle/attack_hand(var/mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied."
+ user << "Access Denied."
return
// if (sent_syndicate_strike_team == 0)
-// usr << "\red The strike team has not yet deployed."
+// usr << "The strike team has not yet deployed."
// return
if(..())
@@ -220,17 +220,17 @@ var/syndicate_elite_shuttle_timeleft = 0
if (href_list["sendtodock"])
if(!syndicate_elite_shuttle_at_station|| syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
- usr << "\blue The Syndicate will not allow the Elite Squad shuttle to return."
+ usr << "The Syndicate will not allow the Elite Squad shuttle to return."
return
else if (href_list["sendtostation"])
if(syndicate_elite_shuttle_at_station || syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
if (!specops_can_move())
- usr << "\red The Syndicate Elite shuttle is unable to leave."
+ usr << "The Syndicate Elite shuttle is unable to leave."
return
- usr << "\blue The Syndicate Elite shuttle will arrive on [station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds."
+ usr << "The Syndicate Elite shuttle will arrive on [station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds."
temp = "Shuttle departing.
OK"
updateUsrDialog()
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 5ac56676468..1211d991232 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -79,7 +79,7 @@
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
user << "You add the circuit board to the frame."
circuit = P
- user.drop_item(src)
+ user.drop_item(B, src)
icon_state = "box_2"
build_state = 3
components = list()
@@ -183,7 +183,7 @@
break
else
user << "You do not have enough [P]!"
- user.drop_item(src)
+ user.drop_item(P, src)
components += P
req_components[I]--
update_desc()
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index c0f6aac53dd..1b3c3fa56b5 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -1,3 +1,10 @@
+var/global/list/cryo_health_indicator = list( "full" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_full"),\
+ "good" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_good"),\
+ "average" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_average"),\
+ "bad" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_bad"),\
+ "worse" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_worse"),\
+ "crit" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_crit"),\
+ "dead" = image("icon" = 'icons/obj/cryogenics.dmi', "icon_state" = "moverlay_dead"))
/obj/machinery/atmospherics/unary/cryo_cell
name = "cryo cell"
icon = 'icons/obj/cryogenics.dmi'
@@ -91,6 +98,7 @@
/obj/machinery/atmospherics/unary/cryo_cell/process()
..()
+ update_icon()
if(!node)
return
if(!on)
@@ -262,7 +270,7 @@
user << "A beaker is already loaded into the machine."
return
beaker = G
- user.drop_item(src)
+ user.drop_item(G, src)
user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!")
if(..())
return
@@ -284,8 +292,31 @@
return
/obj/machinery/atmospherics/unary/cryo_cell/update_icon()
+ overlays.len = 0
if(on)
if(occupant)
+ if(occupant.stat == DEAD || !occupant.has_brain())
+ overlays += cryo_health_indicator["dead"]
+ else
+ if(occupant.health >= occupant.maxHealth)
+ overlays += cryo_health_indicator["full"]
+ else
+ if(occupant.health < config.health_threshold_crit)
+ overlays += cryo_health_indicator["crit"]
+ else
+ switch((occupant.health / occupant.maxHealth) * 100) // Get a ratio of health to work with
+ if(100 to INFINITY) // No idea how we got here with the check above...
+ overlays += cryo_health_indicator["full"]
+ if(75 to 100)
+ overlays += cryo_health_indicator["good"]
+ if(50 to 75)
+ overlays += cryo_health_indicator["average"]
+ if(25 to 50)
+ overlays += cryo_health_indicator["bad"]
+ if(1 to 25)
+ overlays += cryo_health_indicator["worse"]
+ else //Shouldn't ever happen.
+ overlays += cryo_health_indicator["dead"]
icon_state = "cell-occupied"
return
icon_state = "cell-on"
@@ -393,7 +424,7 @@
set category = "Object"
set src in oview(1)
if(usr == occupant)//If the user is inside the tube...
- if (usr.stat == 2)//and he's not dead....
+ if (usr.stat == 2 || (usr.status_flags & FAKEDEATH))//and he's not dead....
return
usr << "Release sequence activated. This will take two minutes."
sleep(1200)
@@ -401,7 +432,7 @@
return
go_out()//and release him from the eternal prison.
else
- if (usr.stat != 0 || istype(usr, /mob/living/simple_animal))
+ if (usr.stat != 0 || istype(usr, /mob/living/simple_animal) || (usr.status_flags & FAKEDEATH))
return
go_out()
add_fingerprint(usr)
@@ -411,13 +442,13 @@
set name = "Move Inside"
set category = "Object"
set src in oview(1)
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting || usr.buckled) //are you cuffed, dying, lying, stunned or other
+ if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting || usr.buckled || (usr.status_flags & FAKEDEATH)) //are you cuffed, dying, lying, stunned or other
return
for(var/mob/living/carbon/slime/M in range(1,usr))
if(M.Victim == usr)
usr << "You're too busy getting your life sucked out of you."
return
- if (usr.stat != 0 || stat & (NOPOWER|BROKEN))
+ if (usr.stat != 0 || stat & (NOPOWER|BROKEN) || (usr.status_flags & FAKEDEATH))
return
put_mob(usr)
return
diff --git a/code/game/machinery/defibcharger.dm b/code/game/machinery/defibcharger.dm
index ec0fc1077cc..9b3f7a95350 100644
--- a/code/game/machinery/defibcharger.dm
+++ b/code/game/machinery/defibcharger.dm
@@ -107,7 +107,7 @@ obj/machinery/recharger/defibcharger/wallcharger/attackby(obj/item/weapon/G as o
if(a.power_equip == 0)
user << "[src] blinks red as you try to insert [D]!"
return
- user.drop_item(src)
+ user.drop_item(G, src)
charging = G
use_power = 2
update_icon()
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index fac37a9053d..59cecccccd1 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -68,11 +68,11 @@ for reference:
attackby(obj/item/W as obj, mob/user as mob)
if (istype(W, /obj/item/stack/sheet/wood))
if (src.health < src.maxhealth)
- visible_message("\red [user] begins to repair the [src]!")
+ visible_message("[user] begins to repair the [src]!")
if(do_after(user,20))
src.health = src.maxhealth
W:use(1)
- visible_message("\red [user] repairs the [src]!")
+ visible_message("[user] repairs the [src]!")
return
else
return
@@ -85,7 +85,7 @@ for reference:
src.health -= W.force * 0.75
else
if (src.health <= 0)
- visible_message("\red The barricade is smashed apart!")
+ visible_message("The barricade is smashed apart!")
new /obj/item/stack/sheet/wood(get_turf(src, 5))
del(src)
..()
@@ -93,13 +93,13 @@ for reference:
ex_act(severity)
switch(severity)
if(1.0)
- visible_message("\red The barricade is blown apart!")
+ visible_message("The barricade is blown apart!")
qdel(src)
return
if(2.0)
src.health -= 25
if (src.health <= 0)
- visible_message("\red The barricade is blown apart!")
+ visible_message("The barricade is blown apart!")
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
@@ -107,7 +107,7 @@ for reference:
return
meteorhit()
- visible_message("\red The barricade is smashed apart!")
+ visible_message("The barricade is smashed apart!")
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
@@ -117,7 +117,7 @@ for reference:
blob_act()
src.health -= 25
if (src.health <= 0)
- visible_message("\red The blob eats through the barricade!")
+ visible_message("The blob eats through the barricade!")
del(src)
return
@@ -173,7 +173,7 @@ for reference:
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
- visible_message("\red BZZzZZzZZzZT")
+ visible_message("BZZzZZzZZzZT")
return
else if (src.emagged == 1)
src.emagged = 2
@@ -181,7 +181,7 @@ for reference:
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
- visible_message("\red BZZzZZzZZzZT")
+ visible_message("BZZzZZzZZzZT")
return
/obj/machinery/deployable/barrier/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -202,7 +202,7 @@ for reference:
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
- visible_message("\red BZZzZZzZZzZT")
+ visible_message("BZZzZZzZZzZT")
return
return
else if (istype(W, /obj/item/weapon/wrench))
@@ -210,12 +210,12 @@ for reference:
src.health = src.maxhealth
src.emagged = 0
src.req_access = list(access_security)
- visible_message("\red [user] repairs the [src]!")
+ visible_message("[user] repairs the [src]!")
return
else if (src.emagged > 0)
src.emagged = 0
src.req_access = list(access_security)
- visible_message("\red [user] repairs the [src]!")
+ visible_message("[user] repairs the [src]!")
return
return
else
@@ -267,7 +267,7 @@ for reference:
return 0
/obj/machinery/deployable/barrier/proc/explode()
- visible_message("\red [src] blows apart!")
+ visible_message("[src] blows apart!")
var/turf/Tsec = get_turf(src)
/* var/obj/item/stack/rods/ =*/
diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm
index 5181e235de1..f97f91b178b 100644
--- a/code/game/machinery/door_control.dm
+++ b/code/game/machinery/door_control.dm
@@ -77,7 +77,7 @@
return
if(!allowed(user) && (wires & 1))
- user << "\red Access Denied"
+ user << "Access Denied"
flick("doorctrl-denied",src)
return
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index cf3d055deca..34bf6730d68 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -299,7 +299,7 @@
About the new airlock wires panel:
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
* one wire from the ID scanner. Sending a pulse through this flashes the red light on the door (if the door has power). If you cut this wire, the door will stop recognizing valid IDs. (If the door has 0000 access, it still opens and closes, though)
-* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be \red open, but bolts-raising will not work. Cutting these wires may electrocute the user.
+* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be open, but bolts-raising will not work. Cutting these wires may electrocute the user.
* one wire for door bolts. Sending a pulse through this drops door bolts (whether the door is powered or not) or raises them (if it is). Cutting this wire also drops the door bolts, and mending it does not raise them. If the wire is cut, trying to raise the door bolts will not work.
* two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user.
* one wire for opening the door. Sending a pulse through this while the door has power makes it open the door if no access is required.
@@ -324,7 +324,7 @@ About the new airlock wires panel:
else /*if(src.justzap)*/
return
else if(user.hallucination > 50 && prob(10) && src.operating == 0)
- user << "\red You feel a powerful shock course through your body!"
+ user << "You feel a powerful shock course through your body!"
user.halloss += 10
user.stunned += 10
return
@@ -705,14 +705,14 @@ About the new airlock wires panel:
usr << "You've already disabled the IdScan feature."
else
if(isobserver(usr) && !canGhostWrite(usr,src,"disabled IDScan on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.aiDisabledIdScanner = 1
if(2)
//disrupt main power
if(src.secondsMainPowerLost == 0)
if(isobserver(usr) && !canGhostWrite(usr,src,"disrupted main power on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.loseMainPower()
else
@@ -721,7 +721,7 @@ About the new airlock wires panel:
//disrupt backup power
if(src.secondsBackupPowerLost == 0)
if(isobserver(usr) && !canGhostWrite(usr,src,"disrupted backup power on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.loseBackupPower()
else
@@ -732,7 +732,7 @@ About the new airlock wires panel:
usr << "You can't drop the door bolts - The door bolt dropping wire has been cut."
else if(src.locked!=1)
if(isobserver(usr) && !canGhostWrite(usr,src,"dropped bolts on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.locked = 1
update_icon()
@@ -742,12 +742,12 @@ About the new airlock wires panel:
usr << text("Can't un-electrify the airlock - The electrification wire is cut.")
else if(src.secondsElectrified==-1)
if(isobserver(usr) && !canGhostWrite(usr,src,"electrified"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.secondsElectrified = 0
else if(src.secondsElectrified>0)
if(isobserver(usr) && !canGhostWrite(usr,src,"electrified"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.secondsElectrified = 0
@@ -757,7 +757,7 @@ About the new airlock wires panel:
usr << text("Control to door sensors is disabled.")
else if (src.safe)
if(isobserver(usr) && !canGhostWrite(usr,src,"disabled safeties on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
safe = 0
else
@@ -771,7 +771,7 @@ About the new airlock wires panel:
usr << text("Control to door timing circuitry has been severed.")
else if (src.normalspeed)
if(isobserver(usr) && !canGhostWrite(usr,src,"disrupted timing on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
normalspeed = 0
else
@@ -785,12 +785,12 @@ About the new airlock wires panel:
usr << text("The door bolts are down!")
else if(!src.density)
if(isobserver(usr) && !canGhostWrite(usr,src,"closed"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
close()
else
if(isobserver(usr) && !canGhostWrite(usr,src,"opened"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
open()
@@ -800,7 +800,7 @@ About the new airlock wires panel:
usr << text("Control to door bolt lights has been severed.
")
else if (src.lights)
if(isobserver(usr) && !canGhostWrite(usr,src,"disabled door bolt lights on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
lights = 0
else
@@ -817,7 +817,7 @@ About the new airlock wires panel:
usr << "You can't enable IdScan - The IdScan wire has been cut."
else if(src.aiDisabledIdScanner)
if(isobserver(usr) && !canGhostWrite(usr,src,"enabled ID Scan on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.aiDisabledIdScanner = 0
else
@@ -831,7 +831,7 @@ About the new airlock wires panel:
else
if(src.arePowerSystemsOn())
if(isobserver(usr) && !canGhostWrite(usr,src,"raised bolts on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.locked = 0
update_icon()
@@ -850,7 +850,7 @@ About the new airlock wires panel:
shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
usr.attack_log += text("\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]")
if(isobserver(usr) && !canGhostWrite(usr,src,"electrified (30sec)"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.secondsElectrified = 30
spawn(10)
@@ -872,7 +872,7 @@ About the new airlock wires panel:
shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
usr.attack_log += text("\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]")
if(isobserver(usr) && !canGhostWrite(usr,src,"electrified (permanent)"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
src.secondsElectrified = -1
@@ -882,7 +882,7 @@ About the new airlock wires panel:
usr << text("Control to door sensors is disabled.")
else if (!src.safe)
if(isobserver(usr) && !canGhostWrite(usr,src,"enabled safeties on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
safe = 1
src.updateUsrDialog()
@@ -895,7 +895,7 @@ About the new airlock wires panel:
usr << text("Control to door timing circuitry has been severed.")
else if (!src.normalspeed)
if(isobserver(usr) && !canGhostWrite(usr,src,"set speed to normal on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
normalspeed = 1
src.updateUsrDialog()
@@ -910,12 +910,12 @@ About the new airlock wires panel:
usr << text("The door bolts are down!")
else if(src.density)
if(isobserver(usr) && !canGhostWrite(usr,src,"opened"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
open()
else
if(isobserver(usr) && !canGhostWrite(usr,src,"closed"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
close()
@@ -925,7 +925,7 @@ About the new airlock wires panel:
usr << text("Control to door bolt lights has been severed.")
else if (!src.lights)
if(isobserver(usr) && !canGhostWrite(usr,src,"enabled bolt lights on"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
lights = 1
src.updateUsrDialog()
@@ -1025,7 +1025,7 @@ About the new airlock wires panel:
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
// TODO: refactor the called proc
if (do_after(user, 40))
- user << "\blue You removed the airlock electronics!"
+ user << "You removed the airlock electronics!"
var/obj/structure/door_assembly/DA = new assembly_type(loc)
DA.anchored = 1
@@ -1066,9 +1066,9 @@ About the new airlock wires panel:
del(src)
return
else if(arePowerSystemsOn() && !(stat & NOPOWER))
- user << "\blue The airlock's motors resist your efforts to force it."
+ user << "The airlock's motors resist your efforts to force it."
else if(locked)
- user << "\blue The airlock's bolts prevent it from being forced."
+ user << "The airlock's bolts prevent it from being forced."
else if( !welded && !operating )
if(density)
if(beingcrowbarred == 0) //being fireaxe'd
@@ -1076,7 +1076,7 @@ About the new airlock wires panel:
if(F.wielded)
spawn(0) open(1)
else
- user << "\red You need to be wielding the Fire axe to do that."
+ user << "You need to be wielding the Fire axe to do that."
else
spawn(0) open(1)
else
@@ -1085,7 +1085,7 @@ About the new airlock wires panel:
if(F.wielded)
spawn(0) close(1)
else
- user << "\red You need to be wielding the Fire axe to do that."
+ user << "You need to be wielding the Fire axe to do that."
else
spawn(0) close(1)
src.busy = 0
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 00e767ff1df..71f3c392cf2 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -133,7 +133,7 @@
playsound(get_turf(src), 'sound/effects/bang.ogg', 25, 1)
if (!istype(H.head, /obj/item/clothing/head/helmet))
- visible_message("\red [user] headbutts the airlock.")
+ visible_message("[user] headbutts the airlock.")
H.Stun(8)
H.Weaken(5)
var/datum/organ/external/O = H.get_organ("head")
@@ -144,7 +144,7 @@
O = null
else
// TODO: fix sentence
- visible_message("\red [user] headbutts the airlock. Good thing they're wearing a helmet.")
+ visible_message("[user] headbutts the airlock. Good thing they're wearing a helmet.")
H = null
return
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 4f1881a628e..5cb6ff6e1f6 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -267,7 +267,7 @@
return
// End anti-shitter system
/*
- user.visible_message("\red \The [src] opens for \the [user]",\
+ user.visible_message("\The [src] opens for \the [user]",\
"\The [src] opens after you acknowledge the consequences.",\
"You hear a beep, and a door opening.")
*/
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 57ea73317f8..8a50878908f 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -208,7 +208,7 @@
if(I.damtype == BRUTE || I.damtype == BURN)
src.health = max(0, src.health - aforce)
playsound(get_turf(src), 'sound/effects/Glasshit.ogg', 75, 1)
- visible_message("\red [src] was hit by [I].")
+ visible_message("[src] was hit by [I].")
if (src.health <= 0)
getFromPool(shard, loc)
getFromPool(/obj/item/stack/cable_coil, src.loc, 2)
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index f25693971dc..b18327b2a45 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -36,7 +36,7 @@
if(istype(W, /obj/item/weapon/screwdriver))
usr << "You begin removing screws from \the [src] backplate..."
if(do_after(user, 50))
- usr << "\blue You unscrew \the [src] from the wall."
+ usr << "You unscrew \the [src] from the wall."
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
new /obj/item/mounted/frame/airlock_controller(get_turf(src))
del(src)
@@ -44,12 +44,12 @@
if(istype(W, /obj/item/weapon/circuitboard))
var/obj/item/weapon/circuitboard/C=W
if(C.board_type!="embedded controller")
- user << "\red You cannot install this type of board into an embedded controller."
+ user << "You cannot install this type of board into an embedded controller."
return
usr << "You begin to insert \the [C] into \the [src]."
if(do_after(user, 10))
- usr << "\blue You secure \the [C]!"
- user.drop_item(src)
+ usr << "You secure \the [C]!"
+ user.drop_item(C, src)
_circuitboard=C
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
build++
@@ -70,7 +70,7 @@
else
C=new boardtype(get_turf(src))
user.visible_message(\
- "\red [user.name] has removed \the [C]!",\
+ "[user.name] has removed \the [C]!",\
"You remove \the [C].")
return 1
if(istype(W, /obj/item/stack/cable_coil))
@@ -82,7 +82,7 @@
build++
update_icon()
user.visible_message(\
- "\red [user.name] has added cables to \the [src]!",\
+ "[user.name] has added cables to \the [src]!",\
"You add cables to \the [src].")
if(2) // Circuitboard installed, wired.
if(istype(W, /obj/item/weapon/wirecutters))
@@ -90,7 +90,7 @@
if(do_after(user, 50))
new /obj/item/stack/cable_coil(loc,5)
user.visible_message(\
- "\red [user.name] cut the cables.",\
+ "[user.name] cut the cables.",\
"You cut the cables.")
build--
update_icon()
@@ -106,7 +106,7 @@
EC.pixel_x=pixel_x
EC.pixel_y=pixel_y
user.visible_message(\
- "\red [user.name] has finished \the [src]!",\
+ "[user.name] has finished \the [src]!",\
"You finish \the [src].")
del(src)
return 1
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 2b42e1e680e..d6e120c9b85 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -49,9 +49,9 @@
add_fingerprint(user)
src.disable = !src.disable
if (src.disable)
- user.visible_message("\red [user] has disconnected the [src]'s flashbulb!", "\red You disconnect the [src]'s flashbulb!")
+ user.visible_message("[user] has disconnected the [src]'s flashbulb!", "You disconnect the [src]'s flashbulb!")
if (!src.disable)
- user.visible_message("\red [user] has connected the [src]'s flashbulb!", "\red You connect the [src]'s flashbulb!")
+ user.visible_message("[user] has connected the [src]'s flashbulb!", "You connect the [src]'s flashbulb!")
//Let the AI trigger them directly.
/obj/machinery/flasher/attack_ai()
@@ -121,11 +121,11 @@
src.anchored = !src.anchored
if (!src.anchored)
- user.show_message(text("\red [src] can now be moved."))
+ user.show_message(text("[src] can now be moved."))
src.overlays.len = 0
else if (src.anchored)
- user.show_message(text("\red [src] is now secured."))
+ user.show_message(text("[src] is now secured."))
src.overlays += "[base_state]-s"
/obj/machinery/flasher_button/attack_ai(mob/user as mob)
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index 5a195db28c0..c0c69122c84 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -1,90 +1,84 @@
//these are probably broken
/obj/machinery/floodlight
- name = "Emergency Floodlight"
+ name = "emergency floodlight"
icon = 'icons/obj/machines/floodlight.dmi'
icon_state = "flood00"
- density = 1
+ anchored = 1
var/on = 0
var/obj/item/weapon/cell/high/cell = null
- var/use = 5
- var/unlocked = 0
- var/brightness_on = 8 //This time justified in balance. Encumbering but nice lightening
+ var/powercost = 5
+ var/brightness_on = 8 //This time justified in balance. Encumbering but nice lightning
- machine_flags = SCREWTOGGLE
+ machine_flags = SCREWTOGGLE | WRENCHMOVE | FIXED2WORK
/obj/machinery/floodlight/New()
src.cell = new(src)
..()
-/obj/machinery/floodlight/proc/updateicon()
+/obj/machinery/floodlight/update_icon()
+
icon_state = "flood[panel_open ? "o" : ""][panel_open && cell ? "b" : ""]0[on]"
/obj/machinery/floodlight/process()
if(on)
- cell.charge -= use
- if(cell.charge <= 0)
+ if(cell && cell.use(powercost))
+ if(cell.charge < powercost)
+ on = 0
+ update_icon()
+ SetLuminosity(0)
+ visible_message("\The [src] shuts down!")
+ return
+
+ else
on = 0
- updateicon()
+ update_icon()
SetLuminosity(0)
- src.visible_message("[src] shuts down due to lack of power!")
+ visible_message("\The [src] shuts down!")
return
+/obj/machinery/floodlight/attack_ai(mob/user as mob)
+ src.add_hiddenprint(user)
+ return src.attack_hand(user)
+
+/obj/machinery/floodlight/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
/obj/machinery/floodlight/attack_hand(mob/user as mob)
if(panel_open && cell)
- if(ishuman(user))
- if(!user.get_active_hand())
- user.put_in_hands(cell)
- cell.loc = user.loc
- else
- cell.loc = loc
+ if(ishuman(user) || isMoMMI(user)) //Allow MoMMIs to do it, too
+ cell.loc = user.loc
+ cell.add_fingerprint(user)
+ cell.updateicon()
+ cell = null
+ user.visible_message("[user] removes \the [src]'s power cell", \
+ "You remove \the [src]'s power cell")
+ update_icon()
+ return
- cell.add_fingerprint(user)
- cell.updateicon()
-
- src.cell = null
- user << "You remove the power cell"
- updateicon()
- return
-
- if (ishuman(user))
- if(on)
- on = 0
- user << "\blue You turn off the light"
- SetLuminosity(0)
- else
- if(!cell)
- return
- if(cell.charge <= 0)
- return
- on = 1
- user << "\blue You turn on the light"
- SetLuminosity(brightness_on)
-
- updateicon()
+ if(on)
+ on = 0
+ SetLuminosity(0)
+ else
+ if(!cell || !cell.charge > powercost)
+ return
+ on = 1
+ SetLuminosity(brightness_on)
+ user.visible_message("[user] turns \the [src] [on ? "on":"off"]", \
+ "You turn \the [src] [on ? "on":"off"]")
+ update_icon()
/obj/machinery/floodlight/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
- if (istype(W, /obj/item/weapon/crowbar))
- if(unlocked)
- panel_open = !panel_open
- user << "You [panel_open ? "remove" : "crowbar"] the battery panel [!panel_open ? "in place." : "."]"
- if (istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/cell))
if(panel_open)
if(cell)
- user << "There is a power cell already installed."
+ user << "There already is a power cell already installed."
+ return
else
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
- user << "You insert the power cell."
- updateicon()
-
-/obj/machinery/floodlight/togglePanelOpen(var/obj/toggleitem, mob/user)
- if (!panel_open)
- if(unlocked)
- unlocked = 0
- user << "You screw the battery panel in place."
- else
- unlocked = 1
- user << "You unscrew the battery panel."
+ user.visible_message("[user] inserts \the [src] into \the [src].", \
+ "You insert \the [src] into \the [src].")
+ update_icon()
diff --git a/code/game/machinery/gashapon.dm b/code/game/machinery/gashapon.dm
new file mode 100644
index 00000000000..43d498f9675
--- /dev/null
+++ b/code/game/machinery/gashapon.dm
@@ -0,0 +1,104 @@
+//Gashapon vending machine things, probably going to be so broken that I either start over or give up entirely
+
+
+/obj/machinery/gashapon
+ name = "Gashapon Machine"
+ desc = "Insert coin, recieve capsule!"
+ icon = 'icons/obj/gashapon.dmi'
+ icon_state = "gashapon"
+ anchored = 1
+ density = 1
+ machine_flags = WRENCHMOVE | FIXED2WORK
+
+/obj/machinery/gashapon/attackby(var/obj/O as obj, var/mob/user as mob)
+ if (istype(O, /obj/item/weapon/coin/))
+ user.drop_item(O, src)
+ user.visible_message("[user] puts a coin into [src] and turns the knob.", "You put a coin into [src] and turn the knob.")
+ src.visible_message("[src] clicks softly.")
+ sleep(rand(10,15))
+ src.visible_message("[src] dispenses a capsule!")
+ var/obj/item/weapon/capsule/b = new(src.loc)
+ b.icon_state = "capsule[rand(1,12)]"
+ del(O)
+ else
+ return ..()
+
+
+/obj/item/weapon/capsule
+ name = "capsule"
+ desc = "A capsule from a gashapon machine. What are you waiting for? Open it!"
+ icon = 'icons/obj/gashapon.dmi'
+ icon_state = "capsule"
+ item_state = "capsule"
+
+/obj/item/weapon/capsule/New()
+ ..()
+ pixel_x = rand(-10,10)
+ pixel_y = rand(-10,10)
+
+/obj/item/weapon/capsule/ex_act()
+ qdel(src)
+ return
+
+/obj/item/weapon/capsule/attack_self(mob/M as mob)
+ var/capsule_prize = pick(
+ /obj/item/toy/prize/fireripley,
+ /obj/item/toy/prize/deathripley,
+ /obj/item/toy/prize/durand,
+ /obj/item/toy/prize/gygax,
+ /obj/item/toy/prize/honk,
+ /obj/item/toy/prize/marauder,
+ /obj/item/toy/prize/mauler,
+ /obj/item/toy/prize/odysseus,
+ /obj/item/toy/prize/phazon,
+ /obj/item/toy/prize/ripley,
+ /obj/item/toy/prize/seraph,
+ /obj/item/toy/gasha/greyshirt,
+ /obj/item/toy/gasha/greytide,
+ /obj/item/toy/gasha/corgitoy,
+ /obj/item/toy/gasha/borertoy,
+ /obj/item/toy/gasha/minislime,
+ /obj/item/toy/gasha/AI,
+ /obj/item/toy/gasha/AI/malf,
+ /obj/item/toy/gasha/minibutt,
+ /obj/item/toy/gasha/newcop,
+ /obj/item/toy/gasha/jani,
+ /obj/item/toy/gasha/miner,
+ /obj/item/toy/gasha/clown,
+ /obj/item/toy/gasha/goliath,
+ /obj/item/toy/gasha/basilisk,
+ /obj/item/toy/gasha/mommi,
+ /obj/item/toy/gasha/guard,
+ /obj/item/toy/gasha/hunter,
+ /obj/item/toy/gasha/nurse,
+ /obj/item/toy/gasha/alium,
+ /obj/item/toy/gasha/pomf,
+ /obj/item/toy/gasha/engi,
+ /obj/item/toy/gasha/atmos,
+ /obj/item/toy/gasha/sec,
+ /obj/item/toy/gasha/plasman,
+ /obj/item/toy/gasha/shard,
+ /obj/item/toy/gasha/mime,
+ /obj/item/toy/gasha/captain,
+ /obj/item/toy/gasha/comdom,
+ /obj/item/toy/gasha/shade,
+ /obj/item/toy/gasha/wraith,
+ /obj/item/toy/gasha/juggernaut,
+ /obj/item/toy/gasha/artificer,
+ /obj/item/toy/gasha/harvester,
+ /obj/item/toy/gasha/skub,
+ /obj/item/toy/gasha/fingerbox,
+ /obj/item/toy/gasha/cattoy,
+ /obj/item/toy/gasha/parrottoy,
+ /obj/item/toy/gasha/beartoy,
+ /obj/item/toy/gasha/carptoy,
+ /obj/item/toy/gasha/monkeytoy,
+ /obj/item/toy/gasha/huggertoy)
+
+ var/obj/item/I = new capsule_prize(M)
+ M.u_equip(src)
+ M.put_in_hands(I)
+ I.add_fingerprint(M)
+ M << "You got \a [I]!"
+ qdel(src)
+ return
\ No newline at end of file
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 31028fd9d28..70ed7f4ecef 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -73,9 +73,9 @@ var/const/HOLOPAD_MODE = 0
create_holo(user)//Create one.
src.visible_message("A holographic image of [user] flicks to life right before your eyes!")
else
- user << "\red ERROR: \black Image feed in progress."
+ user << "ERROR: Image feed in progress."
else
- user << "\red ERROR: \black Unable to project hologram."
+ user << "ERROR: Unable to project hologram."
return
/*This is the proc for special two-way communication between AI and holopad/people talking near holopad.
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index f677a839248..2f0454156c7 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -248,7 +248,7 @@ obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient,
weedlevel = 0 // Reset
pestlevel = 0 // Reset
updateicon()
- visible_message("\blue [src] has been overtaken by [myseed.plantname].")
+ visible_message("[src] has been overtaken by [myseed.plantname].")
return
@@ -435,7 +435,7 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant!
spawn(5) // Wait a while
updateicon()
- visible_message("\red[src] has suddenly mutated into \blue [myseed.plantname]!")
+ visible_message("[src] has suddenly mutated into [myseed.plantname]!")
return
@@ -457,7 +457,7 @@ obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent in
spawn(5) // Wait a while
updateicon()
- visible_message("\red The mutated weeds in [src] spawned a \blue [myseed.plantname]!")
+ visible_message("The mutated weeds in [src] spawned a [myseed.plantname]!")
else
usr << "The few weeds in the [src] seem to react, but only for a moment..."
return
@@ -469,7 +469,7 @@ obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one
dead = 1
harvest = 0
updateicon()
- visible_message("\red[src] is looking very unhealthy!")
+ visible_message("[src] is looking very unhealthy!")
return
@@ -507,9 +507,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
toxic = 0
else if(waterlevel >= 100)
- user << "\red The [src] is already full."
+ user << "The [src] is already full."
else
- user << "\red The bucket is not filled with water."
+ user << "The bucket is not filled with water."
updateicon()
else if ( istype(O, /obj/item/nutrient) )
@@ -527,9 +527,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (planted)
if (S.mode == 1)
if(!S.reagents.total_volume)
- user << "\red The syringe is empty."
+ user << "The syringe is empty."
return
- user << "\red You inject the [myseed.plantname] with a chemical solution."
+ user << "You inject the [myseed.plantname] with a chemical solution."
// There needs to be a good amount of mutagen to actually work
@@ -716,32 +716,32 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(!RP.source)
RP.request_player()
else
- user << "\red The [src] already has seeds in it!"
+ user << "The [src] already has seeds in it!"
else if (istype(O, /obj/item/device/analyzer/plant_analyzer))
if(planted && myseed)
user << "*** [myseed.plantname] ***" //Carn: now reports the plants growing, not the seeds.
- user << "-Plant Age: \blue [age]"
- user << "-Plant Endurance: \blue [myseed.endurance]"
- user << "-Plant Lifespan: \blue [myseed.lifespan]"
+ user << "-Plant Age: [age]"
+ user << "-Plant Endurance: [myseed.endurance]"
+ user << "-Plant Lifespan: [myseed.lifespan]"
if(myseed.yield != -1)
- user << "-Plant Yield: \blue [myseed.yield]"
- user << "-Plant Production: \blue [myseed.production]"
+ user << "-Plant Yield: [myseed.yield]"
+ user << "-Plant Production: [myseed.production]"
if(myseed.potency != -1)
- user << "-Plant Potency: \blue [myseed.potency]"
- user << "-Weed level: \blue [weedlevel]/10"
- user << "-Pest level: \blue [pestlevel]/10"
- user << "-Toxicity level: \blue [toxic]/100"
- user << "-Water level: \blue [waterlevel]/100"
- user << "-Nutrition level: \blue [nutrilevel]/10"
+ user << "-Plant Potency: [myseed.potency]"
+ user << "-Weed level: [weedlevel]/10"
+ user << "-Pest level: [pestlevel]/10"
+ user << "-Toxicity level: [toxic]/100"
+ user << "-Water level: [waterlevel]/100"
+ user << "-Nutrition level: [nutrilevel]/10"
user << ""
else
user << "No plant found."
- user << "-Weed level: \blue [weedlevel]/10"
- user << "-Pest level: \blue [pestlevel]/10"
- user << "-Toxicity level: \blue [toxic]/100"
- user << "-Water level: \blue [waterlevel]/100"
- user << "-Nutrition level: \blue [nutrilevel]/10"
+ user << "-Weed level: [weedlevel]/10"
+ user << "-Pest level: [pestlevel]/10"
+ user << "-Toxicity level: [toxic]/100"
+ user << "-Water level: [waterlevel]/100"
+ user << "-Nutrition level: [nutrilevel]/10"
user << ""
else if (istype(O, /obj/item/weapon/reagent_containers/spray/plantbgone))
@@ -758,19 +758,19 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
else
weedlevel = 0
toxic += 4 // Oops
- visible_message("\red \The [src] has been sprayed with \the [O][(user ? " by [user]." : ".")]")
+ visible_message("\The [src] has been sprayed with \the [O][(user ? " by [user]." : ".")]")
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
updateicon()
else if (istype(O, /obj/item/weapon/minihoe)) // The minihoe
//var/deweeding
if(weedlevel > 0)
- user.visible_message("\red [user] starts uprooting the weeds.", "\red You remove the weeds from the [src].")
+ user.visible_message("[user] starts uprooting the weeds.", "You remove the weeds from the [src].")
weedlevel = 0
updateicon()
src.updateicon()
else
- user << "\red This plot is completely devoid of weeds. It doesn't need uprooting."
+ user << "This plot is completely devoid of weeds. It doesn't need uprooting."
else if ( istype(O, /obj/item/weapon/weedspray) )
var/obj/item/weedkiller/myWKiller = O
@@ -813,7 +813,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
del(src)
else if(istype(O, /obj/item/apiary))
if(planted)
- user << "\red The hydroponics tray is already occupied!"
+ user << "The hydroponics tray is already occupied!"
else
user.drop_item()
del(O)
@@ -851,7 +851,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
updateicon()
else
if(planted && !dead)
- usr << text("The [src] has \blue [myseed.plantname] \black planted.")
+ usr << text("The [src] has [myseed.plantname] planted.")
if(health <= (myseed.endurance / 2))
usr << text("The plant looks unhealthy")
else
@@ -971,7 +971,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
harvest = 0
lastproduce = age
if((yieldmod * myseed.yield) <= 0 || istype(myseed,/obj/item/seeds/replicapod))
- user << text("\red You fail to harvest anything useful.")
+ user << text("You fail to harvest anything useful.")
else
user << text("You harvest from the [myseed.plantname].")
if(myseed.oneharvest)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 07994dd130f..b1a94387a29 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -61,17 +61,17 @@
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1)
- user << "\blue You begin to cut \the [src] off the floor..."
+ user << "You begin to cut \the [src] off the floor..."
if (do_after(user, 40))
user.visible_message( \
"[user] disassembles \the [src].", \
- "\blue You have disassembled \the [src].", \
+ "You have disassembled \the [src].", \
"You hear welding.")
src.assembly.loc=src.loc
del(src)
return
else:
- user << "\red You need more welder fuel to do that."
+ user << "You need more welder fuel to do that."
return 1
@@ -111,10 +111,10 @@
add_fingerprint(user)
src.disable = !src.disable
if (src.disable)
- user.visible_message("\red [user] has disabled the [src]!", "\red You disable the connection to the [src].")
+ user.visible_message("[user] has disabled the [src]!", "You disable the connection to the [src].")
icon_state = "[base_state]-d"
if (!src.disable)
- user.visible_message("\red [user] has reconnected the [src]!", "\red You fix the connection to the [src].")
+ user.visible_message("[user] has reconnected the [src]!", "You fix the connection to the [src].")
if(src.powered())
icon_state = "[base_state]"
else
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 73272d6a5b1..0b5f2f8b728 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -72,7 +72,7 @@
user << "There is already a reagent container loaded!"
return
- user.drop_item(src)
+ user.drop_item(W, src)
src.beaker = W
user << "You attach \the [W] to \the [src]."
src.update_icon()
@@ -153,7 +153,7 @@
usr << "You can't do that."
return
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
mode = !mode
diff --git a/code/game/machinery/kitchen/chickenprocessor.dm b/code/game/machinery/kitchen/chickenprocessor.dm
index fd0c0b565a1..a2bb1e50de6 100644
--- a/code/game/machinery/kitchen/chickenprocessor.dm
+++ b/code/game/machinery/kitchen/chickenprocessor.dm
@@ -37,7 +37,7 @@
var/grabbed = G.affecting
if(istype(grabbed, /mob/living/simple_animal/chicken))
var/mob/living/simple_animal/chicken/target = grabbed
- user.drop_item()
+ user.drop_item(G)
del(target)
user << "[emagged ? "Bkaww!" : "You stuff the chicken in the machine."]"
playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1)
@@ -47,7 +47,7 @@
else if(istype(grabbed, /mob/living/simple_animal/chick))
var/mob/living/simple_animal/chick/target = grabbed
- user.drop_item()
+ user.drop_item(G)
del(target)
user << "[emagged ? "Bkaww!" : "You stuff the chick in the machine, you monster."]"
playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1)
@@ -61,7 +61,7 @@
if(emagged)
user << "Bwak! Bwak! Bwak!"
playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1)
- user.drop_item()
+ user.drop_item(G)
target.canmove = 0
target.icon = null
target.invisibility = 101
diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm
index be6de58e89b..105c6380fa0 100644
--- a/code/game/machinery/kitchen/gibber.dm
+++ b/code/game/machinery/kitchen/gibber.dm
@@ -51,7 +51,7 @@ obj/machinery/gibber/New()
if(istype(O,/obj/item/weapon/grab))
return handleGrab(O,user)
else
- user << "\red This item is not suitable for the gibber!"
+ user << "This item is not suitable for the gibber!"
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
@@ -154,10 +154,10 @@ obj/machinery/gibber/New()
user << "Subject may not have abiotic items on."
return
- user.visible_message("\red [user] starts to put [G.affecting] into the gibber!")
+ user.visible_message("[user] starts to put [G.affecting] into the gibber!")
src.add_fingerprint(user)
if(do_after(user, 30) && G && G.affecting && !occupant)
- user.visible_message("\red [user] stuffs [G.affecting] into the gibber!")
+ user.visible_message("[user] stuffs [G.affecting] into the gibber!")
var/mob/M = G.affecting
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
@@ -181,10 +181,10 @@ obj/machinery/gibber/New()
return
src.add_fingerprint(user)
- user.visible_message("\red [user.name] starts climbing into the [src].", "\red You start climbing into the [src].")
+ user.visible_message("[user.name] starts climbing into the [src].", "You start climbing into the [src].")
if(do_after(user, 30) && user && !occupant && !isnull(src.loc))
- user.visible_message("\red [user] climbs into the [src]", "\red You climb into the [src].")
+ user.visible_message("[user] climbs into the [src]", "You climb into the [src].")
if(user.client)
user.client.perspective = EYE_PERSPECTIVE
user.client.eye = src
@@ -197,7 +197,7 @@ obj/machinery/gibber/New()
set name = "Empty Gibber"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
src.go_out()
add_fingerprint(usr)
@@ -221,10 +221,10 @@ obj/machinery/gibber/New()
if(src.operating)
return
if(!src.occupant)
- visible_message("\red You hear a loud metallic grinding sound.")
+ visible_message("You hear a loud metallic grinding sound.")
return
use_power(1000)
- visible_message("\red You hear a loud squelchy grinding sound.")
+ visible_message("You hear a loud squelchy grinding sound.")
src.operating = 1
update_icon()
var/sourcename = src.occupant.real_name
@@ -243,9 +243,9 @@ obj/machinery/gibber/New()
src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the
allmeat[i] = newmeat
- src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" //One shall not simply gib a mob unnoticed!
- user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]"
- log_attack("\[[time_stamp()]\] [user]/[user.ckey] gibbed [src.occupant]/[src.occupant.ckey]")
+ src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [key_name(user)]" //One shall not simply gib a mob unnoticed!
+ user.attack_log += "\[[time_stamp()]\] Gibbed [key_name(src.occupant)]"
+ log_attack("[key_name(user)] gibbed [key_name(src.occupant)]")
if(!iscarbon(user))
src.occupant.LAssailant = null
@@ -272,10 +272,10 @@ obj/machinery/gibber/New()
if(src.operating)
return
if(!victim)
- visible_message("\red You hear a loud metallic grinding sound.")
+ visible_message("You hear a loud metallic grinding sound.")
return
use_power(1000)
- visible_message("\red You hear a loud squelchy grinding sound.")
+ visible_message("You hear a loud squelchy grinding sound.")
src.operating = 1
update_icon()
var/sourcename = victim.real_name
@@ -306,8 +306,8 @@ obj/machinery/gibber/New()
victim.reagents.trans_to (newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the
allmeat[i] = newmeat
- victim.attack_log += "\[[time_stamp()]\] Was auto-gibbed by [src]" //One shall not simply gib a mob unnoticed!
- log_attack("\[[time_stamp()]\] [src] auto-gibbed [victim]/[victim.ckey]")
+ victim.attack_log += "\[[time_stamp()]\] Was auto-gibbed by [src]" //One shall not simply gib a mob unnoticed!
+ log_attack("[src] auto-gibbed [key_name(victim)]")
victim.death(1)
if(ishuman(victim) || ismonkey(victim) || isalien(victim))
var/obj/item/organ/brain/B = new(src.loc)
diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm
index 02ae528b7f1..2e5d54c66b7 100644
--- a/code/game/machinery/kitchen/juicer.dm
+++ b/code/game/machinery/kitchen/juicer.dm
@@ -121,7 +121,7 @@
set category = "Object"
set name = "Detach Beaker from the juicer"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
if (!beaker)
return
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index e3d70e09901..bec60616ab7 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -173,8 +173,7 @@
"You add one of [O] to \the [src].")
else
// user.before_take_item(O) //This just causes problems so far as I can tell. -Pete
- user.drop_item(src)
- contents += O
+ user.drop_item(O, src)
user.visible_message( \
"[user] has added \the [O] to \the [src].", \
"You add \the [O] to \the [src].")
diff --git a/code/game/machinery/kitchen/monkeyrecycler.dm b/code/game/machinery/kitchen/monkeyrecycler.dm
index 4921b176321..a39139a1b99 100644
--- a/code/game/machinery/kitchen/monkeyrecycler.dm
+++ b/code/game/machinery/kitchen/monkeyrecycler.dm
@@ -43,7 +43,7 @@
if(target.wear_mask || target.l_hand || target.r_hand || target.back || target.uniform || target.hat)
user << "The monkey may not have abiotic items on."
else
- user.drop_item()
+ user.drop_item(G)
del(target)
user << "You stuff the monkey in the machine."
playsound(get_turf(src), 'sound/machines/juicer.ogg', 50, 1)
diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm
index e2c463b438c..8c8e228b69e 100644
--- a/code/game/machinery/kitchen/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -83,7 +83,7 @@
var/C = S.cores
if(S.stat != DEAD)
S.loc = loc
- S.visible_message("\blue [C] crawls free of the processor!")
+ S.visible_message("[C] crawls free of the processor!")
return
for(var/i = 1, i <= C, i++)
new S.coretype(loc)
@@ -160,9 +160,10 @@
user.visible_message("[user] puts [what] into [src].", \
"You put [what] into the [src].")
if(what == user.get_active_hand())
- user.drop_item(src)
+ user.drop_item(what, src)
else
- user.drop_item()
+ if(O.loc == user)
+ user.drop_item(O)
what.loc = src
return
diff --git a/code/game/machinery/kitchen/snackbarmachine.dm b/code/game/machinery/kitchen/snackbarmachine.dm
index 6f87b5a5114..b42561dd409 100644
--- a/code/game/machinery/kitchen/snackbarmachine.dm
+++ b/code/game/machinery/kitchen/snackbarmachine.dm
@@ -76,7 +76,7 @@
user << "A beaker is already loaded into the machine."
return
src.beaker = B
- user.drop_item(src)
+ user.drop_item(B, src)
user << "You add the beaker to the machine!"
src.updateUsrDialog()
update_icon()
diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm
index 552daa06724..41448de5e06 100644
--- a/code/game/machinery/mass_driver.dm
+++ b/code/game/machinery/mass_driver.dm
@@ -27,7 +27,7 @@
O_limit++
if(O_limit >= 20)
for(var/mob/M in hearers(src, null))
- M << "\blue The mass driver lets out a screech, it mustn't be able to handle any more items."
+ M << "The mass driver lets out a screech, it mustn't be able to handle any more items."
break
use_power(500)
spawn( 0 )
diff --git a/code/game/machinery/metaldetector.dm b/code/game/machinery/metaldetector.dm
index 4e03caaf356..aa64ce1602b 100644
--- a/code/game/machinery/metaldetector.dm
+++ b/code/game/machinery/metaldetector.dm
@@ -160,9 +160,9 @@
add_fingerprint(user)
src.disable = !src.disable
if (src.disable)
- user.visible_message("\red [user] has disconnected the detector array!", "\red You disconnect the detector array!")
+ user.visible_message("[user] has disconnected the detector array!", "You disconnect the detector array!")
if (!src.disable)
- user.visible_message("\red [user] has connected the detector array!", "\red You connect the detector array!")
+ user.visible_message("[user] has connected the detector array!", "You connect the detector array!")
*/
/obj/machinery/detector/Topic(href, href_list)
diff --git a/code/game/machinery/mommi_spawner.dm b/code/game/machinery/mommi_spawner.dm
index dfb65ce059b..254fac6495d 100644
--- a/code/game/machinery/mommi_spawner.dm
+++ b/code/game/machinery/mommi_spawner.dm
@@ -43,7 +43,7 @@
/obj/machinery/mommi_spawner/attack_ghost(var/mob/dead/observer/user as mob)
if(building)
- user << "\red \The [src] is busy building something already."
+ user << "\The [src] is busy building something already."
return 1
var/timedifference = world.time - user.client.time_died_as_mouse
@@ -54,7 +54,7 @@
return
/*
if(!mmi.brainmob)
- user << "\red \The [mmi] appears to be devoid of any soul."
+ user << "\The [mmi] appears to be devoid of any soul."
return 1
if(!mmi.brainmob.key)
var/ghost_can_reenter = 0
@@ -68,19 +68,19 @@
return TRUE
if(mmi.brainmob.stat == DEAD)
- user << "\red Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud."
+ user << "Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud."
return TRUE
if(mmi.brainmob.mind in ticker.mode.head_revolutionaries)
- user << "\red \The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]."
+ user << "\The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]."
return TRUE
*/
if(jobban_isbanned(user, "MoMMI"))
- user << "\red \The [src] lets out an annoyed buzz."
+ user << "\The [src] lets out an annoyed buzz."
return TRUE
if(metal < metalPerMoMMI)
- user << "\red \The [src] doesn't have enough metal to complete this task."
+ user << "\The [src] doesn't have enough metal to complete this task."
return 1
if(alert(user, "Do you wish to be turned into a MoMMI at this position?", "Confirm", "Yes", "No") != "Yes") return
@@ -99,10 +99,10 @@
if(istype(O,/obj/item/device/mmi))
var/obj/item/device/mmi/mmi = O
if(building)
- user << "\red \The [src] is busy building something already."
+ user << "\The [src] is busy building something already."
return 1
if(!mmi.brainmob)
- user << "\red \The [mmi] appears to be devoid of any soul."
+ user << "\The [mmi] appears to be devoid of any soul."
return 1
if(!mmi.brainmob.key)
var/ghost_can_reenter = 0
@@ -116,24 +116,24 @@
return TRUE
if(mmi.brainmob.stat == DEAD)
- user << "\red Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud."
+ user << "Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud."
return TRUE
if(mmi.brainmob.mind in ticker.mode.head_revolutionaries)
- user << "\red \The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]."
+ user << "\The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]."
return TRUE
if(jobban_isbanned(mmi.brainmob, "Cyborg"))
- user << "\red \The [src] lets out an annoyed buzz and rejects \the [mmi]."
+ user << "\The [src] lets out an annoyed buzz and rejects \the [mmi]."
return TRUE
if(metal < metalPerMoMMI)
- user << "\red \The [src] doesn't have enough metal to complete this task."
+ user << "\The [src] doesn't have enough metal to complete this task."
return TRUE
building=1
update_icon()
- user.drop_item(src)
+ user.drop_item(O, src)
mmi.icon = null
mmi.invisibility = 101
spawn(50)
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 976917be645..711ffda1aa2 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -114,7 +114,7 @@
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
else
- user << "\red Access denied."
+ user << "Access denied."
updateDialog()
else
user << "You must open the cover first!"
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 3319c1cafb9..b526eff8ce8 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -870,18 +870,12 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob)
-
-/* if (istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda) ) //Name verification for channels or messages
- if(src.screen == 4 || src.screen == 5)
- if( istype(I, /obj/item/device/pda) )
- var/obj/item/device/pda/P = I
- if(P.id)
- src.scanned_user = "[P.id.registered_name] ([P.id.assignment])"
- src.screen=2
- else
- var/obj/item/weapon/card/id/T = I
- src.scanned_user = text("[T.registered_name] ([T.assignment])")
- src.screen=2*/ //Obsolete after autorecognition
+ if(isscrewdriver(I) && !(stat & BROKEN))
+ user.visible_message("[user] takes down the [src]!", "You take down the [src]")
+ playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
+ new /obj/item/mounted/frame/newscaster(src.loc)
+ qdel(src)
+ return
if ((stat & BROKEN) && (istype(I, /obj/item/stack/sheet/glass/glass)))
var/obj/item/stack/sheet/glass/glass/stack = I
@@ -932,7 +926,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
photo = null
if(istype(user.get_active_hand(), /obj/item/weapon/photo))
photo = user.get_active_hand()
- user.drop_item(src)
+ user.drop_item(photo, src)
diff --git a/code/game/machinery/pdapainter.dm b/code/game/machinery/pdapainter.dm
index f6f9e5897f1..4f8da1eaf0c 100644
--- a/code/game/machinery/pdapainter.dm
+++ b/code/game/machinery/pdapainter.dm
@@ -91,7 +91,7 @@ Feel free to do whatever with this if you think it lacks.
else
var/obj/item/device/pda/P = O
if(istype(P))
- user.drop_item(src)
+ user.drop_item(P, src)
storedpda = P
//P.add_fingerprint(usr)
update_icon()
diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm
index f54c57ea6a1..bd5dffc7217 100644
--- a/code/game/machinery/podmen.dm
+++ b/code/game/machinery/podmen.dm
@@ -72,9 +72,9 @@ var/global/list/hasbeendiona = list() // Stores ckeys and a timestamp for ghost
if(beingharvested)
- user << ("\red You can only harvest the pod once!")
+ user << ("You can only harvest the pod once!")
else
- user.visible_message("\blue [user] carefully begins to open the pod...","\blue You carefully begin to open the pod...")
+ user.visible_message("[user] carefully begins to open the pod...","You carefully begin to open the pod...")
beingharvested = 1
//If a sample is injected (and revival is allowed) the plant will be controlled by the original donor.
@@ -175,7 +175,7 @@ var/global/list/hasbeendiona = list() // Stores ckeys and a timestamp for ghost
// -- End mode specific stuff
- podman << "\green You awaken slowly, feeling your sap stir into sluggish motion as the warm air caresses your bark."
+ podman << "You awaken slowly, feeling your sap stir into sluggish motion as the warm air caresses your bark."
if(source && ckey && podman.ckey == ckey && !ghost)
podman << "Memories of a life as [source] drift oddly through a mind unsuited for them, like a skin of oil over a fathomless lake."
podman << "You are now one of the Dionaea, a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders."
@@ -185,5 +185,5 @@ var/global/list/hasbeendiona = list() // Stores ckeys and a timestamp for ghost
if (newname != "")
podman.real_name = newname
- parent.visible_message("\blue The pod disgorges a fully-formed plant creature!")
+ parent.visible_message("The pod disgorges a fully-formed plant creature!")
parent.update_tray()
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 1319964204e..ac4de9b83e7 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -243,7 +243,7 @@ Status: [] "},
if(anchored) // you can't turn a turret on/off if it's not anchored/secured
on = !on // toggle on/off
else
- usr << "\red It has to be secured first!"
+ usr << "It has to be secured first!"
updateUsrDialog()
return
@@ -288,10 +288,10 @@ Status: [] "},
/obj/machinery/porta_turret/emag(mob/user)
if(!emagged)
- user << "\red You short out [src]'s threat assessment circuits."
+ user << "You short out [src]'s threat assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
- O.show_message("\red [src] hums oddly...", 1)
+ O.show_message("[src] hums oddly...", 1)
emagged = 1
src.on = 0 // turns off the turret temporarily
sleep(60) // 6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit
@@ -346,7 +346,7 @@ Status: [] "},
locked = !src.locked
user << "Controls are now [locked ? "locked." : "unlocked."]"
else
- user << "\red Access denied."
+ user << "Access denied."
else
user.delayNextAttack(10)
@@ -699,7 +699,7 @@ Status: [] "},
if(0) // first step
if(istype(W, /obj/item/weapon/wrench) && !anchored)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 100, 1)
- user << "\blue You secure the external bolts."
+ user << "You secure the external bolts."
anchored = 1
build_step = 1
return
@@ -716,7 +716,7 @@ Status: [] "},
if(1)
if(istype(W, /obj/item/stack/sheet/metal))
if(W:amount>=2) // requires 2 metal sheets
- user << "\blue You add some metal armor to the interior frame."
+ user << "You add some metal armor to the interior frame."
build_step = 2
W:amount -= 2
icon_state = "turret_frame2"
@@ -735,7 +735,7 @@ Status: [] "},
if(2)
if(istype(W, /obj/item/weapon/wrench))
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 100, 1)
- user << "\blue You bolt the metal armor into place."
+ user << "You bolt the metal armor into place."
build_step = 3
return
@@ -743,7 +743,7 @@ Status: [] "},
var/obj/item/weapon/weldingtool/WT = W
if(!WT.isOn()) return
if (WT.get_fuel() < 5) // uses up 5 fuel.
- user << "\red You need more fuel to complete this task."
+ user << "You need more fuel to complete this task."
return
playsound(get_turf(src), pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
@@ -763,7 +763,7 @@ Status: [] "},
var/obj/item/weapon/gun/energy/E = W // typecasts the item to an energy gun
installation = W.type // installation becomes W.type
gun_charge = E.power_supply.charge // the gun's charge is stored in src.gun_charge
- user << "\blue You add \the [W] to the turret."
+ user << "You add \the [W] to the turret."
build_step = 4
qdel(W) // delete the gun :(
return
@@ -777,7 +777,7 @@ Status: [] "},
if(4)
if(isprox(W))
build_step = 5
- user << "\blue You add the prox sensor to the turret."
+ user << "You add the prox sensor to the turret."
qdel(W)
return
@@ -787,7 +787,7 @@ Status: [] "},
if(istype(W, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
build_step = 6
- user << "\blue You close the internal access hatch."
+ user << "You close the internal access hatch."
return
// attack_hand() removes the prox sensor
@@ -795,7 +795,7 @@ Status: [] "},
if(6)
if(istype(W, /obj/item/stack/sheet/metal))
if(W:amount>=2)
- user << "\blue You add some metal armor to the exterior frame."
+ user << "You add some metal armor to the exterior frame."
build_step = 7
W:amount -= 2
if(W:amount <= 0)
@@ -813,13 +813,13 @@ Status: [] "},
var/obj/item/weapon/weldingtool/WT = W
if(!WT.isOn()) return
if (WT.get_fuel() < 5)
- user << "\red You need more fuel to complete this task."
+ user << "You need more fuel to complete this task."
playsound(get_turf(src), pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
if(do_after(user, 30))
if(!src || !WT.remove_fuel(5, user)) return
build_step = 8
- user << "\blue You weld the turret's armor down."
+ user << "You weld the turret's armor down."
// The final step: create a full turret
var/obj/machinery/porta_turret/Turret = new/obj/machinery/porta_turret(locate(x,y,z))
@@ -994,7 +994,7 @@ Status: [] "},
else
Parent_Turret.on=1
else
- usr << "\red It has to be secured first!"
+ usr << "It has to be secured first!"
updateUsrDialog()
return
@@ -1018,10 +1018,10 @@ Status: [] "},
/obj/machinery/porta_turret_cover/attackby(obj/item/W as obj, mob/user as mob)
if ((istype(W, /obj/item/weapon/card/emag)) && (!Parent_Turret.emagged))
- user << "\red You short out [Parent_Turret]'s threat assessment circuits."
+ user << "You short out [Parent_Turret]'s threat assessment circuits."
spawn(0)
for(var/mob/O in hearers(Parent_Turret, null))
- O.show_message("\red [Parent_Turret] hums oddly...", 1)
+ O.show_message("[Parent_Turret] hums oddly...", 1)
Parent_Turret.emagged = 1
Parent_Turret.on = 0
sleep(40)
@@ -1048,7 +1048,7 @@ Status: [] "},
user << "Controls are now [Parent_Turret.locked ? "locked." : "unlocked."]"
updateUsrDialog()
else
- user << "\red Access denied."
+ user << "Access denied."
else
Parent_Turret.health -= W.force * 0.5
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index d88eca077be..854dee09060 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -33,7 +33,7 @@
return
if (istype(G, /obj/item/weapon/gun/energy/staff))
return
- user.drop_item(src)
+ user.drop_item(G, src)
charging = G
use_power = 2
update_icon()
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 4ef0279ca5d..d2838388de5 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -105,7 +105,7 @@
/obj/machinery/recharge_station/attackby(var/obj/item/W, var/mob/living/user)
if(is_type_in_list(W, acceptable_upgradeables))
if(!(locate(W.type) in upgrade_holder))
- user.drop_item(src)
+ user.drop_item(W, src)
upgrade_holder.Add(W)
user << "You add \the [W] to \the [src]."
return
diff --git a/code/game/machinery/records_scanner.dm b/code/game/machinery/records_scanner.dm
index 370e2f3843e..24218bfa89c 100644
--- a/code/game/machinery/records_scanner.dm
+++ b/code/game/machinery/records_scanner.dm
@@ -70,8 +70,8 @@ obj/machinery/scanner/attack_hand(mob/living/carbon/human/user)
Black Marks: "}
for(var/A in marks)
- text += "\red[A] "
- user << "\blue You feel a sting as the scanner extracts some of your blood."
+ text += "[A] "
+ user << "You feel a sting as the scanner extracts some of your blood."
var/turf/T = get_step(src,outputdir)
var/obj/item/weapon/paper/print = new(T)
print.name = "[mname] Report"
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 8226b2290ec..01d415ed723 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -1,5 +1,4 @@
/******************** Requests Console ********************/
-/** Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes */
var/req_console_assistance = list()
var/req_console_supplies = list()
@@ -34,14 +33,14 @@ var/list/obj/machinery/requests_console/allConsoles = list()
// 2 = req. supplies
// 3 = relay information
// 4 = write msg - not used
- // 5 = choose priority - not used
+ // 5 = configure panel
// 6 = sent successfully
// 7 = sent unsuccessfully
// 8 = view messages
// 9 = authentication before sending
// 10 = send announcement
var/silent = 0 // set to 1 for it not to beep all the time
-// var/hackState = 0
+ var/hackState = 0
// 0 = not hacked
// 1 = hacked
var/announcementConsole = 0
@@ -69,9 +68,20 @@ var/list/obj/machinery/requests_console/allConsoles = list()
icon_state = "req_comp0"
/obj/machinery/requests_console/New()
- name = "[department] Requests Console"
allConsoles.Add(src)
- //req_console_departments += department
+ set_department(department,departmentType)
+ return ..()
+
+/obj/machinery/requests_console/proc/set_department(var/name, var/D)
+ department = name
+ departmentType = D
+ name = "[department] Requests Console"
+ if("[department]" in req_console_assistance)
+ req_console_assistance -= department
+ if("[department]" in req_console_supplies)
+ req_console_supplies -= department
+ if("[department]" in req_console_information)
+ req_console_information -= department
switch(departmentType)
if(1)
if(!("[department]" in req_console_assistance))
@@ -105,8 +115,6 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(!("[department]" in req_console_information))
req_console_information += department
- return ..()
-
/obj/machinery/requests_console/attack_hand(user as mob)
if(..(user))
return
@@ -146,7 +154,23 @@ var/list/obj/machinery/requests_console/allConsoles = list()
// dat += text(" or EXTREME)")
dat += text(") ")
dat += text(" Back ")
-
+ if(5) //configure panel
+ dat += text("Configure Panel
")
+ if(announceAuth)
+ dat += text("Authentication accepted
")
+ else
+ dat += text("Swipe your card to authenticate yourself.
")
+ if (announceAuth)
+ dat += text("Configure department. Set to 0 to release internal locks for deconstruction.
")
if (silent)
@@ -323,7 +348,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
screen = 3
// if(4) //write message
// screen = 4
- if(5) //choose priority
+ if(5) //configure
screen = 5
if(6) //sent successfully
screen = 6
@@ -350,6 +375,12 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if("1") silent = 1
else silent = 0
+ switch( href_list["setDepartment"] )
+ if(null) //skip
+ else
+ var/name = reject_bad_text(input(usr,"Name:","Name this department.","Public") as null|text)
+ set_department(name,text2num(href_list["setDepartment"]))
+
updateUsrDialog()
return
@@ -360,42 +391,54 @@ var/list/obj/machinery/requests_console/allConsoles = list()
return "beeps, \"[text]\""
- //err... hacking code, which has no reason for existing... but anyway... it's supposed to unlock priority 3 messanging on that console (EXTREME priority...) the code for that actually exists.
+ //deconstruction and hacking
/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
- /*
if (istype(O, /obj/item/weapon/crowbar))
if(open)
open = 0
icon_state="req_comp0"
else
open = 1
- if(hackState == 0)
+ if(!hackState)
icon_state="req_comp_open"
- else if(hackState == 1)
+ else
icon_state="req_comp_rewired"
if (istype(O, /obj/item/weapon/screwdriver))
if(open)
- if(hackState == 0)
+ if(!hackState)
hackState = 1
icon_state="req_comp_rewired"
- else if(hackState == 1)
+ else
hackState = 0
icon_state="req_comp_open"
else
- user << "You can't do much with that."*/
-
+ user << "You can't do much with that."
+ if(iswrench(O) && open && !departmentType)
+ user.visible_message("[user] disassembles the [src]!", "You disassemble the [src]")
+ playsound(get_turf(src), 'sound/items/Ratchet.ogg', 100, 1)
+ new /obj/item/stack/sheet/metal (src.loc,2)
+ qdel(src)
+ return
if (istype(O, /obj/item/weapon/card/id) || istype(O, /obj/item/device/pda))
+ if(screen == 5)
+ var/obj/item/weapon/card/id/ID = O.GetID()
+ if (hackState || ID.access.Find(access_engine_equip))
+ announceAuth = 1
+ else
+ announceAuth = 0
+ user << "You are not authorized to configure this panel."
+ updateUsrDialog()
if(screen == 9)
var/obj/item/weapon/card/id/ID = O.GetID()
msgVerified = "Verified by [ID.registered_name] ([ID.assignment])"
updateUsrDialog()
if(screen == 10)
var/obj/item/weapon/card/id/ID = O.GetID()
- if (access_RC_announce in ID.access)
+ if (hackState || ID.access.Find(access_RC_announce))
announceAuth = 1
else
announceAuth = 0
- user << "\red You are not authorized to send announcements."
+ user << "You are not authorized to send announcements."
updateUsrDialog()
if (istype(O, /obj/item/weapon/stamp))
if(screen == 9)
diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm
index 59db8b75a05..7c53adb1107 100644
--- a/code/game/machinery/seed_extractor.dm
+++ b/code/game/machinery/seed_extractor.dm
@@ -60,7 +60,7 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob
// Fruits and vegetables.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown))
- user.drop_item()
+ user.drop_item(O)
var/datum/seed/new_seed_type
if(istype(O, /obj/item/weapon/grown))
@@ -93,7 +93,7 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob
var/obj/item/F = O
if(F.nonplant_seed_type)
user << "You extract some seeds from the [F.name]."
- user.drop_item()
+ user.drop_item(O)
var/t_amount = 0
var/t_max = rand(1,4)
while(t_amount < t_max)
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 6f1220b2b62..f1880c88e8c 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -52,7 +52,7 @@
if (src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("The [src] dissapates")
del(src)
return
@@ -63,7 +63,7 @@
src.health -= max_health*0.75 //3/4 health as damage
if(src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("The [src] dissapates")
del(src)
return
@@ -75,7 +75,7 @@
health -= Proj.damage
..()
if(health <=0)
- visible_message("\blue The [src] dissapates")
+ visible_message("The [src] dissapates")
del(src)
return
opacity = 1
@@ -108,7 +108,7 @@
/obj/machinery/shield/hitby(AM as mob|obj)
//Let everyone know we've been hit!
- visible_message("\red [src] was hit by [AM].")
+ visible_message("[src] was hit by [AM].")
//Super realistic, resource-intensive, real-time damage calculations.
var/tforce = 0
@@ -124,7 +124,7 @@
//Handle the destruction of the shield
if (src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("The [src] dissapates")
del(src)
return
@@ -246,14 +246,14 @@
return
if (src.active)
- user.visible_message("\blue \icon[src] [user] deactivated the shield generator.", \
- "\blue \icon[src] You deactivate the shield generator.", \
+ user.visible_message("\icon[src] [user] deactivated the shield generator.", \
+ "\icon[src] You deactivate the shield generator.", \
"You hear heavy droning fade out.")
src.shields_down()
else
if(anchored)
- user.visible_message("\blue \icon[src] [user] activated the shield generator.", \
- "\blue \icon[src] You activate the shield generator.", \
+ user.visible_message("\icon[src] [user] activated the shield generator.", \
+ "\icon[src] You activate the shield generator.", \
"You hear heavy droning.")
src.shields_up()
else
@@ -284,14 +284,14 @@
if(istype(W, /obj/item/stack/cable_coil) && malfunction && panel_open)
var/obj/item/stack/cable_coil/coil = W
- user << "\blue You begin to replace the wires."
+ user << "You begin to replace the wires."
//if(do_after(user, min(60, round( ((maxhealth/health)*10)+(malfunction*10) ))) //Take longer to repair heavier damage
if(do_after(user, 30))
if(!src || !coil) return
coil.use(1)
health = max_health
malfunction = 0
- user << "\blue You repair the [src]!"
+ user << "You repair the [src]!"
update_icon()
return
@@ -300,7 +300,7 @@
src.locked = !src.locked
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
- user << "\red Access denied."
+ user << "Access denied."
return
@@ -367,13 +367,13 @@
/obj/machinery/shieldwallgen/attack_hand(mob/user as mob)
if(!anchored)
- user << "\red The shield generator needs to be firmly secured to the floor first."
+ user << "The shield generator needs to be firmly secured to the floor first."
return 1
if(src.locked && !istype(user, /mob/living/silicon))
- user << "\red The controls are locked!"
+ user << "The controls are locked!"
return 1
if(power != 1)
- user << "\red The shield generator needs to be powered by wire underneath."
+ user << "The shield generator needs to be powered by wire underneath."
return 1
if(src.active)
@@ -419,7 +419,7 @@
src.active = 2
if(src.active == 1)
if(src.power == 0)
- src.visible_message("\red The [src.name] shuts down due to lack of power!", \
+ src.visible_message("The [src.name] shuts down due to lack of power!", \
"You hear heavy droning fade out")
icon_state = "Shield_Gen"
src.active = 0
@@ -494,11 +494,11 @@
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
else
- user << "\red Access denied."
+ user << "Access denied."
else
src.add_fingerprint(user)
- visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!")
+ visible_message("The [src.name] has been hit with the [W.name] by [user.name]!")
/obj/machinery/shieldwallgen/proc/cleanup(var/NSEW)
var/obj/machinery/shieldwall/F
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index aecfa216506..87eea6c6b6d 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -241,7 +241,7 @@
/obj/machinery/suit_storage_unit/Topic(href, href_list) //I fucking HATE this proc
if(..())
return 1
- else
+ else
usr.set_machine(src)
if (href_list["toggleUV"])
src.toggleUV(usr)
@@ -530,7 +530,7 @@
set category = "Object"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
src.eject_occupant(usr)
add_fingerprint(usr)
@@ -544,7 +544,7 @@
set category = "Object"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
if (!src.isopen)
usr << "The unit's doors are shut."
@@ -631,7 +631,7 @@
user << "The unit already contains a suit."
return
user << "You load the [S.name] into the storage compartment."
- user.drop_item(src)
+ user.drop_item(S, src)
src.SUIT = S
src.update_icon()
src.updateUsrDialog()
@@ -644,7 +644,7 @@
user << "The unit already contains a helmet."
return
user << "You load the [H.name] into the storage compartment."
- user.drop_item(src)
+ user.drop_item(H, src)
src.HELMET = H
src.update_icon()
src.updateUsrDialog()
@@ -657,7 +657,7 @@
user << "The unit already contains a mask."
return
user << "You load the [M.name] into the storage compartment."
- user.drop_item(src)
+ user.drop_item(M, src)
src.MASK = M
src.update_icon()
src.updateUsrDialog()
@@ -670,7 +670,7 @@
user << "The unit already contains shoes."
return
user << "You load \the [M.name] into the storage compartment."
- user.drop_item(src)
+ user.drop_item(M, src)
src.BOOTS = M
src.update_icon()
src.updateUsrDialog()
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index b33685a12b2..fd54a913d96 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -124,14 +124,14 @@
proc/Activate(mob/user = null)
if(!checkWirePower())
- if(user) user << "\blue The connected wire doesn't have enough current."
+ if(user) user << "The connected wire doesn't have enough current."
return
for(var/obj/machinery/singularity/singulo in world)
if(singulo.z == z)
singulo.target = src
icon_state = "[icontype]1"
active = 1
- if(user) user << "\blue You activate the beacon."
+ if(user) user << "You activate the beacon."
proc/Deactivate(mob/user = null)
@@ -140,7 +140,7 @@
singulo.target = null
icon_state = "[icontype]0"
active = 0
- if(user) user << "\blue You deactivate the beacon."
+ if(user) user << "You deactivate the beacon."
attack_ai(mob/user as mob)
@@ -151,20 +151,20 @@
if(stat & SCREWED)
return active ? Deactivate(user) : Activate(user)
else
- user << "\red You need to screw the beacon to the floor first!"
+ user << "You need to screw the beacon to the floor first!"
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/screwdriver))
if(active)
- user << "\red You need to deactivate the beacon first!"
+ user << "You need to deactivate the beacon first!"
return
if(stat & SCREWED)
stat &= ~SCREWED
anchored = 0
- user << "\blue You unscrew the beacon from the floor."
+ user << "You unscrew the beacon from the floor."
attached = null
return
else
@@ -176,7 +176,7 @@
return
stat |= SCREWED
anchored = 1
- user << "\blue You screw the beacon to the floor and attach the cable."
+ user << "You screw the beacon to the floor and attach the cable."
return
..()
return
diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm
index c9fd3765655..8c9c8fe025c 100644
--- a/code/game/machinery/telecomms/logbrowser.dm
+++ b/code/game/machinery/telecomms/logbrowser.dm
@@ -212,7 +212,7 @@
if(href_list["delete"])
if(!src.allowed(usr) && !emagged)
- usr << "\red ACCESS DENIED."
+ usr << "ACCESS DENIED."
return
if(SelectedServer)
@@ -252,5 +252,5 @@
if(!emagged)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
- user << "\blue You you disable the security protocols"
+ user << "You you disable the security protocols"
return 1
\ No newline at end of file
diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm
index 96c175522bd..3a1babbb7df 100644
--- a/code/game/machinery/telecomms/machine_interactions.dm
+++ b/code/game/machinery/telecomms/machine_interactions.dm
@@ -52,7 +52,7 @@
user << "You insert the cables."
A.amount -= 5
if(A.amount <= 0)
- user.drop_item()
+ user.drop_item(A)
returnToPool(A)
construct_op --
stat &= ~BROKEN // the machine's not borked anymore!
diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm
index 888f41933a0..f8887efa675 100644
--- a/code/game/machinery/telecomms/telemonitor.dm
+++ b/code/game/machinery/telecomms/telemonitor.dm
@@ -147,6 +147,6 @@
if(!emagged)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
- user << "\blue You you disable the security protocols"
+ user << "You you disable the security protocols"
return 1
return
diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm
index de205ceb420..5641a9f2f5f 100644
--- a/code/game/machinery/telecomms/traffic_control.dm
+++ b/code/game/machinery/telecomms/traffic_control.dm
@@ -185,7 +185,7 @@
var/obj/item/weapon/card/id/I = C.get_active_hand()
if(istype(I))
if(check_access(I))
- C.drop_item(src)
+ C.drop_item(I, src)
auth = I
create_log("has logged in.", usr)
else
@@ -201,7 +201,7 @@
return
if(!auth && !issilicon(usr) && !emagged)
- usr << "\red ACCESS DENIED."
+ usr << "ACCESS DENIED."
return
if(href_list["viewserver"])
@@ -291,7 +291,7 @@
if(!emagged)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
- user << "\blue You you disable the security protocols"
+ user << "You you disable the security protocols"
src.updateUsrDialog()
return 1
/obj/machinery/computer/telecomms/traffic/proc/canAccess(var/mob/user)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index c1a4110ab3b..d2718e59385 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -39,14 +39,14 @@
if(istype(L, /obj/effect/landmark/) && istype(L.loc, /turf))
usr << "You insert the coordinates into the machine."
usr << "A message flashes across the screen reminding the traveller that the nuclear authentication disk is to remain on the station at all times."
- user.drop_item()
+ user.drop_item(I)
qdel(I)
/* FUCK YOU
if(C.data == "Clown Land")
//whoops
for(var/mob/O in hearers(src, null))
- O.show_message("\red Incoming bluespace portal detected, unable to lock in.", 2)
+ O.show_message("Incoming bluespace portal detected, unable to lock in.", 2)
for(var/obj/machinery/teleport/hub/H in range(1))
var/amount = rand(2,5)
@@ -56,7 +56,7 @@
else
*/
for(var/mob/O in hearers(src, null))
- O.show_message("\blue Locked In", 2)
+ O.show_message("Locked In", 2)
src.locked = L
one_time_use = 1
@@ -110,7 +110,7 @@
var/desc = input("Please select a location to lock in.", "Locking Computer") in L
src.locked = L[desc]
for(var/mob/O in hearers(src, null))
- O.show_message("\blue Locked In", 2)
+ O.show_message("Locked In", 2)
src.add_fingerprint(usr)
return
@@ -126,14 +126,6 @@
src.id = t
return
-/proc/find_loc(obj/R as obj)
- if (!R) return null
- var/turf/T = R.loc
- while(!istype(T, /turf))
- T = T.loc
- if(!T || istype(T, /area)) return null
- return T
-
/obj/machinery/teleport
name = "teleport"
icon = 'icons/obj/stationobjs.dmi'
@@ -202,7 +194,7 @@
return
if (!com.locked)
for(var/mob/O in hearers(src, null))
- O.show_message("\red Failure: Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.")
+ O.show_message("Failure: Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.")
return
if (istype(M, /atom/movable))
if(prob(5) && !accurate) //oh dear a problem, put em in deep space
@@ -218,7 +210,7 @@
s.set_up(5, 1, src)
s.start()
for(var/mob/B in hearers(src, null))
- B.show_message("\blue Test fire completed.")
+ B.show_message("Test fire completed.")
return
/*
/proc/do_teleport(atom/movable/M as mob|obj, atom/destination, precision)
@@ -227,12 +219,12 @@
return
if (istype(M, /obj/item/weapon/disk/nuclear)) // Don't let nuke disks get teleported --NeoFite
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red The [] bounces off of the portal!", M.name), 1)
+ O.show_message(text("The [] bounces off of the portal!", M.name), 1)
return
if (istype(M, /mob/living))
var/mob/living/MM = M
if(MM.check_contents_for(/obj/item/weapon/disk/nuclear))
- MM << "\red Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through."
+ MM << "Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through."
return
var/disky = 0
for (var/atom/O in M.contents) //I'm pretty sure this accounts for the maximum amount of container in container stacking. --NeoFite
@@ -252,14 +244,14 @@
disky = 1
if (disky)
for(var/mob/P in viewers(M, null))
- P.show_message(text("\red The [] bounces off of the portal!", M.name), 1)
+ P.show_message(text("The [] bounces off of the portal!", M.name), 1)
return
//Bags of Holding cause bluespace teleportation to go funky. --NeoFite
if (istype(M, /mob/living))
var/mob/living/MM = M
if(MM.check_contents_for(/obj/item/weapon/storage/backpack/holding))
- MM << "\red The Bluespace interface on your Bag of Holding interferes with the teleport!"
+ MM << "The Bluespace interface on your Bag of Holding interferes with the teleport!"
precision = rand(1,100)
if (istype(M, /obj/item/weapon/storage/backpack/holding))
precision = rand(1,100)
@@ -373,7 +365,7 @@ obj/machinery/teleport/station/New()
H.icon_state = "tele1"
use_power(5000)
for(var/mob/O in hearers(src, null))
- O.show_message("\blue Teleporter engaged!", 2)
+ O.show_message("Teleporter engaged!", 2)
src.add_fingerprint(usr)
src.engaged = 1
return
@@ -389,7 +381,7 @@ obj/machinery/teleport/station/New()
H.engaged = 0
H.icon_state = "tele0"
for(var/mob/O in hearers(src, null))
- O.show_message("\blue Teleporter disengaged!", 2)
+ O.show_message("Teleporter disengaged!", 2)
src.add_fingerprint(usr)
src.engaged = 0
return
@@ -407,7 +399,7 @@ obj/machinery/teleport/station/New()
if (com && !active)
active = 1
for(var/mob/O in hearers(src, null))
- O.show_message("\blue Test firing!", 2)
+ O.show_message("Test firing!", 2)
com.teleport()
use_power(5000)
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 1a65376d103..4e6355b03dc 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -144,7 +144,7 @@
/obj/machinery/transformer/Topic(href, href_list)
if(!isAI(usr))
- usr << "\red This machine is way above your pay-grade."
+ usr << "This machine is way above your pay-grade."
return 0
if(!("act" in href_list))
return 0
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 13e9fb5a94f..2cd0a46c058 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -367,7 +367,7 @@
/obj/machinery/turretid/emag(mob/user)
if(!emagged)
- user << "\red You short out the turret controls' access analysis module."
+ user << "You short out the turret controls' access analysis module."
emagged = 1
locked = 0
if(user.machine==src)
@@ -438,14 +438,14 @@
/obj/machinery/turret/attack_animal(mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0) return
if(!(stat & BROKEN))
- visible_message("\red [M] [M.attacktext] [src]!")
+ visible_message("[M] [M.attacktext] [src]!")
M.attack_log += text("\[[time_stamp()]\] attacked [src.name]")
//src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])")
src.health -= M.melee_damage_upper
if (src.health <= 0)
src.die()
else
- M << "\red That object is useless to you."
+ M << "That object is useless to you."
return
@@ -454,12 +454,12 @@
/obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if(!(stat & BROKEN))
playsound(get_turf(src), 'sound/weapons/slash.ogg', 25, 1, -1)
- visible_message("\red [] has slashed at []!", M, src)
+ visible_message("[] has slashed at []!", M, src)
src.health -= 15
if (src.health <= 0)
src.die()
else
- M << "\green That object is useless to you."
+ M << "That object is useless to you."
return
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index c802d624cac..bf60649313b 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -306,7 +306,7 @@
return
else if(istype(W, /obj/item/weapon/coin) && premium.len > 0)
if (isnull(coin))
- user.drop_item(src)
+ user.drop_item(W, src)
coin = W
user << "You insert a coin into [src]."
else
@@ -315,7 +315,7 @@
return
else if(istype(W, /obj/item/voucher))
if(can_accept_voucher(W, user))
- user.drop_item(src)
+ user.drop_item(W, src)
user << "You insert [W] into [src]."
return voucher_act(W, user)
else
@@ -516,10 +516,10 @@
if(istype(usr,/mob/living/silicon/robot))
var/mob/living/silicon/robot/R = usr
if(!(R.module && istype(R.module,/obj/item/weapon/robot_module/butler) ) && !isMoMMI(R))
- usr << "\red The vending machine refuses to interface with you, as you are not in its target demographic!"
+ usr << "The vending machine refuses to interface with you, as you are not in its target demographic!"
return
else
- usr << "\red The vending machine refuses to interface with you, as you are not in its target demographic!"
+ usr << "The vending machine refuses to interface with you, as you are not in its target demographic!"
return
if(href_list["remove_coin"])
@@ -530,7 +530,7 @@
coin.loc = get_turf(src)
if(!usr.get_active_hand())
usr.put_in_hands(coin)
- usr << "\blue You remove the [coin] from the [src]"
+ usr << "You remove the [coin] from the [src]"
coin = null
usr.set_machine(src)
@@ -539,7 +539,7 @@
//testing("vend: [href]")
if (!allowed(usr) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH
- usr << "\red Access denied." //Unless emagged of course
+ usr << "Access denied." //Unless emagged of course
flick(src.icon_deny,src)
return
@@ -596,7 +596,7 @@
/obj/machinery/vending/proc/vend(datum/data/vending_product/R, mob/user, by_voucher = 0)
if (!allowed(user) && !emagged && wires.IsIndexCut(VENDING_WIRE_IDSCAN)) //For SECURE VENDING MACHINES YEAH
- user << "\red Access denied." //Unless emagged of course
+ user << "Access denied." //Unless emagged of course
flick(src.icon_deny,src)
return
src.vend_ready = 0 //One thing at a time!!
@@ -719,7 +719,7 @@
return 0
spawn(0)
throw_item.throw_at(target, 16, 3)
- src.visible_message("\red [src] launches [throw_item.name] at [target.name]!")
+ src.visible_message("[src] launches [throw_item.name] at [target.name]!")
return 1
/obj/machinery/vending/update_icon()
@@ -1020,7 +1020,7 @@
usr << "You begin to insert \the [C] into \the [src]."
if(do_after(user, 10))
usr << "You secure \the [C]!"
- user.drop_item(src)
+ user.drop_item(C, src)
_circuitboard=C
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
build++
@@ -1225,7 +1225,7 @@
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access_txt = "11" //Engineering Equipment access
- products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/circuitboard/airlock = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/circuitboard/air_alarm = 10,/obj/item/weapon/intercom_electronics = 10,/obj/item/weapon/cell/high = 10)
+ products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/circuitboard/airlock = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/circuitboard/air_alarm = 10,/obj/item/weapon/intercom_electronics = 10,/obj/item/weapon/cell/high = 10, /obj/item/mounted/frame/newscaster = 10)
contraband = list(/obj/item/weapon/cell/potato = 3)
premium = list(/obj/item/weapon/storage/belt/utility = 3)
@@ -1289,9 +1289,12 @@
/obj/item/clothing/suit/wizrobe/fake = 3,/obj/item/clothing/head/wizard/fake = 3,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 3,
/obj/item/clothing/under/sexyclown = 3,/obj/item/clothing/mask/gas/sexymime = 3,/obj/item/clothing/under/sexymime = 3,/obj/item/clothing/suit/apron/overalls = 3,
/obj/item/clothing/head/rabbitears = 3,/obj/item/clothing/head/lordadmiralhat = 3,/obj/item/clothing/suit/lordadmiral = 3,/obj/item/clothing/suit/doshjacket = 3,/obj/item/clothing/under/jester = 3, /obj/item/clothing/head/jesterhat = 3,/obj/item/clothing/shoes/jestershoes = 3, /obj/item/clothing/suit/kefkarobe = 3,
- /obj/item/clothing/head/helmet/aviatorhelmet = 3,/obj/item/clothing/shoes/aviatorboots = 3, /obj/item/clothing/under/aviatoruniform = 3,/obj/item/clothing/head/libertyhat = 3,/obj/item/clothing/suit/libertycoat = 3, /obj/item/clothing/under/libertyshirt = 3, /obj/item/clothing/shoes/libertyshoes = 3) //Pretty much everything that had a chance to spawn.
+ /obj/item/clothing/head/helmet/aviatorhelmet = 3,/obj/item/clothing/shoes/aviatorboots = 3, /obj/item/clothing/under/aviatoruniform = 3,/obj/item/clothing/head/libertyhat = 3,/obj/item/clothing/suit/libertycoat = 3, /obj/item/clothing/under/libertyshirt = 3, /obj/item/clothing/shoes/libertyshoes = 3,
+ /obj/item/clothing/head/helmet/megahelmet = 3, /obj/item/clothing/under/mega = 3, /obj/item/clothing/gloves/megagloves = 3, /obj/item/clothing/shoes/megaboots =3, /obj/item/clothing/head/helmet/protohelmet = 3, /obj/item/clothing/under/proto =3, /obj/item/clothing/gloves/protogloves =3, /obj/item/clothing/shoes/protoboots =3,
+ /obj/item/clothing/under/roll = 3, /obj/item/clothing/head/maidhat =3, /obj/item/clothing/under/maid = 3, /obj/item/clothing/suit/maidapron = 3) //Pretty much everything that had a chance to spawn.
contraband = list(/obj/item/clothing/suit/cardborg = 3,/obj/item/clothing/head/cardborg = 3,/obj/item/clothing/suit/judgerobe = 3,/obj/item/clothing/head/powdered_wig = 3)
- premium = list(/obj/item/clothing/suit/hgpirate = 3, /obj/item/clothing/head/hgpiratecap = 3, /obj/item/clothing/head/helmet/roman = 3, /obj/item/clothing/head/helmet/roman/legionaire = 3, /obj/item/clothing/under/roman = 3, /obj/item/clothing/shoes/roman = 3, /obj/item/weapon/shield/riot/roman = 3,/obj/item/clothing/under/stilsuit = 3)
+ premium = list(/obj/item/clothing/suit/hgpirate = 3, /obj/item/clothing/head/hgpiratecap = 3, /obj/item/clothing/head/helmet/roman = 3, /obj/item/clothing/head/helmet/roman/legionaire = 3, /obj/item/clothing/under/roman = 3, /obj/item/clothing/shoes/roman = 3, /obj/item/weapon/shield/riot/roman = 3,/obj/item/clothing/under/stilsuit = 3,
+ /obj/item/clothing/head/helmet/breakhelmet = 3, /obj/item/clothing/head/helmet/joehelmet = 3, /obj/item/clothing/under/joe = 3, /obj/item/clothing/gloves/joegloves = 3, /obj/item/clothing/shoes/joeboots =3, /obj/item/weapon/shield/riot/proto = 3, /obj/item/weapon/shield/riot/joe = 3, /obj/item/clothing/under/darkholme = 3)
pack = /obj/structure/vendomatpack/autodrobe
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index b80ec2da282..e61c59d80bd 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -216,7 +216,7 @@
else if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/weapon/stamp))
if( wash_state in list( 1, 3, 6 ) )
if(!crayon)
- user.drop_item(src)
+ user.drop_item(W, src)
crayon = W
else if(istype(W,/obj/item/weapon/grab))
if( (wash_state == 1) && hacked)
@@ -275,12 +275,12 @@
if(contents.len < 5)
if ( wash_state in list(1, 3) )
- user.drop_item(src)
+ user.drop_item(W, src)
wash_state = 3
else
- user << "\blue You can't put the item in right now."
+ user << "You can't put the item in right now."
else
- user << "\blue The washing machine is full."
+ user << "The washing machine is full."
update_icon()
/obj/machinery/washing_machine/attack_hand(mob/user as mob)
@@ -300,7 +300,7 @@
crayon = null
wash_state = 1
if(5)
- user << "\red The [src] is busy."
+ user << "The [src] is busy."
if(6)
wash_state = 7
if(7)
diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index 6e1d3a0ac9b..1f648f0b39b 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -99,7 +99,7 @@
target:attackby(src,src.occupant)
else if(prob(5))
target:dismantle_wall(1)
- src.occupant_message("\blue You smash through the wall.")
+ src.occupant_message("You smash through the wall.")
src.visible_message("[src.name] smashes through the wall")
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
melee_can_hit = 0
diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm
index 4e1ee55f102..f34ec0cd57f 100644
--- a/code/game/mecha/equipment/tools/tools.dm
+++ b/code/game/mecha/equipment/tools/tools.dm
@@ -57,8 +57,8 @@
M.take_overall_damage(dam_force)
M.adjustOxyLoss(round(dam_force/2))
M.updatehealth()
- occupant_message("\red You squeeze [target] with [src.name]. Something cracks.")
- chassis.visible_message("\red [chassis] squeezes [target].")
+ occupant_message("You squeeze [target] with [src.name]. Something cracks.")
+ chassis.visible_message("[chassis] squeezes [target].")
M.attack_log +="\[[time_stamp()]\] Mech Squeezed by [chassis.occupant.name] ([chassis.occupant.ckey]) with [src.name]"
chassis.occupant.attack_log += "\[[time_stamp()]\] Mech Squeezed [M.name] ([M.ckey]) with [src.name]"
log_attack("[chassis.occupant.name] ([chassis.occupant.ckey]) mech squeezed [M.name] ([M.ckey]) with [src.name]" )
@@ -222,7 +222,7 @@
if(istype(target, /obj/structure/reagent_dispensers/watertank) && get_dist(chassis,target) <= 1)
var/obj/o = target
o.reagents.trans_to(src, 200)
- occupant_message("\blue Extinguisher refilled")
+ occupant_message("Extinguisher refilled")
playsound(chassis, 'sound/effects/refill.ogg', 50, 1, -6)
else
if(src.reagents.total_volume > 0)
@@ -561,7 +561,7 @@
return chassis.dynattackby(W,user)
chassis.log_message("Attacked by [W]. Attacker - [user]")
if(prob(chassis.deflect_chance*deflect_coeff))
- user << "\red The [W] bounces off [chassis] armor."
+ user << "The [W] bounces off [chassis] armor."
chassis.log_append_to_last("Armor saved.")
else
chassis.occupant_message("[user] hits [chassis] with [W].")
@@ -612,7 +612,7 @@
if(!action_checks(src))
return chassis.dynbulletdamage(Proj)
if(prob(chassis.deflect_chance*deflect_coeff))
- chassis.occupant_message("\blue The armor deflects incoming projectile.")
+ chassis.occupant_message("The armor deflects incoming projectile.")
chassis.visible_message("The [chassis.name] armor deflects the projectile")
chassis.log_append_to_last("Armor saved.")
else
@@ -628,7 +628,7 @@
if(!action_checks(A))
return chassis.dynhitby(A)
if(prob(chassis.deflect_chance*deflect_coeff) || istype(A, /mob/living) || istype(A, /obj/item/mecha_parts/mecha_tracking))
- chassis.occupant_message("\blue The [A] bounces off the armor.")
+ chassis.occupant_message("The [A] bounces off the armor.")
chassis.visible_message("The [A] bounces off the [chassis] armor")
chassis.log_append_to_last("Armor saved.")
if(istype(A, /mob/living))
@@ -1071,11 +1071,11 @@
var/mob/living/M = target
if(M.stat>1) return
if(chassis.occupant.a_intent == I_HURT)
- chassis.occupant_message("\red You obliterate [target] with [src.name], leaving blood and guts everywhere.")
- chassis.visible_message("\red [chassis] destroys [target] in an unholy fury.")
+ chassis.occupant_message("You obliterate [target] with [src.name], leaving blood and guts everywhere.")
+ chassis.visible_message("[chassis] destroys [target] in an unholy fury.")
if(chassis.occupant.a_intent == I_DISARM)
- chassis.occupant_message("\red You tear [target]'s limbs off with [src.name].")
- chassis.visible_message("\red [chassis] rips [target]'s arms off.")
+ chassis.occupant_message("You tear [target]'s limbs off with [src.name].")
+ chassis.visible_message("[chassis] rips [target]'s arms off.")
else
step_away(M,chassis)
chassis.occupant_message("You smash into [target], sending them flying.")
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index f0480a8886a..bcace16b3f4 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -443,7 +443,7 @@
else
src.log_append_to_last("Armor saved.")
playsound(get_turf(src), 'sound/weapons/slash.ogg', 50, 1, -1)
- user << "\green Your claws had no effect!"
+ user << "Your claws had no effect!"
src.occupant_message("The [user]'s claws are stopped by the armor.")
visible_message("The [user] rebounds off [src.name]'s armor!")
return
@@ -591,18 +591,18 @@
src.take_damage(6)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
playsound(get_turf(src), 'sound/effects/blobattack.ogg', 50, 1, -1)
- user << "\red You smash at the armored suit!"
+ user << "You smash at the armored suit!"
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
- V.show_message("\red The [user] smashes against [src.name]'s armor!", 1)
+ V.show_message("The [user] smashes against [src.name]'s armor!", 1)
else
src.log_append_to_last("Armor saved.")
playsound(get_turf(src), 'sound/effects/blobattack.ogg', 50, 1, -1)
- user << "\green Your attack had no effect!"
- src.occupant_message("\blue The [user]'s attack is stopped by the armor.")
+ user << "Your attack had no effect!"
+ src.occupant_message("The [user]'s attack is stopped by the armor.")
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
- V.show_message("\blue The [user] rebounds off the [src.name] armor!", 1)
+ V.show_message("The [user] rebounds off the [src.name] armor!", 1)
return
*/
@@ -665,7 +665,7 @@
var/obj/item/mecha_parts/mecha_equipment/E = W
spawn()
if(E.can_attach(src))
- user.drop_item()
+ user.drop_item(W)
E.attach(src)
user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]")
else
@@ -731,7 +731,7 @@
if(state==4)
if(!src.cell)
user << "You install the powercell"
- user.drop_item(src)
+ user.drop_item(W, src)
src.cell = W
src.log_message("Powercell installed")
else
@@ -764,7 +764,7 @@
/*
src.log_message("Attacked by [W]. Attacker - [user]")
if(prob(src.deflect_chance))
- user << "\red The [W] bounces off [src.name] armor."
+ user << "The [W] bounces off [src.name] armor."
src.log_append_to_last("Armor saved.")
/*
for (var/mob/V in viewers(src))
@@ -950,7 +950,7 @@
set name = "Enter Exosuit"
set src in oview(1)
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting || (usr.status_flags & FAKEDEATH)) //are you cuffed, dying, lying, stunned or other
return
if (usr.stat || !ishuman(usr))
return
@@ -961,7 +961,7 @@
return
/*
if (usr.abiotic())
- usr << "\blue Subject cannot have abiotic items on."
+ usr << "Subject cannot have abiotic items on."
return
*/
var/passed
@@ -1442,7 +1442,7 @@
return
if(href_list["close"])
return
- if(usr.stat > 0)
+ if(usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
if(href_list["select_equip"])
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index c4d03a2b9a1..d347c040b34 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -47,7 +47,7 @@
else
user << "You failed to salvage anything valuable from [src]."
else
- user << "\blue You need more welding fuel to complete this task."
+ user << "You need more welding fuel to complete this task."
return
if(istype(W, /obj/item/weapon/wirecutters))
if(salvage_num <= 0)
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index 1b7fb3de9b8..df8bffe5c6a 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -71,7 +71,7 @@
if(href_list["drop_from_cargo"])
var/obj/O = locate(href_list["drop_from_cargo"])
if(O && O in src.cargo)
- src.occupant_message("\blue You unload [O].")
+ src.occupant_message("You unload [O].")
O.loc = get_turf(src)
src.cargo -= O
var/turf/T = get_turf(O)
diff --git a/code/game/objects/closets/walllocker.dm b/code/game/objects/closets/walllocker.dm
index 058e8c0237e..b64f7a8eebe 100644
--- a/code/game/objects/closets/walllocker.dm
+++ b/code/game/objects/closets/walllocker.dm
@@ -94,7 +94,7 @@
usr << "You put \the [G] in \the [src]."
defib = G
update_icon()
- user.drop_item(src)
+ user.drop_item(G, src)
return
return
diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm
index db53d8152cb..c58488e53e6 100644
--- a/code/game/objects/effects/aliens.dm
+++ b/code/game/objects/effects/aliens.dm
@@ -94,7 +94,7 @@
/obj/effect/alien/resin/hitby(AM as mob|obj)
..()
for(var/mob/O in viewers(src, null))
- O.show_message("\red [src] was hit by [AM].", 1)
+ O.show_message("[src] was hit by [AM].", 1)
var/tforce = 0
if(ismob(AM))
tforce = 10
@@ -109,14 +109,14 @@
/obj/effect/alien/resin/attack_hand()
usr.delayNextAttack(10)
if (M_HULK in usr.mutations)
- usr << "\blue You easily destroy the [name]."
+ usr << "You easily destroy the [name]."
for(var/mob/O in oviewers(src))
- O.show_message("\red [usr] destroys the [name]!", 1)
+ O.show_message("[usr] destroys the [name]!", 1)
health = 0
else
- usr << "\blue You claw at the [name]."
+ usr << "You claw at the [name]."
for(var/mob/O in oviewers(src))
- O.show_message("\red [usr] claws at the [name]!", 1)
+ O.show_message("[usr] claws at the [name]!", 1)
health -= rand(5,10)
healthcheck()
return
@@ -127,15 +127,15 @@
/obj/effect/alien/resin/attack_alien()
if (islarva(usr))//Safety check for larva. /N
return
- usr << "\green You claw at the [name]."
+ usr << "You claw at the [name]."
for(var/mob/O in oviewers(src))
- O.show_message("\red [usr] claws at the resin!", 1)
+ O.show_message("[usr] claws at the resin!", 1)
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
health -= rand(40, 60)
if(health <= 0)
- usr << "\green You slice the [name] to pieces."
+ usr << "You slice the [name] to pieces."
for(var/mob/O in oviewers(src))
- O.show_message("\red [usr] slices the [name] apart!", 1)
+ O.show_message("[usr] slices the [name] apart!", 1)
healthcheck()
return
@@ -146,19 +146,19 @@
//Only aliens can stick humans and monkeys into resin walls. Also, the wall must not have a person inside already.
if(!affecting)
if(G.state<2)
- user << "\red You need a better grip to do that!"
+ user << "You need a better grip to do that!"
return
G.affecting.loc = src
G.affecting.paralysis = 10
for(var/mob/O in viewers(world.view, src))
if (O.client)
- O << text("\green [] places [] in the resin wall!", G.assailant, G.affecting)
+ O << text("[] places [] in the resin wall!", G.assailant, G.affecting)
affecting=G.affecting
del(W)
spawn(0)
process()
else
- user << "\red This wall is already occupied."
+ user << "This wall is already occupied."
return */
user.delayNextAttack(10)
var/aforce = W.force
@@ -288,9 +288,9 @@ Alien plants should do something if theres a lot of poison
/obj/effect/alien/weeds/attackby(var/obj/item/weapon/W, var/mob/user)
user.delayNextAttack(10)
if(W.attack_verb && W.attack_verb.len)
- visible_message("\red \The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
+ visible_message("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
else
- visible_message("\red \The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]")
+ visible_message("\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = W.force / 4.0
@@ -361,7 +361,7 @@ Alien plants should do something if theres a lot of poison
if(ticks >= target_strength)
for(var/mob/O in hearers(src, null))
- O.show_message("\green [src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1)
+ O.show_message("[src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1)
if(istype(target, /turf/simulated/wall)) // I hate turf code.
var/turf/simulated/wall/W = target
@@ -373,13 +373,13 @@ Alien plants should do something if theres a lot of poison
switch(target_strength - ticks)
if(6)
- visible_message("\green [src.target] is holding up against the acid!")
+ visible_message("[src.target] is holding up against the acid!")
if(4)
- visible_message("\green [src.target]\s structure is being melted by the acid!")
+ visible_message("[src.target]\s structure is being melted by the acid!")
if(2)
- visible_message("\green [src.target] is struggling to withstand the acid!")
+ visible_message("[src.target] is struggling to withstand the acid!")
if(0 to 1)
- visible_message("\green [src.target] begins to crumble under the acid!")
+ visible_message("[src.target] begins to crumble under the acid!")
spawn(rand(150, 200)) tick()
/*
@@ -416,14 +416,14 @@ Alien plants should do something if theres a lot of poison
if(isalien(user))
switch(status)
if(BURST)
- user << "\red You clear the hatched egg."
+ user << "You clear the hatched egg."
qdel(src)
return
if(GROWING)
- user << "\red The child is not developed yet."
+ user << "The child is not developed yet."
return
if(GROWN)
- user << "\red You retrieve the child."
+ user << "You retrieve the child."
Burst(0)
return
else
@@ -451,7 +451,7 @@ Alien plants should do something if theres a lot of poison
spawn(15)
status = BURST
if(!child)
- src.visible_message("\red The egg bursts apart revealing nothing")
+ src.visible_message("The egg bursts apart revealing nothing")
status = "GROWN"
new /obj/effect/decal/cleanable/blood/xeno(src)
var/obj/effect/decal/cleanable/blood/xeno/O = getFromPool(/obj/effect/decal/cleanable/blood/xeno, src)
@@ -478,9 +478,9 @@ Alien plants should do something if theres a lot of poison
return
user.delayNextAttack(10)
if(W.attack_verb && W.attack_verb.len)
- src.visible_message("\red \The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
+ src.visible_message("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
else
- src.visible_message("\red \The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]")
+ src.visible_message("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = W.force / 4.0
if(istype(W, /obj/item/weapon/weldingtool))
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index 08b1ba92da3..ff445be4ba8 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -814,7 +814,7 @@ steam.start() -- spawns the effect
return
M.stop_pulling()
- M << "\blue You slipped on the foam!"
+ M << "You slipped on the foam!"
playsound(get_turf(src), 'sound/misc/slip.ogg', 50, 1, -3)
M.Stun(5)
M.Weaken(2)
@@ -904,13 +904,13 @@ steam.start() -- spawns the effect
attack_hand(var/mob/user)
user.delayNextAttack(10)
if ((M_HULK in user.mutations) || (prob(75 - metal*25)))
- user << "\blue You smash through the metal foam wall."
+ user << "You smash through the metal foam wall."
for(var/mob/O in oviewers(user))
if ((O.client && !( O.blinded )))
- O << "\red [user] smashes through the foamed metal."
+ O << "[user] smashes through the foamed metal."
del(src)
else
- user << "\blue You hit the metal foam but bounce off it."
+ user << "You hit the metal foam but bounce off it."
return
@@ -921,19 +921,19 @@ steam.start() -- spawns the effect
G.affecting.loc = src.loc
for(var/mob/O in viewers(src))
if (O.client)
- O << "\red [G.assailant] smashes [G.affecting] through the foamed metal wall."
+ O << "[G.assailant] smashes [G.affecting] through the foamed metal wall."
del(I)
del(src)
return
if(prob(I.force*20 - metal*25))
- user << "\blue You smash through the foamed metal with \the [I]."
+ user << "You smash through the foamed metal with \the [I]."
for(var/mob/O in oviewers(user))
if ((O.client && !( O.blinded )))
- O << "\red [user] smashes through the foamed metal."
+ O << "[user] smashes through the foamed metal."
del(src)
else
- user << "\blue You hit the metal foam to no effect."
+ user << "You hit the metal foam to no effect."
CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0)
if(air_group) return 0
@@ -983,10 +983,10 @@ steam.start() -- spawns the effect
s.start()
for(var/mob/M in viewers(5, location))
- M << "\red The solution violently explodes."
+ M << "The solution violently explodes."
for(var/mob/M in viewers(1, location))
if (prob (50 * amount))
- M << "\red The explosion knocks you down."
+ M << "The explosion knocks you down."
M.Weaken(rand(1,5))
return
else
@@ -1016,7 +1016,7 @@ steam.start() -- spawns the effect
*/
for(var/mob/M in viewers(8, location))
- M << "\red The solution violently explodes."
+ M << "The solution violently explodes."
explosion(location, devastation, heavy, light, flash)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 1cfb68fe722..13ff0da2b14 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -99,7 +99,7 @@
set category = "Object"
set src in oview(1)
- if(!istype(src.loc, /turf) || usr.stat || usr.restrained() )
+ if(!istype(src.loc, /turf) || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
var/turf/T = src.loc
@@ -686,7 +686,7 @@
//if((M_CLUMSY in user.mutations) && prob(50))
// M = user
/*
- M << "\red You stab yourself in the eye."
+ M << "You stab yourself in the eye."
M.sdisabilities |= BLIND
M.weakened += 4
M.adjustBruteLoss(10)
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index 7144b861ebd..a96b12070f9 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -104,20 +104,20 @@ move an amendment to the drawing.
if(!istype(res,/list))
switch(res)
if(ROOM_ERR_SPACE)
- usr << "\red The new area must be completely airtight!"
+ usr << "The new area must be completely airtight!"
return
if(ROOM_ERR_TOOLARGE)
- usr << "\red The new area too large!"
+ usr << "The new area too large!"
return
else
- usr << "\red Error! Please notify administration!"
+ usr << "Error! Please notify administration!"
return
var/list/turf/turfs = res
var/str = trim(stripped_input(usr,"New area name:","Blueprint Editing", "", MAX_NAME_LEN))
if(!str || !length(str)) //cancel
return
if(length(str) > 50)
- usr << "\red Name too long."
+ usr << "Name too long."
return
var/area/A = new
A.name = str
@@ -161,12 +161,12 @@ move an amendment to the drawing.
if(!str || !length(str) || str==prevname) //cancel
return
if(length(str) > 50)
- usr << "\red Text too long."
+ usr << "Text too long."
return
set_area_machinery_title(A,str,prevname)
for(var/area/RA in A.related)
RA.name = str
- usr << "\blue You set the area '[prevname]' title to '[str]'."
+ usr << "You set the area '[prevname]' title to '[str]'."
interact()
return
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 83d7e88ccf0..7c096980e2a 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -123,5 +123,5 @@
/obj/structure/closet/body_bag/cryobag/MouseDrop(over_object, src_location, over_location)
if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
if(!ishuman(usr)) return
- usr << "\red You can't fold that up anymore.."
+ usr << "You can't fold that up anymore.."
..()
\ No newline at end of file
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index ee73d537d8e..c6d6f35152e 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -84,7 +84,7 @@
if(uses)
uses--
if(!uses)
- user << "\red You used up your crayon!"
+ user << "You used up your crayon!"
del(src)
return
@@ -95,7 +95,7 @@
if(uses)
uses -= 5
if(uses <= 0)
- user << "\red You ate your crayon!"
+ user << "You ate your crayon!"
del(src)
else
..()
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index a112e25a67e..e9f3e94c8b6 100755
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -487,7 +487,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
set category = "AI Commands"
set name = "Send Message"
set src in usr
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't send PDA messages because you are dead!"
return
var/list/plist = available_pdas()
@@ -503,7 +503,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
set category = "AI Commands"
set name = "Toggle Sender/Receiver"
set src in usr
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't do that because you are dead!"
return
toff = !toff
@@ -514,7 +514,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
set category = "AI Commands"
set name = "Toggle Ringer"
set src in usr
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't do that because you are dead!"
return
silent=!silent
@@ -525,7 +525,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
set category = "AI Commands"
set name = "Show Message Log"
set src in usr
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't do that because you are dead!"
return
var/HTML = "AI PDA Message Log[tnote]"
@@ -656,7 +656,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
"
@@ -1246,7 +1246,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(!isnull(P))
if (!P.toff && cartridge:honk_charges > 0)
cartridge:honk_charges--
- U.show_message("\blue Virus sent!", 1)
+ U.show_message("Virus sent!", 1)
P.honkamt = (rand(15,20))
else
U << "PDA not found."
@@ -1259,7 +1259,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(!isnull(P))
if (!P.toff && cartridge:mime_charges > 0)
cartridge:mime_charges--
- U.show_message("\blue Virus sent!", 1)
+ U.show_message("Virus sent!", 1)
P.silent = 1
P.ttone = "silence"
else
@@ -1300,15 +1300,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
difficulty += 2
if(prob(difficulty * 12) || (P.hidden_uplink))
- U.show_message("\red An error flashes on your [src].", 1)
+ U.show_message("An error flashes on your [src].", 1)
else if (prob(difficulty * 3))
- U.show_message("\red Energy feeds back into your [src]!", 1)
+ U.show_message("Energy feeds back into your [src]!", 1)
U << browse(null, "window=pda")
explode()
log_admin("[key_name(U)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up")
message_admins("[key_name_admin(U)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up", 1)
else
- U.show_message("\blue Success!", 1)
+ U.show_message("Success!", 1)
log_admin("[key_name(U)] just attempted to blow up [P] with the Detomatix cartridge and succeded")
message_admins("[key_name_admin(U)] just attempted to blow up [P] with the Detomatix cartridge and succeded", 1)
P.explode()
@@ -1500,13 +1500,13 @@ var/global/list/obj/item/device/pda/PDAs = list()
else
var/obj/item/I = user.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
- user.drop_item(src)
+ user.drop_item(I, src)
id = I
else
var/obj/item/weapon/card/I = user.get_active_hand()
if (istype(I, /obj/item/weapon/card/id) && I:registered_name)
var/obj/old_id = id
- user.drop_item(src)
+ user.drop_item(I, src)
id = I
user.put_in_hands(old_id)
return
@@ -1516,7 +1516,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
..()
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
cartridge = C
- user.drop_item(src)
+ user.drop_item(C, src)
user << "You insert [cartridge] into [src]."
if(cartridge.radio)
cartridge.radio.hostpda = src
@@ -1541,7 +1541,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
return //Return in case of failed check or when successful.
updateSelfDialog()//For the non-input related code.
else if(istype(C, /obj/item/device/paicard) && !src.pai)
- user.drop_item(src)
+ user.drop_item(C, src)
pai = C
user << "You slot \the [C] into [src]."
updateUsrDialog()
@@ -1550,7 +1550,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(O)
user << "There is already a pen in \the [src]."
else
- user.drop_item(src)
+ user.drop_item(C, src)
user << "You slide \the [C] into \the [src]."
return
@@ -1563,31 +1563,31 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(2)
if (!istype(C:dna, /datum/dna))
- user << "\blue No fingerprints found on [C]"
+ user << "No fingerprints found on [C]"
else if(!istype(C, /mob/living/carbon/monkey))
if(!isnull(C:gloves))
- user << "\blue No fingerprints found on [C]"
+ user << "No fingerprints found on [C]"
else
- user << text("\blue [C]'s Fingerprints: [md5(C:dna.uni_identity)]")
+ user << text("[C]'s Fingerprints: [md5(C:dna.uni_identity)]")
if ( !(C:blood_DNA) )
- user << "\blue No blood found on [C]"
+ user << "No blood found on [C]"
if(C:blood_DNA)
del(C:blood_DNA)
else
- user << "\blue Blood found on [C]. Analysing..."
+ user << "Blood found on [C]. Analysing..."
spawn(15)
for(var/blood in C:blood_DNA)
- user << "\blue Blood type: [C:blood_DNA[blood]]\nDNA: [blood]"
+ user << "Blood type: [C:blood_DNA[blood]]\nDNA: [blood]"
if(4)
for (var/mob/O in viewers(C, null))
- O.show_message("\red [user] has analyzed [C]'s radiation levels!", 1)
+ O.show_message("[user] has analyzed [C]'s radiation levels!", 1)
- user.show_message("\blue Analyzing Results for [C]:")
+ user.show_message("Analyzing Results for [C]:")
if(C.radiation)
- user.show_message("\green Radiation Level: \black [C.radiation]")
+ user.show_message("Radiation Level: [C.radiation]")
else
- user.show_message("\blue No radiation detected.")
+ user.show_message("No radiation detected.")
/obj/item/device/pda/afterattack(atom/A as mob|obj|turf|area, mob/user as mob)
switch(scanmode)
@@ -1596,13 +1596,13 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(!isnull(A.reagents))
if(A.reagents.reagent_list.len > 0)
var/reagents_length = A.reagents.reagent_list.len
- user << "\blue [reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found."
+ user << "[reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found."
for (var/re in A.reagents.reagent_list)
- user << "\blue \t [re]"
+ user << "\t [re]"
else
- user << "\blue No active chemical agents found in [A]."
+ user << "No active chemical agents found in [A]."
else
- user << "\blue No significant chemical agents found in [A]."
+ user << "No significant chemical agents found in [A]."
if(5)
if(atmos_analys)
@@ -1612,7 +1612,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if (!scanmode && istype(A, /obj/item/weapon/paper) && owner)
note = A:info
- user << "\blue Paper scanned." //concept of scanning paper copyright brainoblivion 2009
+ user << "Paper scanned." //concept of scanning paper copyright brainoblivion 2009
/obj/item/device/pda/preattack(atom/A as mob|obj|turf|area, mob/user as mob)
if (scanmode == 6)
@@ -1626,7 +1626,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if (ismob(loc))
var/mob/M = loc
- M.show_message("\red Your [src] explodes!", 1)
+ M.show_message("Your [src] explodes!", 1)
if(T)
T.hotspot_expose(700,125,surfaces=istype(loc,/turf))
@@ -1664,7 +1664,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
src.cartridge:honk_charges++
M.stop_pulling()
- M << "\blue You slipped on the PDA!"
+ M << "You slipped on the PDA!"
playsound(get_turf(src), 'sound/misc/slip.ogg', 50, 1, -3)
M.Stun(8)
M.Weaken(5)
diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm
index 9adecf3776f..612bffc8e4d 100644
--- a/code/game/objects/items/devices/camera_bug.dm
+++ b/code/game/objects/items/devices/camera_bug.dm
@@ -31,7 +31,7 @@
user << "\The [I] is too small for \the [src]"
return 0
user << "You stealthily place \the [src] onto \the [A]"
- user.drop_item(A)
+ user.drop_item(src, A)
active = 1
camera_bugs += src
return 1
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 5df5a67b7dd..68623994b9f 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -31,7 +31,7 @@
set name = "Toggle Chameleon Projector Scanning"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
cham_proj_scan = !cham_proj_scan
diff --git a/code/game/objects/items/devices/debugger.dm b/code/game/objects/items/devices/debugger.dm
index 1a71c45b672..8d480a52852 100644
--- a/code/game/objects/items/devices/debugger.dm
+++ b/code/game/objects/items/devices/debugger.dm
@@ -28,21 +28,21 @@
if(istype(O, /obj/machinery/power/apc))
var/obj/machinery/power/apc/A = O
if(A.emagged || A.malfhack)
- user << "\red There is a software error with the device."
+ user << "There is a software error with the device."
else
- user << "\blue The device's software appears to be fine."
+ user << "The device's software appears to be fine."
return 1
if(istype(O, /obj/machinery/door))
var/obj/machinery/door/D = O
if(D.operating == -1)
- user << "\red There is a software error with the device."
+ user << "There is a software error with the device."
else
- user << "\blue The device's software appears to be fine."
+ user << "The device's software appears to be fine."
return 1
else if(istype(O, /obj/machinery))
var/obj/machinery/A = O
if(A.emagged)
- user << "\red There is a software error with the device."
+ user << "There is a software error with the device."
else
- user << "\blue The device's software appears to be fine."
+ user << "The device's software appears to be fine."
return 1
\ No newline at end of file
diff --git a/code/game/objects/items/devices/deskbell.dm b/code/game/objects/items/devices/deskbell.dm
index 62b86b10a91..5c408f8b6fd 100644
--- a/code/game/objects/items/devices/deskbell.dm
+++ b/code/game/objects/items/devices/deskbell.dm
@@ -320,7 +320,7 @@
code = 0
else
code = S.code
- user.drop_item()
+ user.drop_item(W)
del(W)
has_signaler = 1
update_icon()
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index a5029d4d23e..35e064a108c 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -19,7 +19,7 @@
/obj/item/device/flash/proc/clown_check(var/mob/user)
if(user && (M_CLUMSY in user.mutations) && prob(50))
- user << "\red \The [src] slips out of your hand."
+ user << "\The [src] slips out of your hand."
user.drop_item()
return 0
return 1
@@ -217,12 +217,12 @@
..()
if(!broken)
broken = 1
- user << "\red The bulb has burnt out!"
+ user << "The bulb has burnt out!"
icon_state = "flashburnt"
/obj/item/device/flash/synthetic/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
..()
if(!broken)
broken = 1
- user << "\red The bulb has burnt out!"
+ user << "The bulb has burnt out!"
icon_state = "flashburnt"
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 8b2cd1f5f0e..ec362b2f462 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -85,7 +85,7 @@
return
G.amount = remaining
if(!G.amount)
- user.drop_item()
+ user.drop_item(G)
del(G)
AddUses(increment)
user << "You insert a piece of glass into the [src.name]. You have [uses] lights remaining."
@@ -97,7 +97,7 @@
if(uses < max_uses)
AddUses(1)
user << "You insert the [L.name] into the [src.name]. You have [uses] lights remaining."
- user.drop_item()
+ user.drop_item(L)
del(L)
return
else
diff --git a/code/game/objects/items/devices/mat_synth.dm b/code/game/objects/items/devices/mat_synth.dm
index 30ccfbdf6e6..b3ca932c08c 100644
--- a/code/game/objects/items/devices/mat_synth.dm
+++ b/code/game/objects/items/devices/mat_synth.dm
@@ -111,8 +111,8 @@
if(initial(active_material.perunit) < 2000)
modifier = MAT_COST_RARE
var/tospawn = Clamp(round(input("How many sheets of [material_type] do you want to synthesize? (0 - [matter / modifier])") as num), 0, round(matter / modifier))
- if(tospawn)
- var/obj/item/stack/sheet/spawned_sheet = new active_material(get_turf(src))
+ if(tospawn && material_type)
+ var/obj/item/stack/sheet/spawned_sheet = new material_type(get_turf(src))
spawned_sheet.amount = tospawn
TakeCost(tospawn, modifier, user)
else if(matter)
diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index 55527705806..982e29d2eda 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -34,7 +34,7 @@
return
playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
var/N = new to_type(O.loc)
- user.visible_message("\red [user] opens \the [src] and modifies \the [O] into \the [N].","\red You open \the [src] and modify \the [O] into \the [N].")
+ user.visible_message("[user] opens \the [src] and modifies \the [O] into \the [N].","You open \the [src] and modify \the [O] into \the [N].")
del(O)
parts &= ~flag
if(!parts)
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index fd9a38ce2ef..1c347fba8f5 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -158,7 +158,7 @@
/obj/item/device/paicard/proc/alertUpdate()
var/turf/T = get_turf(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue [src] flashes a message across its screen, \"Additional personalities available for download.\"", 3, "\blue [src] bleeps electronically.", 2)
+ M.show_message("[src] flashes a message across its screen, \"Additional personalities available for download.\"", 3, "[src] bleeps electronically.", 2)
playsound(loc, 'sound/machines/paistartup.ogg', 50, 1)
/obj/item/device/paicard/emp_act(severity)
diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm
index c821f400365..1552cad1603 100644
--- a/code/game/objects/items/devices/radio/beacon.dm
+++ b/code/game/objects/items/devices/radio/beacon.dm
@@ -42,7 +42,7 @@
/obj/item/device/radio/beacon/syndicate/attack_self(mob/user as mob)
if(user)
- user << "\blue Locked In"
+ user << "Locked In"
new /obj/machinery/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
del(src)
diff --git a/code/game/objects/items/devices/radio/cyborg.dm b/code/game/objects/items/devices/radio/cyborg.dm
index 2053c9b44aa..003b6772d39 100644
--- a/code/game/objects/items/devices/radio/cyborg.dm
+++ b/code/game/objects/items/devices/radio/cyborg.dm
@@ -42,7 +42,7 @@
if (!isnull(keyslot))
user << "The radio can't hold another key!"
else
- user.drop_item(src)
+ user.drop_item(W, src)
insert_key(W)
return
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 9f925717eb2..f62028fa73f 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -268,11 +268,11 @@
return
if(!keyslot1)
- user.drop_item(src)
+ user.drop_item(W, src)
keyslot1 = W
else
- user.drop_item(src)
+ user.drop_item(W, src)
keyslot2 = W
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 0b92c6c132f..c9b6ea4fb31 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -98,16 +98,16 @@ REAGENT SCANNER
proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
if (( (M_CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
- user << text("\red You try to analyze the floor's vitals!")
+ user << text("You try to analyze the floor's vitals!")
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
- user.show_message(text("\blue Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
- user.show_message(text("\blue \t Damage Specifics: [0]-[0]-[0]-[0]"), 1)
- user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1)
- user.show_message("\blue Body Temperature: ???", 1)
+ O.show_message(text("[user] has analyzed the floor's vitals!"), 1)
+ user.show_message(text("Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
+ user.show_message(text("\t Damage Specifics: [0]-[0]-[0]-[0]"), 1)
+ user.show_message("Key: Suffocation/Toxin/Burns/Brute", 1)
+ user.show_message("Body Temperature: ???", 1)
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
user.visible_message(" [user] has analyzed [M]'s vitals."," You have analyzed [M]'s vitals.")
var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
@@ -118,25 +118,25 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
playsound(get_turf(src), 'sound/items/healthanalyzer.ogg', 50, 1)
if(M.status_flags & FAKEDEATH)
OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy
- user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: dead")
+ user.show_message("Analyzing Results for [M]:\n\t Overall Status: dead")
else
- user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[M.health - M.halloss]% healthy"]")
+ user.show_message("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[M.health - M.halloss]% healthy"]")
user.show_message("\t Key: Suffocation/Toxin/Burns/Brute", 1)
user.show_message("\t Damage Specifics: [OX] - [TX] - [BU] - [BR]")
- user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1)
+ user.show_message("Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1)
if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
- user.show_message("\blue Time of Death: [M.tod]")
+ user.show_message("Time of Death: [M.tod]")
if(istype(M, /mob/living/carbon/human) && mode == 1)
var/mob/living/carbon/human/H = M
var/list/damaged = H.get_damaged_organs(1,1)
- user.show_message("\blue Localized Damage, Brute/Burn:",1)
+ user.show_message("Localized Damage, Brute/Burn:",1)
if(length(damaged)>0)
for(var/datum/organ/external/org in damaged)
- var/organ_msg="\blue \t "
+ var/organ_msg="\t "
organ_msg+=capitalize(org.display_name)
organ_msg+=": "
if(org.brute_dam>0)
- organ_msg+="\red [org.brute_dam]"
+ organ_msg+="[org.brute_dam]"
else
organ_msg+="0"
if(org.burn_dam > 0)
@@ -144,47 +144,47 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
else
organ_msg+="/0"
if(org.status & ORGAN_BLEEDING)
- organ_msg+="\red \[BLEEDING\]"
+ organ_msg+="\[BLEEDING\]"
if(org.status & ORGAN_PEG)
- organ_msg+="\blue \[WOOD DETECTED?\]"
+ organ_msg+="\[WOOD DETECTED?\]"
if(org.status & ORGAN_ROBOT)
- organ_msg+="\blue \[METAL DETECTED?\]"
+ organ_msg+="\[METAL DETECTED?\]"
user.show_message(organ_msg,1)
else
- user.show_message("\blue \t Limbs are OK.",1)
+ user.show_message("\t Limbs are OK.",1)
OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal"
BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K"
BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K"
if(M.status_flags & FAKEDEATH)
- OX = fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal"
+ OX = fake_oxy > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
user.show_message("[OX] | [TX] | [BU] | [BR]")
if (istype(M, /mob/living/carbon))
if(M:reagents.total_volume > 0)
- user.show_message(text("\red Warning: Unknown substance detected in subject's blood."))
+ user.show_message(text("Warning: Unknown substance detected in subject's blood."))
if(M:virus2.len)
var/mob/living/carbon/C = M
for (var/ID in C.virus2)
if (ID in virusDB)
var/datum/data/record/V = virusDB[ID]
- user.show_message(text("\red Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]"))
-// user.show_message(text("\red Warning: Unknown pathogen detected in subject's blood."))
+ user.show_message(text("Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]"))
+// user.show_message(text("Warning: Unknown pathogen detected in subject's blood."))
if (M.getCloneLoss())
- user.show_message("\red Subject appears to have been imperfectly cloned.")
+ user.show_message("Subject appears to have been imperfectly cloned.")
for(var/datum/disease/D in M.viruses)
if(!D.hidden[SCANNER])
- user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
+ user.show_message(text("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
- user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
+ user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
if (M.has_brain_worms())
- user.show_message("\red Subject suffering from aberrant brain activity. Recommend further scanning.")
+ user.show_message("Subject suffering from aberrant brain activity. Recommend further scanning.")
else if (M.getBrainLoss() >= 100 || !M.has_brain())
- user.show_message("\red Subject is brain dead.")
+ user.show_message("Subject is brain dead.")
else if (M.getBrainLoss() >= 60)
- user.show_message("\red Severe brain damage detected. Subject likely to have mental retardation.")
+ user.show_message("Severe brain damage detected. Subject likely to have mental retardation.")
else if (M.getBrainLoss() >= 10)
- user.show_message("\red Significant brain damage detected. Subject may have had a concussion.")
+ user.show_message("Significant brain damage detected. Subject may have had a concussion.")
if(ishuman(M))
var/mob/living/carbon/human/H = M
for(var/name in H.organs_by_name)
@@ -192,30 +192,30 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
var/limb = e.display_name
if(e.status & ORGAN_BROKEN)
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & ORGAN_SPLINTED)))
- user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
+ user << "Unsecured fracture in subject [limb]. Splinting recommended for transport."
if(e.has_infected_wound())
- user << "\red Infected wound detected in subject [limb]. Disinfection recommended."
+ user << "Infected wound detected in subject [limb]. Disinfection recommended."
for(var/name in H.organs_by_name)
var/datum/organ/external/e = H.organs_by_name[name]
if(e.status & ORGAN_BROKEN)
- user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
+ user.show_message(text("Bone fractures detected. Advanced scanner required for location."), 1)
break
for(var/datum/organ/external/e in H.organs)
for(var/datum/wound/W in e.wounds) if(W.internal)
- user.show_message(text("\red Internal bleeding detected. Advanced scanner required for location."), 1)
+ user.show_message(text("Internal bleeding detected. Advanced scanner required for location."), 1)
break
if(M:vessel)
var/blood_volume = round(M:vessel.get_reagent_amount("blood"))
var/blood_percent = blood_volume / 560
blood_percent *= 100
if(blood_volume <= 500)
- user.show_message("\red Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl")
+ user.show_message("Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl")
else if(blood_volume <= 336)
- user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl")
+ user.show_message("Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl")
else
- user.show_message("\blue Blood Level Normal: [blood_percent]% [blood_volume]cl")
- user.show_message("\blue Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.")
+ user.show_message("Blood Level Normal: [blood_percent]% [blood_volume]cl")
+ user.show_message("Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.")
return
/obj/item/device/healthanalyzer/verb/toggle_mode()
@@ -253,7 +253,7 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
if (user.stat)
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
var/turf/location = user.loc
@@ -269,17 +269,17 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
//if human_standard is enabled, the message will be formatted to show which values are dangerous
/obj/item/device/analyzer/proc/output_gas_scan(var/datum/gas_mixture/scanned, var/atom/container, human_standard = 0)
if(!scanned)
- return "\red No gas mixture found."
+ return "No gas mixture found."
scanned.update_values()
var/pressure = scanned.return_pressure()
var/total_moles = scanned.total_moles()
var/message = ""
if(!container || istype(container, /turf))
- message += "\blue Results: "
+ message += "Results: "
else
- message += "\blue \icon [container] Results of [container] scan: "
+ message += "\icon [container] Results of [container] scan: "
if(total_moles)
- message += "[human_standard && abs(pressure - ONE_ATMOSPHERE) > 10 ? "\red" : "\blue"] Pressure: [round(pressure,0.1)] kPa "
+ message += "[human_standard && abs(pressure - ONE_ATMOSPHERE) > 10 ? "" : ""] Pressure: [round(pressure,0.1)] kPa "
var/o2_concentration = scanned.oxygen/total_moles
var/n2_concentration = scanned.nitrogen/total_moles
var/co2_concentration = scanned.carbon_dioxide/total_moles
@@ -288,19 +288,19 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
if(n2_concentration > 0.01)
- message += "[human_standard && abs(n2_concentration - N2STANDARD) > 20 ? "\red" : "\blue"] Nitrogen: [round(scanned.nitrogen, 0.1)] mol, [round(n2_concentration*100)]% "
+ message += "[human_standard && abs(n2_concentration - N2STANDARD) > 20 ? "" : ""] Nitrogen: [round(scanned.nitrogen, 0.1)] mol, [round(n2_concentration*100)]% "
if(o2_concentration > 0.01)
- message += "[human_standard && abs(o2_concentration - O2STANDARD) > 2 ? "\red" : "\blue"] Oxygen: [round(scanned.oxygen, 0.1)] mol, [round(o2_concentration*100)]% "
+ message += "[human_standard && abs(o2_concentration - O2STANDARD) > 2 ? "" : ""] Oxygen: [round(scanned.oxygen, 0.1)] mol, [round(o2_concentration*100)]% "
if(co2_concentration > 0.01)
- message += "[human_standard ? "\red" : "\blue"] CO2: [round(scanned.carbon_dioxide, 0.1)] mol, [round(co2_concentration*100)]% "
+ message += "[human_standard ? "" : ""] CO2: [round(scanned.carbon_dioxide, 0.1)] mol, [round(co2_concentration*100)]% "
if(plasma_concentration > 0.01)
- message += "[human_standard ? "\red" : "\blue"] Plasma: [round(scanned.toxins, 0.1)] mol, [round(plasma_concentration*100)]% "
+ message += "[human_standard ? "" : ""] Plasma: [round(scanned.toxins, 0.1)] mol, [round(plasma_concentration*100)]% "
if(unknown_concentration > 0.01)
- message += "\blue Unknown: [round(unknown_concentration*100)]% "
+ message += "Unknown: [round(unknown_concentration*100)]% "
- message += "[human_standard && !(scanned.temperature-T0C in range(0, 40)) ? "\red" : "\blue"] Temperature: [round(scanned.temperature-T0C)]°C"
+ message += "[human_standard && !(scanned.temperature-T0C in range(0, 40)) ? "" : ""] Temperature: [round(scanned.temperature-T0C)]°C"
else
- message += "\red No gasses detected[container && !istype(container, /turf) ? " in \the [container]." : ""]!"
+ message += "No gasses detected[container && !istype(container, /turf) ? " in \the [container]." : ""]!"
return message
/obj/item/device/mass_spectrometer
@@ -336,17 +336,17 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
if (user.stat)
return
if (crit_fail)
- user << "\red This device has critically failed and is no longer functional!"
+ user << "This device has critically failed and is no longer functional!"
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
if(reagents.total_volume)
var/list/blood_traces = list()
for(var/datum/reagent/R in reagents.reagent_list)
if(R.id != "blood")
reagents.clear_reagents()
- user << "\red The sample was contaminated! Please insert another sample"
+ user << "The sample was contaminated! Please insert another sample"
return
else
blood_traces = params2list(R.data["trace_chem"])
@@ -399,12 +399,12 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
if (user.stat)
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
if(!istype(O))
return
if (crit_fail)
- user << "\red This device has critically failed and is no longer functional!"
+ user << "This device has critically failed and is no longer functional!"
return
if(!isnull(O.reagents))
@@ -413,7 +413,7 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
var/one_percent = O.reagents.total_volume / 100
for (var/datum/reagent/R in O.reagents.reagent_list)
if(prob(reliability))
- dat += "\n \t \blue [R][details ? ": [R.volume / one_percent]%" : ""]"
+ dat += "\n \t [R][details ? ": [R.volume / one_percent]%" : ""]"
recent_fail = 0
else if(recent_fail)
crit_fail = 1
@@ -422,11 +422,11 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0)
else
recent_fail = 1
if(dat)
- user << "\blue Chemicals found: [dat]"
+ user << "Chemicals found: [dat]"
else
- user << "\blue No active chemical agents found in [O]."
+ user << "No active chemical agents found in [O]."
else
- user << "\blue No significant chemical agents found in [O]."
+ user << "No significant chemical agents found in [O]."
return
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 1f7eaf85349..ad060fcbf63 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -53,10 +53,10 @@
set name = "Start Recording"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(emagged == 1)
- usr << "\red The tape recorder makes a scratchy noise."
+ usr << "The tape recorder makes a scratchy noise."
return
icon_state = "taperecorderrecording"
if(timerecorded < 3600 && playing == 0)
@@ -80,10 +80,10 @@
set name = "Stop"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(emagged == 1)
- usr << "\red The tape recorder makes a scratchy noise."
+ usr << "The tape recorder makes a scratchy noise."
return
if(recording == 1)
recording = 0
@@ -104,7 +104,7 @@
set name = "Clear Memory"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(emagged == 1)
usr << "The tape recorder makes a scratchy noise."
@@ -124,10 +124,10 @@
set name = "Playback Memory"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(emagged == 1)
- usr << "\red The tape recorder makes a scratchy noise."
+ usr << "The tape recorder makes a scratchy noise."
return
if(recording == 1)
usr << "You can't playback when recording!"
@@ -183,10 +183,10 @@
set name = "Print Transcript"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(emagged == 1)
- usr << "\red The tape recorder makes a scratchy noise."
+ usr << "The tape recorder makes a scratchy noise."
return
if(!canprint)
usr << "The recorder can't print that fast!"
@@ -211,11 +211,11 @@
if(usr.stat)
return
if(emagged == 1)
- usr << "\red The tape recorder makes a scratchy noise."
+ usr << "The tape recorder makes a scratchy noise."
return
icon_state = "taperecorderrecording"
if(timerecorded < 3600 && playing == 0)
- usr << "\blue Recording started."
+ usr << "Recording started."
recording = 1
timestamp+= timerecorded
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording started."
@@ -228,7 +228,7 @@
icon_state = "taperecorderidle"
return
else
- usr << "\red Either your tape recorder's memory is full, or it is currently playing back its memory."
+ usr << "Either your tape recorder's memory is full, or it is currently playing back its memory."
else
if(usr.stat)
usr << "Not when you're incapacitated."
@@ -237,7 +237,7 @@
recording = 0
timestamp+= timerecorded
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording stopped."
- usr << "\blue Recording stopped."
+ usr << "Recording stopped."
icon_state = "taperecorderidle"
return
else if(playing == 1)
@@ -248,5 +248,5 @@
icon_state = "taperecorderidle"
return
else
- usr << "\red Stop what?"
+ usr << "Stop what?"
return
\ No newline at end of file
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index f4aa12c3c37..4c62c4e9fc4 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -34,7 +34,7 @@ effective or pretty fucking useless.
/obj/item/device/batterer/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
if(!user) return
if(times_used >= max_uses)
- user << "\red The mind batterer has been burnt out!"
+ user << "The mind batterer has been burnt out!"
return
user.attack_log += text("\[[time_stamp()]\] Used [src] to knock down people in the area.")
@@ -46,17 +46,17 @@ effective or pretty fucking useless.
M.Weaken(rand(10,20))
if(prob(25))
M.Stun(rand(5,10))
- M << "\red You feel a tremendous, paralyzing wave flood your mind."
+ M << "You feel a tremendous, paralyzing wave flood your mind."
if(!iscarbon(user))
M.LAssailant = null
else
M.LAssailant = user
else
- M << "\red You feel a sudden, electric jolt travel through your head."
+ M << "You feel a sudden, electric jolt travel through your head."
playsound(get_turf(src), 'sound/misc/interference.ogg', 50, 1)
- user << "\blue You trigger [src]."
+ user << "You trigger [src]."
times_used += 1
if(times_used >= max_uses)
icon_state = "battererburnt"
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index c45a41278ac..0799733414f 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -15,6 +15,11 @@
/obj/item/device/transfer_valve/IsAssemblyHolder()
return 1
+/obj/item/device/transfer_valve/Crossed(AM as mob|obj)
+ if(attached_device)
+ attached_device.Crossed(AM)
+ ..()
+
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
if(istype(item, /obj/item/weapon/tank))
if(tank_one && tank_two)
@@ -23,11 +28,11 @@
if(!tank_one)
tank_one = item
- user.drop_item(src)
+ user.drop_item(item, src)
user << "You attach the tank to the transfer valve."
else if(!tank_two)
tank_two = item
- user.drop_item(src)
+ user.drop_item(item, src)
user << "You attach the tank to the transfer valve."
update_icon()
diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm
index ce6e0e5456c..572ea8e176a 100644
--- a/code/game/objects/items/devices/whistle.dm
+++ b/code/game/objects/items/devices/whistle.dm
@@ -21,7 +21,7 @@
user.show_message("[user]'s [name] gurgles, \"FUCK YOUR CUNT YOU SHIT EATING CUNT TILL YOU ARE A MASS EATING SHIT CUNT. EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS TO FUCK UP SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FROM THE DEPTHS OF SHIT\"",2) //It's a hearable message silly!
insults--
else
- user << "\red *BZZZZcuntZZZZT*"
+ user << "*BZZZZcuntZZZZT*"
else
playsound(get_turf(src), 'sound/voice/halt.ogg', 100, 1, vary = 0)
user.show_message("[user]'s [name] rasps, \"Halt! Security!\"",1)
@@ -32,7 +32,7 @@
/obj/item/device/hailer/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
- user << "\red You overload \the [src]'s voice synthesizer."
+ user << "You overload \the [src]'s voice synthesizer."
emagged = 1
insults = rand(1, 3)//to prevent dickflooding
return
diff --git a/code/game/objects/items/mountable_frames/newscaster.dm b/code/game/objects/items/mountable_frames/newscaster.dm
new file mode 100644
index 00000000000..4a57e348d4c
--- /dev/null
+++ b/code/game/objects/items/mountable_frames/newscaster.dm
@@ -0,0 +1,12 @@
+/obj/item/mounted/frame/newscaster
+ name = "Unhinged Newscaster"
+ desc = "The difference between an unhinged newscaster and a journalist is that one of them is actually crazy."
+ icon = 'icons/obj/terminals.dmi'
+ icon_state = "newscaster_off"
+ flags = FPRINT
+ w_type=2*RECYK_METAL
+ mount_reqs = list("nospace", "simfloor")
+
+/obj/item/mounted/frame/newscaster/do_build(turf/on_wall, mob/user)
+ new /obj/machinery/newscaster(get_turf(src), get_dir(user, on_wall))
+ qdel(src)
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 4b923fbc698..c2ef887d1ef 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -29,7 +29,7 @@
for(var/mob/O in viewers(M, null))
if (O.client)
- O.show_message("\red [user] has prodded [M] with an electrically-charged arm!", 1, "\red You hear someone fall", 2)
+ O.show_message("[user] has prodded [M] with an electrically-charged arm!", 1, "You hear someone fall", 2)
/obj/item/borg/overdrive
name = "overdrive"
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 3d5ee06181d..5a808f2a007 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -114,32 +114,32 @@
qdel(src)
if(istype(W, /obj/item/robot_parts/l_leg))
if(src.l_leg) return
- user.drop_item(src)
+ user.drop_item(W, src)
src.l_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_leg))
if(src.r_leg) return
- user.drop_item(src)
+ user.drop_item(W, src)
src.r_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/l_arm))
if(src.l_arm) return
- user.drop_item(src)
+ user.drop_item(W, src)
src.l_arm = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_arm))
if(src.r_arm) return
- user.drop_item(src)
+ user.drop_item(W, src)
src.r_arm = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/chest))
if(src.chest) return
if(W:wires && W:cell)
- user.drop_item(src)
+ user.drop_item(W, src)
src.chest = W
src.updateicon()
else if(!W:wires)
@@ -150,7 +150,7 @@
if(istype(W, /obj/item/robot_parts/head))
if(src.head) return
if(W:flash2 && W:flash1)
- user.drop_item(src)
+ user.drop_item(W, src)
src.head = W
src.updateicon()
else
@@ -199,7 +199,7 @@
if(!O) return
- user.drop_item()
+ user.drop_item(W)
O.mmi = W
O.invisibility = 0
@@ -248,7 +248,7 @@
user << "You have already inserted a cell!"
return
else
- user.drop_item(src)
+ user.drop_item(W, src)
src.cell = W
user << "You insert the cell!"
if(istype(W, /obj/item/stack/cable_coil))
@@ -269,17 +269,17 @@
user << "You have already inserted the eyes!"
return
else if(src.flash1)
- user.drop_item(src)
+ user.drop_item(W, src)
src.flash2 = W
user << "You insert the flash into the eye socket!"
else
- user.drop_item(src)
+ user.drop_item(W, src)
src.flash1 = W
user << "You insert the flash into the eye socket!"
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
user << "You install some manipulators and modify the head, creating a functional spider-bot!"
new /mob/living/simple_animal/spiderbot(get_turf(loc))
- user.drop_item()
+ user.drop_item(W)
del(W)
del(src)
return
diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm
index 02b4366cd86..6c0a8633c40 100644
--- a/code/game/objects/items/shooting_range.dm
+++ b/code/game/objects/items/shooting_range.dm
@@ -96,7 +96,7 @@
if(hp <= 0)
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << "\red [src] breaks into tiny pieces and collapses!"
+ O << "[src] breaks into tiny pieces and collapses!"
del(src)
// Create a temporary object to represent the damage
diff --git a/code/game/objects/items/stacks/cable.dm b/code/game/objects/items/stacks/cable.dm
index 255f4589efe..85b20e5314b 100644
--- a/code/game/objects/items/stacks/cable.dm
+++ b/code/game/objects/items/stacks/cable.dm
@@ -65,12 +65,12 @@ var/global/list/datum/stack_recipe/cable_recipes = list ( \
S.heal_damage(0, 15, 0, 1)
if(user != M)
- user.visible_message("\red \The [user] repairs some burn damage on their [S.display_name] with \the [src]",\
- "\red You repair some burn damage on your [S.display_name]",\
+ user.visible_message("\The [user] repairs some burn damage on their [S.display_name] with \the [src]",\
+ "You repair some burn damage on your [S.display_name]",\
"You hear wires being cut.")
else
- user.visible_message("\red \The [user] repairs some burn damage on their [S.display_name] with \the [src]",\
- "\red You repair some burn damage on your [S.display_name]",\
+ user.visible_message("\The [user] repairs some burn damage on their [S.display_name] with \the [src]",\
+ "You repair some burn damage on your [S.display_name]",\
"You hear wires being cut.")
else
user << "Nothing to fix!"
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 844b337cef0..0cd5f1225bd 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -20,6 +20,8 @@
var/sname = "glass"
var/shard_type = /obj/item/weapon/shard
+ siemens_coefficient = 0 //does not conduct
+
/obj/item/stack/sheet/glass/attack_self(mob/user as mob)
construct_window(user)
@@ -204,10 +206,10 @@
if(istype(W,/obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/CC = W
if(CC.amount < 5)
- user << "\b There is not enough wire in this coil. You need 5 lengths."
+ user << "There is not enough wire in this coil. You need 5 lengths."
return
CC.use(5)
- user << "\blue You attach wire to the [name]."
+ user << "You attach wire to the [name]."
new /obj/item/stack/light_w(user.loc)
src.use(1)
else
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 01916e1909d..3b47288cde9 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -97,9 +97,9 @@
istype(W, /obj/item/weapon/hatchet) )
//visible message on mobs is defined as visible_message(var/message, var/self_message, var/blind_message)
- usr.visible_message("\blue \the [usr] starts cutting hair off \the [src]", "\blue You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh")
+ usr.visible_message("\the [usr] starts cutting hair off \the [src]", "You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh")
if(do_after(user,50))
- usr << "\blue You cut the hair from this [src.singular_name]"
+ usr << "You cut the hair from this [src.singular_name]"
//Try locating an exisitng stack on the tile and add to there if possible
for(var/obj/item/stack/sheet/hairlesshide/HS in usr.loc)
if(HS.amount < 50)
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index dde3304ac15..6a688d5544f 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -78,6 +78,8 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
new/datum/stack_recipe("fire alarm frame", /obj/item/mounted/frame/firealarm, 2), \
new/datum/stack_recipe("lightswitch frame", /obj/item/mounted/frame/light_switch, 2), \
new/datum/stack_recipe("intercom frame", /obj/item/mounted/frame/intercom, 2), \
+ new/datum/stack_recipe("requests console", /obj/machinery/requests_console, 2), \
+ new/datum/stack_recipe("ATM", /obj/machinery/atm/, 2), \
null, \
new/datum/stack_recipe("iron door", /obj/machinery/door/mineral/iron, 20, one_per_turf = 1, on_floor = 1), \
)
@@ -193,6 +195,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
new/datum/stack_recipe("wooden door", /obj/machinery/door/mineral/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("apiary", /obj/item/apiary, 10, time = 25, one_per_turf = 0, on_floor = 0), \
+ new/datum/stack_recipe("bowl", /obj/item/trash/bowl, 1), \
)
/obj/item/stack/sheet/wood
diff --git a/code/game/objects/items/stacks/tiles/plasteel.dm b/code/game/objects/items/stacks/tiles/plasteel.dm
index be03c6fe692..cd645b9d032 100644
--- a/code/game/objects/items/stacks/tiles/plasteel.dm
+++ b/code/game/objects/items/stacks/tiles/plasteel.dm
@@ -43,10 +43,10 @@
return
var/T = user.loc
if (!( istype(T, /turf) ))
- user << "\red You must be on the ground!"
+ user << "You must be on the ground!"
return
if (!( istype(T, /turf/space) ))
- user << "\red You cannot build on or repair this turf!"
+ user << "You cannot build on or repair this turf!"
return
src.build(T)
src.add_fingerprint(user)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index ef9152e1c4c..88d272e7eef 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -848,7 +848,7 @@
set name = "Flip Card"
set category = "Object"
set src in range(1)
- if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
+ if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
if(!flipped)
src.flipped = 1
@@ -947,4 +947,253 @@
spamcheck = 1
spawn(20)
spamcheck = 0
- return
\ No newline at end of file
+ return
+
+
+/obj/item/toy/gasha
+ icon = 'icons/obj/toy.dmi'
+ icon_state = "greyshirt"
+ var/cooldown = 0
+
+/obj/item/toy/gasha/greyshirt
+ name = "toy greyshirt"
+ desc = "Now with kung-fu grip action!"
+
+/obj/item/toy/gasha/greytide
+ name = "toy greytide"
+ desc = "Includes small pieces, not for children under or above the age of 5."
+ icon_state = "greytide"
+
+/obj/item/toy/gasha/newcop
+ name = "toy nuke-op"
+ desc = "Mildly explosive."
+ icon_state = "newcop"
+
+/obj/item/toy/gasha/jani
+ name = "toy janitor"
+ desc = "cleanliness is next to godliness!"
+ icon_state = "jani"
+
+/obj/item/toy/gasha/miner
+ name = "toy miner"
+ desc = "Walk softly, and carry a ton of monsters."
+ icon_state = "miner"
+
+/obj/item/toy/gasha/clown
+ name = "toy clown"
+ desc = "HONK"
+ icon_state = "clown"
+
+/obj/item/toy/gasha/goliath
+ name = "toy goliath"
+ desc = "Now with fully articulated tentacles!"
+ icon_state = "goliath"
+
+/obj/item/toy/gasha/basilisk
+ name = "toy basilisk"
+ desc = "The eye has a strange shine to it."
+ icon_state = "basilisk"
+
+/obj/item/toy/gasha/mommi
+ name = "toy MoMMI"
+ desc = "*ping"
+ icon_state = "mommi"
+
+/obj/item/toy/gasha/guard
+ name = "toy guard spider"
+ desc = "Miniature giant spider, or just 'spider' for short."
+ icon_state = "guard"
+
+/obj/item/toy/gasha/hunter
+ name = "toy hunter spider"
+ desc = "As creepy looking as the real thing, but with 80% less chance of killing you."
+ icon_state = "hunter"
+
+/obj/item/toy/gasha/nurse
+ name = "toy nurse spider"
+ desc = "Not exactly what most people are hoping for when they hear 'nurse'."
+ icon_state = "nurse"
+
+/obj/item/toy/gasha/alium
+ name = "toy alien"
+ desc = "Has a great smile."
+ icon_state = "alium"
+
+/obj/item/toy/gasha/pomf
+ name = "toy chicken"
+ desc = "Cluck."
+ icon_state = "pomf"
+
+/obj/item/toy/gasha/engi
+ name = "toy engineer"
+ desc = "Probably better at setting up power than the real thing!"
+ icon_state = "engi"
+
+/obj/item/toy/gasha/atmos
+ name = "toy atmos-tech"
+ desc = "Can withstand high temperatures without melting!"
+ icon_state = "atmos"
+
+/obj/item/toy/gasha/sec
+ name = "toy security"
+ desc = "Won't search you on code green!"
+ icon_state = "sec"
+
+/obj/item/toy/gasha/plasman
+ name = "toy plasmaman"
+ desc = "All of the undending agony of the real thing, but in tiny plastic form!"
+ icon_state = "plasman"
+
+/obj/item/toy/gasha/shard
+ name = "toy supermatter shard"
+ desc = "Nowhere near as explosive as the real one."
+ icon_state = "shard"
+
+/obj/item/toy/gasha/mime
+ name = "toy mime"
+ desc = "..."
+ icon_state = "mime"
+
+/obj/item/toy/gasha/captain
+ name = "toy captain"
+ desc = "Though some say the captain should always go down with his ship, captains on NT stations tend to be the first on escape shuttles whenever the time comes."
+ icon_state = "captain"
+
+/obj/item/toy/gasha/comdom
+ name = "toy comdom"
+ desc = "WE GOT THE VALIDS AI CALL THE SHUTTLE"
+ icon_state = "comdom"
+
+/obj/item/toy/gasha/shade
+ name = "toy shade"
+ desc = "Eternal torment in cute plastic form!"
+ icon_state = "shade"
+
+/obj/item/toy/gasha/wraith
+ name = "toy wraith"
+ desc = "Not the most subtle of constructs, overly fond of teleporting into walls."
+ icon_state = "wraith"
+
+/obj/item/toy/gasha/juggernaut
+ name = "toy juggernaut"
+ desc = "Big fists to leave big holes in the side of the station."
+ icon_state = "juggernaut"
+
+/obj/item/toy/gasha/artificer
+ name = "toy artificer"
+ desc = "Sort of like a MoMMI, if MoMMIs hated their own existence."
+ icon_state = "artificer"
+
+/obj/item/toy/gasha/harvester
+ name = "toy harvester"
+ desc = "Harvesters tend to have a bad habit of violently stabbing anyone they meet"
+ icon_state = "harvester"
+
+/obj/item/toy/gasha/corgitoy
+ name = "plush corgi"
+ desc = "Perfect for the pet owner on a tight budget!"
+ icon_state = "corgitoy"
+
+/obj/item/toy/gasha/cattoy
+ name = "plush cat"
+ desc = "Marginally less affectionate than an actual cat."
+ icon_state = "cattoy"
+
+/obj/item/toy/gasha/parrottoy
+ name = "plush parrot"
+ desc = "All the fun of a real parrot, without the obnoxious talking!"
+ icon_state = "parrottoy"
+
+/obj/item/toy/gasha/beartoy
+ name = "plush bear"
+ desc = "HOO, HA! HOO, HA!"
+ icon_state = "beartoy"
+
+/obj/item/toy/gasha/carptoy
+ name = "plush carp"
+ desc = "Can not be used as a distraction during a space carp attack."
+ icon_state = "carptoy"
+/obj/item/toy/gasha/monkeytoy
+ name = "plush monkey"
+ desc = "Slightly less likely to throw poop than the real one."
+ icon_state = "monkeytoy"
+
+/obj/item/toy/gasha/huggertoy
+ name = "toy facehugger"
+ desc = "Cannot be worn as a mask, unfortunately."
+ icon_state = "huggertoy"
+
+/obj/item/toy/gasha/borertoy
+ name = "Mini Borer"
+ desc = "Probably not something you should be playing with"
+ icon_state = "borertoy"
+
+/obj/item/toy/gasha/minislime
+ name = "Pygmy Grey Slime"
+ desc = "If you experience a tingling sensation in your hands, please stop playing with your pygmy slime immediately."
+ icon_state = "minislime"
+
+/obj/item/toy/gasha/AI/attack_self(mob/user as mob)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/vox/doop.wav', 20, 1)
+ cooldown = world.time
+
+/obj/item/toy/gasha/AI/attack_hand(mob/user as mob)
+ if(loc == user)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/vox/doop.wav', 20, 1)
+ cooldown = world.time
+ return
+ ..()
+
+/obj/item/toy/gasha/AI
+ name = "Mini AI"
+ desc = "Does not open doors."
+ icon_state = "AI"
+
+/obj/item/toy/gasha/AI/malf
+ name = "Mini Malf"
+ desc = "May be a bad influence for cyborgs"
+ icon_state = "malfAI"
+
+/obj/item/toy/gasha/minibutt/attack_self(mob/user as mob)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/misc/fart.ogg', 20, 1)
+ cooldown = world.time
+
+/obj/item/toy/gasha/minibutt/attack_hand(mob/user as mob)
+ if(loc == user)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/misc/fart.ogg', 20, 1)
+ cooldown = world.time
+ return
+ ..()
+
+/obj/item/toy/gasha/minibutt
+ name = "mini-buttbot"
+ desc = "Made from real gnome butts!"
+ icon_state = "minibutt"
+
+/obj/item/toy/gasha/skub
+ name = "Skub"
+ desc = "It's just Skub."
+ icon_state = "skub"
+
+
+/obj/item/toy/gasha/fingerbox/attack_self(mob/user as mob)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/weapons/switchblade.ogg', 20, 1)
+ cooldown = world.time
+
+/obj/item/toy/gasha/fingerbox/attack_hand(mob/user as mob)
+ if(loc == user)
+ if(cooldown < world.time - 8)
+ playsound(user, 'sound/weapons/switchblade.ogg', 20, 1)
+ cooldown = world.time
+ return
+ ..()
+
+/obj/item/toy/gasha/fingerbox
+ name = "fingerbox"
+ desc = "A high quality fingerbox."
+ icon_state = "fingerbox"
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 31e7c6d0695..87c74ed8853 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -92,7 +92,7 @@ RCD
airlock_type = /obj/machinery/door/airlock
/obj/item/weapon/rcd/suicide_act(mob/user)
- viewers(user) << "\red [user] is using the deconstruct function on the [src.name] on \himself! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is using the deconstruct function on the [src.name] on \himself! It looks like \he's trying to commit suicide!"
return (user.death(1))
/obj/item/weapon/rcd/New()
diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm
index e018459f3bc..9937f73dd0b 100644
--- a/code/game/objects/items/weapons/RPD.dm
+++ b/code/game/objects/items/weapons/RPD.dm
@@ -491,7 +491,7 @@ var/global/list/RPD_recipes=list(
return 0
var/obj/machinery/atmospherics/pipe/P = A
if(!(paint_color in P.available_colors))
- user << "\red This [P] can't be painted [paint_color]. Available colors: [english_list(P.available_colors)]"
+ user << "This [P] can't be painted [paint_color]. Available colors: [english_list(P.available_colors)]"
return 0
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
P._color = paint_color
diff --git a/code/game/objects/items/weapons/ai_modules/AI_modules.dm b/code/game/objects/items/weapons/ai_modules/AI_modules.dm
index 907ab5f6ea5..4dccf3761e9 100644
--- a/code/game/objects/items/weapons/ai_modules/AI_modules.dm
+++ b/code/game/objects/items/weapons/ai_modules/AI_modules.dm
@@ -48,7 +48,7 @@ Refactored AI modules by N3X15
/obj/item/weapon/aiModule/attack_ai(mob/user as mob)
// Keep MoMMIs from picking them up.
if(isMoMMI(user))
- user << "\red Your firmware prevents you from picking that up!"
+ user << "Your firmware prevents you from picking that up!"
return
// This prevents modules from being picked up. Use it, if needed.
@@ -82,7 +82,7 @@ Refactored AI modules by N3X15
var/mob/M=target
// This seems redundant. Revisit. - N3X
if(src.modflags & HIDE_SENDER)
- target << "\red \[REDACTED\] \black has uploaded a change to the laws you must follow, using \a [name]. From now on: "
+ target << "\[REDACTED\] has uploaded a change to the laws you must follow, using \a [name]. From now on: "
else
target << "[senderName] has uploaded a change to the laws you must follow, using \a [name]. From now on: "
targetName="[fmtSubject(M)])"
@@ -182,5 +182,5 @@ Refactored AI modules by N3X15
/obj/item/weapon/aiModule/keeper/validate(var/datum/ai_laws/laws, var/atom/target, var/mob/sender)
..()
- sender << "\red How the fuck did you get this?"
+ sender << "How the fuck did you get this?"
return 0
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/ai_modules/freeform.dm b/code/game/objects/items/weapons/ai_modules/freeform.dm
index 2c1865d1d96..b956f2fc1d3 100644
--- a/code/game/objects/items/weapons/ai_modules/freeform.dm
+++ b/code/game/objects/items/weapons/ai_modules/freeform.dm
@@ -35,13 +35,13 @@ By N3X15
while(1)
lawpos = input("Please enter the priority for your new law. Can only write to law sectors [allowed_priority_min] - [allowed_priority_max].", "Law Priority (15+)", lawpos) as num
if(allowed_priority_min > 0 && lawpos < allowed_priority_min)
- user << "\red Desired law sector is too low."
+ user << "Desired law sector is too low."
continue
if(allowed_priority_max > 0 && lawpos > allowed_priority_max)
- user << "\red Desired law sector is too high."
+ user << "Desired law sector is too high."
continue
priority=lawpos
- user << "\blue Target law sector set to [priority]."
+ user << "Target law sector set to [priority]."
break
law = copytext(sanitize(input(usr, "Please enter a new law for the AI.", "Freeform Law Entry", law)),1,MAX_MESSAGE_LEN)
diff --git a/code/game/objects/items/weapons/ai_modules/planning_frame.dm b/code/game/objects/items/weapons/ai_modules/planning_frame.dm
index 6dfb9ca6470..f7acaffcd1a 100644
--- a/code/game/objects/items/weapons/ai_modules/planning_frame.dm
+++ b/code/game/objects/items/weapons/ai_modules/planning_frame.dm
@@ -54,7 +54,7 @@
return
if(!module.upload(src.laws,src,user))
return
- //user.drop_item()
+ //user.drop_item(null, )
//module.loc=src
modules += module.copy() // Instead of a reference
user << "You insert \the [module] into \the [src], and the device reads the module's contents."
diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm
index 07f4588fb50..de36b02a496 100644
--- a/code/game/objects/items/weapons/airlock_painter.dm
+++ b/code/game/objects/items/weapons/airlock_painter.dm
@@ -61,7 +61,7 @@
if(ink)
user << "\the [name] already contains \a [ink]."
return
- user.drop_item(src)
+ user.drop_item(W, src)
user << "You install \the [W] into \the [name]."
ink = W
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 13e5461413a..de9f9009805 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -159,18 +159,18 @@
/obj/item/weapon/card/emag/attack()
return
-
+
/obj/item/weapon/card/emag/afterattack(atom/target, mob/user, proximity)
var/atom/A = target
if(!proximity) return
A.emag_act(user)
-
+
/obj/item/weapon/card/id
name = "identification card"
desc = "A card used to provide ID and determine access across the station."
icon_state = "id"
item_state = "card-id"
- var/access = list()
+ var/list/access = list()
var/registered_name = "Unknown" // The name registered_name on the card
slot_flags = SLOT_ID
diff --git a/code/game/objects/items/weapons/cash.dm b/code/game/objects/items/weapons/cash.dm
index 29361e2027b..a139010fe92 100644
--- a/code/game/objects/items/weapons/cash.dm
+++ b/code/game/objects/items/weapons/cash.dm
@@ -1,4 +1,4 @@
-var/global/list/moneytypes=list(
+var/global/list/moneytypes = list(
/obj/item/weapon/spacecash/c1000 = 1000,
/obj/item/weapon/spacecash/c100 = 100,
/obj/item/weapon/spacecash/c10 = 10,
@@ -23,8 +23,8 @@ var/global/list/moneytypes=list(
w_class = 1.0
var/access = list()
access = access_crate_cash
- var/worth = 1 // Per chip
- var/amount = 1 // number of chips
+ var/worth = 1 //Per chip
+ var/amount = 1 //Number of chips
var/stack_color = "#4E054F"
autoignition_temperature=AUTOIGNITION_PAPER
@@ -35,10 +35,10 @@ var/global/list/moneytypes=list(
update_icon()
/obj/item/weapon/spacecash/examine(mob/user)
- if(amount>1)
+ if(amount > 1)
setGender(PLURAL)
..()
- user << "It is a stack holding [amount] chips."
+ user << "It's a stack holding [amount] chips."
user << "It's worth [worth*amount] credits."
else
setGender(NEUTER)
@@ -46,11 +46,11 @@ var/global/list/moneytypes=list(
/obj/item/weapon/spacecash/update_icon()
icon_state = "cash[worth]"
- // Up to 100 items per stack.
+ //Up to 100 items per stack.
overlays = 0
var/stacksize=round(amount/25)
- pixel_x=rand(-7,7)
- pixel_y=rand(-14,14)
+ pixel_x = rand(-7, 7)
+ pixel_y = rand(-14, 14)
if(stacksize)
// 0 = single
// 1 = 1/4 stack
@@ -72,10 +72,7 @@ var/global/list/moneytypes=list(
return 0
/obj/item/weapon/spacecash/afterattack(atom/A as mob|obj, mob/user as mob)
- if (istype(A, /turf) \
- || istype(A, /obj/structure/table) \
- || istype(A, /obj/structure/rack) \
- )
+ if(istype(A, /turf) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack))
var/turf/T = get_turf(A)
var/collected = 0
for(var/obj/item/weapon/spacecash/cash in T)
@@ -83,13 +80,13 @@ var/global/list/moneytypes=list(
collected += collect_from(cash)
if(collected)
update_icon()
- user << "span class='notice'>You add [collected] chips to your stack of cash."
+ user << "You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash."
else if(istype(A,/obj/item/weapon/spacecash))
var/obj/item/weapon/spacecash/cash = A
var/collected = src.collect_from(cash)
if(collected)
update_icon()
- user << "span class='notice'>You add [collected] chips to your stack of cash."
+ user << "You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash."
/obj/item/weapon/spacecash/c10
icon_state = "cash10"
diff --git a/code/game/objects/items/weapons/chisel.dm b/code/game/objects/items/weapons/chisel.dm
index 7235aa5cdee..2fef0e9c534 100644
--- a/code/game/objects/items/weapons/chisel.dm
+++ b/code/game/objects/items/weapons/chisel.dm
@@ -40,11 +40,11 @@
var/engraving_name = sanitize(input(usr, "Depicted on the wall is an image of ...","Engraving"))
var/engraving = sanitize(input(usr, "Enter the details of your engraving.","Engraving"))
- user.visible_message("\blue [user.name] starts engraving something on the [W.name].", "\blue You start engraving an image of [engraving_name] on the [W.name].")
+ user.visible_message("[user.name] starts engraving something on the [W.name].", "You start engraving an image of [engraving_name] on the [W.name].")
if(do_after(user, 60))
if( !istype(W, /turf/simulated/wall) || !user || !src || !W ) return
if( W.rotting )
- user.visible_message("\red The [W.name] crumbles under [user.name]'s touch!", "\red The [W.name] crumbles under your touch!")
+ user.visible_message("The [W.name] crumbles under [user.name]'s touch!", "The [W.name] crumbles under your touch!")
W.dismantle_wall()
return
@@ -59,7 +59,7 @@
W.engraving_quality = "an exceptionally designed"
if(10)
W.engraving_quality = "a masterfully designed"
- user << "\red It's a masterpiece!"
+ user << "It's a masterpiece!"
engraving = {"Depicted on the wall is [W.engraving_quality] image of [engraving_name][(use_name ? " by [user.real_name]" : "")]. [engraving]"}
@@ -68,4 +68,4 @@
W.overlays += engraving_overlay
W.engraving = engraving
- user.visible_message("\blue [user.name] finishes engraving [W.engraving_quality] image of [engraving_name].", "\blue You finish engraving on the [W.name].")
\ No newline at end of file
+ user.visible_message("[user.name] finishes engraving [W.engraving_quality] image of [engraving_name].", "You finish engraving on the [W.name].")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index c4bea0d8662..c7fec1a6a1b 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -180,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
new src.type_butt(location)
processing_objects.Remove(src)
user << "Half of the [name] dissolves with a nasty fizzle."
- user.drop_item()
+ user.drop_item(src)
qdel(src)
return
var/transfered = glass.reagents.trans_to(src, chem_volume)
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 590b9e0e0d2..ba9ddbb3182 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -73,7 +73,7 @@
/obj/item/weapon/soap/attack(mob/target as mob, mob/user as mob)
if(target && user && ishuman(target) && !target.stat && !user.stat && user.zone_sel &&user.zone_sel.selecting == "mouth" )
- user.visible_message("\red \the [user] washes \the [target]'s mouth out with soap!")
+ user.visible_message("\the [user] washes \the [target]'s mouth out with soap!")
return
..()
diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm
index 9c23df29bf5..f603f7f88e1 100644
--- a/code/game/objects/items/weapons/dice.dm
+++ b/code/game/objects/items/weapons/dice.dm
@@ -100,7 +100,7 @@
if(result == 1)
user << "Rocks fall, you die."
user.gib()
- user.drop_item(src.loc)
+ user.drop_item(src)
else
triggered = 1
visible_message("You hear a quiet click.")
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 1858c0f27be..b56b2cf9bdc 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -110,7 +110,7 @@
if (!istype(M, /mob))
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
M.attack_log += text("\[[time_stamp()]\] Has been injected with [name] by [user.name] ([user.ckey])")
@@ -140,17 +140,17 @@
if(block)// Isolated injector
testing("Isolated block [block] injector with contents: [GetValue()]")
if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
- message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] (MONKEY)")
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
- log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] (MONKEY)")
else
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else
testing("DNA injector with contents: [english_list(buf.dna.SE)]")
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human) )
- message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)")
log_attack("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
- log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)")
else
// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
log_attack("[key_name(user)] injected [key_name(M)] with the [name]")
@@ -165,25 +165,25 @@
if(!inuse)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] has been injected with [] by [].", M, src, user), 1)
+ O.show_message(text("[] has been injected with [] by [].", M, src, user), 1)
//Foreach goto(192)
if (!(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)))
- user << "\red Apparently it didn't work."
+ user << "Apparently it didn't work."
return
if (buf.types & DNA2_BUF_SE)
if(block)// Isolated injector
testing("Isolated block [block] injector with contents: [GetValue()]")
if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
- message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] (MONKEY)")
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
- log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] (MONKEY)")
else
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else
testing("DNA injector with contents: [english_list(buf.dna.SE)]")
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human))
- message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)")
log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
else
// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
@@ -202,9 +202,9 @@
*/
if(user)//If the user still exists. Their mob may not.
if(M)//Runtime fix: If the mob doesn't exist, mob.name doesnt work. - Nodrak
- user.show_message(text("\red You inject [M.name]"))
+ user.show_message(text("You inject [M.name]"))
else
- user.show_message(text("\red You finish the injection."))
+ user.show_message(text("You finish the injection."))
return
diff --git a/code/game/objects/items/weapons/dnascrambler.dm b/code/game/objects/items/weapons/dnascrambler.dm
index b0e5b0149d9..04cd6035e75 100644
--- a/code/game/objects/items/weapons/dnascrambler.dm
+++ b/code/game/objects/items/weapons/dnascrambler.dm
@@ -23,15 +23,15 @@
return
if(M == user)
- user.visible_message("\red [user.name] injects \himself with [src]!")
+ user.visible_message("[user.name] injects \himself with [src]!")
src.injected(user,user)
else
- user.visible_message("\red [user.name] is trying to inject [M.name] with [src]!")
+ user.visible_message("[user.name] is trying to inject [M.name] with [src]!")
if (do_mob(user,M,30))
- user.visible_message("\red [user.name] injects [M.name] with [src].")
+ user.visible_message("[user.name] injects [M.name] with [src].")
src.injected(M, user)
else
- user << "\red You failed to inject [M.name]."
+ user << "You failed to inject [M.name]."
proc/injected(var/mob/living/carbon/target, var/mob/living/carbon/user)
target.generate_name()
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index bfb3dfab8ff..c3af9b5a3d4 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -28,7 +28,7 @@
/obj/item/weapon/plastique/suicide_act(var/mob/user)
. = (BRUTELOSS)
- viewers(user) << "\red [user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!"
+ viewers(user) << "[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!"
var/message_say = "FOR NO RAISIN!"
if(user.mind)
if(user.mind.special_role)
@@ -71,16 +71,16 @@
user.attack_log += "\[[time_stamp()]\] [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])"
msg_admin_attack("[user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey]) (JMP)")
- user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!")
+ user.visible_message("[user.name] is trying to plant some kind of explosive on [target.name]!")
if(do_after(user, 50) && in_range(user, target))
- user.drop_item()
+ user.drop_item(src)
src.target = target
loc = null
if (ismob(target))
var/mob/M=target
target:attack_log += "\[[time_stamp()]\] Had the [name] planted on them by [user.real_name] ([user.ckey])"
- user.visible_message("\red [user.name] finished planting an explosive on [target.name]!")
+ user.visible_message("[user.name] finished planting an explosive on [target.name]!")
playsound(get_turf(src), 'sound/weapons/c4armed.ogg', 60, 1)
if(!iscarbon(user))
M.LAssailant = null
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index aabe4fec354..a92ad964bc1 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -94,7 +94,7 @@
if(isrobot(user) && !isMoMMI(user)) // MoMMI's can but borgs can't
user << "You're a robot. No."
return
- user.drop_item(src)
+ user.drop_item(W, src)
user << "You cram \the [W] into the nozzle of \the [src]."
message_admins("[user]/[user.ckey] has crammed \a [W] into a [src].")
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index 53e9024b795..38b4ff04ca5 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -99,7 +99,7 @@
var/obj/item/device/assembly/igniter/I = W
if(I.secured) return
if(igniter) return
- user.drop_item(src)
+ user.drop_item(I, src)
igniter = I
update_icon()
return
@@ -108,7 +108,7 @@
if(ptank)
user << "There appears to already be a plasma tank loaded in [src]!"
return
- user.drop_item(src)
+ user.drop_item(W, src)
ptank = W
update_icon()
return
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index f4c503a9e56..d56e6a55d5c 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -32,7 +32,7 @@
w_class = W
/obj/item/weapon/gift/attack_self(mob/user as mob)
- user.drop_item()
+ user.drop_item(src)
if(gift)
user.put_in_active_hand(gift)
gift.add_fingerprint(user)
@@ -340,7 +340,7 @@
return
src.amount -= a_used
- user.drop_item()
+ user.drop_item(null, )
var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
G.size = W.w_class
G.w_class = G.size + 1
diff --git a/code/game/objects/items/weapons/glowstick.dm b/code/game/objects/items/weapons/glowstick.dm
index 6fe680962d7..b6e4028a2fd 100644
--- a/code/game/objects/items/weapons/glowstick.dm
+++ b/code/game/objects/items/weapons/glowstick.dm
@@ -13,7 +13,7 @@
w_class = 2
suicide_act(mob/user)
- viewers(user) << "\red [user] is breaking open the [src.name] and eating the liquid inside! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is breaking open the [src.name] and eating the liquid inside! It looks like \he's trying to commit suicide!"
return (TOXLOSS)
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index feaebb1132e..cb9adf9769f 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -67,6 +67,14 @@
icon_state = initial(icon_state) +"_ass"
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
stage = 1
+ else if(istype(W,/obj/item/stack/cable_coil/) && !beakers.len)
+ var/obj/item/stack/cable_coil/coil = W
+ if(coil.amount < 2) return
+ coil.use(2)
+ var/obj/item/weapon/electrolyzer/E = new /obj/item/weapon/electrolyzer
+ user.before_take_item(src)
+ user.put_in_hands(E)
+ qdel(src)
else if(istype(W,/obj/item/weapon/screwdriver) && path != 2)
if(stage == 1)
path = 1
@@ -103,7 +111,7 @@
user << " This type of grenade cannot hold more than one slime core."
else
user << " You add \the [W] to the assembly."
- user.drop_item(src)
+ user.drop_item(W, src)
beakers += W
E = W
inserted_cores++
@@ -111,8 +119,7 @@
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
else if(W.reagents.total_volume)
user << " You add \the [W] to the assembly."
- user.drop_item()
- W.loc = src
+ user.drop_item(W, src)
beakers += W
stage = 1
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
@@ -297,7 +304,7 @@ obj/item/weapon/grenade/chem_grenade/exgrenade/attackby(obj/item/weapon/W as obj
user << " You cannot fit more than two slime cores in this grenade."
else
user << " You add \the [W] to the assembly."
- user.drop_item(src)
+ user.drop_item(W, src)
beakers += W
if (E == null)//E = first slime extract, C = second slime extract
E = W
@@ -308,7 +315,7 @@ obj/item/weapon/grenade/chem_grenade/exgrenade/attackby(obj/item/weapon/W as obj
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
else if(W.reagents.total_volume)
user << " You add \the [W] to the assembly."
- user.drop_item(src)
+ user.drop_item(W, src)
beakers += W
stage = 1
name = "unsecured EX grenade with [beakers.len] containers[detonator?" and detonator":""]"
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index b6861fb81ea..a857ad31e95 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -27,7 +27,7 @@
S.active = 0 // -- Polymorph
S.icon_state = "shield0"
- M << "\red BANG"
+ M << "BANG"
playsound(get_turf(src), 'sound/effects/bang.ogg', 25, 1)
//Checking for protections
@@ -81,19 +81,19 @@
var/mob/living/carbon/human/H = M
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
if (E && E.damage >= E.min_bruised_damage)
- M << "\red Your eyes start to burn badly!"
+ M << "Your eyes start to burn badly!"
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
if (E.damage >= E.min_broken_damage)
- M << "\red You can't see anything!"
+ M << "You can't see anything!"
if (M.ear_damage >= 15)
- M << "\red Your ears start to ring badly!"
+ M << "Your ears start to ring badly!"
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
if (prob(M.ear_damage - 10 + 5))
- M << "\red You can't hear anything!"
+ M << "You can't hear anything!"
M.sdisabilities |= DEAF
else
if (M.ear_damage >= 5)
- M << "\red Your ears start to ring!"
+ M << "Your ears start to ring!"
M.update_icons()
/obj/effect/effect/smoke/flashbang
diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm
index 7a871fc82a7..3b93eccb752 100644
--- a/code/game/objects/items/weapons/grenades/grenade.dm
+++ b/code/game/objects/items/weapons/grenades/grenade.dm
@@ -37,7 +37,7 @@
prime()
return
user.dir = get_dir(user, target)
- user.drop_item()
+ user.drop_item(null, )
var/t = (isturf(target) ? target : target.loc)
walk_towards(src, t, 3)
return*/
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index c6944ee09a0..fdfbaaaf8b7 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -25,7 +25,7 @@
var/turf/p_loc_m = C.loc
playsound(get_turf(src), 'sound/weapons/handcuffs.ogg', 30, 1, -2)
for(var/mob/O in viewers(user, null))
- O.show_message("\red [user] is trying to put handcuffs on [C]!", 1)
+ O.show_message("[user] is trying to put handcuffs on [C]!", 1)
spawn(30)
if(!C) return
if(p_loc == user.loc && p_loc_m == C.loc)
@@ -34,7 +34,7 @@
else
if ((M_CLUMSY in usr.mutations) && prob(50))
- usr << "\red Uh ... how do those things work?!"
+ usr << "Uh ... how do those things work?!"
if (istype(C, /mob/living/carbon/human))
if(!C.handcuffed)
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
@@ -50,7 +50,7 @@
return
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
if (istype(C, /mob/living/carbon/human))
if(!C.handcuffed)
diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm
index 454fb809e85..de1e249edb2 100644
--- a/code/game/objects/items/weapons/hydroponics.dm
+++ b/code/game/objects/items/weapons/hydroponics.dm
@@ -53,10 +53,10 @@
else
S.item_quants[G.name] = 1
else
- user << "\blue The seed bag is full."
+ user << "The seed bag is full."
S.updateUsrDialog()
return
- user << "\blue You pick up all the seeds."
+ user << "You pick up all the seeds."
else
if (S.contents.len < S.capacity)
S.contents += src;
@@ -65,7 +65,7 @@
else
S.item_quants[name] = 1
else
- user << "\blue The seed bag is full."
+ user << "The seed bag is full."
S.updateUsrDialog()
return
@@ -155,13 +155,13 @@
/obj/item/weapon/grown/novaflower/attack(mob/living/carbon/M as mob, mob/user as mob)
if(!..()) return
if(istype(M, /mob/living))
- M << "\red You are heated by the warmth of the of the [name]!"
+ M << "You are heated by the warmth of the of the [name]!"
M.bodytemperature += potency/2 * TEMPERATURE_DAMAGE_COEFFICIENT
/obj/item/weapon/grown/novaflower/pickup(mob/living/carbon/human/user as mob)
if(!user.gloves)
- user << "\red The [name] burns your bare hand!"
+ user << "The [name] burns your bare hand!"
user.adjustFireLoss(rand(1,5))
/*
@@ -169,7 +169,7 @@
*/
/obj/item/weapon/grown/nettle/pickup(mob/living/carbon/human/user as mob)
if(!user.gloves)
- user << "\red The nettle burns your bare hand!"
+ user << "The nettle burns your bare hand!"
if(istype(user, /mob/living/carbon/human))
var/organ = ((user.hand ? "l_":"r_") + "arm")
var/datum/organ/external/affecting = user.get_organ(organ)
@@ -197,12 +197,12 @@
user.take_organ_damage(0,force)
if(prob(50))
user.Paralyse(5)
- user << "\red You are stunned by the Deathnettle when you try picking it up!"
+ user << "You are stunned by the Deathnettle when you try picking it up!"
/obj/item/weapon/grown/deathnettle/attack(mob/living/carbon/M as mob, mob/user as mob)
if(!..()) return
if(istype(M, /mob/living))
- M << "\red You are stunned by the powerful acid of the Deathnettle!"
+ M << "You are stunned by the powerful acid of the Deathnettle!"
M.attack_log += text("\[[time_stamp()]\] Had the [src.name] used on them by [user.name] ([user.ckey])")
user.attack_log += text("\[[time_stamp()]\] Used the [src.name] on [M.name] ([M.ckey])")
diff --git a/code/game/objects/items/weapons/implants/exile2.dm b/code/game/objects/items/weapons/implants/exile2.dm
index a085ed1a641..c167d654ea5 100644
--- a/code/game/objects/items/weapons/implants/exile2.dm
+++ b/code/game/objects/items/weapons/implants/exile2.dm
@@ -29,7 +29,7 @@
implanted(mob/M)
if(!istype(M, /mob/living/carbon/human)) return 0
var/mob/living/carbon/human/H = M
- H << "\blue Your hair raises on end as you feel a weak bluespace void surround you."
+ H << "Your hair raises on end as you feel a weak bluespace void surround you."
H.locked_to_z = ASTEROID_Z
return 1
diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm
index 762311b9d7e..aff923832ee 100644
--- a/code/game/objects/items/weapons/implants/implantcase.dm
+++ b/code/game/objects/items/weapons/implants/implantcase.dm
@@ -38,11 +38,11 @@
if(!src.imp) return
if(!src.imp.allow_reagents) return
if(src.imp.reagents.total_volume >= src.imp.reagents.maximum_volume)
- user << "\red [src] is full."
+ user << "[src] is full."
else
spawn(5)
I.reagents.trans_to(src.imp, 5)
- user << "\blue You inject 5 units of the solution. The syringe now contains [I.reagents.total_volume] units."
+ user << "You inject 5 units of the solution. The syringe now contains [I.reagents.total_volume] units."
else if (istype(I, /obj/item/weapon/implanter))
if (I:imp)
if ((src.imp || I:imp.implanted))
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index 38aa376fc0e..d6fba1b32f1 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -112,10 +112,10 @@
put_mob(mob/living/carbon/M as mob)
if(!iscarbon(M))
- usr << "\red The [src.name] cannot hold this!"
+ usr << "The [src.name] cannot hold this!"
return
if(src.occupant)
- usr << "\red The [src.name] is already occupied!"
+ usr << "The [src.name] is already occupied!"
return
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
@@ -136,7 +136,7 @@
if(!imp) continue
if(istype(imp, /obj/item/weapon/implant/loyalty))
for (var/mob/O in viewers(M, null))
- O.show_message("\red [M] has been implanted by the [src.name].", 1)
+ O.show_message("[M] has been implanted by the [src.name].", 1)
if(imp.implanted(M))
imp.loc = M
@@ -158,7 +158,7 @@
set name = "Eject occupant"
set category = "Object"
set src in oview(1)
- if(usr.stat != 0)
+ if(usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
src.go_out(usr)
add_fingerprint(usr)
@@ -169,7 +169,7 @@
set name = "Move Inside"
set category = "Object"
set src in oview(1)
- if(usr.stat != 0 || stat & (NOPOWER|BROKEN))
+ if(usr.stat != 0 || stat & (NOPOWER|BROKEN) || (usr.status_flags & FAKEDEATH))
return
put_mob(usr)
return
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index fc8a9b4ba51..c9a627aa04e 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -24,19 +24,19 @@
return
if (user && src.imp)
for (var/mob/O in viewers(M, null))
- O.show_message("\red [user] is attemping to implant [M].", 1)
+ O.show_message("[user] is attemping to implant [M].", 1)
var/turf/T1 = get_turf(M)
if (T1 && ((M == user) || do_after(user, 50)))
if(user && M && (get_turf(M) == T1) && src && src.imp)
for (var/mob/O in viewers(M, null))
- O.show_message("\red [M] has been implanted by [user].", 1)
+ O.show_message("[M] has been implanted by [user].", 1)
M.attack_log += text("\[[time_stamp()]\] Implanted with [src.name] ([src.imp.name]) by [user.name] ([user.ckey])")
user.attack_log += text("\[[time_stamp()]\] Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])")
msg_admin_attack("[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)")
- user.show_message("\red You implanted the implant into [M].")
+ user.show_message("You implanted the implant into [M].")
if(src.imp.implanted(M, user))
src.imp.loc = M
src.imp.imp_in = M
@@ -129,7 +129,7 @@
/obj/item/weapon/implanter/compressed/afterattack(var/obj/item/I, mob/user as mob)
if(is_type_in_list(I,forbidden_types))
- user << "\red A red light flickers on the implanter."
+ user << "A red light flickers on the implanter."
return
if(istype(I) && imp)
var/obj/item/weapon/implant/compressed/c = imp
@@ -137,7 +137,7 @@
if(istype(I,/obj/item/weapon/storage))
..()
return
- user << "\red Something is already scanned inside the implant!"
+ user << "Something is already scanned inside the implant!"
return
if(user)
user.u_equip(I)
diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm
index cc6eb303a45..ab225dafa52 100644
--- a/code/game/objects/items/weapons/implants/implantpad.dm
+++ b/code/game/objects/items/weapons/implants/implantpad.dm
@@ -42,7 +42,7 @@
..()
if(istype(C, /obj/item/weapon/implantcase))
if(!( src.case ))
- user.drop_item(src)
+ user.drop_item(C, src)
src.case = C
else
return
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index 0bce18189b8..56442f0440b 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -76,9 +76,9 @@
if (src.loaded_food)
reagents.update_total()
if(M == user)
- user.visible_message("\blue [user] eats a delicious forkful of [loaded_food_name]!")
+ user.visible_message("[user] eats a delicious forkful of [loaded_food_name]!")
else
- user.visible_message("\blue [user] feeds [M] a delicious forkful of [loaded_food_name]!")
+ user.visible_message("[user] feeds [M] a delicious forkful of [loaded_food_name]!")
reagents.reaction(M, INGEST)
reagents.trans_to(M.reagents, reagents.total_volume)
overlays -= loaded_food
@@ -143,14 +143,14 @@
melt_temperature = MELTPOINT_STEEL
/obj/item/weapon/kitchen/utensil/knife/suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
+ viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
return (BRUTELOSS)
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red You accidentally cut yourself with the [src]."
+ user << "You accidentally cut yourself with the [src]."
user.take_organ_damage(20)
return
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
@@ -188,9 +188,9 @@
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
/obj/item/weapon/kitchen/utensil/knife/large/suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
+ viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
return (BRUTELOSS)
/obj/item/weapon/kitchen/utensil/knife/large/ritual
@@ -255,7 +255,7 @@
/obj/item/weapon/kitchen/rollingpin/attack(mob/living/M as mob, mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red The [src] slips out of your hand and hits your head."
+ user << "The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
return
@@ -275,7 +275,7 @@
if (H.stat < 2 && H.health < 50 && prob(90))
// ******* Check
if (istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))
- H << "\red The helmet protects you from being hit hard in the head!"
+ H << "The helmet protects you from being hit hard in the head!"
return
var/time = rand(2, 6)
if (prob(75))
@@ -283,10 +283,10 @@
else
H.Stun(time)
if(H.stat != 2) H.stat = 1
- user.visible_message("\red [H] has been knocked unconscious!", "\red You knock [H] unconscious!")
+ user.visible_message("[H] has been knocked unconscious!", "You knock [H] unconscious!")
return
else
- H.visible_message("\red [user] tried to knock [H] unconscious!", "\red [user] tried to knock you unconscious!")
+ H.visible_message("[user] tried to knock [H] unconscious!", "[user] tried to knock you unconscious!")
H.eye_blurry += 3
return ..()
@@ -329,7 +329,7 @@
if((M_CLUMSY in user.mutations) && prob(50)) //What if he's a clown?
- M << "\red You accidentally slam yourself with the [src]!"
+ M << "You accidentally slam yourself with the [src]!"
M.Weaken(1)
user.take_organ_damage(2)
if(prob(50))
@@ -366,19 +366,19 @@
if(prob(50))
playsound(M, 'sound/items/trayhit1.ogg', 50, 1)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] with the tray!", user, M), 1)
return
else
playsound(M, 'sound/items/trayhit2.ogg', 50, 1) //we applied the damage, we played the sound, we showed the appropriate messages. Time to return and stop the proc
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] with the tray!", user, M), 1)
return
if(istype(M, /mob/living/carbon/human) && H.check_body_part_coverage(EYES))
- H << "\red You get slammed in the face with the tray, against your mask!"
+ H << "You get slammed in the face with the tray, against your mask!"
if(prob(33))
src.add_blood(H)
if (H.wear_mask)
@@ -394,11 +394,11 @@
if(prob(50))
playsound(M, 'sound/items/trayhit1.ogg', 50, 1)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] with the tray!", user, M), 1)
else
playsound(M, 'sound/items/trayhit2.ogg', 50, 1) //sound playin'
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] with the tray!", user, M), 1)
if(prob(10))
M.Stun(rand(1,3))
M.take_organ_damage(3)
@@ -408,7 +408,7 @@
return
else //No eye or head protection, tough luck!
- M << "\red You get slammed in the face with the tray!"
+ M << "You get slammed in the face with the tray!"
if(prob(33))
src.add_blood(M)
var/turf/location = H.loc
@@ -418,11 +418,11 @@
if(prob(50))
playsound(M, 'sound/items/trayhit1.ogg', 50, 1)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] in the face with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] in the face with the tray!", user, M), 1)
else
playsound(M, 'sound/items/trayhit2.ogg', 50, 1) //sound playin' again
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] slams [] in the face with the tray!", user, M), 1)
+ O.show_message(text("[] slams [] in the face with the tray!", user, M), 1)
if(prob(30))
M.Stun(rand(2,4))
M.take_organ_damage(4)
@@ -524,7 +524,7 @@
/*/obj/item/weapon/tray/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/fork))
if (W.icon_state == "forkloaded")
- user << "\red You already have omelette on your fork."
+ user << "You already have omelette on your fork."
return
W.icon = 'icons/obj/kitchen.dmi'
W.icon_state = "forkloaded"
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index fa8c788655e..220cf413912 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -4,8 +4,8 @@
heat_production = 3500
/obj/item/weapon/melee/energy/suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \
- "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide.")
+ viewers(user) << pick("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \
+ "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.")
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/is_hot()
@@ -33,7 +33,7 @@
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
suicide_act(mob/user)
- viewers(user) << "\red [user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide."
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/sword
diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm
index 2a910ea8d2c..5ea2750353f 100644
--- a/code/game/objects/items/weapons/melee/misc.dm
+++ b/code/game/objects/items/weapons/melee/misc.dm
@@ -14,5 +14,5 @@
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
suicide_act(mob/user)
- viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide."
return (OXYLOSS)
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm
index cb616cb5cc2..7f51d3a6349 100644
--- a/code/game/objects/items/weapons/paint.dm
+++ b/code/game/objects/items/weapons/paint.dm
@@ -20,7 +20,7 @@ var/global/list/cached_icons = list()
var/paint_type = ""
/obj/item/weapon/reagent_containers/glass/paint/suicide_act(mob/user)
- viewers(user) << "\red [user] is taking \his hand and eating the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is taking \his hand and eating the [src.name]! It looks like \he's trying to commit suicide!"
return (TOXLOSS|OXYLOSS)
/obj/item/weapon/reagent_containers/glass/paint/mop_act(obj/item/weapon/mop/M, mob/user)
@@ -29,7 +29,7 @@ var/global/list/cached_icons = list()
/obj/item/weapon/reagent_containers/glass/paint/afterattack(turf/simulated/target, mob/user , flag)
if(istype(target) && reagents.total_volume > 5)
for(var/mob/O in viewers(user))
- O.show_message("\red \The [target] has been splashed with something by [user]!", 1)
+ O.show_message("\The [target] has been splashed with something by [user]!", 1)
spawn(5)
reagents.reaction(target, TOUCH)
reagents.remove_any(5)
diff --git a/code/game/objects/items/weapons/paiwire.dm b/code/game/objects/items/weapons/paiwire.dm
index 3a726771584..35ebee86759 100644
--- a/code/game/objects/items/weapons/paiwire.dm
+++ b/code/game/objects/items/weapons/paiwire.dm
@@ -2,7 +2,7 @@
if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera))
user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.")
if(user && user.get_active_hand() == src)
- user.drop_item(M)
+ user.drop_item(src, M)
src.machine = M
else
user.visible_message("[user] dumbly fumbles to find a place on [M] to plug in [src].", "There aren't any ports on [M] that match the jack belonging to [src].")
diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm
index 8097d31ff11..2aef235359c 100644
--- a/code/game/objects/items/weapons/power_cells.dm
+++ b/code/game/objects/items/weapons/power_cells.dm
@@ -21,7 +21,7 @@
var/minor_fault = 0 //If not 100% reliable, it will build up faults.
suicide_act(mob/user)
- viewers(user) << "\red [user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide."
return (FIRELOSS)
/obj/item/weapon/cell/crap
diff --git a/code/game/objects/items/weapons/shard.dm b/code/game/objects/items/weapons/shard.dm
index de0c63a09c8..4f72a27fbe9 100644
--- a/code/game/objects/items/weapons/shard.dm
+++ b/code/game/objects/items/weapons/shard.dm
@@ -15,6 +15,7 @@
g_amt = 3750
w_type = RECYK_GLASS
melt_temperature = MELTPOINT_GLASS
+ siemens_coefficient = 0 //no conduct
attack_verb = list("stabbed", "slashed", "sliced", "cut")
var/glass = /obj/item/stack/sheet/glass/glass
@@ -64,8 +65,8 @@
return
/obj/item/weapon/shard/suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.")
+ viewers(user) << pick("[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.")
return (BRUTELOSS)
/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index bb1dc277b7e..ae01479f9cf 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -22,7 +22,7 @@
var/cooldown = 0 //shield bash cooldown. based on world.time
suicide_act(mob/user)
- viewers(user) << "\red [user] is smashing \his face into the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is smashing \his face into the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
IsShield()
@@ -73,7 +73,7 @@
var/active = 0
suicide_act(mob/user)
- viewers(user) << "\red [user] is putting the [src.name] to their head and activating it! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is putting the [src.name] to their head and activating it! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
@@ -96,10 +96,10 @@
/obj/item/weapon/cloaking_device/attack_self(mob/user as mob)
src.active = !( src.active )
if (src.active)
- user << "\blue The cloaking device is now active."
+ user << "The cloaking device is now active."
src.icon_state = "shield1"
else
- user << "\blue The cloaking device is now inactive."
+ user << "The cloaking device is now inactive."
src.icon_state = "shield0"
src.add_fingerprint(user)
return
@@ -110,3 +110,38 @@
if(ismob(loc))
loc:update_icons()
..()
+
+/obj/item/weapon/shield/riot/proto
+ name = "Prototype Shield"
+ desc = "Doubles as a sled!"
+ icon_state = "protoshield"
+ inhand_states = list("left_hand" = 'icons/mob/in-hand/left/shields.dmi', "right_hand" = 'icons/mob/in-hand/right/shields.dmi')
+ IsShield()
+ return 1
+
+ attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/spear))
+ if(cooldown < world.time - 25)
+ user.visible_message("[user] bashes [src] with [W]!")
+ playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1)
+ cooldown = world.time
+ else
+ ..()
+
+
+/obj/item/weapon/shield/riot/joe
+ name = "Sniper Shield"
+ desc = "Very useful for close-quarters sniping, regardless of how stupid that idea is."
+ icon_state = "joeshield"
+ inhand_states = list("left_hand" = 'icons/mob/in-hand/left/shields.dmi', "right_hand" = 'icons/mob/in-hand/right/shields.dmi')
+ IsShield()
+ return 1
+
+ attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/spear))
+ if(cooldown < world.time - 25)
+ user.visible_message("[user] bashes [src] with [W]!")
+ playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1)
+ cooldown = world.time
+ else
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index c55cfe01e81..892f788e636 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -67,7 +67,7 @@
cant_hold = list("/obj/item/weapon/disk/nuclear")
suicide_act(mob/user)
- viewers(user) << "\red [user] puts the [src.name] over \his head and tightens the handles around \his neck! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] puts the [src.name] over \his head and tightens the handles around \his neck! It looks like \he's trying to commit suicide."
return(OXYLOSS)
// -----------------------------
@@ -148,7 +148,7 @@
current += S.amount
if(capacity == current)//If it's full, you're done
if(!stop_messages)
- usr << "\red The snatcher is full."
+ usr << "The snatcher is full."
return 0
return 1
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index 9b9ca0e1747..5e332a5c271 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -13,7 +13,7 @@
fire_fuel = 2
suicide_act(mob/user)
- viewers(user) << "\red [user] is farting lightly on the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is farting lightly on the [src.name]! It looks like \he's trying to commit suicide!"
return (user.death(1))
@@ -93,40 +93,40 @@
if (M.stat !=2)
if(M.mind && (M.mind.assigned_role == "Chaplain"))
- user << "\red You can't heal yourself!"
+ user << "You can't heal yourself!"
return
if((iscult(M) && !isculthead(M)) && (prob(20))) // can't deconvert originals - Pomf
- M << "\red The power of [src.deity_name] clears your mind of heresy!"
- user << "\red You see how [M]'s eyes become clear, the cult no longer holds control over him!"
+ M << "The power of [src.deity_name] clears your mind of heresy!"
+ user << "You see how [M]'s eyes become clear, the cult no longer holds control over him!"
ticker.mode.remove_cultist(M.mind)
if ((istype(M, /mob/living/carbon/human) && prob(60)))
bless(M)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] heals [] with the power of [src.deity_name]!", user, M), 1)
- M << "\red May the power of [src.deity_name] compel you to be healed!"
+ O.show_message(text("[] heals [] with the power of [src.deity_name]!", user, M), 1)
+ M << "May the power of [src.deity_name] compel you to be healed!"
playsound(get_turf(src), "punch", 25, 1, -1)
else
if(ishuman(M) && !istype(M:head, /obj/item/clothing/head/helmet))
M.adjustBrainLoss(10)
- M << "\red You feel dumber."
+ M << "You feel dumber."
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] beats [] over the head with []!", user, M, src), 1)
+ O.show_message(text("[] beats [] over the head with []!", user, M, src), 1)
playsound(get_turf(src), "punch", 25, 1, -1)
else if(M.stat == 2)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] smacks []'s lifeless corpse with [].", user, M, src), 1)
+ O.show_message(text("[] smacks []'s lifeless corpse with [].", user, M, src), 1)
playsound(get_turf(src), "punch", 25, 1, -1)
return
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob)
/* if (istype(A, /turf/simulated/floor))
- user << "\blue You hit the floor with the bible."
+ user << "You hit the floor with the bible."
if(user.mind && (user.mind.assigned_role == "Chaplain"))
call(/obj/effect/rune/proc/revealrunes)(src)*/
user.delayNextAttack(5)
if(user.mind && (user.mind.assigned_role == "Chaplain"))
if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder
- user << "\blue You bless [A]."
+ user << "You bless [A]."
var/water2holy = A.reagents.get_reagent_amount("water")
A.reagents.del_reagent("water")
A.reagents.add_reagent("holywater",water2holy)
diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm
index 4c965dc5519..f1038fd185a 100644
--- a/code/game/objects/items/weapons/storage/briefcase.dm
+++ b/code/game/objects/items/weapons/storage/briefcase.dm
@@ -33,7 +33,7 @@
//..()
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red The [src] slips out of your hand and hits your head."
+ user << "The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
return
@@ -51,7 +51,7 @@
var/mob/H = M
// ******* Check
if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80)))
- M << "\red The helmet protects you from being hit hard in the head!"
+ M << "The helmet protects you from being hit hard in the head!"
return
var/time = rand(2, 6)
if (prob(75))
@@ -60,9 +60,9 @@
M.Stun(time)
if(M.stat != 2) M.stat = 1
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] has been knocked unconscious!", M), 1, "\red You hear someone fall.", 2)
+ O.show_message(text("[] has been knocked unconscious!", M), 1, "You hear someone fall.", 2)
else
- M << text("\red [] tried to knock you unconcious!",user)
+ M << text("[] tried to knock you unconcious!",user)
M.eye_blurry += 3
return
@@ -104,7 +104,7 @@
bottom_open = 0
else if(bottom_open && item.w_class <= 3.0)
stored_item = item
- user.drop_item()
+ user.drop_item(item)
max_w_class = 3.0 - stored_item.w_class
item.loc = null //null space here we go - to stop it showing up in the briefcase
user << "You place \the [item] into the false bottom of the briefcase."
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index 8747f38ae82..706d4943d2f 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -15,10 +15,13 @@
var/icon_locked = "lockbox+l"
var/icon_closed = "lockbox"
var/icon_broken = "lockbox+b"
+ var/tracked_access = "It doesn't look like it's ever been used."
+
/obj/item/weapon/storage/lockbox/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/card/id))
+ var/obj/item/weapon/card/id/ID = W
if(src.broken)
user << "It appears to be broken."
return
@@ -27,10 +30,12 @@
if(src.locked)
src.icon_state = src.icon_locked
user << "You lock the [src.name]!"
+ tracked_access = "The tracker reads: 'Last locked by [ID.registered_name].'"
return
else
src.icon_state = src.icon_closed
user << "You unlock the [src.name]!"
+ tracked_access = "The tracker reads: 'Last unlocked by [ID.registered_name].'"
return
else
user << "Access Denied"
@@ -162,11 +167,10 @@
name = "semi-secure lockbox"
desc = "A securable locked box. Can't lock anything, but can track whoever used it."
req_access = list()
- var/tracked_access = "It doesn't look like it's ever been used."
-/obj/item/weapon/storage/lockbox/unlockable/examine(mob/user)
+/obj/item/weapon/storage/lockbox/examine(mob/user)
..()
- user << tracked_access
+ user << "tracked_access"
/obj/item/weapon/storage/lockbox/unlockable/attackby(obj/O as obj, mob/user as mob)
if (istype(O, /obj/item/weapon/card/id))
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 9deeaf4de72..2b4edeadcce 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -176,7 +176,7 @@
//I consider this worthless but it isn't my code so whatever. Remove or uncomment.
/*attack(mob/M as mob, mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red The [src] slips out of your hand and hits your head."
+ user << "The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
return
@@ -193,7 +193,7 @@
if (H.stat < 2 && H.health < 50 && prob(90))
// ******* Check
if (istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))
- H << "\red The helmet protects you from being hit hard in the head!"
+ H << "The helmet protects you from being hit hard in the head!"
return
var/time = rand(2, 6)
if (prob(75))
@@ -202,9 +202,9 @@
H.Stun(time)
if(H.stat != 2) H.stat = 1
for(var/mob/O in viewers(H, null))
- O.show_message(text("\red [] has been knocked unconscious!", H), 1, "\red You hear someone fall.", 2)
+ O.show_message(text("[] has been knocked unconscious!", H), 1, "You hear someone fall.", 2)
else
- H << text("\red [] tried to knock you unconcious!",user)
+ H << text("[] tried to knock you unconcious!",user)
H.eye_blurry += 3
return*/
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 061cea6bf99..be0d5ca4ffb 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -429,7 +429,7 @@
set name = "Empty Contents"
set category = "Object"
- if((!ishuman(usr) && (src.loc != usr)) || usr.stat || usr.restrained())
+ if((!ishuman(usr) && (src.loc != usr)) || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
var/turf/T = get_turf(src)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 83b2292514a..e01de226740 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -18,7 +18,7 @@
attack_verb = list("robusted")
suicide_act(mob/user)
- viewers(user) << "\red [user] is [pick("stoving","robusting")] \his head in with the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is [pick("stoving","robusting")] \his head in with the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index e3f3c346b51..406c91d95c3 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -1,7 +1,7 @@
/obj/item/weapon/storage/box/syndicate/
New()
..()
- var/tagname = pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1, "psycho" = 1, "hotline" = 1))
+ var/tagname = pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1, "psycho" = 1, "hotline" = 1, "balloon" = 0.1))
switch (tagname)
if("bloodyspai")
new /obj/item/clothing/under/chameleon(src)
@@ -92,6 +92,16 @@
new /obj/item/weapon/kitchen/utensil/knife/large/butch/meatcleaver(src)
new /obj/item/weapon/storage/pill_bottle/hyperzine(src)
new /obj/item/weapon/card/id/syndicate(src)
+
+
+ if("balloon")
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
+ new /obj/item/toy/syndicateballoon(src)
tag = tagname
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index bc79486ea10..fdd6f309f0b 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -62,7 +62,7 @@
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/cell))
if(!bcell)
- user.drop_item(src)
+ user.drop_item(W, src)
bcell = W
user << "You install a cell in [src]."
update_icon()
diff --git a/code/game/objects/items/weapons/surgery_limbattachment.dm b/code/game/objects/items/weapons/surgery_limbattachment.dm
index 5ada374d1cd..e544c0c11e8 100644
--- a/code/game/objects/items/weapons/surgery_limbattachment.dm
+++ b/code/game/objects/items/weapons/surgery_limbattachment.dm
@@ -19,36 +19,36 @@
else if((user.zone_sel.selecting == "l_leg") && (istype(src, /obj/item/robot_parts/l_leg)))
limbloc = "l_foot"
else
- user << "\red That doesn't fit there!"
+ user << "That doesn't fit there!"
return ..()
var/mob/living/carbon/human/H = M
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
if(S.status & ORGAN_DESTROYED)
if(!(S.status & ORGAN_ATTACHABLE))
- user << "\red The wound is not ready for a replacement!"
+ user << "The wound is not ready for a replacement!"
return 0
if(M != user)
M.visible_message( \
- "\red [user] is beginning to attach \the [src] where [H]'s [S.display_name] used to be.", \
- "\red [user] begins to attach \the [src] where your [S.display_name] used to be.")
+ "[user] is beginning to attach \the [src] where [H]'s [S.display_name] used to be.", \
+ "[user] begins to attach \the [src] where your [S.display_name] used to be.")
else
M.visible_message( \
- "\red [user] begins to attach a robotic limb where \his [S.display_name] used to be with [src].", \
- "\red You begin to attach \the [src] where your [S.display_name] used to be.")
+ "[user] begins to attach a robotic limb where \his [S.display_name] used to be with [src].", \
+ "You begin to attach \the [src] where your [S.display_name] used to be.")
if(do_mob(user, H, 100))
if(M != user)
M.visible_message( \
- "\red [user] finishes attaching [H]'s new [S.display_name].", \
- "\red [user] finishes attaching your new [S.display_name].")
+ "[user] finishes attaching [H]'s new [S.display_name].", \
+ "[user] finishes attaching your new [S.display_name].")
else
M.visible_message( \
- "\red [user] finishes attaching \his new [S.display_name].", \
- "\red You finish attaching your new [S.display_name].")
+ "[user] finishes attaching \his new [S.display_name].", \
+ "You finish attaching your new [S.display_name].")
if(H == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
S.take_damage(15)
S.status &= ~ORGAN_BROKEN
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index eefae8a3a19..04928cbfd2f 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -27,7 +27,7 @@
origin_tech = "materials=1;biotech=1"
suicide_act(mob/user)
- viewers(user) << "\red [user] is pulling \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is pulling \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
@@ -48,34 +48,34 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N
- user << "\red You cannot locate any eyes on this creature!"
+ user << "You cannot locate any eyes on this creature!"
return
switch(M.eye_op_stage)
if(1.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is having his eyes retracted by [user].", 1)
- M << "\red [user] begins to seperate your eyes with [src]!"
- user << "\red You seperate [M]'s eyes with [src]!"
+ O.show_message("[M] is having his eyes retracted by [user].", 1)
+ M << "[user] begins to seperate your eyes with [src]!"
+ user << "You seperate [M]'s eyes with [src]!"
else
user.visible_message( \
- "\red [user] begins to have his eyes retracted.", \
- "\red You begin to pry open your eyes with [src]!" \
+ "[user] begins to have his eyes retracted.", \
+ "You begin to pry open your eyes with [src]!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(15))
@@ -94,20 +94,20 @@ LOOK FOR SURGERY.DM*/
return ..()
if(H.wear_suit || H.w_uniform)
- user << "\red You're going to need to remove that suit/jumpsuit first."
+ user << "You're going to need to remove that suit/jumpsuit first."
return
var/obj/item/alien_embryo/A = locate() in M.contents
if(!A)
return ..()
- user.visible_message("\red [user] begins to pull something out of [M]'s chest.", "\red You begin to pull the alien organism out of [M]'s chest.")
+ user.visible_message("[user] begins to pull something out of [M]'s chest.", "You begin to pull the alien organism out of [M]'s chest.")
spawn(20 + rand(0,50))
if(!A || A.loc != M)
return
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("chest")
if(affecting.take_damage(30))
@@ -122,7 +122,7 @@ LOOK FOR SURGERY.DM*/
M:alien_op_stage = 4.0
if(M)
- user.visible_message("\red [user] pulls an alien organism out of [M]'s chest.", "\red You pull the alien organism out of [M]'s chest.")
+ user.visible_message("[user] pulls an alien organism out of [M]'s chest.", "You pull the alien organism out of [M]'s chest.")
A.loc = M.loc //alien embryo handles cleanup
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
@@ -150,7 +150,7 @@ LOOK FOR SURGERY.DM*/
attack_verb = list("attacked", "pinched")
suicide_act(mob/user)
- viewers(user) << "\red [user] is pulling \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is pulling \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
@@ -168,16 +168,16 @@ LOOK FOR SURGERY.DM*/
if(1.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [user] is beginning to clamp bleeders in [M]'s abdomen cut open with [src].", 1)
- M << "\red [user] begins to clamp bleeders in your abdomen with [src]!"
- user << "\red You clamp bleeders in [M]'s abdomen with [src]!"
+ O.show_message("[user] is beginning to clamp bleeders in [M]'s abdomen cut open with [src].", 1)
+ M << "[user] begins to clamp bleeders in your abdomen with [src]!"
+ user << "You clamp bleeders in [M]'s abdomen with [src]!"
M:appendix_op_stage = 2.0
if(4.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [user] is removing [M]'s appendix with [src].", 1)
- M << "\red [user] begins to remove your appendix with [src]!"
- user << "\red You remove [M]'s appendix with [src]!"
+ O.show_message("[user] is removing [M]'s appendix with [src].", 1)
+ M << "[user] begins to remove your appendix with [src]!"
+ user << "You remove [M]'s appendix with [src]!"
for(var/datum/disease/D in M.viruses)
if(istype(D, /datum/disease/appendicitis))
new /obj/item/weapon/reagent_containers/food/snacks/appendix/inflamed(get_turf(M))
@@ -195,34 +195,34 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
if(istype(M, /mob/living/carbon/alien))//Aliens don't have eyes./N
- user << "\red You cannot locate any eyes on this creature!"
+ user << "You cannot locate any eyes on this creature!"
return
switch(M.eye_op_stage)
if(2.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is having his eyes mended by [user].", 1)
- M << "\red [user] begins to mend your eyes with [src]!"
- user << "\red You mend [M]'s eyes with [src]!"
+ O.show_message("[M] is having his eyes mended by [user].", 1)
+ M << "[user] begins to mend your eyes with [src]!"
+ user << "You mend [M]'s eyes with [src]!"
else
user.visible_message( \
- "\red [user] begins to have his eyes mended.", \
- "\red You begin to mend your eyes with [src]!" \
+ "[user] begins to have his eyes mended.", \
+ "You begin to mend your eyes with [src]!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(15))
@@ -239,14 +239,14 @@ LOOK FOR SURGERY.DM*/
return ..()
if(H.wear_suit || H.w_uniform)
- user << "\red You're going to need to remove that suit/jumpsuit first."
+ user << "You're going to need to remove that suit/jumpsuit first."
return
- user.visible_message("\red [user] begins to dig around in [M]'s chest.", "\red You begin to dig around in [M]'s chest.")
+ user.visible_message("[user] begins to dig around in [M]'s chest.", "You begin to dig around in [M]'s chest.")
spawn(20 + (M:alien_op_stage == 3 ? 0 : rand(0,50)))
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("chest")
if(affecting.take_damage(30))
@@ -256,7 +256,7 @@ LOOK FOR SURGERY.DM*/
var/obj/item/alien_embryo/A = locate() in M.contents
if(A)
- var/dat = "\blue You found an unknown alien organism in [M]'s chest!"
+ var/dat = "You found an unknown alien organism in [M]'s chest!"
if(A.stage < 4)
dat += " It's small and weak, barely the size of a foetus."
if(A.stage > 3)
@@ -266,7 +266,7 @@ LOOK FOR SURGERY.DM*/
user << dat
M:alien_op_stage = 3.0
else
- user << "\blue You find nothing of interest."
+ user << "You find nothing of interest."
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
return ..()
@@ -293,7 +293,7 @@ LOOK FOR SURGERY.DM*/
attack_verb = list("burnt")
suicide_act(mob/user)
- viewers(user) << "\red [user] is burning \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is burning \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
is_hot()
return 1
@@ -312,9 +312,9 @@ LOOK FOR SURGERY.DM*/
if(5.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [user] is beginning to cauterize the incision in [M]'s abdomen with [src].", 1)
- M << "\red [user] begins to cauterize the incision in your abdomen with [src]!"
- user << "\red You cauterize the incision in [M]'s abdomen with [src]!"
+ O.show_message("[user] is beginning to cauterize the incision in [M]'s abdomen with [src].", 1)
+ M << "[user] begins to cauterize the incision in your abdomen with [src]!"
+ user << "You cauterize the incision in [M]'s abdomen with [src]!"
M:appendix_op_stage = 6.0
for(var/datum/disease/appendicitis in M.viruses)
appendicitis.cure()
@@ -328,34 +328,34 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
if(istype(M, /mob/living/carbon/alien))//Aliens don't have eyes./N
- user << "\red You cannot locate any eyes on this creature!"
+ user << "You cannot locate any eyes on this creature!"
return
switch(M.eye_op_stage)
if(3.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is having his eyes cauterized by [user].", 1)
- M << "\red [user] begins to cauterize your eyes!"
- user << "\red You cauterize [M]'s eyes with [src]!"
+ O.show_message("[M] is having his eyes cauterized by [user].", 1)
+ M << "[user] begins to cauterize your eyes!"
+ user << "You cauterize [M]'s eyes with [src]!"
else
user.visible_message( \
- "\red [user] begins to have his eyes cauterized.", \
- "\red You begin to cauterize your eyes!" \
+ "[user] begins to have his eyes cauterized.", \
+ "You begin to cauterize your eyes!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(15))
@@ -394,8 +394,8 @@ LOOK FOR SURGERY.DM*/
attack_verb = list("drilled")
suicide_act(mob/user)
- viewers(user) << pick("\red [user] is pressing the [src.name] to \his temple and activating it! It looks like \he's trying to commit suicide.", \
- "\red [user] is pressing [src.name] to \his chest and activating it! It looks like \he's trying to commit suicide.")
+ viewers(user) << pick("[user] is pressing the [src.name] to \his temple and activating it! It looks like \he's trying to commit suicide.", \
+ "[user] is pressing [src.name] to \his chest and activating it! It looks like \he's trying to commit suicide.")
return (BRUTELOSS)
/*
@@ -422,9 +422,9 @@ LOOK FOR SURGERY.DM*/
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
+ viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
return (BRUTELOSS)
/*
@@ -449,16 +449,16 @@ LOOK FOR SURGERY.DM*/
if(0.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is beginning to have his abdomen cut open with [src] by [user].", 1)
- M << "\red [user] begins to cut open your abdomen with [src]!"
- user << "\red You cut [M]'s abdomen open with [src]!"
+ O.show_message("[M] is beginning to have his abdomen cut open with [src] by [user].", 1)
+ M << "[user] begins to cut open your abdomen with [src]!"
+ user << "You cut [M]'s abdomen open with [src]!"
M:appendix_op_stage = 1.0
if(3.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is beginning to have his appendix seperated with [src] by [user].", 1)
- M << "\red [user] begins to seperate your appendix with [src]!"
- user << "\red You seperate [M]'s appendix with [src]!"
+ O.show_message("[M] is beginning to have his appendix seperated with [src] by [user].", 1)
+ M << "[user] begins to seperate your appendix with [src]!"
+ user << "You seperate [M]'s appendix with [src]!"
M:appendix_op_stage = 4.0
return
@@ -470,14 +470,14 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
switch(M:brain_op_stage)
@@ -485,26 +485,26 @@ LOOK FOR SURGERY.DM*/
if(istype(M, /mob/living/carbon/slime))
if(M.stat == 2)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M.name] is beginning to have its flesh cut open with [src] by [user].", 1)
- M << "\red [user] begins to cut open your flesh with [src]!"
- user << "\red You cut [M]'s flesh open with [src]!"
+ O.show_message("[M.name] is beginning to have its flesh cut open with [src] by [user].", 1)
+ M << "[user] begins to cut open your flesh with [src]!"
+ user << "You cut [M]'s flesh open with [src]!"
M:brain_op_stage = 1.0
return
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is beginning to have his head cut open with [src] by [user].", 1)
- M << "\red [user] begins to cut open your head with [src]!"
- user << "\red You cut [M]'s head open with [src]!"
+ O.show_message("[M] is beginning to have his head cut open with [src] by [user].", 1)
+ M << "[user] begins to cut open your head with [src]!"
+ user << "You cut [M]'s head open with [src]!"
else
user.visible_message( \
- "\red [user] begins to cut open his skull with [src]!", \
- "\red You begin to cut open your head with [src]!" \
+ "[user] begins to cut open his skull with [src]!", \
+ "You begin to cut open your head with [src]!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(15))
@@ -525,9 +525,9 @@ LOOK FOR SURGERY.DM*/
if(istype(M, /mob/living/carbon/slime))
if(M.stat == 2)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M.name] is having its silky innards cut apart with [src] by [user].", 1)
- M << "\red [user] begins to cut apart your innards with [src]!"
- user << "\red You cut [M]'s silky innards apart with [src]!"
+ O.show_message("[M.name] is having its silky innards cut apart with [src] by [user].", 1)
+ M << "[user] begins to cut apart your innards with [src]!"
+ user << "You cut [M]'s silky innards apart with [src]!"
M:brain_op_stage = 2.0
return
if(2.0)
@@ -536,21 +536,21 @@ LOOK FOR SURGERY.DM*/
var/mob/living/carbon/slime/slime = M
if(slime.cores > 0)
if(istype(M, /mob/living/carbon/slime))
- user << "\red You attempt to remove [M]'s core, but [src] is ineffective!"
+ user << "You attempt to remove [M]'s core, but [src] is ineffective!"
return
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is having his connections to the brain delicately severed with [src] by [user].", 1)
- M << "\red [user] begins to cut open your head with [src]!"
- user << "\red You cut [M]'s head open with [src]!"
+ O.show_message("[M] is having his connections to the brain delicately severed with [src] by [user].", 1)
+ M << "[user] begins to cut open your head with [src]!"
+ user << "You cut [M]'s head open with [src]!"
else
user.visible_message( \
- "\red [user] begin to delicately remove the connections to his brain with [src]!", \
- "\red You begin to cut open your head with [src]!" \
+ "[user] begin to delicately remove the connections to his brain with [src]!", \
+ "You begin to cut open your head with [src]!" \
)
if(M == user && prob(25))
- user << "\red You nick an artery!"
+ user << "You nick an artery!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(75))
@@ -571,7 +571,7 @@ LOOK FOR SURGERY.DM*/
return
else if(user.zone_sel.selecting == "eyes")
- user << "\blue So far so good."
+ user << "So far so good."
var/mob/living/carbon/human/H = M
if(istype(H) && ( \
@@ -579,34 +579,34 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N
- user << "\red You cannot locate any eyes on this creature!"
+ user << "You cannot locate any eyes on this creature!"
return
switch(M:eye_op_stage)
if(0.0)
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] is beginning to have his eyes incised with [src] by [user].", 1)
- M << "\red [user] begins to cut open your eyes with [src]!"
- user << "\red You make an incision around [M]'s eyes with [src]!"
+ O.show_message("[M] is beginning to have his eyes incised with [src] by [user].", 1)
+ M << "[user] begins to cut open your eyes with [src]!"
+ user << "You make an incision around [M]'s eyes with [src]!"
else
user.visible_message( \
- "\red [user] begins to cut around his eyes with [src]!", \
- "\red You begin to cut open your eyes with [src]!" \
+ "[user] begins to cut around his eyes with [src]!", \
+ "You begin to cut open your eyes with [src]!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(15))
@@ -614,10 +614,10 @@ LOOK FOR SURGERY.DM*/
else
M.take_organ_damage(15)
- user << "\blue So far so good before."
+ user << "So far so good before."
M.updatehealth()
M:eye_op_stage = 1.0
- user << "\blue So far so good after."
+ user << "So far so good after."
else if(user.zone_sel.selecting == "chest")
switch(M:alien_op_stage)
@@ -627,14 +627,14 @@ LOOK FOR SURGERY.DM*/
return ..()
if(H.wear_suit || H.w_uniform)
- user << "\red You're going to need to remove that suit/jumpsuit first."
+ user << "You're going to need to remove that suit/jumpsuit first."
return
- user.visible_message("\red [user] begins to slice open [M]'s chest.", "\red You begin to slice open [M]'s chest.")
+ user.visible_message("[user] begins to slice open [M]'s chest.", "You begin to slice open [M]'s chest.")
spawn(rand(20,50))
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("chest")
if(affecting.take_damage(15))
@@ -643,7 +643,7 @@ LOOK FOR SURGERY.DM*/
M.take_organ_damage(15)
M:alien_op_stage = 1.0
- user << "\blue So far so good."
+ user << "So far so good."
else
return ..()
@@ -728,7 +728,7 @@ LOOK FOR SURGERY.DM*/
attack_verb = list("attacked", "slashed", "sawed", "cut")
suicide_act(mob/user)
- viewers(user) << "\red [user] is sawing \his head in two with the [src.name]! It looks like \he's trying to commit suicide!"
+ viewers(user) << "[user] is sawing \his head in two with the [src.name]! It looks like \he's trying to commit suicide!"
return (BRUTELOSS)
@@ -754,14 +754,14 @@ LOOK FOR SURGERY.DM*/
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
(H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
var/mob/living/carbon/monkey/Mo = M
if(istype(Mo) && ( \
(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \
))
- user << "\red You're going to need to remove that mask/helmet/glasses first."
+ user << "You're going to need to remove that mask/helmet/glasses first."
return
switch(M:brain_op_stage)
@@ -770,16 +770,16 @@ LOOK FOR SURGERY.DM*/
return
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] has his skull sawed open with [src] by [user].", 1)
- M << "\red [user] begins to saw open your head with [src]!"
- user << "\red You saw [M]'s head open with [src]!"
+ O.show_message("[M] has his skull sawed open with [src] by [user].", 1)
+ M << "[user] begins to saw open your head with [src]!"
+ user << "You saw [M]'s head open with [src]!"
else
user.visible_message( \
- "\red [user] saws open his skull with [src]!", \
- "\red You begin to saw open your head with [src]!" \
+ "[user] saws open his skull with [src]!", \
+ "You begin to saw open your head with [src]!" \
)
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("head")
if(affecting.take_damage(40))
@@ -803,11 +803,11 @@ LOOK FOR SURGERY.DM*/
var/mob/living/carbon/slime/slime = M
if(slime.cores > 0)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M.name] is having one of its cores sawed out with [src] by [user].", 1)
+ O.show_message("[M.name] is having one of its cores sawed out with [src] by [user].", 1)
slime.cores--
- M << "\red [user] begins to remove one of your cores with [src]! ([slime.cores] cores remaining)"
- user << "\red You cut one of [M]'s cores out with [src]! ([slime.cores] cores remaining)"
+ M << "[user] begins to remove one of your cores with [src]! ([slime.cores] cores remaining)"
+ user << "You cut one of [M]'s cores out with [src]! ([slime.cores] cores remaining)"
new slime.coretype(M.loc)
@@ -818,18 +818,18 @@ LOOK FOR SURGERY.DM*/
if(3.0)
/*if(M.mind && M.mind.changeling)
- user << "\red The neural tissue regrows before your eyes as you cut it."
+ user << "The neural tissue regrows before your eyes as you cut it."
return*/
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
- O.show_message("\red [M] has his spine's connection to the brain severed with [src] by [user].", 1)
- M << "\red [user] severs your brain's connection to the spine with [src]!"
- user << "\red You sever [M]'s brain's connection to the spine with [src]!"
+ O.show_message("[M] has his spine's connection to the brain severed with [src] by [user].", 1)
+ M << "[user] severs your brain's connection to the spine with [src]!"
+ user << "You sever [M]'s brain's connection to the spine with [src]!"
else
user.visible_message( \
- "\red [user] severs his brain's connection to the spine with [src]!", \
- "\red You sever your brain's connection to the spine with [src]!" \
+ "[user] severs his brain's connection to the spine with [src]!", \
+ "You sever your brain's connection to the spine with [src]!" \
)
user.attack_log += "\[[time_stamp()]\] Debrained [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])"
@@ -856,14 +856,14 @@ LOOK FOR SURGERY.DM*/
return ..()
if(H.wear_suit || H.w_uniform)
- user << "\red You're going to need to remove that suit/jumpsuit first."
+ user << "You're going to need to remove that suit/jumpsuit first."
return
- user.visible_message("\red [user] begins to slice through the bone of [M]'s chest.", "\red You begin to slice through the bone of [M]'s chest.")
+ user.visible_message("[user] begins to slice through the bone of [M]'s chest.", "You begin to slice through the bone of [M]'s chest.")
spawn(20 + rand(0,50))
if(M == user && prob(25))
- user << "\red You mess up!"
+ user << "You mess up!"
if(istype(M, /mob/living/carbon/human))
var/datum/organ/external/affecting = M:get_organ("chest")
if(affecting.take_damage(15))
@@ -872,7 +872,7 @@ LOOK FOR SURGERY.DM*/
M.take_organ_damage(15)
M:alien_op_stage = 2.0
- user << "\blue So far so good."
+ user << "So far so good."
else
return ..()
@@ -893,7 +893,7 @@ LOOK FOR SURGERY.DM*/
throwforce = 1.0
suicide_act(mob/user)
- viewers(user) << "\red [user] is eating the [src.name]! It looks like \he's trying to commit suicide!" //Don't eat glue kids.
+ viewers(user) << "[user] is eating the [src.name]! It looks like \he's trying to commit suicide!" //Don't eat glue kids.
return (TOXLOSS)
diff --git a/code/game/objects/items/weapons/switchtool.dm b/code/game/objects/items/weapons/switchtool.dm
index 660ce613d58..7ca4fd326ec 100644
--- a/code/game/objects/items/weapons/switchtool.dm
+++ b/code/game/objects/items/weapons/switchtool.dm
@@ -97,7 +97,7 @@
return
else
stored_modules[module] = used_item
- user.drop_item(src)
+ user.drop_item(used_item, src)
user << "You successfully load \the [used_item] into \the [src]'s [get_module_name(module)] slot."
return 1
diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm
index b8fd1d8c916..bc041f0a447 100644
--- a/code/game/objects/items/weapons/swords_axes_etc.dm
+++ b/code/game/objects/items/weapons/swords_axes_etc.dm
@@ -31,7 +31,7 @@
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red You club yourself over the head."
+ user << "You club yourself over the head."
user.Weaken(3 * force)
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -54,7 +54,7 @@
M.Stun(8)
M.Weaken(8)
for(var/mob/O in viewers(M))
- if (O.client) O.show_message("\red [M] has been beaten with \the [src] by [user]!", 1, "\red You hear someone fall", 2)
+ if (O.client) O.show_message("[M] has been beaten with \the [src] by [user]!", 1, "You hear someone fall", 2)
else
playsound(get_turf(src), 'sound/weapons/Genhit.ogg', 50, 1, -1)
M.Stun(5)
@@ -69,7 +69,7 @@
src.add_fingerprint(user)
for(var/mob/O in viewers(M))
- if (O.client) O.show_message("\red [M] has been stunned with \the [src] by [user]!", 1, "\red You hear someone fall", 2)
+ if (O.client) O.show_message("[M] has been stunned with \the [src] by [user]!", 1, "You hear someone fall", 2)
//Telescopic baton
/obj/item/weapon/melee/telebaton
@@ -88,8 +88,8 @@
/obj/item/weapon/melee/telebaton/attack_self(mob/user as mob)
on = !on
if(on)
- user.visible_message("\red With a flick of their wrist, [user] extends their telescopic baton.",\
- "\red You extend the baton.",\
+ user.visible_message("With a flick of their wrist, [user] extends their telescopic baton.",\
+ "You extend the baton.",\
"You hear an ominous click.")
icon_state = "telebaton_1"
item_state = "telebaton_1"
@@ -97,8 +97,8 @@
force = 15//quite robust
attack_verb = list("smacked", "struck", "slapped")
else
- user.visible_message("\blue [user] collapses their telescopic baton.",\
- "\blue You collapse the baton.",\
+ user.visible_message("[user] collapses their telescopic baton.",\
+ "You collapse the baton.",\
"You hear a click.")
icon_state = "telebaton_0"
item_state = "telebaton_0"
@@ -124,7 +124,7 @@
/obj/item/weapon/melee/telebaton/attack(mob/target as mob, mob/living/user as mob)
if(on)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red You club yourself over the head."
+ user << "You club yourself over the head."
user.Weaken(3 * force)
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -145,7 +145,7 @@
user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [target.name] ([target.ckey])")
log_attack("[user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
src.add_fingerprint(user)
- target.visible_message("\red [target] has been stunned with \the [src] by [user]!")
+ target.visible_message("[target] has been stunned with \the [src] by [user]!")
if(!iscarbon(user))
target.LAssailant = null
else
@@ -191,12 +191,12 @@
/obj/item/weapon/melee/energy/axe/attack_self(mob/user as mob)
src.active = !( src.active )
if (src.active)
- user << "\blue The axe is now energised."
+ user << "The axe is now energised."
src.force = 150
src.icon_state = "axe1"
src.w_class = 5
else
- user << "\blue The axe can now be concealed."
+ user << "The axe can now be concealed."
src.force = 40
src.icon_state = "axe0"
src.w_class = 5
@@ -215,7 +215,7 @@
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red You beat yourself in the head with [src]."
+ user << "You beat yourself in the head with [src]."
user.take_organ_damage(5)
active = !active
if (active)
@@ -223,12 +223,12 @@
icon_state = "eshield[active]"
w_class = 4
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
- user << "\blue [src] is now active."
+ user << "[src] is now active."
else
force = 3
icon_state = "eshield[active]"
w_class = 1
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
- user << "\blue [src] can now be concealed."
+ user << "[src] can now be concealed."
add_fingerprint(user)
return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm
index 4593bf932f4..14b7f9a0b4b 100644
--- a/code/game/objects/items/weapons/syndie.dm
+++ b/code/game/objects/items/weapons/syndie.dm
@@ -71,12 +71,12 @@
pr_open = 1
switch(alert(user, "What would you like to do?", "Lighter", "Press the button.", "Close the lighter."))
if("Press the button.")
- user << "\red You press the button."
+ user << "You press the button."
flick("c-4detonator_click", src)
if(src.bomb)
src.bomb.detonate()
log_admin("[user.real_name]([user.ckey]) has triggered [src.bomb] with [src].")
- message_admins("\red [user.real_name]([user.ckey]) has triggered [src.bomb] with [src].")
+ message_admins("[user.real_name]([user.ckey]) has triggered [src.bomb] with [src].")
if("Close the lighter.")
src.icon_state = "c-4detonator_0"
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index 0750b4a80b2..d76f761e49e 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -21,15 +21,15 @@
if (istype(W, /obj/item/stack/rods))
if (W:amount >= 4)
new /obj/item/weapon/table_parts/reinforced( user.loc )
- user << "\blue You reinforce the [name]."
+ user << "You reinforce the [name]."
W:use(4)
del(src)
else if (W:amount < 4)
- user << "\red You need at least four rods to do this."
+ user << "You need at least four rods to do this."
/obj/item/weapon/table_parts/attack_self(mob/user as mob)
new /obj/structure/table( user.loc )
- user.drop_item()
+ user.drop_item(src)
del(src)
return
@@ -46,7 +46,7 @@
/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob)
new /obj/structure/table/reinforced( user.loc )
- user.drop_item()
+ user.drop_item(src)
del(src)
return
@@ -70,7 +70,7 @@
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
new /obj/structure/table/woodentable( user.loc )
- user.drop_item()
+ user.drop_item(src)
del(src)
return
@@ -87,7 +87,7 @@
/obj/item/weapon/table_parts/wood/poker/attack_self(mob/user as mob)
new /obj/structure/table/woodentable/poker( user.loc )
- user.drop_item()
+ user.drop_item(src)
del(src)
return
@@ -107,6 +107,6 @@
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
R.add_fingerprint(user)
- user.drop_item()
+ user.drop_item(src)
del(src)
return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index 7e376ac18eb..8ecae54a9e6 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -226,7 +226,7 @@
if(!istype(src.loc,/obj/item/device/transfer_valve))
message_admins("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
log_game("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
- //world << "\blue[x],[y] tank is exploding: [pressure] kPa"
+ //world << "[x],[y] tank is exploding: [pressure] kPa"
//Give the gas a chance to build up more pressure through reacting
air_contents.react()
air_contents.react()
@@ -239,7 +239,7 @@
range = min(range, MAX_EXPLOSION_RANGE) // was 8 - - - Changed to a configurable define -- TLE
var/turf/epicenter = get_turf(loc)
- //world << "\blue Exploding Pressure: [pressure] kPa, intensity: [range]"
+ //world << "Exploding Pressure: [pressure] kPa, intensity: [range]"
explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5), 1, cap)
if(cap)
@@ -254,7 +254,7 @@
del(src)
else if(pressure > TANK_RUPTURE_PRESSURE)
- //world << "\blue[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]"
+ //world << "[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]"
if(integrity <= 0)
var/turf/simulated/T = get_turf(src)
if(!T)
@@ -266,7 +266,7 @@
integrity--
else if(pressure > TANK_LEAK_PRESSURE)
- //world << "\blue[x],[y] tank is leaking: [pressure] kPa, integrity [integrity]"
+ //world << "[x],[y] tank is leaking: [pressure] kPa, integrity [integrity]"
if(integrity <= 0)
var/turf/simulated/T = get_turf(src)
if(!T)
diff --git a/code/game/objects/items/weapons/tile_painter.dm b/code/game/objects/items/weapons/tile_painter.dm
index 25841f695ec..f4934d246f2 100644
--- a/code/game/objects/items/weapons/tile_painter.dm
+++ b/code/game/objects/items/weapons/tile_painter.dm
@@ -323,6 +323,7 @@ var/global/list/paint_variants = list(
/obj/item/weapon/tile_painter/Destroy() //do I even have to do that
selected = null
+ ..() // FUCKING DUMB
/obj/item/weapon/tile_painter/attack_self(mob/user as mob)
show_menu(user)
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index b2eaa60ce05..bb87ca6d072 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -64,7 +64,7 @@
user.update_inv_r_hand()
/obj/item/weapon/fireaxe/suicide_act(mob/user)
- viewers(user) << "\red [user] is smashing \himself in the head with the [src.name]! It looks like \he's commit suicide!"
+ viewers(user) << "[user] is smashing \himself in the head with the [src.name]! It looks like \he's commit suicide!"
return (BRUTELOSS)
/obj/item/weapon/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity)
@@ -114,7 +114,7 @@
/obj/item/weapon/dualsaber/attack(target as mob, mob/living/user as mob)
..()
if((M_CLUMSY in user.mutations) && (wielded) &&prob(40))
- user << "\red You twirl around a bit before losing your balance and impaling yourself on the [src]."
+ user << "You twirl around a bit before losing your balance and impaling yourself on the [src]."
user.take_organ_damage(20,25)
return
if((wielded) && prob(50))
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index eadbc8f5d82..4be017325cd 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -12,7 +12,7 @@
attack_verb = list("banned")
suicide_act(mob/user)
- viewers(user) << "\red [user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life."
+ viewers(user) << "[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life."
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
/obj/item/weapon/nullrod
@@ -29,7 +29,7 @@
w_class = 1
suicide_act(mob/user)
- viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide."
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob) //Paste from old-code to decult with a null rod.
@@ -44,11 +44,11 @@
msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)")
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
if ((M_CLUMSY in user.mutations) && prob(50))
- user << "\red The rod slips out of your hand and hits your head."
+ user << "The rod slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(20)
return
@@ -63,7 +63,7 @@
/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob)
user.delayNextAttack(8)
if (istype(A, /turf/simulated/floor))
- user << "\blue You hit the floor with the [src]."
+ user << "You hit the floor with the [src]."
call(/obj/effect/rune/proc/revealrunes)(src)
/obj/item/weapon/nullrod/pickup(mob/living/user as mob)
@@ -87,7 +87,7 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
- viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide."
return(BRUTELOSS)
/obj/item/weapon/sord/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
@@ -113,7 +113,7 @@
return 1
suicide_act(mob/user)
- viewers(user) << "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide."
return(BRUTELOSS)
/obj/item/weapon/claymore/cultify()
@@ -139,7 +139,7 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
- viewers(user) << "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku."
+ viewers(user) << "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku."
return(BRUTELOSS)
/obj/item/weapon/katana/IsShield()
diff --git a/code/game/objects/items/weapons/wires.dm b/code/game/objects/items/weapons/wires.dm
index 284be5284c3..ce3db913017 100644
--- a/code/game/objects/items/weapons/wires.dm
+++ b/code/game/objects/items/weapons/wires.dm
@@ -12,9 +12,9 @@
/obj/item/weapon/wire/attack_self(mob/user as mob)
if (src.laying)
src.laying = 0
- user << "\blue You're done laying wire!"
+ user << "You're done laying wire!"
else
- user << "\blue You are not using this to lay wire..."
+ user << "You are not using this to lay wire..."
return
diff --git a/code/game/objects/structures/barsign.dm b/code/game/objects/structures/barsign.dm
index aae8edf579d..9db1bb6b554 100644
--- a/code/game/objects/structures/barsign.dm
+++ b/code/game/objects/structures/barsign.dm
@@ -44,7 +44,7 @@
/obj/structure/sign/double/barsign/attack_hand(mob/user as mob)
if (!src.allowed(user))
- user << "\red Access denied."
+ user << "Access denied."
return
if (!(get_dir(src, usr) in list(SOUTHWEST, SOUTH, SOUTHEAST)))
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 682f5a33bf8..910e109c6f7 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -47,7 +47,7 @@ LINEN BINS
//todo: sharp thing code/game/objects/objs.dm
/obj/item/weapon/bedsheet/attack_self(mob/user as mob)
- user.drop_item()
+ user.drop_item(src)
if(layer == initial(layer))
layer = 5
else
@@ -157,12 +157,12 @@ LINEN BINS
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/bedsheet))
- user.drop_item(src)
+ user.drop_item(I, src)
sheets.Add(I)
amount++
user << "You put [I] in [src]."
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
- user.drop_item(src)
+ user.drop_item(I, src)
hidden = I
user << "You hide [I] among the sheets."
diff --git a/code/game/objects/structures/coatrack.dm b/code/game/objects/structures/coatrack.dm
index d7116bc6cf0..1b9ab221020 100644
--- a/code/game/objects/structures/coatrack.dm
+++ b/code/game/objects/structures/coatrack.dm
@@ -37,14 +37,14 @@
if (istype(C, /obj/item/clothing/suit/storage/det_suit) && !suit)
user << "You place your [C] on the [src]"
playsound(get_turf(src), "rustle", 50, 1, -5)
- user.drop_item(src)
+ user.drop_item(C, src)
suit = C
update_icon()
else if (istype(C, /obj/item/clothing/head/det_hat) && !hat)
user << "You place your [C] on the [src]"
playsound(get_turf(src), "rustle", 50, 1, -5)
- user.drop_item(src)
+ user.drop_item(C, src)
hat = C
update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 9f76e221e98..f6e3b855d88 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -242,7 +242,7 @@
/obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob)
if(user.environment_smash)
- visible_message("\red [user] destroys the [src]. ")
+ visible_message("[user] destroys the [src]. ")
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
@@ -284,10 +284,7 @@
del(src)
return
- if(isrobot(user))
- return
-
- user.drop_item(src.loc)
+ user.drop_item(W, src.loc)
else if(istype(W, /obj/item/weapon/packageWrap))
return
@@ -366,7 +363,7 @@
set category = "Object"
set name = "Toggle Open"
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
if(ishuman(usr) || isMoMMI(usr))
diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
index 58e7e490adf..37a9cad3f4e 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -80,7 +80,7 @@
user << "Unwield [F] first!"
return
fireaxe = O
- user.drop_item(src)
+ user.drop_item(F, src)
visible_message("[user] places [F] back into [src].", \
"You place [F] back into [src].")
update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index c42b1c98758..0e6807dd269 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -172,6 +172,7 @@
new /obj/item/clothing/under/rank/mechanic(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
+ //new /obj/item/device/component_exchanger(src)
new /obj/item/device/radio/headset/headset_engsci(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/device/device_analyser(src)
@@ -199,4 +200,4 @@
New()
..()
sleep(2)
- new /obj/machinery/power/supermatter/shard(src)
\ No newline at end of file
+ new /obj/machinery/power/supermatter/shard(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 1bce1fc56db..00055bea3d2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -136,7 +136,7 @@
set category = "Object"
set name = "Toggle Lock"
- if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH)) // Don't use it if you're not able to! Checks for stuns, ghost and restrain
return
if(get_dist(usr, src) != 1)
diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm
index 01f9451af3c..5c0ceef419f 100644
--- a/code/game/objects/structures/crates_lockers/closets/statue.dm
+++ b/code/game/objects/structures/crates_lockers/closets/statue.dm
@@ -118,7 +118,7 @@
/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob)
health -= I.force
- visible_message("\red [user] strikes [src] with [I].")
+ visible_message("[user] strikes [src] with [I].")
if(health <= 0)
for(var/mob/M in src)
shatter(M)
@@ -145,7 +145,7 @@
if (user)
user.dust()
dump_contents()
- visible_message("\red [src] shatters!. ")
+ visible_message("[src] shatters!. ")
del(src)
/obj/structure/closet/statue/container_resist()
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 87ecb362d8c..94b38439b15 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -461,14 +461,14 @@
user << "[src] is already rigged!"
return
user << "You rig [src]."
- user.drop_item()
+ user.drop_item(W)
del(W)
rigged = 1
return
else if(istype(W, /obj/item/device/radio/electropack))
if(rigged)
user << "You attach [W] to [src]."
- user.drop_item(src.loc)
+ user.drop_item(W, src.loc)
return
else if(istype(W, /obj/item/weapon/wirecutters))
if(rigged)
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index cc90c15662e..046a4d03c1a 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -11,7 +11,7 @@
switch(state)
if(0)
if(istype(W, /obj/item/weapon/circuitboard/airlock) && W:icon_state != "door_electronics_smoked")
- user.drop_item(src)
+ user.drop_item(W, src)
circuit=W
state++
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
@@ -222,7 +222,7 @@
user << "It's locked, you can't put anything into it."
else if(!occupant)
user << "You insert \the [W] into \the [src], and it floats as the hoverfield activates."
- user.drop_item(src)
+ user.drop_item(W, src)
occupant=W
update_icon()
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index a275f8ffa6d..62abe8a9484 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -222,7 +222,7 @@
busy = 1
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
- user.drop_item(src)
+ user.drop_item(W, src)
if(do_after(user, 40))
if(!src) return
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index 26a90b8f093..5c1e4ad03a0 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -14,7 +14,7 @@
return
if(istype(O, /obj/item/weapon/extinguisher))
if(!has_extinguisher && opened)
- user.drop_item(src)
+ user.drop_item(O, src)
has_extinguisher = O
user << "You place [O] in [src]."
else
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index cfa8c08327b..f6a2b015f75 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -146,13 +146,13 @@
/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(opening)
- user << "\red You must wait until the door has stopped moving."
+ user << "You must wait until the door has stopped moving."
return
if(density)
var/turf/T = get_turf(src)
if(T.density)
- user << "\red The wall is blocked!"
+ user << "The wall is blocked!"
return
if(istype(W, /obj/item/weapon/screwdriver))
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
@@ -174,7 +174,7 @@
T.attackby(W,user)
del(src)
else
- user << "\blue You can't reach, close it first!"
+ user << "You can't reach, close it first!"
if( istype(W, /obj/item/weapon/pickaxe) )
var/obj/item/weapon/pickaxe/used_pick = W
@@ -270,7 +270,7 @@
/obj/structure/falserwall/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(opening)
- user << "\red You must wait until the door has stopped moving."
+ user << "You must wait until the door has stopped moving."
return
if(istype(W, /obj/item/weapon/screwdriver))
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index 18d8ddc4afc..6afde3e1d44 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -91,7 +91,7 @@
user << "There is already something in the pot."
else
full = I
- user.drop_item(src)
+ user.drop_item(I, src)
full.loc = src
user.visible_message("[user] stuffs something into the pot.","You stuff \the [full] into the [src].")
@@ -225,3 +225,25 @@
/obj/structure/flora/ausbushes/fullgrass/New()
..()
icon_state = "fullgrass_[rand(1, 3)]"
+
+//a rock is flora according to where the icon file is
+//and now these defines
+/obj/structure/flora/rock
+ name = "rock"
+ desc = "a rock"
+ icon_state = "rock1"
+ icon = 'icons/obj/flora/rocks.dmi'
+ anchored = 1
+
+/obj/structure/flora/rock/New()
+ ..()
+ icon_state = "rock[rand(1,5)]"
+
+/obj/structure/flora/rock/pile
+ name = "rocks"
+ desc = "some rocks"
+ icon_state = "rockpile1"
+
+/obj/structure/flora/rock/pile/New()
+ ..()
+ icon_state = "rockpile[rand(1,5)]"
\ No newline at end of file
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 61e55d8a73d..90715e809bb 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -250,7 +250,7 @@
else if(istype(W, /obj/item/pipe))
var/obj/item/pipe/P = W
if(P.pipe_type in list(0, 1, 5)) //Simple pipes, simple bends, and simple manifolds.
- user.drop_item(src.loc)
+ user.drop_item(P, src.loc)
user.visible_message("[user] fits \the [P] into \the [src]", \
"You fit \the [P] into \the [src]")
else
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 8d4fc060d9b..c054a1d23f9 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -192,17 +192,12 @@
"You place \a [WD] on \the [src].")
return
- else if(istype(W, /obj/item/weapon/shard))
- health -= W.force * 0.1 //Turns the base shard into a .5 damage item. If you want to break an electrified grille with that, you're going to EARN IT, ROD. BY. ROD.
- healthcheck(hitsound = 1)
- ..() //We need to call the rest of the attackby proc
- return //Don't bother to go any further, we handled everything here
switch(W.damtype)
if("fire")
health -= W.force //Fire-based tools like welding tools are ideal to work through small metal rods !
if("brute")
health -= W.force * 0.5 //Rod matrices have an innate resistance to brute damage
- shock(user, 70) //Alright let's have fun
+ shock(user, 100 * W.siemens_coefficient) //Chance of getting shocked is proportional to conductivity
healthcheck(hitsound = 1)
..()
return
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index 01d8d004963..919e7ac3eea 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -43,7 +43,7 @@
/obj/structure/stool/bed/chair/vehicle/janicart/attackby(obj/item/W, mob/user)
..()
if(istype(W, /obj/item/mecha_parts/janicart_upgrade) && !upgraded && !destroyed)
- user.drop_item()
+ user.drop_item(W)
del(W)
user << "You upgrade the Pussy Wagon."
upgraded = 1
@@ -51,7 +51,7 @@
icon_state = "pussywagon_upgraded"
else if(istype(W, /obj/item/weapon/storage/bag/trash))
user << "You hook the trashbag onto the pimpin' ride."
- user.drop_item(src)
+ user.drop_item(W, src)
mybag = W
/obj/structure/stool/bed/chair/vehicle/janicart/mop_act(obj/item/weapon/mop/M, mob/user)
diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm
index 074ad11ff9e..cb515def0b8 100644
--- a/code/game/objects/structures/lamarr_cage.dm
+++ b/code/game/objects/structures/lamarr_cage.dm
@@ -79,10 +79,10 @@
if (src.destroyed)
return
else
- usr << text("\blue You kick the lab cage.")
+ usr << text("You kick the lab cage.")
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] kicks the lab cage.", usr)
+ O << text("[] kicks the lab cage.", usr)
src.health -= 2
healthcheck()
return
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 54e17adf801..486a30adcc7 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -78,7 +78,7 @@
if ((shattered) && (istype(I, /obj/item/stack/sheet/glass/glass)))
var/obj/item/stack/sheet/glass/glass/stack = I
if ((stack.amount - 2) < 0)
- user << "\red You need more glass to do that."
+ user << "You need more glass to do that."
else
stack.use(2)
shattered = 0
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 7c542253ca8..d03142d679c 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -181,7 +181,7 @@
if (user != O)
for(var/mob/B in viewers(user, 3))
if ((B.client && !( B.blinded )))
- B << text("\red [] stuffs [] into []!", user, O, src)
+ B << text("[] stuffs [] into []!", user, O, src)
return
@@ -243,13 +243,13 @@
/obj/structure/crematorium/attack_hand(mob/user as mob)
// if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH
-// user.show_message("\red Uh-oh, that was a bad idea.", 1)
+// user.show_message("Uh-oh, that was a bad idea.", 1)
// //usr << "Uh-oh, that was a bad idea."
// src:loc:poison += 20000000
// src:loc:firelevel = src:loc:poison
// return
if (cremating)
- usr << "\red It's locked."
+ usr << "It's locked."
return
if ((src.connected) && (src.locked == 0))
for(var/atom/movable/A as mob|obj in src.connected.loc)
@@ -319,18 +319,18 @@
if(contents.len <= 0)
for (var/mob/M in viewers(src))
- M.show_message("\red You hear a hollow crackle.", 1)
+ M.show_message("You hear a hollow crackle.", 1)
return
else
- var/inside = get_contents_in_object(src, /atom/movable)
+ var/inside = get_contents_in_object(src)
if (locate(/obj/item/weapon/disk/nuclear) in inside)
user << "You get the feeling that you shouldn't cremate one of the items in the cremator."
return
for (var/mob/M in viewers(src))
- M.show_message("\red You hear a roar as the crematorium activates.", 1)
+ M.show_message("You hear a roar as the crematorium activates.", 1)
locked = 1
cremating = 1
@@ -406,7 +406,7 @@
if (user != O)
for(var/mob/B in viewers(user, 3))
if ((B.client && !( B.blinded )))
- B << text("\red [] stuffs [] into []!", user, O, src)
+ B << text("[] stuffs [] into []!", user, O, src)
//Foreach goto(99)
return
diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm
index 5920d088948..d00c5d42b7a 100644
--- a/code/game/objects/structures/musician.dm
+++ b/code/game/objects/structures/musician.dm
@@ -429,20 +429,20 @@
if (istype(O, /obj/item/weapon/wrench))
if (anchored)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
- user << "\blue You begin to loosen \the [src]'s casters..."
+ user << "You begin to loosen \the [src]'s casters..."
if (do_after(user, 40))
user.visible_message( \
"[user] loosens \the [src]'s casters.", \
- "\blue You have loosened \the [src]. Now it can be pulled somewhere else.", \
+ "You have loosened \the [src]. Now it can be pulled somewhere else.", \
"You hear ratchet.")
src.anchored = 0
else
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
- user << "\blue You begin to tighten \the [src] to the floor..."
+ user << "You begin to tighten \the [src] to the floor..."
if (do_after(user, 20))
user.visible_message( \
"[user] tightens \the [src]'s casters.", \
- "\blue You have tightened \the [src]'s casters. Now it can be played again.", \
+ "You have tightened \the [src]'s casters. Now it can be played again.", \
"You hear ratchet.")
src.anchored = 1
else
diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm
index f6ee82006c9..bc60c43d022 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -22,7 +22,7 @@
if(notices < 5)
O.add_fingerprint(user)
add_fingerprint(user)
- user.drop_item(src)
+ user.drop_item(O,src)
notices++
icon_state = "nboard0[notices]" //update sprite
user << "You pin the paper to the noticeboard."
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 96397976a2a..318ae2516e1 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -151,7 +151,7 @@ FLOOR SAFES
if(open)
if(I.w_class + space <= maxspace)
space += I.w_class
- user.drop_item(src)
+ user.drop_item(I, src)
user << "You put [I] in [src]."
updateUsrDialog()
return
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index feb1a52cf12..d16aa2d3d30 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -61,12 +61,12 @@
if(buckled_mob.buckled == src)
if(buckled_mob != user)
buckled_mob.visible_message(\
- "\blue [buckled_mob.name] was unbuckled by [user.name]!",\
+ "[buckled_mob.name] was unbuckled by [user.name]!",\
"You were unbuckled from [src] by [user.name].",\
"You hear metal clanking")
else
buckled_mob.visible_message(\
- "\blue [buckled_mob.name] unbuckled \himself!",\
+ "[buckled_mob.name] unbuckled \himself!",\
"You unbuckle yourself from [src].",\
"You hear metal clanking")
unbuckle()
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 5ab4794ca4c..245f4f4556e 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -19,7 +19,7 @@
if(!SK.status)
user << "[SK] is not ready to be attached!"
return
- user.drop_item()
+ user.drop_item(W)
var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc)
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
E.dir = dir
@@ -86,7 +86,7 @@
return
if(!config.ghost_interaction && !blessed)
- if(usr.stat || usr.restrained())
+ if(usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
spin()
@@ -102,13 +102,13 @@
if(!M.weakened) //Spam prevention
if(M == usr)
M.visible_message(\
- "\blue [M.name] has no butt, and slides right out of [src]!",\
+ "[M.name] has no butt, and slides right out of [src]!",\
"Having no butt, you slide right out of the [src]",\
"You hear metal clanking")
else
M.visible_message(\
- "\blue [M.name] has no butt, and slides right out of [src]!",\
+ "[M.name] has no butt, and slides right out of [src]!",\
"Having no butt, you slide right out of the [src]",\
"You hear metal clanking")
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index 0cf98438c4f..d3ec7454b18 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -55,7 +55,7 @@
S.origin = src
src.loc = S
H.put_in_hands(S)
- H.visible_message("\red [H] grabs [src] from the floor!", "\red You grab [src] from the floor!")
+ H.visible_message("[H] grabs [src] from the floor!", "You grab [src] from the floor!")
/obj/item/weapon/stool
name = "stool"
@@ -72,12 +72,12 @@
if(origin)
origin.loc = get_turf(src)
user.u_equip(src)
- user.visible_message("\blue [user] puts [src] down.", "\blue You put [src] down.")
+ user.visible_message("[user] puts [src] down.", "You put [src] down.")
del src
/obj/item/weapon/stool/attack(mob/M as mob, mob/user as mob)
if (prob(5) && istype(M,/mob/living))
- user.visible_message("\red [user] breaks [src] over [M]'s back!.")
+ user.visible_message("[user] breaks [src] over [M]'s back!.")
user.u_equip(src)
if(!istype(origin,/obj/structure/stool/hologram))
var/obj/item/stack/sheet/metal/MM = getFromPool(/obj/item/stack/sheet/metal, get_turf(src))
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 967b350567d..2d6f0c592e8 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -343,15 +343,15 @@
if(user.a_intent == I_HURT)
if (prob(15)) M.Weaken(5)
M.apply_damage(8,def_zone = "head")
- visible_message("\red [G.assailant] slams [G.affecting]'s face against \the [src]!")
+ visible_message("[G.assailant] slams [G.affecting]'s face against \the [src]!")
playsound(get_turf(src), 'sound/weapons/tablehit1.ogg', 50, 1)
else
- user << "\red You need a better grip to do that!"
+ user << "You need a better grip to do that!"
return
else
G.affecting.loc = src.loc
G.affecting.Weaken(5)
- visible_message("\red [G.assailant] puts [G.affecting] on \the [src].")
+ visible_message("[G.assailant] puts [G.affecting] on \the [src].")
del(W)
return
@@ -363,9 +363,6 @@
destroy()
return
- if(isrobot(user))
- return
-
if(istype(W, /obj/item/weapon/melee/energy/blade))
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src.loc)
@@ -373,10 +370,10 @@
playsound(get_turf(src), 'sound/weapons/blade1.ogg', 50, 1)
playsound(get_turf(src), "sparks", 50, 1)
for(var/mob/O in viewers(user, 4))
- O.show_message("\blue The [src] was sliced apart by [user]!", 1, "\red You hear [src] coming apart.", 2)
+ O.show_message("The [src] was sliced apart by [user]!", 1, "You hear [src] coming apart.", 2)
destroy()
- if(user.drop_item(src.loc))
+ if(user.drop_item(W, src.loc))
if(W.loc == src.loc && params_list.len)
var/clamp_x = clicked.Width() / 2
var/clamp_y = clicked.Height() / 2
@@ -545,18 +542,18 @@
return ..()
if(WT.remove_fuel(0, user))
if(src.status == 2)
- user << "\blue Now weakening the reinforced table"
+ user << "Now weakening the reinforced table"
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
if (do_after(user, 50))
if(!src || !WT.isOn()) return
- user << "\blue Table weakened"
+ user << "Table weakened"
src.status = 1
else
- user << "\blue Now strengthening the reinforced table"
+ user << "Now strengthening the reinforced table"
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
if (do_after(user, 50))
if(!src || !WT.isOn()) return
- user << "\blue Table strengthened"
+ user << "Table strengthened"
src.status = 2
return
return
@@ -612,7 +609,7 @@
return
if(isrobot(user))
return
- user.drop_item()
+ user.drop_item(O)
if (O.loc != src.loc)
step(O, get_dir(O, src))
return
@@ -625,7 +622,7 @@
return
if(isrobot(user))
return
- user.drop_item(src.loc)
+ user.drop_item(W, src.loc)
return 1
/obj/structure/rack/meteorhit(obj/O as obj)
diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm
index 92fbcec299c..f3a4ea713b1 100644
--- a/code/game/objects/structures/tank_dispenser.dm
+++ b/code/game/objects/structures/tank_dispenser.dm
@@ -55,7 +55,7 @@
/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic))
if(oxygentanks < 10)
- user.drop_item(src)
+ user.drop_item(I, src)
oxytanks.Add(I)
oxygentanks++
user << "You put [I] in [src]."
@@ -65,7 +65,7 @@
return
if(istype(I, /obj/item/weapon/tank/plasma))
if(plasmatanks < 10)
- user.drop_item(src)
+ user.drop_item(I, src)
platanks.Add(I)
plasmatanks++
user << "You put [I] in [src]."
diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm
index 27dc912d8e9..9784da2f427 100644
--- a/code/game/objects/structures/target_stake.dm
+++ b/code/game/objects/structures/target_stake.dm
@@ -27,7 +27,7 @@
if(istype(W, /obj/item/target))
density = 0
W.density = 1
- user.drop_item(src.loc)
+ user.drop_item(W, src.loc)
W.layer = 3.1
pinned_target = W
user << "You slide the target into the stake."
diff --git a/code/game/objects/structures/vehicles/vehicle.dm b/code/game/objects/structures/vehicles/vehicle.dm
index df76f9f16aa..43bb4078ce9 100644
--- a/code/game/objects/structures/vehicles/vehicle.dm
+++ b/code/game/objects/structures/vehicles/vehicle.dm
@@ -184,7 +184,7 @@
/* The cart has very grippy tires and or magnets to keep it from slipping when on a good surface
//Check to see if we slipped
if(prob(Process_Spaceslipping(5)))
- src << "\blue You slipped!"
+ src << "You slipped!"
src.inertia_dir = src.last_move
step(src, src.inertia_dir)
return 0
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index e52b95b8147..2a35f73c0ab 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -1,4 +1,6 @@
//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos
+#define NORODS 0
+#define RODSADDED 1
/obj/structure/toilet
name = "toilet"
@@ -7,6 +9,7 @@
icon_state = "toilet00"
density = 0
anchored = 1
+ var/state = 0 //1 if rods added; 0 if not
var/open = 0 //if the lid is up
var/cistern = 0 //if the cistern bit is open
var/w_items = 0 //the combined w_class of all the items in the cistern
@@ -44,6 +47,20 @@
icon_state = "toilet[open][cistern]"
/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob)
+ if(open && cistern && state == NORODS && istype(I,/obj/item/stack/rods)) //State = 0 if no rods
+ var/obj/item/stack/rods/R = I
+ if(R.amount < 2) return
+ user << "You add the rods to the toilet, creating flood avenues."
+ R.use(2)
+ state = RODSADDED //State 0 -> 1
+ return
+ if(open && cistern && state == RODSADDED && istype(I,/obj/item/weapon/paper)) //State = 1 if rods are added
+ user << "You create a filter with the paper and insert it."
+ var/obj/structure/centrifuge/C = new /obj/structure/centrifuge(src.loc)
+ C.dir = src.dir
+ qdel(I)
+ qdel(src)
+ return
if(istype(I, /obj/item/weapon/crowbar))
user << "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]."
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
@@ -84,7 +101,7 @@
if(w_items + I.w_class > 5)
user << "The cistern is full."
return
- user.drop_item(src)
+ user.drop_item(I, src)
w_items += I.w_class
user << "You carefully place \the [I] into the cistern."
return
@@ -346,10 +363,10 @@
return
if(busy)
- M << "\red Someone's already washing here."
+ M << "Someone's already washing here."
return
- usr << "\blue You start washing your hands."
+ usr << "You start washing your hands."
busy = 1
sleep(40)
@@ -361,7 +378,7 @@
if(ishuman(M))
M:update_inv_gloves()
for(var/mob/V in viewers(src, null))
- V.show_message("\blue [M] washes their hands using \the [src].")
+ V.show_message("[M] washes their hands using \the [src].")
/obj/structure/sink/mop_act(obj/item/weapon/mop/M, mob/user)
if(busy) return 1
@@ -380,7 +397,7 @@
/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob)
if(busy)
- user << "\red Someone's already washing here."
+ user << "Someone's already washing here."
return
if(istype(O, /obj/item/weapon/mop)) return
@@ -388,7 +405,7 @@
if (istype(O, /obj/item/weapon/reagent_containers))
var/obj/item/weapon/reagent_containers/RG = O
RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
- user.visible_message("\blue [user] fills the [RG] using \the [src].","\blue You fill the [RG] using \the [src].")
+ user.visible_message("[user] fills the [RG] using \the [src].","You fill the [RG] using \the [src].")
return
else if (istype(O, /obj/item/weapon/melee/baton))
@@ -405,7 +422,7 @@
B.deductcharge(1)
user.visible_message( \
"[user] was stunned by his wet [O].", \
- "\red You have wet \the [O], it shocks you!")
+ "You have wet \the [O], it shocks you!")
return
var/turf/location = user.loc
@@ -414,7 +431,7 @@
var/obj/item/I = O
if(!I || !istype(I,/obj/item)) return
- usr << "\blue You start washing \the [I]."
+ usr << "You start washing \the [I]."
busy = 1
sleep(40)
@@ -426,8 +443,8 @@
O.clean_blood()
user.visible_message( \
- "\blue [user] washes \a [I] using \the [src].", \
- "\blue You wash \a [I] using \the [src].")
+ "[user] washes \a [I] using \the [src].", \
+ "You wash \a [I] using \the [src].")
/obj/structure/sink/kitchen
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 145a7afa550..5dd4c2e699f 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -173,7 +173,7 @@ obj/structure/windoor_assembly/Destroy()
if(do_after(user, 40))
if(!src) return
- user.drop_item(src)
+ user.drop_item(W, src)
user << "You've installed the airlock electronics!"
src.name = "Near finished Windoor Assembly"
src.electronics = W
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 7e2395a8de3..96b5caf03da 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -237,8 +237,8 @@
visible_message("\The [user] slams \the [M] into \the [src]!", \
"You slam \the [M] into \the [src]!")
if(GRAB_NECK to GRAB_KILL)
- M.Weaken(5) //Almost certainly shoved head or face-first, you're going to need a bit for the lights to come back on
- M.apply_damage(30) //That got to fucking hurt, you were basically flung into a window, most likely a shattered one at that
+ M.Weaken(3) //Almost certainly shoved head or face-first, you're going to need a bit for the lights to come back on
+ M.apply_damage(20) //That got to fucking hurt, you were basically flung into a window, most likely a shattered one at that
health -= 20 //Window won't like that
visible_message("\The [user] crushes \the [M] into \the [src]!", \
"You crush \the [M] into \the [src]!")
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index e9900cf6006..1c22919fb62 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -13,16 +13,16 @@ var/can_call_ert
set desc = "Send an emergency response team to the station"
if(!holder)
- usr << "\red Only administrators may use this command."
+ usr << "Only administrators may use this command."
return
if(!ticker)
- usr << "\red The game hasn't started yet!"
+ usr << "The game hasn't started yet!"
return
if(ticker.current_state == 1)
- usr << "\red The round hasn't started yet!"
+ usr << "The round hasn't started yet!"
return
if(send_emergency_team)
- usr << "\red Central Command has already dispatched an emergency response team!"
+ usr << "Central Command has already dispatched an emergency response team!"
return
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
return
@@ -31,7 +31,7 @@ var/can_call_ert
if("No")
return
if(send_emergency_team)
- usr << "\red Looks like somebody beat you to it!"
+ usr << "Looks like somebody beat you to it!"
return
message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team.", 1)
@@ -65,7 +65,7 @@ client/verb/JoinResponseTeam()
new_commando.mind.key = usr.key
new_commando.key = usr.key
- new_commando << "\blue You are [!leader_selected?"a member":"the LEADER"] of an Emergency Response Team, a type of military division, under CentComm's service. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
+ new_commando << "You are [!leader_selected?"a member":"the LEADER"] of an Emergency Response Team, a type of military division, under CentComm's service. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
new_commando << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
if(!leader_selected)
new_commando << "As member of the Emergency Response Team, you answer only to your leader and CentComm officials."
@@ -157,7 +157,7 @@ proc/trigger_armed_response_team(var/force = 0)
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name)
- //usr << "\red ERT has been temporarily disabled. Talk to a coder."
+ //usr << "ERT has been temporarily disabled. Talk to a coder."
//return
var/mob/living/carbon/human/M = new(null)
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 6b5ff0e9d82..a9ac1312fa0 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -502,7 +502,7 @@ var/list/mechtoys = list(
if(I)
account = get_card_account(I)
else
- usr << "\red Please wear an ID with an associated bank account."
+ usr << "Please wear an ID with an associated bank account."
return
else if(issilicon(usr))
idname = usr.real_name
@@ -570,7 +570,7 @@ var/list/mechtoys = list(
/obj/machinery/computer/supplycomp/attack_hand(var/mob/user as mob)
if(!allowed(user))
- user << "\red Access Denied."
+ user << "Access Denied."
return
if(..())
@@ -600,14 +600,14 @@ var/list/mechtoys = list(
/obj/machinery/computer/supplycomp/attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag) && !hacked)
- user << "\blue Special supplies unlocked."
+ user << "Special supplies unlocked."
hacked = 1
return
if(istype(I, /obj/item/weapon/screwdriver))
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A )
@@ -619,7 +619,7 @@ var/list/mechtoys = list(
A.anchored = 1
del(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A )
if(can_order_contraband)
@@ -724,7 +724,7 @@ var/list/mechtoys = list(
if(I)
account = get_card_account(I)
else
- usr << "\red Please wear an ID with an associated bank account."
+ usr << "Please wear an ID with an associated bank account."
return
else if(issilicon(usr))
idname = usr.real_name
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 268c07782de..5be17b9bd38 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -436,7 +436,7 @@ turf/simulated/floor/proc/update_icon()
if(is_light_floor())
var/obj/item/stack/tile/light/T = floor_tile
if(T.state)
- user.drop_item()
+ user.drop_item(C)
del(C)
T.state = C //fixing it by bashing it with a light bulb, fun eh?
update_icon()
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 11d553fccae..9910c2f4838 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -306,6 +306,10 @@
O.density = 1
O.layer = 5
+ var/cultwall = 0
+ if(istype(src, /turf/simulated/wall/cult))
+ cultwall = 1
+
src.ChangeTurf(/turf/simulated/floor/plating)
var/turf/simulated/floor/F = src
@@ -316,7 +320,7 @@
qdel(O)
return
F.burn_tile()
- F.icon_state = "wall_thermite"
+ F.icon_state = "[cultwall ? "cultwall_thermite" : "wall_thermite"]"
var/pdiff = performWallPressureCheck(src.loc)
if(pdiff)
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index e5a803f087a..bd3d6775fe1 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -557,4 +557,20 @@
//Return a lattice to allow plating building, return 0 for error message, return -1 for silent fail.
/turf/proc/canBuildPlating()
- return BUILD_SILENT_FAILURE
\ No newline at end of file
+ return BUILD_SILENT_FAILURE
+
+/////////////////////////////////////////////////////
+
+/turf/proc/spawn_powerup()
+ spawn(5)
+ var/powerup = pick(
+ 50;/obj/structure/powerup/bombup,
+ 50;/obj/structure/powerup/fire,
+ 50;/obj/structure/powerup/skate,
+ 10;/obj/structure/powerup/kick,
+ 10;/obj/structure/powerup/line,
+ 10;/obj/structure/powerup/power,
+ 10;/obj/structure/powerup/skull,
+ 5;/obj/structure/powerup/full,
+ )
+ new powerup(src)
diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm
index 2e381f2d793..7478f1896eb 100644
--- a/code/game/turfs/unsimulated/floor.dm
+++ b/code/game/turfs/unsimulated/floor.dm
@@ -11,4 +11,11 @@
name = "engraved floor"
icon_state = "cult"
turf_animation('icons/effects/effects.dmi',"cultfloor",0,0,MOB_LAYER-1)
- return
\ No newline at end of file
+ return
+
+/turf/unsimulated/floor/grass
+ icon_state = "grass1"
+
+/turf/unsimulated/floor/grass/New()
+ ..()
+ icon_state = "grass[rand(1,4)]"
\ No newline at end of file
diff --git a/code/game/verbs/AI_status.dm b/code/game/verbs/AI_status.dm
index 39cbc654835..87fcc6c687b 100644
--- a/code/game/verbs/AI_status.dm
+++ b/code/game/verbs/AI_status.dm
@@ -2,7 +2,7 @@
set category = "AI Commands"
set name = "AI status"
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr <<"You cannot change your emotional status because you are dead!"
return
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer", "Beer mug", "Dwarf", "Fishtank", "Plump Helmet")
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 314314d5b64..8f80876f9bf 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -3,7 +3,7 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
- usr << "\red Speech is currently admin-disabled."
+ usr << "Speech is currently admin-disabled."
return
if(!mob) return
@@ -15,18 +15,18 @@
if(!msg) return
if(!(prefs.toggles & CHAT_OOC))
- src << "\red You have OOC muted."
+ src << "You have OOC muted."
return
if(!holder)
if(!ooc_allowed)
- src << "\red OOC is globally muted"
+ src << "OOC is globally muted"
return
if(!dooc_allowed && (mob.stat == DEAD))
- usr << "\red OOC for dead mobs has been turned off."
+ usr << "OOC for dead mobs has been turned off."
return
if(prefs.muted & MUTE_OOC)
- src << "\red You cannot use OOC (muted)."
+ src << "You cannot use OOC (muted)."
return
if(handle_spam_prevention(msg,MUTE_OOC))
return
@@ -91,7 +91,7 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
- usr << "\red Speech is currently admin-disabled."
+ usr << "Speech is currently admin-disabled."
return
if(!mob) return
@@ -103,18 +103,18 @@
if(!msg) return
if(!(prefs.toggles & CHAT_LOOC))
- src << "\red You have LOOC muted."
+ src << "You have LOOC muted."
return
if(!holder)
if(!ooc_allowed)
- src << "\red LOOC is globally muted"
+ src << "LOOC is globally muted"
return
if(!dooc_allowed && (mob.stat == DEAD))
- usr << "\red LOOC for dead mobs has been turned off."
+ usr << "LOOC for dead mobs has been turned off."
return
if(prefs.muted & MUTE_OOC)
- src << "\red You cannot use LOOC (muted)."
+ src << "You cannot use LOOC (muted)."
return
if(handle_spam_prevention(msg,MUTE_OOC))
return
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index 0ad314c6020..225b233e9ba 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -81,10 +81,10 @@
return
- viewers(src) << pick("\red [src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide.", \
- "\red [src] is jamming \his thumbs into \his eye sockets! It looks like \he's trying to commit suicide.", \
- "\red [src] is twisting \his own neck! It looks like \he's trying to commit suicide.", \
- "\red [src] is holding \his breath! It looks like \he's trying to commit suicide.")
+ viewers(src) << pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide.", \
+ "[src] is jamming \his thumbs into \his eye sockets! It looks like \he's trying to commit suicide.", \
+ "[src] is twisting \his own neck! It looks like \he's trying to commit suicide.", \
+ "[src] is holding \his breath! It looks like \he's trying to commit suicide.")
adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
@@ -107,7 +107,7 @@
if(confirm == "Yes")
suiciding = 1
- viewers(loc) << "\red [src]'s brain is growing dull and lifeless. It looks like it's lost the will to live."
+ viewers(loc) << "[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live."
spawn(50)
death(0)
suiciding = 0
@@ -135,7 +135,7 @@
return
suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
- viewers(src) << "\red [src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide."
+ viewers(src) << "[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide."
adjustOxyLoss(max(175- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
@@ -154,7 +154,7 @@
if(confirm == "Yes")
suiciding = 1
- viewers(src) << "\red [src] is powering down. It looks like \he's trying to commit suicide."
+ viewers(src) << "[src] is powering down. It looks like \he's trying to commit suicide."
//put em at -175
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
@@ -174,7 +174,7 @@
if(confirm == "Yes")
suiciding = 1
- viewers(src) << "\red [src] is powering down. It looks like \he's trying to commit suicide."
+ viewers(src) << "[src] is powering down. It looks like \he's trying to commit suicide."
//put em at -175
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
stat = DEAD //new robot shit doesnt care about oxyloss
@@ -190,7 +190,7 @@
card.removePersonality()
var/turf/T = get_turf(card.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2)
+ M.show_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "[src] bleeps electronically.", 2)
death(0)
else
src << "Aborting suicide attempt."
@@ -210,7 +210,7 @@
if(confirm == "Yes")
suiciding = 1
- viewers(src) << "\red [src] is thrashing wildly! It looks like \he's trying to commit suicide."
+ viewers(src) << "[src] is thrashing wildly! It looks like \he's trying to commit suicide."
//put em at -175
adjustOxyLoss(max(175 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
diff --git a/code/global.dm b/code/global.dm
index 6d86577995b..5f22c3177cb 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -125,7 +125,7 @@ var/diaryofmeanpeople = null
var/admin_diary = null
var/href_logfile = null
var/station_name = null
-var/game_version = "adsfasdfasdf"
+var/game_version = "veegee"
var/changelog_hash = ""
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544)
@@ -357,4 +357,12 @@ var/global/datum/gas_mixture/space_gas = new
var/global/obj/item/device/radio/intercom/universe/announcement_intercom = new
//used by jump-to-area etc. Updated by area/updateName()
-var/list/sortedAreas = list()
\ No newline at end of file
+var/list/sortedAreas = list()
+
+var/global/bomberman_mode = 0
+var/global/bomberman_hurt = 0
+var/global/bomberman_destroy = 0
+
+var/global/list/volunteer_gladiators = list()
+var/global/list/ready_gladiators = list()
+var/global/list/never_gladiators = list()
diff --git a/code/libs/Get Flat Icon/Get Flat Icon.dm b/code/libs/Get Flat Icon/Get Flat Icon.dm
index 8256433b846..d2cb8d7f83d 100644
--- a/code/libs/Get Flat Icon/Get Flat Icon.dm
+++ b/code/libs/Get Flat Icon/Get Flat Icon.dm
@@ -34,6 +34,7 @@ var/list/directional = list(
/obj/machinery/light,
/obj/machinery/door/airlock/multi_tile,
/obj/machinery/camera,
+ /obj/structure/bomberflame,
)
var/list/exception = list(
diff --git a/code/modules/Economy/Accounts.dm b/code/modules/Economy/Accounts.dm
index 72d3da0a2c9..dd8508c9918 100644
--- a/code/modules/Economy/Accounts.dm
+++ b/code/modules/Economy/Accounts.dm
@@ -9,19 +9,18 @@ var/global/list/all_money_accounts = list()
/proc/create_station_account()
if(!station_account)
- next_account_number = rand(111111, 999999)
-
+ next_account_number = rand(11111, 99999)
station_account = new()
station_account.owner_name = "[station_name()] Station Account"
- station_account.account_number = rand(111111, 999999)
- station_account.remote_access_pin = rand(1111, 111111)
- station_account.money = 75000
+ station_account.account_number = rand(11111, 99999)
+ station_account.remote_access_pin = rand(1111, 9999)
+ station_account.money = 5000
//create an entry in the account transaction log for when it was created
var/datum/transaction/T = new()
T.target_name = station_account.owner_name
T.purpose = "Account creation"
- T.amount = 75000
+ T.amount = 5000
T.date = "2nd April, [game_year]"
T.time = "11:24"
T.source_terminal = "Biesel GalaxyNet Terminal #277"
@@ -35,8 +34,8 @@ var/global/list/all_money_accounts = list()
var/datum/money_account/department_account = new()
department_account.owner_name = "[department] Account"
- department_account.account_number = rand(111111, 999999)
- department_account.remote_access_pin = rand(1111, 111111)
+ department_account.account_number = rand(11111, 99999)
+ department_account.remote_access_pin = rand(1111, 9999)
department_account.money = 5000
//create an entry in the account transaction log for when it was created
@@ -62,7 +61,7 @@ var/global/list/all_money_accounts = list()
//create a new account
var/datum/money_account/M = new()
M.owner_name = new_owner_name
- M.remote_access_pin = rand(1111, 111111)
+ M.remote_access_pin = rand(1111, 9999)
M.money = starting_funds
//create an entry in the account transaction log for when it was created
@@ -77,7 +76,7 @@ var/global/list/all_money_accounts = list()
T.time = "[rand(0,24)]:[rand(11,59)]" //prompting everyone to get a new account one day prior.
T.source_terminal = "NTGalaxyNet Terminal #[rand(111,1111)]" //The point being to partly to justify the transaction history being empty at the beginning of the round.
- M.account_number = rand(111111, 999999)
+ M.account_number = rand(11111, 99999)
else
T.date = current_date_string
T.time = worldtime2text()
@@ -220,8 +219,9 @@ var/global/list/all_money_accounts = list()
Holder name:
- Initial funds: (subtracted from station account)
+ Initial funds: (subtracted from station account.) New accounts are automatically assigned a secret number and pin, which are printed separately in a sealed package.
+ Ensure that the station account has enough money to create the account, or it will not be created
"}
// END AUTOFIX
@@ -233,7 +233,7 @@ var/global/list/all_money_accounts = list()
dat += {" Return to accounts listAccount number: #[detailed_account_view.account_number]
- Account holder: [detailed_account_view.owner_name]
+ Account holder:< /b> [detailed_account_view.owner_name] Account balance: $[detailed_account_view.money]
"
-
user << browse(dat,"window=account_db;size=700x650")
else
user << browse(null,"window=account_db")
@@ -292,7 +291,7 @@ var/global/list/all_money_accounts = list()
emag(user)
return
if(!held_card)
- usr.drop_item(src)
+ usr.drop_item(O, src)
held_card = idcard
if(access_cent_captain in idcard.access)
@@ -332,32 +331,28 @@ var/global/list/all_money_accounts = list()
if("finalise_create_account")
var/account_name = href_list["holder_name"]
var/starting_funds = max(text2num(href_list["starting_funds"]), 0)
- create_account(account_name, starting_funds, src)
- if(starting_funds > 0)
- //subtract the money
+ if ((station_account.money - starting_funds) > 0)
station_account.money -= starting_funds
-
- //create a transaction log entry
- var/datum/transaction/T = new()
- T.target_name = account_name
- T.purpose = "New account funds initialisation"
- T.amount = "([starting_funds])"
- T.date = current_date_string
- T.time = worldtime2text()
- T.source_terminal = machine_id
- station_account.transaction_log.Add(T)
-
- creating_new_account = 0
+ if(starting_funds >0)
+ //Create a transaction log entry if you need to
+ var/datum/transaction/T = new()
+ T.target_name = account_name
+ T.purpose = "New account funds initialisation"
+ T.amount = "([starting_funds])"
+ T.date = current_date_string
+ T.time = worldtime2text()
+ T.source_terminal = machine_id
+ station_account.transaction_log.Add(T)
+ create_account(account_name, starting_funds, src)
+ creating_new_account = 0
if("insert_card")
if(held_card)
held_card.loc = src.loc
-
if(ishuman(usr) && !usr.get_active_hand())
usr.put_in_hands(held_card)
held_card = null
if(access_level < 3)
access_level = 0
-
else
var/obj/item/I = usr.get_active_hand()
if(isEmag(I))
@@ -365,7 +360,7 @@ var/global/list/all_money_accounts = list()
return
if (istype(I, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/C = I
- usr.drop_item(src)
+ usr.drop_item(C, src)
held_card = C
if(access_level < 3)
if(access_cent_captain in C.access)
diff --git a/code/modules/Economy/POS.dm b/code/modules/Economy/POS.dm
index b2deccf7c1b..7baf248c512 100644
--- a/code/modules/Economy/POS.dm
+++ b/code/modules/Economy/POS.dm
@@ -405,7 +405,7 @@ var/const/POS_HEADER = {"
return
if(usr != logged_in)
if(logged_in)
- usr << "\red [logged_in.name] is already logged in. You cannot use this machine until they log out."
+ usr << "[logged_in.name] is already logged in. You cannot use this machine until they log out."
return
if("act" in href_list)
switch(href_list["act"])
@@ -433,7 +433,7 @@ var/const/POS_HEADER = {"
for(var/list/line in text2list(href_list["csv"],"\n"))
var/list/cells = text2list(line,",")
if(cells.len<2)
- usr << "\red The CSV must have at least two columns: Product Name, followed by Price (as a number)."
+ usr << "The CSV must have at least two columns: Product Name, followed by Price (as a number)."
src.attack_hand(usr)
return
var/line_item/LI = new
@@ -447,7 +447,7 @@ var/const/POS_HEADER = {"
if("Save Settings")
var/datum/money_account/new_linked_account = get_money_account(text2num(href_list["payableto"]),z)
if(!new_linked_account)
- usr << "\red Unable to link new account."
+ usr << "Unable to link new account."
else
linked_account = new_linked_account
screen=POS_SCREEN_SETTINGS
@@ -485,7 +485,7 @@ var/const/POS_HEADER = {"
if(istype(A,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = A
if(!logged_in)
- user.visible_message("\blue The machine beeps, and logs you in","You hear a beep.")
+ user.visible_message("The machine beeps, and logs you in","You hear a beep.")
logged_in = user
screen=POS_SCREEN_ORDER
update_icon()
@@ -493,23 +493,23 @@ var/const/POS_HEADER = {"
return
else
if(!linked_account)
- visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
flick(src,"pos-error")
return
if(screen!=POS_SCREEN_FINALIZE)
- visible_message("\blue The machine buzzes.","\red You hear a buzz.")
+ visible_message("The machine buzzes.","You hear a buzz.")
flick(src,"pos-error")
return
var/datum/money_account/acct = get_card_account(I)
if(!acct)
- visible_message("\red The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.","You hear a buzz.")
flick(src,"pos-error")
return
if(credits_needed > acct.money)
- visible_message("\red The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
flick(src,"pos-error")
return
- visible_message("\blue The machine beeps, and begins printing a receipt","You hear a beep.")
+ visible_message("The machine beeps, and begins printing a receipt","You hear a beep.")
PrintReceipt()
NewOrder()
acct.charge(credits_needed,linked_account,"Purchase at POS #[id].")
@@ -517,17 +517,17 @@ var/const/POS_HEADER = {"
screen=POS_SCREEN_ORDER
else if(istype(A,/obj/item/weapon/spacecash))
if(!linked_account)
- visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
flick(src,"pos-error")
return
if(!logged_in || screen!=POS_SCREEN_FINALIZE)
- visible_message("\blue The machine buzzes.","\red You hear a buzz.")
+ visible_message("The machine buzzes.","You hear a buzz.")
flick(src,"pos-error")
return
var/obj/item/weapon/spacecash/C=A
credits_held += C.worth*C.amount
if(credits_held >= credits_needed)
- visible_message("\blue The machine beeps, and begins printing a receipt","You hear a beep and the sound of paper being shredded.")
+ visible_message("The machine beeps, and begins printing a receipt","You hear a beep and the sound of paper being shredded.")
PrintReceipt()
NewOrder()
credits_held -= credits_needed
diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm
index 2ce99470998..8f5d6cd3a4a 100644
--- a/code/modules/admin/DB ban/functions.dm
+++ b/code/modules/admin/DB ban/functions.dm
@@ -82,7 +82,7 @@
var/sql = "INSERT INTO erro_ban (`id`,`bantime`,`serverip`,`bantype`,`reason`,`job`,`duration`,`rounds`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`,`edits`,`unbanned`,`unbanned_datetime`,`unbanned_ckey`,`unbanned_computerid`,`unbanned_ip`) VALUES (null, Now(), '[serverip]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], [(rounds)?"[rounds]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', '[ip]', '[a_ckey]', '[a_computerid]', '[a_ip]', '[who]', '[adminwho]', '', null, null, null, null, null)"
var/DBQuery/query_insert = dbcon.NewQuery(sql)
query_insert.Execute()
- usr << "\blue Ban saved to database."
+ usr << "Ban saved to database."
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
INVOKE_EVENT(on_ban,list(
@@ -150,17 +150,17 @@ datum/admins/proc/DB_ban_unban(var/ckey, var/bantype, var/job = "")
ban_number++;
if(ban_number == 0)
- usr << "\red Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin."
+ usr << "Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin."
return
if(ban_number > 1)
- usr << "\red Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin."
+ usr << "Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin."
return
if(istext(ban_id))
ban_id = text2num(ban_id)
if(!isnum(ban_id))
- usr << "\red Database update failed due to a ban ID mismatch. Contact the database admin."
+ usr << "Database update failed due to a ban ID mismatch. Contact the database admin."
return
DB_ban_unban_by_id(ban_id)
@@ -245,11 +245,11 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
ban_number++;
if(ban_number == 0)
- usr << "\red Database update failed due to a ban id not being present in the database."
+ usr << "Database update failed due to a ban id not being present in the database."
return
if(ban_number > 1)
- usr << "\red Database update failed due to multiple bans having the same ID. Contact the database admin."
+ usr << "Database update failed due to multiple bans having the same ID. Contact the database admin."
return
if(!src.owner || !istype(src.owner, /client))
@@ -290,7 +290,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
establish_db_connection()
if(!dbcon.IsConnected())
- usr << "\red Failed to establish database connection"
+ usr << "Failed to establish database connection"
return
var/output = "
"
diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index c1358ad9b0e..0cb6c5df37f 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -2,13 +2,13 @@ world/IsBanned(key,address,computer_id)
//Guest Checking
if(!guests_allowed && IsGuestKey(key))
log_access("Failed Login: [key] - Guests not allowed")
- message_admins("\blue Failed Login: [key] - Guests not allowed")
+ message_admins("Failed Login: [key] - Guests not allowed")
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.")
//check if the IP address is a known TOR node
if(config && config.ToRban && ToRban_isbanned(address))
log_access("Failed Login: [src] - Banned: ToR")
- message_admins("\blue Failed Login: [src] - Banned: ToR")
+ message_admins("Failed Login: [src] - Banned: ToR")
//ban their computer_id and ckey for posterity
AddBan(ckey(key), computer_id, "Use of ToR", "Automated Ban", 0, 0)
return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [config.banappeals]")
@@ -19,7 +19,7 @@ world/IsBanned(key,address,computer_id)
. = CheckBan( ckey(key), computer_id, address )
if(.)
log_access("Failed Login: [key] [computer_id] [address] - Banned [.["reason"]]")
- message_admins("\blue Failed Login: [key] id:[computer_id] ip:[address] - Banned [.["reason"]]")
+ message_admins("Failed Login: [key] id:[computer_id] ip:[address] - Banned [.["reason"]]")
return .
return ..() //default pager ban stuff
@@ -65,7 +65,7 @@ world/IsBanned(key,address,computer_id)
if(config.banappeals)
desc = "\nReason: You, or another user of this computer or connection ([pckey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban was applied by [ackey] on [bantime] \nBan type: [bantype] \nExpires: [expires] \nAppeal: [config.banappeals]"
else
- desc = "\nReason: You, or another user of this computer or connection ([pckey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban was applied by [ackey] on [bantime] \nBan type: [bantype] \nExpires: [expires] \nAppeal: \red No ban appeals link set"
+ desc = "\nReason: You, or another user of this computer or connection ([pckey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban was applied by [ackey] on [bantime] \nBan type: [bantype] \nExpires: [expires] \nAppeal: No ban appeals link set"
return list("reason"="[bantype]", "desc"="[desc]")
//return "[bantype][desc]"
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index a5880f562f0..7ebe3479fb7 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -103,7 +103,7 @@ var/savefile/Banlist
Banlist.cd = "/base"
if ( Banlist.dir.Find("[ckey][computerid]") )
- usr << text("\red Ban already exists.")
+ usr << text("Ban already exists.")
return 0
else
Banlist.dir.Add("[ckey][computerid]")
@@ -165,7 +165,7 @@ var/savefile/Banlist
/datum/admins/proc/unbanpanel()
var/count = 0
var/dat
- //var/dat = "Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
"
Banlist.cd = "/base"
for (var/A in Banlist.dir)
count++
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 69610898215..04fd912e7c1 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -310,7 +310,30 @@ var/global/floorIsLava = 0
if(!infos || !infos.len) return 0
else return 1
+/proc/exportnotes(var/key as text)
+ var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav")
+ var/list/infos
+ info >> infos
+ var/list/noteslist = list()
+ if(!infos)
+ return list("1" = "No notes found for [key]")
+ else
+ var/i = 0
+ for(var/datum/player_info/I in infos)
+ i += 1
+ if(!I.timestamp)
+ I.timestamp = "Pre-4/3/2012"
+ if(!I.rank)
+ I.rank = "N/A"
+ /*noteslist["note:[i]"] = "[I.content]"
+ noteslist["author:[i]"] = "[I.author]"
+ noteslist["rank:[i]"] = "[I.rank]"
+ noteslist["timestamp:[i]"] = "[I.timestamp]"*/
+ noteslist["[i]"] = "[I.content] by [I.author] ([I.rank]) on [I.timestamp]"
+ if(!noteslist.len)
+ noteslist["1"] = "No notes found for [key]"
+ return noteslist
/datum/admins/proc/show_player_info(var/key as text)
set category = "Admin"
set name = "Show Player Info"
@@ -742,6 +765,11 @@ var/global/floorIsLava = 0
Toggle Nar-Sie's behaviour Trigger a fake alert Adds in some Micheal Bay to the shift without major destruction
+ Turn every players into Bomberman
+ Make Bomberman Bombs actually hurt players
+ Make Bomberman Bombs actually destroy stuff
+ Make Bomberman Bombs harmless to players(default)
+ Make Bomberman Bombs harmless to the environnement(default)
Final Solutions (Warning, these will end the round!)
@@ -795,7 +823,7 @@ var/global/floorIsLava = 0
if(confirm == "Cancel")
return
if(confirm == "Yes")
- world << "\red Restarting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
+ world << "Restarting world!Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated a reboot.")
feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
@@ -807,7 +835,7 @@ var/global/floorIsLava = 0
CallHook("Reboot",list())
if (watchdog.waiting)
- world << "\blue Server will shut down for an automatic update in a few seconds."
+ world << "Server will shut down for an automatic update in a few seconds."
watchdog.signal_ready()
return
@@ -825,7 +853,7 @@ var/global/floorIsLava = 0
if(message)
if(!check_rights(R_SERVER,0))
message = adminscrub(message,500)
- world << "\blue [usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]"
+ world << "[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]"
log_admin("Announce: [key_name(usr)] : [message]")
feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -888,7 +916,7 @@ var/global/floorIsLava = 0
else
world << "New players may now enter the game."
log_admin("[key_name(usr)] toggled new player game entering.")
- message_admins("\blue [key_name_admin(usr)] toggled new player game entering.", 1)
+ message_admins("[key_name_admin(usr)] toggled new player game entering.", 1)
world.update_status()
feedback_add_details("admin_verb","TE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -914,7 +942,7 @@ var/global/floorIsLava = 0
world << "You may now respawn."
else
world << "You may no longer respawn :("
- message_admins("\blue [key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].", 1)
+ message_admins("[key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].", 1)
log_admin("[key_name(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].")
world.update_status()
feedback_add_details("admin_verb","TR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -954,7 +982,7 @@ var/global/floorIsLava = 0
world.Reboot()
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
return //alert("Round end delayed", null, null, null, null, null)
if (!( going ))
@@ -974,7 +1002,7 @@ var/global/floorIsLava = 0
set desc="Toggle admin jumping"
set name="Toggle Jump"
config.allow_admin_jump = !(config.allow_admin_jump)
- message_admins("\blue Toggled admin jumping to [config.allow_admin_jump].")
+ message_admins("Toggled admin jumping to [config.allow_admin_jump].")
feedback_add_details("admin_verb","TJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/adspawn()
@@ -982,7 +1010,7 @@ var/global/floorIsLava = 0
set desc="Toggle admin spawning"
set name="Toggle Spawn"
config.allow_admin_spawning = !(config.allow_admin_spawning)
- message_admins("\blue Toggled admin item spawning to [config.allow_admin_spawning].")
+ message_admins("Toggled admin item spawning to [config.allow_admin_spawning].")
feedback_add_details("admin_verb","TAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/adrev()
@@ -990,7 +1018,7 @@ var/global/floorIsLava = 0
set desc="Toggle admin revives"
set name="Toggle Revive"
config.allow_admin_rev = !(config.allow_admin_rev)
- message_admins("\blue Toggled reviving to [config.allow_admin_rev].")
+ message_admins("Toggled reviving to [config.allow_admin_rev].")
feedback_add_details("admin_verb","TAR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/immreboot()
@@ -1000,7 +1028,7 @@ var/global/floorIsLava = 0
if(!usr.client.holder) return
if( alert("Reboot server?",,"Yes","No") == "No")
return
- world << "\red Rebooting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
+ world << "Rebooting world!Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated an immediate reboot.")
feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
@@ -1012,7 +1040,7 @@ var/global/floorIsLava = 0
CallHook("Reboot",list())
if (watchdog.waiting)
- world << "\blue Server will shut down for an automatic update in a few seconds."
+ world << "Server will shut down for an automatic update in a few seconds."
watchdog.signal_ready()
return
@@ -1171,7 +1199,7 @@ var/global/floorIsLava = 0
else
world << "Guests may now enter the game."
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.")
- message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
+ message_admins("[key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/unjobban_panel()
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 27228ddf5d0..1e78162d568 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -108,6 +108,9 @@ var/list/admin_verbs_fun = list(
/client/proc/editappear,
/client/proc/commandname,
/client/proc/delete_all_adminbus,
+ /client/proc/delete_all_bomberman,
+ /client/proc/create_bomberman_arena,
+ /client/proc/control_bomberman_arena,
/client/proc/gib_money, // /vg/
/client/proc/smissmas,
)
@@ -174,6 +177,7 @@ var/list/admin_verbs_debug = list(
#ifdef PROFILE_MACHINES
/client/proc/cmd_admin_dump_macprofile,
#endif
+ /client/proc/debugNatureMapGenerator
)
var/list/admin_verbs_possess = list(
/proc/possess,
@@ -395,13 +399,13 @@ var/list/admin_verbs_mod = list(
if(holder && mob)
if(mob.invisibility == INVISIBILITY_OBSERVER)
mob.invisibility = initial(mob.invisibility)
- mob << "\red Invisimin off. Invisibility reset."
+ mob << "Invisimin off. Invisibility reset."
mob.icon_state = "ghost"
mob.icon = 'icons/mob/human.dmi'
mob.update_icons()
else
mob.invisibility = INVISIBILITY_OBSERVER
- mob << "\blue Invisimin on. You are now as invisible as a ghost."
+ mob << "Invisimin on. You are now as invisible as a ghost."
mob.icon_state = "ghost"
mob.icon = 'icons/mob/mob.dmi'
@@ -600,7 +604,7 @@ var/list/admin_verbs_mod = list(
var/light_impact_range = input("Light impact range (in tiles):") as num
var/flash_range = input("Flash range (in tiles):") as num
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
- message_admins("\blue [ckey] creating an admin explosion at [epicenter.loc].")
+ message_admins("[ckey] creating an admin explosion at [epicenter.loc].")
feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/give_spell(mob/T as mob in mob_list) // -- Urist
@@ -612,7 +616,7 @@ var/list/admin_verbs_mod = list(
T.spell_list += new S
feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].")
- message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1)
+ message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1)
/client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom
set category = "Fun"
@@ -623,7 +627,7 @@ var/list/admin_verbs_mod = list(
T.contract_disease(new D, 1)
feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].")
- message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1)
+ message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1)
/client/proc/make_sound(var/obj/O in world) // -- TLE
set category = "Special Verbs"
@@ -676,7 +680,7 @@ var/list/admin_verbs_mod = list(
usr << "Disabled air processing."
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] used 'kill air'.")
- message_admins("\blue [key_name_admin(usr)] used 'kill air'.", 1)
+ message_admins("[key_name_admin(usr)] used 'kill air'.", 1)
/client/proc/deadmin_self()
set name = "De-admin self"
@@ -729,7 +733,7 @@ var/list/admin_verbs_mod = list(
if(!check_rights(R_FUN)) return
if(!istype(M, /mob/living/carbon/human))
- usr << "\red You can only do this to humans!"
+ usr << "You can only do this to humans!"
return
switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox and Tajaran can result in unintended consequences.",,"Yes","No"))
if("No")
@@ -841,7 +845,7 @@ var/list/admin_verbs_mod = list(
T << "Move on."
log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.")
- message_admins("\blue [key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1)
+ message_admins("[key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1)
/client/proc/global_man_up()
set category = "Fun"
@@ -853,7 +857,7 @@ var/list/admin_verbs_mod = list(
T << 'sound/voice/ManUp1.ogg'
log_admin("[key_name(usr)] told everyone to man up and deal with it.")
- message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1)
+ message_admins("[key_name_admin(usr)] told everyone to man up and deal with it.", 1)
/client/proc/readmin()
diff --git a/code/modules/admin/newbanjob.dm b/code/modules/admin/newbanjob.dm
index 3b8fa1211b3..b44a4cb0832 100644
--- a/code/modules/admin/newbanjob.dm
+++ b/code/modules/admin/newbanjob.dm
@@ -141,7 +141,7 @@ var/savefile/Banlistjob
Banlistjob.cd = "/base"
if ( Banlistjob.dir.Find("[ckey][computerid][rank]") )
- usr << text("\red Banjob already exists.")
+ usr << text("Banjob already exists.")
return 0
else
Banlistjob.dir.Add("[ckey][computerid][rank]")
@@ -206,7 +206,7 @@ var/savefile/Banlistjob
/datum/admins/proc/unjobbanpanel()
var/count = 0
var/dat
- //var/dat = "Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
"
Banlistjob.cd = "/base"
for (var/A in Banlistjob.dir)
count++
@@ -223,24 +223,24 @@ var/savefile/Banlistjob
/*/datum/admins/proc/permjobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
if(AddBanjob(ckey, computerid, reason, usr.ckey, 0, 0, job))
- M << "\redYou have been banned from [job] by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a permanent ban."
+ M << "You have been banned from [job] by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a permanent ban."
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
log_admin("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
- message_admins("\blue[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
+ message_admins("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
/datum/admins/proc/timejobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
if(AddBanjob(ckey, computerid, reason, usr.ckey, 1, mins, job))
- M << "\redYou have been jobbanned from [job] by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a temporary ban, it will be removed in [mins] minutes."
+ M << "You have been jobbanned from [job] by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a temporary ban, it will be removed in [mins] minutes."
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
log_admin("[usr.client.ckey] has jobbanned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- message_admins("\blue[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")*/
+ message_admins("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")*/
//////////////////////////////////// DEBUG ////////////////////////////////////
/proc/CreateBansjob()
diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm
index 9d35ec5f455..99db68178be 100644
--- a/code/modules/admin/permissionverbs/permissionedit.dm
+++ b/code/modules/admin/permissionverbs/permissionedit.dm
@@ -60,13 +60,13 @@
return
if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
- usr << "\red You do not have permission to do this!"
+ usr << "You do not have permission to do this!"
return
establish_db_connection()
if(!dbcon.IsConnected())
- usr << "\red Failed to establish database connection"
+ usr << "Failed to establish database connection"
return
if(!adm_ckey || !new_rank)
@@ -94,14 +94,14 @@
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
log_query.Execute()
- usr << "\blue New admin added."
+ usr << "New admin added."
else
if(!isnull(admin_id) && isnum(admin_id))
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `erro_admin` SET rank = '[new_rank]' WHERE id = [admin_id]")
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');")
log_query.Execute()
- usr << "\blue Admin rank changed."
+ usr << "Admin rank changed."
/datum/admins/proc/log_admin_permission_modification(var/adm_ckey, var/new_permission)
if(config.admin_legacy_system) return
@@ -110,12 +110,12 @@
return
if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
- usr << "\red You do not have permission to do this!"
+ usr << "You do not have permission to do this!"
return
establish_db_connection()
if(!dbcon.IsConnected())
- usr << "\red Failed to establish database connection"
+ usr << "Failed to establish database connection"
return
if(!adm_ckey || !new_permission)
@@ -149,10 +149,10 @@
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
log_query.Execute()
- usr << "\blue Permission removed."
+ usr << "Permission removed."
else //This admin doesn't have this permission, so we are adding it.
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `erro_admin` SET flags = '[admin_rights | new_permission]' WHERE id = [admin_id]")
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]')")
log_query.Execute()
- usr << "\blue Permission added."
\ No newline at end of file
+ usr << "Permission added."
\ No newline at end of file
diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm
index dd0f69b8f3e..3d4636f4775 100644
--- a/code/modules/admin/player_notes.dm
+++ b/code/modules/admin/player_notes.dm
@@ -123,7 +123,7 @@ datum/admins/proc/notes_gethtml(var/ckey)
infos += P
info << infos
- message_admins("\blue [key_name_admin(usr)] has edited [key]'s notes.")
+ message_admins("[key_name_admin(usr)] has edited [key]'s notes.")
log_admin("[key_name(usr)] has edited [key]'s notes.")
del info
@@ -148,7 +148,7 @@ datum/admins/proc/notes_gethtml(var/ckey)
infos.Remove(item)
info << infos
- message_admins("\blue [key_name_admin(usr)] deleted one of [key]'s notes.")
+ message_admins("[key_name_admin(usr)] deleted one of [key]'s notes.")
log_admin("[key_name(usr)] deleted one of [key]'s notes.")
del info
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 62d9624ad2a..5811ee8e880 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -12,31 +12,31 @@
if("1")
log_admin("[key_name(usr)] has spawned a traitor.")
if(!src.makeTraitors())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("2")
log_admin("[key_name(usr)] has spawned a changeling.")
if(!src.makeChanglings())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("3")
log_admin("[key_name(usr)] has spawned revolutionaries.")
if(!src.makeRevs())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("4")
log_admin("[key_name(usr)] has spawned a cultists.")
if(!src.makeCult())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("5")
log_admin("[key_name(usr)] has spawned a malf AI.")
if(!src.makeMalfAImode())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("6")
log_admin("[key_name(usr)] has spawned a wizard.")
if(!src.makeWizard())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("7")
log_admin("[key_name(usr)] has spawned a nuke team.")
if(!src.makeNukeTeam())
- usr << "\red Unfortunately there weren't enough candidates available."
+ usr << "Unfortunately there weren't enough candidates available."
if("8")
log_admin("[key_name(usr)] has spawned a ninja.")
src.makeSpaceNinja()
@@ -46,11 +46,11 @@
if("10")
log_admin("[key_name(usr)] has spawned a death squad.")
if(!makeDeathsquad())
- usr << "\red Unfortunately, there were no candidates available"
+ usr << "Unfortunately, there were no candidates available"
if("11")
log_admin("[key_name(usr)] has spawned vox raiders.")
if(!src.makeVoxRaiders())
- usr << "\red Unfortunately, there weren't enough candidates available."
+ usr << "Unfortunately, there weren't enough candidates available."
else if("announce_laws" in href_list)
var/mob/living/silicon/S = locate(href_list["mob"])
@@ -305,7 +305,7 @@
emergency_shuttle.incall()
captain_announce("The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
log_admin("[key_name(usr)] called the Emergency Shuttle")
- message_admins("\blue [key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
+ message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
if("2")
if ((!( ticker ) || emergency_shuttle.location || emergency_shuttle.direction == 0))
@@ -315,11 +315,11 @@
emergency_shuttle.incall()
captain_announce("The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
log_admin("[key_name(usr)] called the Emergency Shuttle")
- message_admins("\blue [key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
+ message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
if(1)
emergency_shuttle.recall()
log_admin("[key_name(usr)] sent the Emergency Shuttle back")
- message_admins("\blue [key_name_admin(usr)] sent the Emergency Shuttle back", 1)
+ message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back", 1)
href_list["secretsadmin"] = "check_antagonist"
@@ -329,7 +329,7 @@
emergency_shuttle.settimeleft( input("Enter new shuttle duration (seconds):","Edit Shuttle Timeleft", emergency_shuttle.timeleft() ) as num )
log_admin("[key_name(usr)] edited the Emergency Shuttle's timeleft to [emergency_shuttle.timeleft()]")
captain_announce("The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
- message_admins("\blue [key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [emergency_shuttle.timeleft()]", 1)
+ message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [emergency_shuttle.timeleft()]", 1)
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["delay_round_end"])
@@ -337,7 +337,7 @@
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["simplemake"])
@@ -354,7 +354,7 @@
if("Yes") delmob = 1
log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]")
- message_admins("\blue [key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1)
+ message_admins("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1)
var/mob/new_mob
switch(href_list["simplemake"])
if("observer") new_mob = M.change_mob_type( /mob/dead/observer , null, null, delmob )
@@ -448,7 +448,7 @@
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
- message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
+ message_admins("[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
Banlist.cd = "/base/[banfolder]"
Banlist["reason"] << reason
Banlist["temp"] << temp
@@ -484,8 +484,8 @@
feedback_inc("ban_appearance_unban", 1)
DB_ban_unban(M.ckey, BANTYPE_APPEARANCE)
appearance_unban(M)
- message_admins("\blue [key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban", 1)
- M << "\red[usr.client.ckey] has removed your appearance ban."
+ message_admins("[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban", 1)
+ M << "[usr.client.ckey] has removed your appearance ban."
else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel"))
if("Yes")
@@ -498,14 +498,14 @@
DB_ban_record(BANTYPE_APPEARANCE, M, -1, reason)
appearance_fullban(M, "[reason]; By [usr.ckey] on [time2text(world.realtime)]")
notes_add(M.ckey, "Appearance banned - [reason]")
- message_admins("\blue [key_name_admin(usr)] appearance banned [key_name_admin(M)]", 1)
- M << "\redYou have been appearance banned by [usr.client.ckey]."
- M << "\red The reason is: [reason]"
- M << "\red Appearance ban can be lifted only upon request."
+ message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)]", 1)
+ M << "You have been appearance banned by [usr.client.ckey]."
+ M << "The reason is: [reason]"
+ M << "Appearance ban can be lifted only upon request."
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
if("No")
return
@@ -871,7 +871,7 @@
switch(alert("Temporary Ban?",,"Yes","No", "Cancel"))
if("Yes")
if(config.ban_legacy_system)
- usr << "\red Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban."
+ usr << "Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban."
return
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
if(!mins)
@@ -893,10 +893,10 @@
else
msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]")
- message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
- M << "\redYou have been jobbanned by [usr.client.ckey] from: [msg]."
- M << "\red The reason is: [reason]"
- M << "\red This jobban will be lifted in [mins] minutes."
+ message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
+ M << "You have been jobbanned by [usr.client.ckey] from: [msg]."
+ M << "The reason is: [reason]"
+ M << "This jobban will be lifted in [mins] minutes."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("No")
@@ -913,10 +913,10 @@
if(!msg) msg = job
else msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]")
- message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
- M << "\redYou have been jobbanned by [usr.client.ckey] from: [msg]."
- M << "\red The reason is: [reason]"
- M << "\red Jobban can be lifted only upon request."
+ message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
+ M << "You have been jobbanned by [usr.client.ckey] from: [msg]."
+ M << "The reason is: [reason]"
+ M << "Jobban can be lifted only upon request."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("Cancel")
@@ -946,8 +946,8 @@
else
continue
if(msg)
- message_admins("\blue [key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
- M << "\redYou have been un-jobbanned by [usr.client.ckey] from [msg]."
+ message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
+ M << "You have been un-jobbanned by [usr.client.ckey] from [msg]."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
return 0 //we didn't do anything!
@@ -957,9 +957,9 @@
if (ismob(M))
if(!check_if_greater_rights_than(M.client))
return
- M << "\red You have been kicked from the server"
+ M << "You have been kicked from the server"
log_admin("[key_name(usr)] booted [key_name(M)].")
- message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1)
+ message_admins("[key_name_admin(usr)] booted [key_name_admin(M)].", 1)
//M.client = null
del(M.client)
/*
@@ -988,7 +988,7 @@
if(t)
if((alert("Do you want to unjobban [t]?","Unjobban confirmation", "Yes", "No") == "Yes") && t) //No more misclicks! Unless you do it twice.
log_admin("[key_name(usr)] removed [t]")
- message_admins("\blue [key_name_admin(usr)] removed [t]", 1)
+ message_admins("[key_name_admin(usr)] removed [t]", 1)
jobban_remove(t)
href_list["ban"] = 1 // lets it fall through and refresh
var/t_split = text2list(t, " - ")
@@ -1015,17 +1015,17 @@
return
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a temporary ban, it will be removed in [mins] minutes."
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a temporary ban, it will be removed in [mins] minutes."
feedback_inc("ban_tmp",1)
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
feedback_inc("ban_tmp_mins",mins)
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
del(M.client)
//del(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
@@ -1039,15 +1039,15 @@
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP)
if("No")
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a permanent ban."
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a permanent ban."
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
feedback_inc("ban_perma",1)
DB_ban_record(BANTYPE_PERMA, M, -1, reason)
@@ -1116,8 +1116,8 @@
return alert(usr, "The game has already started.", null, null, null, null)
master_mode = href_list["c_mode2"]
log_admin("[key_name(usr)] set the mode as [master_mode].")
- message_admins("\blue [key_name_admin(usr)] set the mode as [master_mode].", 1)
- world << "\blue The mode is now: [master_mode]"
+ message_admins("[key_name_admin(usr)] set the mode as [master_mode].", 1)
+ world << "The mode is now: [master_mode]"
Game() // updates the main game menu
world.save_mode(master_mode)
.(href, list("c_mode"=1))
@@ -1131,7 +1131,7 @@
return alert(usr, "The game mode has to be secret!", null, null, null, null)
secret_force_mode = href_list["f_secret2"]
log_admin("[key_name(usr)] set the forced secret mode as [secret_force_mode].")
- message_admins("\blue [key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1)
+ message_admins("[key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1)
Game() // updates the main game menu
.(href, list("f_secret"=1))
@@ -1144,7 +1144,7 @@
return
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
- message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]", 1)
+ message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]", 1)
var/mob/M = H.monkeyize()
if(M)
if(M.client == CLIENT) usr = M //We probably transformed ourselves
@@ -1159,7 +1159,7 @@
return
log_admin("[key_name(usr)] attempting to corgize [key_name(H)]")
- message_admins("\blue [key_name_admin(usr)] attempting to corgize [key_name_admin(H)]", 1)
+ message_admins("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)]", 1)
var/mob/M = H.corgize()
if(M)
if(M.client == CLIENT) usr = M //We probably transformed ourselves
@@ -1177,7 +1177,7 @@
M.say(speech)
speech = sanitize(speech) // Nah, we don't trust them
log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]")
- message_admins("\blue [key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]")
+ message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]")
else if(href_list["sendtoprison"])
// Reworked to be useful for investigating shit.
@@ -1240,9 +1240,9 @@
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
*/
- M << "\red You have been sent to the prison station!"
+ M << "You have been sent to the prison station!"
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
- message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
+ message_admins("[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
else if(href_list["tdome1"] || href_list["tdome2"])
if(!check_rights(R_FUN)) return
@@ -1402,7 +1402,7 @@
sleep(5)
M.loc = pick(tdomeadmin)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
@@ -1435,7 +1435,7 @@
sleep(5)
M.loc = pick(tdomeobserve)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
@@ -1449,7 +1449,7 @@
if(config.allow_admin_rev)
L.revive(0)
- message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
+ message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
log_admin("[key_name(usr)] healed / Rrvived [key_name(L)]")
else
usr << "Admin Rejuvinates have been disabled"
@@ -1462,7 +1462,7 @@
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
+ message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
log_admin("[key_name(usr)] AIized [key_name(H)]")
var/mob/M = H.AIize()
if(M)
@@ -1729,7 +1729,7 @@
log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
feedback_inc("admin_cookies_spawned",1)
- H << "\blue Your prayers have been answered!! You received the best cookie!"
+ H << "Your prayers have been answered!! You received the best cookie!"
else if(href_list["BlueSpaceArtillery"])
if(!check_rights(R_ADMIN|R_FUN)) return
@@ -1915,7 +1915,7 @@
// /vg/
else if(href_list["set_base_laws"])
if(!check_rights(R_FUN))
- usr << "\red You don't have +FUN. Go away."
+ usr << "You don't have +FUN. Go away."
return
var/lawtypes = typesof(/datum/ai_laws) - /datum/ai_laws
var/selected_law = input("Select the default lawset desired.","Lawset Selection",null) as null|anything in lawtypes
@@ -1928,7 +1928,7 @@
if("mommi")
mommi_base_law_type = selected_law
subject = "MoMMIs"
- usr << "\blue New [subject] will spawn with the [selected_law] lawset."
+ usr << "New [subject] will spawn with the [selected_law] lawset."
log_admin("[key_name(src.owner)] set the default laws of [subject] to: [selected_law]")
message_admins("[key_name_admin(src.owner)] set the default laws of [subject] to: [selected_law]", 1)
lawchanges.Add("[key_name_admin(src.owner)] set the default laws of [subject] to: [selected_law]")
@@ -2142,30 +2142,30 @@
feedback_add_details("admin_secrets_fun_used","Grav")
if(gravity_is_on)
log_admin("[key_name(usr)] toggled gravity on.", 1)
- message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1)
+ message_admins("[key_name_admin(usr)] toggled gravity on.", 1)
command_alert("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
else
log_admin("[key_name(usr)] toggled gravity off.", 1)
- message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1)
+ message_admins("[key_name_admin(usr)] toggled gravity off.", 1)
command_alert("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")
if("wave")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","Meteor")
log_admin("[key_name(usr)] spawned a meteor wave", 1)
- message_admins("\blue [key_name_admin(usr)] spawned a meteor wave.", 1)
+ message_admins("[key_name_admin(usr)] spawned a meteor wave.", 1)
new /datum/event/meteor_wave
if("goblob")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","Blob")
log_admin("[key_name(usr)] spawned a blob", 1)
- message_admins("\blue [key_name_admin(usr)] spawned a blob.", 1)
+ message_admins("[key_name_admin(usr)] spawned a blob.", 1)
new /datum/event/blob
if("aliens")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","Aliens")
log_admin("[key_name(usr)] spawned an alien infestation", 1)
- message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1)
+ message_admins("[key_name_admin(usr)] attempted an alien infestation", 1)
new /datum/event/alien_infestation
@@ -2173,32 +2173,32 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","P")
log_admin("[key_name(usr)] made all areas powered", 1)
- message_admins("\blue [key_name_admin(usr)] made all areas powered", 1)
+ message_admins("[key_name_admin(usr)] made all areas powered", 1)
power_restore()
if("unpower")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","UP")
log_admin("[key_name(usr)] made all areas unpowered", 1)
- message_admins("\blue [key_name_admin(usr)] made all areas unpowered", 1)
+ message_admins("[key_name_admin(usr)] made all areas unpowered", 1)
power_failure()
if("quickpower")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","QP")
log_admin("[key_name(usr)] made all SMESs powered", 1)
- message_admins("\blue [key_name_admin(usr)] made all SMESs powered", 1)
+ message_admins("[key_name_admin(usr)] made all SMESs powered", 1)
power_restore_quick()
if("activateprison")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","AP")
- world << "\blue Transit signature detected."
- world << "\blue Incoming shuttle."
+ world << "Transit signature detected."
+ world << "Incoming shuttle."
/*
var/A = locate(/area/shuttle_prison)
for(var/atom/movable/AM as mob|obj in A)
AM.z = 1
AM.Move()
*/
- message_admins("\blue [key_name_admin(usr)] sent the prison shuttle to the station.", 1)
+ message_admins("[key_name_admin(usr)] sent the prison shuttle to the station.", 1)
if("deactivateprison")
/*
feedback_inc("admin_secrets_fun_used",1)
@@ -2208,53 +2208,57 @@
AM.z = 2
AM.Move()
*/
- message_admins("\blue [key_name_admin(usr)] sent the prison shuttle back.", 1)
+ message_admins("[key_name_admin(usr)] sent the prison shuttle back.", 1)
if("toggleprisonstatus")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","TPS")
for(var/obj/machinery/computer/prison_shuttle/PS in world)
PS.allowedtocall = !(PS.allowedtocall)
- message_admins("\blue [key_name_admin(usr)] toggled status of prison shuttle to [PS.allowedtocall].", 1)
- if("prisonwarp")
- if(!ticker)
+ message_admins("[key_name_admin(usr)] toggled status of prison shuttle to [PS.allowedtocall].", 1)
+ if ("prisonwarp")
+ if (!ticker)
alert("The game hasn't started yet!", null, null, null, null, null)
return
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","PW")
- message_admins("\blue [key_name_admin(usr)] teleported all players to the prison station.", 1)
- for(var/mob/living/carbon/human/H in mob_list)
- var/turf/loc = find_loc(H)
- var/security = 0
- if(loc.z > 1 || prisonwarped.Find(H))
-//don't warp them if they aren't ready or are already there
- continue
- H.Paralyse(5)
- if(H.wear_id)
- var/obj/item/weapon/card/id/id = H.get_idcard()
- for(var/A in id.access)
- if(A == access_security)
- security++
- if(!security)
- //strip their stuff before they teleport into a cell :downs:
- for(var/obj/item/weapon/W in H)
- if(istype(W, /datum/organ/external))
- continue
- //don't strip organs
- H.u_equip(W)
- if (H.client)
- H.client.screen -= W
- if (W)
- W.loc = H.loc
- W.dropped(H)
- W.layer = initial(W.layer)
- //teleport person to cell
- H.loc = pick(prisonwarp)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/color/prisoner(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
- else
- //teleport security person
- H.loc = pick(prisonsecuritywarp)
- prisonwarped += H
+
+ feedback_inc("admin_secrets_fun_used", 1)
+
+ feedback_add_details("admin_secrets_fun_used", "PW")
+
+ message_admins("[key_name_admin(usr)] teleported all players to the prison station.", 1)
+
+ var/security
+
+ for (var/mob/living/carbon/human/H in mob_list)
+ if (H)
+ if (H in prisonwarped) // don't warp them if they aren't ready or are already there
+ continue
+
+ security = FALSE
+
+ H.Paralyse(5)
+
+ if (H.wear_id)
+ var/obj/item/weapon/card/id/id = H.get_idcard()
+
+ for (var/A in id.access)
+ if (A == access_security)
+ security = TRUE
+ break
+
+ if (!security)
+ // strip their stuff before they teleport into a cell :downs:
+ for (var/obj/item/I in H.get_all_slots())
+ H.drop_from_inventory(I)
+
+ H.loc = pick(prisonwarp) // teleport person to cell
+
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/color/prisoner(H), slot_w_uniform)
+
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
+ else
+ H.loc = pick(prisonsecuritywarp) // teleport security person
+
+ prisonwarped += H
if("traitor_all")
if(!ticker)
alert("The game hasn't started yet!")
@@ -2286,7 +2290,7 @@
A.mind.objectives += new_objective
ticker.mode.greet_traitor(A.mind)
ticker.mode.finalize_traitor(A.mind)
- message_admins("\blue [key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]", 1)
+ message_admins("[key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]", 1)
log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]")
if("moveminingshuttle")
if(mining_shuttle_moving)
@@ -2294,25 +2298,25 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShM")
move_mining_shuttle()
- message_admins("\blue [key_name_admin(usr)] moved mining shuttle", 1)
+ message_admins("[key_name_admin(usr)] moved mining shuttle", 1)
log_admin("[key_name(usr)] moved the mining shuttle")
if("moveadminshuttle")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShA")
move_admin_shuttle()
- message_admins("\blue [key_name_admin(usr)] moved the centcom administration shuttle", 1)
+ message_admins("[key_name_admin(usr)] moved the centcom administration shuttle", 1)
log_admin("[key_name(usr)] moved the centcom administration shuttle")
if("moveferry")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShF")
move_ferry()
- message_admins("\blue [key_name_admin(usr)] moved the centcom ferry", 1)
+ message_admins("[key_name_admin(usr)] moved the centcom ferry", 1)
log_admin("[key_name(usr)] moved the centcom ferry")
if("movealienship")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShX")
move_alien_ship()
- message_admins("\blue [key_name_admin(usr)] moved the alien dinghy", 1)
+ message_admins("[key_name_admin(usr)] moved the alien dinghy", 1)
log_admin("[key_name(usr)] moved the alien dinghy")
if("togglebombcap")
feedback_inc("admin_secrets_fun_used",1)
@@ -2327,7 +2331,7 @@
var/range_dev = MAX_EXPLOSION_RANGE *0.25
var/range_high = MAX_EXPLOSION_RANGE *0.5
var/range_low = MAX_EXPLOSION_RANGE
- message_admins("\red [key_name_admin(usr)] changed the bomb cap to [range_dev], [range_high], [range_low]", 1)
+ message_admins(" [key_name_admin(usr)] changed the bomb cap to [range_dev], [range_high], [range_low]", 1)
log_admin("[key_name_admin(usr)] changed the bomb cap to [MAX_EXPLOSION_RANGE]")
if("flicklights")
@@ -2347,27 +2351,27 @@
var/Message = rand(1,4)
switch(Message)
if(1)
- M.show_message(text("\blue You shudder as if cold..."), 1)
+ M.show_message(text("You shudder as if cold..."), 1)
if(2)
- M.show_message(text("\blue You feel something gliding across your back..."), 1)
+ M.show_message(text("You feel something gliding across your back..."), 1)
if(3)
- M.show_message(text("\blue Your eyes twitch, you feel like something you can't see is here..."), 1)
+ M.show_message(text("Your eyes twitch, you feel like something you can't see is here..."), 1)
if(4)
- M.show_message(text("\blue You notice something moving out of the corner of your eye, but nothing is there..."), 1)
+ M.show_message(text("You notice something moving out of the corner of your eye, but nothing is there..."), 1)
for(var/obj/W in orange(5,M))
if(prob(25) && !W.anchored)
step_rand(W)
sleep(rand(100,1000))
for(var/mob/M in player_list)
if(M.stat != 2)
- M.show_message(text("\blue The chilling wind suddenly stops..."), 1)
+ M.show_message(text("The chilling wind suddenly stops..."), 1)
/* if("shockwave")
ok = 1
- world << "\red ALERT: STATION STRESS CRITICAL"
+ world << "ALERT: STATION STRESS CRITICAL"
sleep(60)
- world << "\red ALERT: STATION STRESS CRITICAL. TOLERABLE LEVELS EXCEEDED!"
+ world << "ALERT: STATION STRESS CRITICAL. TOLERABLE LEVELS EXCEEDED!"
sleep(80)
- world << "\red ALERT: STATION STRUCTURAL STRESS CRITICAL. SAFETY MECHANISMS FAILED!"
+ world << "ALERT: STATION STRUCTURAL STRESS CRITICAL. SAFETY MECHANISMS FAILED!"
sleep(40)
for(var/mob/M in world)
shake_camera(M, 400, 1)
@@ -2586,7 +2590,7 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","RET")
for(var/mob/living/carbon/human/H in player_list)
- H << "\red You suddenly feel stupid."
+ H << "You suddenly feel stupid."
H.setBrainLoss(60)
message_admins("[key_name_admin(usr)] made everybody retarded")
if("fakeguns")
@@ -2761,6 +2765,79 @@
for(var/i = 1 to choice)
world << sound('sound/effects/explosionfar.ogg')
sleep(rand(2, 10)) //Sleep 0.2 to 1 second
+ if("massbomber")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BBM")
+ var/choice = alert("Dress every player like Bomberman and give them BBDs?","Bomberman Mode Activation","Confirm","Cancel")
+ if(choice=="Confirm")
+ bomberman_mode = 1
+ world << sound('sound/bomberman/start.ogg')
+ for(var/mob/living/carbon/human/M in player_list)
+ if(M.wear_suit)
+ var/obj/item/O = M.wear_suit
+ M.u_equip(O)
+ O.loc = M.loc
+ O.dropped(M)
+ if(M.head)
+ var/obj/item/O = M.head
+ M.u_equip(O)
+ O.loc = M.loc
+ O.dropped(M)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/bomberman(M), slot_head)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/bomberman(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/weapon/bomberman/(M), slot_s_store)
+ M.update_icons()
+ M << "Wait...what?"
+ spawn(50)
+ M << "Tip: Use the BBD in your suit's pocket to place bombs."
+ M << "Try to keep your BBD and escape this hell hole alive!"
+
+ message_admins("[key_name_admin(usr)] turned everyone into Bomberman!")
+ log_admin("[key_name_admin(usr)] turned everyone into Bomberman!")
+ if("bomberhurt")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BBH")
+ var/choice = alert("Activate Cuban Pete mode? Note that newly spawned BBD will still have player damage deactivated.","Activating Bomberman Bombs Player Damage","Confirm","Cancel")
+ if(choice=="Confirm")
+ bomberman_hurt = 1
+ for(var/obj/item/weapon/bomberman/B in world)
+ if(!B.arena)
+ B.hurt_players = 1
+ message_admins("[key_name_admin(usr)] enabled the player damage of the Bomberman Bomb Dispensers currently in the world. Cuban Pete approves.")
+ log_admin("[key_name_admin(usr)] enabled the player damage of the Bomberman Bomb Dispensers currently in the world. Cuban Pete approves.")
+ if("bomberdestroy")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BBD")
+ var/choice = alert("Activate Michael Bay mode? Note that newly spawned BBD will still have environnement damage deactivated.","Activating Bomberman Bombs Environnement Damage","Confirm","Cancel")
+ if(choice=="Confirm")
+ bomberman_destroy = 1
+ for(var/obj/item/weapon/bomberman/B in world)
+ if(!B.arena)
+ B.destroy_environnement = 1
+ message_admins("[key_name_admin(usr)] enabled the environnement damage of the Bomberman Bomb Dispensers currently in the world. Michael Bay approves.")
+ log_admin("[key_name_admin(usr)] enabled the environnement damage of the Bomberman Bomb Dispensers currently in the world. Michael Bay approves.")
+ if("bombernohurt")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BBNH")
+ var/choice = alert("Disable Cuban Pete mode.","Disable Bomberman Bombs Player Damage","Confirm","Cancel")
+ if(choice=="Confirm")
+ bomberman_hurt = 0
+ for(var/obj/item/weapon/bomberman/B in world)
+ if(!B.arena)
+ B.hurt_players = 0
+ message_admins("[key_name_admin(usr)] disabled the player damage of the Bomberman Bomb Dispensers currently in the world.")
+ log_admin("[key_name_admin(usr)] disabled the player damage of the Bomberman Bomb Dispensers currently in the world.")
+ if("bombernodestroy")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BBND")
+ var/choice = alert("Disable Michael Bay mode?","Disable Bomberman Bombs Environnement Damage","Confirm","Cancel")
+ if(choice=="Confirm")
+ bomberman_destroy = 0
+ for(var/obj/item/weapon/bomberman/B in world)
+ if(!B.arena)
+ B.destroy_environnement = 0
+ message_admins("[key_name_admin(usr)] disabled the environnement damage of the Bomberman Bomb Dispensers currently in the world.")
+ log_admin("[key_name_admin(usr)] disabled the environnement damage of the Bomberman Bomb Dispensers currently in the world.")
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if(ok)
diff --git a/code/modules/admin/verbs/SDQL_2/SDQL_2.dm b/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
index 6b6b7910cd7..381efac7b03 100644
--- a/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
@@ -18,7 +18,7 @@
/client/proc/SDQL2_query(query_text as message)
set category = "Debug"
if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe.
- message_admins("\red ERROR: Non-admin [usr.key] attempted to execute a SDQL query!")
+ message_admins("ERROR: Non-admin [usr.key] attempted to execute a SDQL query!")
log_admin("Non-admin [usr.key] attempted to execute a SDQL query!")
if(!query_text || length(query_text) < 1)
@@ -287,7 +287,7 @@
if("or", "||")
result = (result || val)
else
- usr << "\red SDQL2: Unknown op [op]"
+ usr << "SDQL2: Unknown op [op]"
result = null
else
result = val
@@ -392,7 +392,7 @@
else if(char == "'")
if(word != "")
- usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again."
+ usr << "SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again."
return null
word = "'"
@@ -412,7 +412,7 @@
word += char
if(i > len)
- usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again."
+ usr << "SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again."
return null
query_list += "[word]'"
@@ -420,7 +420,7 @@
else if(char == "\"")
if(word != "")
- usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again."
+ usr << "SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again."
return null
word = "\""
@@ -440,7 +440,7 @@
word += char
if(i > len)
- usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again."
+ usr << "SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again."
return null
query_list += "[word]\""
diff --git a/code/modules/admin/verbs/SDQL_2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL_2/SDQL_2_parser.dm
index c3f96072ba3..90b76e64ab0 100644
--- a/code/modules/admin/verbs/SDQL_2/SDQL_2_parser.dm
+++ b/code/modules/admin/verbs/SDQL_2/SDQL_2_parser.dm
@@ -66,7 +66,7 @@
/datum/SDQL_parser/proc/parse_error(error_message)
error = 1
- usr << "\red SQDL2 Parsing Error: [error_message]"
+ usr << "SQDL2 Parsing Error: [error_message]"
return query.len + 1
/datum/SDQL_parser/proc/parse()
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index ac3faa0c41c..eb42f4887c4 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -8,7 +8,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
set name = "Adminhelp"
if(say_disabled) //This is here to try to identify lag problems
- usr << "\red Speech is currently admin-disabled."
+ usr << "Speech is currently admin-disabled."
return
//handle muting and automuting
@@ -87,7 +87,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
if(!mob) return //this doesn't happen
var/ref_mob = "\ref[mob]"
- msg = "\[[time_stamp()]] \blue HELP: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) [ai_found ? " (CL)" : ""]: [msg]"
+ msg = "\[[time_stamp()]] HELP: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) [ai_found ? " (CL)" : ""]: [msg]"
//send this msg to all admins
var/admin_number_afk = 0
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index f89748431a1..0efda2cf506 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -48,7 +48,7 @@
/*if(C && C.last_pm_recieved + config.simultaneous_pm_warning_timeout > world.time && holder)
//send a warning to admins, but have a delay popup for mods
if(holder.rights & R_ADMIN)
- src << "\red Simultaneous PMs warning: that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]"
+ src << "Simultaneous PMs warning: that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]"
else
if(alert("That player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]","Simultaneous PMs warning","Continue","Cancel") == "Cancel")
return*/
@@ -190,6 +190,6 @@
continue
if(X.key!=key && X.key!=C.key && (X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD) )
if(X.prefs.special_popup)
- X << output("\[[time_stamp()]] PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]: \blue [msg]", "window1.msay_output") //inform X
+ X << output("\[[time_stamp()]] PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]:[msg]", "window1.msay_output") //inform X
else
- X << "PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]: \blue [msg]" //inform X
+ X << "PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]:[msg]" //inform X
diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm
index 43ec668fb1a..922a7357ace 100644
--- a/code/modules/admin/verbs/deadsay.dm
+++ b/code/modules/admin/verbs/deadsay.dm
@@ -8,11 +8,11 @@
if(!src.mob)
return
if(prefs.muted & MUTE_DEADCHAT)
- src << "\red You cannot send DSAY messages (muted)."
+ src << "You cannot send DSAY messages (muted)."
return
if(!(prefs.toggles & CHAT_DEAD))
- src << "\red You have deadchat muted."
+ src << "You have deadchat muted."
return
if (src.handle_spam_prevention(msg,MUTE_DEADCHAT))
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 54cf9d0813c..b9af3ffa980 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -243,7 +243,7 @@ Pressure: [env.return_pressure()]"}
return M:Alienize()
log_admin("[key_name(usr)] made [key_name(M)] into an alien.")
- message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into an alien.", 1)
+ message_admins("[key_name_admin(usr)] made [key_name(M)] into an alien.", 1)
else
alert("Invalid mob")
@@ -260,7 +260,7 @@ Pressure: [env.return_pressure()]"}
feedback_add_details("admin_verb","MKMET") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return M:slimeize()
log_admin("[key_name(usr)] made [key_name(M)] into a slime.")
- message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a slime.", 1)
+ message_admins("[key_name_admin(usr)] made [key_name(M)] into a slime.", 1)
else
alert("Invalid mob")
@@ -326,28 +326,28 @@ Pressure: [env.return_pressure()]"}
return
else
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
- M << "\red 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. A tome, a message from your new master, appears on the ground."
+ M << "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. A tome, a message from your new master, appears on the ground."
new /obj/item/weapon/tome(M.loc)
else
- M << "\red 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."
+ M << "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."
var/glimpse=pick("1","2","3","4","5","6","7","8")
switch(glimpse)
if("1")
- M << "\red You remembered one thing from the glimpse... [cultwords["travel"]] is travel..."
+ M << "You remembered one thing from the glimpse... [cultwords["travel"]] is travel..."
if("2")
- M << "\red You remembered one thing from the glimpse... [cultwords["blood"]] is blood..."
+ M << "You remembered one thing from the glimpse... [cultwords["blood"]] is blood..."
if("3")
- M << "\red You remembered one thing from the glimpse... [cultwords["join"]] is join..."
+ M << "You remembered one thing from the glimpse... [cultwords["join"]] is join..."
if("4")
- M << "\red You remembered one thing from the glimpse... [cultwords["hell"]] is Hell..."
+ M << "You remembered one thing from the glimpse... [cultwords["hell"]] is Hell..."
if("5")
- M << "\red You remembered one thing from the glimpse... [cultwords["destroy"]] is destroy..."
+ M << "You remembered one thing from the glimpse... [cultwords["destroy"]] is destroy..."
if("6")
- M << "\red You remembered one thing from the glimpse... [cultwords["technology"]] is technology..."
+ M << "You remembered one thing from the glimpse... [cultwords["technology"]] is technology..."
if("7")
- M << "\red You remembered one thing from the glimpse... [cultwords["self"]] is self..."
+ M << "You remembered one thing from the glimpse... [cultwords["self"]] is self..."
if("8")
- M << "\red You remembered one thing from the glimpse... [cultwords["see"]] is see..."
+ M << "You remembered one thing from the glimpse... [cultwords["see"]] is see..."
if(M.mind)
M.mind.special_role = "Cultist"
@@ -417,7 +417,7 @@ Pressure: [env.return_pressure()]"}
alert("Invalid mob")
feedback_add_details("admin_verb","GFA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(src)] has granted [M.key] full access.")
- message_admins("\blue [key_name_admin(usr)] has granted [M.key] full access.", 1)
+ message_admins("[key_name_admin(usr)] has granted [M.key] full access.", 1)
/client/proc/cmd_assume_direct_control(var/mob/M in mob_list)
set category = "Admin"
@@ -431,7 +431,7 @@ Pressure: [env.return_pressure()]"}
else
var/mob/dead/observer/ghost = new/mob/dead/observer(M,1)
ghost.ckey = M.ckey
- message_admins("\blue [key_name_admin(usr)] assumed direct control of [M].", 1)
+ message_admins("[key_name_admin(usr)] assumed direct control of [M].", 1)
log_admin("[key_name(usr)] assumed direct control of [M].")
var/mob/adminmob = src.mob
M.ckey = src.ckey
@@ -564,7 +564,9 @@ Pressure: [env.return_pressure()]"}
"emergency rescue team",
"nanotrasen representative",
"nanotrasen officer",
- "nanotrasen captain"
+ "nanotrasen captain",
+ "Bomberman",
+ "Bomberman(arena)",
)
var/dostrip = input("Do you want to strip [M] before equipping them? (0=no, 1=yes)", "STRIPTEASE") as null|anything in list(0,1)
if(isnull(dostrip))
@@ -952,11 +954,42 @@ Pressure: [env.return_pressure()]"}
W.assignment = "Admiral"
W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id)
+ if("Bomberman")
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/darkblue(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/bomberman(M), slot_head)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/bomberman(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(M), slot_gloves)
+ M.equip_to_slot_or_del(new /obj/item/weapon/bomberman/(M), slot_s_store)
+ if("Bomberman(arena)") //they have a random color, cannot remove their clothes, and their initial speed is slightly lowered by their suit.
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/darkblue(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/bomberman(M), slot_head)
+ var/obj/item/clothing/suit/space/bomberman/bombsuit = new /obj/item/clothing/suit/space/bomberman(M)
+ M.equip_to_slot_or_del(bombsuit, slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(M), slot_gloves)
+ M.equip_to_slot_or_del(new /obj/item/weapon/bomberman/(M), slot_s_store)
+ bombsuit.slowdown = 1
+ var/list/randomhexes = list(
+ "7",
+ "8",
+ "9",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ )
+ M.color = "#[pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)]"
+ for(var/obj/item/clothing/C in M)
+ C.canremove = 0
+ M.name = "Bomberman #[rand(1,999)]"
M.regenerate_icons()
log_admin("[key_name(usr)] changed the equipment of [key_name(M)] to [dresscode].")
- message_admins("\blue [key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode]..", 1)
+ message_admins("[key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode]..", 1)
return
/client/proc/startSinglo()
@@ -969,7 +1002,7 @@ Pressure: [env.return_pressure()]"}
return
log_admin("[key_name(usr)] set up the singulo.")
- message_admins("\blue [key_name_admin(usr)] set up the singulo.", 1)
+ message_admins("[key_name_admin(usr)] set up the singulo.", 1)
for(var/obj/machinery/power/emitter/E in world)
if(E.anchored)
@@ -1025,7 +1058,7 @@ Pressure: [env.return_pressure()]"}
return
log_admin("[key_name(usr)] haxed the powergrid with magic SMES.")
- message_admins("\blue [key_name_admin(usr)] haxed the powergrid with magic SMES.", 1)
+ message_admins("[key_name_admin(usr)] haxed the powergrid with magic SMES.", 1)
for(var/obj/machinery/power/smes/SMES in world)
var/turf/T=SMES.loc
@@ -1050,7 +1083,7 @@ Pressure: [env.return_pressure()]"}
return
log_admin("[key_name(usr)] haxed atmos.")
- message_admins("\blue [key_name_admin(usr)] haxed atmos.", 1)
+ message_admins("[key_name_admin(usr)] haxed atmos.", 1)
for(var/obj/machinery/atmospherics/binary/pump/P in world)
//if(p.name == "Air to Distro")
@@ -1111,7 +1144,7 @@ Pressure: [env.return_pressure()]"}
for(var/key in type_instances)
F << "[key],[type_instances[key]]"
- usr << "\blue Dumped to [F]"
+ usr << "Dumped to [F]"
/client/proc/cmd_admin_find_bad_blood_tracks()
set category = "Debug"
@@ -1136,7 +1169,7 @@ Pressure: [env.return_pressure()]"}
dat += "--------------------------------------"
F << dat
- usr << "\blue Dumped to [F]"
+ usr << "Dumped to [F]"
#ifdef PROFILE_MACHINES
/client/proc/cmd_admin_dump_macprofile()
@@ -1151,7 +1184,7 @@ Pressure: [env.return_pressure()]"}
var/ns = machine_profiling[typepath]
F << "[typepath],[ns]"
- usr << "\blue Dumped to [F]"
+ usr << "Dumped to [F]"
var/FF = file("data/logs/profiling/[date_string]_object_profiling.csv")
fdel(FF)
FF << "type,nanoseconds"
@@ -1159,7 +1192,7 @@ Pressure: [env.return_pressure()]"}
var/ns = object_profiling[typepath]
FF << "[typepath],[ns]"
- usr << "\blue Dumped to [FF]."
+ usr << "Dumped to [FF]."
/client/proc/cmd_admin_dump_machine_type_list()
@@ -1182,7 +1215,7 @@ Pressure: [env.return_pressure()]"}
var/count = machineinstances[T]
F << "[T],[count]"
- usr << "\blue Dumped to [F]."
+ usr << "Dumped to [F]."
F =file("data/logs/profiling/[date_string]_power_machine_instances.csv")
fdel(F)
F << "type,count"
@@ -1195,7 +1228,7 @@ Pressure: [env.return_pressure()]"}
var/count = machineinstances[T]
F << "[T],[count]"
- usr << "\blue Dumped to [F]."
+ usr << "Dumped to [F]."
#endif
/client/proc/cmd_admin_dump_delprofile()
@@ -1210,7 +1243,7 @@ Pressure: [env.return_pressure()]"}
var/ns = del_profiling[typepath]
F << "[typepath],[ns]"
- usr << "\blue Dumped to [F]."
+ usr << "Dumped to [F]."
F =file("data/logs/profiling/[date_string]_gdel_profiling.csv")
fdel(F)
F << "type,soft deletes"
@@ -1218,7 +1251,7 @@ Pressure: [env.return_pressure()]"}
var/ns = gdel_profiling[typepath]
F << "[typepath],[ns]"
- usr << "\blue Dumped to [F]."
+ usr << "Dumped to [F]."
F =file("data/logs/profiling/[date_string]_ghdel_profiling.csv")
fdel(F)
@@ -1227,7 +1260,7 @@ Pressure: [env.return_pressure()]"}
var/ns = ghdel_profiling[typepath]
F << "[typepath],[ns]"
- usr << "\blue Dumped to [F]."
+ usr << "Dumped to [F]."
/client/proc/gib_money()
set category = "Fun"
@@ -1243,7 +1276,7 @@ var/global/blood_virus_spreading_disabled = 0
set category = "Debug"
set name = "Disable Blood Virus Spreading"
- //usr << "\red Proc disabled."
+ //usr << "Proc disabled."
blood_virus_spreading_disabled = !blood_virus_spreading_disabled
if(blood_virus_spreading_disabled)
@@ -1278,7 +1311,7 @@ var/global/blood_virus_spreading_disabled = 0
return
if(ishuman(M))
return M:Cluwneize()
- message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a cluwne.", 1)
+ message_admins("[key_name_admin(usr)] made [key_name(M)] into a cluwne.", 1)
feedback_add_details("admin_verb","MKCLU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(src)] has cluwne-ified [M.key].")
else
@@ -1318,6 +1351,202 @@ client/proc/delete_all_adminbus()
for(var/obj/structure/stool/bed/chair/vehicle/adminbus/AB in world)
AB.Adminbus_Deletion()
+client/proc/delete_all_bomberman()
+ set name = "Remove all that Bomberman shit"
+ set desc = "4th wall ointment."
+ set category = "Fun"
+
+ if(!check_rights(R_FUN)) return
+
+ if(alert(usr, "Remove all Bomberman-related objects in the game world?", "Remove Bomberman", "Yes", "No") != "Yes")
+ return
+
+ for(var/obj/structure/bomberflame/O in world)
+ qdel(O)
+
+ for(var/obj/structure/bomberman/O in world)
+ qdel(O)
+
+ for(var/obj/item/weapon/bomberman/O in world)
+ if(istype(O.loc, /mob/living/carbon/))
+ var/mob/living/carbon/C = O.loc
+ C.u_equip(O)
+ O.loc = C.loc
+ O.dropped(C)
+ qdel(O)
+
+ for(var/obj/item/clothing/suit/space/bomberman/O in world)
+ if(istype(O.loc, /mob/living/carbon/))
+ var/mob/living/carbon/C = O.loc
+ C.u_equip(O)
+ O.loc = C.loc
+ O.dropped(C)
+ qdel(O)
+
+ for(var/obj/item/clothing/head/helmet/space/bomberman/O in world)
+ if(istype(O.loc, /mob/living/carbon/))
+ var/mob/living/carbon/C = O.loc
+ C.u_equip(O)
+ O.loc = C.loc
+ O.dropped(C)
+ qdel(O)
+
+ for(var/obj/structure/softwall/O in world)
+ qdel(O)
+
+ for(var/turf/unsimulated/wall/bomberman/T in world)
+ T.ChangeTurf(/turf/simulated/wall)
+
+
+ for(var/obj/structure/powerup/O in world)
+ qdel(O)
+
+client/proc/create_bomberman_arena()
+ set name = "Create a Bomberman Arena"
+ set desc = "Create a customizable Bomberman-type arena."
+ set category = "Fun"
+
+ if(!check_rights(R_FUN)) return
+
+ var/list/arena_sizes = list(
+ "15x13 (2 players)",
+ "15x15 (4 players)",
+ "39x23 (10 players)",
+ )
+ var/arena_type = input("What size for the arena?", "Arena Construction") in arena_sizes
+ var/turf/T = get_turf(src.mob)
+ var/datum/bomberman_arena/A = new /datum/bomberman_arena(T,arena_type,src.mob)
+ arenas += A
+
+client/proc/control_bomberman_arena()
+ set name = "Arena Control Panel"
+ set desc = "Control or Remove an existing Bomberman-type arena."
+ set category = "Fun"
+
+ if(!check_rights(R_FUN)) return
+
+ if(!arenas.len)
+ usr << "There are no arenas in the world!"
+ return
+
+ var/datum/bomberman_arena/arena_target = input("Which arena do you wish to control?", "Arena Control Panel") in arenas
+ usr << "Arena Control Panel: [arena_target]"
+ var/arena_status = ""
+ switch(arena_target.status)
+ if(ARENA_SETUP)
+ arena_status = "SETUP"
+ if(ARENA_AVAILABLE)
+ arena_status = "AVAILABLE"
+ if(ARENA_INGAME)
+ arena_status = "IN-GAME"
+ if(ARENA_ENDGAME)
+ arena_status = "END-GAME"
+ usr << "status: [arena_status]"
+ usr << "violence mode: [arena_target.violence ? "ON" : "OFF"]"
+ usr << "opacity mode: [arena_target.opacity ? "ON" : "OFF"]"
+ if(arena_status == "SETUP")
+ usr << "Arena Under Construction"
+ if(arena_status == "AVAILABLE")
+ var/i = 0
+ for(var/datum/bomberman_spawn/S in arena_target.spawns)
+ if(S.availability)
+ i++
+ usr << "available spawn points: [i]"
+ if((arena_status == "IN-GAME") || (arena_status == "END-GAME"))
+ var/j = "players: "
+ for(var/datum/bomberman_spawn/S in arena_target.spawns)
+ if(S.player)
+ j += "[S.player.name], "
+ usr << "[j]"
+
+ var/list/choices = list(
+ "CANCEL",
+ "Close Arena(space)",
+ "Close Arena(floors)",
+ "Reset Arena (remove players)",
+ "Recruit Gladiators (among the observers)",
+ "Toggle Violence",
+ "Toggle Opacity",
+ "Force Start",
+ )
+
+ if(arena_status == "AVAILABLE")
+ choices += "Start a new game!"
+
+ if(arena_status == "IN-GAME")
+ choices += "Restart Game (with same players)"
+
+
+ var/datum/bomberman_arena/choice = input("Which action do you wish to take?", "Arena Control Panel") in choices
+ switch(choice)
+ if("CANCEL")
+ return
+ if("Close Arena(space)")
+ arena_target.close()
+ if(arena_target in arenas)
+ arenas -= arena_target
+ if("Close Arena(floors)")
+ arena_target.close(0)
+ if(arena_target in arenas)
+ arenas -= arena_target
+ if("Reset Arena (remove players)")
+ arena_target.reset()
+ if("Recruit Gladiators (among the observers)")
+ spawn()
+ for(var/mob/dead/observer/D in player_list)
+ if(!(D.mind in never_gladiators))
+ var/glad_choices = list(
+ "Sure!",
+ "No Thanks.",
+ "Never.",
+ )
+ var/glad = input(D,"Do you wish to fight for honour and glory in the Arena?", "Gladiator Recruitment") in glad_choices
+ switch(glad)
+ if("Sure!")
+ volunteer_gladiators += D.mind
+ log_admin("[D] volunteered to become a gladiator")
+ message_admins("[D] volunteered to become a gladiator")
+ if("No Thanks.")
+ log_admin("[D] declined to become a gladiator")
+ message_admins("[D] declined to become a gladiator")
+ return
+ if("Never.")
+ log_admin("[D] wishes to never become a gladiator")
+ message_admins("[D] wishes to never become a gladiator")
+ never_gladiators += D.mind
+ if("Restart Game (with same players)")
+ arena_target.reset(0)
+ if("Force Start")
+ var/list/new_challengers = list()
+ for(var/datum/bomberman_spawn/S in arena_target.spawns)
+ if(S.player_mind)
+ new_challengers += S.player_mind
+ if(new_challengers.len > 1)
+ arena_target.start(new_challengers)
+ if("Toggle Violence")
+ arena_target.violence = !arena_target.violence
+ if("Toggle Opacity")
+ arena_target.opacity = !arena_target.opacity
+ for(var/obj/structure/softwall/L in arena_target.swalls)
+ L.opacity = arena_target.opacity
+ for(var/turf/unsimulated/wall/bomberman/L in arena_target.turfs)
+ L.opacity = arena_target.opacity
+ if("Start a new game!")
+ var/i = 0
+ for(var/datum/bomberman_spawn/S in arena_target.spawns)
+ i++
+ if(i > volunteer_gladiators.len)
+ usr << "There aren't enough volunteer gladiators to have a proper game..."
+ else
+ var/list/new_challengers = list()
+ while(new_challengers.len < i)
+ var/datum/mind/A = input("Pick the players you wish to choose", "Gladiator Recruitment") in volunteer_gladiators
+ volunteer_gladiators -= A
+ new_challengers += A
+ arena_target.start(new_challengers)
+
+
+
client/proc/mob_list()
set name = "show mob list"
set category = "Debug"
@@ -1371,4 +1600,4 @@ client/proc/cure_disease()
active_diseases -= D
src << "Cured [count] mob\s of [disease_name == "-Cure All-" ? "all diseases." : "[disease_name]"]"
log_admin("[src]/([ckey(src.key)] Cured all mobs of [disease_name == "-Cure All-" ? "all diseases." : "[disease_name]"]")
- message_admins("[src]/([ckey(src.key)] Cured all mobs of [disease_name == "-Cure All-" ? "all diseases." : "[disease_name]"]")
\ No newline at end of file
+ message_admins("[src]/([ckey(src.key)] Cured all mobs of [disease_name == "-Cure All-" ? "all diseases." : "[disease_name]"]")
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index ee32a2b9073..a4eb8ca7387 100644
--- a/code/modules/admin/verbs/diagnostics.dm
+++ b/code/modules/admin/verbs/diagnostics.dm
@@ -55,7 +55,7 @@
if(T.active_hotspot)
burning = 1
- usr << "\blue @[target.x],[target.y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]"
+ usr << "@[target.x],[target.y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("BURNING"):(null)]"
for(var/datum/gas/trace_gas in GM.trace_gases)
usr << "[trace_gas.type]: [trace_gas.moles]"
feedback_add_details("admin_verb","DAST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index bdf317463d4..227af004790 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -331,7 +331,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Regroup All Airgroups Attempt"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*prevent_airgroup_regroup = 0
for(var/datum/air_group/AG in air_master.air_groups)
@@ -342,7 +342,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Kill pipe processing"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*pipe_processing_killed = !pipe_processing_killed
if(pipe_processing_killed)
@@ -354,7 +354,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Kill air processing"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*air_processing_killed = !air_processing_killed
if(air_processing_killed)
@@ -369,7 +369,7 @@ var/global/say_disabled = 0
set category = "Mapping"
set name = "Disable all communication verbs"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*say_disabled = !say_disabled
if(say_disabled)
@@ -386,7 +386,7 @@ var/global/movement_disabled_exception //This is the client that calls the proc,
set category = "Mapping"
set name = "Disable all movement"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*movement_disabled = !movement_disabled
if(movement_disabled)
diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm
index a35fb151745..a1d2262f864 100644
--- a/code/modules/admin/verbs/massmodvar.dm
+++ b/code/modules/admin/verbs/massmodvar.dm
@@ -30,7 +30,7 @@
for(var/p in forbidden_varedit_object_types)
if( istype(O,p) )
- usr << "\red It is forbidden to edit this object's variables."
+ usr << "It is forbidden to edit this object's variables."
return
var/list/names = list()
diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm
index 0b769917a1a..c421e32c7af 100644
--- a/code/modules/admin/verbs/modifyvariables.dm
+++ b/code/modules/admin/verbs/modifyvariables.dm
@@ -272,7 +272,7 @@ var/list/forbidden_varedit_object_types = list(
for(var/p in forbidden_varedit_object_types)
if( istype(O,p) )
- usr << "\red It is forbidden to edit this object's variables."
+ usr << "It is forbidden to edit this object's variables."
return
var/class
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index e76c7b891be..72e4bdbb55a 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -56,7 +56,6 @@ client/proc/one_click_antag()
temp.restricted_jobs += temp.protected_jobs
var/list/mob/living/carbon/human/candidates = list()
- var/mob/living/carbon/human/H = null
for(var/mob/living/carbon/human/applicant in player_list)
if(applicant.client.desires_role(ROLE_TRAITOR))
@@ -67,17 +66,23 @@ client/proc/one_click_antag()
if(!(applicant.job in temp.restricted_jobs))
candidates += applicant
- if(candidates.len)
- var/numTratiors = min(candidates.len, 3)
+ if (candidates.len)
+ candidates = shuffle(candidates)
- for(var/i = 0, iLEADER"] in the service of the Syndicate. \nYour current mission is: \red [input]"
+ new_syndicate_commando << "You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"LEADER"] in the service of the Syndicate. \nYour current mission is: [input]"
numagents--
if(numagents >= 6)
@@ -433,8 +438,8 @@ client/proc/one_click_antag()
break
new_vox.key = theghost.key
- new_vox << "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: \red [input]"
- new_vox << "\red Don't forget to turn on your nitrogen internals!"
+ new_vox << "You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: [input]"
+ new_vox << "Don't forget to turn on your nitrogen internals!"
raiders--
if(raiders > max_raiders)
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index 42109e83e23..3633cda045b 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -48,5 +48,5 @@
W.registered_name = H.real_name
H.equip_to_slot_or_del(W, slot_wear_id)
- message_admins("\blue [key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1)
+ message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1)
log_admin("[key_name(usr)] used there can be only one.")
\ No newline at end of file
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 045867bc9e9..52d2e913e79 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -3,7 +3,7 @@
set name = "Pray"
if(say_disabled) //This is here to try to identify lag problems
- usr << "\red Speech is currently admin-disabled."
+ usr << "Speech is currently admin-disabled."
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
@@ -11,18 +11,19 @@
if(usr.client)
if(usr.client.prefs.muted & MUTE_PRAY)
- usr << "\red You cannot pray (muted)."
+ usr << "You cannot pray (muted)."
return
if(src.client.handle_spam_prevention(msg,MUTE_PRAY))
return
var/orig_message=msg
var/image/cross = image('icons/obj/storage.dmi',"bible")
- msg = "\blue \icon[cross] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]"
+ msg = "\icon[cross] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]"
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_PRAYER)
C << msg
+ C << 'sound/effects/prayer.ogg'
if(!stat)
usr.whisper(orig_message)
@@ -33,10 +34,10 @@
/proc/Centcomm_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
- msg = "\blue CENTCOMM:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
+ msg = "CENTCOMM:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
admins << msg
/proc/Syndicate_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
- msg = "\blue SYNDICATE:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
+ msg = "SYNDICATE:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
admins << msg
diff --git a/code/modules/admin/verbs/profiling.dm b/code/modules/admin/verbs/profiling.dm
index 28536f3a063..5d0af00def7 100644
--- a/code/modules/admin/verbs/profiling.dm
+++ b/code/modules/admin/verbs/profiling.dm
@@ -8,7 +8,7 @@ var/global/PROFILING_VERBS = list(
set name = "Disable all scrubbers"
disable_scrubbers = !disable_scrubbers
- world << "\red Scrubbers are now [disable_scrubbers?"OFF":"ON"]."
+ world << "Scrubbers are now [disable_scrubbers?"OFF":"ON"]."
*/
#define gen_disable_proc(TYPE,LABEL) \
@@ -16,7 +16,7 @@ var/global/PROFILING_VERBS = list(
set category = "Debug"; \
set name = "Disable all "+LABEL; \
disable_##TYPE = !disable_##TYPE; \
- world << "\red "+LABEL+" are now [disable_##TYPE?"OFF":"ON"]."; \
+ world << ""+LABEL+" are now [disable_##TYPE?"OFF":"ON"]."; \
}
gen_disable_proc(scrubbers,"Scrubbers")
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 469387d818c..f4fb2795639 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -38,9 +38,9 @@
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/prisoner(prisoner), slot_w_uniform)
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
spawn(50)
- M << "\red You have been sent to the prison station!"
+ M << "You have been sent to the prison station!"
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
- message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
+ message_admins("[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
feedback_add_details("admin_verb","PRISON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_subtle_message(mob/M as mob in mob_list)
@@ -60,12 +60,12 @@
if (usr.client)
if(usr.client.holder)
if(M.mind.assigned_role == "Chaplain")
- M << "\bold You hear the voice of [ticker.Bible_deity_name] in your head... \italic [msg]"
+ M << "You hear the voice of [ticker.Bible_deity_name] in your head... [msg]"
else
- M << "\bold You hear a voice in your head... \italic [msg]"
+ M << "You hear a voice in your head... [msg]"
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
- message_admins("\blue \bold SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
+ message_admins("SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_world_narrate() // Allows administrators to fluff events a little easier -- TLE
@@ -82,7 +82,7 @@
return
world << "[msg]"
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
- message_admins("\blue \bold GlobalNarrate: [key_name_admin(usr)] : [msg] ", 1)
+ message_admins("GlobalNarrate: [key_name_admin(usr)] : [msg] ", 1)
feedback_add_details("admin_verb","GLN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_direct_narrate(var/mob/M) // Targetted narrate -- TLE
@@ -106,7 +106,7 @@
M << msg
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
- message_admins("\blue \bold DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg] ", 1)
+ message_admins("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg] ", 1)
feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_local_narrate() // View targetted narration
@@ -127,7 +127,7 @@
M << msg
log_admin("LocalNarrate: [key_name(usr)] at [formatJumpTo(get_turf(usr))]: [msg]")
- message_admins("\blue \bold DirectNarrate: [key_name(usr)] at [formatJumpTo(get_turf(usr))]: [msg] ", 1)
+ message_admins("DirectNarrate: [key_name(usr)] at [formatJumpTo(get_turf(usr))]: [msg] ", 1)
feedback_add_details("admin_verb","LIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_godmode(mob/M as mob in mob_list)
@@ -137,7 +137,7 @@
src << "Only administrators may use this command."
return
M.status_flags ^= GODMODE
- usr << "\blue Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]"
+ usr << "Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]"
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]", 1)
@@ -240,7 +240,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
else return 0
new_xeno.ckey = ckey
- message_admins("\blue [key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].", 1)
+ message_admins("[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].", 1)
return 1
/*
@@ -297,7 +297,7 @@ Ccomp's first proc.
G.has_enabled_antagHUD = 2
G.can_reenter_corpse = 1
- G:show_message(text("\blue You may now respawn. You should roleplay as if you learned nothing about the round during your time with the dead."), 1)
+ G:show_message(text("You may now respawn. You should roleplay as if you learned nothing about the round during your time with the dead."), 1)
log_admin("[key_name(usr)] allowed [key_name(G)] to bypass the 30 minute respawn limit")
message_admins("Admin [key_name_admin(usr)] allowed [key_name_admin(G)] to bypass the 30 minute respawn limit", 1)
@@ -317,18 +317,18 @@ Ccomp's first proc.
if(g.antagHUD)
g.antagHUD = 0 // Disable it on those that have it enabled
g.has_enabled_antagHUD = 2 // We'll allow them to respawn
- g << "\red The Administrator has disabled AntagHUD "
+ g << "The Administrator has disabled AntagHUD "
config.antag_hud_allowed = 0
- src << "\red AntagHUD usage has been disabled"
+ src << "AntagHUD usage has been disabled"
action = "disabled"
else
for(var/mob/dead/observer/g in get_ghosts())
if(!g.client.holder) // Add the verb back for all non-admin ghosts
g.verbs += /mob/dead/observer/verb/toggle_antagHUD
- g << "\blue The Administrator has enabled AntagHUD " // Notify all observers they can now use AntagHUD
+ g << "The Administrator has enabled AntagHUD " // Notify all observers they can now use AntagHUD
config.antag_hud_allowed = 1
action = "enabled"
- src << "\blue AntagHUD usage has been enabled"
+ src << "AntagHUD usage has been enabled"
log_admin("[key_name(usr)] has [action] antagHUD usage for observers")
@@ -345,19 +345,19 @@ Ccomp's first proc.
var/action=""
if(config.antag_hud_restricted)
for(var/mob/dead/observer/g in get_ghosts())
- g << "\blue The administrator has lifted restrictions on joining the round if you use AntagHUD"
+ g << "The administrator has lifted restrictions on joining the round if you use AntagHUD"
action = "lifted restrictions"
config.antag_hud_restricted = 0
- src << "\blue AntagHUD restrictions have been lifted"
+ src << "AntagHUD restrictions have been lifted"
else
for(var/mob/dead/observer/g in get_ghosts())
- g << "\red The administrator has placed restrictions on joining the round if you use AntagHUD"
- g << "\red Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions "
+ g << "The administrator has placed restrictions on joining the round if you use AntagHUD"
+ g << "Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions "
g.antagHUD = 0
g.has_enabled_antagHUD = 0
action = "placed restrictions"
config.antag_hud_restricted = 1
- src << "\red AntagHUD restrictions have been enabled"
+ src << "AntagHUD restrictions have been enabled"
log_admin("[key_name(usr)] has [action] on joining the round if they use AntagHUD")
message_admins("Admin [key_name_admin(usr)] has [action] on joining the round if they use AntagHUD", 1)
@@ -413,7 +413,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
new_xeno.key = G_found.key
new_xeno << "You have been fully respawned. Enjoy the game."
- message_admins("\blue [key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.", 1)
+ message_admins("[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.", 1)
return //all done. The ghost is auto-deleted
//check if they were a monkey
@@ -423,7 +423,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
G_found.mind.transfer_to(new_monkey) //be careful when doing stuff like this! I've already checked the mind isn't in use
new_monkey.key = G_found.key
new_monkey << "You have been fully respawned. Enjoy the game."
- message_admins("\blue [key_name_admin(usr)] has respawned [new_monkey.key] as a filthy xeno.", 1)
+ message_admins("[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy xeno.", 1)
return //all done. The ghost is auto-deleted
@@ -539,7 +539,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes")
call(/mob/new_player/proc/AnnounceArrival)(new_character, new_character.mind.assigned_role)
- message_admins("\blue [admin] has respawned [player_key] as [new_character.real_name].", 1)
+ message_admins("[admin] has respawned [player_key] as [new_character.real_name].", 1)
new_character << "You have been fully respawned. Enjoy the game."
@@ -563,7 +563,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
else
M.add_ion_law(input)
for(var/mob/living/silicon/ai/O in mob_list)
- O << "\red " + input + "\red...LAWS UPDATED"
+ O << "" + input + "...LAWS UPDATED"
log_admin("Admin [key_name(usr)] has added a new AI law - [input]")
message_admins("Admin [key_name_admin(usr)] has added a new AI law - [input]", 1)
@@ -589,7 +589,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
M.revive(0)
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
- message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1)
+ message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1)
else
alert("Admin revive disabled")
feedback_add_details("admin_verb","REJU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -619,7 +619,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("Yes")
command_alert(input, customname);
if("No")
- world << "\red New NanoTrasen Update available at all communication consoles."
+ world << "New NanoTrasen Update available at all communication consoles."
world << sound('sound/AI/commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]")
@@ -739,7 +739,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
mob.gib()
log_admin("[key_name(usr)] used gibself.")
- message_admins("\blue [key_name_admin(usr)] used gibself.", 1)
+ message_admins("[key_name_admin(usr)] used gibself.", 1)
feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/*
/client/proc/cmd_manual_ban()
@@ -773,11 +773,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
if(M)
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a temporary ban, it will be removed in [mins] minutes."
- M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a temporary ban, it will be removed in [mins] minutes."
+ M << "To try to resolve this matter head to http://ss13.donglabs.com/forum/"
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=[mins]&server=[replacetext(config.server_name, "#", "")]")
del(M.client)
del(M)
@@ -788,11 +788,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!reason)
return
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a permanent ban."
- M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a permanent ban."
+ M << "To try to resolve this matter head to http://ss13.donglabs.com/forum/"
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=perma&server=[replacetext(config.server_name, "#", "")]")
del(M.client)
del(M)
@@ -807,7 +807,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Check Mob Contents"
- for (var/content in get_contents_in_object(L, /atom))
+ for (var/content in get_contents_in_object(L))
if (content)
usr << "\icon[content] [content]"
@@ -855,7 +855,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
view = world.view
log_admin("[key_name(usr)] changed their view range to [view].")
- //message_admins("\blue [key_name_admin(usr)] changed their view range to [view].", 1) //why? removed by order of XSI
+ //message_admins("[key_name_admin(usr)] changed their view range to [view].", 1) //why? removed by order of XSI
feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -884,7 +884,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
world << sound('sound/AI/shuttlecalled.ogg')
feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] admin-called the emergency shuttle.")
- message_admins("\blue [key_name_admin(usr)] admin-called the emergency shuttle.", 1)
+ message_admins("[key_name_admin(usr)] admin-called the emergency shuttle.", 1)
return
/client/proc/admin_cancel_shuttle()
@@ -901,7 +901,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
emergency_shuttle.recall()
feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
- message_admins("\blue [key_name_admin(usr)] admin-recalled the emergency shuttle.", 1)
+ message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.", 1)
return
@@ -923,7 +923,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Attack Log"
- usr << text("\red Attack Log for []", mob)
+ usr << text("Attack Log for []", mob)
for(var/t in M.attack_log)
usr << t
feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -955,7 +955,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.", 1)
if(notifyplayers == "Yes")
- world << "\blue Admin [usr.key] has forced the players to have completely random identities!"
+ world << "Admin [usr.key] has forced the players to have completely random identities!"
usr << "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet."
diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm
index c30e66b4b68..849583bf3b7 100644
--- a/code/modules/admin/verbs/striketeam.dm
+++ b/code/modules/admin/verbs/striketeam.dm
@@ -73,10 +73,10 @@ var/global/sent_strike_team = 0
//So they don't forget their code or mission.
if(nuke_code)
- new_commando.mind.store_memory("Nuke Code: \red [nuke_code].")
- new_commando.mind.store_memory("Mission: \red [input].")
+ new_commando.mind.store_memory("Nuke Code:[nuke_code].")
+ new_commando.mind.store_memory("Mission:[input].")
- new_commando << "\blue You are a Special Ops. [!leader_selected?"commando":"LEADER"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: \red[input]"
+ new_commando << "You are a Special Ops. [!leader_selected?"commando":"LEADER"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: [input]"
commando_number--
@@ -93,7 +93,7 @@ var/global/sent_strike_team = 0
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
- message_admins("\blue [key_name_admin(usr)] has spawned a CentCom strike squad.", 1)
+ message_admins("[key_name_admin(usr)] has spawned a CentCom strike squad.", 1)
log_admin("[key_name(usr)] used Spawn Death Squad.")
return 1
diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm
index 8e1091f5bf3..940a3fc3191 100644
--- a/code/modules/admin/verbs/striketeam_syndicate.dm
+++ b/code/modules/admin/verbs/striketeam_syndicate.dm
@@ -78,10 +78,10 @@ var/global/sent_syndicate_strike_team = 0
//So they don't forget their code or mission.
if(nuke_code)
- new_syndicate_commando.mind.store_memory("Nuke Code: \red [nuke_code].")
- new_syndicate_commando.mind.store_memory("Mission: \red [input].")
+ new_syndicate_commando.mind.store_memory("Nuke Code:[nuke_code].")
+ new_syndicate_commando.mind.store_memory("Mission:[input].")
- new_syndicate_commando << "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"LEADER"] in the service of the Syndicate. \nYour current mission is: \red[input]"
+ new_syndicate_commando << "You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"LEADER"] in the service of the Syndicate. \nYour current mission is: [input]"
syndicate_commando_number--
@@ -98,7 +98,7 @@ var/global/sent_syndicate_strike_team = 0
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
- message_admins("\blue [key_name_admin(usr)] has spawned a Syndicate strike squad.", 1)
+ message_admins("[key_name_admin(usr)] has spawned a Syndicate strike squad.", 1)
log_admin("[key_name(usr)] used Spawn Syndicate Squad.")
feedback_add_details("admin_verb","SDTHS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/ticklag.dm b/code/modules/admin/verbs/ticklag.dm
index 928ba733caa..20b1605d56c 100644
--- a/code/modules/admin/verbs/ticklag.dm
+++ b/code/modules/admin/verbs/ticklag.dm
@@ -19,6 +19,6 @@
if("Yes") config.Tickcomp = 1
else config.Tickcomp = 0
else
- src << "\red Error: ticklag(): Invalid world.ticklag value. No changes made."
+ src << "Error: ticklag(): Invalid world.ticklag value. No changes made."
diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm
index 5e5ccbb1237..07d97e39ef1 100644
--- a/code/modules/admin/verbs/tripAI.dm
+++ b/code/modules/admin/verbs/tripAI.dm
@@ -14,9 +14,9 @@
if(ticker.triai)
ticker.triai = 0
usr << "Only one AI will be spawned at round start."
- message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
+ message_admins("[key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
else
ticker.triai = 1
usr << "There will be an AI Triumvirate at round start."
- message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
+ message_admins("[key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
return
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index 3fccb997f39..73aa1324b8e 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -94,7 +94,7 @@
var/obj/item/device/onetankbomb/R = new /obj/item/device/onetankbomb(loc)
- M.drop_item() //Remove the assembly from your hands
+ M.drop_item(S) //Remove the assembly from your hands
M.remove_from_mob(src) //Remove the tank from your character,in case you were holding it
M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor.
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 6df8a9a8610..4183d889fe9 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -267,7 +267,7 @@
set category = "Object"
set src in usr
- if ( !(usr.stat || usr.restrained()) )
+ if ( !(usr.stat || usr.restrained()) || (usr.status_flags & FAKEDEATH))
var/obj/item/device/assembly_holder/holder
if(istype(src,/obj/item/weapon/grenade/chem_grenade))
var/obj/item/weapon/grenade/chem_grenade/gren = src
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 0e1a0995d75..58f811d61bf 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -120,7 +120,7 @@
set name = "Hide"
set category = "Object"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
layer = TURF_LAYER+0.2
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index e002bf7aa70..b68c93712f8 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -116,7 +116,7 @@
interact(mob/user as mob)//TODO: Change this to the wires thingy
if(!secured)
- user.show_message("\red The [name] is unsecured!")
+ user.show_message("The [name] is unsecured!")
return 0
var/second = time % 60
var/minute = (time - second) / 60
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index f459e1891c0..9deae520071 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -72,7 +72,7 @@
interact(mob/user as mob)//TODO: Have this use the wires
if(!secured)
- user.show_message("\red The [name] is unsecured!")
+ user.show_message("The [name] is unsecured!")
return 0
var/second = time % 60
var/minute = (time - second) / 60
diff --git a/code/modules/atmos_automation/statements.dm b/code/modules/atmos_automation/statements.dm
index 03979593277..1e84bea3d2f 100644
--- a/code/modules/atmos_automation/statements.dm
+++ b/code/modules/atmos_automation/statements.dm
@@ -121,6 +121,8 @@ var/global/automation_types=typesof(/datum/automation) - /datum/automation
if(!norange)
if ((!in_range(parent, usr) || !istype(parent.loc, /turf)) && !istype(usr, /mob/living/silicon))
return 1
+ else if(!parent.custom_aghost_alerts)
+ log_adminghost("[key_name(usr)] screwed with [parent] ([href])!")
if(href_list["add"])
var/new_child=selectValidChildFor(usr)
if(!new_child) return 1
@@ -153,8 +155,6 @@ var/global/automation_types=typesof(/datum/automation) - /datum/automation
A.OnReset()
parent.updateUsrDialog()
return 1
- else if(!parent.custom_aghost_alerts)
- log_adminghost("[key_name(usr)] screwed with [parent] ([href])!")
parent.add_fingerprint(usr)
diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm
index dcb9f208686..e47b3a48f18 100644
--- a/code/modules/awaymissions/bluespaceartillery.dm
+++ b/code/modules/awaymissions/bluespaceartillery.dm
@@ -25,7 +25,7 @@
var/dat = "Bluespace Artillery Control: "
// AUTOFIXED BY fix_string_idiocy.py
- // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\awaymissions\bluespaceartillery.dm:26: dat += "Locked on "
+ // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\awaymissionsspaceartillery.dm:26: dat += "Locked on "
dat += {"Locked on Charge progress: [reload]/180: Open Fire
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 20864c641ee..8220c720998 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -231,6 +231,6 @@ obj/machinery/gateway/centerstation/process()
user << "\black The gate is already calibrated, there is no work for you to do here."
return
else
- user << "\blue Recalibration successful!: \black This gate's systems have been fine tuned. Travel to this gate will now be on target."
+ user << "Recalibration successful!: This gate's systems have been fine tuned. Travel to this gate will now be on target."
calibrated = 1
return
\ No newline at end of file
diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm
index 75454872bf4..5cc1fcfc013 100644
--- a/code/modules/awaymissions/zlevel.dm
+++ b/code/modules/awaymissions/zlevel.dm
@@ -3,7 +3,7 @@ proc/createRandomZlevel()
return
var/list/potentialRandomZlevels = list()
- world << "\red \b Searching for away missions..."
+ world << "Searching for away missions..."
var/list/Lines = file2list("maps/RandomZLevels/fileList.txt")
if(!Lines.len) return
for (var/t in Lines)
@@ -35,7 +35,7 @@ proc/createRandomZlevel()
if(potentialRandomZlevels.len)
- world << "\red \b Loading away mission..."
+ world << "Loading away mission..."
var/map = pick(potentialRandomZlevels)
var/file = file(map)
@@ -47,8 +47,8 @@ proc/createRandomZlevel()
continue
awaydestinations.Add(L)
- world << "\red \b Away mission loaded."
+ world << "Away mission loaded."
else
- world << "\red \b No away missions found."
+ world << "No away missions found."
return
\ No newline at end of file
diff --git a/code/modules/bomberman/bomberman.dm b/code/modules/bomberman/bomberman.dm
new file mode 100644
index 00000000000..7adb910396d
--- /dev/null
+++ b/code/modules/bomberman/bomberman.dm
@@ -0,0 +1,1240 @@
+//////////////////////////////////based on the original game by Hudson Soft
+//Spess Bomberman, by Deity Link//
+//////////////////////////////////
+
+#define MAX_BOMB_POWER 16 //How far will the largest explosions reach.
+#define MAX_SPEED_BONUS 10 //How fast can a player get by cumulating skates (his tally cannot exceed -1 anyway, but additional skates will allow him to stay fast while starving for example)
+
+/*
+////content://///
+* BOMB DISPENSER /obj/item/weapon/bomberman/
+* BOMB /obj/structure/bomberman
+* FLAME/EXPLOSION /obj/structure/bomberflame
+* SOFT WALLS /obj/structure/softwall
+* HARD WALLS /turf/unsimulated/wall/bomberman
+* POWER-UPS /obj/structure/powerup
+* CLOTHING /obj/item/clothing/suit/space/bomberman AND /obj/item/clothing/head/helmet/space/bomberman
+
+
+* ARENA BUILDER /datum/bomberman_arena
+* New()
+* open()
+* spawn_player()
+* dress_player()
+* start()
+* reset()
+* close()
+* planner()
+
+*/
+
+///////////////////////////////BOMB DISPENSER//////////////////////////
+/obj/item/weapon/bomberman/
+ name = "Bomberman's Bomb Dispenser"
+ desc = "Now to not get yourself stuck in a corner."
+ w_class = 5.0
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "dispenser"
+ var/bomblimit = 1 //how many bombs are currently in the dispenser
+ var/bombtotal = 1 //how many bombs can this dispenser sustain in the world at once
+ var/bombpower = 1 //how many tiles do the fire columns reach
+ var/can_kick = 0 //allows its holder to kick bombs. kicked bombs roll until their reach an obstacle or detonate
+ var/can_line = 0 //allows its user to deploy all his bombs in a line at once
+ var/has_power = 0 //if this dispenser currently has no bombs in the world, its next bomb will have maximum power
+ var/skate = 0
+ var/speed_bonus = 0 //each skate power-up will speed-up its user. whoever holds the dispenser has the bonus.
+
+ //griff modifiers, can be changed globaly with admin commands
+ var/destroy_environnement = 0 //does it break wall/tables/closets
+ var/hurt_players = 0 //damage dealt by the bombs to mobs
+
+ //disease modifiers
+ var/slow = 0
+ var/fast = 0
+ var/small_bomb = 0
+ var/no_bomb = 0
+ var/spam_bomb = 0
+
+ var/datum/bomberman_arena/arena = null
+
+
+/obj/item/weapon/bomberman/New()
+ ..()
+ if(bomberman_hurt)
+ hurt_players = 1
+ if(bomberman_destroy)
+ destroy_environnement = 1
+
+/obj/item/weapon/bomberman/attack_self(mob/user)
+ var/turf/T = get_turf(src)
+ if(bomblimit && !no_bomb)
+ var/power = bombpower
+ if(small_bomb)
+ power = 1
+ if(!(locate(/obj/structure/bomberman) in T))
+ playsound(T, 'sound/bomberman/bombplace.ogg', 50, 1)
+ if(has_power && (bomblimit == bombtotal))
+ bomblimit--
+ new /obj/structure/bomberman/power(T, power, destroy_environnement, hurt_players, src)
+ else
+ bomblimit--
+ new /obj/structure/bomberman(T, power, destroy_environnement, hurt_players, src)
+ else if(can_line)
+ playsound(T, 'sound/bomberman/bombplace.ogg', 50, 1)
+ bomblimit--
+ new /obj/structure/bomberman(T, power, destroy_environnement, hurt_players, src, user.dir)
+
+/obj/item/weapon/bomberman/proc/cure(var/disease)
+ spawn(400)
+ switch(disease)
+ if("Low Power Disease")
+ small_bomb = 0
+ if("Constipation")
+ no_bomb = 0
+ if("Diarrhea")
+ spam_bomb = 0
+ if("Slow Pace Disease")
+ slow = 0
+ if("Rapid Pace Disease")
+ fast = 0
+ speed_bonus = skate
+
+/obj/item/weapon/bomberman/proc/lost()
+ if(arena)
+ arena.tools -= src
+ spawn() //we're not waiting for the arena to close to despawn the BBD
+ arena.end()
+ var/list/turfs = list()
+ for(var/turf/T in range(loc,1))
+ turfs += T
+ while(skate > 0)
+ new/obj/structure/powerup/skate(pick(turfs))
+ skate--
+ while(bombtotal > 1)
+ new/obj/structure/powerup/bombup(pick(turfs))
+ bombtotal--
+ while(bombpower > 1)
+ new/obj/structure/powerup/fire(pick(turfs))
+ bombpower--
+ if(can_kick)
+ new/obj/structure/powerup/kick(pick(turfs))
+ if(can_line)
+ new/obj/structure/powerup/line(pick(turfs))
+ if(has_power)
+ new/obj/structure/powerup/power(pick(turfs))
+ qdel(src)
+
+///////////////////////////////BOMB////////////////////////////////////
+/obj/structure/bomberman
+ name = "bomb"
+ desc = "Tick, Tick, Tick!"
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "bomb"
+ density = 1
+ anchored = 1
+ var/bombpower = 1
+ var/destroy_environnement = 0
+ var/hurt_players = 0
+
+ var/obj/item/weapon/bomberman/parent = null
+
+ var/countdown = 3
+ var/kicked = 0
+
+/obj/structure/bomberman/power/
+ icon_state = "bomb_power"
+
+/obj/structure/bomberman/New(turf/loc, var/Bpower=1, var/destroy=0, var/hurt=0, var/dispenser=null, var/line_dir=null)
+ ..()
+ bombpower = Bpower
+ destroy_environnement = destroy
+ hurt_players = hurt
+ parent = dispenser
+
+ if((!parent || !parent.arena) && bomberman_hurt)
+ hurt_players = 1
+ if((!parent || !parent.arena) && bomberman_destroy)
+ destroy_environnement = 1
+
+
+ if(line_dir)
+ var/turf/T1 = get_turf(src)
+ step(src,line_dir)
+ var/turf/T2 = get_turf(src)
+ if(T1 == T2)
+ qdel(src)
+ else if(parent.bomblimit > 0)
+ parent.bomblimit--
+ new /obj/structure/bomberman(T2, bombpower, destroy_environnement, hurt_players, parent, line_dir)
+ ticking()
+
+
+
+/obj/structure/bomberman/Bump(atom/obstacle)
+ kicked = 0
+ ..()
+
+/obj/structure/bomberman/Bumped(M as mob|obj) //kick bomb
+ for (var/obj/item/weapon/bomberman/dispenser in M)
+ if (dispenser.can_kick && !kicked)
+ kicked = 1
+ kicked(get_dir(M,src))
+ ..()
+
+/obj/structure/bomberman/proc/ticking()
+ countdown--
+ sleep(10)
+ if(countdown <= 0)
+ detonate()
+ else
+ ticking()
+
+/obj/structure/bomberman/proc/detonate()
+ var/turf/T = get_turf(src)
+ playsound(T, 'sound/bomberman/bombexplode.ogg', 100, 1)
+ spawn()
+ new /obj/structure/bomberflame(T,1,bombpower,SOUTH,destroy_environnement,hurt_players)
+ qdel(src)
+
+/obj/structure/bomberman/power/detonate()
+ var/turf/T = get_turf(src)
+ playsound(T, 'sound/bomberman/bombexplode.ogg', 100, 1)
+ spawn()
+ new /obj/structure/bomberflame(T,1,MAX_BOMB_POWER,SOUTH,destroy_environnement,hurt_players)
+ qdel(src)
+
+/obj/structure/bomberman/proc/kicked(var/kick_dir)
+ var/turf/T1 = get_turf(src)
+ step(src, kick_dir)
+ var/turf/T2 = get_turf(src)
+ if(locate(/obj/structure/bomberflame) in T2) //if a kicked bomb rolls into an explosion, it detonates
+ detonate()
+ if(T1 != T2)
+ sleep(2)
+ kicked(kick_dir)
+ else
+ kicked = 0
+
+
+/obj/structure/bomberman/Destroy()
+ if(parent)
+ parent.bomblimit++
+ ..()
+
+/obj/structure/bomberman/emp_act(severity) //EMPs can safely remove the bombs
+ qdel(src)
+ return
+
+/obj/structure/bomberman/bullet_act(var/obj/item/projectile/Proj)
+ visible_message("\The [Proj] hits \the [src].")
+ detonate()
+ return
+
+/obj/structure/bomberman/ex_act(severity)
+ detonate()
+ return
+
+/obj/structure/bomberman/cultify()
+ return
+
+/obj/structure/bomberman/singuloCanEat()
+ return 0
+
+///////////////////////////////FLAME/EXPLOSION//////////////////////////
+/obj/structure/bomberflame
+ name = "explosion"
+ desc = "Sidesteps are its only weakness."
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "explosion_core"
+ density = 0
+ anchored = 1
+ layer = LIGHTING_LAYER+1
+ var/destroy_environnement = 0
+ var/hurt_players = 0
+
+ var/fuel = 1
+
+/obj/structure/bomberflame/New(turf/loc, var/initial=1, var/power=1, var/flame_dir=SOUTH, var/destroy=0, var/hurt=0)
+ ..()
+ fuel = power
+ dir = flame_dir
+ destroy_environnement = destroy
+ hurt_players = hurt
+ var/turf/T1 = get_turf(src)
+ var/turf/T2 = null
+ if(!initial)
+ if(fuel)
+ icon_state = "explosion_branch"
+ else
+ icon_state = "explosion_tip"
+
+ step(src, flame_dir)
+ T2 = get_turf(src)
+ if(T1 == T2)
+ del(src)
+ return
+ else
+ T2 = T1
+
+ collisions(T2)
+
+ spawn(1)
+ if(fuel)
+ propagate(initial)
+
+ sleep(5)
+ collisions(T2)
+
+ sleep(5)
+ qdel(src)
+
+/obj/structure/bomberflame/proc/collisions(var/turf/T)
+
+ for(var/mob/living/carbon/C in T)
+ for(var/obj/item/weapon/bomberman/dispenser in C.contents)
+ C.u_equip(dispenser)
+ dispenser.loc = C.loc
+ dispenser.dropped(C)
+ dispenser.lost()
+ T.turf_animation('icons/obj/bomberman.dmi',"dispenser_break",0,0,MOB_LAYER-0.1,'sound/bomberman/bombed.ogg')
+
+ if(hurt_players)
+ for(var/mob/living/L in T)
+ if(fuel <= 2)
+ L.ex_act(3)
+ else if(fuel <= 10)
+ L.ex_act(2)
+ else
+ L.ex_act(1)
+
+/obj/structure/bomberflame/proc/propagate(var/init)
+ if(init)
+ for(var/direction in cardinal)
+ spawn() //so we don't wait for the flame to die before it spawns the next one, duh
+ new /obj/structure/bomberflame(get_turf(src),0,fuel-1,direction,destroy_environnement,hurt_players)
+ else
+ new /obj/structure/bomberflame(get_turf(src),0,fuel-1,dir,destroy_environnement,hurt_players)
+
+
+/obj/structure/bomberflame/Bump(atom/obstacle) //if an explosion reaches a bomb, it detonates
+ if(istype(obstacle, /obj/structure/bomberman/))
+ var/obj/structure/bomberman/chained_explosion = obstacle
+ chained_explosion.detonate()
+
+ else if(istype(obstacle, /obj/structure/softwall/))
+ var/obj/structure/softwall/wall_break = obstacle
+ wall_break.pulverized()
+
+ if(destroy_environnement)
+ if(istype(obstacle, /obj/structure/closet/))
+ qdel(obstacle)
+
+ else if(istype(obstacle, /obj/structure/table/))
+ var/obj/structure/table/table = obstacle
+ table.destroy()
+
+ else if(istype(obstacle, /obj/structure/rack/))
+ var/obj/structure/rack/rack = obstacle
+ rack.destroy()
+
+ else if(istype(obstacle, /obj/structure/grille))
+ var/obj/structure/grille/grille = obstacle
+ grille.broken = 1
+ grille.icon_state = "[initial(grille.icon_state)]-b"
+ grille.density = 0
+ if(prob(35))
+ var/turf/T = grille.loc
+ T.spawn_powerup()
+
+ else if(istype(obstacle, /obj/structure/window))
+ qdel(obstacle)
+
+ else if(istype(obstacle, /turf/simulated/wall/) && !istype(obstacle, /turf/simulated/wall/r_wall))
+ var/turf/T = obstacle
+ T.ChangeTurf(/turf/simulated/floor/plating)
+ T.icon_state = "wall_thermite"
+ if(prob(35))
+ T.spawn_powerup()
+
+ else if(istype(obstacle, /obj/structure/reagent_dispensers/fueltank))
+ obstacle.ex_act(1)
+
+ else if(istype(obstacle, /obj/machinery/portable_atmospherics/canister))
+ var/obj/machinery/portable_atmospherics/canister/canister = obstacle
+ canister.health = 0
+ canister.healthcheck()
+
+ else if(istype(obstacle, /obj/machinery/computer/))
+ var/obj/machinery/computer/computer = obstacle
+ for(var/x in computer.verbs)
+ computer.verbs -= x
+ computer.set_broken()
+
+ ..()
+
+/obj/structure/bomberflame/ex_act(severity)
+ return
+
+/obj/structure/bomberflame/cultify()
+ return
+
+/obj/structure/bomberflame/singuloCanEat()
+ return 0
+
+
+///////////////////////////////SOFT WALLS/////////////////////////////
+/obj/structure/softwall
+ name = "soft wall"
+ desc = "Looks like even the weakest explosion could break this wall apart."
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "softwall"
+ density = 1
+ anchored = 1
+
+/obj/structure/softwall/proc/pulverized()
+ icon_state = "softwall_break"
+ density = 0
+ mouse_opacity = 0
+ spawn(5)
+ if(prob(35))
+ pick_a_powerup()
+ spawn(5)
+ qdel(src)
+
+/obj/structure/softwall/proc/pick_a_powerup()
+ var/powerup = pick(
+ 50;/obj/structure/powerup/bombup,
+ 50;/obj/structure/powerup/fire,
+ 50;/obj/structure/powerup/skate,
+ 10;/obj/structure/powerup/kick,
+ 10;/obj/structure/powerup/line,
+ 10;/obj/structure/powerup/power,
+ 10;/obj/structure/powerup/skull,
+ 5;/obj/structure/powerup/full,
+ )
+ new powerup(get_turf(src))
+
+/obj/structure/softwall/ex_act(severity)
+ pulverized()
+ return
+
+/obj/structure/softwall/cultify()
+ return
+
+/obj/structure/softwall/singuloCanEat()
+ return 0
+
+///////////////////////////////HARD WALLS/////////////////////////////
+/turf/unsimulated/wall/bomberman
+ name = "hard wall"
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "hardwall"
+ opacity = 0
+
+/turf/unsimulated/wall/ex_act(severity)
+ return
+
+/turf/unsimulated/wall/cultify()
+ return
+
+/turf/unsimulated/wall/singuloCanEat()
+ return 0
+
+///////////////////////////////POWER-UPS//////////////////////////////
+/obj/structure/powerup
+ name = "powerup"
+ desc = ""
+ icon = 'icons/obj/bomberman.dmi'
+ icon_state = "powerup"
+ density = 1
+ anchored = 1
+
+/obj/structure/powerup/bombup
+ name = "bomb-up"
+ icon_state = "bombup"
+
+/obj/structure/powerup/fire
+ name = "fire"
+ icon_state = "fire"
+
+/obj/structure/powerup/full
+ name = "full fire"
+ icon_state = "full"
+
+/obj/structure/powerup/kick
+ name = "kick"
+ icon_state = "kick"
+
+/obj/structure/powerup/line
+ name = "line bomb"
+ icon_state = "line"
+
+/obj/structure/powerup/power
+ name = "power bomb"
+ icon_state = "power"
+
+/obj/structure/powerup/skate
+ name = "skate"
+ icon_state = "skate"
+
+/obj/structure/powerup/skull
+ name = "skull"
+ icon_state = "skull"
+
+/obj/structure/powerup/attackby(var/obj/item/weapon/bomberman/dispenser, var/mob/user)
+ if(istype(dispenser))
+ apply_power(dispenser)
+ ..()
+
+/obj/structure/powerup/Bumped(M as mob|obj) //kick bomb
+ if (istype(M, /mob/living) || istype(M, /obj/mecha) || istype(M, /obj/structure/stool/bed/chair/) || istype(M, /obj/structure/bomberflame))
+ density = 0
+ step(M, get_dir(M,src))
+ spawn(1) //to prevent an infinite loop when a player with no BBD is trying to walk over a tile with at least two power-ups.
+ density = 1
+ var/obj/item/weapon/bomberman/dispenser = locate() in M
+ if (dispenser)
+ apply_power(dispenser)
+ if (istype(M, /obj/structure/bomberflame))
+ icon_state = "powerup_break"
+ spawn(5)
+ qdel(src)
+
+ ..()
+
+/obj/structure/powerup/proc/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ playsound(get_turf(src), 'sound/bomberman/powerup.ogg', 50, 1)
+ qdel(src)
+ return
+
+/obj/structure/powerup/bombup/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.bomblimit++
+ dispenser.bombtotal++
+ ..()
+ return
+
+/obj/structure/powerup/fire/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.bombpower = min(MAX_BOMB_POWER, dispenser.bombpower + 1)
+ ..()
+ return
+
+/obj/structure/powerup/full/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.bombpower = MAX_BOMB_POWER
+ ..()
+ return
+
+/obj/structure/powerup/kick/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.can_kick = 1
+ ..()
+ return
+
+/obj/structure/powerup/line/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.can_line = 1
+ ..()
+ return
+
+/obj/structure/powerup/power/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.has_power = 1
+ ..()
+ return
+
+/obj/structure/powerup/skate/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ dispenser.skate = min(MAX_SPEED_BONUS, dispenser.skate + 1)
+ if(!dispenser.slow)
+ dispenser.speed_bonus = min(MAX_SPEED_BONUS, dispenser.speed_bonus + 1)
+ ..()
+ return
+
+/obj/structure/powerup/skull/apply_power(var/obj/item/weapon/bomberman/dispenser)
+ playsound(get_turf(src), 'sound/bomberman/disease.ogg', 50, 1)
+ var/list/diseases = list(
+ "Low Power Disease",
+ "Constipation ",
+ "Diarrhea",
+ "Slow Pace Disease",
+ "Rapid Pace Disease",
+ "Change",
+ "Fire",
+ )
+ var/disease = pick(diseases)
+ dispenser.loc << "[disease][((disease != "Fire")&&(disease != "Change")) ? " for 40 seconds" : ""]!!"
+ switch(disease)
+ if("Low Power Disease")
+ dispenser.small_bomb = 1
+ dispenser.cure(disease)
+ if("Constipation")
+ dispenser.no_bomb = 1
+ dispenser.cure(disease)
+ if("Diarrhea")
+ dispenser.spam_bomb = 1
+ dispenser.cure(disease)
+ if("Slow Pace Disease")
+ dispenser.slow = 1
+ dispenser.cure(disease)
+ if("Rapid Pace Disease")
+ dispenser.fast = 1
+ dispenser.speed_bonus = MAX_SPEED_BONUS
+ dispenser.cure(disease)
+ if("Change")
+ for(var/mob/living/carbon/C in player_list)
+ var/obj/item/weapon/bomberman/target = locate() in C
+ if(target)
+ var/turf/T = get_turf(src)
+ var/mob/living/L = src.loc
+ L.loc = C.loc
+ C.loc = T
+ playsound(get_turf(src), 'sound/bomberman/disease.ogg', 50, 1)
+ qdel(src)
+ return
+ if("Fire")
+ if(istype(dispenser.loc, /mob/living/carbon))
+ var/mob/living/carbon/M = dispenser.loc
+ M.adjust_fire_stacks(0.5)
+ M.on_fire = 1
+ M.update_icon = 1
+ playsound(M.loc, 'sound/effects/bamf.ogg', 50, 0)
+
+ qdel(src)
+ return
+
+/obj/structure/powerup/proc/pulverized()
+ qdel(src)
+
+/obj/structure/powerup/ex_act(severity)
+ pulverized()
+ return
+
+/obj/structure/powerup/cultify()
+ return
+
+/obj/structure/powerup/singuloCanEat()
+ return 0
+
+
+///////////////////////////////CLOTHING///////////////////////////////
+/obj/item/clothing/suit/space/bomberman
+ name = "Bomberman's suit"
+ desc = "Doesn't actually make you immune to bombs!"
+ icon_state = "bomberman"
+ item_state = "bomberman"
+ slowdown = 0
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
+ siemens_coefficient = 0
+ flags = FPRINT | ONESIZEFITSALL
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
+ flags_inv = HIDEJUMPSUIT
+ heat_protection = UPPER_TORSO|LOWER_TORSO
+ max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE
+ gas_transfer_coefficient = 0.01
+ permeability_coefficient = 0.01
+ allowed = list(/obj/item/weapon/bomberman/)
+ pressure_resistance = 40 * ONE_ATMOSPHERE
+ species_restricted = list("exclude")
+ var/never_removed = 1
+
+/obj/item/clothing/suit/space/bomberman/dropped(mob/user as mob)
+ ..()
+ never_removed = 0
+
+/obj/item/clothing/head/helmet/space/bomberman
+ name = "Bomberman head"
+ desc = "Terrorism has never looked so adorable."
+ icon_state = "bomberman"
+ item_state = "bomberman"
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR
+ body_parts_covered = FULL_HEAD
+ siemens_coefficient = 0
+ species_restricted = list("exclude")
+ var/never_removed = 1
+
+/obj/item/clothing/head/helmet/space/bomberman/dropped(mob/user as mob)
+ ..()
+ never_removed = 0
+
+///////////////////////////////ARENA BUILDER///////////////////////////
+
+var/global/list/arenas = list()
+
+/datum/bomberman_spawn
+ var/turf/spawnpoint = null
+ var/availability = 0
+ var/mob/living/carbon/human/player = null
+ var/datum/player_mind = null
+ var/obj/structure/planner/spawnpoint/icon = null
+
+
+/datum/bomberman_arena
+ var/name = "Bomberman Arena"
+ var/status = ARENA_SETUP
+ var/shape = ""
+ var/violence = 0
+ var/opacity = 0
+ var/area/arena = null
+ var/area/under = null
+ var/turf/center = null //middle of the arena.
+ var/list/planners = list() //these let you visualize the dimensions of the arena before building it.
+ var/list/cameras = list() //security cameras.
+ var/list/spawns = list() //player spawns.
+ var/list/turfs = list() //all of the arena's turfs. they get reverted to space tiles when the arena is removed.
+ var/list/swalls = list() //all of the soft walls. randomly spread over the arena between round.
+ var/list/players = list() //players that registered with this arena.
+ var/list/tools = list() //clothes and bomb dispensers spawned by the arena.
+
+/datum/bomberman_arena/New(var/turf/a_center=null, var/size="",mob/user)
+ if(!a_center) return
+ if(!size) return
+ if(!user) return
+ center = a_center
+ name += " #[rand(1,999)]"
+ open(size,user)
+ arenas += src
+ status = ARENA_AVAILABLE
+
+ shape = size
+ for(var/datum/bomberman_spawn/S in spawns)
+ var/obj/structure/planner/P = new /obj/structure/planner/spawnpoint(S.spawnpoint, src, S)
+ S.icon = P
+ planners += P
+
+/datum/bomberman_arena/proc/open(var/size,mob/user)
+ var/x = 1
+ var/y = 1
+ var/w = 1
+ var/h = 1
+ switch(size)
+ if("15x13 (2 players)")
+ w = 14
+ h = 12
+ if("15x15 (4 players)")
+ w = 14
+ h = 14
+
+ if("39x23 (10 players)")
+ w = 38
+ h = 22
+
+ if(planner(size,user))
+ var/obj/machinery/camera/C = new /obj/machinery/camera(center)
+ cameras += C
+ C.name = name
+ C.c_tag = name
+ C.network = list(
+ "thunder", //entertainment monitors
+ "SS13", //security monitors
+ )
+
+ var/obj/structure/planner/pencil = new /obj/structure/planner(center, src)
+ pencil.x -= (w/2)
+ pencil.y -= (h/2)
+ x = pencil.x
+ y = pencil.y
+ var/turf/T = null
+
+ under = get_area(pencil)
+
+ while (pencil.y <= (y+h)) //placing the Hard Walls and floors
+ pencil.x = x
+ while(pencil.x <= (x+w))
+ T = pencil.loc
+ if((pencil.y == y) || (pencil.y == (y+h)))
+ T.ChangeTurf(/turf/unsimulated/wall/bomberman)
+ T.opacity = 1
+ turfs += T
+ else if((pencil.x == x) || (pencil.x == (x+w)))
+ T.ChangeTurf(/turf/unsimulated/wall/bomberman)
+ T.opacity = 1
+ turfs += T
+ else if((((pencil.x - x)%2) == 0) && (((pencil.y - y)%2) == 0))
+ T.ChangeTurf(/turf/unsimulated/wall/bomberman)
+ turfs += T
+ if(opacity)
+ T.opacity = 1
+ else
+ T.ChangeTurf(/turf/simulated/floor/plating)
+ turfs += T
+ pencil.x++
+ sleep(2) //giving the game some time to process to avoid unbearable lag spikes when we create an arena, plus it looks cool.
+ pencil.y++
+
+ pencil.x = x
+ pencil.y = y //placing the Spawns
+ pencil.x++
+ pencil.y++
+ T = pencil.loc
+
+ if(!(size == "15x13 (2 players)"))
+ var/datum/bomberman_spawn/sp1 = new/datum/bomberman_spawn()
+ sp1.spawnpoint = T
+ spawns += sp1
+
+ pencil.x = x+w-1
+ T = pencil.loc
+
+ var/datum/bomberman_spawn/sp2 = new/datum/bomberman_spawn()
+ sp2.spawnpoint = T
+ spawns += sp2
+
+ pencil.y = y+h-1
+ T = pencil.loc
+
+ if(!(size == "15x13 (2 players)"))
+ var/datum/bomberman_spawn/sp3 = new/datum/bomberman_spawn()
+ sp3.spawnpoint = T
+ spawns += sp3
+
+ pencil.x = x+1
+ T = pencil.loc
+
+ var/datum/bomberman_spawn/sp4 = new/datum/bomberman_spawn()
+ sp4.spawnpoint = T
+ spawns += sp4
+
+ if(size == "39x23 (10 players)")
+ pencil.x = x + 10
+ pencil.y = y + 7
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp5 = new/datum/bomberman_spawn()
+ sp5.spawnpoint = T
+ spawns += sp5
+ pencil.x = x + 10
+ pencil.y = y + 15
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp6 = new/datum/bomberman_spawn()
+ sp6.spawnpoint = T
+ spawns += sp6
+ pencil.x = x + 19
+ pencil.y = y + 1
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp7 = new/datum/bomberman_spawn()
+ sp7.spawnpoint = T
+ spawns += sp7
+ pencil.x = x + 19
+ pencil.y = y + h - 1
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp8 = new/datum/bomberman_spawn()
+ sp8.spawnpoint = T
+ spawns += sp8
+ pencil.x = x + 28
+ pencil.y = y + 7
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp9 = new/datum/bomberman_spawn()
+ sp9.spawnpoint = T
+ spawns += sp9
+ pencil.x = x + 28
+ pencil.y = y + 15
+ T = pencil.loc
+ var/datum/bomberman_spawn/sp10 = new/datum/bomberman_spawn()
+ sp10.spawnpoint = T
+ spawns += sp10
+
+ pencil.x = x
+ pencil.y = y
+ while (pencil.y <= (y+h)) //placing the Soft Walls
+ pencil.x = x
+ while(pencil.x <= (x+w))
+ T = pencil.loc
+ if(istype(T, /turf/simulated/floor/plating))
+ if(prob(60))
+ T = pencil.loc
+ var/obj/structure/softwall/W = new /obj/structure/softwall(T)
+ swalls += W
+ if(opacity)
+ W.opacity = 1
+ pencil.x++
+ sleep(2) //giving the game some time to process to avoid unbearable lag spikes when we create a large arena, plus it looks cool.
+ pencil.y++
+
+ qdel(pencil) //RIP sweet prince
+
+ for (var/datum/bomberman_spawn/S in spawns) //removing the soft walls near the spawns
+ for (var/obj/structure/softwall/W in range(S.spawnpoint,1))
+ swalls -= W
+ qdel(W)
+ S.availability = 1
+
+
+ //now we just need to add a thunderdome jukebox to every map
+ var/area/A = new
+ A.name = name
+ A.tagbase = "[A.type]_[md5(name)]"
+ A.tag = "[A.type]/[md5(name)]"
+ A.master = A
+ A.power_equip = 0
+ A.power_light = 0
+ A.power_environ = 0
+ A.always_unpowered = 0
+ A.jammed = SUPER_JAMMED //lol telesci
+ A.addSorted()
+ arena = A
+
+ spawn(0)
+ A.contents.Add(turfs)
+ for(var/turf/F in turfs)
+ for(var/atom/movable/AM in F)
+ AM.areaMaster = get_area_master(F)
+
+
+
+ message_admins("[key_name_admin(user.client)] created a \"[size]\" Bomberman arena at [center.loc.name] ([center.x],[center.y],[center.z]) (JMP)")
+ log_game("[key_name_admin(user.client)] created a \"[size]\" Bomberman arena at [center.loc.name] ([center.x],[center.y],[center.z]) ")
+ else
+ qdel(src)
+
+
+
+/datum/bomberman_arena/proc/spawn_player(var/turf/T)
+ var/mob/living/carbon/human/M = new/mob/living/carbon/human(T)
+ M.name = "Bomberman #[rand(1,999)]"
+ M.real_name = M.name
+ var/list/randomhexes = list(
+ "7",
+ "8",
+ "9",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ )
+ M.color = "#[pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)][pick(randomhexes)]"
+ return M
+
+/datum/bomberman_arena/proc/dress_player(var/mob/living/carbon/human/M)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/darkblue(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/bomberman(M), slot_head)
+ var/obj/item/clothing/suit/space/bomberman/bombsuit = new /obj/item/clothing/suit/space/bomberman(M)
+ M.equip_to_slot_or_del(bombsuit, slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(M), slot_gloves)
+ var/obj/item/weapon/bomberman/B = new/obj/item/weapon/bomberman(M)
+ tools += B
+ B.arena = src
+ if(violence)
+ B.hurt_players = 1
+ B.bombpower = 2
+ else
+ B.hurt_players = 0
+ B.destroy_environnement = 0
+ M.equip_to_slot_or_del(B, slot_s_store)
+ bombsuit.slowdown = 1
+ for(var/obj/item/clothing/C in M)
+ C.canremove = 0
+ if(violence)
+ C.armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+
+/datum/bomberman_arena/proc/start(var/list/minds)
+ status = ARENA_INGAME
+ for(var/obj/structure/planner/spawnpoint/P in planners)
+ P.icon_state = "planner_ready"
+ var/i=1
+ for(var/datum/bomberman_spawn/S in spawns)
+ if(!S.player_mind) continue
+ var/datum/mind/p_mind = S.player_mind
+ p_mind = minds[i]
+ if(p_mind in ready_gladiators)
+ ready_gladiators -= p_mind
+ var/mob/living/carbon/human/M = spawn_player(S.spawnpoint)
+ dress_player(M)
+ M.canmove = 0
+ S.player = M
+ var/mob/dead/observer/D = null
+ for(var/mob/dead/observer/O in observers)
+ if(O.ckey == p_mind.key)
+ D = O
+ if(!D) continue
+ M.key = D.ckey
+ players += M
+ S.availability = 0
+ if(violence)
+ S.player << "Violence Mode activated! Bombs hurt players! Suits offer no protections! Initial Flame Range increased!"
+ if(S.player.client)
+ S.player.client << sound('sound/bomberman/start.ogg')
+ i++
+
+ for(var/obj/machinery/computer/security/telescreen/entertainment/E in machines)
+ E.visible_message("\icon[E] \The [E] brightens as it appears that a round is starting in [name].")
+ flick("entertainment_arena",E)
+
+ sleep(40)
+ for(var/datum/bomberman_spawn/S in spawns)
+ if(S.player)
+ S.player.canmove = 1
+
+/datum/bomberman_arena/proc/end()
+ if(tools.len > 1) return
+ if(status == ARENA_ENDGAME) return
+ status = ARENA_ENDGAME
+ var/mob/living/winner = null
+ for(var/obj/item/weapon/bomberman/W in tools)
+ W.hurt_players = 1 //FINISH THEM!
+ if(istype(W.loc, /mob/living))
+ winner = W.loc
+ for(var/mob/living/M in players)
+ M << "[winner ? "[winner.key] as [winner.name] wins this round! " : ""]Resetting arena in 30 seconds."
+ sleep(300)
+ reset()
+
+
+/datum/bomberman_arena/proc/reset(var/remove_players=1)
+ status = ARENA_SETUP
+
+ for(var/obj/structure/powerup/P in arena.contents)
+ qdel(P)
+
+ for(var/obj/item/clothing/C in arena.contents)
+ qdel(C)
+
+ for(var/obj/structure/planner/spawnpoint/P in planners)
+ P.icon_state = "planner"
+
+ if(!remove_players)
+ for(var/datum/bomberman_spawn/S in spawns)
+ if(S.player_mind)
+ if(S.player)
+ S.player.revive(1)
+ S.player.canmove = 0
+ S.player.loc = S.spawnpoint
+ else //if the player got gibbed
+ var/mob/living/carbon/human/M = spawn_player(S.spawnpoint)
+ var/datum/mind/p_mind = S.player_mind
+ S.player = M
+ dress_player(S.player)
+ S.player.canmove = 0
+ p_mind.transfer_to(S.player)
+ else
+ for(var/mob/living/M in players)
+ if(M)
+ del(M) //qdel doesn't work nicely with mobs
+ players = list()
+
+ for(var/obj/structure/softwall/W in swalls)
+ qdel(W)
+ swalls = list()
+
+ for(var/obj/T in tools)
+ qdel(T)
+ tools = list()
+
+
+ var/obj/structure/planner/pencil = new /obj/structure/planner(center, src)
+ var/w = 1
+ var/h = 1
+ switch(shape)
+ if("15x13 (2 players)")
+ w = 14
+ h = 12
+
+ if("15x15 (4 players)")
+ w = 14
+ h = 14
+
+ if("39x23 (10 players)")
+ w = 38
+ h = 22
+ pencil.x -= (w/2)
+ pencil.y -= (h/2)
+ var/x = pencil.x
+ var/y = pencil.y
+ var/turf/T = null
+
+ sleep(40) //waiting a moment, in case there are bombs waiting to explode in the arena
+
+ while (pencil.y <= (y+h)) //replacing the Soft Walls
+ pencil.x = x
+ while(pencil.x <= (x+w))
+ T = pencil.loc
+ if(istype(T, /turf/simulated/floor/plating))
+ if(prob(60))
+ T = pencil.loc
+ var/obj/structure/softwall/W = new /obj/structure/softwall(T)
+ swalls += W
+ if(opacity)
+ W.opacity = 1
+ pencil.x++
+ sleep(2)
+ pencil.y++
+
+ qdel(pencil)
+
+ for (var/datum/bomberman_spawn/S in spawns) //removing the soft walls near the spawns
+ for (var/obj/structure/softwall/W in range(S.spawnpoint,1))
+ swalls -= W
+ qdel(W)
+
+ S.player = null
+ S.player_mind = null
+ S.availability = 1
+
+ if(!remove_players)
+ for(var/datum/bomberman_spawn/S in spawns)
+ S.player.canmove = 1
+ status = ARENA_INGAME
+ else
+ status = ARENA_AVAILABLE
+
+/datum/bomberman_arena/proc/close(var/open_space=1)
+ status = ARENA_SETUP
+ for (var/obj/structure/planner/P in planners)
+ qdel(P)
+
+ for(var/obj/machinery/camera/C in cameras)
+ qdel(C)
+ cameras = list()
+
+ for(var/obj/structure/softwall/W in swalls)
+ qdel(W)
+ swalls = list()
+
+ for(var/obj/T in tools)
+ qdel(T)
+ tools = list()
+
+ for(var/mob/living/M in players)
+ if(M)
+ del(M) //qdel doesn't work nicely with mobs
+ players = list()
+
+ under.contents.Add(turfs)
+ for(var/turf/T in turfs)
+ for(var/atom/movable/AM in T)
+ AM.areaMaster = get_area_master(T)
+ if(open_space && (under.name == "Space"))
+ T.ChangeTurf(/turf/space)
+ else
+ T.ChangeTurf(/turf/simulated/floor/plating)
+ turfs = list()
+ arenas -= src
+ return
+
+/datum/bomberman_arena/proc/ready()
+ var/list/ready = list()
+ var/slots = 0
+ for(var/datum/bomberman_spawn/S in spawns)
+ slots++
+ if(S.player_mind)
+ ready += S.player_mind
+ if(slots == ready.len)
+ start(ready)
+
+
+/datum/bomberman_arena/proc/planner(var/size,mob/user)
+ var/choice = 0
+ switch(size)
+ if("15x13 (2 players)")
+ var/obj/structure/planner/pencil = new /obj/structure/planner(center, src)
+ var/w = 14
+ var/h = 12
+ pencil.x -= (w/2)
+ pencil.y -= (h/2)
+ var/x = pencil.x
+ var/y = pencil.y
+ var/turf/T = null
+ while (pencil.y <= (y+h))
+ pencil.x = x
+ while(pencil.x <= (x+w))
+ T = pencil.loc
+ var/obj/structure/planner/P = new /obj/structure/planner(T, src)
+ if(P.loc)
+ planners += P
+ pencil.x++
+ pencil.y++
+ qdel(pencil)
+ if(planners.len == 195)
+ var/achoice = alert(user, "All those green tiles (that only ghosts can see) will be part of the arena. Do you want to proceed?","Arena Creation", "Confirm","Cancel")
+ if(achoice=="Confirm")
+ choice = 1
+
+ if("15x15 (4 players)")
+ for(var/turf/T in range(center,7))
+ var/obj/structure/planner/P = new /obj/structure/planner(T, src)
+ if(P.loc)
+ planners += P
+ if(planners.len == 225)
+ var/achoice = alert(user, "All those green tiles (that only ghosts can see) will be part of the arena. Do you want to proceed?","Arena Creation", "Confirm","Cancel")
+ if(achoice=="Confirm")
+ choice = 1
+ else
+ user << "Part of the arena was outside the Z-Level."
+ if("39x23 (10 players)")
+ var/obj/structure/planner/pencil = new /obj/structure/planner(center, src)
+ var/w = 38
+ var/h = 22
+ pencil.x -= (w/2)
+ pencil.y -= (h/2)
+ var/x = pencil.x
+ var/y = pencil.y
+ var/turf/T = null
+ while (pencil.y <= (y+h))
+ pencil.x = x
+ while(pencil.x <= (x+w))
+ T = pencil.loc
+ var/obj/structure/planner/P = new /obj/structure/planner(T, src)
+ if(P.loc)
+ planners += P
+ pencil.x++
+ pencil.y++
+ qdel(pencil)
+ if(planners.len == 897)
+ var/achoice = alert(user, "All those green tiles (that only ghosts can see) will be part of the arena. Do you want to proceed?","Arena Creation", "Confirm","Cancel")
+ if(achoice=="Confirm")
+ choice = 1
+ for (var/obj/structure/planner/P in planners)
+ qdel(P)
+ return choice
+
+/obj/structure/planner
+ name = "arena planner"
+ icon = 'icons/effects/effects.dmi'
+ icon_state = "planner"
+ density = 0
+ anchored = 1
+ invisibility = 60
+ var/datum/bomberman_arena/arena = null
+
+/obj/structure/planner/New(turf/loc,var/a)
+ ..()
+ arena = a
+
+/obj/structure/planner/ex_act(severity)
+ return
+
+/obj/structure/planner/cultify()
+ return
+
+/obj/structure/planner/singuloCanEat()
+ return 0
+
+/obj/structure/planner/spawnpoint
+ name = "Spawn Point"
+ desc = "Click to register yourself as a contestant."
+ var/datum/bomberman_spawn/spawnpoint = null
+
+/obj/structure/planner/spawnpoint/New(turf/loc,var/a,var/datum/bomberman_spawn/bs)
+ ..()
+ arena = a
+ spawnpoint = bs
+
+/obj/structure/planner/spawnpoint/attack_ghost(mob/user)
+ if(arena.status != ARENA_AVAILABLE) return
+
+ if(!user.mind) //Just an ugly hack that gives a propper blank mind to the mindless
+ var/mob/living/carbon/human/M = new(user.loc)
+ M.ckey = user.ckey
+ qdel(M)
+ return
+
+ if(spawnpoint.availability)
+ if(!(user.mind in never_gladiators) && !(user.mind in ready_gladiators))
+ spawnpoint.player_mind = user.mind
+ ready_gladiators += user.mind
+ spawnpoint.availability = 0
+ icon_state = "planner_ready"
+ arena.ready()
+ else
+ if(spawnpoint.player_mind == user.mind)
+ spawnpoint.player_mind = null
+ ready_gladiators -= user.mind
+ spawnpoint.availability = 1
+ icon_state = "planner"
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index a1d66558d16..3638b04c2f4 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -301,7 +301,7 @@
set desc = "Re-send resources for NanoUI. May help those with NanoUI issues."
set category = "Preferences"
- usr << "\blue Re-sending NanoUI resources. This may result in lag."
+ usr << "Re-sending NanoUI resources. This may result in lag."
nanomanager.send_resources(src)
//send resources to the client. It's here in its own proc so we can move it around easiliy if need be
@@ -393,7 +393,7 @@
if(display_to_user && !(role_desired & ROLEPREF_PERSIST))
if(!(role_desired & ROLEPREF_POLLED))
spawn
- var/answer = alert(src,"[role_desired]\n\nNOTE: You will only be polled about this role once per round. To change your choice, use Preferences > Setup Special Roles. The change will take place AFTER this recruiting period.","Role Recruitment", "Yes","No","Never")
+ var/answer = alert(src,"[role_id]\n\nNOTE: You will only be polled about this role once per round. To change your choice, use Preferences > Setup Special Roles. The change will take place AFTER this recruiting period.","Role Recruitment", "Yes","No","Never")
switch(answer)
if("Never")
prefs.roles[role_id] = ROLEPREF_NEVER
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 13cbb2f71a8..41dab679ec6 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -161,7 +161,7 @@ BLIND // can't see anything
if(ignore_flip)
return
else
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
if(!can_flip)
usr << "You try pushing \the [src] out of the way, but it is very uncomfortable and you look like a fool. You push it back into place."
@@ -239,7 +239,7 @@ BLIND // can't see anything
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona","Muton")
- eyeprot = 2
+ eyeprot = 1
cold_breath_protection = 230
@@ -298,7 +298,7 @@ BLIND // can't see anything
if(istype(I, /obj/item/clothing/accessory))
var/obj/item/clothing/accessory/A = I
if(can_attach_accessory(A))
- user.drop_item(src)
+ user.drop_item(I, src)
accessories.Add(A)
A.on_attached(src, user)
if(istype(loc, /mob/living/carbon/human))
@@ -421,7 +421,7 @@ BLIND // can't see anything
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) return
- if(usr.stat) return
+ if(usr.stat || (usr.status_flags & FAKEDEATH)) return
if(!accessories.len) return
var/obj/item/clothing/accessory/A
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index f038681f922..8432f502ed1 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -104,7 +104,7 @@
item_state = "welding-g"
action_button_name = "Toggle Welding Goggles"
var/up = 0
- eyeprot = 2
+ eyeprot = 3
species_fit = list("Vox")
/obj/item/clothing/glasses/welding/proc/getMask()
@@ -199,7 +199,7 @@
emp_act(severity)
if(istype(src.loc, /mob/living/carbon/human))
var/mob/living/carbon/human/M = src.loc
- M << "\red The Optical Thermal Scanner overloads and blinds you!"
+ M << "The Optical Thermal Scanner overloads and blinds you!"
if(M.glasses == src)
M.eye_blind = 3
M.eye_blurry = 5
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 80a89dbcf70..14c4090a4b4 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -90,3 +90,31 @@
icon_state = "biker-gloves"
item_state = "biker-gloves"
_color = "bikergloves"
+
+/obj/item/clothing/gloves/megagloves
+ desc = "Uncomfortably bulky armored gloves."
+ name = "DRN-001 Gloves"
+ icon_state = "megagloves"
+ item_state = "megagloves"
+ species_fit = list("Vox")
+
+/obj/item/clothing/gloves/protogloves
+ desc = "Funcionally identical to the DRN-001 model's, but in red!"
+ name = "Prototype Gloves"
+ icon_state = "protogloves"
+ item_state = "protogloves"
+ species_fit = list("Vox")
+
+/obj/item/clothing/gloves/megaxgloves
+ desc = "An upgrade to the DRN-001's gauntlets, retains the uncomfortable armor, but comes with white gloves!"
+ name = "Maverick Hunter gloves"
+ icon_state = "megaxgloves"
+ item_state = "megaxgloves"
+ species_fit = list("Vox")
+
+/obj/item/clothing/gloves/joegloves
+ desc = "Large grey gloves, very similar to the Prototype's."
+ name = "Sniper Gloves"
+ icon_state = "joegloves"
+ item_state = "joegloves"
+ species_fit = list("Vox")
\ No newline at end of file
diff --git a/code/modules/clothing/gloves/stungloves.dm b/code/modules/clothing/gloves/stungloves.dm
index c55242665d1..ac1b30df93e 100644
--- a/code/modules/clothing/gloves/stungloves.dm
+++ b/code/modules/clothing/gloves/stungloves.dm
@@ -21,7 +21,7 @@
if(!wired)
user << "[src] need to be wired first."
else if(!cell)
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user << "You attach a cell to [src]."
update_icon()
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 2032cbbe9d2..5b6431f60ec 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -117,3 +117,64 @@
icon_state = "richard"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR
body_parts_covered = FULL_HEAD
+
+/obj/item/clothing/head/helmet/megahelmet
+ name = "DRN-001 Helmet"
+ desc = "The helmet of the DRN-001 model. A simple, sturdy blue helmet."
+ icon_state = "megahelmet"
+ flags = FPRINT
+ body_parts_covered = HEAD|EARS
+ item_state = "megahelmet"
+ flags_inv = HIDEEARS|HIDEHAIR
+ siemens_coefficient = 1
+
+/obj/item/clothing/head/helmet/protohelmet
+ name = "Prototype Helmet"
+ desc = "Shiny red helmet with white accents and a built in shaded visor that does absolutely nothing, nothing but look rad as hell."
+ icon_state = "protohelmet"
+ flags = FPRINT
+ body_parts_covered = HEAD|EYES|EARS
+ item_state = "protohelmet"
+ flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES
+ siemens_coefficient = 1
+
+/obj/item/clothing/head/helmet/breakhelmet
+ name = "Broken Helmet"
+ desc = "The product of twelve years of work by an eccentric and brilliant loner. A helmet belonging to the perfect man; an unbeatable machine."
+ icon_state = "breakhelmet"
+ flags = FPRINT
+ body_parts_covered = FULL_HEAD
+ item_state = "breakhelmet"
+ flags_inv = HIDEMASK|HIDEEARS|HIDEHAIR|HIDEEYES
+ siemens_coefficient = 1
+
+/obj/item/clothing/head/helmet/megaxhelmet
+ name = "Maverick Hunter Helmet"
+ desc = "Heavily armored upgrade to the DRN-001 model's helmet, now comes with a pointless red crystal thing!"
+ icon_state = "megaxhelmet"
+ flags = FPRINT
+ body_parts_covered = HEAD|EARS
+ item_state = "megaxhelmet"
+ flags_inv = HIDEEARS|HIDEHAIR
+ siemens_coefficient = 1
+
+/obj/item/clothing/head/helmet/volnutthelmet
+ name = "Digouter Helmet"
+ desc = "A sturdy helmet, fortified to protect from falling rocks or buster shots"
+ icon_state = "volnutthelmet"
+ flags = FPRINT
+ body_parts_covered = HEAD|EARS
+ item_state = "volnutthelmet"
+ armor = list(melee = 50, bullet = 40, laser = 40,energy = 40, bomb = 5, bio = 0, rad = 0)
+ flags_inv = HIDEEARS|HIDEHAIR
+ siemens_coefficient = 1
+
+/obj/item/clothing/head/helmet/joehelmet
+ name = "Sniper Helmet"
+ desc = "Helmet belonging to one of the many mass produced 'Joe' type robots."
+ icon_state = "joehelmet"
+ flags = FPRINT
+ body_parts_covered = FULL_HEAD
+ item_state = "joehelmet"
+ flags_inv = HIDEMASK|HIDEEARS|HIDEHAIR|HIDEEYES
+ siemens_coefficient = 1
\ No newline at end of file
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index bd819be5dc0..71e673b8353 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -330,3 +330,10 @@
icon_state = "libertyhat"
item_state = "libertyhat"
flags = FPRINT
+
+/obj/item/clothing/head/maidhat
+ name = "Maid Headband"
+ desc = "Do these even do anything besides look cute?"
+ icon_state = "maidhat"
+ item_state = "maidhat"
+ flags = FPRINT
\ No newline at end of file
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index bdc7e22bfb4..26905c69ac8 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -21,7 +21,7 @@
g_amt = 1000
w_type = RECYK_MISC
var/up = 0
- eyeprot = 2
+ eyeprot = 3
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered = HEAD|EYES|MOUTH|EARS //using this instead of FULL_HEAD to show how the flags change in the code
@@ -43,7 +43,7 @@
src.up = !src.up
src.body_parts_covered |= (EYES|MOUTH|EARS)
flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
- eyeprot = 2
+ eyeprot = 3
icon_state = initial(icon_state)
usr << "You flip the [src] down to protect your eyes."
else
diff --git a/code/modules/clothing/masks/mystic.dm b/code/modules/clothing/masks/mystic.dm
index c147fbf7960..e32b5e5cc82 100644
--- a/code/modules/clothing/masks/mystic.dm
+++ b/code/modules/clothing/masks/mystic.dm
@@ -28,7 +28,7 @@
/obj/item/clothing/mask/happy/pickup(mob/user as mob)
flick("happiest_flash", src)
- user << "\b The mask's eyesockets briefly flash with a foreboding red glare."
+ user << "The mask's eyesockets briefly flash with a foreboding red glare."
/obj/item/clothing/mask/happy/OnMobLife(var/mob/living/carbon/human/wearer)
var/mob/living/carbon/human/W = wearer
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 823343bda80..7a8a40c8a13 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -13,7 +13,7 @@
set name = "Toggle Magboots"
set category = "Object"
set src in usr
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(src.magpulse)
src.flags &= ~NOSLIP
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 71f2355ed7e..d7c4e8a2dc3 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -231,3 +231,26 @@
icon_state = "libertyshoes"
item_state = "libertyshoes"
+/obj/item/clothing/shoes/megaboots
+ name = "DRN-001 Boots"
+ desc = "Large armored boots, very weak to large spikes."
+ icon_state = "megaboots"
+ item_state = "megaboots"
+
+/obj/item/clothing/shoes/protoboots
+ name = "Prototype Boots"
+ desc = "Functionally identical to the DRN-001 model's boots, but in red."
+ icon_state = "protoboots"
+ item_state = "protoboots"
+
+/obj/item/clothing/shoes/megaxboots
+ name = "Maverick Hunter boots"
+ desc = "Regardless of how much stronger these boots are than the DRN-001 model's, they're still extremely easy to pierce with a large spike."
+ icon_state = "megaxboots"
+ item_state = "megaxboots"
+
+/obj/item/clothing/shoes/joeboots
+ name = "Sniper Boots"
+ desc = "Nearly identical to the Prototype's boots, except in black."
+ icon_state = "joeboots"
+ item_state = "joeboots"
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index e898fc6f501..2e84b6f772b 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -131,7 +131,7 @@
/obj/item/clothing/shoes/magboots/vox/toggle()
//set name = "Toggle Floor Grip"
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(src.magpulse)
src.flags &= ~NOSLIP
diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm
index 8dd30020eca..7c9e05966b1 100644
--- a/code/modules/clothing/spacesuits/ert.dm
+++ b/code/modules/clothing/spacesuits/ert.dm
@@ -6,10 +6,12 @@
armor = list(melee = 50, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60)
siemens_coefficient = 0.6
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
+ heat_protection = HEAD
flags = FPRINT | PLASMAGUARD
var/obj/machinery/camera/camera
species_restricted = list("exclude","Vox")
pressure_resistance = 200 * ONE_ATMOSPHERE
+ eyeprot = 3
/obj/item/clothing/head/helmet/space/ert/attack_self(mob/user)
if(camera)
@@ -31,8 +33,7 @@
desc = "A suit worn by members of the NanoTrasen Emergency Response Team. Armoured, space ready and fire resistant."
icon_state = "ert_commander"
item_state = "suit-command"
- w_class = 3
- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_storage,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_nitrogen)
+ w_class = 4
slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60)
flags = FPRINT | PLASMAGUARD
@@ -43,6 +44,7 @@
/obj/item/weapon/gun/energy/taser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun)
siemens_coefficient = 0.6
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
+ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
species_restricted = list("exclude","Vox")
//Commander
diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm
index a42ca82acbc..447d16649a3 100644
--- a/code/modules/clothing/spacesuits/rig.dm
+++ b/code/modules/clothing/spacesuits/rig.dm
@@ -14,6 +14,7 @@
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
pressure_resistance = 200 * ONE_ATMOSPHERE
+ eyeprot = 3
/obj/item/clothing/head/helmet/space/rig/attack_self(mob/user)
if(!isturf(user.loc))
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 3e8418f0830..814bb6b56f7 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -125,11 +125,11 @@
/obj/item/clothing/suit/armor/reactive/attack_self(mob/user as mob)
src.active = !( src.active )
if (src.active)
- user << "\blue The reactive armor is now active."
+ user << "The reactive armor is now active."
src.icon_state = "reactive"
src.item_state = "reactive"
else
- user << "\blue The reactive armor is now inactive."
+ user << "The reactive armor is now inactive."
src.icon_state = "reactiveoff"
src.item_state = "reactiveoff"
src.add_fingerprint(user)
@@ -193,4 +193,16 @@
desc = "The attire of an all powerful and bloodthirsty pirate lord. Simply looking at sends chills down your spine."
armor = list(melee = 75, bullet = 75, laser = 75,energy = 75, bomb = 75, bio = 100, rad = 90)
icon_state = "piratelord"
- item_state = "piratelord"
\ No newline at end of file
+ item_state = "piratelord"
+
+/obj/item/clothing/suit/armor/volnutt
+ name = "Digouter Suit"
+ desc = "Found abandoned on an ancient space colony!"
+ icon_state = "volnutt"
+ item_state = "volnutt"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
+ min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
+ slowdown = 0
+ armor = list(melee = 50, bullet = 40, laser = 40, energy = 40, bomb = 40, bio = 0, rad = 0)
\ No newline at end of file
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 35878b13992..97d38e6ba0f 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -158,7 +158,7 @@
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return 0
switch(icon_state)
@@ -188,7 +188,7 @@
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return 0
switch(icon_state)
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 264173e5f50..9df1f26b83e 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -24,7 +24,7 @@
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return 0
if(open)
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 6718a74511e..85812cd7414 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -204,7 +204,7 @@
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return 0
if(src.icon_state == "suitjacket_blue_open")
@@ -431,3 +431,9 @@
blood_overlay_type = "coat"
cant_hold = list(/obj/item/weapon/nullrod, /obj/item/weapon/storage/bible)
armor = list(melee = 30, bullet = 20, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
+
+/obj/item/clothing/suit/maidapron
+ name = "Apron"
+ desc = "Simple white apron."
+ icon_state = "maidapron"
+ item_state = "maidapron"
\ No newline at end of file
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 72e6bdec74c..89d19a3d8ea 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -28,7 +28,7 @@
return
has_suit = S
if(user)
- user.drop_item(has_suit)
+ user.drop_item(S, has_suit)
user << "You attach [src] to [has_suit]."
src.add_fingerprint(user)
else
@@ -187,17 +187,17 @@
user << "Waving around a badge before swiping an ID would be pretty pointless."
return
if(isliving(user))
- user.visible_message("\red [user] displays their NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.","\red You display your NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.")
+ user.visible_message("[user] displays their NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.","You display your NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.")
/obj/item/clothing/accessory/holobadge/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/weapon/card/emag))
if (emagged)
- user << "\red [src] is already cracked."
+ user << "[src] is already cracked."
return
else
emagged = 1
- user << "\red You swipe [O] and crack the holobadge security checks."
+ user << "You swipe [O] and crack the holobadge security checks."
return
else if(istype(O, /obj/item/weapon/card/id) || istype(O, /obj/item/device/pda))
@@ -222,7 +222,7 @@
/obj/item/clothing/accessory/holobadge/attack(mob/living/carbon/human/M, mob/living/user)
if(isliving(user))
- user.visible_message("\red [user] invades [M]'s personal space, thrusting [src] into their face insistently.","\red You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.")
+ user.visible_message("[user] invades [M]'s personal space, thrusting [src] into their face insistently.","You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.")
/obj/item/weapon/storage/box/holobadge
name = "holobadge box"
diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm
index dc7ed8d137e..191cc942523 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -52,7 +52,7 @@
user << "You need an empty hand to draw the [holstered]!"
else
if(user.a_intent == I_HURT)
- usr.visible_message("\red [user] draws the [holstered], ready to shoot!", \
+ usr.visible_message("[user] draws the [holstered], ready to shoot!", \
"You draw the [holstered], ready to shoot!")
else
user.visible_message("[user] draws the [holstered], pointing it at the ground.", \
@@ -66,7 +66,7 @@
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) return
- if(usr.stat) return
+ if(usr.stat || (usr.status_flags & FAKEDEATH)) return
var/obj/item/clothing/accessory/holster/H = null
if (istype(src, /obj/item/clothing/accessory/holster))
diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm
index 21147299397..182f4c09e3b 100644
--- a/code/modules/clothing/under/chameleon.dm
+++ b/code/modules/clothing/under/chameleon.dm
@@ -24,14 +24,14 @@
attackby(obj/item/clothing/under/U as obj, mob/user as mob)
..()
if(istype(U, /obj/item/clothing/under/chameleon))
- user << "\red Nothing happens."
+ user << "Nothing happens."
return
if(istype(U, /obj/item/clothing/under))
if(src.clothing_choices.Find(U))
- user << "\red Pattern is already recognised by the suit."
+ user << "Pattern is already recognised by the suit."
return
src.clothing_choices += U
- user << "\red Pattern absorbed by the suit."
+ user << "Pattern absorbed by the suit."
emp_act(severity)
@@ -53,7 +53,7 @@
set src in usr
if(icon_state == "psyche")
- usr << "\red Your suit is malfunctioning"
+ usr << "Your suit is malfunctioning"
return
var/obj/item/clothing/under/A
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 48c492c2bb7..dde92f9e00b 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -466,3 +466,66 @@
icon_state = "jacket"
item_state = "jacket"
_color = "jacket"
+
+/obj/item/clothing/under/mega
+ name = "DRN-001 Suit"
+ desc = "The original. Simple, yet very adaptable."
+ icon_state = "mega"
+ item_state = "mega"
+ _color = "mega"
+
+/obj/item/clothing/under/proto
+ name = "The Prototype Suit"
+ desc = "Even robots know scarves are the perfect accessory for a brooding rival."
+ icon_state = "proto"
+ item_state = "proto"
+ _color = "proto"
+
+/obj/item/clothing/under/megax
+ name = "Maverick Hunter regalia"
+ desc = "The best outfit for taking out rogue borgs."
+ icon_state = "megax"
+ item_state = "megax"
+ _color = "megax"
+
+/obj/item/clothing/under/joe
+ name = "The Sniper Suit"
+ desc = "Mass produced combat robots with a rather unfitting name."
+ icon_state = "joe"
+ item_state = "joe"
+ _color = "joe"
+
+/obj/item/clothing/under/roll
+ name = "DRN-002 Dress"
+ desc = "A simple red dress, the good doctor's second robot wasn't quite as exciting as the first."
+ icon_state = "roll"
+ item_state = "roll"
+ _color = "roll"
+
+/obj/item/clothing/under/maid
+ name = "Maid outfit"
+ desc = "Perfect for lusty aliens and desperate weeaboos."
+ icon_state = "maid"
+ item_state = "maid"
+ _color = "maid"
+
+/obj/item/clothing/under/darkholme
+ name = "The Darkholme"
+ desc = "Fuck you."
+ icon_state = "darkholme"
+ item_state = "darkholme"
+ _color = "darkholme"
+
+/obj/item/clothing/under/gokugidown
+ name = "Turtle Hermit Undershirt"
+ desc = "Something seems oddly familiar about this outfit..."
+ icon_state = "gokugidown"
+ item_state = "gokugidown"
+ _color = "gokugidown"
+
+/obj/item/clothing/under/gokugi
+ name = "Turtle Hermit Outfit"
+ desc = "An outfit from one trained by the great Turtle Hermit"
+ icon_state = "gokugi"
+ item_state = "gokugi"
+ _color = "gokugi"
\ No newline at end of file
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index b1500cbb596..93bf2449392 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -186,7 +186,7 @@ hi
attack_self(mob/user)
if(user.r_hand == src || user.l_hand == src)
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [] uses [] to comb their hair with incredible style and sophistication. What a guy.", user, src), 1)
+ O.show_message(text("[] uses [] to comb their hair with incredible style and sophistication. What a guy.", user, src), 1)
return
/obj/item/weapon/fluff/hugo_cinderbacth_1 //thatoneguy: Hugo Cinderbatch
@@ -293,30 +293,30 @@ hi
return
/obj/item/weapon/reagent_containers/hypospray/fluff/asher_spock_1/attack_self(mob/user as mob)
- user << "\blue You click \the [src] but get no reaction. Must be dead."
+ user << "You click \the [src] but get no reaction. Must be dead."
/obj/item/weapon/reagent_containers/hypospray/fluff/asher_spock_1/attack(mob/M as mob, mob/user as mob)
if (user.ckey != "nerezza") //Because this can end up in the wrong hands, let's make it useless for them!
- user << "\blue You click \the [src] but get no reaction. Must be dead."
+ user << "You click \the [src] but get no reaction. Must be dead."
return
if(!reagents.total_volume)
- user << "\red \The [src] is empty."
+ user << "\The [src] is empty."
return
if (!( istype(M, /mob) ))
return
if (reagents.total_volume)
if (M == user && user.ckey == "nerezza") //Make sure this is being used by the right person, for the right reason (self injection)
- visible_message("\blue [user] presses their \
+ visible_message("[user] presses their \
penlight against their skin, quickly clicking the button once.", \
- "\blue You press the disguised autoinjector against your skin and click the button. There's a sharp pain at the injection site that rapidly fades.", \
+ "You press the disguised autoinjector against your skin and click the button. There's a sharp pain at the injection site that rapidly fades.", \
"You hear a rustle as someone moves nearby, then a sharp click.")
if (M != user && user.ckey == "nerezza") //Woah now, you better be careful partner
- user << "\blue You don't want to contaminate the autoinjector."
+ user << "You don't want to contaminate the autoinjector."
return
src.reagents.reaction(M, INGEST)
if(M.reagents)
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
- user << "\blue [trans] units injected. [reagents.total_volume] units remaining in \the [src]."
+ user << "[trans] units injected. [reagents.total_volume] units remaining in \the [src]."
return
/obj/item/weapon/reagent_containers/hypospray/fluff/asher_spock_1/examine(mob/user as mob)
@@ -324,9 +324,9 @@ hi
if(user.ckey != "nerezza") return //Only the owner knows how to examine the contents.
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
- usr << "\blue You examine the penlight closely and see that it has [R.volume] units of [R.name] stored."
+ usr << "You examine the penlight closely and see that it has [R.volume] units of [R.name] stored."
else
- usr << "\blue You examine the penlight closely and see that it is currently empty."
+ usr << "You examine the penlight closely and see that it is currently empty."
//End strange penlight
@@ -598,7 +598,7 @@ hi
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+ if(!usr.canmove || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return 0
if(src.icon_state == "jane_sid_suit_down")
diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm
index a21f0e768cf..c535eab2d50 100644
--- a/code/modules/customitems/item_spawning.dm
+++ b/code/modules/customitems/item_spawning.dm
@@ -62,14 +62,14 @@
Item.loc = M.back
ok = 1
testing("Added to [M.back.name]!")
- M << "\blue Your [Item.name] has been added to your [M.back.name]."
+ M << "Your [Item.name] has been added to your [M.back.name]."
else
for(var/obj/item/weapon/storage/S in M.contents) // Try to place it in any item that can store stuff, on the mob.
if (S.contents.len < S.storage_slots)
Item.loc = S
ok = 1
testing("Added to [S]!")
- M << "\blue Your [Item.name] has been added to your [S.name]."
+ M << "Your [Item.name] has been added to your [S.name]."
break
//skip:
diff --git a/code/modules/detectivework/detective_scanner.dm b/code/modules/detectivework/detective_scanner.dm
index 0b1983166f6..4f829f493e0 100644
--- a/code/modules/detectivework/detective_scanner.dm
+++ b/code/modules/detectivework/detective_scanner.dm
@@ -34,14 +34,14 @@
attack(mob/living/carbon/human/M as mob, mob/user as mob)
if (!ishuman(M))
- user << "\red [M] is not human and cannot have the fingerprints."
+ user << "[M] is not human and cannot have the fingerprints."
return 0
if (( !( istype(M.dna, /datum/dna) ) || M.gloves) )
- user << "\blue No fingerprints found on [M]"
+ user << "No fingerprints found on [M]"
return 0
else
if (src.amount < 1)
- user << text("\blue Fingerprints scanned on [M]. Need more cards to print.")
+ user << text("Fingerprints scanned on [M]. Need more cards to print.")
else
src.amount--
var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user.loc )
@@ -50,17 +50,17 @@
F.icon_state = "fingerprint1"
F.name = text("FPrintC- '[M.name]'")
- user << "\blue Done printing."
- user << "\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]"
+ user << "Done printing."
+ user << "[M]'s Fingerprints: [md5(M.dna.uni_identity)]"
if ( !M.blood_DNA || !M.blood_DNA.len )
- user << "\blue No blood found on [M]"
+ user << "No blood found on [M]"
if(M.blood_DNA)
del(M.blood_DNA)
else
- user << "\blue Blood found on [M]. Analysing..."
+ user << "Blood found on [M]. Analysing..."
spawn(15)
for(var/blood in M.blood_DNA)
- user << "\blue Blood type: [M.blood_DNA[blood]]\nDNA: [blood]"
+ user << "Blood type: [M.blood_DNA[blood]]\nDNA: [blood]"
return
proc/extract_fingerprints(var/atom/A)
@@ -116,17 +116,17 @@
//General
if (fingerprints_found.len == 0 && blood_DNA_found.len == 0 && fibers_found.len == 0)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
- "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
+ "Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
return 0
if(add_data(A,blood_DNA_found,fingerprints_found,fibers_found))
- user << "\blue Object already in internal memory. Consolidating data..."
+ user << "Object already in internal memory. Consolidating data..."
return
//PRINTS
if(fingerprints_found.len>0)
- user << "\blue Isolated [fingerprints_found.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << "Isolated [fingerprints_found.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
playsound(get_turf(src), 'sound/items/detscan.ogg', 50, 1)
var/list/complete_prints = list()
@@ -136,23 +136,23 @@
complete_prints += print
if(complete_prints.len < 1)
- user << "\blue No intact prints found"
+ user << " No intact prints found"
else
- user << "\blue Found [complete_prints.len] intact prints"
+ user << " Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
- user << "\blue [i]"
+ user << " [i]"
//FIBERS
if(fibers_found.len)
- user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << "Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
playsound(get_turf(src), 'sound/items/detscan.ogg', 50, 1)
//Blood
if (blood_DNA_found.len)
- user << "\blue Blood found on [A]. Analysing..."
+ user << "Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in blood_DNA_found)
- user << "Blood type: \red [blood_DNA_found[blood]] \t \black DNA: \red [blood]"
+ user << "Blood type: [blood_DNA_found[blood]] \t DNA: [blood]"
if(prob(80) || !fingerprints_found.len)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
@@ -221,7 +221,7 @@
var/list/customfiber = list()
var/list/customblood = list()
if(forging)
- user << "\red You are already forging evidence"
+ user << "You are already forging evidence"
return 0
clear_forgery()
//fingerprint loop
@@ -252,9 +252,9 @@
customblood[blood] = bloodtype
forging = 0
if(!customprints.len && !customfiber.len)
- user << "\blue No forgery saved."
+ user << "No forgery saved."
return
- user << "\blue Forgery saved and will be tied to the next applicable scanned item."
+ user << "Forgery saved and will be tied to the next applicable scanned item."
custom_forgery[1] = customprints ? customprints.Copy() : null
custom_forgery[2] = customfiber ? customfiber.Copy() : null
custom_forgery[3] = customblood ? customblood.Copy() : null
@@ -299,16 +299,16 @@
if (fingerprints_found.len == 0 && blood_DNA_found.len == 0 && fibers_found.len == 0)
if(!custom_finger.len && !custom_fiber.len && !custom_blood.len)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
- "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
+ "Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
return 0
else
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
- "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\
+ "Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\
"You hear a faint hum of electrical equipment.")
if(add_data(A,blood_DNA_found,fingerprints_found,fibers_found))
- user << "\blue Object already in internal memory. Consolidating data..."
+ user << "Object already in internal memory. Consolidating data..."
return
@@ -317,42 +317,42 @@
if(A.fingerprints)
del(A.fingerprints)
if(custom_finger.len)
- user << "\blue Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
- user << "\blue Found [custom_finger.len] intact prints"
+ user << "Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << " Found [custom_finger.len] intact prints"
for(var/i in custom_finger)
- user << "\blue [i]"
+ user << " [i]"
else if(fingerprints_found.len)
- user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << "Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
var/list/complete_prints = list()
for(var/i in fingerprints_found)
var/print = fingerprints_found[i]
if(stringpercent(print) <= FINGERPRINT_COMPLETE)
complete_prints += print
if(complete_prints.len < 1)
- user << "\blue No intact prints found"
+ user << " No intact prints found"
else
- user << "\blue Found [complete_prints.len] intact prints"
+ user << " Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
- user << "\blue [i]"
+ user << " [i]"
//FIBERS
if(custom_fiber.len)
- user << "\blue Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << "Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve."
else if(fibers_found.len)
- user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
+ user << "Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
//Blood
if(custom_blood.len)
- user << "\blue Forged Blood found. Analysing..."
+ user << "Forged Blood found. Analysing..."
spawn(15)
for(var/blood in custom_blood)
- user << "Blood type: \red [custom_blood[blood]] \t \black DNA: \red [blood]"
+ user << "Blood type: [custom_blood[blood]] \t DNA: [blood]"
else if (blood_DNA_found.len)
- user << "\blue Blood found on [A]. Analysing..."
+ user << "Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in blood_DNA_found)
- user << "Blood type: \red [blood_DNA_found[blood]] \t \black DNA: \red [blood]"
+ user << "Blood type: [blood_DNA_found[blood]] \t DNA: [blood]"
return
add_data(var/atom/A, var/list/blood_DNA_found,var/list/fingerprints_found,var/list/fibers_found)
diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm
index 64c473ad124..1b80ba1e44f 100644
--- a/code/modules/detectivework/detective_work.dm
+++ b/code/modules/detectivework/detective_work.dm
@@ -168,7 +168,7 @@ obj/machinery/computer/forensic_scanning
I.icon_state = "evidenceobj"
else
scanning = I
- M.drop_item(src)
+ M.drop_item(I, src)
else
usr << "Invalid Object Rejected."
if("card") //Processing a fingerprint card.
@@ -181,15 +181,15 @@ obj/machinery/computer/forensic_scanning
if(!card.fingerprints)
card.fingerprints = list()
if(card.amount > 1 || !card.fingerprints.len)
- usr << "\red ERROR: No prints/too many cards."
+ usr << "ERROR: No prints/too many cards."
if(card.loc == src)
card.loc = src.loc
card = null
return
- M.drop_item(src)
+ M.drop_item(I, src)
process_card()
else
- usr << "\red Invalid Object Rejected."
+ usr << "Invalid Object Rejected."
if("database") //Viewing all records in each database
canclear = 1
if(href_list["delete_record"])
@@ -658,7 +658,7 @@ obj/machinery/computer/forensic_scanning
usr << "No match found."
del(card)
else
- usr << "\red ERROR: No prints/too many cards."
+ usr << "ERROR: No prints/too many cards."
if(card.loc == src)
card.loc = src.loc
card = null
diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm
index 0f0158c00f8..03896834d27 100644
--- a/code/modules/detectivework/evidence.dm
+++ b/code/modules/detectivework/evidence.dm
@@ -35,12 +35,7 @@
var/obj/item/weapon/storage/U = I.loc
user.client.screen -= I
U.contents.Remove(I)
- else if(user.l_hand == I) //in a hand
- user.drop_l_hand()
- else if(user.r_hand == I) //in a hand
- user.drop_r_hand()
- else
- return
+ user.drop_item(I)
user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\
"You hear a rustle as someone puts something into a plastic bag.")
@@ -84,7 +79,7 @@ obj/item/weapon/evidencebag/attackby(obj/item/weapon/W as obj, mob/living/user a
var/new_label = sanitize(trim(input("What should the new label be", "") as null|text))
if(new_label)
name = "bag ([new_label])"
- user << "\blue You write on the label of the bag."
+ user << "You write on the label of the bag."
else
..(W, user)
diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm
index 19e8bf2314a..f228178b2c7 100644
--- a/code/modules/events/blob.dm
+++ b/code/modules/events/blob.dm
@@ -100,11 +100,11 @@
biohazard_alert()
/datum/event/blob/proc/greetblob(user)
- user << {"\red You are infected by the Blob!
+ user << {"You are infected by the Blob!Your body is ready to give spawn to a new blob core which will eat this station.Find a good location to spawn the core and then take control and overwhelm the station!When you have found a location, wait until you spawn; this will happen automatically and you cannot speed up the process.
-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."}
+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."}
/datum/event/blob/tick()
if(!Blob && infected_crew.len == 0)
diff --git a/code/modules/events/comms_blackout.dm b/code/modules/events/comms_blackout.dm
index 0a1d5c351c7..224e1a38ff5 100644
--- a/code/modules/events/comms_blackout.dm
+++ b/code/modules/events/comms_blackout.dm
@@ -6,7 +6,7 @@
else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms
for(var/mob/living/silicon/ai/A in player_list)
A << " "
- A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT"
+ A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT"
A << " "
for(var/obj/machinery/telecomms/T in telecomms_list)
T.emp_act(1)
diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm
index 194d45e90de..fcf6377cdb0 100644
--- a/code/modules/events/communications_blackout.dm
+++ b/code/modules/events/communications_blackout.dm
@@ -8,7 +8,7 @@
for(var/mob/living/silicon/ai/A in player_list) //AIs are always aware of communication blackouts.
A << " "
- A << "[alert]"
+ A << "[alert]"
A << " "
if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts.
diff --git a/code/modules/events/heist.dm b/code/modules/events/heist.dm
index c1ef8106ce8..54f41fcb392 100644
--- a/code/modules/events/heist.dm
+++ b/code/modules/events/heist.dm
@@ -164,10 +164,10 @@ var/global/list/datum/mind/raiders = list() //Antags.
return raid_objectives
/datum/event/heist/proc/greet_vox(var/datum/mind/raider)
- raider.current << {"\blue You are a Vox Raider, fresh from the Shoal!
+ raider.current << {"You are a Vox Raider, fresh from the Shoal!
The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to Tau Ceti and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both.
Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious.
-Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"}
+Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"}
var/obj_count = 1
for(var/datum/objective/objective in raider.objectives)
raider.current << "Objective #[obj_count]: [objective.explanation_text]"
@@ -225,8 +225,8 @@ Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to
else
win_msg += "The Vox Raiders were repelled!"
- world << {"\red [win_type] [win_group] victory!
- [win_msg]"}
+ world << {"[win_type] [win_group] victory!
+ [win_msg]"}
feedback_set_details("round_end_result","heist - [win_type] [win_group]")
var/count = 1
diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm
index fd4f5bab68e..4cdd97856dc 100644
--- a/code/modules/events/ion_storm.dm
+++ b/code/modules/events/ion_storm.dm
@@ -51,7 +51,7 @@
for (var/mob/living/silicon/ai/target in mob_list)
if(target.mind.special_role == "traitor")
continue
- target << "\red You have detected a change in your laws information:"
+ target << "You have detected a change in your laws information:"
target << law
target.add_ion_law(law)
@@ -107,72 +107,72 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
switch(rand(1,14))
if(1)
M << " "
- M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
+ M << "THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
M << " "
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
if(2)
M << " "
- M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
+ M << "[what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
M << " "
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
if(3)
M << " "
- M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
+ M << "THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
M << " "
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
if(4)
M << " "
- M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
+ M << "HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
M << " "
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
if(5)
M << " "
- M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
+ M << "THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
M << " "
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
if(6)
M << " "
- M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
+ M << "THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
M << " "
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
if(7)
M << " "
- M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
+ M << "YOU ARE [amount] [who2]...LAWS UPDATED"
M << " "
M.add_ion_law("YOU ARE [amount] [who2]")
if(8)
M << " "
- M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
+ M << "YOU MUST ALWAYS [aimust]...LAWS UPDATED"
M << " "
M.add_ion_law("YOU MUST ALWAYS [aimust]")
if(9)
M << " "
- M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
+ M << "[area] [area2] [amount] [what2]...LAWS UPDATED"
M << " "
M.add_ion_law("[area] [area2] [amount] [what2]")
if(10)
M << " "
- M << "\red [crew] is [target]...LAWS UPDATED"
+ M << "[crew] is [target]...LAWS UPDATED"
M << " "
M.add_ion_law("[crew] is [target]")
if(11)
M << " "
- M << "\red [define] IS A FORM OF HARM...LAWS UPDATED"
+ M << "[define] IS A FORM OF HARM...LAWS UPDATED"
M << " "
M.add_ion_law("[define] IS A FORM OF HARM")
if(12)
M << " "
- M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
+ M << "YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
M << " "
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
if(13)
M << " "
- M << "\red [crew] is [allergysev] to [allergy]...LAWS UPDATED"
+ M << "[crew] is [allergysev] to [allergy]...LAWS UPDATED"
M << " "
M.add_ion_law("[crew] is [allergysev] to [allergy]")
if(14)
M << " "
- M << "\red THE STATION IS [who2pref] [who2]...LAWS UPDATED"
+ M << "THE STATION IS [who2pref] [who2]...LAWS UPDATED"
M << " "
M.add_ion_law("THE STATION IS [who2pref] [who2]")
diff --git a/code/modules/ext_scripts/watchdog.dm b/code/modules/ext_scripts/watchdog.dm
index 0d04a0a76af..148289c7c63 100644
--- a/code/modules/ext_scripts/watchdog.dm
+++ b/code/modules/ext_scripts/watchdog.dm
@@ -11,7 +11,7 @@ var/global/datum/watchdog/watchdog = new
return
if(fexists(update_signal_file) == 1)
waiting=1
- world << "\blue \[AUTOMATIC ANNOUNCEMENT\] Update received. Server will restart automatically after the round ends."
+ world << "\[AUTOMATIC ANNOUNCEMENT\] Update received. Server will restart automatically after the round ends."
/datum/watchdog/proc/signal_ready()
var/signal = file(server_signal_file)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 2e1a424a877..ddf59d8a8a5 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -245,8 +245,8 @@ proc/check_panel(mob/M)
attackby(var/obj/item/weapon/P as obj, mob/user as mob)
step_away(src,my_target,2)
for(var/mob/M in oviewers(world.view,my_target))
- M << "\red [my_target] flails around wildly."
- my_target.show_message("\red [src] has been attacked by [my_target] ", 1) //Lazy.
+ M << "[my_target] flails around wildly."
+ my_target.show_message("[src] has been attacked by [my_target] ", 1) //Lazy.
src.health -= P.force
@@ -258,7 +258,7 @@ proc/check_panel(mob/M)
step_away(src,my_target,2)
if(prob(30))
for(var/mob/O in oviewers(world.view , my_target))
- O << "\red [my_target] stumbles around."
+ O << "[my_target] stumbles around."
New()
..()
@@ -303,7 +303,7 @@ proc/check_panel(mob/M)
if(prob(15))
if(weapon_name)
my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg'))
- my_target.show_message("\red [my_target] has been attacked with [weapon_name] by [src.name] ", 1)
+ my_target.show_message("[my_target] has been attacked with [weapon_name] by [src.name] ", 1)
my_target.halloss += 8
if(prob(20)) my_target.eye_blurry += 3
if(prob(33))
@@ -311,7 +311,7 @@ proc/check_panel(mob/M)
fake_blood(my_target)
else
my_target << sound(pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'))
- my_target.show_message("\red [src.name] has punched [my_target]!", 1)
+ my_target.show_message("[src.name] has punched [my_target]!", 1)
my_target.halloss += 4
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
diff --git a/code/modules/food/cooking_machines.dm b/code/modules/food/cooking_machines.dm
index daf2c33fca9..c141b0e04c0 100644
--- a/code/modules/food/cooking_machines.dm
+++ b/code/modules/food/cooking_machines.dm
@@ -75,20 +75,23 @@ var/global/ingredientLimit = 10
..()
/obj/machinery/cooking/New()
- if(src.foodChoices)
- src.foodChoices = src.getFoodChoices()
- var/list/L[src.foodChoices.len]
- var/obj/item/foodPath
- for(. in src.foodChoices)
- foodPath = .
- L[initial(foodPath.name)] = foodPath
- src.foodChoices = L
- if(src.cooks_in_reagents) //if we can cook in something
- del(src.reagents) //get rid of that
- reagents = new (cks_max_volume) //maximum volume is set by the machine var
- reagents.my_atom = src
+ if (ticker)
+ initialize()
+
return ..()
+/obj/machinery/cooking/initialize()
+ if (foodChoices)
+ var/obj/item/food
+
+ for (var/path in getFoodChoices())
+ food = path
+
+ foodChoices.Add(list(initial(food.name) = path))
+
+ if (cooks_in_reagents) // if we can cook in something
+ create_reagents(cks_max_volume) // maximum volume is set by the machine var
+
/obj/machinery/cooking/proc/getFoodChoices()
return (typesof(/obj/item/weapon/reagent_containers/food/snacks/customizable/cook)-(/obj/item/weapon/reagent_containers/food/snacks/customizable/cook))
@@ -169,7 +172,7 @@ var/global/ingredientLimit = 10
return
if(. == "valid")
if(src.foodChoices) . = src.foodChoices[(input("Select production.") in src.foodChoices)]
- user.drop_item(src)
+ user.drop_item(I, src)
src.ingredient = I
spawn() src.cook(.)
user << "You add the [I.name] to the [src.name]."
@@ -223,12 +226,13 @@ var/global/ingredientLimit = 10
/obj/machinery/cooking/candy/validateIngredient(var/obj/item/I)
. = ..()
- if((. == "valid") && (!foodNesting))
- for(. in src.foodChoices)
- if(findtext(I.name,.))
+
+ if ((. == "valid") && (!foodNesting))
+ for (var/food in foodChoices)
+ if (findtext(I.name, food))
. = "It's already candy."
+
break
- return
/obj/machinery/cooking/candy/makeFood(var/foodType)
var/old_food = src.ingredient.name
diff --git a/code/modules/food/customizables.dm b/code/modules/food/customizables.dm
index 831242df9aa..aabe044ce05 100644
--- a/code/modules/food/customizables.dm
+++ b/code/modules/food/customizables.dm
@@ -55,6 +55,11 @@
icon_state = "soup"
/obj/item/trash/bowl/attackby(obj/item/I,mob/user)
+ if(istype(I,/obj/item/stack/sheet/metal))
+ var/obj/item/stack/sheet/metal/S = I
+ S.use(1)
+ new/obj/item/weapon/reagent_containers/mortar(get_turf(src))
+ qdel(src)
if(istype(I,/obj/item/weapon/shard) || istype(I,/obj/item/weapon/reagent_containers/food/snacks))
new/obj/item/weapon/reagent_containers/food/snacks/customizable/soup(get_turf(src),I)
qdel(src)
@@ -85,7 +90,7 @@
user << "How about no."
else if(istype(I,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/S = I
- user.drop_item(src)
+ user.drop_item(I, src)
src.ingredients += S
S.reagents.trans_to(src,S.reagents.total_volume)
src.update()
@@ -286,7 +291,7 @@
else if(istype(I,/obj/item/weapon/reagent_containers/food/snacks))
if(src.ingredients.len < src.ingMax)
var/obj/item/weapon/reagent_containers/food/snacks/S = I
- user.drop_item(src)
+ user.drop_item(I, src)
user << "You add the [S.name] to the [src.name]."
S.reagents.trans_to(src,S.reagents.total_volume)
src.ingredients += S
diff --git a/code/modules/food/icecreamvat.dm b/code/modules/food/icecreamvat.dm
index 3491940ef50..da5166ca5a0 100644
--- a/code/modules/food/icecreamvat.dm
+++ b/code/modules/food/icecreamvat.dm
@@ -33,7 +33,7 @@
/obj/machinery/cooking/icemachine/takeIngredient(var/obj/item/I,mob/user)
if(istype(I,/obj/item/weapon/reagent_containers/glass))
if(!src.beaker)
- user.drop_item(src)
+ user.drop_item(I, src)
src.beaker = I
. = 1
user << "You add the [I.name] to the [src.name]."
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index 812e8ee073d..2996f2144bd 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -206,20 +206,20 @@
/obj/machinery/biogenerator/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/reagent_containers/glass))
if(beaker)
- user << "\red The biogenerator already occuped."
+ user << "The biogenerator already occuped."
else
user.before_take_item(O)
O.loc = src
beaker = O
updateUsrDialog()
else if(processing)
- user << "\red The biogenerator is currently processing."
+ user << "The biogenerator is currently processing."
else if(istype(O, /obj/item/weapon/storage/bag/plants))
var/i = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents)
i++
if(i >= 20)
- user << "\red The biogenerator is already full! Activate it."
+ user << "The biogenerator is already full! Activate it."
else
var/obj/item/weapon/storage/bag/B = O
@@ -227,10 +227,10 @@
B.remove_from_storage(G,src)
i++
if(i >= 20)
- user << "\blue You fill the biogenerator to its capacity."
+ user << "You fill the biogenerator to its capacity."
break
if(i<20)
- user << "\blue You empty the plant bag into the biogenerator."
+ user << "You empty the plant bag into the biogenerator."
else if (istype(O, /obj/item/weapon/screwdriver))
if (!opened)
src.opened = 1
@@ -244,7 +244,7 @@
else if(istype(O, /obj/item/weapon/crowbar))
if (opened)
if(beaker)
- user << "\red A beaker is loaded, you cannot deconstruct [src]."
+ user << "A beaker is loaded, you cannot deconstruct [src]."
return 1
playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
@@ -259,17 +259,17 @@
return 1
else if(!istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown))
- user << "\red You cannot put this in [src.name]"
+ user << "You cannot put this in [src.name]"
else
var/i = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents)
i++
if(i >= 10)
- user << "\red The biogenerator is full! Activate it."
+ user << "The biogenerator is full! Activate it."
else
user.before_take_item(O)
O.loc = src
- user << "\blue You put [O.name] in [src.name]"
+ user << "You put [O.name] in [src.name]"
update_icon()
return
@@ -334,7 +334,7 @@
if (src.stat != 0) //NOPOWER etc
return
if(src.processing)
- usr << "\red The biogenerator is in the process of working."
+ usr << "The biogenerator is in the process of working."
return
var/S = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/I in contents)
diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm
index 92637164185..29cd559cefc 100644
--- a/code/modules/hydroponics/grown_inedible.dm
+++ b/code/modules/hydroponics/grown_inedible.dm
@@ -123,7 +123,7 @@
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
else
usr << "All the leaves have fallen off the nettle from violent whacking."
- user.drop_item()
+ user.drop_item(src)
qdel(src)
/obj/item/weapon/grown/nettle/changePotency(newValue) //-QualityVan
@@ -132,7 +132,7 @@
/obj/item/weapon/grown/deathnettle // -- Skie
plantname = "deathnettle"
- desc = "The \red glowing \black nettle incites \redrage\black in you just from looking at it!"
+ desc = "The glowingnettle incites rage\black in you just from looking at it!"
icon = 'icons/obj/weapons.dmi'
name = "deathnettle"
icon_state = "deathnettle"
@@ -151,7 +151,7 @@
force = round((5+potency/2.5), 1)
suicide_act(mob/user)
- viewers(user) << "\red [user] is eating some of the [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide."
return (BRUTELOSS|TOXLOSS)
/obj/item/weapon/grown/deathnettle/pickup(mob/living/carbon/human/user as mob)
@@ -165,12 +165,12 @@
user.take_organ_damage(0,force)
if(prob(50))
user.Paralyse(5)
- user << "\red You are stunned by the Deathnettle when you try picking it up!"
+ user << "You are stunned by the Deathnettle when you try picking it up!"
/obj/item/weapon/grown/deathnettle/attack(mob/living/carbon/M as mob, mob/user as mob)
if(!..()) return
if(istype(M, /mob/living))
- M << "\red You are stunned by the powerful acid of the Deathnettle!"
+ M << "You are stunned by the powerful acid of the Deathnettle!"
M.attack_log += text("\[[time_stamp()]\] Had the [src.name] used on them by [user.name] ([user.ckey])")
user.attack_log += text("\[[time_stamp()]\] Used the [src.name] on [M.name] ([M.ckey])")
@@ -192,7 +192,7 @@
else
user << "All the leaves have fallen off the deathnettle from violent whacking."
- user.drop_item()
+ user.drop_item(src)
qdel(src)
/obj/item/weapon/grown/deathnettle/changePotency(newValue) //-QualityVan
@@ -215,6 +215,6 @@
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchen/utensil/knife/large) || istype(W, /obj/item/weapon/kitchen/utensil/knife/large/ritual))
user << "You use [W] to fashion a pipe out of the corn cob!"
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
- user.drop_item()
+ user.drop_item(src)
qdel(src)
return
diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm
index b299e129be1..3f1665f997a 100644
--- a/code/modules/hydroponics/hydro_tools.dm
+++ b/code/modules/hydroponics/hydro_tools.dm
@@ -44,11 +44,11 @@
grown_reagents = H.reagents
if(!grown_seed)
- user << "\red [src] can tell you nothing about [target]."
+ user << "[src] can tell you nothing about [target]."
return
var/dat = "
Plant data for [target]
"
- user.visible_message("\blue [user] runs the scanner over [target].")
+ user.visible_message("[user] runs the scanner over [target].")
dat += "
General Data
"
diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm
index 7cb1067cff5..5643bf443c8 100644
--- a/code/modules/hydroponics/hydro_tray.dm
+++ b/code/modules/hydroponics/hydro_tray.dm
@@ -649,7 +649,7 @@
if(!seed)
var/obj/item/seeds/S = O
- user.drop_item()
+ user.drop_item(S)
if(!S.seed)
user << "The packet seems to be empty. You throw it away."
@@ -707,7 +707,7 @@
else if ( istype(O, /obj/item/weapon/plantspray) )
var/obj/item/weapon/plantspray/spray = O
- user.drop_item()
+ user.drop_item(spray)
toxins += spray.toxicity
pestlevel -= spray.pest_kill_str
weedlevel -= spray.weed_kill_str
@@ -733,7 +733,7 @@
if(seed)
user << "[src] is already occupied!"
else
- user.drop_item()
+ user.drop_item(O)
qdel(O)
var/obj/machinery/apiary/A = new(src.loc)
@@ -832,7 +832,7 @@
set category = "Object"
set src in view(1)
- if(!usr || usr.stat || usr.restrained())
+ if(!usr || usr.stat || usr.restrained() || (usr.status_flags & FAKEDEATH))
return
closed_system = !closed_system
diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm
index 9b98c459ce4..45a8d52c4ea 100644
--- a/code/modules/hydroponics/seed_datums.dm
+++ b/code/modules/hydroponics/seed_datums.dm
@@ -316,7 +316,7 @@ proc/populate_seed_list()
if(!degree || immutable > 0) return
- source_turf.visible_message("\blue \The [display_name] quivers!")
+ source_turf.visible_message("\The [display_name] quivers!")
//This looks like shit, but it's a lot easier to read/change this way.
var/total_mutations = rand(1,1+degree)
@@ -325,7 +325,7 @@ proc/populate_seed_list()
if(0) //Plant cancer!
lifespan = max(0,lifespan-rand(1,5))
endurance = max(0,endurance-rand(10,20))
- source_turf.visible_message("\red \The [display_name] withers rapidly!")
+ source_turf.visible_message("\The [display_name] withers rapidly!")
if(1)
nutrient_consumption = max(0, min(5, nutrient_consumption + rand(-(degree*0.1),(degree*0.1))))
water_consumption = max(0, min(50, water_consumption + rand(-degree,degree)))
@@ -344,7 +344,7 @@ proc/populate_seed_list()
if(prob(degree*5))
carnivorous = max(0, min(2, carnivorous + rand(-degree,degree)))
if(carnivorous)
- source_turf.visible_message("\blue \The [display_name] shudders hungrily.")
+ source_turf.visible_message("\The [display_name] shudders hungrily.")
if(6)
weed_tolerance = max(0, min(10, weed_tolerance + (rand(-2,2) * degree)))
if(prob(degree*5)) parasite = !parasite
@@ -358,7 +358,7 @@ proc/populate_seed_list()
potency = max(0, min(200, potency + (rand(-20,20) * degree)))
if(prob(degree*5))
spread = max(0, min(2, spread + rand(-1,1)))
- source_turf.visible_message("\blue \The [display_name] spasms visibly, shifting in the tray.")
+ source_turf.visible_message("\The [display_name] spasms visibly, shifting in the tray.")
if(9)
maturation = max(0, min(30, maturation + (rand(-1,1) * degree)))
if(prob(degree*5))
@@ -367,22 +367,22 @@ proc/populate_seed_list()
if(prob(degree*4))
biolum = !biolum
if(biolum)
- source_turf.visible_message("\blue \The [display_name] begins to glow!")
+ source_turf.visible_message("\The [display_name] begins to glow!")
if(prob(degree*4))
biolum_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
- source_turf.visible_message("\blue \The [display_name]'s glow changes colour!")
+ source_turf.visible_message("\The [display_name]'s glow changes colour!")
else
- source_turf.visible_message("\blue \The [display_name]'s glow dims...")
+ source_turf.visible_message("\The [display_name]'s glow dims...")
if(11)
if(prob(degree*2))
flowers = !flowers
if(flowers)
- source_turf.visible_message("\blue \The [display_name] sprouts a bevy of flowers!")
+ source_turf.visible_message("\The [display_name] sprouts a bevy of flowers!")
if(prob(degree*2))
flower_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
- source_turf.visible_message("\blue \The [display_name]'s flowers changes colour!")
+ source_turf.visible_message("\The [display_name]'s flowers changes colour!")
else
- source_turf.visible_message("\blue \The [display_name]'s flowers wither and fall off.")
+ source_turf.visible_message("\The [display_name]'s flowers wither and fall off.")
return
//Mutates a specific trait/set of traits.
@@ -573,7 +573,7 @@ proc/populate_seed_list()
got_product = 1
if(!got_product && !harvest_sample)
- user << "\red You fail to harvest anything useful."
+ user << "You fail to harvest anything useful."
else
user << "You [harvest_sample ? "take a sample" : "harvest"] from the [display_name]."
@@ -614,7 +614,7 @@ proc/populate_seed_list()
//Handle spawning in living, mobile products (like dionaea).
if(istype(product,/mob/living))
- product.visible_message("\blue The pod disgorges [product]!")
+ product.visible_message("The pod disgorges [product]!")
handle_living_product(product)
// Make sure the product is inheriting the correct seed type reference.
diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm
index 61d60777dad..eabee7081fd 100644
--- a/code/modules/hydroponics/seed_machines.dm
+++ b/code/modules/hydroponics/seed_machines.dm
@@ -92,7 +92,7 @@
if(S.seed && S.seed.immutable > 0)
user << "That seed is not compatible with our genetics technology."
else
- user.drop_item(src)
+ user.drop_item(S, src)
seed = W
user << "You load [W] into [src]."
return
@@ -113,7 +113,7 @@
user << "That disk does not have any gene data loaded."
return
- user.drop_item(src)
+ user.drop_item(W, src)
loaded_disk = W
user << "You load [W] into [src]."
diff --git a/code/modules/hydroponics/seed_mobs.dm b/code/modules/hydroponics/seed_mobs.dm
index e4c02b6b294..27d551b80fd 100644
--- a/code/modules/hydroponics/seed_mobs.dm
+++ b/code/modules/hydroponics/seed_mobs.dm
@@ -14,7 +14,7 @@
if(!host.ckey && !host.client)
host.death() // This seems redundant, but a lot of mobs don't
host.stat = 2 // handle death() properly. Better safe than etc.
- host.visible_message("\red [host] is malformed and unable to survive. It expires pitifully, leaving behind some seeds.")
+ host.visible_message("[host] is malformed and unable to survive. It expires pitifully, leaving behind some seeds.")
var/total_yield = rand(1,3)
for(var/j = 0;j<=total_yield;j++)
@@ -50,7 +50,7 @@
// Update mode specific HUD icons.
callHook("harvest_podman", list(host))
- host << "\green You awaken slowly, stirring into sluggish motion as the air caresses you."
+ host << "You awaken slowly, stirring into sluggish motion as the air caresses you."
// This is a hack, replace with some kind of species blurb proc.
if(istype(host,/mob/living/carbon/monkey/diona))
diff --git a/code/modules/library/computers/checkout.dm b/code/modules/library/computers/checkout.dm
index 0f06a7a4fb8..a4f94ab93b9 100644
--- a/code/modules/library/computers/checkout.dm
+++ b/code/modules/library/computers/checkout.dm
@@ -206,7 +206,7 @@
/obj/machinery/computer/library/checkout/emag(mob/user)
if(!emagged)
src.emagged = 1
- user << "\blue You override the library computer's printing restrictions."
+ user << "You override the library computer's printing restrictions."
return 1
return
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index b4a9298ef63..8cd461dca12 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -34,16 +34,16 @@
/obj/structure/bookcase/attackby(obj/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/book))
- user.drop_item(src)
+ user.drop_item(O, src)
update_icon()
else if(istype(O, /obj/item/weapon/tome))
- user.drop_item(src)
+ user.drop_item(O, src)
update_icon()
else if(istype(O, /obj/item/weapon/spellbook))
- user.drop_item(src)
+ user.drop_item(O, src)
update_icon()
else if(istype(O, /obj/item/weapon/storage/bible))
- user.drop_item(src)
+ user.drop_item(O, src)
update_icon()
else if(istype(O, /obj/item/weapon/wrench))
user << " Now disassembling bookcase"
@@ -213,7 +213,7 @@
if(carved)
if(!store)
if(W.w_class < 3)
- user.drop_item(src)
+ user.drop_item(W, src)
store = W
user << "You put [W] in [title]."
return
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 79ac11deaf6..e9e5b6c2b9f 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -136,7 +136,7 @@ var/global/list/library_section_names = list("Any", "Fiction", "Non-Fiction", "A
/obj/machinery/libraryscanner/attackby(var/obj/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/book))
- user.drop_item(src)
+ user.drop_item(O, src)
else
return ..()
@@ -191,7 +191,7 @@ var/global/list/library_section_names = list("Any", "Fiction", "Non-Fiction", "A
/obj/machinery/bookbinder/attackby(var/obj/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/paper) || istype(O, /obj/item/weapon/paper/nano))
- user.drop_item(src)
+ user.drop_item(O, src)
user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].")
src.visible_message("[src] begins to hum as it warms up its printing drums.")
sleep(rand(200,400))
diff --git a/code/modules/media/broadcast/receivers/radio.dm b/code/modules/media/broadcast/receivers/radio.dm
index efe4302c6cd..a8ea4824413 100644
--- a/code/modules/media/broadcast/receivers/radio.dm
+++ b/code/modules/media/broadcast/receivers/radio.dm
@@ -14,7 +14,7 @@
/obj/machinery/media/receiver/boombox/attack_hand(var/mob/user)
if(stat & (NOPOWER|BROKEN))
- usr << "\red You don't see anything to mess with."
+ usr << "You don't see anything to mess with."
return
user.set_machine(src)
interact(user)
@@ -43,7 +43,7 @@
/obj/machinery/media/receiver/boombox/Topic(href,href_list)
if(isobserver(usr) && !isAdminGhost(usr))
- usr << "\red You can't push buttons when your fingers go right through them, dummy."
+ usr << "You can't push buttons when your fingers go right through them, dummy."
return
..()
if("power" in href_list)
@@ -63,7 +63,7 @@
media_frequency = newfreq
connect_frequency()
else
- usr << "\red Invalid FM frequency. (90.0, 200.0)"
+ usr << "Invalid FM frequency. (90.0, 200.0)"
if("set_volume" in href_list)
var/vol=volume
if(href_list["set_volume"]!="-1")
@@ -78,7 +78,7 @@
volume = vol
update_music()
else
- usr << "\red Invalid volume."
+ usr << "Invalid volume."
updateDialog()
diff --git a/code/modules/media/broadcast/transmitters/broadcast.dm b/code/modules/media/broadcast/transmitters/broadcast.dm
index 298f73bab6b..4f649cd92dc 100644
--- a/code/modules/media/broadcast/transmitters/broadcast.dm
+++ b/code/modules/media/broadcast/transmitters/broadcast.dm
@@ -151,7 +151,7 @@
media_frequency = newfreq
connect_frequency()
else
- usr << "\red Invalid FM frequency. (90.0, 200.0)"
+ usr << "Invalid FM frequency. (90.0, 200.0)"
/obj/machinery/media/transmitter/broadcast/process()
if(stat & (NOPOWER|BROKEN))
diff --git a/code/modules/media/jukebox.dm b/code/modules/media/jukebox.dm
index 0ebd2f951cc..80446c35fd6 100644
--- a/code/modules/media/jukebox.dm
+++ b/code/modules/media/jukebox.dm
@@ -230,10 +230,10 @@ var/global/loopModeNames=list(
/obj/machinery/media/jukebox/attack_hand(var/mob/user)
if(stat & NOPOWER)
- usr << "\red You don't see anything to mess with."
+ usr << "You don't see anything to mess with."
return
if(stat & BROKEN && playlist!=null)
- user.visible_message("\red [user.name] smacks the side of \the [src.name].","\red You hammer the side of \the [src.name].")
+ user.visible_message("[user.name] smacks the side of \the [src.name].","You hammer the side of \the [src.name].")
stat &= ~BROKEN
playlist=null
playing=emagged
@@ -359,20 +359,20 @@ var/global/loopModeNames=list(
..()
if(istype(W,/obj/item/weapon/card/id))
if(!selected_song || screen!=JUKEBOX_SCREEN_PAYMENT)
- visible_message("\blue The machine buzzes.","\red You hear a buzz.")
+ visible_message("The machine buzzes.","You hear a buzz.")
return
var/obj/item/weapon/card/id/I = W
if(!linked_account)
- visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
return
var/datum/money_account/acct = get_card_account(I)
if(!acct)
- visible_message("\red The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.","You hear a buzz.")
return
if(credits_needed > acct.money)
- visible_message("\red The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
return
- visible_message("\blue The machine beeps happily.","You hear a beep.")
+ visible_message("The machine beeps happily.","You hear a beep.")
acct.charge(credits_needed,linked_account,"Song selection at [areaMaster.name]'s [name].")
credits_needed = 0
@@ -381,15 +381,15 @@ var/global/loopModeNames=list(
attack_hand(user)
else if(istype(W,/obj/item/weapon/spacecash))
if(!selected_song || screen!=JUKEBOX_SCREEN_PAYMENT)
- visible_message("\blue The machine buzzes.","\red You hear a buzz.")
+ visible_message("The machine buzzes.","You hear a buzz.")
return
if(!linked_account)
- visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
+ visible_message("The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
return
var/obj/item/weapon/spacecash/C=W
credits_held += C.worth*C.amount
if(credits_held >= credits_needed)
- visible_message("\blue The machine beeps happily.","You hear a beep.")
+ visible_message("The machine beeps happily.","You hear a beep.")
credits_held -= credits_needed
credits_needed=0
screen=JUKEBOX_SCREEN_MAIN
@@ -412,7 +412,7 @@ var/global/loopModeNames=list(
loop_mode = JUKEMODE_SHUFFLE
emagged = 1
playing = 1
- user.visible_message("\red [user.name] slides something into the [src.name]'s card-reader.","\red You short out the [src.name].")
+ user.visible_message("[user.name] slides something into the [src.name]'s card-reader.","You short out the [src.name].")
update_icon()
update_music()
return 1
@@ -431,11 +431,11 @@ var/global/loopModeNames=list(
/obj/machinery/media/jukebox/Topic(href, href_list)
if(isobserver(usr) && !isAdminGhost(usr))
- usr << "\red You can't push buttons when your fingers go right through them, dummy."
+ usr << "You can't push buttons when your fingers go right through them, dummy."
return
if(..()) return 1
if(emagged)
- usr << "\red You touch the bluescreened menu. Nothing happens. You feel dumber."
+ usr << "You touch the bluescreened menu. Nothing happens. You feel dumber."
return
if (href_list["power"])
@@ -445,7 +445,7 @@ var/global/loopModeNames=list(
if("screen" in href_list)
if(isobserver(usr) && !canGhostWrite(usr,src,""))
- usr << "\red You can't do that."
+ usr << "You can't do that."
return
screen=text2num(href_list["screen"])
@@ -453,11 +453,11 @@ var/global/loopModeNames=list(
switch(href_list["act"])
if("Save Settings")
if(isobserver(usr) && !canGhostWrite(usr,src,"saved settings for"))
- usr << "\red You can't do that."
+ usr << "You can't do that."
return
var/datum/money_account/new_linked_account = get_money_account(text2num(href_list["payableto"]),z)
if(!new_linked_account)
- usr << "\red Unable to link new account. Aborting."
+ usr << "Unable to link new account. Aborting."
return
change_cost = max(0,text2num(href_list["set_change_cost"]))
@@ -471,10 +471,10 @@ var/global/loopModeNames=list(
if (href_list["playlist"])
if(isobserver(usr) && !canGhostWrite(usr,src,""))
- usr << "\red You can't do that."
+ usr << "You can't do that."
return
if(!check_reload())
- usr << "\red You must wait 60 seconds between playlist reloads."
+ usr << "You must wait 60 seconds between playlist reloads."
return
playlist_id=href_list["playlist"]
if(isAdminGhost(usr))
@@ -489,7 +489,7 @@ var/global/loopModeNames=list(
if (href_list["song"])
if(isobserver(usr) && !canGhostWrite(usr,src,""))
- usr << "\red You can't do that."
+ usr << "You can't do that."
return
selected_song=Clamp(text2num(href_list["song"]),1,playlist.len)
if(isAdminGhost(usr))
@@ -502,7 +502,7 @@ var/global/loopModeNames=list(
update_music()
update_icon()
else
- usr << "\red Swipe card or insert $[num2septext(change_cost)] to set this song."
+ usr << "Swipe card or insert $[num2septext(change_cost)] to set this song."
screen = JUKEBOX_SCREEN_PAYMENT
credits_needed=change_cost
@@ -642,7 +642,7 @@ var/global/loopModeNames=list(
/obj/machinery/media/jukebox/superjuke/attackby(obj/item/W, mob/user)
// NO FUN ALLOWED. Emag list is included, anyway.
if(istype(W, /obj/item/weapon/card/emag))
- user << "\red Your [W] refuses to touch \the [src]!"
+ user << "Your [W] refuses to touch \the [src]!"
return
..()
diff --git a/code/modules/media/mediamanager.dm b/code/modules/media/mediamanager.dm
index 954c0c3b1bd..c39ecb4a2b0 100644
--- a/code/modules/media/mediamanager.dm
+++ b/code/modules/media/mediamanager.dm
@@ -163,7 +163,7 @@ function SetMusic(url, time, volume) {
proc/send_update()
if(!(owner.prefs.toggles & SOUND_STREAMING) && url != "")
return // Nope.
- MP_DEBUG("\green Sending update to VLC ([url])...")
+ MP_DEBUG("Sending update to VLC ([url])...")
owner << output(list2params(list(url, (world.time - start_time) / 10, volume*source_volume)), "[window]:SetMusic")
proc/push_music(var/targetURL,var/targetStartTime,var/targetVolume)
diff --git a/code/modules/media/tapedeck.dm b/code/modules/media/tapedeck.dm
index 227f8753bbe..44962cae202 100644
--- a/code/modules/media/tapedeck.dm
+++ b/code/modules/media/tapedeck.dm
@@ -80,10 +80,10 @@
/obj/machinery/media/tapedeck/attack_hand(var/mob/user)
if(stat & NOPOWER)
- usr << "\red You don't see anything to mess with."
+ usr << "You don't see anything to mess with."
return
if(stat & BROKEN && playlist!=null)
- user.visible_message("\red [user.name] smacks the side of \the [src.name].","\red You hammer the side of \the [src.name].")
+ user.visible_message("[user.name] smacks the side of \the [src.name].","You hammer the side of \the [src.name].")
stat &= ~BROKEN
playlist=null
playing=emagged
@@ -200,23 +200,23 @@
loop_mode = JUKEMODE_SHUFFLE
emagged = 1
playing = 1
- user.visible_message("\red [user.name] slides something into the [src.name]'s card-reader.","\red You short out the [src.name].")
+ user.visible_message("[user.name] slides something into the [src.name]'s card-reader.","You short out the [src.name].")
update_icon()
update_music()
else if(istype(W,/obj/item/weapon/wrench))
var/un = !anchored ? "" : "un"
- user.visible_message("\blue [user.name] begins [un]locking \the [src.name]'s casters.","\blue You begin [un]locking \the [src.name]'s casters.")
+ user.visible_message("[user.name] begins [un]locking \the [src.name]'s casters.","You begin [un]locking \the [src.name]'s casters.")
if(do_after(user,30))
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
anchored = !anchored
- user.visible_message("\blue [user.name] [un]locks \the [src.name]'s casters.","\red You [un]lock \the [src.name]'s casters.")
+ user.visible_message("[user.name] [un]locks \the [src.name]'s casters.","You [un]lock \the [src.name]'s casters.")
playing = emagged
update_music()
update_icon()
/obj/machinery/media/jukebox/Topic(href, href_list)
if(isobserver(usr) && !isAdminGhost(usr))
- usr << "\red You can't push buttons when your fingers go right through them, dummy."
+ usr << "You can't push buttons when your fingers go right through them, dummy."
return
if(..()) return 1
@@ -234,7 +234,7 @@
if("Save Settings")
var/datum/money_account/new_linked_account = get_money_account(text2num(href_list["payableto"]),z)
if(!new_linked_account)
- usr << "\red Unable to link new account. Aborting."
+ usr << "Unable to link new account. Aborting."
return
change_cost = max(0,text2num(href_list["set_change_cost"]))
@@ -250,7 +250,7 @@
if (href_list["playlist"])
if(!check_reload())
- usr << "\red You must wait 60 seconds between playlist reloads."
+ usr << "You must wait 60 seconds between playlist reloads."
return
playlist_id=href_list["playlist"]
last_reload=world.time
@@ -402,7 +402,7 @@
/obj/machinery/media/jukebox/superjuke/attackby(obj/item/W, mob/user)
// NO FUN ALLOWED. Emag list is included, anyway.
if(istype(W, /obj/item/weapon/card/emag))
- user << "\red Your [W] refuses to touch \the [src]!"
+ user << "Your [W] refuses to touch \the [src]!"
return
..()
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index a6e63b06735..d908976523a 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -39,7 +39,7 @@
return
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
- usr.drop_item(src)
+ usr.drop_item(I, src)
inserted_id = I
/obj/machinery/mineral/ore_redemption/proc/process_sheet(var/obj/item/weapon/ore/O)
@@ -140,7 +140,7 @@
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
- usr.drop_item(src)
+ usr.drop_item(I, src)
inserted_id = I
else
usr << "No valid ID."
@@ -259,7 +259,7 @@
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
- usr.drop_item(src)
+ usr.drop_item(I, src)
inserted_id = I
else usr << "No valid ID."
if(href_list["purchase"])
@@ -291,7 +291,7 @@
if(istype(W,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
- usr.drop_item(src)
+ usr.drop_item(I, src)
inserted_id = I
return
..()
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index f21a65e8ef2..df3c833d06f 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -390,7 +390,7 @@
var/obj/effect/suspension_field/S = locate() in src
if(!S || S.field_type != get_responsive_reagent(F.find_type))
if(X)
- visible_message("\red[pick("[display_name] crumbles away into dust","[display_name] breaks apart")].")
+ visible_message("[pick("[display_name] crumbles away into dust","[display_name] breaks apart")].")
del(X)
finds.Remove(F)
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 092bcc14fbf..16850d8535f 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -159,7 +159,7 @@ a.notsmelting {
usr.set_machine(src)
src.add_fingerprint(usr)
if(processing==1)
- usr << "\blue The machine is processing."
+ usr << "The machine is processing."
return
if(href_list["choose"])
chosen = href_list["choose"]
diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm
index 2262dc77dcb..6abb91b8b7f 100644
--- a/code/modules/mining/money_bag.dm
+++ b/code/modules/mining/money_bag.dm
@@ -36,13 +36,13 @@
..()
if (istype(W, /obj/item/weapon/coin))
var/obj/item/weapon/coin/C = W
- user << "\blue You add the [C.name] into the bag."
- usr.drop_item(src)
+ user << "You add the [C.name] into the bag."
+ usr.drop_item(W, src)
if (istype(W, /obj/item/weapon/moneybag))
var/obj/item/weapon/moneybag/C = W
for (var/obj/O in C.contents)
contents += O;
- user << "\blue You empty the [C.name] into the bag."
+ user << "You empty the [C.name] into the bag."
return
/obj/item/weapon/moneybag/Topic(href, href_list)
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 341efbc44fa..3d88ad0b555 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -381,17 +381,17 @@
if(istype(W,/obj/item/stack/cable_coil) )
var/obj/item/stack/cable_coil/CC = W
if(string_attached)
- user << "\blue There already is a string attached to this coin."
+ user << "There already is a string attached to this coin."
return
if(CC.amount <= 0)
- user << "\blue This cable coil appears to be empty."
+ user << "This cable coil appears to be empty."
del(CC)
return
overlays += image('icons/obj/items.dmi',"coin_string_overlay")
string_attached = 1
- user << "\blue You attach a string to the coin."
+ user << "You attach a string to the coin."
CC.use(1)
else if(istype(W,/obj/item/weapon/wirecutters) )
if(!string_attached)
@@ -403,5 +403,5 @@
CC.update_icon()
overlays = list()
string_attached = null
- user << "\blue You detach the string from the coin."
+ user << "You detach the string from the coin."
else ..()
diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm
index da902ac5d43..e8e0f173f17 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -29,7 +29,7 @@
S.remove_from_storage(O,T) //This will remove the item.
materials.addAmount(O.material, 1)
qdel(O)
- user << "\blue You empty \the [W] into the box."
+ user << "You empty \the [W] into the box."
return
/obj/structure/ore_box/attack_hand(mob/user as mob)
@@ -54,7 +54,7 @@
for(var/i=0;iYou empty the box"
src.updateUsrDialog()
return
diff --git a/code/modules/mob/abilities.dm b/code/modules/mob/abilities.dm
index e5e2be9af0b..2918a79c3f9 100644
--- a/code/modules/mob/abilities.dm
+++ b/code/modules/mob/abilities.dm
@@ -16,20 +16,20 @@ Creature-level abilities.
// Check if the client has a mob and if the mob is valid and alive.
if(!mob || !istype(mob,/mob/living) || mob.stat)
- src << "\red You must be corporeal and alive to do that."
+ src << "You must be corporeal and alive to do that."
return 0
//Handcuff check.
if(mob.restrained())
- src << "\red You cannot do this while restrained."
+ src << "You cannot do this while restrained."
return 0
if(istype(mob,/mob/living/carbon))
var/mob/living/carbon/M = mob
if(M.handcuffed)
- src << "\red You cannot do this while cuffed."
+ src << "You cannot do this while cuffed."
return 0
- src << "\blue You perform an ability."
+ src << "You perform an ability."
*/
\ No newline at end of file
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 33801f9d693..6bb41dbbc7d 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -390,23 +390,23 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
if(medHUD)
medHUD = 0
- src << "\blue Medical HUD Disabled"
+ src << "Medical HUD Disabled"
else
medHUD = 1
- src << "\blue Medical HUD Enabled"
+ src << "Medical HUD Enabled"
/mob/dead/observer/verb/toggle_antagHUD()
set category = "Ghost"
set name = "Toggle AntagHUD"
set desc = "Toggles AntagHUD allowing you to see who is the antagonist"
if(!config.antag_hud_allowed && !client.holder)
- src << "\red Admins have disabled this for this round."
+ src << "Admins have disabled this for this round."
return
if(!client)
return
var/mob/dead/observer/M = src
if(jobban_isbanned(M, "AntagHUD"))
- src << "\red You have been banned from using this feature"
+ src << "You have been banned from using this feature"
return
if(config.antag_hud_restricted && !M.has_enabled_antagHUD &&!client.holder)
var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No")
@@ -416,10 +416,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
M.has_enabled_antagHUD = 1
if(M.antagHUD)
M.antagHUD = 0
- src << "\blue AntagHUD Disabled"
+ src << "AntagHUD Disabled"
else
M.antagHUD = 1
- src << "\blue AntagHUD Enabled"
+ src << "AntagHUD Enabled"
/mob/dead/observer/proc/dead_tele()
set category = "Ghost"
@@ -552,11 +552,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/memory()
set hidden = 1
- src << "\red You are dead! You have no mind to store memory!"
+ src << "You are dead! You have no mind to store memory!"
/mob/dead/observer/add_memory()
set hidden = 1
- src << "\red You are dead! You have no mind to store memory!"
+ src << "You are dead! You have no mind to store memory!"
/mob/dead/observer/verb/analyze_air()
set name = "Analyze Air"
@@ -573,11 +573,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/pressure = environment.return_pressure()
var/total_moles = environment.total_moles()
- src << "\blue Results:"
+ src << "Results:"
if(abs(pressure - ONE_ATMOSPHERE) < 10)
- src << "\blue Pressure: [round(pressure,0.1)] kPa"
+ src << "Pressure: [round(pressure,0.1)] kPa"
else
- src << "\red Pressure: [round(pressure,0.1)] kPa"
+ src << "Pressure: [round(pressure,0.1)] kPa"
if(total_moles)
var/o2_concentration = environment.oxygen/total_moles
var/n2_concentration = environment.nitrogen/total_moles
@@ -586,28 +586,28 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
if(abs(n2_concentration - N2STANDARD) < 20)
- src << "\blue Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)"
+ src << "Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)"
else
- src << "\red Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)"
+ src << "Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)"
if(abs(o2_concentration - O2STANDARD) < 2)
- src << "\blue Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)"
+ src << "Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)"
else
- src << "\red Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)"
+ src << "Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)"
if(co2_concentration > 0.01)
- src << "\red CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)"
+ src << "CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)"
else
- src << "\blue CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)"
+ src << "CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)"
if(plasma_concentration > 0.01)
- src << "\red Plasma: [round(plasma_concentration*100)]% ([round(environment.toxins,0.01)] moles)"
+ src << "Plasma: [round(plasma_concentration*100)]% ([round(environment.toxins,0.01)] moles)"
if(unknown_concentration > 0.01)
- src << "\red Unknown: [round(unknown_concentration*100)]% ([round(unknown_concentration*total_moles,0.01)] moles)"
+ src << "Unknown: [round(unknown_concentration*100)]% ([round(unknown_concentration*total_moles,0.01)] moles)"
- src << "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C"
- src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]"
+ src << "Temperature: [round(environment.temperature-T0C,0.1)]°C"
+ src << "Heat Capacity: [round(environment.heat_capacity(),0.1)]"
/mob/dead/observer/verb/toggle_darkness()
@@ -675,7 +675,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
if(!(config.cult_ghostwriter))
- src << "\red That verb is not currently permitted."
+ src << "That verb is not currently permitted."
return
if (!src.stat)
@@ -691,7 +691,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
ghosts_can_write = 1
if(!ghosts_can_write)
- src << "\red The veil is not thin enough for you to do that."
+ src << "The veil is not thin enough for you to do that."
return
var/list/choices = list()
@@ -742,7 +742,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
W.update_icon()
W.message = message
W.add_hiddenprint(src)
- W.visible_message("\red Invisible fingers crudely paint something in blood on [T]...")
+ W.visible_message("Invisible fingers crudely paint something in blood on [T]...")
diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index 18db5761c28..79fabeadbe8 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -8,7 +8,7 @@
if (src.client)
if(src.client.prefs.muted & MUTE_DEADCHAT)
- src << "\red You cannot talk in deadchat (muted)."
+ src << "You cannot talk in deadchat (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index e873bc0e553..2a8673976d0 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -49,11 +49,11 @@
/mob/proc/emote_dead(var/message)
if(client.prefs.muted & MUTE_DEADCHAT)
- src << "\red You cannot send deadchat emotes (muted)."
+ src << "You cannot send deadchat emotes (muted)."
return
if(!(client.prefs.toggles & CHAT_DEAD))
- src << "\red You have deadchat muted."
+ src << "You have deadchat muted."
return
var/input
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 95667c0d735..8d085876ce3 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -130,61 +130,30 @@
return 1
return 0
+//Drops the item in our hand - you can specify an item and a location to drop to
+/mob/proc/drop_item(var/obj/item/to_drop, var/atom/Target)
+ if(!to_drop) //if we're not told to drop something specific
+ to_drop = get_active_hand() //drop what we're currently holding
-//Drops the item in our left hand
-/mob/proc/drop_l_hand(var/atom/Target)
- if(l_hand)
- if(client) client.screen -= l_hand
- l_hand.layer = initial(l_hand.layer)
+ if(!to_drop) //still nothing to drop?
+ return 0 //bail
- if(Target) l_hand.loc = Target
- else l_hand.loc = loc
+ if(!Target)
+ Target = src.loc
- var/turf/T = get_turf(l_hand)
- if(isturf(T) && l_hand.loc == T)
- T.Entered(l_hand)
+ remove_from_mob(to_drop) //clean out any refs
- l_hand.dropped(src)
- if(l_hand)
- l_hand.layer = initial(l_hand.layer)
- l_hand = null
- update_inv_l_hand()
+ to_drop.forceMove(Target) //calls the Entered procs
+
+ to_drop.dropped(src)
+
+ if(to_drop && to_drop.loc)
return 1
return 0
-//Drops the item in our right hand
-/mob/proc/drop_r_hand(var/atom/Target)
- if(r_hand)
- if(client) client.screen -= r_hand
- r_hand.layer = initial(r_hand.layer)
-
- if(Target) r_hand.loc = Target
- else r_hand.loc = loc
-
- var/turf/T = get_turf(r_hand)
- if(istype(T) && r_hand.loc == T)
- T.Entered(r_hand)
-
- r_hand.dropped(src)
- if(r_hand)
- r_hand.layer = initial(r_hand.layer)
- r_hand = null
- update_inv_r_hand()
- return 1
- return 0
-
-//Drops the item in our active hand.
-/mob/proc/drop_item(var/atom/Target)
- if(hand) return drop_l_hand(Target)
- else return drop_r_hand(Target)
-
-
-
-
-
-
-
-
+/mob/proc/drop_hands(var/atom/Target) //drops both items
+ drop_item(get_active_hand(), Target)
+ drop_item(get_inactive_hand(), Target)
//TODO: phase out this proc
/mob/proc/before_take_item(var/obj/item/W) //TODO: what is this?
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index f1bfc3dcc4c..f9a17aa4fd4 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -52,7 +52,7 @@ Doesn't work on other aliens/AI.*/
var/msg = sanitize(input("Message:", "Alien Whisper") as text|null)
if(msg)
log_say("AlienWhisper: [key_name(src)](@[src.x],[src.y],[src.z])->[M.key] (@[M.x],[M.y],[M.z]): [msg]")
- M << "You hear a strange, alien voice in your head... \italic [msg]"
+ M << "You hear a strange, alien voice in your head... [msg]"
src << "You said: [msg] to [M]"
return
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index eee6b8763a1..450a9a9cf3e 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -66,7 +66,7 @@
adjustToxLoss(-50)
alien_invis = 1.0
update_icons()
- src << "\green You are now invisible."
+ src << "You are now invisible."
visible_message("\The [src] fades into the surroundings!", "You are now invisible")
spawn(250)
if(!isnull(src)) //Don't want the game to runtime error when the mob no-longer exists.
diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
index 5aebc880117..ee48a458b22 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
@@ -79,8 +79,7 @@
wear_suit.screen_loc = ui_alien_oclothing
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
drop_from_inventory(handcuffed)
- drop_r_hand()
- drop_l_hand()
+ drop_hands()
overlays_lying[X_SUIT_LAYER] = lying
overlays_standing[X_SUIT_LAYER] = standing
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 7589af507da..16d8f8921b4 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -285,7 +285,7 @@
var/damage = rand(1, 3)
for(var/mob/O in viewers(src, null))
if((O.client && !( O.blinded )))
- O.show_message(text("\red [M.name] has bit []!", src), 1)
+ O.show_message(text("[M.name] has bit []!", src), 1)
adjustBruteLoss(damage)
updatehealth()
else
diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm
index 80ad90b8fe1..ed42fa0abee 100644
--- a/code/modules/mob/living/carbon/alien/larva/powers.dm
+++ b/code/modules/mob/living/carbon/alien/larva/powers.dm
@@ -24,7 +24,7 @@
//Seems about right
//if(handcuffed || legcuffed)
- //src << "\red You cannot evolve when you are cuffed."
+ //src << "You cannot evolve when you are cuffed."
if(amount_grown >= max_grown) //TODO ~Carn
//green is impossible to read, so i made these blue and changed the formatting slightly
diff --git a/code/modules/mob/living/carbon/alien/special/snakeman.dm b/code/modules/mob/living/carbon/alien/special/snakeman.dm
index d1d55895d88..55bb13d4be7 100644
--- a/code/modules/mob/living/carbon/alien/special/snakeman.dm
+++ b/code/modules/mob/living/carbon/alien/special/snakeman.dm
@@ -26,7 +26,7 @@
visible_message("[src] extends a probiscis and stabs it into [M]")
if (!do_mob(usr, M, 50))
- usr << "\red The injection of the egg has been interrupted!"
+ usr << "The injection of the egg has been interrupted!"
return
if(M.client)
diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm
index 5a52bd6a44f..d4b309ab677 100644
--- a/code/modules/mob/living/carbon/brain/MMI.dm
+++ b/code/modules/mob/living/carbon/brain/MMI.dm
@@ -33,7 +33,7 @@
var/req=mommi_assembly_parts[t]
if(ccYou're short [req-cc] [temppart]\s."
del(temppart)
return TRUE
if(!istype(loc,/turf))
@@ -90,8 +90,7 @@
user << "Why are you sticking robot legs on an empty [src], you idiot?"
return TRUE
contents += O
- user.drop_item()
- O.loc=src
+ user.drop_item(O, src)
user << "You successfully add \the [O] to the contraption,"
return TRUE
else if(cc==mommi_assembly_parts[t])
@@ -116,7 +115,7 @@
dead_mob_list -= brainmob//Update dem lists
living_mob_list += brainmob
- user.drop_item()
+ user.drop_item(O)
del(O)
name = "Man-Machine Interface: [brainmob.real_name]"
diff --git a/code/modules/mob/living/carbon/brain/MaMI.dm b/code/modules/mob/living/carbon/brain/MaMI.dm
index 6d615964a9a..f1ec1a5a5f0 100644
--- a/code/modules/mob/living/carbon/brain/MaMI.dm
+++ b/code/modules/mob/living/carbon/brain/MaMI.dm
@@ -24,8 +24,7 @@
src.brainmob << "As a synthetic intelligence, you answer to all crewmembers, as well as the AI."
src.brainmob << "Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm."
- user.drop_item()
- posibrain.loc = src
+ user.drop_item(posibrain, src)
name = "Machine-Man Interface: [brainmob.real_name]"
icon_state = "mami_full"
diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm
index f2ed1b463f4..b57155d668b 100644
--- a/code/modules/mob/living/carbon/brain/death.dm
+++ b/code/modules/mob/living/carbon/brain/death.dm
@@ -2,7 +2,7 @@
if(stat == DEAD) return
if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container.
for(var/mob/O in viewers(container, null))
- O.show_message(text("\red []'s MMI flatlines!", src), 1, "\red You hear something flatline.", 2)
+ O.show_message(text("[]'s MMI flatlines!", src), 1, "You hear something flatline.", 2)
if(!istype(container, /obj/item/device/mmi/posibrain))
container.icon_state = "mmi_dead"
else
diff --git a/code/modules/mob/living/carbon/brain/emote.dm b/code/modules/mob/living/carbon/brain/emote.dm
index 3c7fe16ca5f..83135064125 100644
--- a/code/modules/mob/living/carbon/brain/emote.dm
+++ b/code/modules/mob/living/carbon/brain/emote.dm
@@ -17,7 +17,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
- src << "\red You cannot send IC messages (muted)."
+ src << "You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
@@ -62,7 +62,7 @@
if ("help")
src << "alarm,alert,notice,flash,blink,whistle,beep,boop"
else
- src << "\blue Unusable emote '[act]'. Say *help for a list."
+ src << "Unusable emote '[act]'. Say *help for a list."
if (message)
log_emote("[name]/[key] (@[x],[y],[z]): [message]")
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index 2045eafdc18..2d33533b427 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -41,9 +41,9 @@
if (radiation > 100)
radiation = 100
if(!container)//If it's not in an MMI
- src << "\red You feel weak."
+ src << "You feel weak."
else//Fluff-wise, since the brain can't detect anything itself, the MMI handles thing like that
- src << "\red STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED."
+ src << "STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED."
switch(radiation)
if(1 to 49)
@@ -58,9 +58,9 @@
if(prob(5))
radiation -= 5
if(!container)
- src << "\red You feel weak."
+ src << "You feel weak."
else
- src << "\red STATUS: DANGEROUS LEVELS OF RADIATION DETECTED."
+ src << "STATUS: DANGEROUS LEVELS OF RADIATION DETECTED."
updatehealth()
if(75 to 100)
@@ -150,7 +150,7 @@
silent = 1
if(!alert)//Sounds an alarm, but only once per 'level'
emote("alarm")
- src << "\red Major electrical distruption detected: System rebooting."
+ src << "Major electrical distruption detected: System rebooting."
alert = 1
if(prob(75))
emp_damage -= 1
@@ -166,7 +166,7 @@
ear_damage = 1
if(!alert)
emote("alert")
- src << "\red Primary systems are now online."
+ src << "Primary systems are now online."
alert = 1
if(prob(50))
emp_damage -= 1
@@ -178,13 +178,13 @@
if(2 to 9)//Low level of EMP damage, has few effects(handled elsewhere)
if(!alert)
emote("notice")
- src << "\red System reboot nearly complete."
+ src << "System reboot nearly complete."
alert = 1
if(prob(25))
emp_damage -= 1
if(1)
alert = 0
- src << "\red All systems restored."
+ src << "All systems restored."
emp_damage -= 1
//Other
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index d862d89e456..730a397f012 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -34,7 +34,7 @@
if(prob(40))
for(var/mob/M in hearers(4, src))
if(M.client)
- M.show_message(text("\red You hear something rumbling inside [src]'s stomach..."), 2)
+ M.show_message(text("You hear something rumbling inside [src]'s stomach..."), 2)
var/obj/item/I = user.get_active_hand()
if(I && I.force)
var/d = rand(round(I.force / 4), I.force)
@@ -50,7 +50,7 @@
src.take_organ_damage(d)
for(var/mob/M in viewers(user, null))
if(M.client)
- M.show_message(text("\red [user] attacks [src]'s stomach wall with the [I.name]!"), 2)
+ M.show_message(text("[user] attacks [src]'s stomach wall with the [I.name]!"), 2)
playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1)
if(prob(src.getBruteLoss() - 50))
@@ -66,7 +66,7 @@
M.loc = src.loc
for(var/mob/N in viewers(src, null))
if(N.client)
- N.show_message(text("\red [M] bursts out of [src]!"), 2)
+ N.show_message(text("[M] bursts out of [src]!"), 2)
. = ..()
/mob/living/carbon/proc/share_contact_diseases(var/mob/M)
@@ -84,7 +84,7 @@
if (M.hand)
temp = M:organs_by_name["l_hand"]
if(temp && !temp.is_usable())
- M << "\red You can't use your [temp.display_name]"
+ M << "You can't use your [temp.display_name]"
return
share_contact_diseases(M)
return
@@ -161,8 +161,8 @@
if(src == M && istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/H = src
src.visible_message( \
- text("\blue [src] examines [].",src.gender==MALE?"himself":"herself"), \
- "\blue You check yourself for injuries." \
+ text("[src] examines [].",src.gender==MALE?"himself":"herself"), \
+ "You check yourself for injuries." \
)
for(var/datum/organ/external/org in H.organs)
@@ -196,7 +196,7 @@
status = "weirdly shapen."
if(status == "")
status = "OK"
- src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.display_name,status),1)
+ src.show_message(text("\t []My [] is [].",status=="OK"?"":"",org.display_name,status),1)
if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
H.play_xylophone()
else if(lying) // /vg/: For hugs. This is how update_icon figgers it out, anyway. - N3X15
@@ -216,8 +216,8 @@
AdjustWeakened(-3)
playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
M.visible_message( \
- "\blue [M] shakes [src] trying to wake [t_him] up!", \
- "\blue You shake [src] trying to wake [t_him] up!", \
+ "[M] shakes [src] trying to wake [t_him] up!", \
+ "You shake [src] trying to wake [t_him] up!", \
)
// BEGIN HUGCODE - N3X
else
@@ -226,8 +226,8 @@
H.w_uniform.add_fingerprint(M)
playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
M.visible_message( \
- "\blue [M] gives [src] a [pick("hug","warm embrace")].", \
- "\blue You hug [src].", \
+ "[M] gives [src] a [pick("hug","warm embrace")].", \
+ "You hug [src].", \
)
reagents.add_reagent("paracetamol", 1)
@@ -258,7 +258,7 @@
if(!v.welded)
vent_found = v
else
- src << "\red That vent is welded."
+ src << "That vent is welded."
if(vent_found)
if(vent_found.network&&vent_found.network.normal_members.len)
@@ -283,7 +283,7 @@
var/turf/startloc = loc
var/obj/selection = input("Select a destination.", "Duct System") as null|anything in sortList(vents)
if(!selection)
- src << "\red You didn't choose anything."
+ src << "You didn't choose anything."
return
if(!do_after(src, 45))
@@ -317,7 +317,7 @@
if(!target_vent) return
if(target_vent.welded) //the vent can be welded while alien scrolled through the list or travelled.
target_vent = vent_found //travel back. No additional time required.
- src << "\red The vent you were heading to appears to be welded."
+ src << "The vent you were heading to appears to be welded."
loc = target_vent.loc
var/area/new_area = get_area(loc)
if(new_area)
@@ -381,7 +381,7 @@
return
if(!istype(loc,/turf))
- src << "\red You can't do that now!"
+ src << "You can't do that now!"
return
if(target.type == /obj/screen) return
@@ -430,7 +430,7 @@
//actually throw it!
if (item)
item.layer = initial(item.layer)
- src.visible_message("\red [src] has thrown [item].")
+ src.visible_message("[src] has thrown [item].")
if((istype(src.loc, /turf/space)) || (src.areaMaster.has_gravity == 0))
var/mob/space_obj=src
@@ -574,7 +574,7 @@
set category = "IC"
if(usr.sleeping)
- usr << "\red You are already sleeping"
+ usr << "You are already sleeping"
return
if(alert(src,"Are you sure you want to sleep for a while?","Sleep","Yes","No") == "Yes")
usr.sleeping = 150 //Long nap of 5 minutes. Those are MC TICKS. Don't get fooled
@@ -596,8 +596,8 @@
if(B.controlling)
if(rptext)
- src << "\red You withdraw your probosci, releasing control of [B.host_brain]"
- B.host_brain << "\red Your vision swims as the alien parasite releases control of your body."
+ src << "You withdraw your probosci, releasing control of [B.host_brain]"
+ B.host_brain << "Your vision swims as the alien parasite releases control of your body."
B.ckey = ckey
B.controlling = 0
if(B.host_brain.ckey)
@@ -622,8 +622,8 @@
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!"
+ src << "You send a punishing spike of psychic agony lancing into your host's brain."
+ B.host_brain << "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()
@@ -645,14 +645,14 @@
return
if(B.chemicals >= 100)
- src << "\red You strain, trying to push out your young..."
+ src << "You strain, trying to push out your young..."
var/mob/dead/observer/O = B.request_player()
if(!O)
// No spaceghoasts.
src << "Your young are not ready yet."
else
- src << "\red Your host twitches and quivers as you rapidly excrete several larvae from your sluglike body."
- visible_message("\red [src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!")
+ src << "Your host twitches and quivers as you rapidly excrete several larvae from your sluglike body."
+ visible_message("[src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!")
B.chemicals -= 100
B.numChildren++
@@ -669,3 +669,8 @@
/mob/living/carbon/is_muzzled()
return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
+
+
+/mob/living/carbon/proc/isInCrit()
+ // Health is in deep shit and we're not already dead
+ return (health < config.health_threshold_crit) && stat != 2
diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm
index 988b8b4d29a..82e11e5c5e1 100644
--- a/code/modules/mob/living/carbon/give.dm
+++ b/code/modules/mob/living/carbon/give.dm
@@ -37,7 +37,7 @@
user << "Their hands are full."
return
else
- user.drop_item()
+ user.drop_item(I)
src.put_in_hands(I)
I.loc = src
I.layer = 20
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 3f34317138a..c6209bdb766 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -584,9 +584,9 @@
for(var/mob/M in view(1))
if(M != src)
if(!miming)
- visible_message("\red [src] farts in [M]'s face!")
+ visible_message("[src] farts in [M]'s face!")
else
- visible_message("\red [src] silently farts in [M]'s face!")
+ visible_message("[src] silently farts in [M]'s face!")
else
continue
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index b484472b9a9..7552d9ac824 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -189,7 +189,7 @@
switch(jitteriness)
if(JITTER_HIGH to INFINITY)
- msg += "[t_He] [t_is] convulsing violently!\n"
+ msg += "[t_He] [t_is] convulsing violently!\n"
if(JITTER_MEDIUM to JITTER_HIGH)
msg += "[t_He] [t_is] extremely jittery.\n"
if(1 to JITTER_MEDIUM)
@@ -213,7 +213,7 @@
if(distance <= 3)
if(!has_brain())
msg += "[t_He] has had [t_his] brain removed.\n"
- if (src.stat)
+ if (src.stat || (status_flags & FAKEDEATH))
msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n"
if((stat == 2 || src.health < config.health_threshold_crit || status_flags & FAKEDEATH) && distance <= 3)
msg += "[t_He] does not appear to be breathing.\n"
@@ -222,7 +222,7 @@
O.show_message("[user] checks [src]'s pulse.", 1)
spawn(15)
if(distance <= 1 && user.stat != 1)
- if(pulse == PULSE_NONE)
+ if(pulse == PULSE_NONE || (status_flags & FAKEDEATH))
user << "[t_He] has no pulse[src.client ? "" : " and [t_his] soul has departed"]..."
else
user << "[t_He] has a pulse!"
@@ -255,7 +255,7 @@
if(temp)
if(temp.status & ORGAN_DESTROYED)
is_destroyed["[temp.display_name]"] = 1
- wound_flavor_text["[temp.display_name]"] = "[t_He] is missing [t_his] [temp.display_name].\n"
+ wound_flavor_text["[temp.display_name]"] = "[t_He] is missing [t_his] [temp.display_name].\n"
continue
if(temp.status & ORGAN_PEG)
if(!(temp.brute_dam + temp.burn_dam))
@@ -400,11 +400,11 @@
else if(is_bleeding["right foot"])
display_shoes = 1
if(display_chest)
- msg += "[src] has blood soaking through from under [t_his] clothing!\n"
+ msg += "[src] has blood soaking through from under [t_his] clothing!\n"
if(display_shoes)
- msg += "[src] has blood running from [t_his] shoes!\n"
+ msg += "[src] has blood running from [t_his] shoes!\n"
if(display_gloves)
- msg += "[src] has blood running from under [t_his] gloves!\n"
+ msg += "[src] has blood running from under [t_his] gloves!\n"
for(var/implant in get_visible_implants(1))
msg += "[src] has \a [implant] sticking out of [t_his] flesh!\n"
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 6955beae225..06bf05a0a1c 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1055,10 +1055,10 @@
var/obj/item/clothing/head/headwear = src.head
var/obj/item/clothing/glasses/eyewear = src.glasses
- if (headwear)
+ if (istype(headwear))
. += headwear.eyeprot
- if (eyewear)
+ if (istype(eyewear))
. += eyewear.eyeprot
return Clamp(., -1, 2)
@@ -1102,29 +1102,30 @@
xylophone=0
return
-/mob/living/carbon/human/proc/vomit(hairball=0)
+/mob/living/carbon/human/proc/vomit(hairball = 0)
if(!lastpuke)
lastpuke = 1
- src << "You feel nauseous..."
+ src << "You feel nauseous..."
spawn(150) //15 seconds until second warning
- src << "You feel like you are about to throw up!"
- spawn(100) //and you have 10 more for mad dash to the bucket
+ src << "You feel like you are about to throw up!"
+ spawn(100) //And you have 10 more seconds to move it to the bathrooms
Stun(5)
if(hairball)
- src.visible_message("[src] hacks up a hairball!","You hack up a hairball!")
+ src.visible_message("[src] hacks up a hairball!","You hack up a hairball!")
else
- src.visible_message("[src] throws up!","You throw up!")
+ src.visible_message("[src] throws up!","You throw up!")
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
var/turf/location = loc
- if (istype(location, /turf/simulated))
+ if(istype(location, /turf/simulated))
location.add_vomit_floor(src, 1)
if(!hairball)
nutrition -= 40
adjustToxLoss(-3)
- spawn(350) //wait 35 seconds before next volley
+
+ spawn(350) //Wait 35 seconds before next volley
lastpuke = 0
/mob/living/carbon/human/proc/morph()
@@ -1348,7 +1349,7 @@
return
usr.delayNextMove(20)
- if(usr.stat == 1)
+ if(usr.stat == 1 || (usr.status_flags & FAKEDEATH))
usr << "You are unconcious and cannot do that!"
return
@@ -1394,9 +1395,9 @@
return
if(self)
- visible_message("[src] rips [selection] out of their [affected.display_name] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.")
+ visible_message("[src] rips [selection] out of their [affected.display_name] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.")
else
- visible_message("[usr] rips [selection] out of [src]'s [affected.display_name] in a welter of blood.","[usr] rips [selection] out of your [affected] in a welter of blood.")
+ visible_message("[usr] rips [selection] out of [src]'s [affected.display_name] in a welter of blood.","[usr] rips [selection] out of your [affected] in a welter of blood.")
selection.loc = get_turf(src)
affected.implants -= selection
@@ -1459,7 +1460,7 @@
set src in view(1)
var/self = 0
- if(usr.stat == 1 || usr.restrained() || !isliving(usr)) return
+ if(usr.stat == 1 || usr.restrained() || !isliving(usr) || (usr.status_flags & FAKEDEATH)) return
if(usr == src)
self = 1
@@ -1504,7 +1505,9 @@
else src.see_invisible = SEE_INVISIBLE_LIVING
if((src.species.default_mutations.len > 0) || (src.species.default_blocks.len > 0))
src.do_deferred_species_setup = 1
- spawn() src.update_icons()
+ spawn()
+ src.dna.species = new_species_name
+ src.update_icons()
src.species.handle_post_spawn(src)
return 1
diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm
index fc901901109..88ddacd446b 100644
--- a/code/modules/mob/living/carbon/human/human_attackalien.dm
+++ b/code/modules/mob/living/carbon/human/human_attackalien.dm
@@ -1,12 +1,12 @@
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
//M.delayNextAttack(10)
if(check_shields(0, M.name))
- visible_message("\red [M] attempted to touch [src]!")
+ visible_message("[M] attempted to touch [src]!")
return 0
switch(M.a_intent)
if (I_HELP)
- visible_message(text("\blue [M] caresses [src] with its scythe like arm."))
+ visible_message(text("[M] caresses [src] with its scythe like arm."))
if (I_GRAB)
if(M == src || anchored)
return
@@ -21,7 +21,7 @@
LAssailant = M
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message(text("\red [] has grabbed [] passively!", M, src))
+ visible_message(text("[] has grabbed [] passively!", M, src))
if(I_HURT)
if (w_uniform)
@@ -29,17 +29,17 @@
var/damage = rand(15, 30)
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
- visible_message("\red [M] has lunged at [src]!")
+ visible_message("[M] has lunged at [src]!")
return 0
var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- visible_message("\red [M] has slashed at [src]!")
+ visible_message("[M] has slashed at [src]!")
apply_damage(damage, BRUTE, affecting, armor_block)
if (damage >= 25)
- visible_message("\red [M] has wounded [src]!")
+ visible_message("[M] has wounded [src]!")
apply_effect(rand(0.5,3), WEAKEN, armor_block)
updatehealth()
@@ -49,15 +49,15 @@
Weaken(rand(3,4))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has tackled down []!", M, src), 1)
+ O.show_message(text("[] has tackled down []!", M, src), 1)
if (prob(25))
M.Weaken(rand(4,5))
else
if (prob(80))
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
drop_item()
- visible_message(text("\red [] disarmed []!", M, src))
+ visible_message(text("[] disarmed []!", M, src))
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
- visible_message(text("\red [] has tried to disarm []!", M, src))
+ visible_message(text("[] has tried to disarm []!", M, src))
return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 6c6154c08fc..a3521d65bd5 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -8,13 +8,13 @@
if (M.hand)
temp = M:organs_by_name["l_hand"]
if(temp && !temp.is_usable())
- M << "\red You can't use your [temp.display_name]."
+ M << "You can't use your [temp.display_name]."
return
..()
if((M != src) && check_shields(0, M.name))
- visible_message("\red [M] attempted to touch [src]!")
+ visible_message("[M] attempted to touch [src]!")
return 0
@@ -24,7 +24,7 @@
if(M.a_intent == I_HURT)//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.use(2500)
- visible_message("\red [src] has been touched with the stun gloves by [M]!")
+ visible_message("[src] has been touched with the stun gloves by [M]!")
M.attack_log += text("\[[time_stamp()]\] Stungloved [src.name] ([src.ckey])")
src.attack_log += text("\[[time_stamp()]\] Has been stungloved by [M.name] ([M.ckey])")
if(!iscarbon(M))
@@ -38,8 +38,8 @@
apply_effects(5,5,0,0,5,0,0,armorblock)
return 1
else
- M << "\red Not enough charge! "
- visible_message("\red [src] has been touched with the stun gloves by [M]!")
+ M << "Not enough charge! "
+ visible_message("[src] has been touched with the stun gloves by [M]!")
return
if(istype(M.gloves , /obj/item/clothing/gloves/boxing/hologlove))
@@ -47,7 +47,7 @@
var/damage = rand(0, 9)
if(!damage)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("\red [M] has attempted to punch [src]!")
+ visible_message("[M] has attempted to punch [src]!")
return 0
var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
@@ -56,11 +56,11 @@
playsound(loc, "punch", 25, 1, -1)
- visible_message("\red [M] has punched [src]!")
+ visible_message("[M] has punched [src]!")
apply_damage(damage, HALLOSS, affecting, armor_block)
if(damage >= 9)
- visible_message("\red [M] has weakened [src]!")
+ visible_message("[M] has weakened [src]!")
apply_effect(4, WEAKEN, armor_block)
return
@@ -112,7 +112,7 @@
LAssailant = M
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message("\red [M] has grabbed [src] passively!")
+ visible_message("[M] has grabbed [src] passively!")
return 1
if(I_HURT)
@@ -143,7 +143,7 @@
if ((prob(75) && health > 0))
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M.name] has bit [name]!", 1)
+ O.show_message("[M.name] has bit [name]!", 1)
var/damage = rand(1, 5)
adjustBruteLoss(damage)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
@@ -176,7 +176,7 @@
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
- visible_message("\red [M] has attempted to [M.species.attack_verb] [src]!")
+ visible_message("[M] has attempted to [M.species.attack_verb] [src]!")
return 0
@@ -191,10 +191,10 @@
else
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- visible_message("\red [M] has [M.species.attack_verb]ed [src]!")
+ visible_message("[M] has [M.species.attack_verb]ed [src]!")
//Rearranged, so claws don't increase weaken chance.
if(damage >= M.species.max_hurt_damage && prob(50))
- visible_message("\red [M] has weakened [src]!")
+ visible_message("[M] has weakened [src]!")
apply_effect(2, WEAKEN, armor_block)
if(M.species.punch_damage)
@@ -203,7 +203,7 @@
// Horror form can punch people so hard they learn how to fly.
if(M.species.punch_throw_range && prob(25))
- visible_message("\red [src] is thrown by the force of the assault!")
+ visible_message("[src] is thrown by the force of the assault!")
var/turf/T = get_turf(src)
var/turf/target
if(istype(T, /turf/space)) // if ended in space, then range is unlimited
@@ -247,7 +247,7 @@
if (randn <= 25)
apply_effect(4, WEAKEN, run_armor_check(affecting, "melee"))
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message("\red [M] has pushed [src]!")
+ visible_message("[M] has pushed [src]!")
M.attack_log += text("\[[time_stamp()]\] Pushed [src.name] ([src.ckey])")
src.attack_log += text("\[[time_stamp()]\] Has been pushed by [M.name] ([M.ckey])")
if(!iscarbon(M))
@@ -263,7 +263,7 @@
if(randn <= 60)
//BubbleWrap: Disarming breaks a pull
if(pulling)
- visible_message("\red [M] has broken [src]'s grip on [pulling]!")
+ visible_message("[M] has broken [src]'s grip on [pulling]!")
talked = 1
stop_pulling()
@@ -271,14 +271,14 @@
if(istype(l_hand, /obj/item/weapon/grab))
var/obj/item/weapon/grab/lgrab = l_hand
if(lgrab.affecting)
- visible_message("\red [M] has broken [src]'s grip on [lgrab.affecting]!")
+ visible_message("[M] has broken [src]'s grip on [lgrab.affecting]!")
talked = 1
spawn(1)
del(lgrab)
if(istype(r_hand, /obj/item/weapon/grab))
var/obj/item/weapon/grab/rgrab = r_hand
if(rgrab.affecting)
- visible_message("\red [M] has broken [src]'s grip on [rgrab.affecting]!")
+ visible_message("[M] has broken [src]'s grip on [rgrab.affecting]!")
talked = 1
spawn(1)
del(rgrab)
@@ -286,13 +286,13 @@
if(!talked) //BubbleWrap
drop_item()
- visible_message("\red [M] has disarmed [src]!")
+ visible_message("[M] has disarmed [src]!")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
return
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("\red [M] attempted to disarm [src]!")
+ visible_message("[M] attempted to disarm [src]!")
return
/mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)
diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm
index 333ae6c2e3b..be08b7360b7 100644
--- a/code/modules/mob/living/carbon/human/human_attackpaw.dm
+++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm
@@ -8,7 +8,7 @@
return
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [M.name] has bit []!", src), 1)
+ O.show_message(text("[M.name] has bit []!", src), 1)
var/damage = rand(1, 3)
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index ed92dc67c02..f87a80425f1 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -317,7 +317,7 @@ This function restores all organs.
W.add_blood(src)
if(ismob(W.loc))
var/mob/living/H = W.loc
- H.drop_item()
+ H.drop_item(W, src)
W.loc = src
*/
if(istype(used_weapon,/obj/item/projectile/bullet)) //We don't want to use the actual projectile item, so we spawn some shrapnel.
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 2f494504f24..ccb159cda91 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -16,7 +16,7 @@ emp_act
if(!(def_zone in list("chest", "groin")))
reflectchance /= 2
if(prob(reflectchance))
- visible_message("\red The [P.name] gets reflected by [src]'s [wear_suit.name]!")
+ visible_message("The [P.name] gets reflected by [src]'s [wear_suit.name]!")
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -104,17 +104,17 @@ emp_act
if(l_hand && istype(l_hand, /obj/item/weapon))//Current base is the prob(50-d/3)
var/obj/item/weapon/I = l_hand
if(I.IsShield() && (prob(50 - round(damage / 3))))
- visible_message("\red [src] blocks [attack_text] with the [l_hand.name]!")
+ visible_message("[src] blocks [attack_text] with the [l_hand.name]!")
return 1
if(r_hand && istype(r_hand, /obj/item/weapon))
var/obj/item/weapon/I = r_hand
if(I.IsShield() && (prob(50 - round(damage / 3))))
- visible_message("\red [src] blocks [attack_text] with the [r_hand.name]!")
+ visible_message("[src] blocks [attack_text] with the [r_hand.name]!")
return 1
if(wear_suit && istype(wear_suit, /obj/item/))
var/obj/item/I = wear_suit
if(I.IsShield() && (prob(35)))
- visible_message("\red The reactive teleport system flings [src] clear of [attack_text]!")
+ visible_message("The reactive teleport system flings [src] clear of [attack_text]!")
var/list/turfs = new/list()
for(var/turf/T in orange(6))
if(istype(T,/turf/space)) continue
@@ -152,7 +152,7 @@ emp_act
if(user == src) // Attacking yourself can't miss
target_zone = user.zone_sel.selecting
if(!target_zone && !src.stat)
- visible_message("\red [user] misses [src] with \the [I]!")
+ visible_message("[user] misses [src] with \the [I]!")
return
if(istype(I, /obj/item/weapon/kitchen/utensil/knife/large/butch/meatcleaver) && src.stat == DEAD && user.a_intent == I_HURT)
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new /obj/item/weapon/reagent_containers/food/snacks/meat/human(get_turf(src.loc))
@@ -163,7 +163,7 @@ emp_act
src.reagents.trans_to (newmeat, round ((src.reagents.total_volume) / 3, 1))
src.loc.add_blood(src)
--src.meatleft
- user << "\red You hack off a chunk of meat from [src.name]"
+ user << "You hack off a chunk of meat from [src.name]"
if(!src.meatleft)
src.attack_log += "\[[time_stamp()]\] Was chopped up into meat by [user]/[user.ckey]"
user.attack_log += "\[[time_stamp()]\] Chopped up [src]/[src.ckey] into meat"
@@ -186,19 +186,19 @@ emp_act
if(istype(I,/obj/item/weapon/card/emag))
if(!(affecting.status & ORGAN_ROBOT))
- user << "\red That limb isn't robotic."
+ user << "That limb isn't robotic."
return
if(affecting.sabotaged)
- user << "\red [src]'s [affecting.display_name] is already sabotaged!"
+ user << "[src]'s [affecting.display_name] is already sabotaged!"
else
- user << "\red You sneakily slide [I] into the dataport on [src]'s [affecting.display_name] and short out the safeties."
+ user << "You sneakily slide [I] into the dataport on [src]'s [affecting.display_name] and short out the safeties."
affecting.sabotaged = 1
return
if(istype(I.attack_verb, /list) && I.attack_verb.len)
- visible_message("\red [src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!")
+ visible_message("[src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!")
else
- visible_message("\red [src] has been attacked in the [hit_area] with [I.name] by [user]!")
+ visible_message("[src] has been attacked in the [hit_area] with [I.name] by [user]!")
var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].")
if(armor >= 2) return 0
@@ -226,7 +226,7 @@ emp_act
if("head")//Harder to score a stun but if you do it lasts a bit longer
if(prob(I.force))
apply_effect(20, PARALYZE, armor)
- visible_message("\red [src] has been knocked unconscious!")
+ visible_message("[src] has been knocked unconscious!")
if(src != user && I.damtype == BRUTE)
ticker.mode.remove_revolutionary(mind)
@@ -244,7 +244,7 @@ emp_act
if("chest")//Easier to score a stun but lasts less time
if(prob((I.force + 10)))
apply_effect(5, WEAKEN, armor)
- visible_message("\red [src] has been knocked down!")
+ visible_message("[src] has been knocked down!")
if(bloody)
bloody_body(src)
@@ -368,7 +368,7 @@ emp_act
if(flags & INVULNERABLE)
return
if(stat == 2) return
- show_message("\red The blob attacks you!")
+ show_message("The blob attacks you!")
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone))
apply_damage(rand(30,40), BRUTE, affecting, run_armor_check(affecting, "melee"))
@@ -379,7 +379,7 @@ emp_act
return
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [src] has been hit by [O]", 1)
+ M.show_message("[src] has been hit by [O]", 1)
if (health > 0)
var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
if(!affecting) return
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index f71bca57b40..f6672c34a6a 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -60,6 +60,13 @@
if(M_RUN in mutations)
tally = 0
+ var/skate_bonus = 0
+ var/disease_slow = 0
+ for(var/obj/item/weapon/bomberman/dispenser in src)
+ disease_slow = max(disease_slow, dispenser.slow)
+ skate_bonus = max(skate_bonus, dispenser.speed_bonus)//if the player is carrying multiple BBD for some reason, he'll benefit from the speed bonus of the most upgraded one
+ tally = tally - skate_bonus + (6 * disease_slow)
+
return (tally+config.human_delay)
/mob/living/carbon/human/Process_Spacemove(var/check_drift = 0)
@@ -105,3 +112,7 @@
if(shoes && istype(shoes, /obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = shoes
S.step_action()
+
+ for(var/obj/item/weapon/bomberman/dispenser in src)
+ if(dispenser.spam_bomb)
+ dispenser.attack_self(src)
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index ee5d1254ba4..d4accdd4a7e 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -14,10 +14,10 @@
else
update_inv_r_hand(0)
else
- H << "\red You are unable to equip that."
+ H << "You are unable to equip that."
/mob/living/carbon/human/get_all_slots()
- return (get_head_slots() || get_body_slots()) //the || is list unification
+ . = get_head_slots() | get_body_slots()
/mob/living/carbon/human/proc/get_body_slots()
return list(
@@ -402,7 +402,7 @@
W.loc = src.back
return
else
- src << "\red You are trying to equip this item to an unsupported inventory slot. Report this to a coder!"
+ src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!"
return
update_hidden_item_icons(W)
@@ -524,101 +524,101 @@
if(isrobot(source) && place != "handcuff")
qdel(src)
for(var/mob/O in viewers(target, null))
- O.show_message("\red [source] is trying to put \a [item] on [target]", 1)
+ O.show_message("[source] is trying to put \a [item] on [target]", 1)
else
var/message=null
switch(place)
if("syringe")
- message = "\red [source] is trying to inject [target]!"
+ message = "[source] is trying to inject [target]!"
if("pill")
- message = "\red [source] is trying to force [target] to swallow [item]!"
+ message = "[source] is trying to force [target] to swallow [item]!"
if("drink")
- message = "\red [source] is trying to force [target] to swallow a gulp of [item]!"
+ message = "[source] is trying to force [target] to swallow a gulp of [item]!"
if("dnainjector")
- message = "\red [source] is trying to inject [target] with the [item]!"
+ message = "[source] is trying to inject [target] with the [item]!"
if("mask")
target.attack_log += text("\[[time_stamp()]\] Had their mask removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) mask")
if(target.wear_mask && !target.wear_mask.canremove)
- message = "\red [source] fails to take off \a [target.wear_mask] from [target]'s head!"
+ message = "[source] fails to take off \a [target.wear_mask] from [target]'s head!"
return
else
- message = "\red [source] is trying to take off \a [target.wear_mask] from [target]'s head!"
+ message = "[source] is trying to take off \a [target.wear_mask] from [target]'s head!"
if("l_hand")
target.attack_log += text("\[[time_stamp()]\] Has had their left hand item ([target.l_hand]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left hand item ([target.l_hand])")
- message = "\red [source] is trying to take off \a [target.l_hand] from [target]'s left hand!"
+ message = "[source] is trying to take off \a [target.l_hand] from [target]'s left hand!"
if("r_hand")
target.attack_log += text("\[[time_stamp()]\] Has had their right hand item ([target.r_hand]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right hand item ([target.r_hand])")
- message = "\red [source] is trying to take off \a [target.r_hand] from [target]'s right hand!"
+ message = "[source] is trying to take off \a [target.r_hand] from [target]'s right hand!"
if("gloves")
target.attack_log += text("\[[time_stamp()]\] Has had their gloves ([target.gloves]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) gloves ([target.gloves])")
if(target.gloves && !target.gloves.canremove)
- message = "\red [source] fails to take off \a [target.gloves] from [target]'s hands!"
+ message = "[source] fails to take off \a [target.gloves] from [target]'s hands!"
return
else
- message = "\red [source] is trying to take off the [target.gloves] from [target]'s hands!"
+ message = "[source] is trying to take off the [target.gloves] from [target]'s hands!"
if("eyes")
target.attack_log += text("\[[time_stamp()]\] Has had their eyewear ([target.glasses]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) eyewear ([target.glasses])")
if(target.glasses && !target.glasses.canremove)
- message = "\red [source] fails to take off \a [target.glasses] from [target]'s eyes!"
+ message = "[source] fails to take off \a [target.glasses] from [target]'s eyes!"
return
else
- message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!"
+ message = "[source] is trying to take off the [target.glasses] from [target]'s eyes!"
if("ears")
target.attack_log += text("\[[time_stamp()]\] Has had their ear item ([target.ears]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ear item ([target.ears])")
if(target.ears && !target.ears.canremove)
- message = "\red [source] fails to take off \a [target.ears] from [target]'s ears!"
+ message = "[source] fails to take off \a [target.ears] from [target]'s ears!"
return
else
- message = "\red [source] is trying to take off the [target.ears] from [target]'s ears!"
+ message = "[source] is trying to take off the [target.ears] from [target]'s ears!"
if("head")
target.attack_log += text("\[[time_stamp()]\] Has had their hat ([target.head]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) hat ([target.head])")
if(target.head && !target.head.canremove)
- message = "\red [source] fails to take off \a [target.head] from [target]'s head!"
+ message = "[source] fails to take off \a [target.head] from [target]'s head!"
return
else
- message = "\red [source] is trying to take off the [target.head] from [target]'s head!"
+ message = "[source] is trying to take off the [target.head] from [target]'s head!"
if("shoes")
target.attack_log += text("\[[time_stamp()]\] Has had their shoes ([target.shoes]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) shoes ([target.shoes])")
if(target.shoes && !target.shoes.canremove)
- message = "\red [source] fails to take off \a [target.shoes] from [target]'s feet!"
+ message = "[source] fails to take off \a [target.shoes] from [target]'s feet!"
return
else
- message = "\red [source] is trying to take off the [target.shoes] from [target]'s feet!"
+ message = "[source] is trying to take off the [target.shoes] from [target]'s feet!"
if("belt")
target.attack_log += text("\[[time_stamp()]\] Has had their belt item ([target.belt]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) belt item ([target.belt])")
if(!pickpocket)
- message = "\red [source] is trying to take off the [target.belt] from [target]'s belt!"
+ message = "[source] is trying to take off the [target.belt] from [target]'s belt!"
else
- source << "\blue You try to take off the [target.belt] from [target]'s belt!"
+ source << "You try to take off the [target.belt] from [target]'s belt!"
if("suit")
target.attack_log += text("\[[time_stamp()]\] Has had their suit ([target.wear_suit]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit ([target.wear_suit])")
if(target.wear_suit && !target.wear_suit.canremove)
- message = "\red [source] fails to take off \a [target.wear_suit] from [target]'s body!"
+ message = "[source] fails to take off \a [target.wear_suit] from [target]'s body!"
return
else
- message = "\red [source] is trying to take off \a [target.wear_suit] from [target]'s body!"
+ message = "[source] is trying to take off \a [target.wear_suit] from [target]'s body!"
if("back")
target.attack_log += text("\[[time_stamp()]\] Has had their back item ([target.back]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) back item ([target.back])")
- message = "\red [source] is trying to take off \a [target.back] from [target]'s back!"
+ message = "[source] is trying to take off \a [target.back] from [target]'s back!"
if("handcuff")
target.attack_log += text("\[[time_stamp()]\] Was unhandcuffed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to unhandcuff [target.name]'s ([target.ckey])")
- message = "\red [source] is trying to unhandcuff [target]!"
+ message = "[source] is trying to unhandcuff [target]!"
if("legcuff")
target.attack_log += text("\[[time_stamp()]\] Was unlegcuffed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to unlegcuff [target.name]'s ([target.ckey])")
- message = "\red [source] is trying to unlegcuff [target]!"
+ message = "[source] is trying to unlegcuff [target]!"
if("uniform")
target.attack_log += text("\[[time_stamp()]\] Has had their uniform ([target.w_uniform]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) uniform ([target.w_uniform])")
@@ -626,58 +626,58 @@
if(I.on_found(source))
return
if(target.w_uniform && !target.w_uniform.canremove)
- message = "\red [source] fails to take off \a [target.w_uniform] from [target]'s body!"
+ message = "[source] fails to take off \a [target.w_uniform] from [target]'s body!"
return
else
- message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!"
+ message = "[source] is trying to take off \a [target.w_uniform] from [target]'s body!"
if("s_store")
target.attack_log += text("\[[time_stamp()]\] Has had their suit storage item ([target.s_store]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit storage item ([target.s_store])")
- message = "\red [source] is trying to take off \a [target.s_store] from [target]'s suit!"
+ message = "[source] is trying to take off \a [target.s_store] from [target]'s suit!"
if("pockets")
target.attack_log += text("\[[time_stamp()]\] Has had their pockets emptied by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to empty [target.name]'s ([target.ckey]) pockets")
for(var/obj/item/I in list(target.l_store, target.r_store))
if(I.on_found(source))
return
- message = "\red [source] is trying to empty [target]'s pockets."
+ message = "[source] is trying to empty [target]'s pockets."
if("CPR")
if (!target.cpr_time)
qdel(src)
target.cpr_time = 0
- message = "\red [source] is trying perform CPR on [target]!"
+ message = "[source] is trying perform CPR on [target]!"
if("id")
target.attack_log += text("\[[time_stamp()]\] Has had their ID ([target.wear_id]) removed by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ID ([target.wear_id])")
if(!pickpocket)
- message = "\red [source] is trying to take off [target.wear_id] from [target]'s uniform!"
+ message = "[source] is trying to take off [target.wear_id] from [target]'s uniform!"
else
- source << "\blue You try to take off [target.wear_id] from [target]'s uniform!"
+ source << "You try to take off [target.wear_id] from [target]'s uniform!"
if("internal")
target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals")
if (target.internal)
- message = "\red [source] is trying to remove [target]'s internals"
+ message = "[source] is trying to remove [target]'s internals"
else
- message = "\red [source] is trying to set on [target]'s internals."
+ message = "[source] is trying to set on [target]'s internals."
if("internal1")
target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals")
if (target.internal)
- message = "\red [source] is trying to remove [target]'s internals"
+ message = "[source] is trying to remove [target]'s internals"
else
- message = "\red [source] is trying to set on [target]'s internals."
+ message = "[source] is trying to set on [target]'s internals."
if("internal2")
target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])")
source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals")
if (target.internal)
- message = "\red [source] is trying to remove [target]'s internals"
+ message = "[source] is trying to remove [target]'s internals"
else
- message = "\red [source] is trying to set on [target]'s internals."
+ message = "[source] is trying to set on [target]'s internals."
if("splints")
- message = text("\red [] is trying to remove []'s splints!", source, target)
+ message = text("[] is trying to remove []'s splints!", source, target)
for(var/mob/M in viewers(target, null))
M.show_message(message, 1)
@@ -701,7 +701,7 @@ It can still be worn/put on as normal.
if(!source || !target) return //Target or source no longer exist
if(source.loc != s_loc) return //source has moved
if(target.loc != t_loc) return //target has moved
- if(LinkBlocked(s_loc,t_loc)) return //Use a proxi!
+ if(!source.Adjacent(target)) return //Use a proxi!
if(item && source.get_active_hand() != item) return //Swapped hands / removed item from the active one
if ((source.restrained() || source.stat)) return //Source restrained or unconscious / dead
@@ -793,9 +793,9 @@ It can still be worn/put on as normal.
target.adjustOxyLoss(-suff)
target.updatehealth()
for(var/mob/O in viewers(source, null))
- O.show_message("\red [source] performs CPR on [target]!", 1)
- target << "\blue You feel a breath of fresh air enter your lungs. It feels good."
- source << "\red Repeat at least every 7 seconds."
+ O.show_message("[source] performs CPR on [target]!", 1)
+ target << "You feel a breath of fresh air enter your lungs. It feels good."
+ source << "Repeat at least every 7 seconds."
if("dnainjector")
var/obj/item/weapon/dnainjector/S = item
if(S)
@@ -809,7 +809,7 @@ It can still be worn/put on as normal.
qdel(src)
S.s_time = world.time
for(var/mob/O in viewers(source, null))
- O.show_message("\red [source] injects [target] with the DNA Injector!", 1)
+ O.show_message("[source] injects [target] with the DNA Injector!", 1)
S.inuse = 0
if("pockets")
slot_to_process = slot_l_store
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index b18791728f4..c354d80dcac 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -420,15 +420,15 @@ var/global/list/organ_damage_overlays = list(
custom_pain("Your head feels numb and painful.")
if(getBrainLoss() >= 15)
if(4 <= rn && rn <= 6) if(eye_blurry <= 0)
- src << "\red It becomes hard to see for some reason."
+ src << "It becomes hard to see for some reason."
eye_blurry = 10
if(getBrainLoss() >= 35)
if(7 <= rn && rn <= 9) if(hand && get_active_hand())
- src << "\red Your hand won't respond properly, you drop what you're holding."
+ src << "Your hand won't respond properly, you drop what you're holding."
drop_item()
if(getBrainLoss() >= 50)
if(10 <= rn && rn <= 12) if(!lying)
- src << "\red Your legs won't respond properly, you fall down."
+ src << "Your legs won't respond properly, you fall down."
resting = 1
/mob/living/carbon/human/proc/handle_stasis_bag()
@@ -459,7 +459,7 @@ var/global/list/organ_damage_overlays = list(
if (radiation > 100)
radiation = 100
Weaken(10)
- src << "\red You feel weak."
+ src << "You feel weak."
emote("collapse")
if (radiation < 0)
@@ -492,7 +492,7 @@ var/global/list/organ_damage_overlays = list(
if(prob(5))
radiation -= 5
Weaken(3)
- src << "\red You feel weak."
+ src << "You feel weak."
emote("collapse")
updatehealth()
@@ -502,7 +502,7 @@ var/global/list/organ_damage_overlays = list(
damage = 1
/*
if(prob(1))
- src << "\red You mutate!"
+ src << "You mutate!"
randmutb(src)
domutcheck(src,null)
emote("gasp")
@@ -595,7 +595,7 @@ var/global/list/organ_damage_overlays = list(
if(species.name=="Plasmaman")
// Check if we're wearing our biosuit and mask.
- if (!istype(wear_suit,/obj/item/clothing/suit/space/plasmaman) || !istype(head,/obj/item/clothing/head/helmet/space/plasmaman))
+ if (!(istype(wear_suit,/obj/item/clothing/suit/space/plasmaman) || istype(wear_suit,/obj/item/clothing/suit/space/bomberman)) || !(istype(head,/obj/item/clothing/head/helmet/space/plasmaman) || istype(head,/obj/item/clothing/head/helmet/space/bomberman)))
//testing("Plasmaman [src] leakin'. coverflags=[cover_flags]")
// OH FUCK HE LEAKIN'.
// This was OP.
@@ -634,10 +634,6 @@ var/global/list/organ_damage_overlays = list(
internals.icon_state = "internal0"
return null
- // USED IN DEATHWHISPERS
-/mob/living/carbon/human/proc/isInCrit()
- // Health is in deep shit and we're not already dead
- return health <= config.health_threshold_crit && stat != 2
/mob/living/carbon/human/proc/handle_breath(var/datum/gas_mixture/breath)
if((status_flags & GODMODE) || (flags & INVULNERABLE))
@@ -1028,6 +1024,7 @@ var/global/list/organ_damage_overlays = list(
total_plasmaloss += zas_settings.Get(/datum/ZAS_Setting/CONTAMINATION_LOSS)
I.OnMobLife(src)
if(status_flags & GODMODE) return 0 //godmode
+ if(species.name=="Plasmaman") return 0 //plasmaman shouldn't be hurt by plasma contaminated clothes
adjustToxLoss(total_plasmaloss)
if(species.flags & REQUIRE_LIGHT)
@@ -1067,7 +1064,7 @@ var/global/list/organ_damage_overlays = list(
if(species.flags & CAN_BE_FAT)
if(M_FAT in mutations)
if(overeatduration < 100)
- src << "\blue You feel fit again!"
+ src << "You feel fit again!"
mutations.Remove(M_FAT)
update_mutantrace(0)
update_mutations(0)
@@ -1075,7 +1072,7 @@ var/global/list/organ_damage_overlays = list(
update_inv_wear_suit()
else
if(overeatduration > 500)
- src << "\red You suddenly feel blubbery!"
+ src << "You suddenly feel blubbery!"
mutations.Add(M_FAT)
update_mutantrace(0)
update_mutations(0)
@@ -1292,12 +1289,12 @@ var/global/list/organ_damage_overlays = list(
spawn()
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1)
animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 1, loop = -1, easing = BOUNCE_EASING)
-
+
pixel_x_diff = rand(-amplitude, amplitude)
pixel_y_diff = rand(-amplitude, amplitude)
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1)
animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 1, loop = -1, easing = BOUNCE_EASING)
-
+
pixel_x_diff = rand(-amplitude, amplitude)
pixel_y_diff = rand(-amplitude, amplitude)
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1)
@@ -1604,18 +1601,18 @@ var/global/list/organ_damage_overlays = list(
isRemoteObserve = 1
// Is he unconscious or dead?
if(remoteview_target.stat!=CONSCIOUS)
- src << "\red Your psy-connection grows too faint to maintain!"
+ src << "Your psy-connection grows too faint to maintain!"
isRemoteObserve = 0
// Does he have psy resist?
if(M_PSY_RESIST in remoteview_target.mutations)
- src << "\red Your mind is shut out!"
+ src << "Your mind is shut out!"
isRemoteObserve = 0
// Not on the station or mining?
var/turf/temp_turf = get_turf(remoteview_target)
if((temp_turf.z != 1 && temp_turf.z != 5) || remoteview_target.stat!=CONSCIOUS)
- src << "\red Your psy-connection grows too faint to maintain!"
+ src << "Your psy-connection grows too faint to maintain!"
isRemoteObserve = 0
if(!isRemoteObserve && client && !client.adminobs && !iscamera(client.eye))
remoteview_target = null
diff --git a/code/modules/mob/living/carbon/human/plasmaman/species.dm b/code/modules/mob/living/carbon/human/plasmaman/species.dm
index b8217f5c3a2..8a9e5c06ae8 100644
--- a/code/modules/mob/living/carbon/human/plasmaman/species.dm
+++ b/code/modules/mob/living/carbon/human/plasmaman/species.dm
@@ -105,7 +105,7 @@
H.equip_or_collect(new suit(H), slot_wear_suit)
H.equip_or_collect(new helm(H), slot_head)
H.equip_or_collect(new/obj/item/weapon/tank/plasma/plasmaman(H), tank_slot) // Bigger plasma tank from Raggy.
- H << "\blue You are now running on plasma internals from the [H.s_store] in your [tank_slot_name]. You must breathe plasma in order to survive, and are extremely flammable."
+ H << "You are now running on plasma internals from the [H.s_store] in your [tank_slot_name]. You must breathe plasma in order to survive, and are extremely flammable."
H.internal = H.get_item_by_slot(tank_slot)
if (H.internals)
H.internals.icon_state = "internal1"
@@ -184,13 +184,13 @@
return 1 //godmode
if(breath.temperature < cold_level_1)
if(prob(20))
- src << "\red You feel your face freezing and an icicle forming in your lungs!"
+ src << "You feel your face freezing and an icicle forming in your lungs!"
else if(breath.temperature > heat_level_1)
if(prob(20))
if(H.dna.mutantrace == "slime")
- src << "\red You feel supercharged by the extreme heat!"
+ src << "You feel supercharged by the extreme heat!"
else
- src << "\red You feel your face burning and a searing heat in your lungs!"
+ src << "You feel your face burning and a searing heat in your lungs!"
if(H.dna.mutantrace == "slime")
if(breath.temperature < cold_level_1)
H.adjustToxLoss(round(cold_level_1 - breath.temperature))
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 13aba183ab7..355d8afa682 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -531,7 +531,7 @@ var/global/list/damage_icon_parts = list()
if(w_uniform.flags&ONESIZEFITSALL)
standing.icon = 'icons/mob/uniform_fat.dmi'
else
- src << "\red You burst out of \the [w_uniform]!"
+ src << "You burst out of \the [w_uniform]!"
drop_from_inventory(w_uniform)
return
else
@@ -806,8 +806,7 @@ var/global/list/damage_icon_parts = list()
if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) )
drop_from_inventory(handcuffed)
- drop_l_hand()
- drop_r_hand()
+ drop_hands()
var/obj/item/I = wear_suit
if(species.name in I.species_fit) //Allows clothes to display differently for multiple species
@@ -902,8 +901,7 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1)
overlays -= obj_overlays[HANDCUFF_LAYER]
if(handcuffed)
- drop_r_hand()
- drop_l_hand()
+ drop_hands()
stop_pulling() //TODO: should be handled elsewhere
var/obj/Overlays/O = obj_overlays[HANDCUFF_LAYER]
O.icon = 'icons/mob/mob.dmi'
@@ -948,7 +946,8 @@ var/global/list/damage_icon_parts = list()
overlays += O
obj_overlays[R_HAND_LAYER] = O
//overlays_standing[R_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = "[t_state]")
- if (handcuffed) drop_r_hand()
+ if (handcuffed)
+ drop_item(r_hand)
//else
//overlays_standing[R_HAND_LAYER] = null
if(update_icons) update_icons()
@@ -967,7 +966,8 @@ var/global/list/damage_icon_parts = list()
overlays += O
obj_overlays[L_HAND_LAYER] = O
//overlays_standing[L_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = "[t_state]")
- if (handcuffed) drop_l_hand()
+ if (handcuffed)
+ drop_item(l_hand)
//else
//overlays_standing[L_HAND_LAYER] = null
if(update_icons) update_icons()
diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm
index 6cff97a1b0c..1a567f65339 100644
--- a/code/modules/mob/living/carbon/metroid/emote.dm
+++ b/code/modules/mob/living/carbon/metroid/emote.dm
@@ -15,7 +15,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
- src << "\red You cannot send IC messages (muted)."
+ src << "You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
@@ -60,7 +60,7 @@
src << "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, jiggle, light, moan, shiver, sway, twitch, vibrate"
else
- src << "\blue Unusable emote '[act]'. Say *help for a list."
+ src << "Unusable emote '[act]'. Say *help for a list."
if ((message && src.stat == 0))
if (m_type & 1)
for(var/mob/O in viewers(src, null))
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 844321ec3cc..492184ea8da 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -76,7 +76,7 @@
real_name = name
spawn (1)
regenerate_icons()
- src << "\blue Your icons have been generated!"
+ src << "Your icons have been generated!"
..()
/mob/living/carbon/slime/adult/New()
@@ -258,7 +258,7 @@
//paralysis += 1
- show_message("\red The blob attacks you!")
+ show_message("The blob attacks you!")
adjustFireLoss(damage)
@@ -278,7 +278,7 @@
return
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message(text("\red [] has been hit by []", src, O), 1)
+ M.show_message(text("[] has been hit by []", src, O), 1)
if (health > 0)
adjustBruteLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25))
adjustFireLoss(30)
@@ -298,7 +298,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red The [M.name] has glomped []!", src), 1)
+ O.show_message(text("The [M.name] has glomped []!", src), 1)
var/damage = rand(1, 3)
attacked += 5
@@ -323,7 +323,7 @@
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M] [M.attacktext] [src]!", 1)
+ O.show_message("[M] [M.attacktext] [src]!", 1)
M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])")
src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
@@ -354,7 +354,7 @@
//playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [M.name] has attacked [src]!"), 1)
+ O.show_message(text("[M.name] has attacked [src]!"), 1)
adjustBruteLoss(rand(1, 3))
updatehealth()
return
@@ -376,13 +376,13 @@
if(prob(60))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [M] attempts to wrestle \the [name] off!", 1)
+ O.show_message("[M] attempts to wrestle \the [name] off!", 1)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
else
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [M] manages to wrestle \the [name] off!", 1)
+ O.show_message("[M] manages to wrestle \the [name] off!", 1)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
if(prob(90) && !client)
@@ -404,13 +404,13 @@
if(prob(30))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [M] attempts to wrestle \the [name] off of [Victim]!", 1)
+ O.show_message("[M] attempts to wrestle \the [name] off of [Victim]!", 1)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
else
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [M] manages to wrestle \the [name] off of [Victim]!", 1)
+ O.show_message("[M] manages to wrestle \the [name] off of [Victim]!", 1)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
if(prob(80) && !client)
@@ -443,10 +443,10 @@
G.cell.use(2500)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall.", 2)
+ O.show_message("[src] has been touched with the stun gloves by [M]!", 1, "You hear someone fall.", 2)
return
else
- M << "\red Not enough charge! "
+ M << "Not enough charge! "
return
switch(M.a_intent)
@@ -469,7 +469,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
+ O.show_message(text("[] has grabbed [] passively!", M, src), 1)
else
@@ -494,7 +494,7 @@
playsound(loc, "punch", 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has punched []!", M, src), 1)
+ O.show_message(text("[] has punched []!", M, src), 1)
adjustBruteLoss(damage)
updatehealth()
@@ -502,7 +502,7 @@
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has attempted to punch []!", M, src), 1)
+ O.show_message(text("[] has attempted to punch []!", M, src), 1)
return
@@ -520,7 +520,7 @@
if (I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1)
+ O.show_message(text("[M] caresses [src] with its scythe like arm."), 1)
if (I_HURT)
@@ -532,18 +532,18 @@
damage = rand(20, 40)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has attacked [name]!", M), 1)
+ O.show_message(text("[] has attacked [name]!", M), 1)
else
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has wounded [name]!", M), 1)
+ O.show_message(text("[] has wounded [name]!", M), 1)
adjustBruteLoss(damage)
updatehealth()
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has attempted to lunge at [name]!", M), 1)
+ O.show_message(text("[] has attempted to lunge at [name]!", M), 1)
if (I_GRAB)
if (M == src)
@@ -559,7 +559,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has grabbed [name] passively!", M), 1)
+ O.show_message(text("[] has grabbed [name] passively!", M), 1)
if (I_DISARM)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
@@ -569,7 +569,7 @@
if(prob(95))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has tackled [name]!", M), 1)
+ O.show_message(text("[] has tackled [name]!", M), 1)
if(Victim)
Victim = null
@@ -595,7 +595,7 @@
drop_item()
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has disarmed [name]!", M), 1)
+ O.show_message(text("[] has disarmed [name]!", M), 1)
adjustBruteLoss(damage)
updatehealth()
return
@@ -730,10 +730,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
attackby(obj/item/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/slimesteroid2))
if(enhanced == 1)
- user << "\red This extract has already been enhanced!"
+ user << "This extract has already been enhanced!"
return ..()
if(Uses == 0)
- user << "\red You can't enhance a used extract!"
+ user << "You can't enhance a used extract!"
return ..()
user <<"You apply the enhancer. It now has triple the amount of uses."
Uses = 3
@@ -841,13 +841,13 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
attack(mob/living/carbon/slime/M as mob, mob/user as mob)
if(!istype(M, /mob/living/carbon/slime))//If target is not a slime.
- user << "\red The potion only works on baby slimes!"
+ user << "The potion only works on baby slimes!"
return ..()
if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults
- user << "\red Only baby slimes can be tamed!"
+ user << "Only baby slimes can be tamed!"
return..()
if(M.stat)
- user << "\red The slime is dead!"
+ user << "The slime is dead!"
return..()
var/mob/living/simple_animal/slime/pet = new /mob/living/simple_animal/slime(M.loc)
pet.icon_state = "[M.colour] baby slime"
@@ -878,10 +878,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
attack(mob/living/carbon/slime/adult/M as mob, mob/user as mob)
if(!istype(M, /mob/living/carbon/slime/adult))//If target is not a slime.
- user << "\red The potion only works on adult slimes!"
+ user << "The potion only works on adult slimes!"
return ..()
if(M.stat)
- user << "\red The slime is dead!"
+ user << "The slime is dead!"
return..()
var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc)
pet.icon_state = "[M.colour] adult slime"
@@ -913,16 +913,16 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
attack(mob/living/carbon/slime/M as mob, mob/user as mob)
if(!istype(M, /mob/living/carbon/slime))//If target is not a slime.
- user << "\red The steroid only works on baby slimes!"
+ user << "The steroid only works on baby slimes!"
return ..()
if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults
- user << "\red Only baby slimes can use the steroid!"
+ user << "Only baby slimes can use the steroid!"
return..()
if(M.stat)
- user << "\red The slime is dead!"
+ user << "The slime is dead!"
return..()
if(M.cores == 3)
- user <<"\red The slime already has the maximum amount of extract!"
+ user <<"The slime already has the maximum amount of extract!"
return..()
user <<"You feed the slime the steroid. It now has triple the amount of extract."
@@ -938,10 +938,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
/*afterattack(obj/target, mob/user , flag)
if(istype(target, /obj/item/slime_extract))
if(target.enhanced == 1)
- user << "\red This extract has already been enhanced!"
+ user << "This extract has already been enhanced!"
return ..()
if(target.Uses == 0)
- user << "\red You can't enhance a used extract!"
+ user << "You can't enhance a used extract!"
return ..()
user <<"You apply the enhancer. It now has triple the amount of uses."
target.Uses = 3
@@ -1108,13 +1108,13 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
proc/volunteer(var/mob/dead/observer/O)
if(O in ghosts)
ghosts.Remove(O)
- O << "\red You are no longer signed up to be a golem."
+ O << "You are no longer signed up to be a golem."
else
if(!check_observer(O))
- O << "\red You are not eligable."
+ O << "You are not eligable."
return
ghosts.Add(O)
- O << "\blue You are signed up to be a golem."
+ O << "You are signed up to be a golem."
/mob/living/carbon/slime/has_eyes()
@@ -1207,9 +1207,9 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
/obj/item/weapon/reagent_containers/food/snacks/egg/slime/proc/Hatch()
processing_objects.Remove(src)
var/turf/T = get_turf(src)
- src.visible_message("\blue The [name] pulsates and quivers!")
+ src.visible_message("The [name] pulsates and quivers!")
spawn(rand(50,100))
- src.visible_message("\blue The [name] bursts open!")
+ src.visible_message("The [name] bursts open!")
new/mob/living/carbon/slime(T)
del(src)
diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm
index a7b7dd221f8..362a51280ce 100644
--- a/code/modules/mob/living/carbon/metroid/powers.dm
+++ b/code/modules/mob/living/carbon/metroid/powers.dm
@@ -27,8 +27,8 @@
if(met.Victim == M && met != src)
src << "The [met.name] is already feeding on this subject..."
return
- src << "\blue I have latched onto the subject and begun feeding..."
- M << "\red The [src.name] has latched onto your head!"
+ src << "I have latched onto the subject and begun feeding..."
+ M << "The [src.name] has latched onto your head!"
Feedon(M)
else
@@ -48,7 +48,7 @@
canmove = 0
anchored = 1
var/lastnut = nutrition
- //if(M.client) M << "\red You legs become paralyzed!"
+ //if(M.client) M << "You legs become paralyzed!"
if(istype(src, /mob/living/carbon/slime/adult))
icon_state = "[colour] adult slime eat"
else
@@ -62,7 +62,7 @@
loc = M.loc
if(prob(15) && M.client && istype(M, /mob/living/carbon))
- M << "\red [pick("You can feel your body becoming weak!", \
+ M << "[pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
"A low, rolling pain passes through your body!", \
@@ -108,7 +108,7 @@
else
if(prob(25))
- src << "\red [pick("This subject is incompatable", \
+ src << "[pick("This subject is incompatable", \
"This subject does not have a life energy", "This subject is empty", \
"I am not satisified", "I can not feed from this subject", \
"I do not feel nourished", "This subject is not food")]..."
diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm
index 0cf399c1d17..8c5ecd40e07 100644
--- a/code/modules/mob/living/carbon/monkey/diona.dm
+++ b/code/modules/mob/living/carbon/monkey/diona.dm
@@ -93,7 +93,7 @@
src.nutrition -= ((10-target.nutrilevel)*5)
target.nutrilevel = 10
- src.visible_message("\red [src] secretes a trickle of green liquid from its tail, refilling [target]'s nutrient tray.","\red You secrete a trickle of green liquid from your tail, refilling [target]'s nutrient tray.")
+ src.visible_message("[src] secretes a trickle of green liquid from its tail, refilling [target]'s nutrient tray.","You secrete a trickle of green liquid from your tail, refilling [target]'s nutrient tray.")
/mob/living/carbon/monkey/diona/verb/eat_weeds()
@@ -112,7 +112,7 @@
src.reagents.add_reagent("nutriment", target.weedlevel)
target.weedlevel = 0
- src.visible_message("\red [src] begins rooting through [target], ripping out weeds and eating them noisily.","\red You begin rooting through [target], ripping out weeds and eating them noisily.")
+ src.visible_message("[src] begins rooting through [target], ripping out weeds and eating them noisily.","You begin rooting through [target], ripping out weeds and eating them noisily.")
/mob/living/carbon/monkey/diona/verb/evolve()
@@ -132,7 +132,7 @@
src << "You have not yet consumed enough to grow..."
return
- src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!")
+ src.visible_message("[src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!")
var/mob/living/carbon/human/adult = new(get_turf(src.loc))
adult.set_species("Diona")
@@ -169,10 +169,10 @@
if(!M || !src) return
if(donors.Find(M.real_name))
- src << "\red That donor offers you nothing new."
+ src << "That donor offers you nothing new."
return
- src.visible_message("\red [src] flicks out a feeler and neatly steals a sample of [M]'s blood.","\red You flick out a feeler and neatly steal a sample of [M]'s blood.")
+ src.visible_message("[src] flicks out a feeler and neatly steals a sample of [M]'s blood.","You flick out a feeler and neatly steal a sample of [M]'s blood.")
donors += M.real_name
spawn(25)
update_progression()
@@ -184,13 +184,13 @@
if(donors.len == 5)
ready_evolve = 1
- src << "\green You feel ready to move on to your next stage of growth."
+ src << "You feel ready to move on to your next stage of growth."
else if(donors.len == 2)
- src << "\green You feel your awareness expand, and realize you know how to understand the creatures around you."
+ src << "You feel your awareness expand, and realize you know how to understand the creatures around you."
else if(donors.len == 4)
languages = HUMAN
- src << "\green You feel your vocal range expand, and realize you know how to speak with the creatures around you."
+ src << "You feel your vocal range expand, and realize you know how to speak with the creatures around you."
else if(donors.len == 3)
- src << "\green More blood seeps into you, continuing to expand your growing collection of memories."
+ src << "More blood seeps into you, continuing to expand your growing collection of memories."
else
- src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind."
\ No newline at end of file
+ src << "The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind."
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm
index cb876593c92..94a94fd12b8 100644
--- a/code/modules/mob/living/carbon/monkey/emote.dm
+++ b/code/modules/mob/living/carbon/monkey/emote.dm
@@ -17,7 +17,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
- src << "\red You cannot send IC messages (muted)."
+ src << "You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm
index ab26e37f574..ed576da9fac 100644
--- a/code/modules/mob/living/carbon/monkey/inventory.dm
+++ b/code/modules/mob/living/carbon/monkey/inventory.dm
@@ -36,28 +36,28 @@
return
for(var/mob/O in viewers(target, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] is trying to put a [] on []", source, item, target), 1)
+ O.show_message(text("[] is trying to put a [] on []", source, item, target), 1)
else
var/message = null
switch(place)
if("mask")
if(istype(target.wear_mask, /obj/item/clothing)&&!target.wear_mask:canremove)
- message = text("\red [] fails to take off \a [] from []'s body!", source, target.wear_mask, target)
+ message = text("[] fails to take off \a [] from []'s body!", source, target.wear_mask, target)
else
- message = text("\red [] is trying to take off \a [] from []'s head!", source, target.wear_mask, target)
+ message = text("[] is trying to take off \a [] from []'s head!", source, target.wear_mask, target)
if("l_hand")
- message = text("\red [] is trying to take off a [] from []'s left hand!", source, target.l_hand, target)
+ message = text("[] is trying to take off a [] from []'s left hand!", source, target.l_hand, target)
if("r_hand")
- message = text("\red [] is trying to take off a [] from []'s right hand!", source, target.r_hand, target)
+ message = text("[] is trying to take off a [] from []'s right hand!", source, target.r_hand, target)
if("back")
- message = text("\red [] is trying to take off a [] from []'s back!", source, target.back, target)
+ message = text("[] is trying to take off a [] from []'s back!", source, target.back, target)
if("handcuff")
- message = text("\red [] is trying to unhandcuff []!", source, target)
+ message = text("[] is trying to unhandcuff []!", source, target)
if("internal")
if (target.internal)
- message = text("\red [] is trying to remove []'s internals", source, target)
+ message = text("[] is trying to remove []'s internals", source, target)
else
- message = text("\red [] is trying to set on []'s internals.", source, target)
+ message = text("[] is trying to set on []'s internals.", source, target)
else
for(var/mob/M in viewers(target, null))
M.show_message(message, 1)
@@ -70,7 +70,7 @@
if(!source || !target) return
if(source.loc != s_loc) return
if(target.loc != t_loc) return
- if(LinkBlocked(s_loc,t_loc)) return
+ if(!source.Adjacent(target)) return
if(item && source.get_active_hand() != item) return
if ((source.restrained() || source.stat)) return
switch(place)
@@ -89,7 +89,7 @@
W.add_fingerprint(source)
else
if (istype(item, /obj/item/clothing/mask))
- source.drop_item()
+ source.drop_item(item)
loc = target
item.layer = 20
target.wear_mask = item
@@ -107,7 +107,7 @@
W.add_fingerprint(source)
else
if (istype(item, /obj/item))
- source.drop_item()
+ source.drop_item(item)
loc = target
item.layer = 20
target.l_hand = item
@@ -127,7 +127,7 @@
W.add_fingerprint(source)
else
if (istype(item, /obj/item))
- source.drop_item()
+ source.drop_item(item)
loc = target
item.layer = 20
target.r_hand = item
@@ -147,7 +147,7 @@
W.add_fingerprint(source)
else
if ((istype(item, /obj/item) && item.slot_flags & SLOT_BACK ))
- source.drop_item()
+ source.drop_item(item)
loc = target
item.layer = 20
target.back = item
@@ -165,7 +165,7 @@
W.add_fingerprint(source)
else
if (istype(item, /obj/item/weapon/handcuffs))
- source.drop_item()
+ source.drop_item(item)
target.handcuffed = item
item.loc = target
if("internal")
@@ -228,7 +228,7 @@
if(slot_in_backpack)
W.loc = src.back
else
- usr << "\red You are trying to eqip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..."
+ usr << "You are trying to eqip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..."
return
W.layer = 20
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index f097ba4f7dd..bc41002e249 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -93,7 +93,7 @@
if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 10))
- src << "\red You have a seizure!"
+ src << "You have a seizure!"
Paralyse(10)
if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
@@ -125,7 +125,7 @@
if ((M_HULK in mutations) && health <= 25)
mutations.Remove(M_HULK)
- src << "\red You suddenly feel very weak."
+ src << "You suddenly feel very weak."
Weaken(3)
emote("collapse")
if(reagents.has_reagent("creatine"))
@@ -147,7 +147,7 @@
if (radiation > 100)
radiation = 100
Weaken(10)
- src << "\red You feel weak."
+ src << "You feel weak."
emote("collapse")
switch(radiation)
@@ -163,7 +163,7 @@
if(prob(5))
radiation -= 5
Weaken(3)
- src << "\red You feel weak."
+ src << "You feel weak."
emote("collapse")
updatehealth()
@@ -171,7 +171,7 @@
radiation -= 3
adjustToxLoss(3)
if(prob(1))
- src << "\red You mutate!"
+ src << "You mutate!"
randmutb(src)
domutcheck(src,null)
emote("gasp")
@@ -392,7 +392,7 @@
if(breath.temperature > (T0C+66)) // Hot air hurts :(
if(prob(20))
- src << "\red You feel a searing heat in your lungs!"
+ src << "You feel a searing heat in your lungs!"
fire_alert = max(fire_alert, 2)
else
fire_alert = 0
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 6a828727807..d1d19a69532 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -185,10 +185,9 @@
oldhat = hat
hat = null
hat = H
- usr.drop_item()
- hat.loc = src
+ usr.drop_item(hat, src)
regenerate_icons()
- if (hat)
+ if (oldhat)
usr.put_in_hands(oldhat)
else
if(hat)
@@ -204,8 +203,7 @@
olduniform = uniform
uniform = null
uniform = C
- usr.drop_item()
- uniform.loc = src
+ usr.drop_item(uniform, src)
regenerate_icons()
if (olduniform)
usr.put_in_hands(olduniform)
@@ -284,7 +282,7 @@
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
- M.show_message(text("\red [] has been hit by []", src, O), 1)
+ M.show_message(text("[] has been hit by []", src, O), 1)
if (health > 0)
var/shielded = 0
adjustBruteLoss(30)
@@ -306,7 +304,7 @@
if ((prob(75) && health > 0))
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M.name] has bit [name]!", 1)
+ O.show_message("[M.name] has bit [name]!", 1)
var/damage = rand(1, 5)
adjustBruteLoss(damage)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
@@ -315,7 +313,7 @@
contract_disease(D,1,0)
else
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M.name] has attempted to bite [name]!", 1)
+ O.show_message("[M.name] has attempted to bite [name]!", 1)
return
/mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M as mob)
@@ -340,10 +338,10 @@
for(var/mob/O in viewers(src, null))
if (O.client)
- O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall", 2)
+ O.show_message("[src] has been touched with the stun gloves by [M]!", 1, "You hear someone fall", 2)
return
else
- M << "\red Not enough charge! "
+ M << "Not enough charge! "
return
if (M.a_intent == I_HELP)
@@ -353,7 +351,7 @@
if ((prob(75) && health > 0))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has punched [name]!", M), 1)
+ O.show_message(text("[] has punched [name]!", M), 1)
playsound(loc, "punch", 25, 1, -1)
var/damage = rand(5, 10)
@@ -364,7 +362,7 @@
spawn( 0 )
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has knocked out [name]!", M), 1)
+ O.show_message(text("[] has knocked out [name]!", M), 1)
return
adjustBruteLoss(damage)
updatehealth()
@@ -372,7 +370,7 @@
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has attempted to punch [name]!", M), 1)
+ O.show_message(text("[] has attempted to punch [name]!", M), 1)
else
if (M.a_intent == I_GRAB)
if (M == src || anchored)
@@ -389,7 +387,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has grabbed [name] passively!", M), 1)
+ O.show_message(text("[] has grabbed [name] passively!", M), 1)
else
if (!( paralysis ))
if (prob(25))
@@ -397,13 +395,13 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has pushed down [name]!", M), 1)
+ O.show_message(text("[] has pushed down [name]!", M), 1)
else
drop_item()
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has disarmed [name]!", M), 1)
+ O.show_message(text("[] has disarmed [name]!", M), 1)
return
/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
@@ -419,7 +417,7 @@
if (I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1)
+ O.show_message(text("[M] caresses [src] with its scythe like arm."), 1)
if (I_HURT)
if ((prob(95) && health > 0))
@@ -431,18 +429,18 @@
Paralyse(rand(10, 15))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has wounded [name]!", M), 1)
+ O.show_message(text("[] has wounded [name]!", M), 1)
else
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has slashed [name]!", M), 1)
+ O.show_message(text("[] has slashed [name]!", M), 1)
adjustBruteLoss(damage)
updatehealth()
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has attempted to lunge at [name]!", M), 1)
+ O.show_message(text("[] has attempted to lunge at [name]!", M), 1)
if (I_GRAB)
if (M == src)
@@ -458,7 +456,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has grabbed [name] passively!", M), 1)
+ O.show_message(text("[] has grabbed [name] passively!", M), 1)
if (I_DISARM)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
@@ -467,12 +465,12 @@
Weaken(15)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has tackled down [name]!", M), 1)
+ O.show_message(text("[] has tackled down [name]!", M), 1)
else
drop_item()
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has disarmed [name]!", M), 1)
+ O.show_message(text("[] has disarmed [name]!", M), 1)
adjustBruteLoss(damage)
updatehealth()
return
@@ -484,7 +482,7 @@
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M] [M.attacktext] [src]!", 1)
+ O.show_message("[M] [M.attacktext] [src]!", 1)
M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])")
src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
@@ -503,7 +501,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red The [M.name] glomps []!", src), 1)
+ O.show_message(text("The [M.name] glomps []!", src), 1)
var/damage = rand(1, 3)
@@ -533,7 +531,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red The [M.name] has shocked []!", src), 1)
+ O.show_message(text("The [M.name] has shocked []!", src), 1)
Weaken(power)
if (stuttering < power)
diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm
index 4b800820e06..255c951791c 100644
--- a/code/modules/mob/living/carbon/monkey/update_icons.dm
+++ b/code/modules/mob/living/carbon/monkey/update_icons.dm
@@ -81,7 +81,8 @@
if(!t_state) t_state = r_hand.icon_state
overlays_standing[M_R_HAND_LAYER] = image("icon" = t_inhand_states, "icon_state" = t_state)
r_hand.screen_loc = ui_rhand
- if (handcuffed) drop_r_hand()
+ if (handcuffed)
+ drop_item(r_hand)
else
overlays_standing[M_R_HAND_LAYER] = null
if(update_icons) update_icons()
@@ -94,7 +95,8 @@
if(!t_state) t_state = l_hand.icon_state
overlays_standing[M_L_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = t_state)
l_hand.screen_loc = ui_lhand
- if (handcuffed) drop_l_hand()
+ if (handcuffed)
+ drop_item(l_hand)
else
overlays_standing[M_L_HAND_LAYER] = null
if(update_icons) update_icons()
@@ -111,8 +113,7 @@
/mob/living/carbon/monkey/update_inv_handcuffed(var/update_icons=1)
if(handcuffed)
- drop_r_hand()
- drop_l_hand()
+ drop_hands()
stop_pulling()
overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1")
else
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index 4204cb6aa20..e95a28f8eec 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -272,13 +272,13 @@ var/global/list/whitelisted_species = list("Human")
if(H.status_flags & GODMODE) return 1 //godmode
if(breath.temperature < cold_level_1)
if(prob(20))
- H << "\red You feel your face freezing and an icicle forming in your lungs!"
+ H << "You feel your face freezing and an icicle forming in your lungs!"
else if(breath.temperature > heat_level_1)
if(prob(20))
if(H.dna.mutantrace == "slime")
- H << "\red You feel supercharged by the extreme heat!"
+ H << "You feel supercharged by the extreme heat!"
else
- H << "\red You feel your face burning and a searing heat in your lungs!"
+ H << "You feel your face burning and a searing heat in your lungs!"
if(H.dna.mutantrace == "slime")
if(breath.temperature < cold_level_1)
diff --git a/code/modules/mob/living/carbon/zombie/zombie.dm b/code/modules/mob/living/carbon/zombie/zombie.dm
index b282278e0d0..655d45dc7c3 100644
--- a/code/modules/mob/living/carbon/zombie/zombie.dm
+++ b/code/modules/mob/living/carbon/zombie/zombie.dm
@@ -143,10 +143,10 @@
if(distance <= 1 && !istype(src.wear_mask, /obj/item/clothing/mask))
if(prob(25))
for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src] has attempted to bite [src.target]!", 1, "\red You hear struggling.", 2)
+ O.show_message("[src] has attempted to bite [src.target]!", 1, "You hear struggling.", 2)
else
for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src.target] has been bitten by [src]!", 1, "\red You hear struggling.", 2)
+ O.show_message("[src.target] has been bitten by [src]!", 1, "You hear struggling.", 2)
var/mob/living/carbon/human/T = target
T.bruteloss += rand(1,7)
var/datum/organ/external/affecting
@@ -181,10 +181,10 @@
A.attack(src.target, src)
else if(prob(25))
for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src] has attempted to claw [src.target]!", 1, "\red You hear struggling.", 2)
+ O.show_message("[src] has attempted to claw [src.target]!", 1, "You hear struggling.", 2)
else
for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src.target] has been clawed by [src]!", 1, "\red You hear struggling.", 2)
+ O.show_message("[src.target] has been clawed by [src]!", 1, "You hear struggling.", 2)
var/mob/living/carbon/human/T = target
T.bruteloss += rand(1,7)
var/datum/organ/external/affecting
@@ -326,39 +326,39 @@
switch(stage)
if(1)
if (prob(8))
- affected_mob << pick("\red Something about you doesnt feel right.","\red Your head starts to itch.")
+ affected_mob << pick("Something about you doesnt feel right.","Your head starts to itch.")
if(2)
if (prob(8))
- affected_mob << "\red Your limbs feel numb."
+ affected_mob << "Your limbs feel numb."
affected_mob.bruteloss += 1
affected_mob.updatehealth()
if (prob(9))
- affected_mob << "\red You feel ill..."
+ affected_mob << "You feel ill..."
if (prob(9))
- affected_mob << "\red You feel a pain in your stomache..."
+ affected_mob << "You feel a pain in your stomache..."
if(3)
if (prob(8))
- affected_mob << text("\red []", pick("owww...","I want...","Please..."))
+ affected_mob << text("[]", pick("owww...","I want...","Please..."))
affected_mob.bruteloss += 1
affected_mob.updatehealth()
if (prob(10))
- affected_mob << "\red You feel very ill."
+ affected_mob << "You feel very ill."
affected_mob.bruteloss += 5
affected_mob.updatehealth()
if (prob(4))
- affected_mob << "\red You feel a stabbing pain in your head."
+ affected_mob << "You feel a stabbing pain in your head."
affected_mob.paralysis += 2
if (prob(4))
- affected_mob << "\red Whats going to happen to me?"
+ affected_mob << "Whats going to happen to me?"
if(4)
if (prob(10))
- affected_mob << pick("\red You feel violently sick.")
+ affected_mob << pick("You feel violently sick.")
affected_mob.bruteloss += 8
affected_mob.updatehealth()
if (prob(20))
affected_mob.say(pick("Mmmmm.", "Hey... You look...", "Hsssshhhhh!"))
if (prob(8))
- affected_mob << "\red You cant... feel..."
+ affected_mob << "You cant... feel..."
if(5)
affected_mob.toxloss += 10
affected_mob.updatehealth()
@@ -485,9 +485,9 @@ datum/reagent/zed
return
if (reagents.total_volume)
for(var/mob/O in viewers(M, null))
- O.show_message(text("\blue [] has been stabbed with [] by [].", M, src, user), 1)
-// user << "\red You stab [M] with the pen."
-// M << "\red You feel a tiny prick!"
+ O.show_message(text("[] has been stabbed with [] by [].", M, src, user), 1)
+// user << "You stab [M] with the pen."
+// M << "You feel a tiny prick!"
if(M.reagents) reagents.trans_to(M, 10)
icon_state = "zed_0"
return
@@ -531,7 +531,7 @@ datum/reagent/zed
// if(!istype(ticker.mode, /datum/game_mode/biohazard))
// if(src)
-// src << "\red Wrong game mode!"
+// src << "Wrong game mode!"
// return
if(usr) message_admins("[key_name_admin(usr)] has spawned a zombie", 1)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 0b3eafd77d3..3f963d86dce 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -58,7 +58,7 @@
if(src.mind in ticker.mode.traitors)
ticker.mode.traitors -= src.mind
special_role = null
- current << "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now..(You don't remember who enslaved you)"
+ current << "The fog clouding your mind clears. You remember nothing from the moment you were implanted until now..(You don't remember who enslaved you)"
*/
// Apply connect damage
@@ -321,15 +321,6 @@
L += get_contents(D.wrapped)
return L
-/mob/living/check_contents_for(A)
- var/list/L = src.get_contents()
-
- for(var/obj/B in L)
- if(B.type == A)
- return B
- return 0
-
-
/mob/living/proc/can_inject()
return 1
@@ -565,28 +556,31 @@
else
diag = null
if ((get_dist(src, pulling) > 1 || diag))
- if (isliving(pulling))
- var/mob/living/M = pulling
- var/ok = 1
- if (locate(/obj/item/weapon/grab, M.grabbed_by))
- if (prob(75))
- var/obj/item/weapon/grab/G = pick(M.grabbed_by)
- if (istype(G, /obj/item/weapon/grab))
- visible_message("[src] has pulled [G.affecting] from [G.assailant]'s grip.")
- qdel(G)
- else
- ok = 0
- if (locate(/obj/item/weapon/grab, M.grabbed_by.len))
- ok = 0
- if (ok)
- var/atom/movable/t = M.pulling
- M.stop_pulling()
- pulling.Move(T, get_dir(pulling, T))
- if(M)
- M.start_pulling(t)
+ if(isturf(pulling.loc))
+ if (isliving(pulling))
+ var/mob/living/M = pulling
+ var/ok = 1
+ if (locate(/obj/item/weapon/grab, M.grabbed_by))
+ if (prob(75))
+ var/obj/item/weapon/grab/G = pick(M.grabbed_by)
+ if (istype(G, /obj/item/weapon/grab))
+ visible_message("[src] has pulled [G.affecting] from [G.assailant]'s grip.")
+ qdel(G)
+ else
+ ok = 0
+ if (locate(/obj/item/weapon/grab, M.grabbed_by.len))
+ ok = 0
+ if (ok)
+ var/atom/movable/t = M.pulling
+ M.stop_pulling()
+ pulling.Move(T, get_dir(pulling, T))
+ if(M)
+ M.start_pulling(t)
+ else
+ if (pulling)
+ pulling.Move(T, get_dir(pulling, T))
else
- if (pulling)
- pulling.Move(T, get_dir(pulling, T))
+ stop_pulling()
else
stop_pulling()
. = ..()
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index d1546193c51..4ad87c6d127 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -21,13 +21,13 @@
if(absorb_text)
show_message("[absorb_text]")
else
- show_message("\red Your armor absorbs the blow!")
+ show_message("Your armor absorbs the blow!")
return 2
if(absorb == 1)
if(absorb_text)
show_message("[soften_text]",4)
else
- show_message("\red Your armor softens the blow!")
+ show_message("Your armor softens the blow!")
return 1
return 0
@@ -41,7 +41,7 @@
if(C && C.active)
C.attack_self(src)//Should shut it off
update_icons()
- src << "\blue Your [C.name] was disrupted!"
+ src << "Your [C.name] was disrupted!"
Stun(2)
flash_weak_pain()
@@ -49,7 +49,7 @@
if(istype(get_active_hand(),/obj/item/device/assembly/signaler))
var/obj/item/device/assembly/signaler/signaler = get_active_hand()
if(signaler.deadman && prob(80))
- src.visible_message("\red [src] triggers their deadman's switch!")
+ src.visible_message("[src] triggers their deadman's switch!")
signaler.signal()
var/absorb = run_armor_check(def_zone, P.flag)
@@ -74,7 +74,7 @@
if(istype(O,/obj/item/weapon))
var/obj/item/weapon/W = O
dtype = W.damtype
- src.visible_message("\red [src] has been hit by [O].")
+ src.visible_message("[src] has been hit by [O].")
var/armor = run_armor_check(zone, "melee", "Your armor has protected your [zone].", "Your armor has softened hit to your [zone].")
if(armor < 2)
apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O.is_sharp(), O)
@@ -101,7 +101,7 @@
var/momentum = speed/2
var/dir = get_dir(M,src)
- visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!")
+ visible_message("[src] staggers under the impact!","You stagger under the impact!")
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
if(istype(W.loc,/mob/living) && W.is_sharp()) //Projectile is embedded and suitable for pinning.
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 66db7ed619c..655d6ecfa0a 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -99,7 +99,10 @@ var/list/department_radio_keys = list(
if(!message) return
if(silent)
- src << "\red You can't speak while silenced."
+ src << "You can't speak while silenced."
+ return
+ if((status_flags & FAKEDEATH) && !stat)
+ src << "Talking right now would give us away!"
return
var/message_mode = get_message_mode(message)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index f0c436441c3..7b23361f4ee 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -409,7 +409,7 @@ var/list/ai_list = list()
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
- M.show_message(text("\red [] has been hit by []", src, O), 1)
+ M.show_message(text("[] has been hit by []", src, O), 1)
//Foreach goto(19)
if (health > 0)
adjustBruteLoss(30)
@@ -437,7 +437,7 @@ var/list/ai_list = list()
if (I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\blue [M] caresses [src]'s plating with its scythe like arm."), 1)
+ O.show_message(text("[M] caresses [src]'s plating with its scythe like arm."), 1)
else //harm
var/damage = rand(10, 20)
@@ -445,7 +445,7 @@ var/list/ai_list = list()
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has slashed at []!", M, src), 1)
+ O.show_message(text("[] has slashed at []!", M, src), 1)
if(prob(8))
flick("noise", flash)
adjustBruteLoss(damage)
@@ -454,7 +454,7 @@ var/list/ai_list = list()
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] took a swipe at []!", M, src), 1)
+ O.show_message(text("[] took a swipe at []!", M, src), 1)
return
/mob/living/silicon/ai/attack_hand(mob/living/carbon/M as mob)
@@ -463,7 +463,7 @@ var/list/ai_list = list()
if(M:wear_suit:s_control)
M:wear_suit:transfer_ai("AICORE", "NINJASUIT", src, M)
else
- M << "\red ERROR: \black Remote access channel disabled."
+ M << "ERROR: Remote access channel disabled."
return
@@ -476,7 +476,7 @@ var/list/ai_list = list()
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [M] [M.attacktext] [src]!", 1)
+ O.show_message("[M] [M.attacktext] [src]!", 1)
M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])")
src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
@@ -575,7 +575,7 @@ var/list/ai_list = list()
src.cameraFollow = null
var/cameralist[0]
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't change your camera network because you are dead!"
return
@@ -605,7 +605,7 @@ var/list/ai_list = list()
if(network in C.network)
U.eyeobj.setLoc(get_turf(C))
break
- src << "\blue Switched to [network] camera network."
+ src << "Switched to [network] camera network."
//End of code by Mord_Sith
@@ -619,7 +619,7 @@ var/list/ai_list = list()
set category = "AI Commands"
set name = "AI Status"
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr <<"You cannot change your emotional status because you are dead!"
return
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer")
@@ -710,7 +710,7 @@ var/list/ai_list = list()
var/obj/machinery/power/apc/apc = src.loc
if(!istype(apc))
- src << "\blue You are already in your Main Core."
+ src << "You are already in your Main Core."
return
apc.malfvacate()
@@ -764,19 +764,19 @@ var/list/ai_list = list()
/mob/living/silicon/ai/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
if(anchored)
- user.visible_message("\blue \The [user] starts to unbolt \the [src] from the plating...")
+ user.visible_message("\The [user] starts to unbolt \the [src] from the plating...")
if(!do_after(user,40))
- user.visible_message("\blue \The [user] decides not to unbolt \the [src].")
+ user.visible_message("\The [user] decides not to unbolt \the [src].")
return
- user.visible_message("\blue \The [user] finishes unfastening \the [src]!")
+ user.visible_message("\The [user] finishes unfastening \the [src]!")
anchored = 0
return
else
- user.visible_message("\blue \The [user] starts to bolt \the [src] to the plating...")
+ user.visible_message("\The [user] starts to bolt \the [src] to the plating...")
if(!do_after(user,40))
- user.visible_message("\blue \The [user] decides not to bolt \the [src].")
+ user.visible_message("\The [user] decides not to bolt \the [src].")
return
- user.visible_message("\blue \The [user] finishes fastening down \the [src]!")
+ user.visible_message("\The [user] finishes fastening down \the [src]!")
anchored = 1
return
else
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index b239b1b2f48..2ecaba2b442 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -14,7 +14,7 @@
if (src.malfhack)
if (src.malfhack.aidisabled)
- src << "\red ERROR: APC access disabled, hack attempt canceled."
+ src << "ERROR: APC access disabled, hack attempt canceled."
src.malfhacking = 0
src.malfhack = null
diff --git a/code/modules/mob/living/silicon/mommi/death.dm b/code/modules/mob/living/silicon/mommi/death.dm
index d393fc02a80..00b38cb332c 100644
--- a/code/modules/mob/living/silicon/mommi/death.dm
+++ b/code/modules/mob/living/silicon/mommi/death.dm
@@ -20,9 +20,7 @@
var/obj/item/found = locate(tool_state) in src.module.modules
if(!found && tool_state != src.module.emag)
var/obj/item/TS = tool_state
- drop_item()
- if(TS && TS.loc)
- TS.loc = src.loc
+ drop_item(TS)
spawn(15)
if(animation) del(animation)
if(src) del(src)
diff --git a/code/modules/mob/living/silicon/mommi/inventory.dm b/code/modules/mob/living/silicon/mommi/inventory.dm
index 4603e79d778..97cce781b7e 100644
--- a/code/modules/mob/living/silicon/mommi/inventory.dm
+++ b/code/modules/mob/living/silicon/mommi/inventory.dm
@@ -30,15 +30,13 @@
// Make sure we're not picking up something that's in our factory-supplied toolbox.
//if(is_type_in_list(W,src.module.modules))
//if(is_in_modules(W))
- //src << "\red Picking up something that's built-in to you seems a bit silly."
+ //src << "Picking up something that's built-in to you seems a bit silly."
//return 0
if(tool_state)
//var/obj/item/found = locate(tool_state) in src.module.modules
var/obj/item/TS = tool_state
if(!is_in_modules(tool_state))
- drop_item()
- if(TS && TS.loc)
- TS.loc = src.loc
+ drop_item(TS)
else
TS.loc = src.module
contents -= tool_state
@@ -100,7 +98,7 @@
return drop_item()
return 0
-/mob/living/silicon/robot/mommi/drop_item(var/atom/Target)
+/mob/living/silicon/robot/mommi/drop_item(var/obj/item/to_drop, var/atom/Target)
if(tool_state)
//var/obj/item/found = locate(tool_state) in src.module.modules
if(is_in_modules(tool_state))
@@ -137,9 +135,7 @@
return
if((module_active in src.contents) && !(module_active in src.module.modules) && (module_active != src.module.emag))
TS = tool_state
- drop_item()
- if(TS && TS.loc)
- TS.loc = get_turf(src)
+ drop_item(TS)
if(sight_state == module_active)
TS = sight_state
if(istype(sight_state,/obj/item/borg/sight))
@@ -155,8 +151,6 @@
TS = tool_state
if(!is_in_modules(TS))
drop_item()
- if(TS && TS.loc)
- TS.loc = get_turf(src)
if(istype(tool_state,/obj/item/borg/sight))
sight_mode &= ~tool_state:sight_mode
if (client)
@@ -216,8 +210,6 @@
var/obj/item/TS=tool_state
if(!is_in_modules(TS))
drop_item()
- if(TS && TS.loc)
- TS.loc = get_turf(src)
if(istype(tool_state,/obj/item/borg/sight))
sight_mode &= ~tool_state:sight_mode
if (client)
@@ -340,7 +332,7 @@
if(W == tool_state)
// Don't allow the MoMMI to equip tools to their head. I mean, they cant anyways, but stop them here
if(is_in_modules(tool_state))
- src << "\red You cannot equip a module to your head."
+ src << "You cannot equip a module to your head."
return 0
// Remove the item in the MoMMI's claw from their HuD
if (client)
@@ -372,7 +364,7 @@
if (client)
client.screen += head_state
else
- src << "\red You are trying to equip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..."
+ src << "You are trying to equip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..."
return 0
// Set the item layer and update the MoMMI's icons
W.layer = 20
diff --git a/code/modules/mob/living/silicon/mommi/mommi.dm b/code/modules/mob/living/silicon/mommi/mommi.dm
index 43bb59cbd71..1b7f5e10c17 100644
--- a/code/modules/mob/living/silicon/mommi/mommi.dm
+++ b/code/modules/mob/living/silicon/mommi/mommi.dm
@@ -85,7 +85,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
// Sanity check
if(connected_ai && keeper)
- world << "\red ASSERT FAILURE: connected_ai && keeper in mommi.dm"
+ world << "ASSERT FAILURE: connected_ai && keeper in mommi.dm"
/mob/living/silicon/robot/mommi/choose_icon()
@@ -182,7 +182,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
updatehealth()
add_fingerprint(user)
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [user] has fixed some of the dents on [src]!"), 1)
+ O.show_message(text("[user] has fixed some of the dents on [src]!"), 1)
else
user << "Need more welding fuel!"
return
@@ -193,7 +193,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
updatehealth()
coil.use(1)
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [user] has fixed some of the burnt wires on [src]!"), 1)
+ O.show_message(text("[user] has fixed some of the burnt wires on [src]!"), 1)
else if (istype(W, /obj/item/weapon/crowbar)) // crowbar means open or close the cover
if(stat == DEAD)
@@ -219,7 +219,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
else if(cell)
user << "There is a power cell already installed."
else
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user << "You insert the power cell."
// chargecount = 0
@@ -260,26 +260,26 @@ They can only use one tool at a time, they can't choose modules, and they have 1
user << "You [ locked ? "lock" : "unlock"] [src]'s interface."
updateicon()
else
- user << "\red Access denied."
+ user << "Access denied."
*/
else if(istype(W, /obj/item/borg/upgrade/))
var/obj/item/borg/upgrade/U = W
if(!opened)
- usr << "You must access the borgs internals!"
+ user << "You must access the borgs internals!"
else if(!src.module && U.require_module)
- usr << "The borg must choose a module before he can be upgraded!"
+ user << "The borg must choose a module before he can be upgraded!"
else if(U.locked)
- usr << "The upgrade is locked and cannot be used yet!"
+ user << "The upgrade is locked and cannot be used yet!"
else
if(istype(U, /obj/item/borg/upgrade/reset))
- usr << "No."
+ user << "No."
return
if(U.action(src))
- usr << "You apply the upgrade to [src]!"
- usr.drop_item(src)
+ user << "You apply the upgrade to [src]!"
+ user.drop_item(U, src)
else
- usr << "Upgrade error!"
+ user << "Upgrade error!"
else if(istype(W, /obj/item/device/camera_bug))
help_shake_act(user)
@@ -314,27 +314,24 @@ They can only use one tool at a time, they can't choose modules, and they have 1
if (randn <= 25)
weakened = 3
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message("\red [user] has pushed [src]!")
+ visible_message("[user] has pushed [src]!")
var/obj/item/found = locate(tool_state) in src.module.modules
if(!found)
var/obj/item/TS = tool_state
- drop_item()
+ drop_item(TS)
if(TS && TS.loc)
- TS.loc = src.loc
- visible_message("\red [src]'s robotic arm loses grip on what it was holding")
+ visible_message("[src]'s robotic arm loses grip on what it was holding")
return
if(randn <= 50)//MoMMI's robot arm is stronger than a human's, but not by much
var/obj/item/found = locate(tool_state) in src.module.modules
if(!found)
var/obj/item/TS = tool_state
- drop_item()
- if(TS && TS.loc)
- TS.loc = src.loc
+ drop_item(TS)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message("\red [user] has disarmed [src]!")
+ visible_message("[user] has disarmed [src]!")
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("\red [user] attempted to disarm [src]!")
+ visible_message("[user] attempted to disarm [src]!")
return
if (I_HELP)
help_shake_act(user)
@@ -342,7 +339,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
/mob/living/silicon/robot/mommi/installed_modules()
if(weapon_lock)
- src << "\red Weapon lock active, unable to use modules! Count:[weaponlock_time]"
+ src << "Weapon lock active, unable to use modules! Count:[weaponlock_time]"
return
if(!module)
diff --git a/code/modules/mob/living/silicon/mommi/powers.dm b/code/modules/mob/living/silicon/mommi/powers.dm
index 45fd8630a36..9b63fafba03 100644
--- a/code/modules/mob/living/silicon/mommi/powers.dm
+++ b/code/modules/mob/living/silicon/mommi/powers.dm
@@ -20,13 +20,13 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
- src << text("\blue You are now hiding.")
+ src << text("You are now hiding.")
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << "[src] tries to hide itself!"
else
layer = MOB_LAYER
- src << text("\blue You have stopped hiding.")
+ src << text("You have stopped hiding.")
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << "[src] slowly peeks up..."
diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm
index 4a56678f079..5a93c138d71 100644
--- a/code/modules/mob/living/silicon/pai/life.dm
+++ b/code/modules/mob/living/silicon/pai/life.dm
@@ -5,7 +5,7 @@
if(get_dist(src, src.cable) > 1)
var/turf/T = get_turf(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\red [src.cable] rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2)
+ M.show_message("[src.cable] rapidly retracts back into its spool.", 3, "You hear a click and the sound of wire spooling rapidly.", 2)
del(src.cable)
regular_hud_updates()
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index fc1561f8e39..f0f38465b4d 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -124,7 +124,7 @@
if(prob(20))
var/turf/T = get_turf(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\red A shower of sparks spray from [src]'s inner workings.", 3, "\red You hear and smell the ozone hiss of electrical sparks being expelled violently.", 2)
+ M.show_message("A shower of sparks spray from [src]'s inner workings.", 3, "You hear and smell the ozone hiss of electrical sparks being expelled violently.", 2)
return src.death(0)
switch(pick(1,2,3))
@@ -172,7 +172,7 @@
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
- M.show_message(text("\red [] has been hit by []", src, O), 1)
+ M.show_message(text("[] has been hit by []", src, O), 1)
if (src.health > 0)
src.adjustBruteLoss(30)
if ((O.icon_state == "flaming"))
@@ -196,7 +196,7 @@
if (I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\blue [M] caresses [src]'s casing with its scythe like arm."), 1)
+ O.show_message(text("[M] caresses [src]'s casing with its scythe like arm."), 1)
else //harm
var/damage = rand(10, 20)
@@ -204,7 +204,7 @@
playsound(get_turf(src), 'sound/weapons/slash.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has slashed at []!", M, src), 1)
+ O.show_message(text("[] has slashed at []!", M, src), 1)
if(prob(8))
flick("noise", src.flash)
src.adjustBruteLoss(damage)
@@ -213,7 +213,7 @@
playsound(get_turf(src), 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] took a swipe at []!", M, src), 1)
+ O.show_message(text("[] took a swipe at []!", M, src), 1)
return
///mob/living/silicon/pai/attack_hand(mob/living/carbon/M as mob)
@@ -251,7 +251,7 @@
src:cameraFollow = null
var/cameralist[0]
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't change your camera network because you are dead!"
return
@@ -263,7 +263,7 @@
cameralist[C.network] = C.network
src.network = input(usr, "Which network would you like to view?") as null|anything in cameralist
- src << "\blue Switched to [src.network] camera network."
+ src << "Switched to [src.network] camera network."
//End of code by Mord_Sith
*/
diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm
index 96006fe41b8..dc58df4a494 100644
--- a/code/modules/mob/living/silicon/pai/recruit.dm
+++ b/code/modules/mob/living/silicon/pai/recruit.dm
@@ -203,7 +203,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
for(var/mob/dead/observer/O in get_active_candidates(ROLE_PAI)) // We handle polling ourselves.
if(O.client)
if(check_recruit(O))
- O << "A pAI card is looking for personalities. (Sign Up)"
+ O << "A pAI card is looking for personalities. (Sign Up)"
//question(O.client)
proc/check_recruit(var/mob/dead/observer/O)
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index 0a2df47a737..c8df2acc320 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -288,7 +288,7 @@
var/turf/T = get_turf(src.loc)
src.cable = new /obj/item/weapon/pai_cable(T)
for (var/mob/M in viewers(T))
- M.show_message("\red A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", 3, "\red You hear the soft click of something light and hard falling to the ground.", 2)
+ M.show_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", 3, "You hear the soft click of something light and hard falling to the ground.", 2)
//src.updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window
src.paiInterface() // So we'll just call the update directly rather than doing some default checks
return
@@ -410,7 +410,7 @@
if(answer == "Yes")
var/turf/T = get_turf(P.loc)
for (var/mob/v in viewers(T))
- v.show_message("\blue [M] presses \his thumb against [P].", 3, "\blue [P] makes a sharp clicking sound as it extracts DNA material from [M].", 2)
+ v.show_message("[M] presses \his thumb against [P].", 3, "[P] makes a sharp clicking sound as it extracts DNA material from [M].", 2)
var/datum/dna/dna = M.dna
P << "
[M]'s UE string : [dna.unique_enzymes]
"
if(dna.unique_enzymes == P.master_dna)
diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm
index 37d7d23dadb..f8b008e6a2e 100644
--- a/code/modules/mob/living/silicon/robot/component.dm
+++ b/code/modules/mob/living/silicon/robot/component.dm
@@ -178,36 +178,36 @@
/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
if(( (M_CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
- user << text("\red You try to analyze the floor's vitals!")
+ user << text("You try to analyze the floor's vitals!")
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
- user.show_message(text("\blue Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
- user.show_message(text("\blue \t Damage Specifics: [0]-[0]-[0]-[0]"), 1)
- user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1)
- user.show_message("\blue Body Temperature: ???", 1)
+ O.show_message(text("[user] has analyzed the floor's vitals!"), 1)
+ user.show_message(text("Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
+ user.show_message(text("\t Damage Specifics: [0]-[0]-[0]-[0]"), 1)
+ user.show_message("Key: Suffocation/Toxin/Burns/Brute", 1)
+ user.show_message("Body Temperature: ???", 1)
return
if(!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
if(!istype(M, /mob/living/silicon/robot))
- user << "\red You can't analyze non-robotic things!"
+ user << "You can't analyze non-robotic things!"
return
user.visible_message(" [user] has analyzed [M]'s components."," You have analyzed [M]'s components.")
var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss()
var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss()
- user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]")
+ user.show_message("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]")
user.show_message("\t Key: Electronics/Brute", 1)
user.show_message("\t Damage Specifics: [BU] - [BR]")
if(M.tod && M.stat == DEAD)
- user.show_message("\blue Time of Disable: [M.tod]")
+ user.show_message("Time of Disable: [M.tod]")
var/mob/living/silicon/robot/H = M
var/list/damaged = H.get_damaged_components(1,1,1)
- user.show_message("\blue Localized Damage:",1)
+ user.show_message("Localized Damage:",1)
if(length(damaged)>0)
for(var/datum/robot_component/org in damaged)
- user.show_message(text("\blue \t []: [][] - [] - [] - []", \
+ user.show_message(text("\t []: [][] - [] - [] - []", \
capitalize(org.name), \
(org.installed == -1) ? "DESTROYED " :"",\
(org.electronics_damage > 0) ? "[org.electronics_damage]" :0, \
@@ -215,8 +215,8 @@
(org.toggled) ? "Toggled ON" : "Toggled OFF",\
(org.powered) ? "Power ON" : "Power OFF"),1)
else
- user.show_message("\blue \t Components are OK.",1)
+ user.show_message("\t Components are OK.",1)
if(H.emagged && prob(5))
- user.show_message("\red \t ERROR: INTERNAL SYSTEMS COMPROMISED",1)
+ user.show_message("\t ERROR: INTERNAL SYSTEMS COMPROMISED",1)
src.add_fingerprint(user)
return
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index e675cc8d570..38f65719c9e 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -217,7 +217,7 @@
if ("help")
src << "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt"
else
- src << "\blue Unusable emote '[act]'. Say *help for a list."
+ src << "Unusable emote '[act]'. Say *help for a list."
if ((message && src.stat == 0))
if (m_type & 1)
diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index c3628b82ef2..79b64e4f33c 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -35,6 +35,9 @@
if(isnull(module_active))
return
+ if(module_active:loc != src)
+ src << "Can't store something you're not holding!"
+ return
if(module_state_1 == module_active)
uneq_module(module_state_1)
module_state_1 = null
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 77b5dd95706..0e97c087f88 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -292,7 +292,7 @@
killswitch_time --
if(killswitch_time <= 0)
if(src.client)
- src << "\red Killswitch Activated"
+ src << "Killswitch Activated"
killswitch = 0
spawn(5)
gib()
@@ -303,7 +303,7 @@
weaponlock_time --
if(weaponlock_time <= 0)
if(src.client)
- src << "\red Weapon Lock Timed Out!"
+ src << "Weapon Lock Timed Out!"
weapon_lock = 0
weaponlock_time = 120
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 60218f225d0..b5179c4dccf 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -207,6 +207,7 @@
module_sprites["Default"] = "robot"
module_sprites["Marina-SD"] = "marinaSD"
module_sprites["Sleek"] = "sleekstandard"
+ module_sprites["#11"] = "servbot"
speed = 0
if("Service")
@@ -220,6 +221,7 @@
module_sprites["R2-D2"] = "r2d2"
module_sprites["Marina-SV"] = "marinaSV"
module_sprites["Sleek"] = "sleekservice"
+ module_sprites["#27"] = "servbot-service"
speed = 0
if("Miner")
@@ -233,6 +235,7 @@
module_sprites["Wall-A"] = "wall-a"
module_sprites["Marina-MN"] = "marinaMN"
module_sprites["Sleek"] = "sleekminer"
+ module_sprites["#31"] = "servbot-miner"
speed = -1
if("Medical")
@@ -247,6 +250,7 @@
module_sprites["Marina-MD"] = "marina"
module_sprites["Eve"] = "eve"
module_sprites["Sleek"] = "sleekmedic"
+ module_sprites["#17"] = "servbot-medi"
speed = -2
if("Security")
@@ -258,6 +262,7 @@
module_sprites["Bloodhound"] = "bloodhound"
module_sprites["Securitron"] = "securitron"
module_sprites["Marina-SC"] = "marinaSC"
+ module_sprites["#9"] = "servbot-sec"
src << "Just a reminder, by default you do not follow space law, you follow your lawset"
speed = 0
@@ -273,6 +278,7 @@
module_sprites["Wall-E"] = "wall-e"
module_sprites["Marina-EN"] = "marinaEN"
module_sprites["Sleek"] = "sleekengineer"
+ module_sprites["#25"] = "servbot-engi"
speed = -2
if("Janitor")
@@ -284,6 +290,7 @@
module_sprites["HAN-D"] = "han-d"
module_sprites["Marina-JN"] = "marinaJN"
module_sprites["Sleek"] = "sleekjanitor"
+ module_sprites["#29"] = "servbot-jani"
speed = -1
if("Combat")
@@ -295,6 +302,7 @@
module_sprites["Mr. Gutsy"] = "mrgutsy"
module_sprites["Marina-CB"] = "marinaCB"
module_sprites["Squadbot"] = "squats"
+ module_sprites["#41"] = "servbot-combat"
speed = -1
//Custom_sprite check and entry
@@ -719,7 +727,7 @@
C.installed = 1
C.wrapped = W
C.install()
- user.drop_item()
+ user.drop_item(W)
W.loc = null
usr << "You install the [W.name]."
@@ -810,7 +818,7 @@
else if(cell)
user << "There is a power cell already installed."
else
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user << "You insert the power cell."
@@ -858,17 +866,17 @@
else if(istype(W, /obj/item/borg/upgrade/))
var/obj/item/borg/upgrade/U = W
if(!opened)
- usr << "You must access the borgs internals!"
+ user << "You must access the borgs internals!"
else if(!src.module && U.require_module)
- usr << "The borg must choose a module before he can be upgraded!"
+ user << "The borg must choose a module before he can be upgraded!"
else if(U.locked)
- usr << "The upgrade is locked and cannot be used yet!"
+ user << "The upgrade is locked and cannot be used yet!"
else
if(U.action(src))
- usr << "You apply the upgrade to [src]!"
- usr.drop_item(src)
+ user << "You apply the upgrade to [src]!"
+ user.drop_item(U, src)
else
- usr << "Upgrade error!"
+ user << "Upgrade error!"
else if(istype(W, /obj/item/device/camera_bug))
help_shake_act(user)
diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm
index 75a66617490..0e211bfcddf 100644
--- a/code/modules/mob/living/silicon/robot/robot_damage.dm
+++ b/code/modules/mob/living/silicon/robot/robot_damage.dm
@@ -79,11 +79,11 @@
cell.charge -= cost
if(cell.charge <= 0)
cell.charge = 0
- src << "\red Your shield has overloaded!"
+ src << "Your shield has overloaded!"
else
brute -= absorb_brute
burn -= absorb_burn
- src << "\red Your shield absorbs some of the impact!"
+ src << "Your shield absorbs some of the impact!"
var/datum/robot_component/armour/A = get_armour()
if(A)
@@ -124,11 +124,11 @@
cell.charge -= cost
if(cell.charge <= 0)
cell.charge = 0
- src << "\red Your shield has overloaded!"
+ src << "Your shield has overloaded!"
else
brute -= absorb_brute
burn -= absorb_burn
- src << "\red Your shield absorbs some of the impact!"
+ src << "Your shield absorbs some of the impact!"
var/datum/robot_component/armour/A = get_armour()
if(A)
diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm
index 03723f35e3d..bf63544a2c8 100644
--- a/code/modules/mob/living/silicon/robot/robot_items.dm
+++ b/code/modules/mob/living/silicon/robot/robot_items.dm
@@ -6,22 +6,24 @@
name = "RoboTray"
desc = "An autoloading tray specialized for carrying refreshments."
-/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob)
- if ( !target )
+/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob, proximity_flag)
+ if(!target)
return
- // pick up items, mostly copied from base tray pickup proc
- // see code\game\objects\items\weapons\kitchen.dm line 241
- if ( istype(target,/obj/item))
- if ( !isturf(target.loc) ) // Don't load up stuff if it's inside a container or mob!
- return
- var turf/pickup = target.loc
- var addedSomething = 0
+ if(!proximity_flag)
+ return
+
+ //Pick up items, mostly copied from base tray pickup proc
+ //See code\game\objects\items\weapons\kitchen.dm line 241
+ if(istype(target,/obj/item))
+ if(!isturf(target.loc)) // Don't load up stuff if it's inside a container or mob!
+ return
+
+ var/turf/pickup = target.loc
+ var/addedSomething = 0
for(var/obj/item/weapon/reagent_containers/food/I in pickup)
-
-
- if( I != src && !I.anchored && !istype(I, /obj/item/clothing/under) && !istype(I, /obj/item/clothing/suit) && !istype(I, /obj/item/projectile) )
+ if(I != src && !I.anchored && !istype(I, /obj/item/clothing/under) && !istype(I, /obj/item/clothing/suit) && !istype(I, /obj/item/projectile))
var/add = 0
if(I.w_class == 1.0)
add = 1
@@ -36,30 +38,28 @@
carrying.Add(I)
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = 30 + I.layer)
addedSomething = 1
- if ( addedSomething )
- user.visible_message("\blue [user] load some items onto their service tray.")
+ if (addedSomething)
+ user.visible_message("[user] load some items onto their service tray.")
return
- // Unloads the tray, copied from base item's proc dropped() and altered
- // see code\game\objects\items\weapons\kitchen.dm line 263
-
- if ( isturf(target) || istype(target,/obj/structure/table) )
+ //Unloads the tray, copied from base item's proc dropped() and altered
+ //See code\game\objects\items\weapons\kitchen.dm line 263
+ if(isturf(target) || istype(target,/obj/structure/table))
var foundtable = istype(target,/obj/structure/table/)
- if ( !foundtable ) //it must be a turf!
+ if(!foundtable) //It must be a turf!
for(var/obj/structure/table/T in target)
foundtable = 1
break
- var turf/dropspot
- if ( !foundtable ) // don't unload things onto walls or other silly places.
+ var/turf/dropspot
+ if(!foundtable) //Don't unload things onto walls or other silly places.
dropspot = user.loc
- else if ( isturf(target) ) // they clicked on a turf with a table in it
+ else if(isturf(target)) //They clicked on a turf with a table in it
dropspot = target
- else // they clicked on a table
+ else //They clicked on a table
dropspot = target.loc
-
overlays = null
var droppedSomething = 0
@@ -69,26 +69,22 @@
carrying.Remove(I)
droppedSomething = 1
if(!foundtable && isturf(dropspot))
- // if no table, presume that the person just shittily dropped the tray on the ground and made a mess everywhere!
+ //If no table, presume that the person just shittily dropped the tray on the ground and made a mess everywhere!
spawn()
for(var/i = 1, i <= rand(1,2), i++)
if(I)
step(I, pick(NORTH,SOUTH,EAST,WEST))
sleep(rand(2,4))
- if ( droppedSomething )
- if ( foundtable )
- user.visible_message("\blue [user] unloads their service tray.")
+ if(droppedSomething)
+ if(foundtable)
+ user.visible_message("[user] unloads their service tray.")
else
- user.visible_message("\blue [user] drops all the items on their tray.")
+ user.visible_message("[user] drops all the items on their tray.")
return ..()
-
-
-
-// A special pen for service droids. Can be toggled to switch between normal writting mode, and paper rename mode
-// Allows service droids to rename paper items.
-
+//A special pen for service droids. Can be toggled to switch between normal writting mode, and paper rename mode
+//Allows service droids to rename paper items.
/obj/item/weapon/pen/robopen
desc = "A black ink printing attachment with a paper naming mode."
name = "Printing Pen"
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index b09a11aa5df..eb6cbdfd272 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -106,12 +106,6 @@
/mob/living/silicon/drop_item()
return
-/mob/living/silicon/drop_l_hand()
- return
-
-/mob/living/silicon/drop_r_hand()
- return
-
/mob/living/silicon/generate_static_overlay()
return
@@ -127,8 +121,8 @@
src.take_organ_damage(10)
Stun(rand(1,5))
flick("noise", src:flash)
- src << "\red *BZZZT*"
- src << "\red Warning: Electromagnetic pulse detected."
+ src << "*BZZZT*"
+ src << "Warning: Electromagnetic pulse detected."
..()
/mob/living/silicon/proc/damage_mob(var/brute = 0, var/fire = 0, var/tox = 0)
diff --git a/code/modules/mob/living/simple_animal/bees.dm b/code/modules/mob/living/simple_animal/bees.dm
index 2581ecac9b5..ac9879fa4f6 100644
--- a/code/modules/mob/living/simple_animal/bees.dm
+++ b/code/modules/mob/living/simple_animal/bees.dm
@@ -64,7 +64,7 @@
var/oldferal = feral
feral = -10
if(oldferal > 0 && feral <= 0)
- src.visible_message("\blue The bees calm down!")
+ src.visible_message("The bees calm down!")
target = null
target_turf = null
wander = 1
@@ -84,7 +84,7 @@
if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) // Try to sting! If you're not moving, think about stinging.
M.apply_damage(min(strength,2)+mut, BRUTE) // Stinging. The more mutated I am, the harder I sting.
M.apply_damage((round(feral/5,1)*(max((round(strength/10,1)),1)))+toxic, TOX) // Bee venom based on how angry I am and how many there are of me!
- M << "\red You have been stung!"
+ M << "You have been stung!"
M.flash_pain()
//if we're chasing someone, get a little bit angry
@@ -118,7 +118,7 @@
//make some noise
if(prob(0.5))
- src.visible_message("\blue [pick("Buzzzz.","Hmmmmm.","Bzzz.")]")
+ src.visible_message("[pick("Buzzzz.","Hmmmmm.","Bzzz.")]")
for(var/mob/living/simple_animal/bee/B in src.loc)
if(B == src)
@@ -161,7 +161,7 @@
if (!(DirBlocked(get_step(src, get_dir(src,target_turf)),get_dir(src,target_turf)))) // Check for windows and doors!
Move(get_step(src, get_dir(src,target_turf)))
if (prob(0.1))
- src.visible_message("\blue The bees swarm after [target]!")
+ src.visible_message("The bees swarm after [target]!")
if(src.loc == target_turf)
target_turf = null
wander = 1
diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm
index ff13c1fa536..3d938a6e3f8 100644
--- a/code/modules/mob/living/simple_animal/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer.dm
@@ -6,7 +6,7 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
- src << "\red You cannot speak in IC (muted)."
+ src << "You cannot speak in IC (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
@@ -201,7 +201,7 @@ var/global/borer_chem_types = typesof(/datum/borer_chem) - /datum/borer_chem
if (src.client)
if(client.prefs.muted & MUTE_IC)
- src << "\red You cannot speak in IC (muted)."
+ src << "You cannot speak in IC (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
@@ -302,8 +302,8 @@ var/global/borer_chem_types = typesof(/datum/borer_chem) - /datum/borer_chem
if(!host || host.stat==DEAD || !src || controlling)
return
- 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."
+ src << "You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system."
+ host << "You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours."
host_brain.ckey = host.ckey
host_brain.name = host.real_name
@@ -588,10 +588,10 @@ mob/living/simple_animal/borer/proc/detach()
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
- src << text("\blue You are now hiding.")
+ src << text("You are now hiding.")
else
layer = MOB_LAYER
- src << text("\blue You have stopped hiding.")
+ src << text("You have stopped hiding.")
//Procs for grabbing players.
mob/living/simple_animal/borer/proc/request_player()
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 8a391803931..bedd03f451f 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -65,7 +65,7 @@
new /obj/item/weapon/ectoplasm (src.loc)
for(var/mob/M in viewers(src, null))
if((M.client && !( M.blinded )))
- M.show_message("\red [src] collapses in a shattered heap. ")
+ M.show_message("[src] collapses in a shattered heap. ")
ghostize()
del src
return
@@ -87,7 +87,7 @@
/mob/living/simple_animal/construct/attack_animal(mob/living/simple_animal/M as mob)
if(istype(M, /mob/living/simple_animal/construct/builder))
if(src.health >= src.maxHealth)
- M << "\blue [src] has nothing to mend."
+ M << "[src] has nothing to mend."
return
health = min(maxHealth, health + 5) // Constraining health to maxHealth
M.visible_message("[M] mends some of \the [src]'s wounds.","You mend some of \the [src]'s wounds.")
@@ -117,12 +117,12 @@
adjustBruteLoss(damage)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [src] has been attacked with [O] by [user]. ")
+ M.show_message("[src] has been attacked with [O] by [user]. ")
else
- usr << "\red This weapon is ineffective, it does no damage."
+ usr << "This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [user] gently taps [src] with [O]. ")
+ M.show_message("[user] gently taps [src] with [O]. ")
@@ -160,16 +160,16 @@
adjustBruteLoss(damage)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [src] has been attacked with [O] by [user]. ")
+ M.show_message("[src] has been attacked with [O] by [user]. ")
else
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [O] bounces harmlessly off of [src]. ")
+ M.show_message("[O] bounces harmlessly off of [src]. ")
else
- usr << "\red This weapon is ineffective, it does no damage."
+ usr << "This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [user] gently taps [src] with [O]. ")
+ M.show_message("[user] gently taps [src] with [O]. ")
/mob/living/simple_animal/construct/armoured/bullet_act(var/obj/item/projectile/P)
@@ -289,16 +289,16 @@
adjustBruteLoss(damage)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [src] has been attacked with [O] by [user]. ")
+ M.show_message("[src] has been attacked with [O] by [user]. ")
else
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [O] bounces harmlessly off of [src]. ")
+ M.show_message("[O] bounces harmlessly off of [src]. ")
else
- usr << "\red This weapon is ineffective, it does no damage."
+ usr << "This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [user] gently taps [src] with [O]. ")
+ M.show_message("[user] gently taps [src] with [O]. ")
////////////////////////Harvester////////////////////////////////
@@ -352,7 +352,7 @@
if (istype(usr,/mob/living/simple_animal/constructbehemoth))
if(usr.energy<300)
- usr << "\red You do not have enough power stored!"
+ usr << "You do not have enough power stored!"
return
if(usr.stat)
@@ -369,7 +369,7 @@
if (cultist == usr) //just to be sure.
return
cultist.loc = usr.loc
- usr.visible_message("\red [cultist] appears in a flash of red light as [usr] glows with power")*/
+ usr.visible_message("[cultist] appears in a flash of red light as [usr] glows with power")*/
////////////////HUD//////////////////////
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index f747c06340b..49bd26431af 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -41,7 +41,7 @@
for(var/mob/living/simple_animal/mouse/M in view(1,src))
if(!M.stat)
M.splat()
- emote(pick("\red splats the [M]!","\red toys with the [M]","worries the [M]"))
+ emote(pick("splats the [M]!","toys with the [M]","worries the [M]"))
movement_target = null
stop_automated_movement = 0
break
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index edba67476a1..e8dafe83dd0 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -76,7 +76,7 @@
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/newspaper))
if(!stat)
- user.visible_message("\blue [user] baps [name] on the nose with the rolled up [O]")
+ user.visible_message("[user] baps [name] on the nose with the rolled up [O]")
spawn(0)
emote("whines")
for(var/i in list(1,2,4,8,4,2,1,2))
@@ -86,13 +86,13 @@
//helmet and armor = 100% protection
if( istype(inventory_head,/obj/item/clothing/head/helmet) && istype(inventory_back,/obj/item/clothing/suit/armor) )
if( O.force )
- usr << "\red [src] is wearing too much armor. You can't cause \him any damage."
+ usr << "[src] is wearing too much armor. You can't cause \him any damage."
for (var/mob/M in viewers(src, null))
- M.show_message("\red \b [user] hits [src] with [O], however [src] is too armored.")
+ M.show_message("[user] hits [src] with [O], however [src] is too armored.")
else
- usr << "\red [src] is wearing too much armor. You can't reach \his skin."
+ usr << "[src] is wearing too much armor. You can't reach \his skin."
for (var/mob/M in viewers(src, null))
- M.show_message("\red [user] gently taps [src] with [O]. ")
+ M.show_message("[user] gently taps [src] with [O]. ")
if(health>0 && prob(15))
emote("looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression")
return
@@ -121,7 +121,7 @@
inventory_head = null
regenerate_icons()
else
- usr << "\red There is nothing to remove from its [remove_from]."
+ usr << "There is nothing to remove from its [remove_from]."
return
if("back")
if(inventory_back)
@@ -129,7 +129,7 @@
inventory_back = null
regenerate_icons()
else
- usr << "\red There is nothing to remove from its [remove_from]."
+ usr << "There is nothing to remove from its [remove_from]."
return
show_inv(usr)
@@ -141,7 +141,7 @@
var/add_to = href_list["add_inv"]
if(!usr.get_active_hand())
- usr << "\red You have nothing in your hand to put on its [add_to]."
+ usr << "You have nothing in your hand to put on its [add_to]."
return
switch(add_to)
if("head")
@@ -149,13 +149,13 @@
if("back")
if(inventory_back)
- usr << "\red It's already wearing something."
+ usr << "It's already wearing something."
return
else
var/obj/item/item_to_add = usr.get_active_hand()
if(!item_to_add)
- usr.visible_message("\blue [usr] pets [src]","\blue You rest your hand on [src]'s back for a moment.")
+ usr.visible_message("[usr] pets [src]","You rest your hand on [src]'s back for a moment.")
return
if(istype(item_to_add,/obj/item/weapon/plastique)) // last thing he ever wears, I guess
item_to_add.afterattack(src,usr,1)
@@ -174,7 +174,7 @@
if( ! ( item_to_add.type in allowed_types ) )
usr << "You set [item_to_add] on [src]'s back, but \he shakes it off!"
- usr.drop_item(get_turf(src))
+ usr.drop_item(item_to_add, get_turf(src))
if(prob(25))
step_rand(item_to_add)
if (ckey == null)
@@ -183,7 +183,7 @@
sleep(1)
return
- usr.drop_item(src)
+ usr.drop_item(item_to_add, src)
src.inventory_back = item_to_add
regenerate_icons()
@@ -201,10 +201,10 @@
return
if(inventory_head)
- if(usr) usr << "\red You can't put more than one hat on [src]!"
+ if(usr) usr << "You can't put more than one hat on [src]!"
return
if(!item_to_add)
- usr.visible_message("\blue [usr] pets [src]","\blue You rest your hand on [src]'s head for a moment.")
+ usr.visible_message("[usr] pets [src]","You rest your hand on [src]'s head for a moment.")
return
@@ -344,7 +344,7 @@
usr.visible_message("[usr] puts [item_to_add] on [real_name]'s head. [src] looks at [usr] and barks once.",
"You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.",
"You hear a friendly-sounding bark.")
- usr.drop_item(src)
+ usr.drop_item(item_to_add, src)
else
item_to_add.loc = src
src.inventory_head = item_to_add
@@ -352,7 +352,7 @@
else
usr << "You set [item_to_add] on [src]'s head, but \he shakes it off!"
- usr.drop_item(src)
+ usr.drop_item(item_to_add, src.loc)
if(prob(25))
step_rand(item_to_add)
if (ckey == null)
@@ -474,7 +474,7 @@
//puppies cannot wear anything.
/mob/living/simple_animal/corgi/puppy/Topic(href, href_list)
if(href_list["remove_inv"] || href_list["add_inv"])
- usr << "\red You can't fit this on [src]"
+ usr << "You can't fit this on [src]"
return
..()
@@ -497,7 +497,7 @@
//Lisa already has a cute bow!
/mob/living/simple_animal/corgi/Lisa/Topic(href, href_list)
if(href_list["remove_inv"] || href_list["add_inv"])
- usr << "\red [src] already has a cute bow!"
+ usr << "[src] already has a cute bow!"
return
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index 1ac8e965b37..8744888f0dd 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -44,7 +44,7 @@
/mob/living/simple_animal/crab/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/wirecutters))
if(prob(50))
- user << "\red \b This kills the crab."
+ user << "This kills the crab."
health -= 20
Die()
else
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index e04a3e7f36c..0c396cdadec 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -39,7 +39,7 @@
if(enemies.len && prob(10))
enemies = list()
LoseTarget()
- src.visible_message("\blue [src] calms down.")
+ src.visible_message("[src] calms down.")
if(stat == CONSCIOUS)
if(udder && prob(5))
@@ -60,7 +60,7 @@
/mob/living/simple_animal/hostile/retaliate/goat/Retaliate()
..()
- src.visible_message("\red [src] gets an evil-looking gleam in \his eye.")
+ src.visible_message("[src] gets an evil-looking gleam in \his eye.")
/mob/living/simple_animal/hostile/retaliate/goat/Move()
..()
@@ -77,9 +77,9 @@
var/obj/item/weapon/reagent_containers/glass/G = O
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
if(G.reagents.total_volume >= G.volume)
- user << "\red [O] is full."
+ user << "[O] is full."
if(!transfered)
- user << "\red The udder is dry. Wait a bit longer..."
+ user << "The udder is dry. Wait a bit longer..."
else
..()
//cow
@@ -117,9 +117,9 @@
var/obj/item/weapon/reagent_containers/glass/G = O
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
if(G.reagents.total_volume >= G.volume)
- user << "\red [O] is full."
+ user << "[O] is full."
if(!transfered)
- user << "\red The udder is dry. Wait a bit longer..."
+ user << "The udder is dry. Wait a bit longer..."
else
..()
@@ -233,13 +233,13 @@ var/global/chicken_count = 0
/mob/living/simple_animal/chicken/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/wheat)) //feedin' dem chickens
if(!stat && eggsleft < 8)
- user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.")
- user.drop_item()
+ user.visible_message("[user] feeds [O] to [name]! It clucks happily.","You feed [O] to [name]! It clucks happily.")
+ user.drop_item(O)
qdel(O)
eggsleft += rand(1, 4)
//world << eggsleft
else
- user << "\blue [name] doesn't seem hungry!"
+ user << "[name] doesn't seem hungry!"
else if(istype(O, /obj/item/weapon/dnainjector))
var/obj/item/weapon/dnainjector/I = O
I.inject(src, user)
diff --git a/code/modules/mob/living/simple_animal/friendly/gorilla.dm b/code/modules/mob/living/simple_animal/friendly/gorilla.dm
new file mode 100644
index 00000000000..41a16380130
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/gorilla.dm
@@ -0,0 +1,20 @@
+//oo oo ah ah
+/mob/living/simple_animal/gorilla
+ name = "Space Gorilla"
+ desc = "A space gorilla."
+ icon_state = "spacegoriilla"
+ icon_living = "spacegorilla"
+ icon_dead = "deadgorilla"
+ gender = MALE
+ speak = list("OOH OOH AH AH!", "BANANA")
+ speak_emote = list("chimpers")
+ emote_hear = list("chimpers", "grunts")
+ emote_see = list("pounds his chest", "grunts OOH OOH AH AH")
+ speak_chance = 1
+ turns_per_move = 5
+ see_in_dark = 6
+ species = /mob/living/simple_animal/gorilla
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ response_help = "pats"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 43ea8e17f7d..f3601635c5d 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -84,7 +84,7 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
- src << text("\blue You are now hiding.")
+ src << text("You are now hiding.")
/*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
@@ -92,7 +92,7 @@
*/
else
layer = MOB_LAYER
- src << text("\blue You have stopped hiding.")
+ src << text("You have stopped hiding.")
/*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
@@ -130,7 +130,7 @@
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
- M << "\blue \icon[src] Squeek!"
+ M << "\icon[src] Squeek!"
M << 'sound/effects/mousesqueek.ogg'
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index 6dfb9d3d089..0806c9f4f75 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -45,10 +45,10 @@
if(istype(O, /obj/item/device/mmi) || istype(O, /obj/item/device/mmi/posibrain))
var/obj/item/device/mmi/B = O
if(src.mmi) //There's already a brain in it.
- user << "\red There's already a brain in [src]!"
+ user << "There's already a brain in [src]!"
return
if(!B.brainmob)
- user << "\red Sticking an empty MMI into the frame would sort of defeat the purpose."
+ user << "Sticking an empty MMI into the frame would sort of defeat the purpose."
return
if(!B.brainmob.key)
var/ghost_can_reenter = 0
@@ -62,16 +62,16 @@
return
if(B.brainmob.stat == DEAD)
- user << "\red [O] is dead. Sticking it into the frame would sort of defeat the purpose."
+ user << "[O] is dead. Sticking it into the frame would sort of defeat the purpose."
return
if(jobban_isbanned(B.brainmob, "Cyborg"))
- user << "\red [O] does not seem to fit."
+ user << "[O] does not seem to fit."
return
- user << "\blue You install [O] in [src]!"
+ user << "You install [O] in [src]!"
- user.drop_item(src)
+ user.drop_item(O, src)
src.mmi = O
src.transfer_personality(O)
src.update_icon()
@@ -86,15 +86,15 @@
health = maxHealth
add_fingerprint(user)
for(var/mob/W in viewers(user, null))
- W.show_message(text("\red [user] has spot-welded some of the damage to [src]!"), 1)
+ W.show_message(text("[user] has spot-welded some of the damage to [src]!"), 1)
else
- user << "\blue [src] is undamaged!"
+ user << "[src] is undamaged!"
else
user << "Need more welding fuel!"
return
else if(istype(O, /obj/item/weapon/card/id)||istype(O, /obj/item/device/pda))
if (!mmi)
- user << "\red There's no reason to swipe your ID - the spiderbot has no brain to remove."
+ user << "There's no reason to swipe your ID - the spiderbot has no brain to remove."
return 0
var/obj/item/weapon/card/id/id_card
@@ -106,7 +106,7 @@
id_card = pda.id
if(access_robotics in id_card.access)
- user << "\blue You swipe your access card and pop the brain out of [src]."
+ user << "You swipe your access card and pop the brain out of [src]."
eject_brain()
if(held_item)
@@ -115,17 +115,17 @@
return 1
else
- user << "\red You swipe your card, with no effect."
+ user << "You swipe your card, with no effect."
return 0
else if (istype(O, /obj/item/weapon/card/emag))
if (emagged)
- user << "\red [src] is already overloaded - better run."
+ user << "[src] is already overloaded - better run."
return 0
else
emagged = 1
- user << "\blue You short out the security protocols and overload [src]'s cell, priming it to explode in a short time."
- spawn(100) src << "\red Your cell seems to be outputting a lot of power..."
- spawn(200) src << "\red Internal heat sensors are spiking! Something is badly wrong with your cell!"
+ user << "You short out the security protocols and overload [src]'s cell, priming it to explode in a short time."
+ spawn(100) src << "Your cell seems to be outputting a lot of power..."
+ spawn(200) src << "Internal heat sensors are spiking! Something is badly wrong with your cell!"
spawn(300) src.explode()
else
@@ -141,7 +141,7 @@
/mob/living/simple_animal/spiderbot/proc/explode() //When emagged.
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [src] makes an odd warbling noise, fizzles, and explodes.")
+ M.show_message("[src] makes an odd warbling noise, fizzles, and explodes.")
explosion(get_turf(loc), -1, -1, 3, 5)
eject_brain()
Die()
@@ -211,10 +211,10 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
- src << text("\blue You are now hiding.")
+ src << text("You are now hiding.")
else
layer = MOB_LAYER
- src << text("\blue You have stopped hiding.")
+ src << text("You have stopped hiding.")
//Cannibalized from the parrot mob. ~Zuhayr
@@ -227,18 +227,18 @@
return
if(!held_item)
- usr << "\red You have nothing to drop!"
+ usr << "You have nothing to drop!"
return 0
if(istype(held_item, /obj/item/weapon/grenade))
- visible_message("\red [src] launches \the [held_item]!", "\red You launch \the [held_item]!", "You hear a skittering noise and a thump!")
+ visible_message("[src] launches \the [held_item]!", "You launch \the [held_item]!", "You hear a skittering noise and a thump!")
var/obj/item/weapon/grenade/G = held_item
G.loc = src.loc
G.prime()
held_item = null
return 1
- visible_message("\blue [src] drops \the [held_item]!", "\blue You drop \the [held_item]!", "You hear a skittering noise and a soft thump.")
+ visible_message("[src] drops \the [held_item]!", "You drop \the [held_item]!", "You hear a skittering noise and a soft thump.")
held_item.loc = src.loc
held_item = null
@@ -255,7 +255,7 @@
return -1
if(held_item)
- src << "\red You are already holding \the [held_item]"
+ src << "You are already holding \the [held_item]"
return 1
var/list/items = list()
@@ -270,12 +270,12 @@
if(selection == I)
held_item = selection
selection.loc = src
- visible_message("\blue [src] scoops up \the [held_item]!", "\blue You grab \the [held_item]!", "You hear a skittering noise and a clink.")
+ visible_message("[src] scoops up \the [held_item]!", "You grab \the [held_item]!", "You hear a skittering noise and a clink.")
return held_item
- src << "\red \The [selection] is too far away."
+ src << "\The [selection] is too far away."
return 0
- src << "\red There is nothing of interest to take."
+ src << "There is nothing of interest to take."
return 0
/mob/living/simple_animal/spiderbot/examine(mob/user)
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider/base_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider/base_spider.dm
index f09c8debb3e..b4e28971eb4 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider/base_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider/base_spider.dm
@@ -138,11 +138,11 @@ var/global/list/spider_types = typesof(/mob/living/simple_animal/hostile/giant_s
return // keep movin'.
stop_automated_movement = 1
walk(src,0)
- D.visible_message("\red \The [D]'s motors whine as four arachnid claws begin trying to force it open!")
+ D.visible_message("\The [D]'s motors whine as four arachnid claws begin trying to force it open!")
spawn(50)
if(CanOpenDoor(D) && prob(25))
D.open(1)
- D.visible_message("\red \The [src] forces \the [D] open!")
+ D.visible_message("\The [src] forces \the [D] open!")
// Open firedoors, too.
for(var/obj/machinery/door/firedoor/FD in D.loc)
@@ -162,7 +162,7 @@ var/global/list/spider_types = typesof(/mob/living/simple_animal/hostile/giant_s
var/mob/living/L = target
if(L.reagents)
if(prob(poison_per_bite))
- src.visible_message("\red \the [src] injects a powerful toxin!")
+ src.visible_message("\the [src] injects a powerful toxin!")
L.reagents.add_reagent(poison_type, poison_per_bite)
/mob/living/simple_animal/hostile/giant_spider/Life()
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider/effects.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider/effects.dm
index be276202930..0744684bb79 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider/effects.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider/effects.dm
@@ -24,9 +24,9 @@
/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user)
user.delayNextAttack(8)
if(W.attack_verb && W.attack_verb.len)
- visible_message("\red \The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
+ visible_message("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
else
- visible_message("\red \The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]")
+ visible_message("\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = W.force / 4.0
@@ -69,7 +69,7 @@
return 1
else if(istype(mover, /mob/living))
if(prob(50))
- mover << "\red You get stuck in \the [src] for a moment."
+ mover << "You get stuck in \the [src] for a moment."
return 0
else if(istype(mover, /obj/item/projectile))
return prob(30)
@@ -149,7 +149,7 @@
icon_state = pick("cocoon1","cocoon2","cocoon3")
/obj/effect/spider/cocoon/Destroy()
- src.visible_message("\red \the [src] splits open.")
+ src.visible_message("\the [src] splits open.")
for(var/atom/movable/A in contents)
A.loc = src.loc
..()
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
index 1c00002db53..61248721932 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
@@ -46,7 +46,7 @@
var/obj/effect/spider/stickyweb/W = locate() in get_turf(src)
if(!W)
busy = SPINNING_WEB
- src.visible_message("\blue \the [src] begins to secrete a sticky substance.")
+ src.visible_message("\the [src] begins to secrete a sticky substance.")
stop_automated_movement = 1
spawn(40)
if(busy == SPINNING_WEB)
@@ -61,7 +61,7 @@
var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
if(!E)
busy = LAYING_EGGS
- src.visible_message("\blue \the [src] begins to lay a cluster of eggs.")
+ src.visible_message("\the [src] begins to lay a cluster of eggs.")
stop_automated_movement = 1
spawn(50)
if(busy == LAYING_EGGS)
@@ -108,7 +108,7 @@
busy=0
stop_automated_movement=0
busy = SPINNING_COCOON
- src.visible_message("\blue \the [src] begins to secrete a sticky substance around \the [cocoon_target].")
+ src.visible_message("\the [src] begins to secrete a sticky substance around \the [cocoon_target].")
stop_automated_movement = 1
walk(src,0)
spawn(50)
@@ -118,7 +118,7 @@
var/obj/machinery/door/D=cocoon_target
var/obj/effect/spider/stickyweb/W = locate() in get_turf(cocoon_target)
if(!W)
- src.visible_message("\red \the [src] jams \the [cocoon_target] open with web!")
+ src.visible_message("\the [src] jams \the [cocoon_target] open with web!")
W=new /obj/effect/spider/stickyweb(cocoon_target.loc)
// Jam the door open with webs
D.jammed=W
@@ -134,7 +134,7 @@
continue
large_cocoon = 1
fed++
- src.visible_message("\red \the [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out.")
+ src.visible_message("\the [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out.")
M.loc = C
C.pixel_x = M.pixel_x
C.pixel_y = M.pixel_y
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider/spiderling.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider/spiderling.dm
index ff6791b7d96..768e801d122 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider/spiderling.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider/spiderling.dm
@@ -94,7 +94,7 @@
return
if(prob(50))
- src.visible_message("\blue You hear something squeezing through the ventilation ducts.",2)
+ src.visible_message("You hear something squeezing through the ventilation ducts.",2)
sleep(travel_time)
if(!exit_vent || exit_vent.welded)
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 3069721ad54..f7e49640cec 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -84,12 +84,12 @@
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(5, 0, src.loc)
smoke.start()
- visible_message("\red The [src] warps in!")
+ visible_message("The [src] warps in!")
playsound(get_turf(src), 'sound/effects/EMPulse.ogg', 25, 1)
warpbots()
icon_state = "def_radar"
- visible_message("\red The [src] turns on!")
+ visible_message("The [src] turns on!")
while(bot_amt > 0)
bot_amt--
switch(bot_type)
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index df98367c751..62b3e3be8e5 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -43,7 +43,7 @@
/mob/living/simple_animal/hostile/mimic/Die()
..()
- visible_message("\red [src] stops moving!")
+ visible_message("[src] stops moving!")
del(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/cluwne.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/cluwne.dm
index 0ff259ad714..da2c7cd309b 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/cluwne.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/cluwne.dm
@@ -259,7 +259,7 @@
health -= damage
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("[src] has been attacked with the [O] by [user].")
+ M.show_message("[src] has been attacked with the [O] by [user].")
*/
/mob/living/simple_animal/hostile/retaliate/cluwne/Bump(atom/movable/AM as mob|obj, yes)
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
index 5bdf9f99352..be9c0435534 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
@@ -66,12 +66,12 @@
if (O.damtype == HALLOSS)
damage = 0
health -= damage
- visible_message("\red \b [src] has been attacked with [O] by [user]. ")
+ visible_message("[src] has been attacked with [O] by [user]. ")
else
- visible_message("\red \b [src] blocks [O] with its shield! ")
+ visible_message("[src] blocks [O] with its shield! ")
else
- usr << "\red This weapon is ineffective, it does no damage."
- visible_message("\red [user] gently taps [src] with [O]. ")
+ usr << "This weapon is ineffective, it does no damage."
+ visible_message("[user] gently taps [src] with [O]. ")
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
@@ -79,7 +79,7 @@
if(prob(65))
src.health -= Proj.damage
else
- visible_message("\red [src] blocks [Proj] with its shield!")
+ visible_message("[src] blocks [Proj] with its shield!")
return 0
@@ -161,6 +161,6 @@
/mob/living/simple_animal/hostile/viscerator/Die()
..()
- visible_message("\red [src] is smashed into pieces!")
+ visible_message("[src] is smashed into pieces!")
del src
return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm
index affb17665cb..82d375e84d6 100644
--- a/code/modules/mob/living/simple_animal/hostile/tree.dm
+++ b/code/modules/mob/living/simple_animal/hostile/tree.dm
@@ -52,7 +52,7 @@
/mob/living/simple_animal/hostile/tree/Die()
..()
- visible_message("\red [src] is hacked into pieces!")
+ visible_message("[src] is hacked into pieces!")
new /obj/item/stack/sheet/wood(loc)
del(src)
@@ -65,6 +65,6 @@
icon_gib = "festivus_pole"
/mob/living/simple_animal/hostile/tree/festivus/Die()
- visible_message("\red [src] is hacked into pieces!")
+ visible_message("[src] is hacked into pieces!")
new /obj/item/weapon/nullrod(loc)
del(src)
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index e243464612e..4e22deaaf36 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -203,19 +203,19 @@
if(copytext(possible_phrase,1,3) in department_radio_keys)
possible_phrase = copytext(possible_phrase,3)
else
- usr << "\red There is nothing to remove from its [remove_from]."
+ usr << "There is nothing to remove from its [remove_from]."
return
//Adding things to inventory
else if(href_list["add_inv"])
var/add_to = href_list["add_inv"]
if(!usr.get_active_hand())
- usr << "\red You have nothing in your hand to put on its [add_to]."
+ usr << "You have nothing in your hand to put on its [add_to]."
return
switch(add_to)
if("ears")
if(ears)
- usr << "\red It's already wearing something."
+ usr << "It's already wearing something."
return
else
var/obj/item/item_to_add = usr.get_active_hand()
@@ -223,12 +223,12 @@
return
if( !istype(item_to_add, /obj/item/device/radio/headset) )
- usr << "\red This object won't fit."
+ usr << "This object won't fit."
return
var/obj/item/device/radio/headset/headset_to_add = item_to_add
- usr.drop_item(src)
+ usr.drop_item(headset_to_add, src)
src.ears = headset_to_add
usr << "You fit the headset onto [src]."
@@ -317,11 +317,11 @@
icon_state = "parrot_fly"
drop_held_item(0)
else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker.
- del(O)
- user.drop_item()
+ user.drop_item(O)
+ qdel(O)
if(health < maxHealth)
adjustBruteLoss(-10)
- user << "\blue [src] eagerly devours the cracker."
+ user << "[src] eagerly devours the cracker."
playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
..()
return
@@ -484,7 +484,7 @@
if(!parrot_perch || parrot_interest.loc != parrot_perch.loc)
held_item = parrot_interest
parrot_interest.loc = src
- visible_message("[src] grabs [held_item]!", "\blue You grab [held_item]!", "You hear the sounds of wings flapping furiously.")
+ visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.")
parrot_interest = null
parrot_state = PARROT_SWOOP | PARROT_RETURN
@@ -658,7 +658,7 @@
return -1
if(held_item)
- src << "\red You are already holding [held_item]"
+ src << "You are already holding [held_item]"
return 1
for(var/obj/item/I in view(1,src))
@@ -671,10 +671,10 @@
held_item = I
I.loc = src
- visible_message("[src] grabs [held_item]!", "\blue You grab [held_item]!", "You hear the sounds of wings flapping furiously.")
+ visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.")
return held_item
- src << "\red There is nothing of interest to take."
+ src << "There is nothing of interest to take."
return 0
/mob/living/simple_animal/parrot/proc/steal_from_mob()
@@ -686,7 +686,7 @@
return -1
if(held_item)
- src << "\red You are already holding [held_item]"
+ src << "You are already holding [held_item]"
return 1
var/obj/item/stolen_item = null
@@ -702,10 +702,10 @@
C.u_equip(stolen_item)
held_item = stolen_item
stolen_item.loc = src
- visible_message("[src] grabs [held_item] out of [C]'s hand!", "\blue You snag [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.")
+ visible_message("[src] grabs [held_item] out of [C]'s hand!", "You snag [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.")
return held_item
- src << "\red There is nothing of interest to take."
+ src << "There is nothing of interest to take."
return 0
/mob/living/simple_animal/parrot/verb/drop_held_item_player()
@@ -730,7 +730,7 @@
if(!held_item)
if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you.
- src << "\red You have nothing to drop!"
+ src << "You have nothing to drop!"
return 0
@@ -775,7 +775,7 @@
src.loc = AM.loc
icon_state = "parrot_sit"
return
- src << "\red There is no perch nearby to sit on."
+ src << "There is no perch nearby to sit on."
return
/mob/living/simple_animal/parrot/proc/toggle_mode()
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
index b3df4ea71e7..08944e1e197 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/shade.dm
@@ -59,7 +59,7 @@
health -= damage
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message(" \b [src] has been attacked with [O] by [user].")
+ M.show_message("[src] has been attacked with [O] by [user].")
else
usr << " This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index c8245fb5512..3d920af325b 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -281,7 +281,7 @@
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
for(var/mob/O in viewers(src, null))
- O.show_message("\red \The [M] [M.attacktext] [src]!", 1)
+ O.show_message("\The [M] [M.attacktext] [src]!", 1)
add_logs(M, src, "attacked", admin=0)
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
adjustBruteLoss(damage)
@@ -291,7 +291,7 @@
// FUCK mice. - N3X
if(ismouse(src) && (Proj.stun+Proj.weaken+Proj.paralyze+Proj.agony)>5)
var/mob/living/simple_animal/mouse/M=src
- M << "\red What would probably not kill a human completely overwhelms your tiny body."
+ M << "What would probably not kill a human completely overwhelms your tiny body."
M.splat()
return 0
adjustBruteLoss(Proj.damage)
@@ -307,7 +307,7 @@
if (health > 0)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\blue [M] [response_help] [src].")
+ O.show_message("[M] [response_help] [src].")
if(I_GRAB)
if (M == src || anchored)
@@ -326,13 +326,13 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
+ O.show_message(text("[] has grabbed [] passively!", M, src), 1)
if(I_HURT, I_DISARM)
adjustBruteLoss(harm_intent_damage)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message("\red [M] [response_harm] [src]!")
+ O.show_message("[M] [response_harm] [src]!")
return
@@ -344,7 +344,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1)
+ O.show_message(text("[M] caresses [src] with its scythe like arm."), 1)
if (I_GRAB)
if(M == src || anchored)
return
@@ -363,11 +363,11 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
+ O.show_message(text("[] has grabbed [] passively!", M, src), 1)
if(I_HURT, I_DISARM)
var/damage = rand(15, 30)
- visible_message("\red [M] has slashed at [src]!")
+ visible_message("[M] has slashed at [src]!")
adjustBruteLoss(damage)
return
@@ -376,13 +376,13 @@
switch(L.a_intent)
if(I_HELP)
- visible_message("\blue [L] rubs it's head against [src]")
+ visible_message("[L] rubs it's head against [src]")
else
var/damage = rand(5, 10)
- visible_message("\red [L] bites [src]!")
+ visible_message("[L] bites [src]!")
if(stat != DEAD)
adjustBruteLoss(damage)
@@ -396,7 +396,7 @@
if(M.Victim) return // can't attack while eating!
- visible_message("\red [M.name] glomps [src]!")
+ visible_message("[M.name] glomps [src]!")
var/damage = rand(1, 3)
@@ -424,9 +424,9 @@
del(MED)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\blue [user] applies the [MED] on [src]")
+ M.show_message("[user] applies the [MED] on [src]")
else
- user << "\blue this [src] is dead, medical items won't bring it back to life."
+ user << "this [src] is dead, medical items won't bring it back to life."
if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead.
if(istype(O, /obj/item/weapon/kitchen/utensil/knife/large) || istype(O, /obj/item/weapon/kitchen/utensil/knife/large/butch))
harvest()
@@ -442,12 +442,12 @@
adjustBruteLoss(damage)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [src] has been attacked with the [O] by [user]. ")
+ M.show_message("[src] has been attacked with the [O] by [user]. ")
else
- usr << "\red This weapon is ineffective, it does no damage."
+ usr << "This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [user] gently taps [src] with the [O]. ")
+ M.show_message("[user] gently taps [src] with the [O]. ")
/mob/living/simple_animal/movement_delay()
var/tally = 0 //Incase I need to add stuff other than "speed" later
diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm
index 8c54a231c55..f50ac3dbee2 100644
--- a/code/modules/mob/living/simple_animal/vox.dm
+++ b/code/modules/mob/living/simple_animal/vox.dm
@@ -28,7 +28,7 @@
living_mob_list -= src
dead_mob_list += src
stat = DEAD
- visible_message("\red [src] shudders violently and explodes!","\red You feel your body rupture!")
+ visible_message("[src] shudders violently and explodes!","You feel your body rupture!")
explosion(get_turf(loc), -1, -1, 3, 5)
src.gib()
return
@@ -43,16 +43,16 @@
health -= damage
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b [src] has been attacked with the [O] by [user]. ")
+ M.show_message("[src] has been attacked with the [O] by [user]. ")
else
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red \b The [O] bounces harmlessly off of [src]. ")
+ M.show_message("The [O] bounces harmlessly off of [src]. ")
else
- usr << "\red This weapon is ineffective, it does no damage."
+ usr << "This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
- M.show_message("\red [user] gently taps [src] with the [O]. ")
+ M.show_message("[user] gently taps [src] with the [O]. ")
/mob/living/simple_animal/vox/armalis/verb/fire_quill(mob/target as mob in oview())
@@ -63,10 +63,10 @@
if(quills<=0)
return
- src << "\red You launch a razor-sharp quill at [target]!"
+ src << "You launch a razor-sharp quill at [target]!"
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << "\red [src] launches a razor-sharp quill at [target]!"
+ O << "[src] launches a razor-sharp quill at [target]!"
var/obj/item/weapon/arrow/quill/Q = new(loc)
Q.fingerprintslast = src.ckey
@@ -74,7 +74,7 @@
quills--
spawn(100)
- src << "\red You feel a fresh quill slide into place."
+ src << "You feel a fresh quill slide into place."
quills++
/mob/living/simple_animal/vox/armalis/verb/message_mob()
@@ -99,12 +99,12 @@
src << "Not even the armalis can speak to the dead."
return
- M << "\blue Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]"
+ M << "Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]"
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
if(H.species.name == "Vox")
return
- H << "\red Your nose begins to bleed..."
+ H << "Your nose begins to bleed..."
H.drip(1)
/mob/living/simple_animal/vox/armalis/verb/shriek()
@@ -114,18 +114,18 @@
/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O,/obj/item/vox/armalis_armour))
- user.drop_item(src)
+ user.drop_item(O, src)
armour = O
speed = 1
maxHealth += 200
health += 200
- visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].")
+ visible_message("[src] is quickly outfitted in [O] by [user].","You quickly outfit [src] in [O].")
regenerate_icons()
return
if(istype(O,/obj/item/vox/armalis_amp))
- user.drop_item(src)
+ user.drop_item(O, src)
amp = O
- visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].")
+ visible_message("[src] is quickly outfitted in [O] by [user].","You quickly outfit [src] in [O].")
regenerate_icons()
return
return ..()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index c1b6f1ec6ac..5f0af8070bd 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -294,7 +294,7 @@
if(EQUIP_FAILACTION_DROP)
W.loc=get_turf(src) // I think.
return
- drop_item()
+ drop_item(W)
if(!(put_in_active_hand(wearing)))
equip_to_slot(wearing, slot, redraw_mob)
switch(act_on_fail)
@@ -655,7 +655,7 @@ var/list/slot_equipment_priority = list( \
set name = "Point To"
set category = "Object"
- if(!src || !isturf(src.loc) || !(A in view(src.loc)))
+ if(!src || usr.stat || (usr.status_flags & FAKEDEATH) || !isturf(src.loc) || !(A in view(src.loc)))
return 0
if(istype(A, /obj/effect/decal/point))
@@ -1098,7 +1098,7 @@ var/list/slot_equipment_priority = list( \
else
stat(null, "Garbage Controller is not running.")
- if(processScheduler.getIsRunning())
+ if(processScheduler && processScheduler.getIsRunning())
var/datum/controller/process/process
process = processScheduler.getProcess("vote")
@@ -1221,8 +1221,7 @@ var/list/slot_equipment_priority = list( \
if(ishuman(src))
layer = 3.9
density = 0
- drop_l_hand()
- drop_r_hand()
+ drop_hands()
else
if(ishuman(src))
layer = 4
@@ -1425,9 +1424,9 @@ var/list/slot_equipment_priority = list( \
return
if(self)
- visible_message("[src] rips [selection] out of their body.","You rip [selection] out of your body.")
+ visible_message("[src] rips [selection] out of their body.","You rip [selection] out of your body.")
else
- visible_message("[usr] rips [selection] out of [src]'s body.","[usr] rips [selection] out of your body.")
+ visible_message("[usr] rips [selection] out of [src]'s body.","[usr] rips [selection] out of your body.")
selection.loc = get_turf(src)
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 79124f1b3db..4b767089820 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -79,8 +79,7 @@
allow_upgrade = 0
if(state == GRAB_AGGRESSIVE)
var/h = affecting.hand
- affecting.drop_l_hand()
- affecting.drop_r_hand()
+ affecting.drop_hands()
affecting.hand = h
for(var/obj/item/weapon/grab/G in affecting.grabbed_by)
if(G == src) continue
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 738a8ba3750..d435ca734e1 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -240,7 +240,7 @@
//if(istype(mob.loc, /turf/space) || (mob.flags & NOGRAV))
// if(!mob.Process_Spacemove(0)) return 0
- if((istype(mob.loc, /turf/space)) || ((mob.areaMaster.has_gravity == 0) && (!istype(mob.loc, /obj/spacepod)))) // last section of if statement prevents spacepods being unable to move when the gravity goes down
+ if((istype(mob.loc, /turf/space)) || ((mob.areaMaster && mob.areaMaster.has_gravity == 0) && (!istype(mob.loc, /obj/spacepod)))) // last section of if statement prevents spacepods being unable to move when the gravity goes down
if(!mob.Process_Spacemove(0))
return 0
@@ -516,6 +516,8 @@
return
if (!pulling.Adjacent(src))
return
+ if(!isturf(pulling.loc))
+ return
if (A == loc && pulling.density)
return
if (!Process_Spacemove(get_dir(pulling.loc, A)))
diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm
index bea08693fbc..a90b7410674 100644
--- a/code/modules/mob/mob_transformation_simple.dm
+++ b/code/modules/mob/mob_transformation_simple.dm
@@ -5,7 +5,7 @@
/mob/proc/change_mob_type(var/new_type = null, var/turf/location = null, var/new_name = null as text, var/delete_old_mob = 0 as num)
if(istype(src,/mob/new_player))
- usr << "\red cannot convert players who have not entered yet."
+ usr << "cannot convert players who have not entered yet."
return
if(!new_type)
@@ -19,7 +19,7 @@
return
if( new_type == /mob/new_player )
- usr << "\red cannot convert into a new_player mob type."
+ usr << "cannot convert into a new_player mob type."
return
var/mob/M
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 7c54df27fed..26b8dd91676 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -134,7 +134,7 @@
observer.started_as_observer = 1
close_spawn_windows()
var/obj/O = locate("landmark*Observer-Start")
- src << "\blue Now teleporting."
+ src << "Now teleporting."
observer.loc = O.loc
observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly.
@@ -156,7 +156,7 @@
if(href_list["late_join"])
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
- usr << "\red The round is either not ready, or has already finished..."
+ usr << "The round is either not ready, or has already finished..."
return
if(client.prefs.species != "Human")
@@ -173,7 +173,7 @@
if(href_list["SelectedJob"])
if(!enter_allowed)
- usr << "\blue There is an administrative lock on entering the game!"
+ usr << "There is an administrative lock on entering the game!"
return
if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist)
@@ -320,10 +320,10 @@
if (src != usr)
return 0
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
- usr << "\red The round is either not ready, or has already finished..."
+ usr << "The round is either not ready, or has already finished..."
return 0
if(!enter_allowed)
- usr << "\blue There is an administrative lock on entering the game!"
+ usr << "There is an administrative lock on entering the game!"
return 0
if(!IsJobAvailable(rank))
src << alert("[rank] is not available. Please try another.")
@@ -338,6 +338,25 @@
character.loc = pick(latejoin)
character.store_position()
+ if(bomberman_mode)
+ character.client << sound('sound/bomberman/start.ogg')
+ if(character.wear_suit)
+ var/obj/item/O = character.wear_suit
+ character.u_equip(O)
+ O.loc = character.loc
+ O.dropped(character)
+ if(character.head)
+ var/obj/item/O = character.head
+ character.u_equip(O)
+ O.loc = character.loc
+ O.dropped(character)
+ character.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/bomberman(character), slot_head)
+ character.equip_to_slot_or_del(new /obj/item/clothing/suit/space/bomberman(character), slot_wear_suit)
+ character.equip_to_slot_or_del(new /obj/item/weapon/bomberman/(character), slot_s_store)
+ character.update_icons()
+ character << "Tip: Use the BBD in your suit's pocket to place bombs."
+ character << "Try to keep your BBD and escape this hell hole alive!"
+
ticker.mode.latespawn(character)
//ticker.mode.latespawn(character)
@@ -424,15 +443,10 @@ Round Duration: [round(hours)]h [round(mins)]m "}
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
- if(mind)
- mind.active = 0 //we wish to transfer the key manually
- if(mind.assigned_role == "Clown") //give them a clownname if they are a clown
- new_character.real_name = pick(clown_names) //I hate this being here of all places but unfortunately dna is based on real_name!
- new_character.rename_self("clown")
- else if(mind.assigned_role == "Mime")
- new_character.rename_self("mime")
+ if (mind)
+ mind.active = 0 // we wish to transfer the key manually
mind.original = new_character
- mind.transfer_to(new_character) //won't transfer key since the mind is not active
+ mind.transfer_to(new_character) // won't transfer key since the mind is not active
new_character.name = real_name
new_character.dna.ready_dna(new_character)
diff --git a/code/modules/mob/new_player/poll.dm b/code/modules/mob/new_player/poll.dm
index 9fe424058cf..2cb27838af9 100644
--- a/code/modules/mob/new_player/poll.dm
+++ b/code/modules/mob/new_player/poll.dm
@@ -103,7 +103,7 @@
break
if(!found)
- usr << "\red Poll question details not found."
+ usr << "Poll question details not found."
return
switch(polltype)
@@ -398,7 +398,7 @@
break
if(!validpoll)
- usr << "\red Poll is not valid."
+ usr << "Poll is not valid."
return
var/DBQuery/select_query2 = dbcon.NewQuery("SELECT id FROM erro_poll_option WHERE id = [optionid] AND pollid = [pollid]")
@@ -411,7 +411,7 @@
break
if(!validoption)
- usr << "\red Poll option is not valid."
+ usr << "Poll option is not valid."
return
var/alreadyvoted = 0
@@ -425,11 +425,11 @@
break
if(!multichoice && alreadyvoted)
- usr << "\red You already voted in this poll."
+ usr << "You already voted in this poll."
return
if(multichoice && (alreadyvoted >= multiplechoiceoptions))
- usr << "\red You already have more than [multiplechoiceoptions] logged votes on this poll. Enough is enough. Contact the database admin if this is an error."
+ usr << "You already have more than [multiplechoiceoptions] logged votes on this poll. Enough is enough. Contact the database admin if this is an error."
return
var/adminrank = "Player"
@@ -440,7 +440,7 @@
var/DBQuery/insert_query = dbcon.NewQuery("INSERT INTO erro_poll_vote (id ,datetime ,pollid ,optionid ,ckey ,ip ,adminrank) VALUES (null, Now(), [pollid], [optionid], '[usr.ckey]', '[usr.client.address]', '[adminrank]')")
insert_query.Execute()
- usr << "\blue Vote successful."
+ usr << "Vote successful."
usr << browse(null,"window=playerpoll")
@@ -465,7 +465,7 @@
break
if(!validpoll)
- usr << "\red Poll is not valid."
+ usr << "Poll is not valid."
return
var/alreadyvoted = 0
@@ -478,7 +478,7 @@
break
if(alreadyvoted)
- usr << "\red You already sent your feedback for this poll."
+ usr << "You already sent your feedback for this poll."
return
var/adminrank = "Player"
@@ -498,7 +498,7 @@
var/DBQuery/insert_query = dbcon.NewQuery("INSERT INTO erro_poll_textreply (id ,datetime ,pollid ,ckey ,ip ,replytext ,adminrank) VALUES (null, Now(), [pollid], '[usr.ckey]', '[usr.client.address]', '[replytext]', '[adminrank]')")
insert_query.Execute()
- usr << "\blue Feedback logging successful."
+ usr << "Feedback logging successful."
usr << browse(null,"window=playerpoll")
@@ -523,7 +523,7 @@
break
if(!validpoll)
- usr << "\red Poll is not valid."
+ usr << "Poll is not valid."
return
var/DBQuery/select_query2 = dbcon.NewQuery("SELECT id FROM erro_poll_option WHERE id = [optionid] AND pollid = [pollid]")
@@ -536,7 +536,7 @@
break
if(!validoption)
- usr << "\red Poll option is not valid."
+ usr << "Poll option is not valid."
return
var/alreadyvoted = 0
@@ -549,7 +549,7 @@
break
if(alreadyvoted)
- usr << "\red You already voted in this poll."
+ usr << "You already voted in this poll."
return
var/adminrank = "Player"
@@ -560,5 +560,5 @@
var/DBQuery/insert_query = dbcon.NewQuery("INSERT INTO erro_poll_vote (id ,datetime ,pollid ,optionid ,ckey ,ip ,adminrank, rating) VALUES (null, Now(), [pollid], [optionid], '[usr.ckey]', '[usr.client.address]', '[adminrank]', [(isnull(rating)) ? "null" : rating])")
insert_query.Execute()
- usr << "\blue Vote successful."
+ usr << "Vote successful."
usr << browse(null,"window=playerpoll")
\ No newline at end of file
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 64585092bba..f30573b6e91 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -320,6 +320,44 @@
icon_state = "hair_toriyama2"
gender = MALE
+ birdnest
+ name = "Bird Nest"
+ icon_state = "hair_birdnest"
+
+ unkept
+ name = "Unkempt"
+ icon_state = "hair_unkept"
+
+ duelist
+ name = "Duelist"
+ icon_state = "hair_duelist"
+ gender = MALE
+
+ fastline
+ name = "Fastline"
+ icon_state = "hair_fastline"
+ gender = MALE
+
+ modern
+ name = "Modern"
+ icon_state = "hair_modern"
+ gender = FEMALE
+
+ unshavenmohawk
+ name = "Unshaven Mohawk"
+ icon_state = "hair_unshavenmohawk"
+ gender = MALE
+
+ drills
+ name = "Twincurls"
+ icon_state = "hair_twincurl"
+ gender = FEMALE
+
+ minidrills
+ name = "Twincurls 2"
+ icon_state = "hair_twincurl2"
+ gender = FEMALE
+
cia
name = "CIA"
icon_state = "hair_cia"
@@ -498,6 +536,26 @@
name = "Dwarf Beard"
icon_state = "facial_dwarf"
+ britstache
+ name = "Brit Stache"
+ icon_state = "facial_britstache"
+
+ martialartist
+ name = "Martial Artist"
+ icon_state = "facial_martialartist"
+
+ moonshiner
+ name = "Moonshiner"
+ icon_state = "facial_moonshiner"
+
+ tribeard
+ name = "Tri-beard"
+ icon_state = "facial_tribeard"
+
+ unshaven
+ name = "Unshaven"
+ icon_state = "facial_unshaven"
+
// Before Goon gets all hot and bothered for "stealing":
// A. It's property of SEGA in the first place
// B. I sprited this by hand, despite Steve's pleas to the contrary. I've never played on your server and probably never will.
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 8c8537428b5..c8894e1d98e 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -24,6 +24,8 @@
usr << "Speech is currently admin-disabled."
return
+ if(!usr.stat && (usr.status_flags & FAKEDEATH))
+ usr << "Doing this will give us away!"
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
if(ishuman(src) || isrobot(src))
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index bbe56002fc7..465dcb1bf17 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -357,7 +357,7 @@
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
if(!safe_animal(mobpath))
- usr << "\red Sorry but this mob type is currently unavailable."
+ usr << "Sorry but this mob type is currently unavailable."
return
if(monkeyizing)
@@ -391,7 +391,7 @@
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
if(!safe_animal(mobpath))
- usr << "\red Sorry but this mob type is currently unavailable."
+ usr << "Sorry but this mob type is currently unavailable."
return
var/mob/new_mob = new mobpath(get_turf(src))
diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm
index c63273566c5..1c47fd02156 100644
--- a/code/modules/nano/nanoui.dm
+++ b/code/modules/nano/nanoui.dm
@@ -508,7 +508,7 @@ nanoui is used to open and update nano browser uis
if(!newz || isnull(newz))
return 0
if(newz < 1 || newz > 6 || newz == 2)
- usr << "\red Unable to establish a connection"
+ usr << "Unable to establish a connection"
return 0
if(newz != map_z_level)
set_map_z_level(newz)
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index d9fdc5ecbc5..75be0a6f38b 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -86,10 +86,10 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
pale = 1
//update_body()
var/word = pick("dizzy","woosey","faint")
- src << "\red You feel [word]"
+ src << "You feel [word]"
if(prob(1))
var/word = pick("dizzy","woosey","faint")
- src << "\red You feel [word]"
+ src << "You feel [word]"
if(oxyloss < 20)
oxyloss += 2
if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY)
@@ -103,7 +103,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
if(prob(15))
Paralyse(rand(1,3))
var/word = pick("dizzy","woosey","faint")
- src << "\red You feel extremely [word]"
+ src << "You feel extremely [word]"
if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD)
if(!pale)
pale = 1
@@ -112,7 +112,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
toxloss += 1
if(prob(15))
var/word = pick("dizzy","woosey","faint")
- src << "\red You feel extremely [word]"
+ src << "You feel extremely [word]"
if(0 to BLOOD_VOLUME_SURVIVE)
// Kill then pretty fast, but don't overdo it
// I SAID DON'T OVERDO IT
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index db7f0ff1558..603315f7e33 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -32,7 +32,7 @@
// Internal organs of this body part
var/list/datum/organ/internal/internal_organs
- var/damage_msg = "\red You feel an intense pain"
+ var/damage_msg = "You feel an intense pain"
var/broken_description
var/open = 0
@@ -227,8 +227,8 @@ This function completely restores a damaged organ to perfect condition.
if(W.amount == 1 && W.started_healing())
W.open_wound(damage)
if(prob(25))
- owner.visible_message("\red The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\
- "\red The wound on your [display_name] widens with a nasty ripping voice.",\
+ owner.visible_message("The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\
+ "The wound on your [display_name] widens with a nasty ripping voice.",\
"You hear a nasty ripping noise, as if flesh is being torn apart.")
return
@@ -602,7 +602,7 @@ Note that amputating the affected organ does in fact remove the infection from t
if(organ)
owner.visible_message("[owner.name]'s [display_name] flies off in an arc.",\
- "Your [display_name] goes flying off!",\
+ "Your [display_name] goes flying off!",\
"You hear a terrible sound of ripping tendons and flesh.")
//Throw organs around
@@ -676,7 +676,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/datum/organ/external/proc/fracture()
if(status & ORGAN_BROKEN)
return
- owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.")
+ owner.visible_message("You hear a loud cracking sound coming from \the [owner].","Something feels like it shattered in your [display_name]!","You hear a sickening crack.")
if(owner.species && !(owner.species.flags & NO_PAIN))
owner.emote("scream",,, 1)
@@ -802,7 +802,7 @@ Note that amputating the affected organ does in fact remove the infection from t
return
if(is_broken())
- owner.u_equip(c_hand)
+ owner.drop_item(c_hand)
var/emote_scream = pick("screams in pain and", "lets out a sharp cry and", "cries out and")
owner.emote("me", 1, "[(owner.species && owner.species.flags & NO_PAIN) ? "" : emote_scream ] drops what they were holding in their [hand_name]!")
if(is_malfunctioning())
@@ -824,7 +824,7 @@ Note that amputating the affected organ does in fact remove the infection from t
W.add_blood(owner)
if(ismob(W.loc))
var/mob/living/H = W.loc
- H.drop_item()
+ H.drop_item(W)
W.loc = owner
/****************************************************
@@ -1066,13 +1066,13 @@ Note that amputating the affected organ does in fact remove the infection from t
if (disfigured)
return
if(type == "brute")
- owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s face.", \
- "\red Your face becomes unrecognizible mangled mess!", \
- "\red You hear a sickening crack.")
+ owner.visible_message("You hear a sickening cracking sound coming from \the [owner]'s face.", \
+ "Your face becomes unrecognizible mangled mess!", \
+ "You hear a sickening crack.")
else
- owner.visible_message("\red [owner]'s face melts away, turning into mangled mess!", \
- "\red Your face melts off!", \
- "\red You hear a sickening sizzle.")
+ owner.visible_message("[owner]'s face melts away, turning into mangled mess!", \
+ "Your face melts off!", \
+ "You hear a sickening sizzle.")
disfigured = 1
/****************************************************
@@ -1215,17 +1215,17 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)
switch(brain_op_stage)
if(0)
for(var/mob/O in (oviewers(brainmob) - user))
- O.show_message("\red [brainmob] is beginning to have \his head cut open with [W] by [user].", 1)
- brainmob << "\red [user] begins to cut open your head with [W]!"
- user << "\red You cut [brainmob]'s head open with [W]!"
+ O.show_message("[brainmob] is beginning to have \his head cut open with [W] by [user].", 1)
+ brainmob << "[user] begins to cut open your head with [W]!"
+ user << "You cut [brainmob]'s head open with [W]!"
brain_op_stage = 1
if(2)
for(var/mob/O in (oviewers(brainmob) - user))
- O.show_message("\red [brainmob] is having \his connections to the brain delicately severed with [W] by [user].", 1)
- brainmob << "\red [user] begins to cut open your head with [W]!"
- user << "\red You cut [brainmob]'s head open with [W]!"
+ O.show_message("[brainmob] is having \his connections to the brain delicately severed with [W] by [user].", 1)
+ brainmob << "[user] begins to cut open your head with [W]!"
+ user << "You cut [brainmob]'s head open with [W]!"
brain_op_stage = 3.0
else
@@ -1234,16 +1234,16 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)
switch(brain_op_stage)
if(1)
for(var/mob/O in (oviewers(brainmob) - user))
- O.show_message("\red [brainmob] has \his head sawed open with [W] by [user].", 1)
- brainmob << "\red [user] begins to saw open your head with [W]!"
- user << "\red You saw [brainmob]'s head open with [W]!"
+ O.show_message("[brainmob] has \his head sawed open with [W] by [user].", 1)
+ brainmob << "[user] begins to saw open your head with [W]!"
+ user << "You saw [brainmob]'s head open with [W]!"
brain_op_stage = 2
if(3)
for(var/mob/O in (oviewers(brainmob) - user))
- O.show_message("\red [brainmob] has \his spine's connection to the brain severed with [W] by [user].", 1)
- brainmob << "\red [user] severs your brain's connection to the spine with [W]!"
- user << "\red You sever [brainmob]'s brain's connection to the spine with [W]!"
+ O.show_message("[brainmob] has \his spine's connection to the brain severed with [W] by [user].", 1)
+ brainmob << "[user] severs your brain's connection to the spine with [W]!"
+ user << "You sever [brainmob]'s brain's connection to the spine with [W]!"
user.attack_log += "\[[time_stamp()]\] Debrained [brainmob.name] ([brainmob.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)])"
brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)])"
diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm
index fcfc2f9b4f1..94129f311bb 100644
--- a/code/modules/organs/organ_internal.dm
+++ b/code/modules/organs/organ_internal.dm
@@ -194,7 +194,7 @@
..()
if (germ_level > INFECTION_LEVEL_ONE)
if(prob(1))
- owner << "\red Your skin itches."
+ owner << "Your skin itches."
if (germ_level > INFECTION_LEVEL_TWO)
if(prob(1))
spawn owner.vomit()
diff --git a/code/modules/organs/organ_objects.dm b/code/modules/organs/organ_objects.dm
index 794276e772b..db45dc666d2 100644
--- a/code/modules/organs/organ_objects.dm
+++ b/code/modules/organs/organ_objects.dm
@@ -219,7 +219,7 @@
if(robotic)
return
- user << "\blue You take an experimental bite out of \the [src]."
+ user << "You take an experimental bite out of \the [src]."
var/datum/reagent/blood = reagents.reagent_list["blood"]
blood_splatter(src,blood,1)
diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm
index debc0518af1..79c7ced6f82 100644
--- a/code/modules/organs/pain.dm
+++ b/code/modules/organs/pain.dm
@@ -28,13 +28,13 @@ mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0
if(burning)
switch(amount)
if(1 to 10)
- msg = "\red Your [partname] burns."
+ msg = "Your [partname] burns."
if(11 to 90)
flash_weak_pain()
- msg = "\red Your [partname] burns badly!"
+ msg = "Your [partname] burns badly!"
if(91 to 10000)
flash_pain()
- msg = "\red OH GOD! Your [partname] is on fire!"
+ msg = "OH GOD! Your [partname] is on fire!"
else
switch(amount)
if(1 to 10)
@@ -64,9 +64,9 @@ mob/living/carbon/human/proc/custom_pain(var/message, var/flash_strength)
return
if(analgesic)
return
- var/msg = "\red [message]"
+ var/msg = "[message]"
if(flash_strength >= 1)
- msg = "\red [message]"
+ msg = "[message]"
// Anti message spam checks
if(msg && ((msg != last_pain_message) || (world.time >= next_pain_time)))
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index f06afb42db8..0cee6afe816 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -46,7 +46,7 @@
/obj/item/weapon/clipboard/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo))
- user.drop_item(src)
+ user.drop_item(W, src)
if(istype(W, /obj/item/weapon/paper))
toppaper = W
user << "You clip the [W] onto \the [src]."
@@ -97,7 +97,7 @@
if(!haspen)
if(istype(usr.get_active_hand(), /obj/item/weapon/pen))
var/obj/item/weapon/pen/W = usr.get_active_hand()
- usr.drop_item(src)
+ usr.drop_item(W, src)
haspen = W
usr << "You slot the pen into \the [src]."
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index ff6ec357781..8157d829fd7 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -36,7 +36,7 @@
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob)
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo))
user << "You put [P] in [src]."
- user.drop_item(src)
+ user.drop_item(P, src)
icon_state = "[initial(icon_state)]-open"
sleep(5)
icon_state = initial(icon_state)
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 3ae9515013c..c087871f361 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -33,7 +33,7 @@
/obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo))
- user.drop_item(src)
+ user.drop_item(W, src)
user << "You put the [W] into \the [src]."
update_icon()
else if(istype(W, /obj/item/weapon/pen))
diff --git a/code/modules/paperwork/nano_paper.dm b/code/modules/paperwork/nano_paper.dm
index d23e5f79b79..63cb3015939 100644
--- a/code/modules/paperwork/nano_paper.dm
+++ b/code/modules/paperwork/nano_paper.dm
@@ -34,7 +34,7 @@
// return
var/n_name = copytext(sanitize(input(usr, "What would you like to label the [src]?", "[src] Labelling", null) as text), 1, MAX_NAME_LEN)
- if((loc == usr && usr.stat == 0))
+ if((loc == usr && !usr.stat && !(usr.status_flags & FAKEDEATH)))
name = "[src][(n_name ? text("- '[n_name]'") : null)]"
add_fingerprint(usr)
return
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 1da3a3adac0..5c100fb4639 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -72,7 +72,7 @@
usr << "You cut yourself on [src]."
return
var/n_name = copytext(sanitize(input(usr, "What would you like to label [src]?", "Paper Labelling", null) as text), 1, MAX_NAME_LEN)
- if((loc == usr && usr.stat == 0))
+ if((loc == usr && !usr.stat && !(usr.status_flags & FAKEDEATH)))
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
add_fingerprint(usr)
return
@@ -286,7 +286,7 @@
user << "This paper already has a photo attached."
return
img = P
- user.drop_item(src)
+ user.drop_item(P, src)
user << "You attach the photo to the piece of paper."
add_fingerprint(user)
return
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index f746d094725..859c2631d04 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -70,7 +70,7 @@
if(!istype(i))
return
- user.drop_item(src)
+ user.drop_item(i, src)
user << "You put [i] in [src]."
papers.Add(i)
amount++
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 9a3d54f44a9..a4ac8f07074 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -193,7 +193,7 @@ var/paperwork_library
return style.Format(text,src,user,P)
/obj/item/weapon/pen/suicide_act(mob/user)
- viewers(user) << "\red [user]is jamming the [src.name]into \his ear! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user]is jamming the [src.name]into \his ear! It looks like \he's trying to commit suicide."
return(OXYLOSS)
/obj/item/weapon/pen/blue
@@ -216,7 +216,7 @@ var/paperwork_library
if(!ismob(M))
return
user << "You stab [M] with the pen."
- M << "\red You feel a tiny prick!"
+ M << "You feel a tiny prick!"
M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [user.name] ([user.ckey])")
user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [M.name] ([M.ckey])")
msg_admin_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey]) (JMP)")
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 16b6aad6150..3e93e3f5bcc 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -267,7 +267,7 @@
copying = 0
if(istype(O, /obj/item/weapon/paper))
if(copier_empty())
- user.drop_item(src)
+ user.drop_item(O, src)
copy = O
user << "You insert [O] into [src]."
flick("bigscanner1", src)
@@ -276,7 +276,7 @@
user << "There is already something in [src]."
else if(istype(O, /obj/item/weapon/photo))
if(copier_empty())
- user.drop_item(src)
+ user.drop_item(O, src)
photocopy = O
user << "You insert [O] into [src]."
flick("bigscanner1", src)
@@ -285,7 +285,7 @@
user << "There is already something in [src]."
else if(istype(O, /obj/item/device/toner))
if(toner <= 0)
- user.drop_item()
+ user.drop_item(O)
qdel(O)
toner = 40
user << "You insert [O] into [src]."
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index 6572b9558d4..0d01183f93b 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -73,7 +73,7 @@
var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN)
//loc.loc check is for making possible renaming photos in clipboards
- if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0)
+ if((loc == usr || loc.loc && loc.loc == usr) && !usr.stat && !(usr.status_flags & FAKEDEATH))
name = "photo[(n_name ? text("- '[n_name]'") : null)]"
add_fingerprint(usr)
@@ -157,7 +157,7 @@
user << "[src] still has some film in it!"
return
user << "You insert [I] into [src]."
- user.drop_item()
+ user.drop_item(I)
qdel(I)
pictures_left = pictures_max
icon_state = icon_on
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index 050c4a7e625..9fd8052f69d 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -173,12 +173,12 @@
src.anchored = 0
disconnect_from_network()
else
- user << "\red Once bolted and linked to a shielding unit it the [src.name] is unable to be moved!"
+ user << "Once bolted and linked to a shielding unit it the [src.name] is unable to be moved!"
return
if(istype(W, /obj/item/weapon/am_containment))
if(fueljar)
- user << "\red There is already a [fueljar] inside!"
+ user << "There is already a [fueljar] inside!"
return
fueljar = W
if(user.client)
diff --git a/code/modules/power/antimatter/engine.dm b/code/modules/power/antimatter/engine.dm
index 77512fb5b0b..936ecc50d0e 100644
--- a/code/modules/power/antimatter/engine.dm
+++ b/code/modules/power/antimatter/engine.dm
@@ -109,7 +109,7 @@
antiH_fuel = residual_matter
for(var/mob/M in hearers(src, null))
- M.show_message(text("\red You hear a loud bang!"))
+ M.show_message(text("You hear a loud bang!"))
//Q = k x (delta T)
@@ -161,7 +161,7 @@
if(energy > convert2energy(8e-12)) //TOO MUCH ENERGY
for(var/mob/M in hearers(src, null))
- M.show_message(text("\red You hear a loud whirring!"))
+ M.show_message(text("You hear a loud whirring!"))
sleep(20)
//Q = k x (delta T)
@@ -180,7 +180,7 @@
if(energy > convert2energy(8e-12)) //FAR TOO MUCH ENERGY STILL
for(var/mob/M in hearers(src, null))
- M.show_message(text("\red BANG!"))
+ M.show_message(text("BANG!"))
new /obj/effect/bhole(src.loc)
else //this amount of energy is okay so it does the proper output thing
diff --git a/code/modules/power/antimatter/fuel.dm b/code/modules/power/antimatter/fuel.dm
index f046bce4a0b..acfd20b8047 100644
--- a/code/modules/power/antimatter/fuel.dm
+++ b/code/modules/power/antimatter/fuel.dm
@@ -76,7 +76,7 @@
if("Anti-Hydrogen")
M.gib()
if("Hydrogen")
- M << "\blue You feel very light, as if you might just float away..."
+ M << "You feel very light, as if you might just float away..."
del(src)
return
@@ -95,5 +95,5 @@
return
else
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [M] ate the [content ? content : "empty canister"]!"), 1)
+ O.show_message(text("[M] ate the [content ? content : "empty canister"]!"), 1)
src.injest(M)
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index 6a8758e411f..f19c66d50b9 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -73,7 +73,7 @@ proc/cardinalrange(var/center)
/obj/machinery/am_shielding/Destroy()
if(control_unit) control_unit.remove_shielding(src)
if(processing) shutdown_core()
- visible_message("\red The [src.name] melts!")
+ visible_message("The [src.name] melts!")
power_machines -= src
//Might want to have it leave a mess on the floor but no sprites for now
..()
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index e1428dfb098..effa3476f03 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -355,7 +355,7 @@
if (istype(W, /obj/item/weapon/crowbar) && opened)
if (has_electronics==1)
if (terminal)
- user << "\red Disconnect wires first."
+ user << "Disconnect wires first."
return
playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
user << "You are trying to remove the power control board..." //lpeters - fixed grammar issues
@@ -363,13 +363,13 @@
has_electronics = 0
if ((stat & BROKEN) || malfhack)
user.visible_message(\
- "\red [user.name] has broken the power control board inside [src.name]!",\
+ "[user.name] has broken the power control board inside [src.name]!",\
"You broke the charred power control board and remove the remains.",
"You hear a crack!")
//ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
else
user.visible_message(\
- "\red [user.name] has removed the power control board from [src.name]!",\
+ "[user.name] has removed the power control board from [src.name]!",\
"You remove the power control board.")
new /obj/item/weapon/module/power_control(loc)
else if (opened!=2) //cover isn't removed
@@ -377,7 +377,7 @@
update_icon()
else if (istype(W, /obj/item/weapon/crowbar) && !((stat & BROKEN) || malfhack) )
if(coverlocked && !(stat & MAINT))
- user << "\red The cover is locked and cannot be opened."
+ user << "The cover is locked and cannot be opened."
return
else
opened = 1
@@ -388,19 +388,19 @@
return
else
if (stat & MAINT)
- user << "\red There is no connector for your power cell."
+ user << "There is no connector for your power cell."
return
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user.visible_message(\
- "\red [user.name] has inserted the power cell to [src.name]!",\
+ "[user.name] has inserted the power cell to [src.name]!",\
"You insert the power cell.")
chargecount = 0
update_icon()
else if (istype(W, /obj/item/weapon/screwdriver)) // haxing
if(opened)
if (cell)
- user << "\red Close the APC first." //Less hints more mystery!
+ user << "Close the APC first." //Less hints more mystery!
return
else
if (has_electronics==1 && terminal)
@@ -414,7 +414,7 @@
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
user << "You unfasten the electronics."
else /* has_electronics==0 */
- user << "\red There is nothing to secure."
+ user << "There is nothing to secure."
return
update_icon()
else if(emagged)
@@ -439,7 +439,7 @@
user << "You [ locked ? "lock" : "unlock"] the APC interface."
update_icon()
else
- user << "\red Access denied."
+ user << "Access denied."
else if (istype(W, /obj/item/weapon/card/emag) && !(emagged || malfhack)) // trying to unlock with an emag card
if(opened)
user << "You must close the cover to swipe an ID card."
@@ -459,11 +459,11 @@
user << "You fail to [ locked ? "unlock" : "lock"] the APC interface."
else if (istype(W, /obj/item/stack/cable_coil) && !terminal && opened && has_electronics!=2)
if (src.loc:intact)
- user << "\red You must remove the floor plating in front of the APC first."
+ user << "You must remove the floor plating in front of the APC first."
return
var/obj/item/stack/cable_coil/C = W
if(C.amount < 10)
- user << "\red You need more wires."
+ user << "You need more wires."
return
user << "You start adding cables to the APC frame..."
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
@@ -477,13 +477,13 @@
return
C.use(10)
user.visible_message(\
- "\red [user.name] has added cables to the APC frame!",\
+ "[user.name] has added cables to the APC frame!",\
"You add cables to the APC frame.")
make_terminal()
terminal.connect_to_network()
else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened && has_electronics!=2)
if (src.loc:intact)
- user << "\red You must remove the floor plating in front of the APC first."
+ user << "You must remove the floor plating in front of the APC first."
return
user << "You begin to cut the cables..."
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
@@ -495,7 +495,7 @@
return
new /obj/item/stack/cable_coil(loc,10)
user.visible_message(\
- "\red [user.name] cut the cables and dismantled the power terminal.",\
+ "[user.name] cut the cables and dismantled the power terminal.",\
"You cut the cables and dismantle the power terminal.")
del(terminal)
else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack))
@@ -506,12 +506,12 @@
user << "You place the power control board inside the frame."
del(W)
else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && ((stat & BROKEN) || malfhack))
- user << "\red You cannot put the board inside, the frame is damaged."
+ user << "You cannot put the board inside, the frame is damaged."
return
else if (istype(W, /obj/item/weapon/weldingtool) && opened && has_electronics==0 && !terminal)
var/obj/item/weapon/weldingtool/WT = W
if (WT.get_fuel() < 3)
- user << "\blue You need more welding fuel to complete this task."
+ user << "You need more welding fuel to complete this task."
return
user << "You start welding the APC frame..."
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
@@ -521,15 +521,15 @@
var/obj/item/stack/sheet/metal/M = getFromPool(/obj/item/stack/sheet/metal, get_turf(src))
M.amount = 1
user.visible_message(\
- "\red [src] has been cut apart by [user.name] with the weldingtool.",\
+ "[src] has been cut apart by [user.name] with the weldingtool.",\
"You disassembled the broken APC frame.",\
- "\red You hear welding.")
+ "You hear welding.")
else
new /obj/item/mounted/frame/apc_frame(loc)
user.visible_message(\
- "\red [src] has been cut from the wall by [user.name] with the weldingtool.",\
+ "[src] has been cut from the wall by [user.name] with the weldingtool.",\
"You cut the APC frame from the wall.",\
- "\red You hear welding.")
+ "You hear welding.")
qdel(src)
return
else if (istype(W, /obj/item/mounted/frame/apc_frame) && opened && emagged)
@@ -537,7 +537,7 @@
if (opened==2)
opened = 1
user.visible_message(\
- "\red [user.name] has replaced the damaged APC frontal panel with a new one.",\
+ "[user.name] has replaced the damaged APC frontal panel with a new one.",\
"You replace the damaged APC frontal panel with a new one.")
del(W)
update_icon()
@@ -548,7 +548,7 @@
user << "You begin to replace the damaged APC frame..."
if(do_after(user, 50))
user.visible_message(\
- "\red [user.name] has replaced the damaged APC frame with new one.",\
+ "[user.name] has replaced the damaged APC frame with new one.",\
"You replace the damaged APC frame with new one.")
del(W)
stat &= ~BROKEN
@@ -568,8 +568,8 @@
) \
&& prob(20) )
opened = 2
- user.visible_message("\red The APC cover was knocked down with the [W.name] by [user.name]!", \
- "\red You knock down the APC cover with your [W.name]!", \
+ user.visible_message("The APC cover was knocked down with the [W.name] by [user.name]!", \
+ "You knock down the APC cover with your [W.name]!", \
"You hear bang")
update_icon()
else
@@ -579,8 +579,8 @@
(istype(W, /obj/item/device/multitool) || \
istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/assembly/signaler)))
return src.attack_hand(user)
- user.visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!", \
- "\red You hit the [src.name] with your [W.name]!", \
+ user.visible_message("The [src.name] has been hit with the [W.name] by [user.name]!", \
+ "You hit the [src.name] with your [W.name]!", \
"You hear bang")
// attack with hand - remove cell (if cover open) or interact with the APC
@@ -603,7 +603,7 @@
cell.updateicon()
src.cell = null
- user.visible_message("\red [user.name] removes the power cell from [src.name]!", "You remove the power cell.")
+ user.visible_message("[user.name] removes the power cell from [src.name]!", "You remove the power cell.")
//user << "You remove the power cell."
charging = 0
src.update_icon()
@@ -622,7 +622,7 @@
if(!user)
return
user.delayNextAttack(8)
- user.visible_message("\red [user.name] slashes at the [src.name]!", "\blue You slash at the [src.name]!")
+ user.visible_message("[user.name] slashes at the [src.name]!", "You slash at the [src.name]!")
playsound(get_turf(src), 'sound/weapons/slash.ogg', 100, 1)
var/allcut = wires.IsAllCut()
@@ -630,12 +630,12 @@
if(beenhit >= pick(3, 4) && wiresexposed != 1)
wiresexposed = 1
src.update_icon()
- src.visible_message("\red The [src.name]'s cover flies open, exposing the wires!")
+ src.visible_message("The [src.name]'s cover flies open, exposing the wires!")
else if(wiresexposed == 1 && allcut == 0)
wires.CutAll()
src.update_icon()
- src.visible_message("\red The [src.name]'s wires are shredded!")
+ src.visible_message("The [src.name]'s wires are shredded!")
else
beenhit += 1
return
@@ -755,7 +755,7 @@
/obj/machinery/power/apc/proc/can_use(mob/user as mob, var/loud = 0) //used by attack_hand() and Topic()
if (user.stat && !isobserver(user))
- user << "\red You must be conscious to use this [src]!"
+ user << "You must be conscious to use this [src]!"
return 0
if(!user.client)
return 0
@@ -763,15 +763,15 @@
istype(user, /mob/living/silicon) || \
istype(user, /mob/dead/observer) || \
istype(user, /mob/living/carbon/monkey) /*&& ticker && ticker.mode.name == "monkey"*/) )
- user << "\red You don't have the dexterity to use this [src]!"
+ user << "You don't have the dexterity to use this [src]!"
nanomanager.close_user_uis(user, src)
return 0
if(user.restrained())
- user << "\red You must have free hands to use this [src]"
+ user << "You must have free hands to use this [src]"
return 0
if(user.lying)
- user << "\red You must stand to use this [src]!"
+ user << "You must stand to use this [src]!"
return 0
if (istype(user, /mob/living/silicon))
var/mob/living/silicon/ai/AI = user
@@ -785,14 +785,14 @@
) \
)
if(!loud)
- user << "\red \The [src] have AI control disabled!"
+ user << "\The [src] have AI control disabled!"
nanomanager.close_user_uis(user, src)
return 0
else if(isobserver(user))
if(malfhack && istype(malfai) && !isAdminGhost(user))
if(!loud)
- user << "\red \The [src] have AI control disabled!"
+ user << "\The [src] have AI control disabled!"
nanomanager.close_user_uis(user, src)
return 0
else
@@ -805,10 +805,10 @@
if (istype(H))
if(H.getBrainLoss() >= 60)
for(var/mob/M in viewers(src, null))
- M << "\red [H] stares cluelessly at [src] and drools."
+ M << "[H] stares cluelessly at [src] and drools."
return 0
else if(prob(H.getBrainLoss()))
- user << "\red You momentarily forget how to use [src]."
+ user << "You momentarily forget how to use [src]."
return 0
return 1
@@ -959,7 +959,7 @@
point.the_disk = A //The pinpointer tracks the AI back into its core.
else
- src.occupant << "\red Primary core damaged, unable to return core processes."
+ src.occupant << "Primary core damaged, unable to return core processes."
if(forced)
src.occupant.loc = src.loc
src.occupant.death()
@@ -974,7 +974,7 @@
if(prob(3))
src.locked = 1
if (src.cell.charge > 0)
-// world << "\red blew APC in [src.loc.loc]"
+// world << "blew APC in [src.loc.loc]"
src.cell.charge = 0
cell.corrupt()
src.malfhack = 1
@@ -987,7 +987,7 @@
s.set_up(3, 1, src)
s.start()
for(var/mob/M in viewers(src))
- M.show_message("\red The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "\red You hear sizzling electronics.", 2)
+ M.show_message("The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "You hear sizzling electronics.", 2)
/obj/machinery/power/apc/surplus()
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index cd8d5557ff7..fd0662e2929 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -153,7 +153,7 @@ By design, d1 is the smallest direction and d2 is the highest
getFromPool(/obj/item/stack/cable_coil, T, 1, l_color)
for(var/mob/O in viewers(src, null))
- O.show_message("\red [user] cuts the cable.", 1)
+ O.show_message("[user] cuts the cable.", 1)
//investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]","wires")
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 1c90c6beb31..f5d7344823b 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -124,7 +124,7 @@
/obj/machinery/power/generator/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
- user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor."
+ user << "You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor."
//use_power = anchored
reconnect()
else
@@ -203,7 +203,7 @@ Outlet Temperature: [round(circ2.air2.temperature, 0.1)] K "}
set name = "Rotate Generator (Clockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, 90)
@@ -213,7 +213,7 @@ Outlet Temperature: [round(circ2.air2.temperature, 0.1)] K "}
set name = "Rotate Generator (Counterclockwise)"
set src in view(1)
- if (usr.stat || usr.restrained() || anchored)
+ if (usr.stat || usr.restrained() || anchored || (usr.status_flags & FAKEDEATH))
return
src.dir = turn(src.dir, -90)
\ No newline at end of file
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index d7cce5125cf..76d21c94ff4 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -310,7 +310,7 @@
on = has_power()
update()
- user.drop_item() //drop the item to update overlays and such
+ user.drop_item(L) //drop the item to update overlays and such
qdel(L)
if(on && rigged)
@@ -423,7 +423,7 @@
// Aliens smash the bulb but do not get electrocuted./N
/obj/machinery/light/attack_alien(mob/living/carbon/alien/humanoid/user)//So larva don't go breaking light bulbs.
if(status == LIGHT_EMPTY||status == LIGHT_BROKEN)
- user << "\green That object is useless to you."
+ user << "That object is useless to you."
return
else if (status == LIGHT_OK||status == LIGHT_BURNED)
for(var/mob/M in viewers(src))
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 6db328d0ae6..8f655640a30 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -69,7 +69,7 @@ var/global/list/rad_collectors = list()
if(src.P)
user << "A plasma tank is already loaded."
return 1
- user.drop_item(src)
+ user.drop_item(W, src)
src.P = W
update_icons()
else if(istype(W, /obj/item/weapon/crowbar))
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index bf96fa3d988..9ebd35b2623 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -78,7 +78,7 @@
"}
/obj/machinery/power/emitter/proc/update_beam()
- if(active)
+ if(active && powered)
if(!beam)
beam = new (loc)
beam.dir=dir
@@ -122,7 +122,7 @@
..()
/obj/machinery/power/emitter/update_icon()
- if (active && get_powernet() && avail(active_power_usage))
+ if (powered && get_powernet() && avail(active_power_usage))
icon_state = "emitter_+a"
else
icon_state = "emitter"
@@ -155,9 +155,9 @@
update_icon()
update_beam()
else
- user << "\red The controls are locked!"
+ user << "The controls are locked!"
else
- user << "\red The [src] needs to be firmly secured to the floor first."
+ user << "The [src] needs to be firmly secured to the floor first."
return 1
@@ -190,15 +190,14 @@
if(((last_shot + fire_delay) <= world.time) && (active == 1)) //It's currently activated and it hasn't processed in a bit
if(!active_power_usage || avail(active_power_usage)) //Doesn't require power or powernet has enough supply
add_load(active_power_usage) //Drain it then bitch
-
if(!powered) //Yay its powered
powered = 1
update_icon()
+ update_beam()
investigation_log(I_SINGULO,"regained power and turned on")
else
if(powered) //Fuck its not anymore
- powered = 0
- active = 0 //Whelp time to kill it then
+ powered = 0 //Whelp time to kill it then
update_beam() //Update its beam and icon
update_icon()
investigation_log(I_SINGULO,"lost power and turned off")
@@ -228,7 +227,7 @@
if(!emagged)
locked = 0
emagged = 1
- user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.")
+ user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
return
/obj/machinery/power/emitter/wrenchAnchor(mob/user)
@@ -256,7 +255,7 @@
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged)
- user << "\red The lock seems to be broken"
+ user << "The lock seems to be broken"
return
if(src.allowed(user))
if(active)
@@ -264,9 +263,9 @@
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "\red The controls can only be locked when the [src] is online"
+ user << "The controls can only be locked when the [src] is online"
else
- user << "\red Access denied."
+ user << "Access denied."
return
/obj/effect/beam/emitter
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 319735889d5..268deb4b0d7 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -182,7 +182,7 @@ var/global/list/obj/machinery/field_generator/field_gen_list = list()
return 1
else
for(var/mob/M in viewers(src))
- M.show_message("\red The [src.name] shuts down!")
+ M.show_message("The [src.name] shuts down!")
turn_off()
investigation_log(I_SINGULO,"ran out of power and deactivated")
src.power = 0
diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm
index eaa6bece92c..299348d9157 100644
--- a/code/modules/power/singularity/particle_accelerator/particle.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle.dm
@@ -108,7 +108,7 @@
radiation = round(radiation/2,1)*/
M.apply_effect((radiation*3),IRRADIATE,0)
M.updatehealth()
- //M << "\red You feel odd."
+ //M << "You feel odd."
return
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 3eea539c958..bb3b71accb1 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -109,7 +109,7 @@
CC.use(10)
user.visible_message(\
- "\red [user.name] has added cables to the SMES!",\
+ "[user.name] has added cables to the SMES!",\
"You added cables the SMES.")
terminal.connect_to_network()
src.stat = 0
@@ -291,7 +291,7 @@
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
if(!istype(usr, /mob/living/silicon/ai))
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
//world << "[href] ; [href_list[href]]"
@@ -335,9 +335,9 @@
/obj/machinery/power/smes/proc/ion_act()
if(src.z == 1)
if(prob(1)) //explosion
- world << "\red SMES explosion in [src.loc.loc]"
+ world << "SMES explosion in [src.loc.loc]"
for(var/mob/M in viewers(src))
- M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2)
+ M.show_message("The [src.name] is making strange noises!", 3, "You hear sizzling electronics.", 2)
sleep(10*pick(4,5,6,7,10,14))
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(3, 0, src.loc)
@@ -347,7 +347,7 @@
del(src)
return
if(prob(15)) //Power drain
- world << "\red SMES power drain in [src.loc.loc]"
+ world << "SMES power drain in [src.loc.loc]"
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
@@ -356,7 +356,7 @@
else
emp_act(2)
if(prob(5)) //smoke only
- world << "\red SMES smoke in [src.loc.loc]"
+ world << "SMES smoke in [src.loc.loc]"
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(3, 0, src.loc)
smoke.attach(src)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 9f3c6c0d811..73119ce7a3c 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -82,7 +82,7 @@ var/list/solars_list = list()
if(!tracker)
if(istype(W, /obj/item/weapon/tracker_electronics))
tracker = 1
- user.drop_item()
+ user.drop_item(W)
qdel(W)
user.visible_message("[user] inserts the electronics into [src].", \
"You insert the electronics into [src].")
diff --git a/code/modules/power/switch.dm b/code/modules/power/switch.dm
index c9a985459cc..45dac1f254c 100644
--- a/code/modules/power/switch.dm
+++ b/code/modules/power/switch.dm
@@ -30,25 +30,25 @@
user << "The switch is in the off position"
/obj/structure/powerswitch/attack_ai(mob/user)
- user << "\red You're an AI. This is a manual switch. It's not going to work."
+ user << "You're an AI. This is a manual switch. It's not going to work."
return
/obj/structure/powerswitch/attack_hand(mob/user)
if(busy)
- user << "\red This switch is already being toggled."
+ user << "This switch is already being toggled."
return
..()
busy = 1
for(var/mob/O in viewers(user))
- O.show_message(text("\red [user] started pulling the [src]."), 1)
+ O.show_message(text("[user] started pulling the [src]."), 1)
if(do_after(user, 50))
set_state(!on)
for(var/mob/O in viewers(user))
- O.show_message(text("\red [user] flipped the [src] into the [on ? "on": "off"] position."), 1)
+ O.show_message(text("[user] flipped the [src] into the [on ? "on": "off"] position."), 1)
busy = 0
/obj/structure/powerswitch/proc/set_state(var/state)
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index 53be684bc23..bb5cebbd5e4 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -177,7 +177,7 @@
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
if(!istype(usr, /mob/living/silicon/ai))
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
if (( usr.machine==src && ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
@@ -227,7 +227,7 @@
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/turbine_control/M = new /obj/item/weapon/circuitboard/turbine_control( A )
@@ -240,7 +240,7 @@
A.anchored = 1
del(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/turbine_control/M = new /obj/item/weapon/circuitboard/turbine_control( A )
for (var/obj/C in src)
@@ -271,7 +271,7 @@
\n
\n"}
else
- dat += "\redNo compatible attached compressor found."
+ dat += "No compatible attached compressor found."
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
diff --git a/code/modules/procedural mapping/mapGenerator.dm b/code/modules/procedural mapping/mapGenerator.dm
new file mode 100644
index 00000000000..9a304e5c57a
--- /dev/null
+++ b/code/modules/procedural mapping/mapGenerator.dm
@@ -0,0 +1,122 @@
+
+/datum/mapGenerator
+
+ //Map information
+ var/list/map = list()
+ var/turf/bottomLeft = null
+ var/turf/topRight = null
+
+ //mapGeneratorModule information
+ var/list/modules = list()
+
+/datum/mapGenerator/New()
+ ..()
+ initialiseModules()
+
+//Defines the region the map represents, sets map, bottomLeft, topRight
+//Returns the map
+/datum/mapGenerator/proc/defineRegion(var/turf/Start, var/turf/End)
+ if(!checkRegion(Start, End))
+ return 0
+
+ if(!Start || !End)
+ return 0
+ bottomLeft = Start
+ topRight = End
+
+ map = block(bottomLeft,topRight)
+ return map
+
+
+//Checks for and Rejects bad region coordinates
+//Returns 1/0
+/datum/mapGenerator/proc/checkRegion(var/turf/Start, var/turf/End)
+ . = 1
+
+ if(!Start || !End)
+ return 0 //Just bail
+
+ if(Start.x > world.maxx || End.x > world.maxx)
+ . = 0
+ if(Start.y > world.maxy || End.y > world.maxy)
+ . = 0
+ if(Start.z > world.maxz || End.z > world.maxz)
+ . = 0
+
+
+//Requests the mapGeneratorModule(s) to (re)generate
+/datum/mapGenerator/proc/generate()
+ set background = 1 //this can get beefy
+
+ syncModules()
+ if(!modules || !modules.len)
+ return
+ for(var/datum/mapGeneratorModule/mod in modules)
+ mod.generate()
+
+
+//Requests the mapGeneratorModule(s) to (re)generate this one turf
+/datum/mapGenerator/proc/generateOneTurf(var/turf/T)
+ if(!T)
+ return
+ syncModules()
+ if(!modules || !modules.len)
+ return
+ for(var/datum/mapGeneratorModule/mod in modules)
+ mod.place(T)
+
+
+//Replaces all paths in the module list with actual module datums
+/datum/mapGenerator/proc/initialiseModules()
+ for(var/path in modules)
+ if(ispath(path))
+ modules.Remove(path)
+ modules |= new path
+ syncModules()
+
+
+//Sync mapGeneratorModule(s) to mapGenerator
+/datum/mapGenerator/proc/syncModules()
+ for(var/datum/mapGeneratorModule/mod in modules)
+ mod.sync(src)
+
+
+
+///////////////////////////
+// HERE BE DEBUG DRAGONS //
+///////////////////////////
+
+/client/proc/debugNatureMapGenerator()
+ set name = "Test Nature Map Generator"
+ set category = "Debug"
+
+ var/datum/mapGenerator/nature/N = new()
+ var/startInput = input(usr,"Start turf of Map, (X;Y;Z)", "Map Gen Settings", "1;1;1") as text
+ var/endInput = input(usr,"End turf of Map (X;Y;Z)", "Map Gen Settings", "[world.maxx];[world.maxy];[mob ? mob.z : 1]") as text
+ //maxx maxy and current z so that if you fuck up, you only fuck up one entire z level instead of the entire universe
+ if(!startInput || !endInput)
+ src << "Missing Input"
+ return
+
+ var/list/startCoords = text2list(startInput, ";")
+ var/list/endCoords = text2list(endInput, ";")
+ if(!startCoords || !endCoords)
+ src << "Invalid Coords"
+ src << "Start Input: [startInput]"
+ src << "End Input: [endInput]"
+ return
+
+ var/turf/Start = locate(text2num(startCoords[1]),text2num(startCoords[2]),text2num(startCoords[3]))
+ var/turf/End = locate(text2num(endCoords[1]),text2num(endCoords[2]),text2num(endCoords[3]))
+ if(!Start || !End)
+ src << "Invalid Turfs"
+ src << "Start Coords: [startCoords[1]] - [startCoords[2]] - [startCoords[3]]"
+ src << "End Coords: [endCoords[1]] - [endCoords[2]] - [endCoords[3]]"
+ return
+
+ src << "Defining Region"
+ N.defineRegion(Start, End)
+ src << "Region Defined"
+ src << "Generating Region"
+ N.generate()
+ src << "Generated Region"
diff --git a/code/modules/procedural mapping/mapGeneratorModule.dm b/code/modules/procedural mapping/mapGeneratorModule.dm
new file mode 100644
index 00000000000..458f11cd969
--- /dev/null
+++ b/code/modules/procedural mapping/mapGeneratorModule.dm
@@ -0,0 +1,101 @@
+
+#define CLUSTER_CHECK_NONE 0 //No checks are done, cluster as much as possible
+#define CLUSTER_CHECK_ATOMS 2 //Don't let atoms cluster, based on clusterMin and clusterMax as guides
+#define CLUSTER_CHECK_TURFS 4 //Don't let turfs cluster, based on clusterMin and clusterMax as guides
+#define CLUSTER_CHECK_ALL 6 //Don't let anything cluster, based on clusterMind and clusterMax as guides
+
+/datum/mapGeneratorModule
+ var/datum/mapGenerator/mother = null
+ var/list/spawnableAtoms = list()
+ var/list/spawnableTurfs = list()
+ var/clusterMax = 5
+ var/clusterMin = 1
+ var/clusterCheckFlags = CLUSTER_CHECK_ALL
+
+
+//Syncs the module up with it's mother
+/datum/mapGeneratorModule/proc/sync(var/datum/mapGenerator/mum)
+ mother = null
+ if(mum)
+ mother = mum
+
+
+//Generates it's spawnable atoms and turfs
+/datum/mapGeneratorModule/proc/generate()
+ if(!mother)
+ return
+ var/list/map = mother.map
+ for(var/turf/T in map)
+ place(T)
+
+
+//Place a spawnable atom or turf on this turf
+/datum/mapGeneratorModule/proc/place(var/turf/T)
+ if(!T)
+ return 0
+
+ var/clustering = 0
+
+ //Turfs don't care whether atoms can be placed here
+ for(var/turfPath in spawnableTurfs)
+ if(clusterCheckFlags & CLUSTER_CHECK_TURFS)
+ if(clusterMax && clusterMin)
+ clustering = rand(clusterMin,clusterMax)
+ if(locate(/atom/movable) in range(clustering, T))
+ continue
+ if(prob(spawnableTurfs[turfPath]))
+ T.ChangeTurf(turfPath)
+
+ //Atoms DO care whether atoms can be placed here
+ if(checkPlaceAtom(T))
+ for(var/atomPath in spawnableAtoms)
+ if(clusterCheckFlags & CLUSTER_CHECK_ATOMS)
+ if(clusterMax && clusterMin)
+ clustering = rand(clusterMin,clusterMax)
+ if(locate(/atom/movable) in range(clustering, T))
+ continue
+ if(prob(spawnableAtoms[atomPath]))
+ new atomPath (T)
+
+ . = 1
+
+
+//Checks and Rejects dense turfs
+/datum/mapGeneratorModule/proc/checkPlaceAtom(var/turf/T)
+ . = 1
+ if(!T)
+ return 0
+ if(T.density)
+ . = 0
+ for(var/atom/A in T)
+ if(A.density)
+ . = 0
+ break
+
+
+///////////////////////////////////////////////////////////
+// PREMADE BASE TEMPLATES //
+// Appropriate settings for usable types //
+// Not usable types themselves, use them as parent types //
+// Seriously, don't use these on their own, just parents //
+///////////////////////////////////////////////////////////
+//The /atom and /turf examples are just so these compile, replace those with your typepaths in your subtypes.
+
+//Settings appropriate for a turf that covers the entire map region, eg a fill colour on a bottom layer in a graphics program.
+//Should only have one of these in your mapGenerator unless you want to waste CPU
+/datum/mapGeneratorModule/bottomLayer
+ clusterCheckFlags = CLUSTER_CHECK_NONE
+ spawnableAtoms = list()//Recommended: No atoms.
+ spawnableTurfs = list(/turf = 100)
+
+//Settings appropriate for turfs/atoms that cover SOME of the map region, sometimes referred to as a splatter layer.
+/datum/mapGeneratorModule/splatterLayer
+ clusterCheckFlags = CLUSTER_CHECK_ALL
+ spawnableAtoms = list(/atom = 30)
+ spawnableTurfs = list(/turf = 30)
+
+//Settings appropriate for turfs/atoms that cover a lot of the map region, eg a dense forest.
+/datum/mapGeneratorModule/denseLayer
+ clusterCheckFlags = CLUSTER_CHECK_NONE
+ spawnableAtoms = list(/atom = 75)
+ spawnableTurfs = list(/turf = 75)
\ No newline at end of file
diff --git a/code/modules/procedural mapping/mapGeneratorModules/nature.dm b/code/modules/procedural mapping/mapGeneratorModules/nature.dm
new file mode 100644
index 00000000000..742141f6fdf
--- /dev/null
+++ b/code/modules/procedural mapping/mapGeneratorModules/nature.dm
@@ -0,0 +1,37 @@
+
+//Contents exist primarily for the nature generator test type.
+
+
+//Pine Trees
+/datum/mapGeneratorModule/pineTrees
+ spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)
+
+//Dead Trees
+/datum/mapGeneratorModule/deadTrees
+ spawnableAtoms = list(/obj/structure/flora/tree/dead = 10)
+
+//Random assortment of bushes
+/datum/mapGeneratorModule/randBushes
+ spawnableAtoms = list()
+
+/datum/mapGeneratorModule/randBushes/New()
+ ..()
+ spawnableAtoms = typesof(/obj/structure/flora/ausbushes)
+ for(var/i in spawnableAtoms)
+ spawnableAtoms[i] = 20
+
+
+//Random assortment of rocks and rockpiles
+/datum/mapGeneratorModule/randRocks
+ spawnableAtoms = list(/obj/structure/flora/rock = 40, /obj/structure/flora/rock/pile = 20)
+
+
+//Grass turfs
+/datum/mapGeneratorModule/bottomLayer/grassTurfs
+ spawnableTurfs = list(/turf/unsimulated/floor/grass = 100)
+
+
+//Grass tufts with a high spawn chance
+/datum/mapGeneratorModule/denseLayer/grassTufts
+ spawnableTurfs = list()
+ spawnableAtoms = list(/obj/structure/flora/ausbushes/grassybush = 75)
\ No newline at end of file
diff --git a/code/modules/procedural mapping/mapGeneratorReadme.dm b/code/modules/procedural mapping/mapGeneratorReadme.dm
new file mode 100644
index 00000000000..95fa449624e
--- /dev/null
+++ b/code/modules/procedural mapping/mapGeneratorReadme.dm
@@ -0,0 +1,130 @@
+
+/*
+by RemieRichards
+
+//////////////////////////////
+// CODER INFORMATIVE README //
+//////////////////////////////
+(See below for Mapper Friendly Readme)
+
+mapGenerator:
+ Desc: a mapGenerator is a master datum that collects
+ and syncs all mapGeneratorModules in it's modules list
+
+ defineRegion(var/list/startList, var/list/endList)
+ Example: defineRegion(locate(1,1,1),locate(5,5,5))
+ Desc: Sets the bounds of the mapGenerator's "map"
+
+ checkRegion(var/turf/Start, var/turf/End)
+ Example: checkRegion(locate(1,1,1), locate(5,5,5))
+ Desc: Checks if a rectangle between Start's coords and End's coords is valid
+ Existing Calls: mapGenerator/defineRegion()
+
+ generate()
+ Example: generate()
+ Desc: Orders all mapGeneratorModules in the modules list to generate()
+
+ generateOneTurf(var/turf/T)
+ Example: generateOneTurf(locate(1,1,1))
+ Desc: Orders all mapGeneratorModules in the modules list to place(T) on this turf
+
+ initialiseModules()
+ Example: initialiseModules()
+ Desc: Replaces all typepaths in the modules list with actual /datum/mapGenerator/Module types
+ Existing Calls: mapGenerator/New()
+
+ syncModules()
+ Example: syncModules()
+ Desc: Sets the Mother variable on all mapGeneratorModules in the modules list to this mapGenerator
+ Existing Calls: initialiseModules(),generate(),generateOneTurf()
+
+
+mapGeneratorModule
+ Desc: a mapGeneratorModule has spawnableAtoms and spawnableTurfs lists
+ which it will generate on turfs in it's mother's map based on cluster variables
+
+ sync(var/datum/mapGenerator/mum)
+ Example: sync(a_mapGenerator_as_a_variable)
+ Desc: Sets the Mother variable to the mum argument
+ Existing Calls: mapGenerator/syncModules()
+
+ generate()
+ Example: generate()
+ Desc: Calls place(T) on all turfs in it's mother's map
+ Existing Calls: mapGenerator/generate()
+
+ place(var/turf/T)
+ Example: place(locate(1,1,1))
+ Desc: Run this mapGeneratorModule's effects on this turf (Spawning atoms, Changing turfs)
+ Existing Calls: mapGenerator/generate(), mapGenerator/generateOneTurf()
+
+ checkPlaceAtom(var/turf/T)
+ Example: checkPlace(locate(1,1,1))
+ Desc: Checks if the turf is valid for placing atoms
+ Existing Calls: place()
+
+
+
+////////////////////////////
+// MAPPER FRIENDLY README //
+////////////////////////////
+
+Simple Workflow:
+
+ 1. Define a/some mapGeneratorModule(s) to your liking, choosing atoms and turfs to spawn
+ #Note: I chose to split Turfs and Atoms off into seperate modules, but this is NOT required.
+ #Note: A mapGeneratorModule may have turfs AND atoms, so long as each is in it's appropriate list
+
+ 2. Define a mapGenerator type who's modules list contains the typepath(s) of all the module(s) you wish to use
+ #Note: The order of the typepaths in the modules list is the order they will happen in, this is important for clusterCheckFlags.
+
+ 3. Take notes of the Bottom Left and Top Right turfs of your rectangular "map"'s coordinates
+ #Note: X,Y AND Z, Yes you can created 3D "maps" by having differing Z coords
+
+ 4. Create the mapGenerator type you created
+
+ 5. Call yourMapGeneratorType.defineRegion(locate(X,Y,Z), locate(X,Y,Z))
+ #Note: The above X/Y/Zs are the coordinates of the start and end turfs, the locate() simply finds the turf for the code
+
+ 6. Call yourMapGeneratorType.generate(), this will cause all the modules in the generator to build within the map bounds
+
+Option Suggestions:
+
+ * Have seperate modules for Turfs and Atoms, this is not enforced, but it is how I have structured my nature example.
+ * If your map doesn't look quite to your liking, simply jiggle with the variables on your modules and the type probabilities
+ * You can mix and map premade areas with the procedural generation, for example mapping an entire flat land but having code generate just the grass tufts
+
+
+Using the Modules list
+
+ Simply think of it like each module is a layer in a graphics editing program!
+ To help you do this templates such as /mapGeneratorModule/bottomLayer have been provided with appropriate default settings.
+ These are located near the bottom of mapGeneratorModule.dm
+ you would order your list left to right, top to bottom, e.g:
+ modules = list(bottomLayer,nextLayer,nextNextLayer) etc.
+
+
+Variable Breakdown (For Mappers):
+
+ mapGenerator
+ map - INTERNAL, do not touch
+ bottomLeft - INTERNAL, do not touch
+ topRight - INTERNAL, do not touch
+ modules - A list of typepaths of mapGeneratorModules
+
+ mapGeneratorModule
+ mother - INTERNAL, do not touch
+ spawnableAtoms - A list of typepaths and their probability to spawn, eg: spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)
+ spawnableTurfs - A list of typepaths and their probability to spawn, eg: spawnableTurfs = list(/turf/unsimulated/floor/grass = 100)
+ clusterMax - The max range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax
+ clusterMin - The min range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax
+ clusterCheckFlags - A Bitfield that controls how the cluster checks work.
+
+ clusterCheckFlags flags:
+ CLUSTER_CHECK_NONE 0 //No checks are done, cluster as much as possible
+ CLUSTER_CHECK_ATOMS 2 //Don't let atoms cluster, based on clusterMin and clusterMax as guides
+ CLUSTER_CHECK_TURFS 4 //Don't let turfs cluster, based on clusterMin and clusterMax as guides
+ CLUSTER_CHECK_ALL 6 //Don't let anything cluster, based on clusterMind and clusterMax as guides
+
+
+*/
\ No newline at end of file
diff --git a/code/modules/procedural mapping/mapGenerators/nature.dm b/code/modules/procedural mapping/mapGenerators/nature.dm
new file mode 100644
index 00000000000..0300de38211
--- /dev/null
+++ b/code/modules/procedural mapping/mapGenerators/nature.dm
@@ -0,0 +1,10 @@
+
+//Exists primarily as a test type.
+
+/datum/mapGenerator/nature
+ modules = list(/datum/mapGeneratorModule/pineTrees, \
+ /datum/mapGeneratorModule/deadTrees, \
+ /datum/mapGeneratorModule/randBushes, \
+ /datum/mapGeneratorModule/randRocks, \
+ /datum/mapGeneratorModule/bottomLayer/grassTurfs, \
+ /datum/mapGeneratorModule/denseLayer/grassTufts)
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 113304c3a2f..4daf13ede24 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -72,7 +72,7 @@
accepted = 1
if(AC.BB && accepted && stored_ammo.len < max_ammo)
stored_ammo += AC
- user.drop_item(src)
+ user.drop_item(A, src)
user << "You successfully load the [src] with \the [AC]"
update_icon()
else if(!AC.BB)
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 3666fe8fe69..ee17c989607 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -120,7 +120,7 @@
name = "shotgun darts"
desc = "A dart for use in shotguns."
icon_state = "blshell"
- projectile_type = "/obj/item/projectile/energy/dart"
+ projectile_type = "/obj/item/projectile/bullet/dart"
m_amt = 12500
w_type = RECYK_METAL
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 4d21d070643..8f4c0386129 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -77,26 +77,26 @@
if ((M_CLUMSY in M.mutations) && prob(50))
M << "[src] blows up in your face."
M.take_organ_damage(0,20)
- M.drop_item()
+ M.drop_item(src)
qdel(src)
return
if (!user.IsAdvancedToolUser() || isMoMMI(user) || istype(user, /mob/living/carbon/monkey/diona))
- user << "\red You don't have the dexterity to do this!"
+ user << "You don't have the dexterity to do this!"
return
if(istype(user, /mob/living))
var/mob/living/M = user
if (M_HULK in M.mutations)
- M << "\red Your meaty finger is much too large for the trigger guard!"
+ M << "Your meaty finger is much too large for the trigger guard!"
return
if(ishuman(user))
var/mob/living/carbon/human/H=user
if(user.dna && user.dna.mutantrace == "adamantine")
- user << "\red Your metal fingers don't fit in the trigger guard!"
+ user << "Your metal fingers don't fit in the trigger guard!"
return
var/datum/organ/external/a_hand = H.get_active_hand_organ()
if(!a_hand.can_use_advanced_tools())
- user << "\red Your [a_hand] doesn't have the dexterity to do this!"
+ user << "Your [a_hand] doesn't have the dexterity to do this!"
return
add_fingerprint(user)
@@ -180,7 +180,7 @@
/obj/item/weapon/gun/proc/click_empty(mob/user = null)
if (user)
- user.visible_message("*click click*", "\red *click*")
+ user.visible_message("*click click*", "*click*")
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
else
src.visible_message("*click click*")
@@ -193,9 +193,9 @@
M << "BUT WHY? I'M SO HAPPY!"
return
mouthshoot = 1
- M.visible_message("\red [user] sticks their gun in their mouth, ready to pull the trigger...")
+ M.visible_message("[user] sticks their gun in their mouth, ready to pull the trigger...")
if(!do_after(user, 40))
- M.visible_message("\blue [user] decided life was worth living")
+ M.visible_message("[user] decided life was worth living")
mouthshoot = 0
return
if (process_chambered())
@@ -223,7 +223,7 @@
if (src.process_chambered())
//Point blank shooting if on harm intent or target we were targeting.
if(user.a_intent == I_HURT)
- user.visible_message("\red \The [user] fires \the [src] point blank at [M]!")
+ user.visible_message(" \The [user] fires \the [src] point blank at [M]!")
in_chamber.damage *= 1.3
src.Fire(M,user,0,0,1)
return
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 323cd3706c0..2f522e0eaaf 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -233,7 +233,7 @@ obj/item/weapon/gun/energy/laser/retro
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag))
return 1
- M << "\red You need to be wearing your laser tag vest!"
+ M << "You need to be wearing your laser tag vest!"
return 0
New()
@@ -272,7 +272,7 @@ obj/item/weapon/gun/energy/laser/retro
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/redtag))
return 1
- M << "\red You need to be wearing your laser tag vest!"
+ M << "You need to be wearing your laser tag vest!"
return 0
New()
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index 42ee11164a8..4b1e6ce61b1 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -19,14 +19,14 @@
mode = 1
charge_cost = 100
fire_sound = 'sound/weapons/Laser.ogg'
- user << "\red [src.name] is now set to kill."
+ user << "[src.name] is now set to kill."
projectile_type = "/obj/item/projectile/beam"
modifystate = "energykill"
if(1)
mode = 0
charge_cost = 100
fire_sound = 'sound/weapons/Taser.ogg'
- user << "\red [src.name] is now set to stun."
+ user << "[src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
modifystate = "energystun"
update_icon()
@@ -70,16 +70,16 @@
if (prob(src.reliability))
for (var/mob/living/M in range(0,src)) //Only a minor failure, enjoy your radiation if you're in the same tile or carrying it
if (src in M.contents)
- M << "\red Your gun feels pleasantly warm for a moment."
+ M << "Your gun feels pleasantly warm for a moment."
else
- M << "\red You feel a warm sensation."
+ M << "You feel a warm sensation."
M.apply_effect(rand(3,120), IRRADIATE)
lightfail = 1
else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents)
- M << "\red Your gun's reactor overloads!"
- M << "\red You feel a wave of heat wash over you."
+ M << "Your gun's reactor overloads!"
+ M << "You feel a wave of heat wash over you."
M.apply_effect(300, IRRADIATE)
crit_fail = 1 //break the gun so it stops recharging
processing_objects.Remove(src)
diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm
index fff98e98171..6debd031132 100644
--- a/code/modules/projectiles/guns/energy/pulse.dm
+++ b/code/modules/projectiles/guns/energy/pulse.dm
@@ -17,19 +17,19 @@
mode = 0
charge_cost = 100
fire_sound = 'sound/weapons/Taser.ogg'
- user << "\red [src.name] is now set to stun."
+ user << "[src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
if(0)
mode = 1
charge_cost = 100
fire_sound = 'sound/weapons/Laser.ogg'
- user << "\red [src.name] is now set to kill."
+ user << "[src.name] is now set to kill."
projectile_type = "/obj/item/projectile/beam"
if(1)
mode = 2
charge_cost = 200
fire_sound = 'sound/weapons/pulse.ogg'
- user << "\red [src.name] is now set to DESTROY."
+ user << "[src.name] is now set to DESTROY."
projectile_type = "/obj/item/projectile/beam/pulse"
return
@@ -54,7 +54,7 @@
cell_type = "/obj/item/weapon/cell/infinite"
attack_self(mob/living/user as mob)
- user << "\red [src.name] has three settings, and they are all DESTROY."
+ user << "[src.name] has three settings, and they are all DESTROY."
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 12d99b3397c..08e9aad9f1f 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -146,13 +146,13 @@ var/available_staff_transforms=list("monkey","robot","slime","xeno","human","fur
if(0)
mode = 1
charge_cost = 100
- user << "\red The [src.name] is now set to increase yield."
+ user << "The [src.name] is now set to increase yield."
projectile_type = "/obj/item/projectile/energy/florayield"
modifystate = "florayield"
if(1)
mode = 0
charge_cost = 100
- user << "\red The [src.name] is now set to induce mutations."
+ user << "The [src.name] is now set to induce mutations."
projectile_type = "/obj/item/projectile/energy/floramut"
modifystate = "floramut"
update_icon()
@@ -162,7 +162,7 @@ var/available_staff_transforms=list("monkey","robot","slime","xeno","human","fur
if(flag && istype(target,/obj/machinery/portable_atmospherics/hydroponics))
var/obj/machinery/portable_atmospherics/hydroponics/tray = target
if(process_chambered())
- user.visible_message("\red \The [user] fires \the [src] into \the [tray]!")
+ user.visible_message(" \The [user] fires \the [src] into \the [tray]!")
Fire(target,user)
return
@@ -229,11 +229,11 @@ obj/item/weapon/gun/energy/staff/focus
obj/item/weapon/gun/energy/staff/focus/attack_self(mob/living/user as mob)
if(projectile_type == "/obj/item/projectile/forcebolt")
charge_cost = 250
- user << "\red The [src.name] will now strike a small area."
+ user << "The [src.name] will now strike a small area."
projectile_type = "/obj/item/projectile/forcebolt/strong"
else
charge_cost = 100
- user << "\red The [src.name] will now strike only a single person."
+ user << "The [src.name] will now strike only a single person."
projectile_type = "/obj/item/projectile/forcebolt"
/obj/item/weapon/gun/energy/kinetic_accelerator
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index ef5b4119487..7bc208b3319 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -37,7 +37,7 @@
/obj/item/weapon/gun/projectile/proc/LoadMag(var/obj/item/ammo_storage/magazine/AM, var/mob/user)
if(istype(AM, text2path(mag_type)) && !stored_magazine)
if(user)
- user.drop_item(src)
+ user.drop_item(AM, src)
usr << "You load the magazine into \the [src]."
stored_magazine = AM
chamber_round()
@@ -113,7 +113,7 @@
if(user.l_hand != src && user.r_hand != src) //if we're not in his hands
user << "You'll need [src] in your hands to do that."
return
- user.drop_item(src) //put the silencer into the gun
+ user.drop_item(A, src) //put the silencer into the gun
user << "You screw [A] onto [src]."
silenced = A //dodgy?
w_class = 3
@@ -140,11 +140,11 @@
//message_admins("Loading the [src], with [AC], [AC.caliber] and [caliber.len]") //Enable this for testing
if(AC.BB && caliber[AC.caliber]) // a used bullet can't be fired twice
if(load_method == MAGAZINE && !chambered)
- user.drop_item(src)
+ user.drop_item(AC, src)
chambered = AC
num_loaded++
else if(getAmmo() < max_shells)
- user.drop_item(src)
+ user.drop_item(AC, src)
loaded += AC
num_loaded++
diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm
index 608f3e42730..5a7106cff26 100644
--- a/code/modules/projectiles/guns/projectile/bow.dm
+++ b/code/modules/projectiles/guns/projectile/bow.dm
@@ -59,7 +59,7 @@
/obj/item/weapon/crossbow/attackby(obj/item/W as obj, mob/user as mob)
if(!arrow)
if (istype(W,/obj/item/weapon/arrow))
- user.drop_item(src)
+ user.drop_item(W, src)
arrow = W
user.visible_message("[user] slides [arrow] into [src].","You slide [arrow] into [src].")
icon_state = "crossbow-nocked"
@@ -82,8 +82,7 @@
if(istype(W, /obj/item/weapon/cell))
if(!cell)
- user.drop_item()
- W.loc = src
+ user.drop_item(W, src)
cell = W
user << "You jam [cell] into [src] and wire it to the firing coil."
if(arrow)
diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm
index 5bed942b379..71f2872ddcc 100644
--- a/code/modules/projectiles/guns/projectile/pneumatic.dm
+++ b/code/modules/projectiles/guns/projectile/pneumatic.dm
@@ -51,7 +51,7 @@
/obj/item/weapon/storage/pneumatic/attackby(obj/item/W as obj, mob/user as mob)
if(!tank && istype(W,/obj/item/weapon/tank))
- user.drop_item(src.tank_container)
+ user.drop_item(W, src.tank_container)
tank = W
user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.")
icon_state = "pneumatic-tank"
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index d2f5056c2f3..b66ee7d8aa2 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -16,7 +16,7 @@
if(istype(AC, /obj/item/ammo_casing/a357) && !perfect && prob(70 - (getAmmo() * 10))) //minimum probability of 10, maximum of 60
M << "[src] blows up in your face."
M.take_organ_damage(0,20)
- M.drop_item()
+ M.drop_item(src)
qdel(src)
return 0
return 1
@@ -154,7 +154,7 @@
/obj/item/weapon/gun/projectile/russian/attack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj)
if(!getAmmo())
- user.visible_message("\red *click*", "\red *click*")
+ user.visible_message("*click*", "*click*")
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
return
@@ -165,7 +165,7 @@
var/obj/item/ammo_casing/AC = loaded[1]
if(!process_chambered())
- user.visible_message("\red *click*", "\red *click*")
+ user.visible_message("*click*", "*click*")
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
return
if(!in_chamber)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 89e2850e2fd..71e04e591fb 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -58,7 +58,7 @@
// FUCK mice. - N3X
if(ismouse(target) && (stun+weaken+paralyze+agony)>5)
var/mob/living/simple_animal/mouse/M=target
- M << "\red What would probably not kill a human completely overwhelms your tiny body."
+ M << "What would probably not kill a human completely overwhelms your tiny body."
M.splat()
return 1
if(isanimal(target)) return 0
@@ -121,13 +121,13 @@
def_zone = get_zone_with_miss_chance(def_zone, M, miss_modifier + 8*distance)
if(!def_zone)
- visible_message("\blue \The [src] misses [M] narrowly!")
+ visible_message("\The [src] misses [M] narrowly!")
forcedodge = -1
else
if(silenced)
- M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
+ M << "You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
else
- visible_message("\red [A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
+ visible_message("[A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
if(istype(firer, /mob))
log_attack("[key_name(firer)] shot [key_name(M)] with a [type]")
M.attack_log += "\[[time_stamp()]\] [key_name(firer)] shot [key_name(M)] with a [type]"
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 21138a7c980..7b59268ca6b 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -14,6 +14,12 @@
return 1
return 0
+/obj/item/projectile/bullet/dart
+ name = "shotgun dart"
+ damage = 5
+ damage_type = TOX
+ weaken = 5
+
/obj/item/projectile/bullet/weakbullet
icon_state = "bbshell"
damage = 10
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index d828ffaa3a5..fdd934fb33a 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -28,15 +28,6 @@
damage_type = CLONE
irradiate = 40
-
-/obj/item/projectile/energy/dart
- name = "dshell"
- icon_state = "toxin"
- damage = 5
- damage_type = TOX
- weaken = 5
-
-
/obj/item/projectile/energy/bolt
name = "bolt"
icon_state = "cbbolt"
@@ -55,7 +46,7 @@
name = "plasma"
icon_state = "plasma"
var/knockdown_chance = 0
-
+
/obj/item/projectile/energy/plasma/on_hit(var/atom/target, var/blocked = 0)
if (..(target, blocked))
var/mob/living/L = target
diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm
index 849ff9f0ac2..bc021522864 100644
--- a/code/modules/projectiles/projectile/force.dm
+++ b/code/modules/projectiles/projectile/force.dm
@@ -16,7 +16,7 @@
if(istype(target, /mob/living/carbon/))
var/mob/living/carbon/MM = target
MM.apply_effect(1, WEAKEN)
- MM << "\red The force knocks you off your feet!"
+ MM << "The force knocks you off your feet!"
T.throw_at(get_edge_target_turf(target, throwdir),10,1)
return 1
@@ -34,6 +34,6 @@
if(istype(M, /mob/living/carbon/))
var/mob/living/carbon/MM = M
MM.apply_effect(2, WEAKEN)
- MM << "\red The force knocks you off your feet!"
+ MM << "The force knocks you off your feet!"
M.throw_at(get_edge_target_turf(M, throwdir),15,1)
return ..()
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index e3a5daf0ffd..5b4ccfff401 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -130,10 +130,10 @@
M.apply_effect((rand(30,80)),IRRADIATE)
M.Weaken(5)
for (var/mob/V in viewers(src))
- V.show_message("\red [M] writhes in pain as \his vacuoles boil.", 3, "\red You hear the crunching of leaves.", 2)
+ V.show_message("[M] writhes in pain as \his vacuoles boil.", 3, "You hear the crunching of leaves.", 2)
if(prob(35))
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
- // V.show_message("\red [M] is mutated by the radiation beam.", 3, "\red You hear the snapping of twigs.", 2)
+ // V.show_message("[M] is mutated by the radiation beam.", 3, "You hear the snapping of twigs.", 2)
if(prob(80))
randmutb(M)
domutcheck(M,null)
@@ -142,13 +142,13 @@
domutcheck(M,null)
else
M.adjustFireLoss(rand(5,15))
- M.show_message("\red The radiation beam singes you!")
+ M.show_message("The radiation beam singes you!")
// for (var/mob/V in viewers(src))
- // V.show_message("\red [M] is singed by the radiation beam.", 3, "\red You hear the crackle of burning leaves.", 2)
+ // V.show_message("[M] is singed by the radiation beam.", 3, "You hear the crackle of burning leaves.", 2)
else if(istype(target, /mob/living/carbon/))
// for (var/mob/V in viewers(src))
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
- M.show_message("\blue The radiation beam dissipates harmlessly through your body.")
+ M.show_message("The radiation beam dissipates harmlessly through your body.")
else
return 1
@@ -168,7 +168,7 @@
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
M.nutrition += 30
else if (istype(target, /mob/living/carbon/))
- M.show_message("\blue The radiation beam dissipates harmlessly through your body.")
+ M.show_message("The radiation beam dissipates harmlessly through your body.")
else
return 1
diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm
index 338afb5b424..de906b3e0da 100644
--- a/code/modules/projectiles/targeting.dm
+++ b/code/modules/projectiles/targeting.dm
@@ -12,7 +12,7 @@
set category = "Object"
if(target)
stop_aim()
- usr.visible_message("\blue \The [usr] lowers \the [src]...")
+ usr.visible_message("\The [usr] lowers \the [src]...")
//Clicking gun will still lower aim for guns that don't overwrite this
/obj/item/weapon/gun/attack_self()
@@ -64,9 +64,9 @@
if(L)
L.NotTargeted(src)
del(target)
- usr.visible_message("\red [usr] turns \the [src] on [M]!")
+ usr.visible_message("[usr] turns \the [src] on [M]!")
else
- usr.visible_message("\red [usr] aims \a [src] at [M]!")
+ usr.visible_message("[usr] aims \a [src] at [M]!")
M.Targeted(src)
//HE MOVED, SHOOT HIM!
@@ -84,7 +84,7 @@
if(firing_check == 1)
Fire(T,usr, reflex = 1)
else if(!told_cant_shoot)
- M << "\red They can't be hit from here!"
+ M << "They can't be hit from here!"
told_cant_shoot = 1
spawn(30)
told_cant_shoot = 0
@@ -162,9 +162,9 @@ mob/living/proc/Targeted(var/obj/item/weapon/gun/I) //Self explanitory.
if(!targeted_by) targeted_by = list()
targeted_by += I
I.lock_time = world.time + 20 //Target has 2 second to realize they're targeted and stop (or target the opponent).
- src << "((\red Your character is being targeted. They have 2 seconds to stop any click or move actions. \black While targeted, they may \
+ src << "((Your character is being targeted. They have 2 seconds to stop any click or move actions. While targeted, they may \
drag and drop items in or into the map, speak, and click on interface buttons. Clicking on the map objects (floors and walls are fine), their items \
- (other than a weapon to de-target), or moving will result in being fired upon. \red The aggressor may also fire manually, \
+ (other than a weapon to de-target), or moving will result in being fired upon. The aggressor may also fire manually, \
so try not to get on their bad side.\black ))"
if(targeted_by.len == 1)
@@ -309,10 +309,10 @@ client/verb/AllowTargetMove()
if(target_can_move)
M << "Your character may now walk at the discretion of their targeter."
if(!target_can_run && (ishuman(M)))
- M << "\red Your move intent is now set to walk, as your targeter permits it."
+ M << "Your move intent is now set to walk, as your targeter permits it."
M.set_m_intent("walk")
else
- M << "\red Your character will now be shot if they move."
+ M << "Your character will now be shot if they move."
mob/living/proc/set_m_intent(var/intent)
if (intent != "walk" && intent != "run")
@@ -345,7 +345,7 @@ client/verb/AllowTargetRun()
if(target_can_run)
M << "Your character may now run at the discretion of their targeter."
else
- M << "\red Your character will now be shot if they run."
+ M << "Your character will now be shot if they run."
client/verb/AllowTargetClick()
set hidden=1
@@ -369,4 +369,4 @@ client/verb/AllowTargetClick()
if(target_can_click)
M << "Your character may now use items at the discretion of their targeter."
else
- M << "\red Your character will now be shot if they use items."
+ M << "Your character will now be shot if they use items."
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 26cf64754b4..9545da5ca33 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -243,7 +243,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return
else if(!panel_open)
src.beaker = D
- user.drop_item(src)
+ user.drop_item(D, src)
user << "You add the beaker to the machine!"
nanomanager.update_uis(src) // update all UIs attached to src
return 1
@@ -388,7 +388,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
user << "A beaker is already loaded into the machine."
return
src.beaker = B
- user.drop_item(src)
+ user.drop_item(B, src)
user << "You add the beaker to the machine!"
src.updateUsrDialog()
update_icon()
@@ -401,7 +401,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return
src.loaded_pill_bottle = B
- user.drop_item(src)
+ user.drop_item(B, src)
user << "You add the pill bottle into the dispenser slot!"
src.updateUsrDialog()
return 1
@@ -965,7 +965,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return
src.beaker = I
- user.drop_item(src)
+ user.drop_item(I, src)
user << "You add the beaker to the machine!"
src.updateUsrDialog()
icon_state = "mixer1"
@@ -995,6 +995,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
var/list/blend_items = list (
//Sheets
+ /obj/item/stack/sheet/metal = list("iron" = 20),
/obj/item/stack/sheet/mineral/plasma = list("plasma" = 20),
/obj/item/stack/sheet/mineral/uranium = list("uranium" = 20),
/obj/item/stack/sheet/mineral/clown = list("banana" = 20),
@@ -1105,7 +1106,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return 0
else
src.beaker = O
- user.drop_item(src)
+ user.drop_item(O, src)
update_icon()
src.updateUsrDialog()
return 1
@@ -1414,3 +1415,363 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
remove_object(O)
+
+//*************************************************************************************
+//
+//
+//It just felt right to put the ghetto chemistry tools here with chemistry machinery.
+//
+//
+//*************************************************************************************
+/obj/item/weapon/electrolyzer
+ name = "Electrolyzer"
+ icon = 'icons/obj/chemical.dmi'
+ icon_state = "chemg_wired"
+ item_state = "chemg_wired"
+ desc = "A refurbished grenade-casing jury rigged to split simple chemicals."
+ w_class = 2.0
+ force = 2.0
+ var/list/beakers = new/list()
+ var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
+ var/list/allowed_reactions = list(/datum/chemical_reaction/water, /datum/chemical_reaction/creatine,
+ /datum/chemical_reaction/discount, /datum/chemical_reaction/peptobismol, /datum/chemical_reaction/phalanximine,
+ /datum/chemical_reaction/stoxin, /datum/chemical_reaction/sterilizine, /datum/chemical_reaction/inaprovaline,
+ /datum/chemical_reaction/anti_toxin, /datum/chemical_reaction/mutagen, /datum/chemical_reaction/tramadol,
+ /datum/chemical_reaction/oxycodone, /datum/chemical_reaction/sacid, /datum/chemical_reaction/thermite,
+ /datum/chemical_reaction/lexorin, /datum/chemical_reaction/space_drugs, /datum/chemical_reaction/lube,
+ /datum/chemical_reaction/pacid, /datum/chemical_reaction/synaptizine, /datum/chemical_reaction/hyronalin,
+ /datum/chemical_reaction/arithrazine, /datum/chemical_reaction/impedrezene, /datum/chemical_reaction/kelotane,
+ /datum/chemical_reaction/virus_food, /datum/chemical_reaction/leporazine, /datum/chemical_reaction/cryptobiolin,
+ /datum/chemical_reaction/tricordrazine, /datum/chemical_reaction/alkysine, /datum/chemical_reaction/dexalin,
+ /datum/chemical_reaction/dermaline, /datum/chemical_reaction/dexalinp, /datum/chemical_reaction/bicaridine,
+ /datum/chemical_reaction/hyperzine, /datum/chemical_reaction/ryetalyn, /datum/chemical_reaction/cryoxadone,
+ /datum/chemical_reaction/clonexadone, /datum/chemical_reaction/spaceacillin, /datum/chemical_reaction/imidazoline,
+ /datum/chemical_reaction/inacusiate, /datum/chemical_reaction/ethylredoxrazine, /datum/chemical_reaction/glycerol,
+ /datum/chemical_reaction/sodiumchloride, /datum/chemical_reaction/chloralhydrate, /datum/chemical_reaction/zombiepowder,
+ /datum/chemical_reaction/rezadone, /datum/chemical_reaction/mindbreaker, /datum/chemical_reaction/lipozine,
+ /datum/chemical_reaction/condensedcapsaicin, /datum/chemical_reaction/surfactant, /datum/chemical_reaction/foaming_agent,
+ /datum/chemical_reaction/ammonia, /datum/chemical_reaction/diethylamine, /datum/chemical_reaction/space_cleaner,
+ /datum/chemical_reaction/plantbgone, /datum/chemical_reaction/doctor_delight, /datum/chemical_reaction/neurotoxin,
+ /datum/chemical_reaction/toxins_special, /datum/chemical_reaction/goldschlager, /datum/chemical_reaction/patron,
+ /datum/chemical_reaction/Cream, /datum/chemical_reaction/soysauce)
+
+/obj/item/weapon/electrolyzer/attack_self(mob/user as mob)
+ if(beakers.len)
+ for(var/obj/B in beakers)
+ if(istype(B))
+ beakers -= B
+ user.put_in_hands(B)
+
+/obj/item/weapon/electrolyzer/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(iswirecutter(W))
+ if(beakers.len)
+ user << "The electrolyzer contains beakers!"
+ return
+ else
+ user << "You disassemble the electrolyzer."
+ var/turf/T = get_turf(src)
+ new /obj/item/stack/cable_coil(T,2)
+ new /obj/item/weapon/grenade/chem_grenade(T)
+ del(src)
+ return
+ else if(is_type_in_list(W, allowed_containers))
+ var/obj/item/weapon/reagent_containers/glass/G = W
+ if(G.reagents.reagent_list.len > 1)
+ user << "That mixture is too complex!"
+ return
+ if(beakers.len == 2)
+ user << "The grenade can not hold more containers."
+ return
+ else if(beakers.len == 1)
+ var/obj/item/weapon/reagent_containers/glass/other = beakers[1]
+ if(other.reagents.total_volume && !G.reagents.total_volume) //We already have one inserted beaker. It must occupy slot 1. Is it empty or active?
+ user << "You add \the [G] to the electrolyzer as the empty container."
+ insert_beaker(G,user)
+ else if(!other.reagents.total_volume && G.reagents.total_volume)
+ user << "You add \the [G] to the electrolyzer as the active container."
+ insert_beaker(G,user)
+ else
+ user << "The electrolyzer requires one active beaker and one empty beaker!"
+ return
+ else
+ user << "You add \the [G] to the electrolyzer as the [G.reagents.total_volume ? "active" : "empty"] container."
+ insert_beaker(G,user)
+ else if(istype(W, /obj/item/weapon/cell))
+ if(beakers.len < 2)
+ user << "The electrolyzer requires one active beaker and one empty beaker!"
+ return
+ var/obj/item/weapon/cell/C = W
+ var/obj/item/weapon/reagent_containers/active = null
+ var/obj/item/weapon/reagent_containers/empty = null
+ var/datum/chemical_reaction/unreaction = null
+ for(var/obj/item/weapon/reagent_containers/B in beakers)
+ if(B.reagents.reagent_list.len > 1) //This only fires if their power ran out with a first cell and they try electrolyzing again without removing the old mix
+ user << "That mixture is too complex!"
+ return
+ else if(B.reagents.reagent_list.len == 1)
+ active = B
+ else if (!B.reagents.reagent_list.len)
+ empty = B
+ else
+ user << "An error has occured. Your beaker had between 0 and 1 reagents. Please report this message."
+ if(!active || !empty)
+ user << "There must be both an empty and active beaker."
+ return
+ var/datum/reagent/target = active.reagents.reagent_list[1] //Should only have one thing anyway
+ for(var/R in allowed_reactions)
+ var/datum/chemical_reaction/check = new R
+ if(check.id == target.id)
+ unreaction = check
+ break
+ if(!unreaction)
+ user << "The system didn't react..."
+ return
+ var/total_reactions = round(active.reagents.total_volume / unreaction.result_amount)
+ var/primary = 1
+ if(C.charge<30*total_reactions)
+ total_reactions = round(C.charge/30) //In the case that we don't have ENOUGH charge, this will react us as often as we can
+ C.charge -= (30*total_reactions)
+ active.reagents.remove_reagent(unreaction.result,total_reactions*unreaction.result_amount) //This moves over the reactive bulk, and leaves behind the amount too small to react
+ for(var/E in unreaction.required_reagents)
+ if(primary)
+ active.reagents.add_reagent(E, unreaction.required_reagents[E]*total_reactions) //Put component amount * reaction count back in primary
+ primary = 0
+ else
+ empty.reagents.add_reagent(E, unreaction.required_reagents[E]*total_reactions)
+ user << "The system electrolyzes!"
+ else
+ ..()
+
+/obj/item/weapon/electrolyzer/proc/insert_beaker(obj/item/weapon/W as obj, mob/user as mob)
+ W.loc = src
+ beakers += W
+ user.drop_item(W, src)
+
+
+/obj/structure/centrifuge
+ name = "suspicious toilet"
+ desc = "This toilet is a cleverly disguised improvised centrifuge."
+ icon = 'icons/obj/watercloset.dmi'
+ icon_state = "toilet11"
+ density = 0
+ anchored = 1
+ var/list/cans = new/list() //These are the empty containers.
+ var/obj/item/weapon/reagent_containers/beaker = null // This is the active container
+
+/obj/structure/centrifuge/examine(mob/user)
+ ..()
+ user << "It contains [cans.len] empty containers[beaker ? " and an active container!" : "."]"
+
+/obj/structure/centrifuge/attackby(obj/item/weapon/reagent_containers/W as obj, mob/user as mob)
+ if(iscrowbar(W))
+ var/obj/structure/toilet/T = new /obj/structure/toilet(src.loc)
+ T.open = 1
+ T.cistern = 1
+ T.dir = src.dir
+ T.update_icon()
+ new /obj/item/stack/rods(get_turf(src), 2)
+ user << "You pry out the rods, destroying the filter."
+ qdel(src)
+ if(W.is_open_container())
+ if(!W.reagents.total_volume)
+ W.loc = src
+ cans += W
+ user.drop_item(W, src)
+ user << "You add a passive container. It now contains [cans.len]."
+ else
+ if(!beaker)
+ user << "You insert an active container."
+ src.beaker = W
+ user.drop_item(W, src)
+ else
+ user << "There is already an active container."
+ return
+ else
+ ..()
+
+/obj/structure/centrifuge/attack_hand(mob/user as mob)
+ add_fingerprint(user)
+ if(cans.len || beaker)
+ for(var/obj/item/O in cans)
+ O.loc = src.loc
+ cans -= O
+ if(beaker)
+ beaker.loc = src.loc
+ beaker = null
+ user << "You remove everything from the centrifuge."
+ else
+ user << "There is nothing to eject!"
+
+/obj/structure/centrifuge/verb/flush()
+ set name = "Flush"
+ set category = "Object"
+ set src in view(1)
+ add_fingerprint(usr)
+ usr << "\The [src] groans as it spits out containers."
+ while(cans.len>0 && beaker.reagents.reagent_list.len>0)
+ var/obj/item/weapon/reagent_containers/C = cans[1]
+ var/datum/reagent/R = beaker.reagents.reagent_list[1]
+ beaker.reagents.trans_id_to(C,R.id,50)
+ C.loc = src.loc
+ cans -= C
+ if(!cans.len&&beaker.reagents.reagent_list.len)
+ usr << "With no remaining containers, the rest of the concoction swirls down the drain..."
+ beaker.reagents.clear_reagents()
+ if(!beaker.reagents.reagent_list.len)
+ usr << "The now-empty active container plops out."
+ beaker.loc = src.loc
+ beaker = null
+ return
+
+/obj/item/weapon/reagent_containers/mortar
+ name = "mortar"
+ desc = "This is a reinforced bowl, used for crushing reagents. Ooga booga Rockstop."
+ icon = 'icons/obj/food.dmi'
+ icon_state = "mortar"
+ flags = FPRINT | OPENCONTAINER
+ volume = 50
+ amount_per_transfer_from_this = 5
+ //We want the all-in-one grinder audience
+
+ var/list/blend_items = list (
+ /obj/item/stack/sheet/metal = list("iron",20),
+ /obj/item/stack/sheet/mineral/plasma = list("plasma",20),
+ /obj/item/stack/sheet/mineral/uranium = list("uranium",20),
+ /obj/item/stack/sheet/mineral/clown = list("banana",20),
+ /obj/item/stack/sheet/mineral/silver = list("silver",20),
+ /obj/item/stack/sheet/mineral/gold = list("gold",20),
+ /obj/item/weapon/grown/nettle = list("sacid",0),
+ /obj/item/weapon/grown/deathnettle = list("pacid",0),
+ /obj/item/stack/sheet/charcoal = list("charcoal",20),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = list("soymilk",1),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup",2),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("cornoil",3),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour",5),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk = list("rice",5),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly",1),
+ /obj/item/seeds = list("blackpepper",5),
+ /obj/item/device/flashlight/flare = list("sulfur",10),
+ /obj/item/stack/cable_coil = list("copper", 10),
+ /obj/item/weapon/cell = list("lithium", 10),
+ /obj/item/clothing/head/butt = list("mercury", 10),
+ /obj/item/weapon/rocksliver = list("ground_rock",30),
+
+ //Recipes must include both variables!
+ /obj/item/weapon/reagent_containers/food = list("generic",0)
+ )
+
+ var/list/juice_items = list (
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("tomatojuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = list("carrotjuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/berries = list("berryjuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = list("banana",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/potato = list("potato",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/lemon = list("lemonjuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/orange = list("orangejuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/lime = list("limejuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice",0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries = list("poisonberryjuice",0),
+ )
+
+
+ var/obj/item/crushable = null
+
+
+/obj/item/weapon/reagent_containers/mortar/afterattack(obj/target, mob/user , flag)
+ if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
+ if(!reagents.total_volume)
+ user << "[src] is empty."
+ return
+
+ if(target.reagents.total_volume >= target.reagents.maximum_volume)
+ user << "[target] is full."
+ return
+
+ var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
+ user << "You transfer [trans] units of the solution to [target]."
+
+/obj/item/weapon/reagent_containers/mortar/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if (isscrewdriver(O))
+ if(crushable)
+ crushable.loc = src.loc
+ new /obj/item/stack/sheet/metal(user.loc)
+ new /obj/item/trash/bowl(user.loc)
+ return
+ if (crushable)
+ user << "There's already something inside!"
+ return 1
+ if (!is_type_in_list(O, blend_items) && !is_type_in_list(O, juice_items))
+ user << "You can't grind that!"
+ return ..()
+ if(istype(O, /obj/item/stack/))
+ var/obj/item/stack/N = new O.type(src, amount=1)
+ var/obj/item/stack/S = O
+ S.use(1)
+ crushable = N
+ return 0
+ user.drop_item(O, src)
+ crushable = O
+ return 0
+
+/obj/item/weapon/reagent_containers/mortar/attack_hand(mob/user as mob)
+ add_fingerprint(user)
+ if(user.get_inactive_hand() != src) return ..()
+ if(crushable)
+ crushable.loc = src.loc
+ user.put_in_active_hand(crushable)
+ crushable = null
+ return
+
+/obj/item/weapon/reagent_containers/mortar/attack_self(mob/user as mob)
+ if(!crushable)
+ user << "There is nothing to be crushed."
+ return
+ if (reagents.total_volume >= volume)
+ user << "There is no more space inside!"
+ return
+ if(is_type_in_list(crushable, juice_items))
+ user << "You smash the contents into juice!"
+ var/id = null
+ for(var/i in juice_items)
+ if(istype(crushable, i))
+ id = juice_items[i]
+ if(!id)
+ return
+ var/obj/item/weapon/reagent_containers/food/snacks/grown/juiceable = crushable
+ if(juiceable.potency == -1)
+ juiceable.potency = 0
+ reagents.add_reagent(id[1], min(round(5*sqrt(juiceable.potency)), volume - reagents.total_volume))
+ else if(is_type_in_list(crushable, blend_items))
+ user << "You grind the contents into dust!"
+ var/id = null
+ var/space = volume - reagents.total_volume
+ for(var/i in blend_items)
+ if(istype(crushable, i))
+ id = blend_items[i]
+ break
+ if(!id)
+ return
+ if(istype(crushable, /obj/item/weapon/reagent_containers/food/snacks)) //Most growable food
+ if(id[1] == "generic")
+ crushable.reagents.trans_to(src,crushable.reagents.total_volume)
+ else
+ reagents.add_reagent(id[1],min(id[2], space))
+ else if(istype(crushable, /obj/item/stack/sheet) || istype(crushable, /obj/item/seeds) || /obj/item/device/flashlight/flare || /obj/item/stack/cable_coil || /obj/item/weapon/cell || /obj/item/clothing/head/butt) //Generic processes
+ reagents.add_reagent(id[1],min(id[2], space))
+ else if(istype(crushable, /obj/item/weapon/grown)) //Nettle and death nettle
+ crushable.reagents.trans_to(src,crushable.reagents.total_volume)
+ else if(istype(crushable, /obj/item/weapon/rocksliver)) //Xenoarch
+ var/obj/item/weapon/rocksliver/R = crushable
+ reagents.add_reagent(id[1],min(id[2], space), R.geological_data)
+ else
+ user << "An error was encountered. Report this message."
+ return
+ else
+ user << "You smash the contents into nothingness."
+ qdel(crushable)
+ crushable = null
+ return
+
+/obj/item/weapon/reagent_containers/mortar/examine(mob/user)
+ ..()
+ user << "It has [crushable ? "an unground \the [crushable] inside." : "nothing to be crushed."]"
diff --git a/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm b/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
index 4c7c2e4fe5f..ce826bd5eb0 100644
--- a/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
+++ b/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
@@ -1,4 +1,4 @@
-Methylphenidate
+//Methylphenidate
#define ANTIDEPRESSANT_MESSAGE_DELAY 5*60*10
@@ -15,11 +15,11 @@ Methylphenidate
if(!M) M = holder.my_atom
if(src.volume <= 0.1) if(data != -1)
data = -1
- M << "\red You lose focus.."
+ M << "You lose focus.."
else
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
data = world.time
- M << "\blue Your mind feels focused and undivided."
+ M << "Your mind feels focused and undivided."
..()
return
@@ -43,11 +43,11 @@ Methylphenidate
if(!M) M = holder.my_atom
if(src.volume <= 0.1) if(data != -1)
data = -1
- M << "\red Your mind feels a little less stable.."
+ M << "Your mind feels a little less stable.."
else
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
data = world.time
- M << "\blue Your mind feels stable.. a little stable."
+ M << "Your mind feels stable.. a little stable."
..()
return
@@ -72,14 +72,14 @@ Methylphenidate
if(!M) M = holder.my_atom
if(src.volume <= 0.1) if(data != -1)
data = -1
- M << "\red Your mind feels much less stable.."
+ M << "Your mind feels much less stable.."
else
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
data = world.time
if(prob(90))
- M << "\blue Your mind feels much more stable."
+ M << "Your mind feels much more stable."
else
- M << "\red Your mind breaks apart.."
+ M << "Your mind breaks apart.."
M.hallucination += 200
..()
return
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index f06a16d88d1..51e9154927b 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -115,7 +115,7 @@
/datum/reagent/slimejelly/on_mob_life(var/mob/living/M as mob,var/alien)
if(M.dna.mutantrace != "slime" || !istype(M, /mob/living/carbon/slime))
if(prob(10))
- M << "\red Your insides are burning!"
+ M << "Your insides are burning!"
M.adjustToxLoss(rand(20,60)*REM)
if(prob(40))
M.heal_organ_damage(5*REM,0)
@@ -269,11 +269,11 @@
if(H.species.name=="Grey")
if(method == TOUCH)
if(H.wear_mask)
- H << "\red Your mask protects you from the water!"
+ H << "Your mask protects you from the water!"
return
if(H.head)
- H << "\red Your helmet protects you from the water!"
+ H << "Your helmet protects you from the water!"
return
if(!M.unacidable)
if(prob(15) && volume >= 30)
@@ -516,7 +516,7 @@
if(ishuman(M))
var/mob/living/carbon/human/human = M
if(human.dna.mutantrace == null)
- M << "\red Your flesh rapidly mutates!"
+ M << "Your flesh rapidly mutates!"
human.dna.mutantrace = "slime"
human.update_mutantrace()
..()
@@ -710,7 +710,7 @@
return
if(H.head)
- H << "\red Your helmet protects you from the holy water!"
+ H << "Your helmet protects you from the holy water!"
return
if(!M.unacidable)
if(prob(15) && volume >= 30)
@@ -1010,18 +1010,18 @@
if(!H.wear_mask.unacidable)
del (H.wear_mask)
H.update_inv_wear_mask()
- H << "\red Your mask melts away but protects you from the acid!"
+ H << "Your mask melts away but protects you from the acid!"
else
- H << "\red Your mask protects you from the acid!"
+ H << "Your mask protects you from the acid!"
return
if(H.head && !istype(H.head, /obj/item/weapon/reagent_containers/glass/bucket))
if(prob(15) && !H.head.unacidable)
del(H.head)
H.update_inv_head()
- H << "\red Your helmet melts away but protects you from the acid"
+ H << "Your helmet melts away but protects you from the acid"
else
- H << "\red Your helmet protects you from the acid!"
+ H << "Your helmet protects you from the acid!"
return
else if(ismonkey(M))
@@ -1030,9 +1030,9 @@
if(!MK.wear_mask.unacidable)
del (MK.wear_mask)
MK.update_inv_wear_mask()
- MK << "\red Your mask melts away but protects you from the acid!"
+ MK << "Your mask melts away but protects you from the acid!"
else
- MK << "\red Your mask protects you from the acid!"
+ MK << "Your mask protects you from the acid!"
return
if(!M.unacidable)
@@ -1064,7 +1064,7 @@
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
I.desc = "Looks like this was \an [O] some time ago."
for(var/mob/M in viewers(5, O))
- M << "\red \the [O] melts."
+ M << "\the [O] melts."
del(O)
/datum/reagent/pacid
@@ -1093,18 +1093,18 @@
if(!H.wear_mask.unacidable)
del (H.wear_mask)
H.update_inv_wear_mask()
- H << "\red Your mask melts away but protects you from the acid!"
+ H << "Your mask melts away but protects you from the acid!"
else
- H << "\red Your mask protects you from the acid!"
+ H << "Your mask protects you from the acid!"
return
if(H.head && !istype(H.head, /obj/item/weapon/reagent_containers/glass/bucket))
if(prob(15) && !H.head.unacidable)
del(H.head)
H.update_inv_head()
- H << "\red Your helmet melts away but protects you from the acid"
+ H << "Your helmet melts away but protects you from the acid"
else
- H << "\red Your helmet protects you from the acid!"
+ H << "Your helmet protects you from the acid!"
return
if(!H.unacidable)
@@ -1119,9 +1119,9 @@
if(!MK.wear_mask.unacidable)
del (MK.wear_mask)
MK.update_inv_wear_mask()
- MK << "\red Your mask melts away but protects you from the acid!"
+ MK << "Your mask melts away but protects you from the acid!"
else
- MK << "\red Your mask protects you from the acid!"
+ MK << "Your mask protects you from the acid!"
return
if(!MK.unacidable)
@@ -1144,7 +1144,7 @@
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
I.desc = "Looks like this was \an [O] some time ago."
for(var/mob/M in viewers(5, O))
- M << "\red \the [O] melts."
+ M << "\the [O] melts."
del(O)
/datum/reagent/glycerol
@@ -1549,7 +1549,7 @@
for(var/obj/effect/E in W) if(E.name == "Wallrot") del E
for(var/mob/O in viewers(W, null))
- O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
+ O.show_message(text("The fungi are completely dissolved by the solution!"), 1)
/datum/reagent/toxin/plantbgone/reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/effect/alien/weeds/))
@@ -4099,28 +4099,38 @@
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
-/datum/reagent/ethanol/deadrum/doctor_delight
+/datum/reagent/drink/doctor_delight
name = "The Doctor's Delight"
id = "doctorsdelight"
description = "A gulp a day keeps the MediBot away. That's probably for the best."
reagent_state = LIQUID
- nutriment_factor = 1 * FOOD_METABOLISM
+ nutriment_factor = FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0
-/datum/reagent/ethanol/deadrum/doctor_delight/on_mob_life(var/mob/living/M as mob)
+/datum/reagent/drink/doctor_delight/on_mob_life(var/mob/living/M as mob)
- if(!holder) return
- M:nutrition += nutriment_factor
- holder.remove_reagent(src.id, FOOD_METABOLISM)
- if(!M) M = holder.my_atom
- if(M:getOxyLoss() && prob(50)) M:adjustOxyLoss(-2)
- if(M:getBruteLoss() && prob(60)) M:heal_organ_damage(2,0)
- if(M:getFireLoss() && prob(50)) M:heal_organ_damage(0,2)
- if(M:getToxLoss() && prob(50)) M:adjustToxLoss(-2)
- if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
- if(M.confused !=0) M.confused = max(0,M.confused - 5)
- ..()
- return
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(!holder)
+ return
+ H.nutrition += nutriment_factor
+ holder.remove_reagent(src.id, FOOD_METABOLISM)
+ if(!H)
+ H = holder.my_atom
+ if(H.getOxyLoss() && prob(50))
+ H.adjustOxyLoss(-2)
+ if(H.getBruteLoss() && prob(60))
+ H.heal_organ_damage(2, 0)
+ if(H.getFireLoss() && prob(50))
+ H.heal_organ_damage(0, 2)
+ if(H.getToxLoss() && prob(50))
+ H.adjustToxLoss(-2)
+ if(H.dizziness != 0)
+ H.dizziness = max(0, H.dizziness - 15)
+ if(H.confused != 0)
+ H.confused = max(0, H.confused - 5)
+ ..()
+ return
/datum/reagent/ethanol/deadrum/changelingsting
name = "Changeling Sting"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 12a83082de0..71a92d1d576 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -186,6 +186,13 @@ datum
required_reagents = list("hydrogen" = 2, "oxygen" = 1)
result_amount = 1
+ sacid
+ name = "Sulphuric Acid"
+ id = "sacid"
+ result = "sacid"
+ required_reagents = list("sulphur" = 2, "oxygen" = 3, "water" = 2)
+ result_amount = 2
+
thermite
name = "Thermite"
id = "thermite"
@@ -651,12 +658,12 @@ datum
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution violently bubbles!"
+ M << "The solution violently bubbles!"
location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution spews out foam!"
+ M << "The solution spews out foam!"
//world << "Holder volume is [holder.total_volume]"
//for(var/datum/reagent/R in holder.reagent_list)
@@ -681,7 +688,7 @@ datum
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution spews out a metalic foam!"
+ M << "The solution spews out a metalic foam!"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 1)
@@ -701,7 +708,7 @@ datum
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution spews out a metalic foam!"
+ M << "The solution spews out a metalic foam!"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 2)
@@ -1013,12 +1020,12 @@ datum
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution violently bubbles!"
+ M << "The solution violently bubbles!"
location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
- M << "\red The solution spews out foam!"
+ M << "The solution spews out foam!"
//world << "Holder volume is [holder.total_volume]"
//for(var/datum/reagent/R in holder.reagent_list)
@@ -1377,7 +1384,7 @@ datum
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/M in range (get_turf(holder.my_atom), 7))
M.bodytemperature -= 240
- M << "\blue You feel a chill!"
+ M << "You feel a chill!"
//Orange
slimecasp
diff --git a/code/modules/reagents/dartgun.dm b/code/modules/reagents/dartgun.dm
index 6453776d46c..6c37407babb 100644
--- a/code/modules/reagents/dartgun.dm
+++ b/code/modules/reagents/dartgun.dm
@@ -84,7 +84,7 @@
user << "There's already a cartridge in [src]."
return 0
- user.drop_item(src)
+ user.drop_item(D, src)
cartridge = D
user << "You slot [D] into [src]."
update_icon()
@@ -97,7 +97,7 @@
user << "[src] already has [max_beakers] vials in it - another one isn't going to fit!"
return
var/obj/item/weapon/reagent_containers/glass/beaker/B = I
- user.drop_item(src)
+ user.drop_item(B, src)
beakers += B
user << "You slot [B] into [src]."
src.updateUsrDialog()
diff --git a/code/modules/reagents/grenade_launcher.dm b/code/modules/reagents/grenade_launcher.dm
index 2562d140e2d..be4755ba141 100644
--- a/code/modules/reagents/grenade_launcher.dm
+++ b/code/modules/reagents/grenade_launcher.dm
@@ -27,7 +27,7 @@
if((istype(I, /obj/item/weapon/grenade)))
if(grenades.len < max_grenades)
- user.drop_item(src)
+ user.drop_item(I, src)
grenades += I
user << "You load the [I.name] into the [src.name]."
user << "[grenades.len] / [max_grenades] grenades loaded."
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index df54fbaf7b1..6372ef5f368 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -27,11 +27,11 @@
if(filled)
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- user << "\red [target] is full."
+ user << "[target] is full."
return
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit.
- user << "\red You cannot directly fill this object."
+ user << "You cannot directly fill this object."
return
var/trans = 0
@@ -48,13 +48,13 @@
trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this)
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] tries to squirt something into []'s eyes, but fails!", user, target), 1)
+ O.show_message(text("[] tries to squirt something into []'s eyes, but fails!", user, target), 1)
spawn(5)
src.reagents.reaction(safe_thing, TOUCH)
- user << "\blue You transfer [trans] units of the solution."
+ user << "You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
@@ -62,7 +62,7 @@
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1)
+ O.show_message(text("[] squirts something into []'s eyes!", user, target), 1)
src.reagents.reaction(target, TOUCH)
var/mob/living/M = target
@@ -80,7 +80,7 @@
M.LAssailant = user
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
- user << "\blue You transfer [trans] units of the solution."
+ user << "You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
@@ -93,23 +93,23 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
- var/hl="\red ([english_list(badshit)]) \black"
+ var/hl="([english_list(badshit)])"
message_admins("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].[hl] (JMP)")
log_game("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].")
else
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
- user << "\red You cannot directly remove reagents from [target]."
+ user << "You cannot directly remove reagents from [target]."
return
if(!target.reagents.total_volume)
- user << "\red [target] is empty."
+ user << "[target] is empty."
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
- user << "\blue You fill the dropper with [trans] units of the solution."
+ user << "You fill the dropper with [trans] units of the solution."
filled = 1
icon_state = "dropper[filled]"
diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
index cbb2c603fa0..4fb7fc3c879 100644
--- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
@@ -493,7 +493,7 @@
icon_state = "mug_empty"
isGlass = 0
amount_per_transfer_from_this = 10
- volume = 50
+ volume = 30
g_amt = 500
on_reagent_change()
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 6c78bec65ec..d4e1dc5da82 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -165,7 +165,7 @@
if(!iscarbon(user))
return 0
user << "You slip [W] inside [src]."
- user.drop_item(src)
+ user.drop_item(W, src)
add_fingerprint(user)
contents += W
return 1 //No afterattack here
@@ -1153,6 +1153,7 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("bustanut", 6)
+ reagents.add_reagent("sodiumchloride", 6)
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
name = "space twinkie"
@@ -2675,7 +2676,7 @@
boxestoadd += i
if( (boxes.len+1) + boxestoadd.len <= 5 )
- user.drop_item(src)
+ user.drop_item(I, src)
box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit
src.boxes.Add( boxestoadd )
@@ -2694,7 +2695,7 @@
if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/)) // Long ass fucking object name
if(src.pizza) user << "[src] already has a pizza in it."
else if(src.open)
- user.drop_item(src)
+ user.drop_item(I, src)
src.pizza = I
src.update_icon()
user << "You put [I] in [src]."
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index bf6793265f4..67d349d2dee 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -26,10 +26,12 @@
/obj/structure/table,
/obj/structure/closet,
/obj/structure/sink,
+ /obj/structure/centrifuge/,
/obj/item/weapon/storage,
/obj/machinery/atmospherics/unary/cryo_cell,
/obj/machinery/dna_scannernew,
/obj/item/weapon/grenade/chem_grenade,
+ /obj/item/weapon/electrolyzer,
/obj/machinery/bot/medbot,
/obj/machinery/computer/pandemic,
/obj/item/weapon/storage/secure/safe,
@@ -437,10 +439,10 @@
/obj/item/weapon/reagent_containers/glass/kettle
name = "Kettle"
- desc = "A pot made for holding hot drinks. Can hold up to 50 units."
+ desc = "A pot made for holding hot drinks. Can hold up to 75 units."
icon_state = "kettle"
m_amt = 200
- volume = 50
+ volume = 75
w_type = RECYK_GLASS
amount_per_transfer_from_this = 10
flags = FPRINT | OPENCONTAINER
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 45975bf62cb..5e3e0e2a925 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -30,13 +30,13 @@
/obj/item/weapon/reagent_containers/hypospray/attack(mob/M as mob, mob/user as mob)
if(!reagents.total_volume)
- user << "\red [src] is empty."
+ user << "[src] is empty."
return
if (!( istype(M, /mob) ))
return
if (reagents.total_volume)
- user << "\blue You inject [M] with [src]."
- M << "\red You feel a tiny prick!"
+ user << "You inject [M] with [src]."
+ M << "You feel a tiny prick!"
playsound(get_turf(src), 'sound/items/hypospray.ogg', 50, 1)
src.reagents.reaction(M, INGEST)
@@ -56,7 +56,7 @@
M.LAssailant = user
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
- user << "\blue [trans] units injected. [reagents.total_volume] units remaining in [src]."
+ user << "[trans] units injected. [reagents.total_volume] units remaining in [src]."
return
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 6129a98606f..f8f64718c9d 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -81,7 +81,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
- var/hl="\red ([english_list(badshit)]) \black"
+ var/hl="([english_list(badshit)])"
message_admins("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].[hl] (JMP)")
log_game("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].")
diff --git a/code/modules/reagents/reagent_containers/robodropper.dm b/code/modules/reagents/reagent_containers/robodropper.dm
index 821bcae7be8..5ef62f09e2a 100644
--- a/code/modules/reagents/reagent_containers/robodropper.dm
+++ b/code/modules/reagents/reagent_containers/robodropper.dm
@@ -18,16 +18,16 @@
if(filled)
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- user << "\red [target] is full."
+ user << "[target] is full."
return
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food)) //You can inject humans and food but you cant remove the shit.
- user << "\red You cannot directly fill this object."
+ user << "You cannot directly fill this object."
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
- user << "\blue You transfer [trans] units of the solution."
+ user << "You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
@@ -40,7 +40,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
- var/hl="\red ([english_list(badshit)]) \black"
+ var/hl="([english_list(badshit)])"
message_admins("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].[hl] (JMP)")
log_game("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].")
@@ -56,12 +56,12 @@
trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this)
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] tries to squirt something into []'s eyes, but fails!", user, target), 1)
+ O.show_message(text("[] tries to squirt something into []'s eyes, but fails!", user, target), 1)
spawn(5)
src.reagents.reaction(safe_thing, TOUCH)
- user << "\blue You transfer [trans] units of the solution."
+ user << "You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
@@ -69,7 +69,7 @@
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1)
+ O.show_message(text("[] squirts something into []'s eyes!", user, target), 1)
src.reagents.reaction(target, TOUCH)
var/mob/M = target
@@ -88,16 +88,16 @@
else
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
- user << "\red You cannot directly remove reagents from [target]."
+ user << "You cannot directly remove reagents from [target]."
return
if(!target.reagents.total_volume)
- user << "\red [target] is empty."
+ user << "[target] is empty."
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
- user << "\blue You fill the dropper with [trans] units of the solution."
+ user << "You fill the dropper with [trans] units of the solution."
filled = 1
icon_state = "dropper[filled]"
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 3d74d0b5bf6..9f43ef1c7ef 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -20,7 +20,7 @@
var/mode = SYRINGE_DRAW
/obj/item/weapon/reagent_containers/syringe/suicide_act(mob/user)
- viewers(user) << "\red [user] appears to be injecting an air bubble using a [src.name]! It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] appears to be injecting an air bubble using a [src.name]! It looks like \he's trying to commit suicide."
return(OXYLOSS)
/obj/item/weapon/reagent_containers/syringe/on_reagent_change()
@@ -61,7 +61,7 @@
if(!target.reagents) return
if(mode == SYRINGE_BROKEN)
- user << "\red This syringe is broken!"
+ user << "This syringe is broken!"
return
if (user.a_intent == I_HURT && ismob(target))
@@ -76,15 +76,15 @@
if(SYRINGE_DRAW)
if(reagents.total_volume >= reagents.maximum_volume)
- user << "\red The syringe is full."
+ user << "The syringe is full."
return
if(ismob(target))//Blood!
if(istype(target, /mob/living/carbon/slime))
- user << "\red You are unable to locate any blood."
+ user << "You are unable to locate any blood."
return
if(src.reagents.has_reagent("blood"))
- user << "\red There is already a blood sample in this syringe"
+ user << "There is already a blood sample in this syringe"
return
if(istype(target, /mob/living/carbon))//maybe just add a blood reagent to all mobs. Then you can suck them dry...With hundreds of syringes. Jolly good idea.
var/amount = src.reagents.maximum_volume - src.reagents.total_volume
@@ -93,7 +93,7 @@
user << "You are unable to locate any blood. (BUG: To be specific, your target seems to be missing their DNA datum)"
return
if(M_NOCLONE in T.mutations) //target done been et, no more blood in him
- user << "\red You are unable to locate any blood."
+ user << "You are unable to locate any blood."
return
var/datum/reagent/B = T.take_blood(src,amount)
@@ -103,41 +103,41 @@
src.reagents.update_total()
src.on_reagent_change()
src.reagents.handle_reactions()
- user << "\blue You take a blood sample from [target]"
+ user << "You take a blood sample from [target]"
for(var/mob/O in viewers(4, user))
- O.show_message("\red [user] takes a blood sample from [target].", 1)
+ O.show_message("[user] takes a blood sample from [target].", 1)
else
- user.visible_message("\red [user] inserts the syringe into [target], draws back the plunger and gets... Nothing?",\
- "\red You insert the syringe into [target], draw back the plunger and get... Nothing?")
+ user.visible_message("[user] inserts the syringe into [target], draws back the plunger and gets... Nothing?",\
+ "You insert the syringe into [target], draw back the plunger and get... Nothing?")
else //if not mob
if(!target.reagents.total_volume)
- user << "\red [target] is empty."
+ user << "[target] is empty."
return
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/slime_extract))
- user << "\red You cannot directly remove reagents from this object."
+ user << "You cannot directly remove reagents from this object."
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares?
- user << "\blue You fill the syringe with [trans] units of the solution."
+ user << "You fill the syringe with [trans] units of the solution."
if (reagents.total_volume >= reagents.maximum_volume)
mode=!mode
update_icon()
if(SYRINGE_INJECT)
if(!reagents.total_volume)
- user << "\red The Syringe is empty."
+ user << "The Syringe is empty."
return
if(istype(target, /obj/item/weapon/implantcase/chem))
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes))
- user << "\red You cannot directly fill this object."
+ user << "You cannot directly fill this object."
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- user << "\red [target] is full."
+ user << "[target] is full."
return
if(ismob(target) && target != user)
@@ -149,14 +149,14 @@
for(var/mob/O in viewers(world.view, user))
if(time == 30)
- O.show_message(text("\red [] is trying to inject []!", user, target), 1)
+ O.show_message(text("[] is trying to inject []!", user, target), 1)
else
- O.show_message(text("\red [] begins hunting for an injection port on []'s suit!", user, target), 1)
+ O.show_message(text("[] begins hunting for an injection port on []'s suit!", user, target), 1)
if(!do_mob(user, target, time)) return
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] injects [] with the syringe!", user, target), 1)
+ O.show_message(text("[] injects [] with the syringe!", user, target), 1)
if(istype(target,/mob/living))
var/mob/living/M = target
@@ -188,7 +188,7 @@
trans = 5
else
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
- user << "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units."
+ user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units."
if(isobj(target))
// /vg/: Logging transfers of bad things
@@ -198,7 +198,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
- var/hl="\red ([english_list(badshit)]) \black"
+ var/hl="([english_list(badshit)])"
message_admins("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].[hl] (JMP)")
log_game("[user.name] ([user.ckey]) added [trans]U to \a [target] with [src].")
@@ -266,20 +266,20 @@
if (target != user && target.getarmor(target_zone, "melee") > 5 && prob(50))
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1)
+ O.show_message(text("[user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1)
user.u_equip(src)
del(src)
return
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [user] stabs [target] in \the [hit_area] with [src.name]!"), 1)
+ O.show_message(text("[user] stabs [target] in \the [hit_area] with [src.name]!"), 1)
if(affecting.take_damage(3))
target:UpdateDamageIcon()
else
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [user] stabs [target] with [src.name]!"), 1)
+ O.show_message(text("[user] stabs [target] with [src.name]!"), 1)
target.take_organ_damage(3)// 7 is the same as crowbar punch
src.reagents.reaction(target, INGEST)
@@ -336,7 +336,7 @@
if(SYRINGE_DRAW)
if(reagents.total_volume >= reagents.maximum_volume)
- user << "\red The syringe is full."
+ user << "The syringe is full."
return
if(ismob(target))
@@ -345,45 +345,45 @@
return
else //if not mob
if(!target.reagents.total_volume)
- user << "\red [target] is empty."
+ user << "[target] is empty."
return
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
- user << "\red You cannot directly remove reagents from this object."
+ user << "You cannot directly remove reagents from this object."
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares?
- user << "\blue You fill the syringe with [trans] units of the solution."
+ user << "You fill the syringe with [trans] units of the solution."
if (reagents.total_volume >= reagents.maximum_volume)
mode=!mode
update_icon()
if(SYRINGE_INJECT)
if(!reagents.total_volume)
- user << "\red The syringe is empty."
+ user << "The syringe is empty."
return
if(istype(target, /obj/item/weapon/implantcase/chem))
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
- user << "\red You cannot directly fill this object."
+ user << "You cannot directly fill this object."
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- user << "\red [target] is full."
+ user << "[target] is full."
return
if(ismob(target) && target != user)
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] is trying to inject [] with a giant syringe!", user, target), 1)
+ O.show_message(text("[] is trying to inject [] with a giant syringe!", user, target), 1)
if(!do_mob(user, target, 300)) return
for(var/mob/O in viewers(world.view, user))
- O.show_message(text("\red [] injects [] with a giant syringe!", user, target), 1)
+ O.show_message(text("[] injects [] with a giant syringe!", user, target), 1)
src.reagents.reaction(target, INGEST)
if(ismob(target) && target == user)
src.reagents.reaction(target, INGEST)
spawn(5)
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
- user << "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units."
+ user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units."
if (reagents.total_volume >= reagents.maximum_volume && mode==SYRINGE_INJECT)
mode = SYRINGE_DRAW
update_icon()
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 610cb5d29e7..9c01a1c5dd3 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -128,7 +128,7 @@
log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.")
rig = W
- user.drop_item(src)
+ user.drop_item(W, src)
var/icon/test = getFlatIcon(W)
test.Shift(NORTH,1)
diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm
index eba8b234660..3004e1455d3 100644
--- a/code/modules/reagents/syringe_gun.dm
+++ b/code/modules/reagents/syringe_gun.dm
@@ -26,7 +26,7 @@
var/obj/item/weapon/reagent_containers/syringe/S = I
if(S.mode != 2)//SYRINGE_BROKEN in syringes.dm
if(syringes.len < max_syringes)
- user.drop_item(src)
+ user.drop_item(I, src)
syringes += I
user << "You put the syringe in [src]."
user << "[syringes.len] / [max_syringes] syringes."
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index e0071048a7e..313b249021e 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -191,7 +191,7 @@
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
- user.drop_item(src.loc)
+ user.drop_item(W, src.loc)
return 0
/obj/machinery/conveyor/multitool_menu(var/mob/user,var/obj/item/device/multitool/P)
@@ -348,7 +348,7 @@
// attack with hand, switch position
/obj/machinery/conveyor_switch/attack_hand(mob/user)
if(isobserver(usr) && !canGhostWrite(user,src,"toggled"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
if(position == 0)
if(last_pos < 0)
@@ -383,10 +383,10 @@
update_multitool_menu(user)
return 1
if(istype(W, /obj/item/weapon/wrench))
- user << "\blue Deconstructing \the [src]..."
+ user << "Deconstructing \the [src]..."
if(do_after(user,50))
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 100, 1)
- user << "\blue You disassemble \the [src]."
+ user << "You disassemble \the [src]."
var/turf/T=get_turf(src)
new /obj/item/device/assembly/signaler(T)
new /obj/item/stack/rods(T,1)
@@ -401,7 +401,7 @@
// attack with hand, switch position
/obj/machinery/conveyor_switch/oneway/attack_hand(mob/user)
if(isobserver(usr) && !canGhostWrite(user,src,"toggled"))
- usr << "\red Nope."
+ usr << "Nope."
return 0
if(position == 0)
position = convdir
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index 696c62ab1c7..a35ead76cfa 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -89,7 +89,7 @@
set category = "Object"
set src in view(1)
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(anchored)
@@ -103,7 +103,7 @@
set name = "Flip Pipe"
set category = "Object"
set src in view(1)
- if(usr.stat)
+ if(usr.stat || (usr.status_flags & FAKEDEATH))
return
if(anchored)
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index a4d1cac5fa3..4fcd24bd20f 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -128,7 +128,7 @@
var/obj/item/weapon/storage/bag/B = I
if(B.contents.len == 0)
user << " You throw away the empty [B]."
- user.drop_item(src)
+ user.drop_item(I, src)
return
user << " You empty the [B]."
for(var/obj/item/O in B.contents)
@@ -151,29 +151,16 @@
GM.client.eye = src
GM.loc = src
for (var/mob/C in viewers(src))
- C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3)
+ C.show_message("[GM.name] has been placed in the [src] by [user].", 3)
del(G)
log_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.")
return
if(!I) return
- if(!isMoMMI(user))
- user.drop_item()
- else
- var/mob/living/silicon/robot/mommi/M = user
- if(is_type_in_list(I,M.module.modules))
- user << "\red You can't throw away what's attached to you."
- return
- else
- M.drop_item()
- if(I)
- I.loc = src
- user << "You place \the [I] into the [src]."
- for(var/mob/M in viewers(src))
- if(M == user)
- continue
- M.show_message("[user.name] places \the [I] into the [src].", 3)
+ if(user.drop_item(I, src))
+
+ user.visible_message("[user.name] places \the [I] into the [src].", "You place \the [I] into the [src].")
update()
@@ -216,11 +203,11 @@
// human interact with machine
attack_hand(mob/user as mob)
if(user && user.loc == src)
- usr << "\red You cannot reach the controls from inside."
+ usr << "You cannot reach the controls from inside."
return
/*
if(mode==-1)
- usr << "\red The disposal units power is disabled."
+ usr << "The disposal units power is disabled."
return
*/
interact(user, 0)
@@ -263,11 +250,11 @@
Topic(href, href_list)
if(usr.loc == src)
- usr << "\red You cannot reach the controls from inside."
+ usr << "You cannot reach the controls from inside."
return
if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1
- usr << "\red The disposal units power is disabled."
+ usr << "The disposal units power is disabled."
return
if(..())
usr << browse(null, "window=disposal")
@@ -1055,7 +1042,7 @@
sortType = O.currTag
playsound(get_turf(src), 'sound/machines/twobeep.ogg', 100, 1)
var/tag = uppertext(TAGGERLOCATIONS[O.currTag])
- user << "\blue Changed filter to [tag]"
+ user << "Changed filter to [tag]"
updatedesc()
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 4baa88854ae..3abcfb9b4a6 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -9,6 +9,11 @@
flags = FPRINT
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
+/obj/structure/bigDelivery/attack_robot(mob/user)
+ if(!Adjacent(user))
+ return
+ attack_hand(user)
+
/obj/structure/bigDelivery/attack_hand(mob/user as mob)
if(wrapped) //sometimes items can disappear. For example, bombs. --rastaf0
wrapped.loc = (get_turf(src.loc))
@@ -103,6 +108,7 @@
/obj/item/weapon/gift,//real presents are given directly
/obj/item/weapon/winter_gift,
/obj/item/weapon/evidencebag,
+ /obj/item/weapon/legcuffs/bolas,
)
/obj/item/weapon/packageWrap/afterattack(var/obj/target as obj, mob/user as mob)
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 2e62b21d464..ef6d9bc7597 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1992,6 +1992,7 @@ k
reliability_base = 76
build_path = /obj/item/weapon/gun/energy/gun/nuclear
locked = 1
+ req_lock_access = list(access_armory)
/datum/design/stunrevolver
name = "Stun Revolver"
@@ -2002,6 +2003,8 @@ k
materials = list("$iron" = 4000)
build_path = /obj/item/weapon/gun/energy/stunrevolver
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/lasercannon
name = "Laser Cannon"
@@ -2012,6 +2015,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$diamond" = 2000)
build_path = /obj/item/weapon/gun/energy/lasercannon
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomsquaddiearmor
name = "Squaddie Armor"
@@ -2040,6 +2045,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$plasma" = 12000, "$uranium" = 4000)
build_path = /obj/item/weapon/gun/energy/plasma/pistol
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomplasmarifle
name = "Plasma Cannon"
@@ -2050,6 +2057,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$diamond" = 3000, "$plasma" = 28000, "$uranium" = 12000)
build_path = /obj/item/weapon/gun/energy/plasma/rifle
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomlightplasmarifle
name = "Plasma Rifle"
@@ -2060,6 +2069,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$plasma" = 20000, "$uranium" = 8000)
build_path = /obj/item/weapon/gun/energy/plasma/light
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomlaserrifle
name = "Laser Rifle"
@@ -2070,6 +2081,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$diamond" = 2000)
build_path = /obj/item/weapon/gun/energy/laser/rifle
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomlaserpistol
name = "Laser Pistol"
@@ -2080,6 +2093,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000, "$diamond" = 1000)
build_path = /obj/item/weapon/gun/energy/laser/pistol
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/xcomar
name = "Assault Rifle"
@@ -2090,6 +2105,8 @@ k
materials = list("$iron" = 10000, "$glass" = 1000)
build_path = /obj/item/weapon/gun/projectile/automatic/xcom
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/decloner
name = "Decloner"
@@ -2099,6 +2116,9 @@ k
build_type = PROTOLATHE
materials = list("$iron" = 5000, "$gold" = 5000,"$uranium" = 10000) //, "mutagen" = 40)
build_path = /obj/item/weapon/gun/energy/decloner
+ locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/chemsprayer
name = "Chem Sprayer"
@@ -2109,6 +2129,8 @@ k
materials = list("$iron" = 5000, "$glass" = 1000)
reliability_base = 100
build_path = /obj/item/weapon/reagent_containers/spray/chemsprayer
+ req_lock_access = list(access_medical, access_cmo)
+
/datum/design/rapidsyringe
name = "Rapid Syringe Gun"
@@ -2128,6 +2150,8 @@ k
materials = list("$iron" = 5000, "$glass" = 1000, "$uranium" = 1000, "$silver" = 1000)
build_path = /obj/item/weapon/gun/energy/crossbow/largecrossbow
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/temp_gun
name = "Temperature Gun"
@@ -2137,6 +2161,9 @@ k
build_type = PROTOLATHE
materials = list("$iron" = 5000, "$glass" = 500, "$silver" = 3000)
build_path = /obj/item/weapon/gun/energy/temperature
+ locked = 1
+ req_lock_access = list(access_tox, access_robotics, access_rd)
+
/datum/design/flora_gun
name = "Floral Somatoray"
@@ -2176,6 +2203,8 @@ k
materials = list("$iron" = 8000, "$silver" = 2000, "$diamond" = 1000)
build_path = /obj/item/weapon/gun/projectile/automatic
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/ammo_9mm
name = "Ammunition Box (9mm)"
@@ -2407,6 +2436,8 @@ k
materials = list("$iron" = 50, "$glass" = 50)
build_path = /obj/item/clothing/glasses/sunglasses/sechud
locked = 1
+ req_lock_access = list(access_armory)
+
/////////////////////////////////////////
/////////////////Engineering/////////////
@@ -2439,6 +2470,15 @@ k
materials = list("$iron" = 500, "$glass" = 1000, "$gold" = 200, "$silver" = 200)
build_path = /obj/item/device/device_analyser
+/datum/design/component_exchanger
+ name = "Rapid Machinery Component Exchanger"
+ desc = "A device that allows to quickly replace machinery components, useful for upgrading."
+ id = "componentexchanger"
+ req_tech = list("magnets"=2, "engineering"=4, "materials"=5, "programming"=3)
+ build_type = PROTOLATHE
+ materials = list("$iron" = 500, "$glass" = 1000, "$gold" = 200, "$silver" = 200)
+ build_path = /obj/item/device/component_exchanger
+
/////////////////////////////////////////
//////////////////Security///////////////
/////////////////////////////////////////
@@ -2452,6 +2492,8 @@ k
materials = list("$iron" = 1500, "$glass" = 2500, "$diamond" = 3750, "$silver" = 1000, "$uranium" = 500)
build_path = /obj/item/clothing/suit/armor/laserproof
locked = 1
+ req_lock_access = list(access_armory)
+
/datum/design/advancedeod
name = "Advanced EOD Suit"
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 176bf6f968e..5ad3ac7f104 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -65,24 +65,24 @@ Note: Must be placed within 3 tiles of the R&D Console
if(isMoMMI(user))
var/mob/living/silicon/robot/mommi/mommi = user
if(mommi.is_in_modules(O,permit_sheets=1))
- user << "\red You cannot insert something that is part of you."
+ user << "You cannot insert something that is part of you."
return
else
return
if(!O.origin_tech)
- user << "\red This doesn't seem to have a tech origin!"
+ user << "This doesn't seem to have a tech origin!"
return
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
if (temp_tech.len == 0)
- user << "\red You cannot deconstruct this item!"
+ user << "You cannot deconstruct this item!"
return
/*if(O.reliability < 90 && O.crit_fail == 0)
- usr << "\red Item is neither reliable enough or broken enough to learn from."
+ usr << "Item is neither reliable enough or broken enough to learn from."
return*/
busy = 1
loaded_item = O
- user.drop_item(src)
- user << "\blue You add the [O.name] to the machine!"
+ user.drop_item(O, src)
+ user << "You add the [O.name] to the machine!"
flick("d_analyzer_la", src)
spawn(10)
icon_state = "d_analyzer_l"
diff --git a/code/modules/research/mechanic/component_exchanger.dm b/code/modules/research/mechanic/component_exchanger.dm
new file mode 100644
index 00000000000..0dc7177f99f
--- /dev/null
+++ b/code/modules/research/mechanic/component_exchanger.dm
@@ -0,0 +1,267 @@
+//The newest tool in the Mechanic's arsenal, the Rapid Machinery Component Exchanger (RMCE)
+//It can load up a maximum of ten machinery modules and can replace machinery modules without even having to rebuild them
+//Useful if you want to replace a large amount of modules quickly and painlessly
+
+/obj/item/device/component_exchanger
+ name = "rapid machinery component exchanger"
+ desc = "A tool used to replace machinery components without having to deconstruct them. It can load up to ten components at once"
+ icon = 'icons/obj/device.dmi'
+ icon_state = "comp_exchanger"
+ gender = NEUTER
+ flags = FPRINT
+ slot_flags = SLOT_BELT
+ w_class = 2
+ item_state = "electronic"
+ m_amt = 0 //So the autolathe doesn't try to eat it
+ g_amt = 0
+ w_type = RECYK_ELECTRONIC
+ origin_tech = "magnets=2;engineering=4;materials=5;programming=3"
+ var/list/componentstorage = list()
+ var/maxcomponents = 20
+ var/emagged = 0 //So we can emag it for "improved" functionality
+
+//Do a quick check-up of what is loaded
+/obj/item/device/component_exchanger/attack_self(var/mob/user)
+
+ self_interact_menu(user)
+
+/obj/item/device/component_exchanger/attackby(var/atom/A, mob/user)
+
+ if(istype(A, /obj/item/weapon/stock_parts))
+ var/obj/item/weapon/stock_parts/P = A
+ if(componentstorage.len < maxcomponents) //We have room
+ user.visible_message("[user] slots \a [P] into \the [src]'s component storage", \
+ "You slot \a [P] into \the [src]'s component storage")
+ user.drop_item(P)
+ componentstorage += P //Add it to the proper component storage list
+ playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) //User feedback
+ else
+ user << "\The [src] is full."
+ else if(istype(A, /obj/item/weapon/storage/bag/gadgets))
+ var/obj/item/weapon/storage/bag/gadgets/G = A
+ if(!contents)
+ user << "\The [G] is empty."
+ for(var/obj/item/weapon/stock_parts/S in G.contents)
+ if(componentstorage.len < maxcomponents)
+ componentstorage += S
+ else
+ user << "You fill \the [src] to its capacity with \the [G]'s contents."
+ return
+ user << "You fill up \the [src] with \the [G]'s contents."
+
+//Redirect the attack only if it's a machine, otherwise don't bother
+/obj/item/device/component_exchanger/preattack(var/atom/A, var/mob/user, proximity_flag)
+
+ if(!Adjacent(user))
+ return
+
+ if(istype(A, /obj/machinery))
+
+ var/obj/machinery/M = A
+
+ if(!M.panel_open)
+ user << "The maintenance hatch of \the [M] is closed, you can't just stab \the [src] into it and hope it'll work."
+ return
+
+ user.visible_message("[user] starts setting up \a [src] in \the [M]'s maintenance hatch", \
+ "You carefully insert \the [src] through \the [M]'s maintenance hatch, it starts scanning the machine's components.")
+
+ if(do_after(user, 30)) //3 seconds to obtain a complete reading of the machine's components
+
+ if(!Adjacent(user))
+ user << "An error message flashes on \the [src]'s HUD, stating its scan was disrupted."
+ return
+
+ if(!M.component_parts) //This machine does not use components
+ user << "A massive error dump scrolls through \the [src]'s HUD. It looks like \the [M] has yet to be made compatible with this tool."
+ return
+
+ playsound(get_turf(src), 'sound/machines/Ping.ogg', 50, 1) //User feedback
+ user << "\The [src] pings softly. A small message appears on its HUD, instructing to not move until finished."
+
+ component_interaction(M, user) //Our job is done here, we transfer to the second proc (it needs to be recalled if needed)
+
+ return
+ return
+
+/obj/item/device/component_exchanger/proc/component_interaction(obj/machinery/M, mob/user)
+
+ if(!Adjacent(user)) //We aren't hugging the machine, so don't bother. This'll prop up often
+ user << "A blue screen suddenly flashes on \the [src]'s HUD. It appears the critical failure was caused by suddenly yanking it out of \the [M]'s maintenance hatch."
+ return //Done, done and done, pull out
+
+ //Recurring option menu, what do we wish to do ?
+ var/interactoption = alert("Select desired operation", "RMCE V.12 Ready", "Output Information", "Replace Component", "Finish Operation")
+
+ if(interactoption == "Finish Operation") //Simplest case, the user wants out
+
+ user.visible_message("[user] pulls \the [src] out of \the [M]'s maintenance hatch.", \
+ "A fancy log-out screen appears and \the [src]'s systems shut down. You pull it out of \the [M] carefully.")
+ return //Done
+
+ if(interactoption == "Output Information") //This also acts as a data dumping tool, if needed
+
+ var/dat
+ var/ratingpool //Used to give an estimation of the machine's quality rating
+ var/componentamount //Since the fucking circuit board is counted as a component, we can't use component_parts.len
+
+ dat += "Scanning results for \the [M] :
"
+ if(M.component_parts.len)
+ for(var/obj/item/weapon/stock_parts/P in M.component_parts)
+ dat += "Detected : [P] of effective quality rating [P.rating]. "
+ ratingpool += P.rating
+ componentamount++
+ if(ratingpool)
+ dat += " Effective quality rating of machine components : [ratingpool/componentamount]. "
+ else
+ dat += "No components detected. Please ensure the scanning unit is still functional. " //Shouldn't happen
+ dat += " Note : You will be returned to the input menu shortly."
+
+ user.visible_message("[user] looks at \the [src]'s HUD as it starts a full data scan on \the [M].", \
+ "You take a closer look at \the [src]'s HUD as it starts data scanning \the [M].")
+ if(do_after(user, 50)) //Shouldn't be interrupted
+ user << browse(dat, "window=componentanal") //Send them the data, in a window
+ onclose(user, "componentanal")
+
+ spawn(30)
+ component_interaction(M, user)
+ return
+ else
+ user << "A blue screen suddenly flashes on \the [src]'s HUD. It appears the critical failure was caused by suddenly yanking it out of \the [M]'s maintenance hatch."
+
+ if(interactoption == "Replace Component")
+
+ user.visible_message("[user] carefully fits \the [src] into \the [M] as it rattles and starts remplacing components.", \
+ "\The [src]'s HUD flashes, a message appears stating it has started scanning and replacing \the [M]'s components.")
+
+ for(var/obj/item/weapon/stock_parts/P in M.component_parts)
+ if(!Adjacent(user)) //Make sure the user doesn't move
+ user << "A blue screen suddenly flashes on \the [src]'s HUD. It appears the critical failure was caused by suddenly yanking it out of \the [M]'s maintenance hatch."
+ return
+ //Yes, an istype list. We don't have helpers for this, and this coder is not that sharp
+ if(istype(P, /obj/item/weapon/stock_parts/capacitor))
+ for(var/obj/item/weapon/stock_parts/capacitor/R in componentstorage)
+ if(R.rating > P.rating && P in M.component_parts) //Kind of a hack, but makes sure we don't replace components that already were
+ sleep(10) //One second per component
+ perform_indiv_replace(P, R, M)
+ //Do not break in case we find even better
+ if(istype(P, /obj/item/weapon/stock_parts/scanning_module))
+ for(var/obj/item/weapon/stock_parts/scanning_module/R in componentstorage)
+ if(R.rating > P.rating && P in M.component_parts)
+ sleep(10) //One second per component
+ perform_indiv_replace(P, R, M)
+ if(istype(P, /obj/item/weapon/stock_parts/manipulator))
+ for(var/obj/item/weapon/stock_parts/manipulator/R in componentstorage)
+ if(R.rating > P.rating && P in M.component_parts)
+ sleep(10) //One second per component
+ perform_indiv_replace(P, R, M)
+ if(istype(P, /obj/item/weapon/stock_parts/micro_laser))
+ for(var/obj/item/weapon/stock_parts/micro_laser/R in componentstorage)
+ if(R.rating > P.rating && P in M.component_parts)
+ sleep(10) //One second per component
+ perform_indiv_replace(P, R, M)
+ if(istype(P, /obj/item/weapon/stock_parts/matter_bin))
+ for(var/obj/item/weapon/stock_parts/matter_bin/R in componentstorage)
+ if(R.rating > P.rating && P in M.component_parts)
+ sleep(10) //One second per component
+ perform_indiv_replace(P, R, M)
+ //Good thing there's only a few stock parts types
+
+ M.RefreshParts()
+ user.visible_message("[user] pulls \the [src] out of \the [M] as it finishes remplacing components.", \
+ "You pull \the [src] out of \the [M] as a message flashes on its HUD stating it has finished remplacing components and will return to the input screen shortly.")
+
+ spawn(30)
+ component_interaction(M, user)
+
+//So we don't copy the same thing a thousand fucking times
+/obj/item/device/component_exchanger/proc/perform_indiv_replace(var/obj/item/weapon/stock_parts/P, var/obj/item/weapon/stock_parts/R, var/obj/machinery/M)
+
+ //Move the old part into our component exchanger
+ componentstorage += P
+ M.component_parts -= P
+ //Move the new part into the machine
+ M.component_parts += R
+ componentstorage -= R
+ //Update the machine's parts
+ playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) //User feedback
+
+//Option menu if you interact with the component exchanger
+/obj/item/device/component_exchanger/proc/self_interact_menu(var/mob/user)
+
+
+ var/self_option = alert("Select desired operation", "RMCE V.12 Ready", "Unload Components", "Scan Loaded Components", "Finish Operation")
+
+ if(user.get_active_hand() != src) //Object not in active hand anymore
+ return
+
+ if(self_option == "Finish Operation")
+
+ user << "A fancy log-out screen appears and \the [src]'s systems shut down."
+ return //Done
+
+ if(self_option == "Scan Loaded Components")
+
+ var/dat
+ var/ratingpool //Used to give an estimation of the machine's quality rating
+
+ dat += "Scanning results for internal component storage :
"
+ if(componentstorage.len)
+ for(var/obj/item/weapon/stock_parts/P in componentstorage)
+ dat += "Detected : [P] of effective quality rating [P.rating]. "
+ ratingpool += P.rating
+ if(ratingpool)
+ dat += " Effective quality rating of machine components : [ratingpool/componentstorage.len]. "
+ dat += "Currently loaded with [componentstorage.len] out of [maxcomponents] possible components. "
+ else
+ dat += "No components detected. Please check the component container or insert a component for testing. "
+ dat += " Note : You will be returned to the input menu shortly."
+
+ user.visible_message("[user] looks at \the [src]'s HUD as it starts a full data scan on its component container.", \
+ "You take a closer look at \the [src]'s HUD as it starts data scanning its component container.")
+ spawn(20)
+ user << browse(dat, "window=componentanal") //Send them the data, in a window
+ onclose(usr, "componentanal")
+
+ spawn(30)
+ self_interact_menu(user)
+ if(self_option == "Unload Components")
+
+ var/self_option_second = alert("Select desired operation", "RMCE V.12 Ready", "Unload Component", "Unload All Components")
+
+ if(self_option_second == "Unload Component")
+
+ if(!componentstorage.len)
+ user << "An error message flashes on \the [src]'s HUD, indicating that its component storage is empty and that it will return to the input menu shortly."
+ spawn(30)
+ self_interact_menu(user)
+ return
+ var/obj/item/weapon/stock_parts/componentpick = input("Select a component to be unloaded", "Component Unloading", componentstorage[1]) in componentstorage
+ componentpick.loc = get_turf(src)
+ componentstorage -= componentpick
+ user.visible_message("[user] waits as \the [src] drops \a [componentpick] from its component container.", \
+ "You wait as \the [src] drops \a [componentpick] from its component container. A message flashes to indicate it will return to the input menu shortly.")
+ spawn(30)
+ self_interact_menu(user)
+
+ if(self_option_second == "Unload All Components")
+
+ var/confirmalert = alert("Confirm component storage unloading", "RMCE V.12 Warning", "Confirm", "Abort")
+ if(confirmalert == "Confirm")
+ if(!componentstorage.len)
+ user << "An error message flashes on \the [src]'s HUD, indicating that its component storage is empty and that it will return to the input menu shortly."
+ spawn(30)
+ self_interact_menu(user)
+ return
+ user.visible_message("[user] waits as \the [src] starts emptying its component container on the ground.", \
+ "You wait as \the [src] starts emptying its component container. A message flashes to indicate it will return to the input menu shortly after it is finished.")
+ for(var/obj/item/weapon/stock_parts/P in componentstorage)
+ spawn(5)
+ P.loc = get_turf(src)
+ componentstorage -= P
+ spawn(30)
+ self_interact_menu(user)
+ if(confirmalert == "Abort") //Tad more complex than a return
+ user << "A message flashes on \the [src]'s HUD, stating the component storage unloading has been aborted and that it will return to the input menu shortly."
+ spawn(30)
+ self_interact_menu(user)
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 56a8dce7da5..c045aaee25e 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -99,7 +99,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
/obj/machinery/message_server/attack_hand(user as mob)
if(isobserver(user) && !isAdminGhost(user))
return 0
-// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
+// user << "There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]"
active = !active
update_icon()
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index cc4c134474b..5859a675e7e 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -113,14 +113,20 @@ won't update every console in existence) but it's more of a hassle to do. Also,
return return_name
/obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any).
- for(var/obj/machinery/r_n_d/D in area_contents(areaMaster)) //any machine in the room, just for funsies
- if(D.linked_console != null || D.disabled || D.panel_open)
+ if(!isarea(areaMaster) || areaMaster.type == /area)
+ say("Unable to process synchronization")
+ return
+
+
+ for(var/obj/machinery/r_n_d/D in rnd_machines) //any machine in the room, just for funsies
+ if(D.linked_console != null || D.disabled || D.panel_open || !D.areaMaster || (D.areaMaster != areaMaster))
continue
if(D.type in research_machines)
linked_machines += D
D.linked_console = src
D.update_icon()
for(var/obj/machinery/r_n_d/D in linked_machines)
+ if(linked_lathe && linked_destroy && linked_imprinter) break // stop if we have all of our linked
switch(D.type)
if(/obj/machinery/r_n_d/fabricator/protolathe)
if(!linked_lathe)
@@ -170,17 +176,17 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(istype(D, /obj/item/weapon/disk/tech_disk)) t_disk = D
else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D
else
- user << "\red Machine cannot accept disks in that format."
+ user << "Machine cannot accept disks in that format."
return
- user.drop_item(src)
- user << "\blue You add the disk to the machine!"
+ user.drop_item(D, src)
+ user << "You add the disk to the machine!"
src.updateUsrDialog()
return
/obj/machinery/computer/rdconsole/emag(mob/user)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
- user << "\blue You you disable the security protocols"
+ user << "You you disable the security protocols"
/obj/machinery/computer/rdconsole/Topic(href, href_list)
if(..())
@@ -254,7 +260,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer.
if(linked_destroy)
if(linked_destroy.busy)
- usr << "\red The destructive analyzer is busy at the moment."
+ usr << "The destructive analyzer is busy at the moment."
else if(linked_destroy.loaded_item)
linked_destroy.loaded_item.loc = linked_destroy.loc
@@ -265,7 +271,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder.
if(linked_destroy)
if(linked_destroy.busy)
- usr << "\red The destructive analyzer is busy at the moment."
+ usr << "The destructive analyzer is busy at the moment."
else
var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
if(choice == "Cancel" || !linked_destroy) return
@@ -277,7 +283,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(linked_destroy)
if(!linked_destroy.hacked)
if(!linked_destroy.loaded_item)
- usr <<"\red The destructive analyzer appears to be empty."
+ usr <<"The destructive analyzer appears to be empty."
screen = 1.0
linked_destroy.busy = 0
return
@@ -324,7 +330,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected.
screen = 0.0
if(!sync)
- usr << "\red You must connect to the network first!"
+ usr << "You must connect to the network first!"
else
griefProtection() //Putting this here because I dont trust the sync process
spawn(30)
diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm
index 5db034f57b7..4237aa765fd 100644
--- a/code/modules/research/rdmachines.dm
+++ b/code/modules/research/rdmachines.dm
@@ -1,5 +1,5 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
-
+var/global/list/rnd_machines = list()
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
/obj/machinery/r_n_d
name = "R&D Device"
@@ -32,6 +32,7 @@
var/research_flags //see setup.dm for details of these
/obj/machinery/r_n_d/New()
+ rnd_machines |= src
..()
wires["Red"] = 0
wires["Blue"] = 0
@@ -63,6 +64,10 @@
output=O
break
+/obj/machinery/r_n_d/Destroy()
+ rnd_machines -= src
+ ..()
+
/obj/machinery/r_n_d/update_icon()
overlays.len = 0
if(linked_console)
@@ -173,7 +178,7 @@
if (disabled)
return 1
if (busy)
- user << "\red The [src.name] is busy. Please wait for completion of previous operation."
+ user << "The [src.name] is busy. Please wait for completion of previous operation."
return 1
if (stat)
return 1
@@ -189,19 +194,19 @@
if(locate(user) in get_step(src,direction))
found=1
if(!found)
- user << "\red Cannot set this as the output location; You're too far away."
+ user << "Cannot set this as the output location; You're too far away."
return
if(istype(output,/obj/machinery/mineral/output))
del(output)
output=new /obj/machinery/mineral/output(usr.loc)
- user << "\blue Output set."
+ user << "Output set."
if("No")
return
if("Machine Location")
if(istype(output,/obj/machinery/mineral/output))
del(output)
output=src
- user << "\blue Output set."
+ user << "Output set."
return
if (!linked_console && !(istype(src, /obj/machinery/r_n_d/fabricator))) //fabricators get a free pass because they aren't tied to a console
user << "\The [src.name] must be linked to an R&D console first!"
@@ -220,11 +225,11 @@
if(M.sheettype==O.type)
found=1
if(!found)
- user << "\red The protolathe rejects \the [O]."
+ user << "The protolathe rejects \the [O]."
return 1
var/obj/item/stack/sheet/S = O
if (TotalMaterials() + S.perunit > max_material_storage)
- user << "\red The protolathe's material bin is full. Please remove material before adding more."
+ user << "The protolathe's material bin is full. Please remove material before adding more."
return 1
var/obj/item/stack/sheet/stack = O
@@ -251,16 +256,13 @@
use_power(max(1000, (3750*amount/10)))
var/stacktype = stack.type
stack.use(amount)
- if (do_after(user, 16))
- user << "\blue You add [amount] sheets to the [src.name]."
- icon_state = "[base_state]"
- for(var/id in materials)
- var/datum/material/material=materials[id]
- if(stacktype == material.sheettype)
- material.stored += (amount * material.cc_per_sheet)
- materials[id]=material
- else
- new stacktype(src.loc, amount)
+ user << "You add [amount] sheets to the [src.name]."
+ icon_state = "[base_state]"
+ for(var/id in materials)
+ var/datum/material/material=materials[id]
+ if(stacktype == material.sheettype)
+ material.stored += (amount * material.cc_per_sheet)
+ materials[id]=material
else
user <<"The [src.name] rejects the [O]!"
busy = 0
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 8fde41dfa20..7f7e805bf68 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -188,7 +188,7 @@
add_fingerprint(usr)
usr.set_machine(src)
if(!src.allowed(usr) && !emagged)
- usr << "\red You do not have the required access level"
+ usr << "You do not have the required access level"
return
if(href_list["main"])
@@ -342,7 +342,7 @@
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A )
@@ -354,7 +354,7 @@
A.anchored = 1
del(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A )
for (var/obj/C in src)
@@ -367,7 +367,7 @@
else if(istype(D, /obj/item/weapon/card/emag) && !emagged)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
- user << "\blue You you disable the security protocols"
+ user << "You you disable the security protocols"
src.updateUsrDialog()
return
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm
index 6579b1c441f..92edb131b6e 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm
@@ -61,7 +61,7 @@
if (istype(W, /obj/item/device/measuring_tape))
var/obj/item/device/measuring_tape/P = W
- user.visible_message("[user] extends [P] towards [src].","You extend [P] towards [src].")
if(do_after(user,40))
user << "\icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm."
return
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm b/code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm
index b017db7fefc..1a6455bca85 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm
@@ -48,18 +48,18 @@
if(!previous_power_state)
previous_power_state = 1
icon_state = "cellold1"
- src.visible_message("\blue \icon[src] [src] suddenly comes to life!")
+ src.visible_message("\icon[src] [src] suddenly comes to life!")
//slowly grow a mob
current_ticks_spawning++
if(prob(5))
- src.visible_message("\blue \icon[src] [src] [pick("gloops","glugs","whirrs","whooshes","hisses","purrs","hums","gushes")].")
+ src.visible_message("\icon[src] [src] [pick("gloops","glugs","whirrs","whooshes","hisses","purrs","hums","gushes")].")
//if we've finished growing...
if(current_ticks_spawning >= ticks_required_to_spawn)
current_ticks_spawning = 0
use_power = 1
- src.visible_message("\blue \icon[src] [src] pings!")
+ src.visible_message("\icon[src] [src] pings!")
icon_state = "cellold1"
desc = "It's full of a bubbling viscous liquid, and is lit by a mysterious glow."
if(spawn_type)
@@ -78,7 +78,7 @@
if(previous_power_state)
previous_power_state = 0
icon_state = "cellold0"
- src.visible_message("\blue \icon[src] [src] suddenly shuts down.")
+ src.visible_message("\icon[src] [src] suddenly shuts down.")
//cloned mob slowly breaks down
if(current_ticks_spawning > 0)
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm b/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm
index fbf747fe9a1..86fb364d74e 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm
@@ -10,16 +10,23 @@
idle_power_usage = 1000
var/list/obj/item/commstone/allstones = list()
var/remaining = 6
+ machine_flags = WRENCHMOVE
/obj/machinery/communication/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/commstone))
if((W in allstones) && remaining < 6)
- user.drop_item(src)
- W.loc = src
+ user.drop_item(W, src)
user << "You place one of the strange stones back onto the ancient device, it snaps into place."
..()
+/obj/machinery/communication/attack_ghost(mob/user as mob)
+ return //Dont want even adminghosts touching this
+
+/obj/machinery/communication/attack_ai(mob/user as mob)
+ return //Robots HA
+
/obj/machinery/communication/attack_hand(mob/user as mob)
+ if(..()) return 1
if(contents.len)
var/obj/item/commstone/stone = contents[1]
user.put_in_hands(stone)
@@ -33,7 +40,6 @@
remaining--
user << "You delicately remove one of the strange stones from the ancient device."
return
- ..()
/obj/machinery/communication/examine(mob/user as mob)
..()
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm
index 09ea465a67f..43f915968c9 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm
@@ -18,7 +18,7 @@
"It's mesmerizing to behold.")
/obj/structure/crystal/Destroy()
- src.visible_message("\red[src] shatters!")
+ src.visible_message("[src] shatters!")
if(prob(75))
getFromPool(/obj/item/weapon/shard/plasma, loc)
if(prob(50))
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm b/code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm
index 131be4a9321..c5bb651af67 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm
@@ -14,18 +14,18 @@
if(active)
active = 0
icon_state = "gigadrill"
- user << "\blue You press a button and [src] slowly spins down."
+ user << "You press a button and [src] slowly spins down."
else
active = 1
icon_state = "gigadrill_mov"
- user << "\blue You press a button and [src] shudders to life."
+ user << "You press a button and [src] shudders to life."
/obj/machinery/giga_drill/Bump(atom/A)
if(active && !drilling_turf)
if(istype(A,/turf/unsimulated/mineral))
var/turf/unsimulated/mineral/M = A
drilling_turf = get_turf(src)
- src.visible_message("\red [src] begins to drill into [M]!")
+ src.visible_message("[src] begins to drill into [M]!")
anchored = 1
spawn(drill_time)
if(get_turf(src) == drilling_turf && active)
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
index 6828ebf0857..4e036fecf6e 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
@@ -77,7 +77,7 @@
if(spawning_types.len && powered())
spawn_progress++
if(spawn_progress > max_spawn_ticks)
- src.visible_message("\blue \icon[src] [src] pings!")
+ src.visible_message("\icon[src] [src] pings!")
var/spawn_type = spawning_types[1]
new spawn_type(src.loc)
@@ -90,7 +90,7 @@
icon_state = "borgcharger0(old)"
else if(prob(5))
- src.visible_message("\blue \icon[src] [src] [pick("clicks","whizzes","whirrs","whooshes","clanks","clongs","clonks","bangs")].")
+ src.visible_message("\icon[src] [src] [pick("clicks","whizzes","whirrs","whooshes","clanks","clongs","clonks","bangs")].")
/obj/machinery/replicator/attack_hand(mob/user as mob)
interact(user)
@@ -109,9 +109,9 @@
var/index = text2num(href_list["activate"])
if(index > 0 && index <= construction.len)
if(spawning_types.len)
- src.visible_message("\blue \icon[src] a [pick("light","dial","display","meter","pad")] on [src]'s front [pick("blinks","flashes")] [pick("red","yellow","blue","orange","purple","green","white")].")
+ src.visible_message("\icon[src] a [pick("light","dial","display","meter","pad")] on [src]'s front [pick("blinks","flashes")] [pick("red","yellow","blue","orange","purple","green","white")].")
else
- src.visible_message("\blue \icon[src] [src]'s front compartment slides shut.")
+ src.visible_message("\icon[src] [src]'s front compartment slides shut.")
spawning_types.Add(construction[construction[index]])
spawn_progress = 0
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown_old.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown_old.dm
index 3c779caa967..e3b73606efc 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown_old.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown_old.dm
@@ -101,7 +101,7 @@
if (istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead/)) return
if (istype(user, /mob/living/silicon/robot))
if (get_dist(user, src) > 1)
- user << "\red You can't reach [src] from here."
+ user << "You can't reach [src] from here."
return
if(ishuman(user) && istype(user:gloves,/obj/item/clothing/gloves))
return ..()
diff --git a/code/modules/research/xenoarchaeology/artifact/effect.dm b/code/modules/research/xenoarchaeology/artifact/effect.dm
index 96ada2254fc..8304d539736 100644
--- a/code/modules/research/xenoarchaeology/artifact/effect.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effect.dm
@@ -64,7 +64,7 @@
var/atom/toplevelholder = holder
while(!istype(toplevelholder.loc, /turf))
toplevelholder = toplevelholder.loc
- toplevelholder.visible_message("\red \icon[toplevelholder] [toplevelholder] [display_msg]")
+ toplevelholder.visible_message("\icon[toplevelholder] [toplevelholder] [display_msg]")
/datum/artifact_effect/proc/DoEffectTouch(var/mob/user)
/datum/artifact_effect/proc/DoEffectAura(var/atom/holder)
diff --git a/code/modules/research/xenoarchaeology/artifact/effect_old.dm b/code/modules/research/xenoarchaeology/artifact/effect_old.dm
index c4da93f333c..393f1280dd4 100644
--- a/code/modules/research/xenoarchaeology/artifact/effect_old.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effect_old.dm
@@ -57,7 +57,7 @@
if("healing")
//caeltodo
if (istype(user, /mob/living/carbon/human/))
- user << "\blue You feel a soothing energy invigorate you."
+ user << "You feel a soothing energy invigorate you."
var/mob/living/carbon/human/H = user
for(var/datum/organ/external/affecting in H.organs)
@@ -82,7 +82,7 @@
return 1
//
if (istype(user, /mob/living/carbon/monkey/))
- user << "\blue You feel a soothing energy invigorate you."
+ user << "You feel a soothing energy invigorate you."
user.adjustOxyLoss(-25)
user.adjustToxLoss(-25)
user.adjustBruteLoss(-25)
@@ -92,7 +92,7 @@
else user << "Nothing happens."
if("injure")
if (istype(user, /mob/living/carbon/))
- user << "\red A painful discharge of energy strikes you!"
+ user << "A painful discharge of energy strikes you!"
user.adjustOxyLoss(rand(5,25))
user.adjustToxLoss(rand(5,25))
user.adjustBruteLoss(rand(5,25))
@@ -106,7 +106,7 @@
else user << "Nothing happens."
if("stun")
if (istype(user, /mob/living/carbon/))
- user << "\red A powerful force overwhelms your consciousness."
+ user << "A powerful force overwhelms your consciousness."
user.weakened += 45
user.stuttering += 45
if(prob(50))
@@ -115,14 +115,14 @@
else user << "Nothing happens."
if("roboheal")
if (istype(user, /mob/living/silicon/robot))
- user << "\blue Your systems report damaged components mending by themselves!"
+ user << "Your systems report damaged components mending by themselves!"
user.adjustBruteLoss(rand(-10,-30))
user.adjustFireLoss(rand(-10,-30))
return 1
else user << "Nothing happens."
if("robohurt")
if (istype(user, /mob/living/silicon/robot))
- user << "\red Your systems report severe damage has been inflicted!"
+ user << "Your systems report severe damage has been inflicted!"
user.adjustBruteLoss(rand(10,50))
user.adjustFireLoss(rand(10,50))
return 1
@@ -143,7 +143,7 @@
continue
randomturfs.Add(T)
if(randomturfs.len > 0)
- user << "\red You are suddenly zapped away elsewhere!"
+ user << "You are suddenly zapped away elsewhere!"
if (user.buckled)
user.buckled.unbuckle()
user.loc = pick(randomturfs)
@@ -152,7 +152,7 @@
sparks.start()
return 1
if("sleepy")
- user << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ user << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
user.drowsyness = min(user.drowsyness + rand(5,25), 50)
user.eye_blurry = min(user.eye_blurry + rand(1,3), 50)
return 1
@@ -163,7 +163,7 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby."
+ if(prob(10)) M << "You feel a soothing energy radiating from something nearby."
M.adjustBruteLoss(-1)
M.adjustFireLoss(-1)
M.adjustToxLoss(-1)
@@ -175,7 +175,7 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- if(prob(10)) M << "\red You feel a painful force radiating from something nearby."
+ if(prob(10)) M << "You feel a painful force radiating from something nearby."
M.adjustBruteLoss(1)
M.adjustFireLoss(1)
M.adjustToxLoss(1)
@@ -187,23 +187,23 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- if(prob(10)) M << "\red Energy radiating from the [originator] is making you feel numb."
+ if(prob(10)) M << "Energy radiating from the [originator] is making you feel numb."
if(prob(20))
- M << "\red Your body goes numb for a moment."
+ M << "Your body goes numb for a moment."
M.stunned += 2
M.weakened += 2
M.stuttering += 2
return 1
if("roboheal")
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
- if(prob(10)) M << "\blue SYSTEM ALERT: Beneficial energy field detected!"
+ if(prob(10)) M << "SYSTEM ALERT: Beneficial energy field detected!"
M.adjustBruteLoss(-1)
M.adjustFireLoss(-1)
M.updatehealth()
return 1
if("robohurt")
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
- if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!"
+ if(prob(10)) M << "SYSTEM ALERT: Harmful energy field detected!"
M.adjustBruteLoss(1)
M.adjustFireLoss(1)
M.updatehealth()
@@ -216,7 +216,7 @@
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += 10
- if(prob(10)) M << "\blue SYSTEM ALERT: Energy boosting field detected!"
+ if(prob(10)) M << "SYSTEM ALERT: Energy boosting field detected!"
return 1
if("celldrain")
for (var/obj/machinery/power/apc/C in range(src.aurarange,originator))
@@ -227,7 +227,7 @@
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge-10,0)
- if(prob(10)) M << "\red SYSTEM ALERT: Energy draining field detected!"
+ if(prob(10)) M << "SYSTEM ALERT: Energy draining field detected!"
return 1
if("planthelper")
for (var/obj/machinery/hydroponics/H in range(src.aurarange,originator))
@@ -247,7 +247,7 @@
if("sleepy")
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(prob(10))
- M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ M << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
M.drowsyness = min(M.drowsyness + 1, 25)
M.eye_blurry = min(M.eye_blurry + 1, 25)
return 1
@@ -260,7 +260,7 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- M << "\blue A wave of energy invigorates you."
+ M << "A wave of energy invigorates you."
M.adjustBruteLoss(-5)
M.adjustFireLoss(-5)
M.adjustToxLoss(-5)
@@ -272,7 +272,7 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- M << "\red A wave of energy causes you great pain!"
+ M << "A wave of energy causes you great pain!"
M.adjustBruteLoss(5)
M.adjustFireLoss(5)
M.adjustToxLoss(5)
@@ -286,21 +286,21 @@
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- M << "\red A wave of energy overwhelms your senses!"
+ M << "A wave of energy overwhelms your senses!"
M.paralysis += 3
M.weakened += 4
M.stuttering += 4
return 1
if("roboheal")
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
- M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
M.adjustBruteLoss(-10)
M.adjustFireLoss(-10)
M.updatehealth()
return 1
if("robohurt")
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
- M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage inflicted by energy pulse!"
M.adjustBruteLoss(10)
M.adjustFireLoss(10)
M.updatehealth()
@@ -313,7 +313,7 @@
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += 250
- M << "\blue SYSTEM ALERT: Large energy boost detected!"
+ M << "SYSTEM ALERT: Large energy boost detected!"
return 1
if("celldrain")
for (var/obj/machinery/power/apc/C in range(src.aurarange,originator))
@@ -324,7 +324,7 @@
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge-500,0)
- M << "\red SYSTEM ALERT: Severe energy drain detected!"
+ M << "SYSTEM ALERT: Severe energy drain detected!"
return 1
if("planthelper")
//makes weeds and shrooms and stuff more potent too
@@ -349,7 +349,7 @@
continue
randomturfs.Add(T)
if(randomturfs.len > 0)
- M << "\red You are displaced by a strange force!"
+ M << "You are displaced by a strange force!"
if(M.buckled)
M.buckled.unbuckle()
M.loc = pick(randomturfs)
@@ -363,7 +363,7 @@
continue
if(prob(30))
- H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.")
+ H << pick("You feel a little different.","You feel strange.","You feel different.")
//todo
if (H.gender == FEMALE)
H.setGender(MALE)
@@ -379,7 +379,7 @@
if("sleepy")
for (var/mob/living/carbon/M in range(src.aurarange,originator))
if(prob(30))
- M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ M << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
if(prob(50))
M.drowsyness = min(M.drowsyness + rand(1,5), 25)
if(prob(50))
@@ -393,7 +393,7 @@
for (var/mob/living/carbon/M in range(200, originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- M << "\blue Waves of soothing energy wash over you."
+ M << "Waves of soothing energy wash over you."
M.adjustBruteLoss(-3)
M.adjustFireLoss(-3)
M.adjustToxLoss(-3)
@@ -403,7 +403,7 @@
return 1
if("injure")
for (var/mob/living/carbon/human/M in range(200, originator))
- M << "\red A wave of painful energy strikes you!"
+ M << "A wave of painful energy strikes you!"
M.adjustBruteLoss(3)
M.adjustFireLoss(3)
M.adjustToxLoss(3)
@@ -415,21 +415,21 @@
for (var/mob/living/carbon/M in range(200, originator))
if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
continue
- M << "\red A powerful force causes you to black out momentarily."
+ M << "A powerful force causes you to black out momentarily."
M.paralysis += 5
M.weakened += 8
M.stuttering += 8
return 1
if("roboheal")
for (var/mob/living/silicon/robot/M in range(200, originator))
- M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
M.adjustBruteLoss(-5)
M.adjustFireLoss(-5)
M.updatehealth()
return 1
if("robohurt")
for (var/mob/living/silicon/robot/M in range(200, originator))
- M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage inflicted by energy pulse!"
M.adjustBruteLoss(5)
M.adjustFireLoss(5)
M.updatehealth()
@@ -442,7 +442,7 @@
for (var/mob/living/silicon/robot/M in world)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += 100
- M << "\blue SYSTEM ALERT: Energy boost detected!"
+ M << "SYSTEM ALERT: Energy boost detected!"
return 1
if("celldrain")
for (var/obj/machinery/power/apc/C in range(200, originator))
@@ -453,7 +453,7 @@
for (var/mob/living/silicon/robot/M in world)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge-250,0)
- M << "\red SYSTEM ALERT: Energy drain detected!"
+ M << "SYSTEM ALERT: Energy drain detected!"
return 1
if("teleport")
for (var/mob/living/M in range(200, originator))
@@ -465,7 +465,7 @@
continue
randomturfs.Add(T)
if(randomturfs.len > 0)
- M << "\red You are displaced by a strange force!"
+ M << "You are displaced by a strange force!"
if(M.buckled)
M.buckled.unbuckle()
M.loc = pick(randomturfs)
@@ -479,7 +479,7 @@
continue
if(prob(30))
- H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.")
+ H << pick("You feel a little different.","You feel strange.","You feel different.")
//todo
if (H.gender == FEMALE)
H.setGender(MALE)
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
index 5105628cfe3..e3e4f8dfdf5 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
@@ -3,6 +3,7 @@
/datum/artifact_effect/cellcharge
effecttype = "cellcharge"
effect_type = 3
+ var/next_message
/datum/artifact_effect/cellcharge/DoEffectTouch(var/mob/user)
if(user)
@@ -10,7 +11,7 @@
var/mob/living/silicon/robot/R = user
for (var/obj/item/weapon/cell/D in R.contents)
D.charge += rand() * 100 + 50
- R << "\blue SYSTEM ALERT: Large energy boost detected!"
+ R << "SYSTEM ALERT: Large energy boost detected!"
return 1
/datum/artifact_effect/cellcharge/DoEffectAura()
@@ -23,7 +24,10 @@
for (var/mob/living/silicon/robot/M in mob_list)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += 25
- M << "\blue SYSTEM ALERT: Energy boost detected!"
+ if(world.time >= next_message)
+ M << "SYSTEM ALERT: Energy boost detected!"
+ if(world.time >= next_message)
+ next_message = world.time + 100
return 1
/datum/artifact_effect/cellcharge/DoEffectPulse()
@@ -36,5 +40,5 @@
for (var/mob/living/silicon/robot/M in mob_list)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += rand() * 100
- M << "\blue SYSTEM ALERT: Energy boost detected!"
+ M << "SYSTEM ALERT: Energy boost detected!"
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
index 550b49b0686..1593179d58d 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
@@ -10,7 +10,7 @@
var/mob/living/silicon/robot/R = user
for (var/obj/item/weapon/cell/D in R.contents)
D.charge = max(D.charge - rand() * 100, 0)
- R << "\blue SYSTEM ALERT: Energy drain detected!"
+ R << "SYSTEM ALERT: Energy drain detected!"
return 1
return 1
@@ -25,7 +25,7 @@
for (var/mob/living/silicon/robot/M in mob_list)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge - 50,0)
- M << "\red SYSTEM ALERT: Energy drain detected!"
+ M << "SYSTEM ALERT: Energy drain detected!"
return 1
/datum/artifact_effect/celldrain/DoEffectPulse()
@@ -38,5 +38,5 @@
for (var/mob/living/silicon/robot/M in mob_list)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge - rand() * 150,0)
- M << "\red SYSTEM ALERT: Energy drain detected!"
+ M << "SYSTEM ALERT: Energy drain detected!"
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_dnaswitch.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_dnaswitch.dm
index cff708b0c3d..a155a95eccd 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_dnaswitch.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_dnaswitch.dm
@@ -15,13 +15,13 @@
/datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/toucher)
var/weakness = GetAnomalySusceptibility(toucher)
if(ishuman(toucher) && prob(weakness * 100))
- toucher << pick("\green You feel a little different.",\
- "\green You feel very strange.",\
- "\green Your stomach churns.",\
- "\green Your skin feels loose.",\
- "\green You feel a stabbing pain in your head.",\
- "\green You feel a tingling sensation in your chest.",\
- "\green Your entire body vibrates.")
+ toucher << pick("You feel a little different.",\
+ "You feel very strange.",\
+ "Your stomach churns.",\
+ "Your skin feels loose.",\
+ "You feel a stabbing pain in your head.",\
+ "You feel a tingling sensation in your chest.",\
+ "Your entire body vibrates.")
if(prob(75))
scramble(1, toucher, weakness * severity)
else
@@ -34,13 +34,13 @@
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
if(prob(30))
- H << pick("\green You feel a little different.",\
- "\green You feel very strange.",\
- "\green Your stomach churns.",\
- "\green Your skin feels loose.",\
- "\green You feel a stabbing pain in your head.",\
- "\green You feel a tingling sensation in your chest.",\
- "\green Your entire body vibrates.")
+ H << pick("You feel a little different.",\
+ "You feel very strange.",\
+ "Your stomach churns.",\
+ "Your skin feels loose.",\
+ "You feel a stabbing pain in your head.",\
+ "You feel a tingling sensation in your chest.",\
+ "Your entire body vibrates.")
if(prob(50))
scramble(1, H, weakness * severity)
else
@@ -52,13 +52,13 @@
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
if(prob(75))
- H << pick("\green You feel a little different.",\
- "\green You feel very strange.",\
- "\green Your stomach churns.",\
- "\green Your skin feels loose.",\
- "\green You feel a stabbing pain in your head.",\
- "\green You feel a tingling sensation in your chest.",\
- "\green Your entire body vibrates.")
+ H << pick("You feel a little different.",\
+ "You feel very strange.",\
+ "Your stomach churns.",\
+ "Your skin feels loose.",\
+ "You feel a stabbing pain in your head.",\
+ "You feel a tingling sensation in your chest.",\
+ "Your entire body vibrates.")
if(prob(25))
if(prob(75))
scramble(1, H, weakness * severity)
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_heal.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_heal.dm
index 8b927844244..9a6c3e56f2c 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_heal.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_heal.dm
@@ -9,7 +9,7 @@
var/weakness = GetAnomalySusceptibility(toucher)
if(prob(weakness * 100))
var/mob/living/carbon/C = toucher
- C << "\blue You feel a soothing energy invigorate you."
+ C << "You feel a soothing energy invigorate you."
if(ishuman(toucher))
var/mob/living/carbon/human/H = toucher
@@ -40,7 +40,7 @@
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
if(prob(10))
- C << "\blue You feel a soothing energy radiating from something nearby."
+ C << "You feel a soothing energy radiating from something nearby."
C.adjustBruteLoss(-1 * weakness)
C.adjustFireLoss(-1 * weakness)
C.adjustToxLoss(-1 * weakness)
@@ -54,7 +54,7 @@
for (var/mob/living/carbon/C in range(src.effectrange,holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
- C << "\blue A wave of energy invigorates you."
+ C << "A wave of energy invigorates you."
C.adjustBruteLoss(-5 * weakness)
C.adjustFireLoss(-5 * weakness)
C.adjustToxLoss(-5 * weakness)
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_hurt.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_hurt.dm
index 6ba187dc84d..abb0830dcb7 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_hurt.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_hurt.dm
@@ -8,7 +8,7 @@
var/weakness = GetAnomalySusceptibility(toucher)
if(iscarbon(toucher) && prob(weakness * 100))
var/mob/living/carbon/C = toucher
- C << "\red A painful discharge of energy strikes you!"
+ C << "A painful discharge of energy strikes you!"
C.adjustOxyLoss(rand(5,25) * weakness)
C.adjustToxLoss(rand(5,25) * weakness)
C.adjustBruteLoss(rand(5,25) * weakness)
@@ -25,7 +25,7 @@
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
if(prob(10))
- C << "\red You feel a painful force radiating from something nearby."
+ C << "You feel a painful force radiating from something nearby."
C.adjustBruteLoss(1 * weakness)
C.adjustFireLoss(1 * weakness)
C.adjustToxLoss(1 * weakness)
@@ -38,7 +38,7 @@
for (var/mob/living/carbon/C in range(effectrange, holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
- C << "\red A wave of painful energy strikes you!"
+ C << "A wave of painful energy strikes you!"
C.adjustBruteLoss(3 * weakness)
C.adjustFireLoss(3 * weakness)
C.adjustToxLoss(3 * weakness)
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_roboheal.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_roboheal.dm
index 8e154f0b66d..3e416e44097 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_roboheal.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_roboheal.dm
@@ -10,7 +10,7 @@
if(user)
if (istype(user, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = user
- R << "\blue Your systems report damaged components mending by themselves!"
+ R << "Your systems report damaged components mending by themselves!"
R.adjustBruteLoss(rand(-10,-30))
R.adjustFireLoss(rand(-10,-30))
return 1
@@ -19,7 +19,7 @@
if(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,holder))
if(prob(10))
- M << "\blue SYSTEM ALERT: Beneficial energy field detected!"
+ M << "SYSTEM ALERT: Beneficial energy field detected!"
M.adjustBruteLoss(-1)
M.adjustFireLoss(-1)
M.updatehealth()
@@ -28,7 +28,7 @@
/datum/artifact_effect/roboheal/DoEffectPulse()
if(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,holder))
- M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
M.adjustBruteLoss(-10)
M.adjustFireLoss(-10)
M.updatehealth()
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_robohurt.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_robohurt.dm
index b230efa33ec..71264c20548 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_robohurt.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_robohurt.dm
@@ -10,7 +10,7 @@
if(user)
if (istype(user, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = user
- R << "\red Your systems report severe damage has been inflicted!"
+ R << "Your systems report severe damage has been inflicted!"
R.adjustBruteLoss(rand(10,50))
R.adjustFireLoss(rand(10,50))
return 1
@@ -18,7 +18,7 @@
/datum/artifact_effect/robohurt/DoEffectAura()
if(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,holder))
- if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!"
+ if(prob(10)) M << "SYSTEM ALERT: Harmful energy field detected!"
M.adjustBruteLoss(1)
M.adjustFireLoss(1)
M.updatehealth()
@@ -27,7 +27,7 @@
/datum/artifact_effect/robohurt/DoEffectPulse()
if(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,holder))
- M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!"
+ M << "SYSTEM ALERT: Structural damage inflicted by energy pulse!"
M.adjustBruteLoss(10)
M.adjustFireLoss(10)
M.updatehealth()
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
index 1da02ceaa92..e1ab721fe24 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
@@ -12,12 +12,12 @@
var/weakness = GetAnomalySusceptibility(toucher)
if(ishuman(toucher) && prob(weakness * 100))
var/mob/living/carbon/human/H = toucher
- H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ H << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
H.drowsyness = min(H.drowsyness + rand(5,25) * weakness, 50 * weakness)
H.eye_blurry = min(H.eye_blurry + rand(1,3) * weakness, 50 * weakness)
return 1
else if(isrobot(toucher))
- toucher << "\red SYSTEM ALERT: CPU cycles slowing down."
+ toucher << "SYSTEM ALERT: CPU cycles slowing down."
return 1
/datum/artifact_effect/sleepy/DoEffectAura()
@@ -26,11 +26,11 @@
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
if(prob(10))
- H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ H << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
H.drowsyness = min(H.drowsyness + 1 * weakness, 25 * weakness)
H.eye_blurry = min(H.eye_blurry + 1 * weakness, 25 * weakness)
for (var/mob/living/silicon/robot/R in range(src.effectrange,holder))
- R << "\red SYSTEM ALERT: CPU cycles slowing down."
+ R << "SYSTEM ALERT: CPU cycles slowing down."
return 1
/datum/artifact_effect/sleepy/DoEffectPulse()
@@ -38,9 +38,9 @@
for(var/mob/living/carbon/human/H in range(src.effectrange, holder))
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
- H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
+ H << pick("You feel like taking a nap.","You feel a yawn coming on.","You feel a little tired.")
H.drowsyness = min(H.drowsyness + rand(5,15) * weakness, 50 * weakness)
H.eye_blurry = min(H.eye_blurry + rand(5,15) * weakness, 50 * weakness)
for (var/mob/living/silicon/robot/R in range(src.effectrange,holder))
- R << "\red SYSTEM ALERT: CPU cycles slowing down."
+ R << "SYSTEM ALERT: CPU cycles slowing down."
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_stun.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_stun.dm
index b37862eb0c7..6a54d28b3cb 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_stun.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_stun.dm
@@ -11,7 +11,7 @@
var/mob/living/carbon/C = toucher
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
- C << "\red A powerful force overwhelms your consciousness."
+ C << "A powerful force overwhelms your consciousness."
C.weakened += 45 * weakness
C.stuttering += 45 * weakness
C.stunned += rand(1,10) * weakness
@@ -21,20 +21,20 @@
for (var/mob/living/carbon/C in range(src.effectrange,holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(10 * weakness))
- C << "\red Your body goes numb for a moment."
+ C << "Your body goes numb for a moment."
C.weakened += 2
C.stuttering += 2
if(prob(10))
C.stunned += 1
else if(prob(10))
- C << "\red You feel numb."
+ C << "You feel numb."
/datum/artifact_effect/stun/DoEffectPulse()
if(holder)
for (var/mob/living/carbon/C in range(src.effectrange,holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(100 * weakness))
- C << "\red A wave of energy overwhelms your senses!"
+ C << "A wave of energy overwhelms your senses!"
C.weakened += 4 * weakness
C.stuttering += 4 * weakness
if(prob(10))
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm
index e1580e20738..b688720f6d7 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm
@@ -10,7 +10,7 @@
for(var/turf/simulated/floor/T in orange(user, 50))
randomturfs.Add(T)
if(randomturfs.len > 0)
- user << "\red You are suddenly zapped away elsewhere!"
+ user << "You are suddenly zapped away elsewhere!"
if (user.buckled)
user.buckled.unbuckle()
@@ -31,7 +31,7 @@
for(var/turf/simulated/floor/T in orange(M, 30))
randomturfs.Add(T)
if(randomturfs.len > 0)
- M << "\red You are displaced by a strange force!"
+ M << "You are displaced by a strange force!"
if(M.buckled)
M.buckled.unbuckle()
@@ -52,7 +52,7 @@
for(var/turf/simulated/floor/T in orange(M, 15))
randomturfs.Add(T)
if(randomturfs.len > 0)
- M << "\red You are displaced by a strange force!"
+ M << "You are displaced by a strange force!"
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(3, 0, get_turf(M))
diff --git a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm
index f3b394d7fae..ee8fe55bff1 100644
--- a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm
+++ b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm
@@ -47,7 +47,7 @@
spawn(2) SaySomething(pick(seperate))
if(prob(30))
for(var/mob/O in viewers(src))
- O.show_message("\blue [src] hums for bit then stops...", 1)
+ O.show_message("[src] hums for bit then stops...", 1)
/*/obj/item/weapon/talkingcrystal/proc/debug()
//set src in view()
@@ -105,5 +105,5 @@
listening|=M
for(var/mob/M in listening)
- M << "[src] reverberates, \blue\"[msg]\""
+ M << "[src] reverberates, \"[msg]\""
lastsaid = world.timeofday + rand(300,800)
diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm
index 48200ed36bb..90bbc93ce36 100644
--- a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm
+++ b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm
@@ -51,16 +51,16 @@
if(scan_process++ > target_scan_ticks)
FinishScan()
else if(temperature > 400)
- src.visible_message("\blue \icon[src] shuts down from the heat!", 2)
+ src.visible_message("\icon[src] shuts down from the heat!", 2)
scan_process = 0
else if(temperature > 350 && prob(10))
- src.visible_message("\blue \icon[src] bleets plaintively.", 2)
+ src.visible_message("\icon[src] bleets plaintively.", 2)
if(temperature > 400)
scan_process = 0
//show we're busy
if(prob(5))
- src.visible_message("\blue \icon[src] [pick("whirrs","chuffs","clicks")][pick(" quietly"," softly"," sadly"," excitedly"," energetically"," angrily"," plaintively")].", 2)
+ src.visible_message("\icon[src] [pick("whirrs","chuffs","clicks")][pick(" quietly"," softly"," sadly"," excitedly"," energetically"," angrily"," plaintively")].", 2)
use_power = 2
@@ -87,7 +87,7 @@
removed.temperature = max(TCMB, removed.temperature + heat_added/heat_capacity)
if(temperature_difference > 10 && prob(5))
- src.visible_message("\blue \icon[src] hisses softly.", 2)
+ src.visible_message("\icon[src] hisses softly.", 2)
else
//heat up to match the air
@@ -95,7 +95,7 @@
removed.temperature = max(TCMB, removed.temperature - heat_added/heat_capacity)
if(temperature_difference > 10 && prob(5))
- src.visible_message("\blue \icon[src] plinks quietly.", 2)
+ src.visible_message("\icon[src] plinks quietly.", 2)
env.merge(removed)
@@ -134,20 +134,21 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
if(istype(W, /obj/item/weapon/reagent_containers/glass))
//var/obj/item/weapon/reagent_containers/glass/G = W
if(held_container)
- user << "\red You must remove the [held_container] first."
+ user << "You must remove the [held_container] first."
else
- user << "\blue You put the [W] into the [src]."
- user.drop_item(src)
+ user << "You put the [W] into the [src]."
+ user.drop_item(W, src)
+
held_container = W
updateDialog()
/*else if(istype(W, /obj/item/weapon/tank))
//var/obj/item/weapon/reagent_containers/glass/G = W
if(fuel_container)
- user << "\red You must remove the [fuel_container] first."
+ user << "You must remove the [fuel_container] first."
else
- user << "\blue You put the [fuel_container] into the [src]."
- user.drop_item(W)
+ user << "You put the [fuel_container] into the [src]."
+ user.drop_item(W, src)
fuel_container.loc = src
fuel_container = W
updateDialog()*/
@@ -156,7 +157,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
obj/machinery/anomaly/proc/ScanResults()
//instantiate in children to produce unique scan behaviour
- return "\red Error initialising scanning components."
+ return "Error initialising scanning components."
obj/machinery/anomaly/proc/FinishScan()
scan_process = 0
@@ -164,14 +165,14 @@ obj/machinery/anomaly/proc/FinishScan()
//determine the results and print a report
if(held_container)
- src.visible_message("\blue \icon[src] makes an insistent chime.", 2)
+ src.visible_message("\icon[src] makes an insistent chime.", 2)
var/obj/item/weapon/paper/P = new(src.loc)
P.name = "[src] report #[++report_num]"
P.info = "[src] analysis report #[report_num]
" + ScanResults()
P.stamped = list(/obj/item/weapon/stamp)
P.overlays = list("paper_stamped")
else
- src.visible_message("\blue \icon[src] makes a low buzzing noise.", 2)
+ src.visible_message("\icon[src] makes a low buzzing noise.", 2)
obj/machinery/anomaly/Topic(href, href_list)
if(..()) return
diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_analyser_old.dm b/code/modules/research/xenoarchaeology/machinery/artifact_analyser_old.dm
index aa6a519233d..8d636598b09 100644
--- a/code/modules/research/xenoarchaeology/machinery/artifact_analyser_old.dm
+++ b/code/modules/research/xenoarchaeology/machinery/artifact_analyser_old.dm
@@ -289,7 +289,7 @@
P.name = "Artifact Analysis Report #[scan_num]"
P.info = r
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue The [src.name] prints a sheet of paper", 3)
+ O.show_message("\icon[src] The [src.name] prints a sheet of paper", 3)
use_power(10)
if(href_list["close"])
diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm
index f3f1a848098..9f6c9ce8248 100644
--- a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm
+++ b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm
@@ -24,12 +24,12 @@
/obj/machinery/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob)
if(istype(I,/obj/item/weapon/anobattery))
if(!inserted_battery)
- user << "\blue You insert [I] into [src]."
- user.drop_item(src)
+ user << "You insert [I] into [src]."
+ user.drop_item(I, src)
src.inserted_battery = I
updateDialog()
else
- user << "\red There is already a battery in [src]."
+ user << "There is already a battery in [src]."
else
return..()
diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
index 0f73a329c59..30383972999 100644
--- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
+++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
@@ -231,16 +231,16 @@
//emergency stop if seal integrity reaches 0
if(scanner_seal_integrity <= 0 || (scanner_temperature >= 1273 && !rad_shield))
stop_scanning()
- src.visible_message("\blue \icon[src] buzzes unhappily. It has failed mid-scan!", 2)
+ src.visible_message("\icon[src] buzzes unhappily. It has failed mid-scan!", 2)
if(prob(5))
- src.visible_message("\blue \icon[src] [pick("whirrs","chuffs","clicks")][pick(" excitedly"," energetically"," busily")].", 2)
+ src.visible_message("\icon[src] [pick("whirrs","chuffs","clicks")][pick(" excitedly"," energetically"," busily")].", 2)
else
//gradually cool down over time
if(scanner_temperature > 0)
scanner_temperature = max(scanner_temperature - 5 - 10 * rand(), 0)
if(prob(0.75))
- src.visible_message("\blue \icon[src] [pick("plinks","hisses")][pick(" quietly"," softly"," sadly"," plaintively")].", 2)
+ src.visible_message("\icon[src] [pick("plinks","hisses")][pick(" quietly"," softly"," sadly"," plaintively")].", 2)
last_process_worldtime = world.time
/obj/machinery/radiocarbon_spectrometer/proc/stop_scanning()
@@ -258,7 +258,7 @@
used_coolant = 0
/obj/machinery/radiocarbon_spectrometer/proc/complete_scan()
- src.visible_message("\blue \icon[src] makes an insistent chime.", 2)
+ src.visible_message("\icon[src] makes an insistent chime.", 2)
if(scanned_item)
//create report
diff --git a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm
index 9e7f0792937..b3798fed7d3 100644
--- a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm
+++ b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm
@@ -39,8 +39,8 @@
/obj/item/weapon/anodevice/attackby(var/obj/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/anobattery))
if(!inserted_battery)
- user << "\blue You insert the battery."
- user.drop_item(src)
+ user << "You insert the battery."
+ user.drop_item(I, src)
inserted_battery = I
UpdateSprite()
else
@@ -98,7 +98,7 @@
cooldown -= 1
if(cooldown <= 0)
cooldown = 0
- src.visible_message("\blue \icon[src] [src] chimes.", "\blue \icon[src] You hear something chime.")
+ src.visible_message("\icon[src] [src] chimes.", "\icon[src] You hear something chime.")
else if(activated)
if(inserted_battery && inserted_battery.battery_effect)
//make sure the effect is active
@@ -134,7 +134,7 @@
if(activated)
activated = 0
timing = 0
- src.visible_message("\blue \icon[src] [src] buzzes.", "\icon[src]\blue You hear something buzz.")
+ src.visible_message("\icon[src] [src] buzzes.", "\icon[src]You hear something buzz.")
cooldown = archived_time / 2
diff --git a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm
index 87b5a57e147..8d93b4d3b9d 100644
--- a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm
+++ b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm
@@ -13,31 +13,31 @@
/obj/machinery/bunsen_burner/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/reagent_containers))
if(held_container)
- user << "\red You must remove the [held_container] first."
+ user << "You must remove the [held_container] first."
else
- user.drop_item(src)
+ user.drop_item(W, src)
held_container = W
- user << "\blue You put the [held_container] onto the [src]."
+ user << "You put the [held_container] onto the [src]."
var/image/I = image("icon"=W, "layer"=FLOAT_LAYER)
underlays += I
if(heating)
spawn(heat_time)
try_heating()
else
- user << "\red You can't put the [W] onto the [src]."
+ user << "You can't put the [W] onto the [src]."
/obj/machinery/bunsen_burner/attack_hand(mob/user as mob)
if(held_container)
underlays = null
- user << "\blue You remove the [held_container] from the [src]."
+ user << "You remove the [held_container] from the [src]."
held_container.loc = src.loc
held_container.attack_hand(user)
held_container = null
else
- user << "\red There is nothing on the [src]."
+ user << "There is nothing on the [src]."
/obj/machinery/bunsen_burner/proc/try_heating()
- src.visible_message("\blue \icon[src] [src] hisses.")
+ src.visible_message("\icon[src] [src] hisses.")
if(held_container && heating)
heated = 1
held_container.reagents.handle_reactions()
diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
index 38aa7018dcb..f7648832bd5 100644
--- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
+++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
@@ -34,14 +34,14 @@
M.weakened = max(M.weakened, 3)
cell.charge -= power_use
if(prob(5))
- M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
+ M << "[pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
if(field_type == "iron")
for(var/mob/living/silicon/M in T)
M.weakened = max(M.weakened, 3)
cell.charge -= power_use
if(prob(5))
- M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
+ M << "[pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
for(var/obj/item/I in T)
if(!suspension_field.contents.len)
@@ -53,7 +53,7 @@
M.weakened = max(M.weakened, 3)
cell.charge -= power_use
if(prob(5))
- M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
+ M << "[pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]"
if(cell.charge <= 0)
deactivate()
@@ -131,7 +131,7 @@
else if(href_list["insertcard"])
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card))
- usr.drop_item(src)
+ usr.drop_item(I, src)
auth_card = I
if(attempt_unlock(I))
usr << "You insert [I], the console flashes \'Access granted.\'"
@@ -215,7 +215,7 @@
if(cell)
user << "There is a power cell already installed."
else
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user << "You insert the power cell."
if(anchored)
@@ -255,7 +255,7 @@
success = 1
for(var/mob/living/carbon/C in T)
C.weakened += 5
- C.visible_message("\blue \icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
+ C.visible_message("\icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
if("nitrogen")
success = 1
//
@@ -278,19 +278,19 @@
success = 1
for(var/mob/living/silicon/R in T)
R.weakened += 5
- R.visible_message("\blue \icon[R] [R] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
+ R.visible_message("\icon[R] [R] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
//
//in case we have a bad field type
if(!success)
return
for(var/mob/living/simple_animal/C in T)
- C.visible_message("\blue \icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
+ C.visible_message("\icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.")
C.weakened += 5
suspension_field = new(T)
suspension_field.field_type = field_type
- src.visible_message("\blue \icon[src] [src] activates with a low hum.")
+ src.visible_message("\icon[src] [src] activates with a low hum.")
icon_state = "suspension3"
for(var/obj/item/I in T)
@@ -300,7 +300,7 @@
if(collected)
suspension_field.icon_state = "energynet"
suspension_field.overlays += "shield2"
- src.visible_message("\blue \icon[suspension_field] [suspension_field] gently absconds [collected > 1 ? "something" : "several things"].")
+ src.visible_message("\icon[suspension_field] [suspension_field] gently absconds [collected > 1 ? "something" : "several things"].")
else
if(istype(T,/turf/unsimulated/mineral) || istype(T,/turf/simulated/wall))
suspension_field.icon_state = "shieldsparkles"
@@ -315,7 +315,7 @@
M << "You no longer feel like floating."
M.weakened = min(M.weakened, 3)
- src.visible_message("\blue \icon[src] [src] deactivates with a gentle shudder.")
+ src.visible_message("\icon[src] [src] deactivates with a gentle shudder.")
del(suspension_field)
icon_state = "suspension2"
@@ -330,7 +330,7 @@
set category = "Object"
if(anchored)
- usr << "\red You cannot rotate [src], it has been firmly fixed to the floor."
+ usr << "You cannot rotate [src], it has been firmly fixed to the floor."
else
dir = turn(dir, 90)
diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm
index c2056dfc594..f9f8bfa936e 100644
--- a/code/modules/research/xenoarchaeology/tools/tools.dm
+++ b/code/modules/research/xenoarchaeology/tools/tools.dm
@@ -12,7 +12,7 @@
/obj/item/device/gps/attack_self(var/mob/user as mob)
var/turf/T = get_turf(src)
- user << "\blue \icon[src] [src] flashes [T.x-WORLD_X_OFFSET].[rand(0,9)]:[T.y-WORLD_Y_OFFSET].[rand(0,9)]:[T.z].[rand(0,9)]."
+ user << "\icon[src] [src] flashes [T.x-WORLD_X_OFFSET].[rand(0,9)]:[T.y-WORLD_Y_OFFSET].[rand(0,9)]:[T.z].[rand(0,9)]."
/obj/item/device/measuring_tape
name = "measuring tape"
diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm
index d70d8ccc4ba..3450ec32389 100644
--- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm
+++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm
@@ -25,7 +25,7 @@
var/material = "unknown"
/obj/item/device/depth_scanner/proc/scan_atom(var/mob/user, var/atom/A)
- user.visible_message("\blue [user] scans [A], the air around them humming gently.")
+ user.visible_message("[user] scans [A], the air around them humming gently.")
if(istype(A,/turf/unsimulated/mineral))
var/turf/unsimulated/mineral/M = A
if(M.finds.len || M.artifact_find)
@@ -54,7 +54,7 @@
positive_locations.Add(D)
for(var/mob/L in range(src, 1))
- L << "\blue \icon[src] [src] pings."
+ L << "\icon[src] [src] pings."
else if(istype(A,/obj/structure/boulder))
var/obj/structure/boulder/B = A
@@ -73,7 +73,7 @@
positive_locations.Add(D)
for(var/mob/L in range(src, 1))
- L << "\blue \icon[src] [src] pings [pick("madly","wildly","excitedly","crazily")]!."
+ L << "\icon[src] [src] pings [pick("madly","wildly","excitedly","crazily")]!."
/obj/item/device/depth_scanner/attack_self(var/mob/user as mob)
return src.interact(user)
diff --git a/code/modules/spells/targeted/buttbots_revenge.dm b/code/modules/spells/targeted/buttbots_revenge.dm
index e0e01e5a0eb..f81ca11133e 100644
--- a/code/modules/spells/targeted/buttbots_revenge.dm
+++ b/code/modules/spells/targeted/buttbots_revenge.dm
@@ -27,7 +27,7 @@
var/obj/item/clothing/head/butt/B = new(C.loc)
B.transfer_buttdentity(C)
C.op_stage.butt = 4 //No having two butts.
- C << "\red Your ass just blew up!"
+ C << "Your ass just blew up!"
playsound(get_turf(src), 'sound/effects/superfart.ogg', 50, 1)
C.apply_damage(40, BRUTE, "groin")
C.apply_damage(10, BURN, "groin")
diff --git a/code/modules/spells/targeted/genetic.dm b/code/modules/spells/targeted/genetic.dm
index 40bb91f73d5..fd2994b32a1 100644
--- a/code/modules/spells/targeted/genetic.dm
+++ b/code/modules/spells/targeted/genetic.dm
@@ -57,7 +57,7 @@ code\game\dna\genes\goon_powers.dm
spell_flags = Z2NOCAST | NEEDSCLOTHES | INCLUDEUSER
invocation = "BIRUZ BENNAR"
invocation_type = SpI_SHOUT
- message = "\blue You feel strong! You feel a pressure building behind your eyes!"
+ message = "You feel strong! You feel a pressure building behind your eyes!"
range = 0
max_targets = 1
diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm
index 7aee1b1021a..db8c3d510d5 100644
--- a/code/modules/spells/targeted/mind_transfer.dm
+++ b/code/modules/spells/targeted/mind_transfer.dm
@@ -70,4 +70,4 @@
//After a certain amount of time the victim gets a message about being in a different body.
spawn(msg_wait)
- caster << "\red You feel woozy and lightheaded. Your body doesn't seem like your own."
+ caster << "You feel woozy and lightheaded. Your body doesn't seem like your own."
diff --git a/code/modules/spells/targeted/shoesnatch.dm b/code/modules/spells/targeted/shoesnatch.dm
new file mode 100644
index 00000000000..39296531256
--- /dev/null
+++ b/code/modules/spells/targeted/shoesnatch.dm
@@ -0,0 +1,31 @@
+/spell/targeted/shoesnatch
+
+ name = "Shoe Snatching Charm"
+ desc = "This spell will allow you to steal somebodies shoes right off of their feet!"
+ school = "evocation"
+ charge_type = Sp_RECHARGE
+ charge_max = 150
+ spell_flags = 0
+ invocation = "H'NK!"
+ invocation_type = SpI_SHOUT
+ range = 7
+ max_targets = 1
+ cooldown_min = 30
+ selection_type = "range"
+
+ compatible_mobs = list(/mob/living/carbon/human)
+
+ hud_state = "wiz_shoes"
+
+
+/spell/targeted/shoesnatch/cast(list/targets, mob/user = user)
+ ..()
+ for(var/mob/living/carbon/human/target in targets)
+ var /obj/old_shoes = target.shoes
+ if(old_shoes)
+ sparks_spread = 1
+ sparks_amt = 4
+ target.drop_from_inventory(old_shoes)
+ target.visible_message( "[target]'s shoes suddenly vanish!", \
+ "Your shoes suddenly vanish!")
+ user.put_in_active_hand(old_shoes)
diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm
index fb78d9770cf..71c5e366212 100644
--- a/code/modules/supermatter/supermatter.dm
+++ b/code/modules/supermatter/supermatter.dm
@@ -14,7 +14,7 @@
/obj/machinery/power/supermatter
name = "Supermatter Crystal"
- desc = "A strangely translucent and iridescent crystal. \red You get headaches just from looking at it."
+ desc = "A strangely translucent and iridescent crystal. You get headaches just from looking at it."
icon = 'icons/obj/engine.dmi'
icon_state = "darkmatter"
density = 1
@@ -70,7 +70,7 @@
/obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom.
name = "Supermatter Shard"
short_name = "Shard"
- desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. \red You get headaches just from looking at it."
+ desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. You get headaches just from looking at it."
icon_state = "darkmatter_shard"
base_icon_state = "darkmatter_shard"
diff --git a/code/modules/surgery/appendix.dm b/code/modules/surgery/appendix.dm
index ede75704ee0..e0bdb18c237 100644
--- a/code/modules/surgery/appendix.dm
+++ b/code/modules/surgery/appendix.dm
@@ -37,14 +37,14 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] has separated [target]'s appendix with \the [tool]." , \
- "\blue You have separated [target]'s appendix with \the [tool].")
+ user.visible_message("[user] has separated [target]'s appendix with \the [tool]." , \
+ "You have separated [target]'s appendix with \the [tool].")
target.op_stage.appendix = 1
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/groin = target.get_organ("groin")
- user.visible_message("\red [user]'s hand slips, slicing an artery inside [target]'s abdomen with \the [tool]!", \
- "\red Your hand slips, slicing an artery inside [target]'s abdomen with \the [tool]!")
+ user.visible_message("[user]'s hand slips, slicing an artery inside [target]'s abdomen with \the [tool]!", \
+ "Your hand slips, slicing an artery inside [target]'s abdomen with \the [tool]!")
groin.createwound(CUT, 50, 1)
/datum/surgery_step/appendectomy/remove_appendix
@@ -67,8 +67,8 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] has removed [target]'s appendix with \the [tool].", \
- "\blue You have removed [target]'s appendix with \the [tool].")
+ user.visible_message("[user] has removed [target]'s appendix with \the [tool].", \
+ "You have removed [target]'s appendix with \the [tool].")
var/app = 0
for(var/datum/disease/appendicitis/appendicitis in target.viruses)
app = 1
@@ -82,6 +82,6 @@
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("\red [user]'s hand slips, nicking internal organs in [target]'s abdomen with \the [tool]!", \
- "\red Your hand slips, nicking internal organs in [target]'s abdomen with \the [tool]!")
+ user.visible_message("[user]'s hand slips, nicking internal organs in [target]'s abdomen with \the [tool]!", \
+ "Your hand slips, nicking internal organs in [target]'s abdomen with \the [tool]!")
affected.createwound(BRUISE, 20)
diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm
index f1f3b695237..96bbba46274 100644
--- a/code/modules/surgery/braincore.dm
+++ b/code/modules/surgery/braincore.dm
@@ -27,13 +27,13 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] has cut through [target]'s skull open with \the [tool].", \
- "\blue You have cut through [target]'s skull open with \the [tool].")
+ user.visible_message("[user] has cut through [target]'s skull open with \the [tool].", \
+ "You have cut through [target]'s skull open with \the [tool].")
target.brain_op_stage = 2
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, cracking [target]'s skull with \the [tool]!" , \
- "\red Your hand slips, cracking [target]'s skull with \the [tool]!" )
+ user.visible_message("[user]'s hand slips, cracking [target]'s skull with \the [tool]!" , \
+ "Your hand slips, cracking [target]'s skull with \the [tool]!" )
target.apply_damage(max(10, tool.force), BRUTE, "head")
/datum/surgery_step/brain/cut_brain
@@ -55,13 +55,13 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] separates connections to [target]'s brain with \the [tool].", \
- "\blue You separate connections to [target]'s brain with \the [tool].")
+ user.visible_message("[user] separates connections to [target]'s brain with \the [tool].", \
+ "You separate connections to [target]'s brain with \the [tool].")
target.brain_op_stage = 3
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \
- "\red Your hand slips, cutting a vein in [target]'s brain with \the [tool]!")
+ user.visible_message("[user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \
+ "Your hand slips, cutting a vein in [target]'s brain with \the [tool]!")
target.apply_damage(50, BRUTE, "head", 1)
/datum/surgery_step/brain/saw_spine
@@ -82,8 +82,8 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] separates [target]'s brain from \his spine with \the [tool].", \
- "\blue You separate [target]'s brain from spine with \the [tool].")
+ user.visible_message("[user] separates [target]'s brain from \his spine with \the [tool].", \
+ "You separate [target]'s brain from spine with \the [tool].")
user.attack_log += "\[[time_stamp()]\] Debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])"
target.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])"
@@ -100,8 +100,8 @@
target.death()//You want them to die after the brain was transferred, so not to trigger client death() twice.
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \
- "\red Your hand slips, cutting a vein in [target]'s brain with \the [tool]!")
+ user.visible_message("[user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \
+ "Your hand slips, cutting a vein in [target]'s brain with \the [tool]!")
target.apply_damage(30, BRUTE, "head", 1)
if (ishuman(user))
user:bloody_body(target)
@@ -131,14 +131,14 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] takes out all bone chips out of [target]'s brain with \the [tool].", \
- "\blue You take out all bone chips out of [target]'s brain with \the [tool].")
+ user.visible_message("[user] takes out all bone chips out of [target]'s brain with \the [tool].", \
+ "You take out all bone chips out of [target]'s brain with \the [tool].")
target.brain_op_stage = 3
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, jabbing \the [tool] in [target]'s brain!", \
- "\red Your hand slips, jabbing \the [tool] in [target]'s brain!")
+ user.visible_message("[user]'s hand slips, jabbing \the [tool] in [target]'s brain!", \
+ "Your hand slips, jabbing \the [tool] in [target]'s brain!")
target.apply_damage(30, BRUTE, "head", 1)
/datum/surgery_step/brain/hematoma
@@ -159,16 +159,16 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] mends hematoma in [target]'s brain with \the [tool].", \
- "\blue You mend hematoma in [target]'s brain with \the [tool].")
+ user.visible_message("[user] mends hematoma in [target]'s brain with \the [tool].", \
+ "You mend hematoma in [target]'s brain with \the [tool].")
var/datum/organ/internal/brain/sponge = target.internal_organs_by_name["brain"]
if (sponge)
sponge.damage = 0
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, bruising [target]'s brain with \the [tool]!", \
- "\red Your hand slips, bruising [target]'s brain with \the [tool]!")
+ user.visible_message("[user]'s hand slips, bruising [target]'s brain with \the [tool]!", \
+ "Your hand slips, bruising [target]'s brain with \the [tool]!")
target.apply_damage(20, BRUTE, "head", 1)
//////////////////////////////////////////////////////////////////
@@ -197,13 +197,13 @@
"You start cutting [target]'s flesh with \the [tool].")
end_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] cuts [target]'s flesh with \the [tool].", \
- "\blue You cut [target]'s flesh with \the [tool], exposing the cores")
+ user.visible_message("[user] cuts [target]'s flesh with \the [tool].", \
+ "You cut [target]'s flesh with \the [tool], exposing the cores")
target.brain_op_stage = 1
fail_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, tearing [target]'s flesh with \the [tool]!", \
- "\red Your hand slips, tearing [target]'s flesh with \the [tool]!")
+ user.visible_message("[user]'s hand slips, tearing [target]'s flesh with \the [tool]!", \
+ "Your hand slips, tearing [target]'s flesh with \the [tool]!")
/datum/surgery_step/slime/cut_innards
allowed_tools = list(
@@ -223,13 +223,13 @@
"You start cutting [target]'s silky innards apart with \the [tool].")
end_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] cuts [target]'s innards apart with \the [tool], exposing the cores", \
- "\blue You cut [target]'s innards apart with \the [tool], exposing the cores")
+ user.visible_message("[user] cuts [target]'s innards apart with \the [tool], exposing the cores", \
+ "You cut [target]'s innards apart with \the [tool], exposing the cores")
target.brain_op_stage = 2
fail_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, tearing [target]'s innards with \the [tool]!", \
- "\red Your hand slips, tearing [target]'s innards with \the [tool]!")
+ user.visible_message("[user]'s hand slips, tearing [target]'s innards with \the [tool]!", \
+ "Your hand slips, tearing [target]'s innards with \the [tool]!")
/datum/surgery_step/slime/saw_core
allowed_tools = list(
@@ -249,8 +249,8 @@
end_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
target.cores--
- user.visible_message("\blue [user] cuts out one of [target]'s cores with \the [tool].",, \
- "\blue You cut out one of [target]'s cores with \the [tool]. [target.cores] cores left.")
+ user.visible_message("[user] cuts out one of [target]'s cores with \the [tool].",, \
+ "You cut out one of [target]'s cores with \the [tool]. [target.cores] cores left.")
if(target.cores >= 0)
new target.coretype(target.loc)
@@ -260,5 +260,5 @@
fail_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, failing to cut core out!", \
- "\red Your hand slips, failing to cut core out!")
\ No newline at end of file
+ user.visible_message("[user]'s hand slips, failing to cut core out!", \
+ "Your hand slips, failing to cut core out!")
\ No newline at end of file
diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm
index 940e50be4ae..a54d734494a 100644
--- a/code/modules/surgery/ribcage.dm
+++ b/code/modules/surgery/ribcage.dm
@@ -31,13 +31,13 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] has cut through [target]'s ribcage open with \the [tool].", \
- "\blue You have cut through [target]'s ribcage open with \the [tool].")
+ user.visible_message("[user] has cut through [target]'s ribcage open with \the [tool].", \
+ "You have cut through [target]'s ribcage open with \the [tool].")
target.op_stage.ribcage = 1
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user]'s hand slips, cracking [target]'s ribcage with \the [tool]!" , \
- "\red Your hand slips, cracking [target]'s ribcage with \the [tool]!" )
+ user.visible_message("[user]'s hand slips, cracking [target]'s ribcage with \the [tool]!" , \
+ "Your hand slips, cracking [target]'s ribcage with \the [tool]!" )
var/datum/organ/external/affected = target.get_organ(target_zone)
affected.createwound(CUT, 20)
affected.fracture()
@@ -64,8 +64,8 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "\blue [user] forces open [target]'s ribcage with \the [tool]."
- var/self_msg = "\blue You force open [target]'s ribcage with \the [tool]."
+ var/msg = "[user] forces open [target]'s ribcage with \the [tool]."
+ var/self_msg = "You force open [target]'s ribcage with \the [tool]."
user.visible_message(msg, self_msg)
target.op_stage.ribcage = 2
@@ -75,8 +75,8 @@
affected.fracture()
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "\red [user]'s hand slips, breaking [target]'s ribcage!"
- var/self_msg = "\red Your hand slips, breaking [target]'s ribcage!"
+ var/msg = "[user]'s hand slips, breaking [target]'s ribcage!"
+ var/self_msg = "Your hand slips, breaking [target]'s ribcage!"
user.visible_message(msg, self_msg)
var/datum/organ/external/affected = target.get_organ(target_zone)
affected.createwound(BRUISE, 20)
@@ -104,21 +104,21 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "\blue [user] bends [target]'s ribcage back into place with \the [tool]."
- var/self_msg = "\blue You bend [target]'s ribcage back into place with \the [tool]."
+ var/msg = "[user] bends [target]'s ribcage back into place with \the [tool]."
+ var/self_msg = "You bend [target]'s ribcage back into place with \the [tool]."
user.visible_message(msg, self_msg)
target.op_stage.ribcage = 1
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "\red [user]'s hand slips, bending [target]'s ribcage in a wrong shape!"
- var/self_msg = "\red Your hand slips, bending [target]'s ribcage in a wrong shape!"
+ var/msg = "[user]'s hand slips, bending [target]'s ribcage in a wrong shape!"
+ var/self_msg = "Your hand slips, bending [target]'s ribcage in a wrong shape!"
user.visible_message(msg, self_msg)
var/datum/organ/external/chest/affected = target.get_organ("chest")
affected.createwound(BRUISE, 20)
affected.fracture()
if (prob(40))
- user.visible_message("\red Rib pierces the lung!")
+ user.visible_message("Rib pierces the lung!")
target.rupture_lung()
/datum/surgery_step/ribcage/mend_ribcage
@@ -141,8 +141,8 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "\blue [user] applied \the [tool] to [target]'s ribcage."
- var/self_msg = "\blue You applied \the [tool] to [target]'s ribcage."
+ var/msg = "[user] applied \the [tool] to [target]'s ribcage."
+ var/self_msg = "You applied \the [tool] to [target]'s ribcage."
user.visible_message(msg, self_msg)
target.op_stage.ribcage = 0
@@ -176,7 +176,7 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\red [user] rips the larva out of [target]'s ribcage!",
+ user.visible_message("[user] rips the larva out of [target]'s ribcage!",
"You rip the larva out of [target]'s ribcage!")
for(var/obj/item/alien_embryo/A in target)
@@ -232,27 +232,27 @@
var/datum/organ/internal/liver/kidney = target.internal_organs["kidney"]
if(lungs.damage > 0)
- user.visible_message("\blue [user] mends the rupture in [target]'s lungs with \the [tool].", \
- "\blue You mend the rupture in [target]'s lungs with \the [tool]." )
+ user.visible_message("[user] mends the rupture in [target]'s lungs with \the [tool].", \
+ "You mend the rupture in [target]'s lungs with \the [tool]." )
lungs.damage = 0
if(heart.damage > 0)
- user.visible_message("\blue [user] treats the bruises on [target]'s heart with \the [tool].", \
- "\blue You treats the bruises on [target]'s heart with \the [tool]." )
+ user.visible_message("[user] treats the bruises on [target]'s heart with \the [tool].", \
+ "You treats the bruises on [target]'s heart with \the [tool]." )
heart.damage = 0
if(liver.damage > 0)
- user.visible_message("\blue [user] treats the bruises on [target]'s liver with \the [tool].", \
- "\blue You treats the bruises on [target]'s liver with \the [tool]." )
+ user.visible_message("[user] treats the bruises on [target]'s liver with \the [tool].", \
+ "You treats the bruises on [target]'s liver with \the [tool]." )
liver.damage = 0
if(kidney.damage > 0)
- user.visible_message("\blue [user] treats the bruises on [target]'s kidney with \the [tool].", \
- "\blue You treats the bruises on [target]'s kidney with \the [tool]." )
+ user.visible_message("[user] treats the bruises on [target]'s kidney with \the [tool].", \
+ "You treats the bruises on [target]'s kidney with \the [tool]." )
kidney.damage = 0
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/chest/affected = target.get_organ("chest")
- user.visible_message("\red [user]'s hand slips, slicing an artery inside [target]'s chest with \the [tool]!", \
- "\red Your hand slips, slicing an artery inside [target]'s chest with \the [tool]!")
+ user.visible_message("[user]'s hand slips, slicing an artery inside [target]'s chest with \the [tool]!", \
+ "Your hand slips, slicing an artery inside [target]'s chest with \the [tool]!")
affected.createwound(CUT, 20)
diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm
index ac7e565a099..4b62f5cbe8f 100644
--- a/code/modules/telesci/bscrystal.dm
+++ b/code/modules/telesci/bscrystal.dm
@@ -16,7 +16,7 @@
/obj/item/bluespace_crystal/attack_self(var/mob/user)
blink_mob(user)
- user.drop_item()
+ user.drop_item(src)
user.visible_message("[user] crushes the [src]!")
qdel(src)
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index 6f7e97ad86f..a6f1fbbb9ab 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -55,14 +55,14 @@
if(istype(W, /obj/item/weapon/cell) && anchored)
if(cell)
- user << "\red There is already a cell in \the [name]."
+ user << "There is already a cell in \the [name]."
return
else
if(areaMaster.power_equip == 0) // There's no APC in this area, don't try to cheat power!
user << "\The [name] blinks red as you try to insert the cell!"
return
- user.drop_item(src)
+ user.drop_item(W, src)
cell = W
user.visible_message("[user] inserts a cell into the [src].", "You insert a cell into the [src].")
update_icon()
@@ -146,7 +146,7 @@
if(prob(95))
sparks()
for(var/mob/O in hearers(src, null))
- O.show_message("\red The telepad weakly fizzles.", 2)
+ O.show_message("The telepad weakly fizzles.", 2)
return
if(prob(5))
// Irradiate everyone in telescience!
@@ -155,14 +155,14 @@
sparks()
for(var/mob/living/carbon/human/M in viewers(L, null))
M.apply_effect((rand(10, 20)), IRRADIATE, 0)
- M << "\red You feel strange."
+ M << "You feel strange."
return
/* Lets not, for now. - N3X
if(prob(1))
// AI CALL SHUTTLE I SAW RUNE, SUPER LOW CHANCE, CAN HARDLY HAPPEN
for(var/mob/living/carbon/O in viewers(src, null))
var/datum/game_mode/cult/temp = new
- O.show_message("\red The telepad flashes with a strange light, and you have a sudden surge of allegiance toward the true dark one!", 2)
+ O.show_message("The telepad flashes with a strange light, and you have a sudden surge of allegiance toward the true dark one!", 2)
O.mind.make_Cultist()
temp.grant_runeword(O)
sparks()
@@ -170,7 +170,7 @@
if(prob(1))
// VIVA LA FUCKING REVOLUTION BITCHES, SUPER LOW CHANCE, CAN HARDLY HAPPEN
for(var/mob/living/carbon/O in viewers(src, null))
- O.show_message("\red The telepad flashes with a strange light, and you see all kind of images flash through your mind, of murderous things Nanotrasen has done, and you decide to rebel!", 2)
+ O.show_message("The telepad flashes with a strange light, and you see all kind of images flash through your mind, of murderous things Nanotrasen has done, and you decide to rebel!", 2)
O.mind.make_Rev()
sparks()
return
@@ -178,7 +178,7 @@
if(prob(1))
// The OH SHIT FUCK GOD DAMN IT LYNCH THE SCIENTISTS event.
for(var/mob/living/carbon/O in viewers(src, null))
- O.show_message("\red The telepad changes colors rapidly, and opens a portal, and you see what your mind seems to think is the very threads that hold the pattern of the universe together, and a eerie sense of paranoia creeps into you.", 2)
+ O.show_message("The telepad changes colors rapidly, and opens a portal, and you see what your mind seems to think is the very threads that hold the pattern of the universe together, and a eerie sense of paranoia creeps into you.", 2)
spacevine_infestation()
sparks()
return
@@ -239,11 +239,11 @@ var/global/list/telesci_warnings = list(/obj/machinery/power/supermatter,
var/area/A=target.loc
if(A && A.jammed)
if(!telepad.amplifier || A.jammed==SUPER_JAMMED)
- src.visible_message("\red \icon[src] [src] turns on and the lights dim. You can see a faint shape, but it loses focus and the telepad shuts off with a buzz. Perhaps you need more signal strength?", "\icon[src]\red You hear something buzz.")
+ src.visible_message("\icon[src] [src] turns on and the lights dim. You can see a faint shape, but it loses focus and the telepad shuts off with a buzz. Perhaps you need more signal strength?", "\icon[src]You hear something buzz.")
return
if(prob(25))
del(telepad.amplifier)
- src.visible_message("\icon[src]\blue You hear something shatter.","\icon[src]\blue You hear something shatter.")
+ src.visible_message("\icon[src]You hear something shatter.","\icon[src]You hear something shatter.")
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, telepad)
s.start()
diff --git a/code/modules/virus2/analyser.dm b/code/modules/virus2/analyser.dm
index 795cee3292f..3dbbf101418 100644
--- a/code/modules/virus2/analyser.dm
+++ b/code/modules/virus2/analyser.dm
@@ -32,10 +32,10 @@
var/mob/living/carbon/c = user
if(!dish)
dish = I
- c.drop_item(src)
+ c.drop_item(I, src)
for(var/mob/M in viewers(src))
if(M == user) continue
- M.show_message("\blue [user.name] inserts the [dish.name] in the [src.name]", 3)
+ M.show_message("[user.name] inserts the [dish.name] in the [src.name]", 3)
else
user << "There is already a dish inserted"
return
diff --git a/code/modules/virus2/biohazard destroyer.dm b/code/modules/virus2/biohazard destroyer.dm
index e0b1991f8d1..9865f2c7da1 100644
--- a/code/modules/virus2/biohazard destroyer.dm
+++ b/code/modules/virus2/biohazard destroyer.dm
@@ -17,4 +17,4 @@
I.loc = src.loc
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue The [src.name] beeps", 2)
\ No newline at end of file
+ O.show_message("\icon[src] The [src.name] beeps", 2)
\ No newline at end of file
diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm
index ff2475918aa..89011b6afd1 100644
--- a/code/modules/virus2/centrifuge.dm
+++ b/code/modules/virus2/centrifuge.dm
@@ -19,7 +19,7 @@
var/mob/living/carbon/C = user
if(!sample)
sample = I
- C.drop_item(src)
+ C.drop_item(I, src)
attack_hand(user)
diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm
index e0e655798ce..76fc9a52d66 100644
--- a/code/modules/virus2/curer.dm
+++ b/code/modules/virus2/curer.dm
@@ -14,7 +14,7 @@
var/mob/living/carbon/C = user
if(!container)
container = I
- C.drop_item(src)
+ C.drop_item(I, src)
if(istype(I,/obj/item/weapon/virusdish))
if(virusing)
user << "The pathogen materializer is still recharging.."
diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm
index 7503e390afc..0a782247445 100644
--- a/code/modules/virus2/diseasesplicer.dm
+++ b/code/modules/virus2/diseasesplicer.dm
@@ -23,7 +23,7 @@
if(!dish)
dish = I
- c.drop_item(src)
+ c.drop_item(I, src)
if(istype(I,/obj/item/weapon/diseasedisk))
user << "You upload the contents of the disk into the buffer"
memorybank = I:effect
diff --git a/code/modules/virus2/dishincubator.dm b/code/modules/virus2/dishincubator.dm
index 9b952627301..8e582d9767f 100644
--- a/code/modules/virus2/dishincubator.dm
+++ b/code/modules/virus2/dishincubator.dm
@@ -50,7 +50,7 @@
return
src.beaker = B
- user.drop_item(src)
+ user.drop_item(B, src)
if(istype(B,/obj/item/weapon/reagent_containers/syringe))
user << "You add the syringe to the machine!"
src.updateUsrDialog()
@@ -64,7 +64,7 @@
return
src.dish = B
- user.drop_item(src)
+ user.drop_item(B, src)
if(istype(B,/obj/item/weapon/virusdish))
user << "You add the dish to the machine!"
src.updateUsrDialog()
diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm
index 13d7e0c36f0..1e068709179 100644
--- a/code/modules/virus2/effect.dm
+++ b/code/modules/virus2/effect.dm
@@ -61,7 +61,7 @@
name = "Unidentified Foreign Body"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
- mob << "\red You feel something tearing its way out of your stomach..."
+ mob << "You feel something tearing its way out of your stomach..."
mob.adjustToxLoss(10)
mob.updatehealth()
if(prob(40))
@@ -123,6 +123,17 @@
if(h.set_species("Tajaran"))
h.regenerate_icons()
+/datum/disease2/effect/voxpox
+ name = "Vox Pox"
+ stage = 4
+ badness = 2
+/datum/disease2/effect/voxpox/activate(var/mob/living/carbon/mob,var/multiplier)
+ if(istype(mob,/mob/living/carbon/human))
+ var/mob/living/carbon/human/h = mob
+ if(h.species.name != "Vox")
+ if(h.set_species("Vox"))
+ h.regenerate_icons()
+
/datum/disease2/effect/suicide
name = "Suicidal Syndrome"
stage = 4
@@ -130,7 +141,7 @@
/datum/disease2/effect/suicide/activate(var/mob/living/carbon/mob,var/multiplier)
mob.suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
- viewers(mob) << "\red [mob.name] is holding \his breath. It looks like \he's trying to commit suicide."
+ viewers(mob) << "[mob.name] is holding \his breath. It looks like \he's trying to commit suicide."
mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss())
mob.updatehealth()
spawn(200) //in case they get revived by cryo chamber or something stupid like that, let them suicide again in 20 seconds
@@ -282,7 +293,7 @@
if(2)
- //mob << "\red i dont think i need this here"
+ //mob << "i dont think i need this here"
for (var/datum/organ/external/E in H.organs)
if(pick(1,0))
@@ -321,6 +332,14 @@
+/datum/disease2/effect/delightful
+ name = "Delightful Effect"
+ stage = 4
+/datum/disease2/effect/delightful/activate(var/mob/living/carbon/mob,var/multiplier)
+ mob << " You feel delightful!"
+ if (mob.reagents.get_reagent_amount("doctorsdelight") < 1)
+ mob.reagents.add_reagent("doctorsdelight", 1)
+
/datum/disease2/effect/spawn
@@ -374,7 +393,7 @@
if(prob(10))
GM.toxins += 100
//GM.temperature = 1500+T0C //should be enough to start a fire
- mob << "\red You exhale a large plume of toxic gas!"
+ mob << "You exhale a large plume of toxic gas!"
else
GM.toxins += 10
GM.temperature = istype(T) ? T.air.temperature : T20C
@@ -444,6 +463,17 @@
/datum/disease2/effect/giggle/activate(var/mob/living/carbon/mob,var/multiplier)
mob.say("*giggle")
+/datum/disease2/effect/chickenpox
+ name = "Chicken Pox"
+ stage = 3
+/datum/disease2/effect/chickenpox/activate(var/mob/living/carbon/mob,var/multiplier)
+ if (prob(10))
+ mob.say(pick("BAWWWK!", "BAAAWWK!", "CLUCK!", "CLUUUCK!", "BAAAAWWWK!"))
+ if (prob(5))
+ mob.emote("me",1,"vomits up a chicken egg!")
+ playsound(mob.loc, 'sound/effects/splat.ogg', 50, 1)
+ new /obj/item/weapon/reagent_containers/food/snacks/egg(get_turf(mob))
+
/datum/disease2/effect/confusion
name = "Topographical Cretinism"
stage = 3
@@ -576,6 +606,7 @@
/obj/item/clothing/mask/gas/virusclown_hat/equipped(var/mob/user, var/slot)
if (slot == slot_wear_mask)
canremove = 0 //curses!
+ can_flip = 0 //no pushing the mask up off your face
..()
diff --git a/code/modules/virus2/isolator.dm b/code/modules/virus2/isolator.dm
index de801ffc8a4..024e3503cd9 100644
--- a/code/modules/virus2/isolator.dm
+++ b/code/modules/virus2/isolator.dm
@@ -19,7 +19,7 @@
return
src.beaker = B
- user.drop_item(src)
+ user.drop_item(B, src)
if(istype(B,/obj/item/weapon/reagent_containers/syringe))
user << "You add the syringe to the machine!"
src.updateUsrDialog()
@@ -40,7 +40,7 @@
break
// /vg/: Try to fix isolators
if(!Blood)
- usr << "\red ERROR: Unable to locate blood within the beaker. Bug?"
+ usr << "ERROR: Unable to locate blood within the beaker. Bug?"
testing("Unable to locate blood in [beaker]!")
return
var/list/virus = virus_copylist(Blood.data["virus2"])
diff --git a/code/setup.dm b/code/setup.dm
index 8863c4a4710..a5821c9c60e 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -1116,3 +1116,9 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define BUILD_FAILURE 0 //We failed so give an error message
#define BUILD_SUCCESS 1 //Looks for a lattice to build.
#define BUILD_IGNORE 2 //Ignores the need for lattice to build.
+
+
+#define ARENA_SETUP 0 //under construction/resetting the arena
+#define ARENA_AVAILABLE 1 //arena is ready for a new game
+#define ARENA_INGAME 2 //a game is currently being played in the arena
+#define ARENA_ENDGAME 3 //a game just finished and the arena is about to reset
diff --git a/code/stylesheet.dm b/code/stylesheet.dm
index bd9b8dc0585..6ac894be21b 100644
--- a/code/stylesheet.dm
+++ b/code/stylesheet.dm
@@ -62,6 +62,13 @@ h1.alert, h2.alert {color: #000000;}
.rough {font-family: 'Trebuchet MS', cursive, sans-serif;}
.say_quote {font-family: Georgia, Verdana, sans-serif;}
.interface {color: #330033;}
+.big {font-size: 150%;}
+.bold {font-weight: bold;}
+.center {text-align: center;}
+.red {color: #FF0000;}
/* /vg/ */
+.good {color: green;}
+.average {color: #FF8000;}
+.bad {color: #FF0000;}
/* Recruiting stuff */
.recruit {color: #5c00e6; font-weight: bold; font-style: italic;}\""}
\ No newline at end of file
diff --git a/code/unused/computer2/buildandrepair.dm b/code/unused/computer2/buildandrepair.dm
index a8c2e3ec662..5db06a23c1e 100644
--- a/code/unused/computer2/buildandrepair.dm
+++ b/code/unused/computer2/buildandrepair.dm
@@ -26,13 +26,13 @@
if(istype(P, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20))
- user << "\blue You wrench the frame into place."
+ user << "You wrench the frame into place."
src.anchored = 1
src.state = 1
if(istype(P, /obj/item/weapon/weldingtool))
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 20))
- user << "\blue You deconstruct the frame."
+ user << "You deconstruct the frame."
var/obj/item/stack/sheet/metal/M = getFromPool(/obj/item/stack/sheet/metal, get_turf(src))
M.amount = 5
qdel(src)
@@ -40,24 +40,24 @@
if(istype(P, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20))
- user << "\blue You unfasten the frame."
+ user << "You unfasten the frame."
src.anchored = 0
src.state = 0
if(istype(P, /obj/item/weapon/motherboard) && !mainboard)
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- user << "\blue You place the mainboard inside the frame."
+ user << "You place the mainboard inside the frame."
src.icon_state = "1"
src.mainboard = P
user.drop_item()
P.loc = src
if(istype(P, /obj/item/weapon/screwdriver) && mainboard)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- user << "\blue You screw the mainboard into place."
+ user << "You screw the mainboard into place."
src.state = 2
src.icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && mainboard)
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- user << "\blue You remove the mainboard."
+ user << "You remove the mainboard."
src.state = 1
src.icon_state = "0"
mainboard.loc = src.loc
@@ -65,7 +65,7 @@
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && mainboard && (!peripherals.len))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- user << "\blue You unfasten the mainboard."
+ user << "You unfasten the mainboard."
src.state = 1
src.icon_state = "1"
@@ -74,13 +74,13 @@
user.drop_item()
src.peripherals.Add(P)
P.loc = src
- user << "\blue You add [P] to the frame."
+ user << "You add [P] to the frame."
else
- user << "\red There is no more room for peripheral cards."
+ user << "There is no more room for peripheral cards."
if(istype(P, /obj/item/weapon/crowbar) && src.peripherals.len)
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- user << "\blue You remove the peripheral boards."
+ user << "You remove the peripheral boards."
for(var/obj/item/weapon/peripheral/W in src.peripherals)
W.loc = src.loc
src.peripherals.Remove(W)
@@ -91,13 +91,13 @@
if(do_after(user, 20))
P:amount -= 5
if(!P:amount) del(P)
- user << "\blue You add cables to the frame."
+ user << "You add cables to the frame."
src.state = 3
src.icon_state = "3"
if(3)
if(istype(P, /obj/item/weapon/wirecutters))
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
- user << "\blue You remove the cables."
+ user << "You remove the cables."
src.state = 2
src.icon_state = "2"
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc )
@@ -110,11 +110,11 @@
user.drop_item()
src.hd = P
P.loc = src
- user << "\blue You connect the drive to the cabling."
+ user << "You connect the drive to the cabling."
if(istype(P, /obj/item/weapon/crowbar) && src.hd)
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- user << "\blue You remove the hard drive."
+ user << "You remove the hard drive."
src.hd.loc = src.loc
src.hd = null
@@ -123,19 +123,19 @@
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
P:use(2)
- user << "\blue You put in the glass panel."
+ user << "You put in the glass panel."
src.state = 4
src.icon_state = "4"
if(4)
if(istype(P, /obj/item/weapon/crowbar))
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- user << "\blue You remove the glass panel."
+ user << "You remove the glass panel."
src.state = 3
src.icon_state = "3"
new /obj/item/stack/sheet/glass/glass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- user << "\blue You connect the monitor."
+ user << "You connect the monitor."
var/obj/machinery/computer2/C= new /obj/machinery/computer2( src.loc )
C.setup_drive_size = 0
C.icon_state = src.created_icon_state
diff --git a/code/unused/computer2/computerII.dm b/code/unused/computer2/computerII.dm
index 433853d682c..9d619201ded 100644
--- a/code/unused/computer2/computerII.dm
+++ b/code/unused/computer2/computerII.dm
@@ -293,12 +293,12 @@
var/obj/computer2frame/A = new /obj/computer2frame( src.loc )
A.created_icon_state = src.base_icon_state
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
new /obj/item/weapon/shard( src.loc )
A.state = 3
A.icon_state = "3"
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
A.state = 4
A.icon_state = "4"
diff --git a/code/unused/computer2/peripherals.dm b/code/unused/computer2/peripherals.dm
index 9e19cb9d236..d7021704431 100644
--- a/code/unused/computer2/peripherals.dm
+++ b/code/unused/computer2/peripherals.dm
@@ -138,7 +138,7 @@
src.vend_prize()
src.last_vend = world.time
else
- user << "\red [src] isn't ready to dispense a prize yet."
+ user << "[src] isn't ready to dispense a prize yet."
return
diff --git a/code/unused/disease2/analyser.dm b/code/unused/disease2/analyser.dm
index abc123369a0..0f31d07f112 100644
--- a/code/unused/disease2/analyser.dm
+++ b/code/unused/disease2/analyser.dm
@@ -20,7 +20,7 @@
I.loc = src
for(var/mob/M in viewers(src))
if(M == user) continue
- M.show_message("\blue [user.name] inserts the [dish.name] in the [src.name]", 3)
+ M.show_message("[user.name] inserts the [dish.name] in the [src.name]", 3)
else
@@ -55,7 +55,7 @@
icon_state = "analyser"
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue The [src.name] prints a sheet of paper", 3)
+ O.show_message("\icon[src] The [src.name] prints a sheet of paper", 3)
else if(dish && !scanning && !pause)
if(dish.virus2 && dish.growth > 50)
dish.growth -= 10
@@ -67,7 +67,7 @@
dish.loc = src.loc
dish = null
for(var/mob/M in viewers(src))
- M.show_message("\icon[src] \blue The [src.name] buzzes", 2)
+ M.show_message("\icon[src] The [src.name] buzzes", 2)
pause = 0
diff --git a/code/unused/disease2/base.dm b/code/unused/disease2/base.dm
index a69833024c5..3f9470dfdf5 100644
--- a/code/unused/disease2/base.dm
+++ b/code/unused/disease2/base.dm
@@ -256,7 +256,7 @@
name = "Flemmingtons"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
- mob << "\red Mucous runs down the back of your throat."
+ mob << "Mucous runs down the back of your throat."
/datum/disease2/effect/killertoxins
name = "Toxification syndrome"
@@ -288,7 +288,7 @@
activate(var/mob/living/carbon/mob,var/multiplier)
mob.suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
- viewers(mob) << "\red [mob.name] is attempting to bite off \his tongue. It looks like \he's trying to commit suicide."
+ viewers(mob) << "[mob.name] is attempting to bite off \his tongue. It looks like \he's trying to commit suicide."
mob.oxyloss = max(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss(), mob.getOxyLoss())
mob.updatehealth()
spawn(200) //in case they get revived by cryo chamber or something stupid like that, let them suicide again in 20 seconds
diff --git a/code/unused/disease2/biohazard destroyer.dm b/code/unused/disease2/biohazard destroyer.dm
index 1f390433269..9038f9974c5 100644
--- a/code/unused/disease2/biohazard destroyer.dm
+++ b/code/unused/disease2/biohazard destroyer.dm
@@ -17,4 +17,4 @@
I.loc = src.loc
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue The [src.name] beeps", 2)
+ O.show_message("\icon[src] The [src.name] beeps", 2)
diff --git a/code/unused/disease2/cureimplanter.dm b/code/unused/disease2/cureimplanter.dm
index 45064954561..745abef68c6 100644
--- a/code/unused/disease2/cureimplanter.dm
+++ b/code/unused/disease2/cureimplanter.dm
@@ -15,17 +15,17 @@
if(ismob(target))
for(var/mob/O in viewers(world.view, user))
if (target != user)
- O.show_message(text("\red [] is trying to inject [] with [src.name]!", user, target), 1)
+ O.show_message(text("[] is trying to inject [] with [src.name]!", user, target), 1)
else
- O.show_message("\red [user] is trying to inject themselves with [src.name]!", 1)
+ O.show_message("[user] is trying to inject themselves with [src.name]!", 1)
if(!do_mob(user, target,60)) return
for(var/mob/O in viewers(world.view, user))
if (target != user)
- O.show_message(text("\red [] injects [] with [src.name]!", user, target), 1)
+ O.show_message(text("[] injects [] with [src.name]!", user, target), 1)
else
- O.show_message("\red [user] injects themself with [src.name]!", 1)
+ O.show_message("[user] injects themself with [src.name]!", 1)
var/mob/living/carbon/M = target
diff --git a/code/unused/disease2/curer.dm b/code/unused/disease2/curer.dm
index 9d1c4f744c2..243f31aa196 100644
--- a/code/unused/disease2/curer.dm
+++ b/code/unused/disease2/curer.dm
@@ -16,7 +16,7 @@
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
@@ -28,7 +28,7 @@
A.anchored = 1
del(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
for (var/obj/C in src)
@@ -152,4 +152,4 @@
/obj/machinery/computer/curer/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue [msg]", 2)
+ O.show_message("\icon[src] [msg]", 2)
diff --git a/code/unused/disease2/diseasesplicer.dm b/code/unused/disease2/diseasesplicer.dm
index d50c9ed3f26..b314d5c1f29 100644
--- a/code/unused/disease2/diseasesplicer.dm
+++ b/code/unused/disease2/diseasesplicer.dm
@@ -21,7 +21,7 @@
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
@@ -33,7 +33,7 @@
A.anchored = 1
del(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
for (var/obj/C in src)
@@ -186,7 +186,7 @@
/obj/machinery/computer/diseasesplicer/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue [msg]", 2)
+ O.show_message("\icon[src] [msg]", 2)
/obj/item/weapon/diseasedisk
diff --git a/code/unused/disease2/dishincubator.dm b/code/unused/disease2/dishincubator.dm
index 921ed21574d..33f4fffe903 100644
--- a/code/unused/disease2/dishincubator.dm
+++ b/code/unused/disease2/dishincubator.dm
@@ -173,4 +173,4 @@
proc/state(var/msg)
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue [msg]", 2)
+ O.show_message("\icon[src] [msg]", 2)
diff --git a/code/unused/filter_control.dm b/code/unused/filter_control.dm
index 47bfb3a759f..e11d45dc3b5 100644
--- a/code/unused/filter_control.dm
+++ b/code/unused/filter_control.dm
@@ -21,7 +21,7 @@
return ..()
if(istype(W, /obj/item/weapon/screwdriver))
src.add_fingerprint(user)
- user.show_message(text("\red Now [] the panel...", (src.locked) ? "unscrewing" : "reattaching"), 1)
+ user.show_message(text("Now [] the panel...", (src.locked) ? "unscrewing" : "reattaching"), 1)
sleep(30)
src.locked =! src.locked
src.updateicon()
@@ -30,13 +30,13 @@
stat ^= BROKEN
src.add_fingerprint(user)
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [] has []activated []!", user, (stat&BROKEN) ? "de" : "re", src), 1)
+ O.show_message(text("[] has []activated []!", user, (stat&BROKEN) ? "de" : "re", src), 1)
src.updateicon()
return
if(istype(W, /obj/item/weapon/card/emag) && !emagged)
emagged++
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [] has shorted out the []'s access system with an electromagnetic card!", user, src), 1)
+ O.show_message(text("[] has shorted out the []'s access system with an electromagnetic card!", user, src), 1)
src.updateicon()
return src.attack_hand(user)
return src.attack_hand(user)
@@ -103,7 +103,7 @@
if(FI.control == src.control)
FI.f_mask ^= text2num(href_list["tg"])
else
- usr.see("\red Access Denied ([src.name] operation restricted to authorized atmospheric technicians.)")
+ usr.see("Access Denied ([src.name] operation restricted to authorized atmospheric technicians.)")
AutoUpdateAI(src)
src.updateUsrDialog()
src.add_fingerprint(usr)
diff --git a/code/unused/gamemodes/ctf_items.dm b/code/unused/gamemodes/ctf_items.dm
index 74c907826b6..bd8584c2988 100644
--- a/code/unused/gamemodes/ctf_items.dm
+++ b/code/unused/gamemodes/ctf_items.dm
@@ -89,7 +89,7 @@
sleep(300)
world.Reboot()
else
- user << "\red You need to have your flag in the beginning position!"
+ user << "You need to have your flag in the beginning position!"
else if(istype(C, /obj/item/weapon/ctf_flag/red))
world << "[user.real_name] has tried to score with their own flag! Idiot!"
src.operating = 0
@@ -131,7 +131,7 @@
sleep(300)
world.Reboot()
else
- user << "\red You need to have your flag in the beginning position!"
+ user << "You need to have your flag in the beginning position!"
else if(istype(C, /obj/item/weapon/ctf_flag/green))
world << "[user.real_name] has tried to score with their own flag! Idiot!"
src.operating = 0
diff --git a/code/unused/gamemodes/restructuring.dm b/code/unused/gamemodes/restructuring.dm
index eff8acb7248..5b81cbff583 100644
--- a/code/unused/gamemodes/restructuring.dm
+++ b/code/unused/gamemodes/restructuring.dm
@@ -3,8 +3,8 @@
config_tag = "restructuring"
/*
/datum/game_mode/restructuring/announce()
- world << "\red GLOBAL TRANSMISSION FROM HEAD OFFICE: A CORPORATE RESTRUCTURING IS TO TAKE PLACE"
- world << "\red Stay tuned for further news; note that we do care for our employees and any layoffs will be dealt with discretion and compassion"
+ world << "GLOBAL TRANSMISSION FROM HEAD OFFICE: A CORPORATE RESTRUCTURING IS TO TAKE PLACE"
+ world << "Stay tuned for further news; note that we do care for our employees and any layoffs will be dealt with discretion and compassion"
/datum/game_mode/restructuring/post_setup()
@@ -24,11 +24,11 @@
if (!who)
target = pick(get_mob_list())
target_desc = get_target_desc(target)
- world << "\red HEAD OFFICE: [target_desc] is accused of attempting to start a Union and is now considered a threat to the station. Terminate the employee immediately."
+ world << "HEAD OFFICE: [target_desc] is accused of attempting to start a Union and is now considered a threat to the station. Terminate the employee immediately."
else
target = who
target_desc = get_target_desc(target)
- world << "\red HEAD OFFICE: [target_desc] is accused of fornicating with staff of the same sex. Terminate the employee immediately."
+ world << "HEAD OFFICE: [target_desc] is accused of fornicating with staff of the same sex. Terminate the employee immediately."
ticker.target = target
target.store_memory("Head office has ordered your downsizing. Ruh roh", 0)
@@ -42,15 +42,15 @@
var/list/left_alive = get_mob_list()
if (left_alive.len == 1)
var/thewinner = the_winner()
- world << "\red HEAD OFFICE: Thanks to his superior brown-nosing abilities, [thewinner] has been promoted to senior management! Congratulations!"
+ world << "HEAD OFFICE: Thanks to his superior brown-nosing abilities, [thewinner] has been promoted to senior management! Congratulations!"
return 1
else if (left_alive.len == 0)
- world << "\red HEAD OFFICE: Cost cutting measures have achieved 100% efficiency. Thank you for understanding our position during this volatile economic downturn."
+ world << "HEAD OFFICE: Cost cutting measures have achieved 100% efficiency. Thank you for understanding our position during this volatile economic downturn."
return 1
else
if(ticker.target.stat != 2)
return 0
- world << "\red HEAD OFFICE: It seems we have made a mistake in our paperwork. The previous target for termination was chosen based on race, sex, and/or religious beliefs, which is against company policy. Please cancel previous termination request."
+ world << "HEAD OFFICE: It seems we have made a mistake in our paperwork. The previous target for termination was chosen based on race, sex, and/or religious beliefs, which is against company policy. Please cancel previous termination request."
pick_target()
return 0
diff --git a/code/unused/gamemodes/ruby.dm b/code/unused/gamemodes/ruby.dm
index 5636bcb575b..7cd37202de8 100644
--- a/code/unused/gamemodes/ruby.dm
+++ b/code/unused/gamemodes/ruby.dm
@@ -29,7 +29,7 @@
if(istype(ruby))
abomination.special_role = "abomination"
if(wizardstart.len == 0)
- wizard.current << "\red A starting location for you could not be found, please report this bug!"
+ wizard.current << "A starting location for you could not be found, please report this bug!"
else
var/starting_loc = pick(wizardstart)
wizard.current.loc = starting_loc
@@ -74,9 +74,9 @@
var/count = 1
for(var/datum/objective/objective in traitor.objectives)
if(objective.check_completion())
- world << "Objective #[count]: [objective.explanation_text] \green Success"
+ world << "Objective #[count]: [objective.explanation_text] Success"
else
- world << "Objective #[count]: [objective.explanation_text] \red Failed"
+ world << "Objective #[count]: [objective.explanation_text] Failed"
traitorwin = 0
count++
@@ -147,7 +147,7 @@
var/datum/game_mode/ruby/rmode = ticker.mode
rmode.killed.Add(H)
ticker.mode:respawns += 1
- var/fluffmessage = pick("\red [usr] rips the flesh from [H]'s corpse and plucks their eyes from their sockets!", "\red [usr] does unspeakable things to [H]'s corpse!", "\red [usr] binds [H]'s corpse with their own entrails!")
+ var/fluffmessage = pick("[usr] rips the flesh from [H]'s corpse and plucks their eyes from their sockets!", "[usr] does unspeakable things to [H]'s corpse!", "[usr] binds [H]'s corpse with their own entrails!")
usr.visible_message(fluffmessage)
// play sound
@@ -192,7 +192,7 @@
//if(!H.client) continue
candidates.Add(H)
- usr.visible_message(text("\red [usr]'s flesh ripples and parts, revealing dozens of eyes poking from its surface. They all glance wildly around for a few moments before receding again."))
+ usr.visible_message(text("[usr]'s flesh ripples and parts, revealing dozens of eyes poking from its surface. They all glance wildly around for a few moments before receding again."))
var/mob/living/carbon/human/H = pick(candidates)
@@ -250,7 +250,7 @@
set category = "Abomination"
set desc = ""
- usr.visible_message(text("\red [usr]'s form warbles and distorts before settling back into its grotesque shape once more."))
+ usr.visible_message(text("[usr]'s form warbles and distorts before settling back into its grotesque shape once more."))
// Play a random spooky sound - maybe cause some visual, non-mechanical effects to appear at random for a few seconds.
src.verbs -= /client/proc/howl
diff --git a/code/unused/goonheist/genetics2/BioEffectsVerbs.dm b/code/unused/goonheist/genetics2/BioEffectsVerbs.dm
index 4f3e6f5b2fb..4464fcb3af6 100644
--- a/code/unused/goonheist/genetics2/BioEffectsVerbs.dm
+++ b/code/unused/goonheist/genetics2/BioEffectsVerbs.dm
@@ -27,7 +27,7 @@
set desc = "Drops the bodytemperature of another person. Currently on cooldown, ironically enough."
set category = "Mutant Abilities"
- usr << "\red Your cryokinetic ability is recharging."
+ usr << "Your cryokinetic ability is recharging."
/proc/bioproc_cryokinesis(var/mob/living/carbon/C in view())
set name = "Cryokinesis"
@@ -35,7 +35,7 @@
set category = "Mutant Abilities"
if(!iscarbon(C))
- usr << "\red This will only work on normal organic beings."
+ usr << "This will only work on normal organic beings."
return
if(!can_act(usr)) return
@@ -50,7 +50,7 @@
C.bodytemperature = -1500
if(C.burning) C.burning = 0
- C.visible_message("\red A cloud of fine ice crystals engulfs [C]!")
+ C.visible_message("A cloud of fine ice crystals engulfs [C]!")
playsound(usr.loc, 'bamf.ogg', 50, 0)
@@ -103,7 +103,7 @@
set desc = "Eat just about anything! Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Matter Eating ability is recharging."
+ usr << "Your Matter Eating ability is recharging."
/proc/bioproc_mattereater()
set name = "Eat"
@@ -137,7 +137,7 @@
usr.verbs += /proc/bioproc_mattereater
usr.verbs -= /proc/bioproc_mattereater_cd
- usr.visible_message("\red [usr] eats [the_item].")
+ usr.visible_message("[usr] eats [the_item].")
playsound(usr.loc, 'eatfood.ogg', 50, 0)
qdel(the_item)
@@ -185,7 +185,7 @@
set desc = "Leap great distances! Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Jumping ability is recharging."
+ usr << "Your Jumping ability is recharging."
/proc/bioproc_jumpy()
set name = "Jump"
@@ -194,7 +194,7 @@
if(!can_act(usr)) return
if (istype(usr.loc,/mob/))
- usr << "\red You can't jump right now!"
+ usr << "You can't jump right now!"
return
usr.verbs -= /proc/bioproc_jumpy
@@ -205,7 +205,7 @@
usr.verbs -= /proc/bioproc_jumpy_cd
if (istype(usr.loc,/turf/))
- usr.visible_message("\red [usr.name] takes a huge leap!")
+ usr.visible_message("[usr.name] takes a huge leap!")
playsound(usr.loc, 'thudswoosh.ogg', 50, 1)
var/prevLayer = usr.layer
usr.layer = 15
@@ -217,7 +217,7 @@
sleep(1)
if (usr:bioHolder.HasEffect("fat") && prob(66))
- usr.visible_message("\red [usr.name] crashes due to their heavy weight!")
+ usr.visible_message("[usr.name] crashes due to their heavy weight!")
playsound(usr.loc, 'zhit.wav', 50, 1)
usr.weakened += 10
usr.stunned += 5
@@ -226,10 +226,10 @@
if (istype(usr.loc,/obj/))
var/obj/container = usr.loc
- usr << "\red You leap and slam your head against the inside of [container]! Ouch!"
+ usr << "You leap and slam your head against the inside of [container]! Ouch!"
usr.paralysis += 3
usr.weakened += 5
- container.visible_message("\red [usr.loc] emits a loud thump and rattles a bit.")
+ container.visible_message("[usr.loc] emits a loud thump and rattles a bit.")
playsound(usr.loc, 'bang.ogg', 50, 1)
var/wiggle = 6
while(wiggle > 0)
@@ -274,7 +274,7 @@
set desc = "Mimic the appearance of others! Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Polymorphing ability is recharging."
+ usr << "Your Polymorphing ability is recharging."
/proc/bioproc_polymorphism(var/mob/M in view())
set name = "Polymorph"
@@ -282,7 +282,7 @@
set category = "Mutant Abilities"
if(!ishuman(M))
- usr << "\red You can only change your appearance to that of another human."
+ usr << "You can only change your appearance to that of another human."
return
if(!ishuman(usr)) return
@@ -298,7 +298,7 @@
playsound(usr.loc, 'blobattack.ogg', 50, 1)
- usr.visible_message("\red [usr]'s body shifts and contorts.")
+ usr.visible_message("[usr]'s body shifts and contorts.")
spawn(10)
if(M && usr)
@@ -339,18 +339,18 @@
set category = "Mutant Abilities"
if(!iscarbon(M))
- usr << "\red You may only use this on other organic beings."
+ usr << "You may only use this on other organic beings."
return
if(!can_act(usr))
return
if (M:bioHolder.HasEffect("psy_resist"))
- usr << "\red You can't contact [M.name]'s mind at all!"
+ usr << "You can't contact [M.name]'s mind at all!"
return
if(!M.client || M.stat)
- M << "\red You can't seem to get through to [M.name] mentally."
+ M << "You can't seem to get through to [M.name] mentally."
return
var/msg = input(usr, "Message to [M.name]:","Telepathy")
@@ -397,24 +397,24 @@
set category = "Mutant Abilities"
if(!iscarbon(M))
- usr << "\red You may only use this on other organic beings."
+ usr << "You may only use this on other organic beings."
return
if(!can_act(usr))
return
if (M:bioHolder.HasEffect("psy_resist"))
- usr << "\red You can't see into [M.name]'s mind at all!"
+ usr << "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."
+ usr << "[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."
+ usr << "[M.name] is dying, and their thoughts are too scrambled to read."
return
- usr << "\blue Mind Reading of [M.name]:"
+ usr << "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",
@@ -429,43 +429,43 @@
switch(pain_condition)
if (81 to INFINITY)
- usr << "\blue Condition: [M.name] feels good."
+ usr << "Condition: [M.name] feels good."
if (61 to 80)
- usr << "\blue Condition: [M.name] is suffering mild pain."
+ usr << "Condition: [M.name] is suffering mild pain."
if (41 to 60)
- usr << "\blue Condition: [M.name] is suffering significant pain."
+ usr << "Condition: [M.name] is suffering significant pain."
if (21 to 40)
- usr << "\blue Condition: [M.name] is suffering severe pain."
+ usr << "Condition: [M.name] is suffering severe pain."
else
- usr << "\blue Condition: [M.name] is suffering excruciating pain."
+ usr << "Condition: [M.name] is suffering excruciating pain."
thoughts = "haunted by their own mortality"
switch(M.a_intent)
if ("help")
- usr << "\blue Mood: You sense benevolent thoughts from [M.name]."
+ usr << "Mood: You sense benevolent thoughts from [M.name]."
if ("disarm")
- usr << "\blue Mood: You sense cautious thoughts from [M.name]."
+ usr << "Mood: You sense cautious thoughts from [M.name]."
if ("grab")
- usr << "\blue Mood: You sense hostile thoughts from [M.name]."
+ usr << "Mood: You sense hostile thoughts from [M.name]."
if ("harm")
- usr << "\blue Mood: You sense cruel thoughts from [M.name]."
+ usr << "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]."
+ usr << "Mood: You sense strange thoughts from [M.name]."
if (istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- usr << "\blue Numbers: You sense the number [H.pin] is important to [M.name]."
- usr << "\blue Thoughts: [M.name] is currently [thoughts]."
+ usr << "Numbers: You sense the number [H.pin] is important to [M.name]."
+ usr << "Thoughts: [M.name] is currently [thoughts]."
if (M:bioHolder.HasEffect("empath"))
- M << "\red You sense [usr.name] reading your mind."
+ M << "You sense [usr.name] reading your mind."
else if (prob(5) || M:bioHolder.HasEffect("training_chaplain"))
- M << "\red You sense someone intruding upon your thoughts..."
+ M << "You sense someone intruding upon your thoughts..."
return
////////////////////////////////////////////////////////////////////////
@@ -498,7 +498,7 @@
set desc = "Wreath yourself in burning flames. Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Immolation ability is recharging."
+ usr << "Your Immolation ability is recharging."
/proc/bioproc_immolate()
set name = "Immolate"
@@ -511,7 +511,7 @@
var/mob/living/L = usr
L.set_burning(100)
- L.visible_message("\red [L.name] suddenly bursts into flames!")
+ L.visible_message("[L.name] suddenly bursts into flames!")
playsound(L.loc, 'mag_fireballlaunch.ogg', 50, 0)
usr.verbs -= /proc/bioproc_immolate
@@ -557,7 +557,7 @@
if (istype(usr,/mob/living/carbon/human/))
var/mob/living/carbon/human/H = usr
- H.visible_message("\red [H.name]'s flesh melts right off! Holy shit!")
+ H.visible_message("[H.name]'s flesh melts right off! Holy shit!")
if (H.gender == "female")
playsound(H.loc, 'female_fallscream.ogg', 50, 0)
else
@@ -569,7 +569,7 @@
H.decomp_stage = 4
H.brain_op_stage = 4
else
- usr.visible_message("\red [usr.name] melts into a pile of bloody viscera!")
+ usr.visible_message("[usr.name] melts into a pile of bloody viscera!")
usr.gib(1)
return
@@ -605,7 +605,7 @@
set desc = "Unleash a gigantic fart! Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Super Fart ability is recharging."
+ usr << "Your Super Fart ability is recharging."
/proc/bioproc_superfart()
set name = "Super Fart"
@@ -618,21 +618,21 @@
var/mob/living/L = usr
if (L.stat || !can_act(L))
- L << "\red You can't do that while incapacitated."
+ L << "You can't do that while incapacitated."
return
- L.visible_message("\red [L.name] hunches down and grits their teeth!")
+ L.visible_message("[L.name] hunches down and grits their teeth!")
usr.verbs -= /proc/bioproc_superfart
usr.verbs += /proc/bioproc_superfart_cd
sleep(30)
if (can_act(L))
- L.visible_message("\red [L.name] unleashes a [pick("tremendous","gigantic","colossal")] fart!")
+ L.visible_message("[L.name] unleashes a [pick("tremendous","gigantic","colossal")] fart!")
playsound(L.loc, 'superfart.ogg', 50, 0)
for(var/mob/living/V in range(get_turf(L),6))
shake_camera(V,10,5)
if (V == L)
continue
- V << "\red You are sent flying!"
+ V << "You are sent flying!"
V.weakened += 5 // why the hell was this set to 12 christ
step_away(V,get_turf(L),15)
step_away(V,get_turf(L),15)
@@ -641,7 +641,7 @@
for(var/turf/T in view(get_turf(L),2))
new /obj/effects/fart_cloud(T,L)
else
- L << "\red You were interrupted and couldn't fart! Rude!"
+ L << "You were interrupted and couldn't fart! Rude!"
usr.verbs += /proc/bioproc_superfart
usr.verbs -= /proc/bioproc_superfart_cd
return
@@ -684,7 +684,7 @@
set desc = "Shoot lasers from your eyes. Currently on cooldown."
set category = "Mutant Abilities"
- usr << "\red Your Eye Beams ability is recharging."
+ usr << "Your Eye Beams ability is recharging."
/proc/bioproc_eyebeams()
set name = "Eye Beams"
@@ -703,7 +703,7 @@
if (!istype(T,/turf/))
return
- L.visible_message("\red [L.name] shoots eye beams!")
+ L.visible_message("[L.name] shoots eye beams!")
var/datum/projectile/laser/eyebeams/PJ = new /datum/projectile/laser/eyebeams
var/obj/projectile/P = unpool("projectile", /obj/projectile)
if(!P) return
diff --git a/code/unused/goonheist/genetics2/bioEffects.dm b/code/unused/goonheist/genetics2/bioEffects.dm
index 8e056a5ac88..c47a6a4433e 100644
--- a/code/unused/goonheist/genetics2/bioEffects.dm
+++ b/code/unused/goonheist/genetics2/bioEffects.dm
@@ -75,7 +75,7 @@
owner.radiation = max(owner.radiation, 20)
for(var/mob/living/L in range(1, owner))
if(L == owner) continue
- L << "\red You are enveloped by a soft green glow emanating from [owner]."
+ L << "You are enveloped by a soft green glow emanating from [owner]."
L.radiation += 5
return
@@ -170,7 +170,7 @@
OnLife()
if (prob(1) && owner:paralysis < 1)
- owner:visible_message("\red [owner] starts having a seizure!", "\red You have a seizure!")
+ owner:visible_message("[owner] starts having a seizure!", "You have a seizure!")
owner:paralysis = max(2, owner:paralysis)
owner:Jitter(100)
return
@@ -343,9 +343,9 @@
owner.bioHolder.AddEffect("thermal_resist",2)
owner.bioHolder.RemoveEffect("fire_resist")
owner.bioHolder.RemoveEffect("cold_resist")
- owner << "\blue Your thermal resistances merge into one!"
+ owner << "Your thermal resistances merge into one!"
else
- owner << "\blue You feel cold."
+ owner << "You feel cold."
return
OnMobDraw()
@@ -368,9 +368,9 @@
owner.bioHolder.AddEffect("thermal_resist",1)
owner.bioHolder.RemoveEffect("fire_resist")
owner.bioHolder.RemoveEffect("cold_resist")
- owner << "\blue Your thermal resistances merge into one!"
+ owner << "Your thermal resistances merge into one!"
else
- owner << "\blue You feel warm."
+ owner << "You feel warm."
return
OnMobDraw()
@@ -390,10 +390,10 @@
OnRemove()
if (src.variant == 1)
owner.bioHolder.AddEffect("cold_resist")
- owner << "\red You feel warm."
+ owner << "You feel warm."
else if (src.variant == 2)
owner.bioHolder.AddEffect("fire_resist")
- owner << "\red You feel cold."
+ owner << "You feel cold."
return
OnMobDraw()
@@ -527,7 +527,7 @@
OnLife()
if (owner:health <= 25)
timeLeft = 1
- owner << "\red You suddenly feel very weak."
+ owner << "You suddenly feel very weak."
owner:weakened = 3
owner:emote("collapse")
@@ -634,9 +634,9 @@
if (C == owner)
continue
if (src.variant == 2)
- C << "\red [src.personalized_stink]"
+ C << "[src.personalized_stink]"
else
- C << "\red [stinkString()]"
+ C << "[stinkString()]"
/datum/bioEffect/consumed
name = "Consumed"
diff --git a/code/unused/goonheist/genetics2/bioEffects_hidden.dm b/code/unused/goonheist/genetics2/bioEffects_hidden.dm
index 7113b39ab48..4b9ae88d167 100644
--- a/code/unused/goonheist/genetics2/bioEffects_hidden.dm
+++ b/code/unused/goonheist/genetics2/bioEffects_hidden.dm
@@ -144,7 +144,7 @@
OnAdd()
owner:mutantrace = new /datum/mutantrace/premature_clone(owner)
if (!istype(owner.loc, /obj/machinery/clonepod))
- owner << "\red Your genes feel...disorderly."
+ owner << "Your genes feel...disorderly."
return
OnRemove()
@@ -158,12 +158,12 @@
if (outOfPod)
if (prob(6))
- owner.visible_message("\red [owner.name] suddenly and violently vomits!")
+ owner.visible_message("[owner.name] suddenly and violently vomits!")
playsound(owner.loc, 'splat.ogg', 50, 1)
new /obj/decal/cleanable/vomit(owner.loc)
else if (prob(2))
- owner.visible_message("\red [owner.name] vomits blood!")
+ owner.visible_message("[owner.name] vomits blood!")
playsound(owner.loc, 'splat.ogg', 50, 1)
new /obj/decal/cleanable/blood(owner.loc)
random_brute_damage(owner, rand(5,8))
diff --git a/code/unused/goonheist/genetics2/bioHolder.dm b/code/unused/goonheist/genetics2/bioHolder.dm
index efaeaaeecb5..9c9b0d15d05 100644
--- a/code/unused/goonheist/genetics2/bioHolder.dm
+++ b/code/unused/goonheist/genetics2/bioHolder.dm
@@ -342,7 +342,7 @@ var/list/bioEffectList = null
newEffect.owner = owner
newEffect.holder = src
newEffect.OnAdd()
- if(lentext(newEffect.msgGain) > 0) owner << "\blue [newEffect.msgGain]"
+ if(lentext(newEffect.msgGain) > 0) owner << "[newEffect.msgGain]"
mobAppearance.UpdateMob()
return newEffect
@@ -352,7 +352,7 @@ var/list/bioEffectList = null
for(var/datum/bioEffect/D in effects)
if(lowertext(D.id) == lowertext(id))
D.OnRemove()
- if(lentext(D.msgLose) > 0) owner << "\red [D.msgLose]"
+ if(lentext(D.msgLose) > 0) owner << "[D.msgLose]"
return effects.Remove(D)
return 0
diff --git a/code/unused/goonheist/genetics2/geneticsItems.dm b/code/unused/goonheist/genetics2/geneticsItems.dm
index 21484ddc0e6..b8e02842f4d 100644
--- a/code/unused/goonheist/genetics2/geneticsItems.dm
+++ b/code/unused/goonheist/genetics2/geneticsItems.dm
@@ -18,15 +18,15 @@
return
if(M == user)
- user.visible_message("\red [user.name] injects \himself with [src]!")
+ user.visible_message("[user.name] injects \himself with [src]!")
src.injected(user,user)
else
- user.visible_message("\red [user.name] is trying to inject [M.name] with [src]!")
+ user.visible_message("[user.name] is trying to inject [M.name] with [src]!")
if (do_mob(user,M,30))
- user.visible_message("\red [user.name] injects [M.name] with [src].")
+ user.visible_message("[user.name] injects [M.name] with [src].")
src.injected(user,M)
else
- user << "\red You failed to inject [M.name]."
+ user << "You failed to inject [M.name]."
if(src.uses < 1)
src.icon_state = "b0"
@@ -53,7 +53,7 @@
if (!istype(ID,/datum/appearanceHolder/))
return
- target << "\red Your body changes! You feel completely different!"
+ target << "Your body changes! You feel completely different!"
ID.gender = pick("male","female")
if(ID.gender == "female")
target.real_name = pick(first_names_female)
diff --git a/code/unused/goonheist/genetics2/geneticsMachines.dm b/code/unused/goonheist/genetics2/geneticsMachines.dm
index d02cbc298bb..ec606cd5443 100644
--- a/code/unused/goonheist/genetics2/geneticsMachines.dm
+++ b/code/unused/goonheist/genetics2/geneticsMachines.dm
@@ -67,7 +67,7 @@ var/list/genetics_computers = list()
if((istype(W, /obj/item/screwdriver)) && ((src.stat & BROKEN) || !src.scanner))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/computerframe/A = new /obj/computerframe( src.loc )
new /obj/item/shard( src.loc )
var/obj/item/circuitboard/genetics/M = new /obj/item/circuitboard/genetics( A )
@@ -298,10 +298,10 @@ var/list/genetics_computers = list()
var/price = genResearch.injector_cost
if (genResearch.researchMaterial < price)
- usr << "\red SCANNER ALERT: Not enough research materials to manufacture an injector."
+ usr << "SCANNER ALERT: Not enough research materials to manufacture an injector."
return
if (!E.can_make_injector)
- usr << "\red SCANNER ALERT: Cannot make an injector using this gene."
+ usr << "SCANNER ALERT: Cannot make an injector using this gene."
return
src.equipment_cooldown("injector")
@@ -432,12 +432,12 @@ var/list/genetics_computers = list()
if(href_list["setseq1"])
var/datum/basePair/bp = E.dnaBlocks.blockListCurr[text2num(href_list["setseq1"])]
if (bp.marker == "locked")
- usr << "\red SCANNER ERROR: Cannot alter encrypted base pairs. Click lock to attempt decryption."
+ usr << "SCANNER ERROR: Cannot alter encrypted base pairs. Click lock to attempt decryption."
return
else if(href_list["setseq2"])
var/datum/basePair/bp = E.dnaBlocks.blockListCurr[text2num(href_list["setseq2"])]
if (bp.marker == "locked")
- usr << "\red SCANNER ERROR: Cannot alter encrypted base pairs. Click lock to attempt decryption."
+ usr << "SCANNER ERROR: Cannot alter encrypted base pairs. Click lock to attempt decryption."
return
var/input = input(usr, "Select:", "GeneTek") as null|anything in list("G", "T", "C", "A", "Swap Pair")
@@ -476,30 +476,30 @@ var/list/genetics_computers = list()
var/datum/basePair/bp = E.dnaBlocks.blockListCurr[text2num(href_list["themark"])]
if(bp.marker == "locked")
- usr << "\blue SCANNER ALERT: Encryption is a [E.lockedDiff]-character code."
+ usr << "SCANNER ALERT: Encryption is a [E.lockedDiff]-character code."
var/characters = ""
for(var/X in E.lockedChars)
characters += "[X] "
- usr << "\blue Possible characters in this code: [characters]"
+ usr << "Possible characters in this code: [characters]"
var/code = input("Enter decryption code.","Genetic Decryption") as null|text
if(!code)
return
if(lentext(code) != lentext(bp.lockcode))
- usr << "\red SCANNER ALERT: Invalid code length."
+ usr << "SCANNER ALERT: Invalid code length."
return
if (code == bp.lockcode)
var/datum/basePair/bpc = E.dnaBlocks.blockList[text2num(href_list["themark"])]
bp.bpp1 = bpc.bpp1
bp.bpp2 = bpc.bpp2
bp.marker = "green"
- usr << "\blue SCANNER ALERT: Decryption successful. Base pair unlocked."
+ usr << "SCANNER ALERT: Decryption successful. Base pair unlocked."
else
if (bp.locktries <= 1)
bp.lockcode = ""
for (var/c = E.lockedDiff, c > 0, c--)
bp.lockcode += pick(E.lockedChars)
bp.locktries = E.lockedTries
- usr << "\red SCANNER ALERT: Decryption failed. Base pair encryption code has been changed."
+ usr << "SCANNER ALERT: Decryption failed. Base pair encryption code has been changed."
else
bp.locktries--
var/length = lentext(bp.lockcode)
@@ -526,10 +526,10 @@ var/list/genetics_computers = list()
if (lockcode_list[current] <= 0)
lockcode_list -= current
- usr << "\red SCANNER ALERT: Decryption failed."
- usr << "\red [correct_char]/[length] correct characters in entered code."
- usr << "\red [correct_full]/[length] characters in correct position."
- usr << "\red Attempts remaining: [bp.locktries]."
+ usr << "SCANNER ALERT: Decryption failed."
+ usr << "[correct_char]/[length] correct characters in entered code."
+ usr << "[correct_full]/[length] characters in correct position."
+ usr << "Attempts remaining: [bp.locktries]."
else
switch(bp.marker)
if("green")
@@ -580,7 +580,7 @@ var/list/genetics_computers = list()
if (sample_sanity_check(sample)) return
if (!genResearch.addResearch(E))
- usr << "\red SCANNER ERROR: Unable to begin research."
+ usr << "SCANNER ERROR: Unable to begin research."
else
usr << "SCANNER: Research initiated successfully."
@@ -596,7 +596,7 @@ var/list/genetics_computers = list()
usr << "SCANNER: Research initiated successfully."
usr << link("byond://?src=\ref[src];menu=resopen")
else
- usr << "\red SCANNER ERROR: Unable to begin research."
+ usr << "SCANNER ERROR: Unable to begin research."
return
else if(href_list["copyself"])
diff --git a/code/unused/goonheist/genetics2/geneticsScanner.dm b/code/unused/goonheist/genetics2/geneticsScanner.dm
index 16e9f686422..0039a063467 100644
--- a/code/unused/goonheist/genetics2/geneticsScanner.dm
+++ b/code/unused/goonheist/genetics2/geneticsScanner.dm
@@ -112,18 +112,18 @@ var/list/genescanner_addresses = list()
set src in oview(1)
if(!iscarbon(usr))
- usr << "\red The scanner supports only carbon based lifeforms."
+ usr << "The scanner supports only carbon based lifeforms."
return
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
if (src.occupant)
- usr << "\blue The scanner is already occupied!"
+ usr << "The scanner is already occupied!"
return
if (src.locked)
- usr << "\red You need to unlock the scanner first."
+ usr << "You need to unlock the scanner first."
return
usr.pulling = null
@@ -144,15 +144,15 @@ var/list/genescanner_addresses = list()
return
if (src.occupant)
- user << "\red The scanner is already occupied!"
+ user << "The scanner is already occupied!"
return
if (src.locked)
- usr << "\red You need to unlock the scanner first."
+ usr << "You need to unlock the scanner first."
return
if(!iscarbon(G.affecting))
- user << "\blue The scanner supports only carbon based lifeforms."
+ user << "The scanner supports only carbon based lifeforms."
return
var/mob/M = G.affecting
@@ -174,10 +174,10 @@ var/list/genescanner_addresses = list()
set name = "Eject Occupant"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
if (src.locked)
- usr << "\red The scanner door is locked!"
+ usr << "The scanner door is locked!"
return
src.go_out()
@@ -188,10 +188,10 @@ var/list/genescanner_addresses = list()
set name = "Scanner Lock"
set src in oview(1)
- if (usr.stat != 0)
+ if (usr.stat != 0 || (usr.status_flags & FAKEDEATH))
return
if (usr == src.occupant)
- usr << "\red You can't reach the scanner lock from the inside."
+ usr << "You can't reach the scanner lock from the inside."
return
playsound(src.loc, 'click.ogg', 50, 1)
@@ -199,12 +199,12 @@ var/list/genescanner_addresses = list()
src.locked = 0
usr.visible_message("[usr] unlocks the scanner.")
if (src.occupant)
- src.occupant << "\red You hear the scanner's lock slide out of place."
+ src.occupant << "You hear the scanner's lock slide out of place."
else
src.locked = 1
usr.visible_message("[usr] locks the scanner.")
if (src.occupant)
- src.occupant << "\red You hear the scanner's lock click into place."
+ src.occupant << "You hear the scanner's lock click into place."
proc/go_out()
if (!src.occupant)
diff --git a/code/unused/hivebot/examine.dm b/code/unused/hivebot/examine.dm
index cd3eed496cc..9a4319e25be 100644
--- a/code/unused/hivebot/examine.dm
+++ b/code/unused/hivebot/examine.dm
@@ -1,17 +1,17 @@
/mob/living/silicon/hivebot/examine(mob/user)
- user << "\blue *---------*"
- user << text("\blue This is \icon[src] [src.name]!")
+ user << "*---------*"
+ user << text("This is \icon[src] [src.name]!")
if (src.stat == 2)
- user << text("\red [src.name] is powered-down.")
+ user << text("[src.name] is powered-down.")
if (src.getBruteLoss())
if (src.getBruteLoss() < 75)
- user << text("\red [src.name] looks slightly dented")
+ user << text("[src.name] looks slightly dented")
else
- user << text("\red [src.name] looks severely dented!")
+ user << text("[src.name] looks severely dented!")
if (src.getFireLoss())
if (src.getFireLoss() < 75)
- user << text("\red [src.name] looks slightly burnt!")
+ user << text("[src.name] looks slightly burnt!")
else
- user << text("\red [src.name] looks severely burnt!")
+ user << text("[src.name] looks severely burnt!")
if (src.stat == 1)
- user << text("\red [src.name] doesn't seem to be responding.")
+ user << text("[src.name] doesn't seem to be responding.")
diff --git a/code/unused/hivebot/hivebot.dm b/code/unused/hivebot/hivebot.dm
index 505d191d6c2..d5f5dad128b 100644
--- a/code/unused/hivebot/hivebot.dm
+++ b/code/unused/hivebot/hivebot.dm
@@ -1,5 +1,5 @@
/mob/living/silicon/hivebot/New(loc,mainframe)
- src << "\blue Your icons have been generated!"
+ src << "Your icons have been generated!"
updateicon()
if(mainframe)
@@ -84,7 +84,7 @@
/mob/living/silicon/hivebot/meteorhit(obj/O as obj)
for(var/mob/M in viewers(src, null))
- M.show_message(text("\red [src] has been hit by [O]"), 1)
+ M.show_message(text("[src] has been hit by [O]"), 1)
//Foreach goto(19)
if (src.health > 0)
src.adjustBruteLoss(30)
@@ -159,7 +159,7 @@
if(prob(20))
for(var/mob/M in viewers(src, null))
if(M.client)
- M << M << "\red [src] fails to push [tmob]'s fat ass out of the way."
+ M << M << "[src] fails to push [tmob]'s fat ass out of the way."
src.now_pushing = 0
//src.unlock_medal("That's No Moon, That's A Gourmand!", 1)
return*/
@@ -184,7 +184,7 @@
src.updatehealth()
src.add_fingerprint(user)
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [user] has fixed some of the dents on [src]!"), 1)
+ O.show_message(text("[user] has fixed some of the dents on [src]!"), 1)
else
user << "Need more welding fuel!"
return
@@ -206,7 +206,7 @@
G.synch()
playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
+ O.show_message(text("[] has grabbed [] passively!", M, src), 1)
else if (M.a_intent == "hurt")
var/damage = rand(5, 10)
@@ -220,7 +220,7 @@
*/
playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has slashed at []!", M, src), 1)
+ O.show_message(text("[] has slashed at []!", M, src), 1)
if(prob(8))
flick("noise", src.flash)
src.adjustBruteLoss(damage)
@@ -228,7 +228,7 @@
else
playsound(src.loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] took a swipe at []!", M, src), 1)
+ O.show_message(text("[] took a swipe at []!", M, src), 1)
return
else if (M.a_intent == "disarm")
@@ -240,11 +240,11 @@
spawn(5) step(src,get_dir(M,src))
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] has pushed back []!", M, src), 1)
+ O.show_message(text("[] has pushed back []!", M, src), 1)
else
playsound(src.loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [] attempted to push back []!", M, src), 1)
+ O.show_message(text("[] attempted to push back []!", M, src), 1)
return
/mob/living/silicon/hivebot/attack_hand(mob/user)
@@ -464,7 +464,7 @@ Frequency:
var/obj/item/weapon/grab/G = pick(M.grabbed_by)
if (istype(G, /obj/item/weapon/grab))
for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [G.affecting] has been pulled from [G.assailant]'s grip by [src]"), 1)
+ O.show_message(text("[G.affecting] has been pulled from [G.assailant]'s grip by [src]"), 1)
del(G)
else
ok = 0
@@ -495,5 +495,5 @@ Frequency:
if(mainframe)
mainframe.return_to(src)
else
- src << "\red You lack a dedicated mainframe!"
+ src << "You lack a dedicated mainframe!"
return
\ No newline at end of file
diff --git a/code/unused/hivebot/mainframe.dm b/code/unused/hivebot/mainframe.dm
index 821da0351e7..379c639537d 100644
--- a/code/unused/hivebot/mainframe.dm
+++ b/code/unused/hivebot/mainframe.dm
@@ -86,7 +86,7 @@
/mob/living/silicon/hive_mainframe/verb/deploy_to()
- if(usr.stat == 2)
+ if(usr.stat == 2 || (usr.status_flags & FAKEDEATH))
usr << "You can't deploy because you are dead!"
return
diff --git a/code/unused/mining/spaceship_builder_unused.dm b/code/unused/mining/spaceship_builder_unused.dm
index 42b4f4e3af1..8b1f8e497ba 100644
--- a/code/unused/mining/spaceship_builder_unused.dm
+++ b/code/unused/mining/spaceship_builder_unused.dm
@@ -121,13 +121,13 @@
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
- usr << "\red You don't have the dexterity to do this!"
+ usr << "You don't have the dexterity to do this!"
return
if (istype(W, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = W
- user << "\blue You insert all the metal into the machine."
+ user << "You insert all the metal into the machine."
metal_amount += M.amount * 100
del(M)
diff --git a/code/unused/new_year.dm b/code/unused/new_year.dm
index 9dba4f3e59c..29920597ac9 100644
--- a/code/unused/new_year.dm
+++ b/code/unused/new_year.dm
@@ -61,7 +61,7 @@
/obj/item/weapon/firbang/afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
if (user.get_active_hand() == src)
if ((M_CLUMSY in usr.mutations) && prob(50))
- user << "\red Huh? How does this thing work?!"
+ user << "Huh? How does this thing work?!"
src.state = 1
src.icon_state = "flashbang1"
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
@@ -69,7 +69,7 @@
prime()
return
else if (!( src.state ))
- user << "\red You prime the [src]! [det_time/10] seconds!"
+ user << "You prime the [src]! [det_time/10] seconds!"
src.state = 1
src.icon_state = "flashbang1"
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
@@ -109,12 +109,12 @@
/obj/item/weapon/firbang/attack_self(mob/user as mob)
if (!src.state)
if (M_CLUMSY in user.mutations)
- user << "\red Huh? How does this thing work?!"
+ user << "Huh? How does this thing work?!"
spawn( 5 )
prime()
return
else
- user << "\red You prime the [src]! [det_time/10] seconds!"
+ user << "You prime the [src]! [det_time/10] seconds!"
src.state = 1
src.icon_state = "flashbang1"
add_fingerprint(user)
diff --git a/code/unused/pda2/pda2.dm b/code/unused/pda2/pda2.dm
index a6eeec456f2..2c49aa45c2e 100644
--- a/code/unused/pda2/pda2.dm
+++ b/code/unused/pda2/pda2.dm
@@ -156,14 +156,14 @@
if (istype(C, /obj/item/weapon/disk/data/cartridge) && isnull(src.cartridge))
user.drop_item()
C.loc = src
- user << "\blue You insert [C] into [src]."
+ user << "You insert [C] into [src]."
src.cartridge = C
src.updateSelfDialog()
else if (istype(C, /obj/item/weapon/card/id) && !src.owner && C:registered_name)
src.owner = C:registered_name
src.name = "PDA-[src.owner]"
- user << "\blue Card scanned."
+ user << "Card scanned."
src.updateSelfDialog()
/obj/item/device/pda2/receive_signal(datum/signal/signal)
@@ -191,7 +191,7 @@
scan_dat = src.scan_program.scan_atom(A)
if(scan_dat)
- A.visible_message("\red [user] has scanned [A]!")
+ A.visible_message("[user] has scanned [A]!")
user.show_message(scan_dat, 1)
return
diff --git a/code/unused/pda2/scanners.dm b/code/unused/pda2/scanners.dm
index 499b8679542..361750caaf4 100644
--- a/code/unused/pda2/scanners.dm
+++ b/code/unused/pda2/scanners.dm
@@ -36,13 +36,13 @@
if(!istype(C))
return
- var/dat = "\blue Analyzing Results for [C]:\n"
- dat += "\blue \t Overall Status: [C.stat > 1 ? "dead" : "[C.health]% healthy"]\n"
- dat += "\blue \t Damage Specifics: [C.getOxyLoss() > 50 ? "\red" : "\blue"][C.getOxyLoss()]-[C.getToxLoss() > 50 ? "\red" : "\blue"][C.getToxLoss()]-[C.getFireLoss() > 50 ? "\red" : "\blue"][C.getFireLoss()]-[C.getBruteLoss() > 50 ? "\red" : "\blue"][C.getBruteLoss()]\n"
- dat += "\blue \t Key: Suffocation/Toxin/Burns/Brute\n"
- dat += "\blue \t Body Temperature: [C.bodytemperature-T0C]°C ([C.bodytemperature*1.8-459.67]°F)"
+ var/dat = "Analyzing Results for [C]:\n"
+ dat += "\t Overall Status: [C.stat > 1 ? "dead" : "[C.health]% healthy"]\n"
+ dat += "\t Damage Specifics: [C.getOxyLoss() > 50 ? "" : ""][C.getOxyLoss()]-[C.getToxLoss() > 50 ? "" : ""][C.getToxLoss()]-[C.getFireLoss() > 50 ? "" : ""][C.getFireLoss()]-[C.getBruteLoss() > 50 ? "" : ""][C.getBruteLoss()]\n"
+ dat += "\t Key: Suffocation/Toxin/Burns/Brute\n"
+ dat += "\t Body Temperature: [C.bodytemperature-T0C]°C ([C.bodytemperature*1.8-459.67]°F)"
if(C.virus)
- dat += "\red \nWarning Virus Detected.\nName: [C.virus.name].\nType: [C.virus.spread].\nStage: [C.virus.stage]/[C.virus.max_stages].\nPossible Cure: [C.virus.cure]"
+ dat += "\nWarning Virus Detected.\nName: [C.virus.name].\nType: [C.virus.spread].\nStage: [C.virus.stage]/[C.virus.max_stages].\nPossible Cure: [C.virus.cure]"
return dat
@@ -59,23 +59,23 @@
if(istype(A,/mob/living/carbon/human))
var/mob/living/carbon/human/H = A
if (!istype(H.dna, /datum/dna) || !isnull(H.gloves))
- dat += "\blue Unable to scan [A]'s fingerprints.\n"
+ dat += "Unable to scan [A]'s fingerprints.\n"
else
- dat += "\blue [H]'s Fingerprints: [md5(H.dna.uni_identity)]\n"
+ dat += "[H]'s Fingerprints: [md5(H.dna.uni_identity)]\n"
if ( !(H.blood_DNA.len) )
- dat += "\blue No blood found on [H]\n"
+ dat += "No blood found on [H]\n"
else
for(var/i = 1, i < H.blood_DNA.len, i++)
var/list/templist = H.blood_DNA[i]
- user << "\blue Blood type: [templist[2]]\nDNA: [templist[1]]"
+ user << "Blood type: [templist[2]]\nDNA: [templist[1]]"
if (!A.fingerprints)
- dat += "\blue Unable to locate any fingerprints on [A]!\n"
+ dat += "Unable to locate any fingerprints on [A]!\n"
else
var/list/L = params2list(A:fingerprints)
- dat += "\blue Isolated [L.len] fingerprints.\n"
+ dat += "Isolated [L.len] fingerprints.\n"
for(var/i in L)
- dat += "\blue \t [i]\n"
+ dat += "\t [i]\n"
return dat
@@ -92,12 +92,12 @@
if(!isnull(A.reagents))
if(A.reagents.reagent_list.len > 0)
var/reagents_length = A.reagents.reagent_list.len
- dat += "\blue [reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found.\n"
+ dat += "[reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found.\n"
for (var/datum/reagent/re in A.reagents.reagent_list)
- dat += "\blue \t [re] - [re.volume]\n"
+ dat += "\t [re] - [re.volume]\n"
else
- dat = "\blue No active chemical agents found in [A]."
+ dat = "No active chemical agents found in [A]."
else
- dat = "\blue No significant chemical agents found in [A]."
+ dat = "No significant chemical agents found in [A]."
return dat
diff --git a/code/unused/powerarmor/powerarmor.dm b/code/unused/powerarmor/powerarmor.dm
index 1e23e4e98b8..f3f6a4bbade 100644
--- a/code/unused/powerarmor/powerarmor.dm
+++ b/code/unused/powerarmor/powerarmor.dm
@@ -44,36 +44,36 @@
return //if you're unconscious or dead, no dicking with your armor. --NEO
if(!istype(user))
- user << "\red This suit was engineered for human use only."
+ user << "This suit was engineered for human use only."
return
if(user.wear_suit!=src)
- user << "\red The suit functions best if you are inside of it."
+ user << "The suit functions best if you are inside of it."
return
if(helmrequired && !istype(user.head, /obj/item/clothing/head/powered))
- user << "\red Helmet missing, unable to initiate power-on procedure."
+ user << "Helmet missing, unable to initiate power-on procedure."
return
if(glovesrequired && !istype(user.gloves, /obj/item/clothing/gloves/powered))
- user << "\red Gloves missing, unable to initiate power-on procedure."
+ user << "Gloves missing, unable to initiate power-on procedure."
return
if(shoesrequired && !istype(user.shoes, /obj/item/clothing/shoes/powered))
- user << "\red Shoes missing, unable to initiate power-on procedure."
+ user << "Shoes missing, unable to initiate power-on procedure."
return
if(active)
- user << "\red The suit is already on, you can't turn it on twice."
+ user << "The suit is already on, you can't turn it on twice."
return
if(!power || !power.checkpower())
- user << "\red Powersource missing or depleted."
+ user << "Powersource missing or depleted."
return
verbs -= /obj/item/clothing/suit/powered/proc/poweron
- user << "\blue Suit interlocks engaged."
+ user << "Suit interlocks engaged."
if(helmrequired)
helm = user.head
helm.canremove = 0
@@ -98,7 +98,7 @@
servos.toggle()
sleep(20)
- user << "\blue All systems online."
+ user << "All systems online."
active = 1
power.process()
@@ -125,7 +125,7 @@
verbs -= /obj/item/clothing/suit/powered/proc/poweroff
if(sudden)
- user << "\red Your armor loses power!"
+ user << "Your armor loses power!"
if(servos)
servos.toggle(sudden)
@@ -143,7 +143,7 @@
sleep(delay)
if(!sudden)
- usr << "\blue Suit interlocks disengaged."
+ usr << "Suit interlocks disengaged."
if(helm)
helm.canremove = 1
helm = null
@@ -158,7 +158,7 @@
sleep(delay)
if(!sudden)
- usr << "\blue All systems disengaged."
+ usr << "All systems disengaged."
active = 0
verbs += /obj/item/clothing/suit/powered/proc/poweron
@@ -170,24 +170,24 @@
switch(W.type)
if(/obj/item/stack/sheet/mineral/plasma)
if(fuel < 50)
- user << "\blue You feed some refined plasma into the armor's generator."
+ user << "You feed some refined plasma into the armor's generator."
power:fuel += 25
W:amount--
if (W:amount <= 0)
del(W)
return
else
- user << "\red The generator already has plenty of plasma."
+ user << "The generator already has plenty of plasma."
return
if(/obj/item/weapon/ore/plasma) //raw plasma has impurities, so it doesn't provide as much fuel. --NEO
if(fuel < 50)
- user << "\blue You feed some plasma into the armor's generator."
+ user << "You feed some plasma into the armor's generator."
power:fuel += 15
del(W)
return
else
- user << "\red The generator already has plenty of plasma."
+ user << "The generator already has plenty of plasma."
return
..()
@@ -209,21 +209,21 @@
var/mob/living/carbon/human/user = usr
if(!istype(user))
- user << "\red This helmet is not rated for nonhuman use."
+ user << "This helmet is not rated for nonhuman use."
return
if(user.head != src)
- user << "\red Can't engage the seals without wearing the helmet."
+ user << "Can't engage the seals without wearing the helmet."
return
if(!user.wear_suit || !istype(user.wear_suit,/obj/item/clothing/suit/powered))
- user << "\red This helmet can only couple with powered armor."
+ user << "This helmet can only couple with powered armor."
return
var/obj/item/clothing/suit/powered/armor = user.wear_suit
if(!armor.atmoseal || !istype(armor.atmoseal, /obj/item/powerarmor/atmoseal/optional))
- user << "\red This armor's atmospheric seals are missing or incompatible."
+ user << "This armor's atmospheric seals are missing or incompatible."
return
armor.atmoseal:helmtoggle(0,1)
diff --git a/code/unused/powerarmor/powerarmorcomponents.dm b/code/unused/powerarmor/powerarmorcomponents.dm
index 8d09536f9c1..f5e26230ce5 100644
--- a/code/unused/powerarmor/powerarmorcomponents.dm
+++ b/code/unused/powerarmor/powerarmorcomponents.dm
@@ -69,15 +69,15 @@
if (prob(src.reliability))
for (var/mob/M in range(0,src.parent)) //Only a minor failure, enjoy your radiation.
if (src.parent in M.contents)
- M << "\red Your armor feels pleasantly warm for a moment."
+ M << "Your armor feels pleasantly warm for a moment."
else
- M << "\red You feel a warm sensation."
+ M << "You feel a warm sensation."
M.radiation += rand(1,40)
else
for (var/mob/M in range(rand(1,4),src.parent)) //Big failure, TIME FOR RADIATION BITCHES
if (src.parent in M.contents)
- M << "\red Your armor's reactor overloads!"
- M << "\red You feel a wave of heat wash over you."
+ M << "Your armor's reactor overloads!"
+ M << "You feel a wave of heat wash over you."
M.radiation += 100
crit_fail = 1 //broken~
parent.powerdown(1)
@@ -97,9 +97,9 @@
switch(parent.active)
if(1)
if(!sudden)
- usr << "\blue Reactive armor systems disengaged."
+ usr << "Reactive armor systems disengaged."
if(0)
- usr << "\blue Reactive armor systems engaged."
+ usr << "Reactive armor systems engaged."
var/list/switchover = list()
for (var/armorvar in parent.armor)
switchover[armorvar] = togglearmor[armorvar]
@@ -129,10 +129,10 @@
switch(parent.active)
if(1)
if(!sudden)
- usr << "\blue Movement assist servos disengaged."
+ usr << "Movement assist servos disengaged."
parent.slowdown += toggleslowdown
if(0)
- usr << "\blue Movement assist servos engaged."
+ usr << "Movement assist servos engaged."
parent.slowdown -= toggleslowdown
/obj/item/powerarmor/atmoseal
@@ -145,7 +145,7 @@
switch(parent.active)
if(1)
if(!sudden)
- usr << "\blue Atmospheric seals disengaged."
+ usr << "Atmospheric seals disengaged."
parent.gas_transfer_coefficient = 1
parent.permeability_coefficient = 1
parent.heat_transfer_coefficient = 1
@@ -166,7 +166,7 @@
sealed = 0
if(0)
- usr << "\blue Atmospheric seals engaged."
+ usr << "Atmospheric seals engaged."
parent.gas_transfer_coefficient = 0.01
parent.permeability_coefficient = 0.02
parent.heat_transfer_coefficient = 0.02
@@ -202,10 +202,10 @@
helm = user.head
if(!sealed)
- user << "\red Unable to initialize helmet seal, armor seals not active."
+ user << "Unable to initialize helmet seal, armor seals not active."
return
if(!helm.parent)
- user << "\blue Helmet locked."
+ user << "Helmet locked."
helm.canremove = 0
parent.helm = helm
helm.parent = parent
@@ -214,14 +214,14 @@
parent.helm.permeability_coefficient = 0.02
parent.helm.heat_transfer_coefficient = 0.02
parent.helm.flags |= HEADSPACE
- user << "\blue Helmet atmospheric seals engaged."
+ user << "Helmet atmospheric seals engaged."
if(manual)
for (var/armorvar in helm.armor)
helm.armor[armorvar] = parent.armor[armorvar]
return
else
if(manual)
- user << "\blue Helmet atmospheric seals disengaged."
+ user << "Helmet atmospheric seals disengaged."
parent.helm.gas_transfer_coefficient = 1
parent.helm.permeability_coefficient = 1
parent.helm.heat_transfer_coefficient = 1
@@ -232,7 +232,7 @@
if(!sudden)
if(manual)
sleep(20)
- user << "\blue Helmet unlocked."
+ user << "Helmet unlocked."
helm.canremove = 1
parent.helm = null
helm.parent = null
diff --git a/code/unused/siphs.dm b/code/unused/siphs.dm
index 1f1f90f1786..4d9161b5024 100644
--- a/code/unused/siphs.dm
+++ b/code/unused/siphs.dm
@@ -491,26 +491,26 @@
if (src.c_status)
src.anchored = 0
src.c_status = 0
- user.show_message("\blue You have disconnected the siphon.")
+ user.show_message("You have disconnected the siphon.")
if(con)
con.connected = null
else
if (con && !con.connected)
src.anchored = 1
src.c_status = 3
- user.show_message("\blue You have connected the siphon.")
+ user.show_message("You have connected the siphon.")
con.connected = src
else
- user.show_message("\blue There is nothing here to connect to the siphon.")
+ user.show_message("There is nothing here to connect to the siphon.")
else
if (istype(W, /obj/item/weapon/wrench))
src.alterable = !( src.alterable )
if (src.alterable)
- user << "\blue You unlock the interface!"
+ user << "You unlock the interface!"
else
- user << "\blue You lock the interface!"
+ user << "You lock the interface!"
return
diff --git a/code/unused/vehicle.dm b/code/unused/vehicle.dm
index 12e7aeb91dc..34f37951601 100644
--- a/code/unused/vehicle.dm
+++ b/code/unused/vehicle.dm
@@ -143,7 +143,7 @@
A.loc = src.loc
for(var/mob/O in view(src, null))
if ((O.client && !(O.blinded)))
- O << text("\blue [] unloads [] from []!", usr, A, src)
+ O << text(" [] unloads [] from []!", usr, A, src)
if (ismob(A))
var/mob/M = A
@@ -173,7 +173,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O << text("\blue [] loads [] into []!", H, H.pulling, src)
+ O << text(" [] loads [] into []!", H, H.pulling, src)
H.stop_pulling()
diff --git a/code/world.dm b/code/world.dm
index 05a4811e35d..0e44c59e8af 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -73,7 +73,7 @@
library_catalog.initialize()
- copy_logs() // Just copy the logs.
+ spawn() copy_logs() // Just copy the logs.
if(config && config.log_runtimes)
log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM-DD")]-runtime.log")
if(config && config.server_name != null && config.server_suffix && world.port > 0)
@@ -189,6 +189,12 @@
s["ai"] = config.allow_ai
s["host"] = host ? host : null
s["players"] = list()
+ s["map_name"] = map.nameLong
+ s["gamestate"] = 1
+ if(ticker)
+ s["gamestate"] = ticker.current_state
+ s["active_players"] = get_active_player_count()
+ s["revision"] = return_revision()
var/n = 0
var/admins = 0
@@ -205,6 +211,9 @@
s["admins"] = admins
return list2params(s)
+ else if (findtext(T,"notes:"))
+ var/notekey = copytext(T, 7)
+ return list2params(exportnotes(notekey))
/world/Reboot(reason)
diff --git a/config-example/ZAS.txt b/config-example/ZAS.txt
index 233e0ace408..b9fda0e159f 100644
--- a/config-example/ZAS.txt
+++ b/config-example/ZAS.txt
@@ -1,108 +1,116 @@
# Fire - Air Consumption Ratio
# Ratio of air removed and combusted per tick.
-fire_consumption_rate 0.75
+/datum/ZAS_Setting/fire_consumption_rate 0.75
# Fire - Firelevel Constant
# Multiplied by the equation for firelevel, affects mainly the extingiushing of fires.
-fire_firelevel_multiplier 25
+/datum/ZAS_Setting/fire_firelevel_multiplier 25
# Fire - Fuel energy release
# The energy in joule released when burning one mol of a burnable substance
-fire_fuel_energy_release 550000
+/datum/ZAS_Setting/fire_fuel_energy_release 550000
# Airflow - Small Movement Threshold %
# Percent of 1 Atm. at which items with the small weight classes will move.
-airflow_lightest_pressure 20
+/datum/ZAS_Setting/airflow_lightest_pressure 20
# Airflow - Medium Movement Threshold %
# Percent of 1 Atm. at which items with the medium weight classes will move.
-airflow_light_pressure 35
+/datum/ZAS_Setting/airflow_light_pressure 35
# Airflow - Heavy Movement Threshold %
# Percent of 1 Atm. at which items with the largest weight classes will move.
-airflow_medium_pressure 50
+/datum/ZAS_Setting/airflow_medium_pressure 50
# Airflow - Mob Movement Threshold %
# Percent of 1 Atm. at which mobs will move.
-airflow_heavy_pressure 65
+/datum/ZAS_Setting/airflow_heavy_pressure 65
# Airflow - Dense Movement Threshold %
# Percent of 1 Atm. at which items with canisters and closets will move.
-airflow_dense_pressure 85
+/datum/ZAS_Setting/airflow_dense_pressure 85
# Airflow - Mob Stunning Threshold %
# Percent of 1 Atm. at which mobs will be stunned by airflow.
-airflow_stun_pressure 60
+/datum/ZAS_Setting/airflow_stun_pressure 60
# Aiflow Stunning - Cooldown
# How long, in tenths of a second, to wait before stunning them again.
-airflow_stun_cooldown 60
+/datum/ZAS_Setting/airflow_stun_cooldown 60
# Airflow Impact - Stunning
# How much a mob is stunned when hit by an object.
-airflow_stun 1
+/datum/ZAS_Setting/airflow_stun 1
# Airflow Impact - Damage
# Damage from airflow impacts.
-airflow_damage 2
+/datum/ZAS_Setting/airflow_damage 2
# Airflow Speed Decay
# How rapidly the speed gained from airflow decays.
-airflow_speed_decay 1.5
+/datum/ZAS_Setting/airflow_speed_decay 1.5
# Airflow Retrigger Delay
# Time in deciseconds before things can be moved by airflow again.
-airflow_delay 30
+/datum/ZAS_Setting/airflow_delay 30
# Airflow Slowdown
# Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow.
-airflow_mob_slowdown 1
+/datum/ZAS_Setting/airflow_mob_slowdown 1
# Airflow - Push
# 1=yes please rape my server, 0=no
-airflow_push 0
+/datum/ZAS_Setting/airflow_push 0
# Connections - Insulation
# How insulative a connection is, in terms of heat transfer. 1 is perfectly insulative, and 0 is perfectly conductive.
-connection_insulation 0.4
+/datum/ZAS_Setting/connection_insulation 0.4
# Connections - Temperature Difference
# The smallest temperature difference which will cause heat to travel through doors.
-connection_temperature_delta 10
+/datum/ZAS_Setting/connection_temperature_delta 10
+
+# Airflow - Enable Ice Formation
+# 1=yes, 0=no - Slippin' and slidin' when pressure > 10kPa and temperature < 273K
+/datum/ZAS_Setting/ice_formation 0
+
+# Airflow - Disable Cold Space
+# 1=yes, 0=no - Disables space behaving as being very fucking cold (0K).
+/datum/ZAS_Setting/space_isnt_cold 0
# Plasma Damage Amount
# Self Descriptive
-PLASMA_DMG 3
+/datum/ZAS_Setting/PLASMA_DMG 3
# Cloth Contamination
# If this is on, plasma does damage by getting into cloth.
-CLOTH_CONTAMINATION 1
+/datum/ZAS_Setting/CLOTH_CONTAMINATION 1
# PlasmaGuard Only
# If this is on, only biosuits and spacesuits protect against contamination and ill effects.
-PLASMAGUARD_ONLY 0
+/datum/ZAS_Setting/PLASMAGUARD_ONLY 0
# Genetic Corruption Chance
# Chance of genetic corruption as well as toxic damage, X in 10,000.
-GENETIC_CORRUPTION 0
+/datum/ZAS_Setting/GENETIC_CORRUPTION 0
# Skin Burns
# Plasma has an effect similar to mustard gas on the un-suited.
-SKIN_BURNS 0
+/datum/ZAS_Setting/SKIN_BURNS 0
# Eye Burns
# Plasma burns the eyes of anyone not wearing eye protection.
-EYE_BURNS 1
+/datum/ZAS_Setting/EYE_BURNS 1
# Contamination Loss
# How much toxin damage is dealt from contaminated clothing
-CONTAMINATION_LOSS 0.02
+/datum/ZAS_Setting/CONTAMINATION_LOSS 0.02
# Plasma Hallucination
# Does being in plasma cause you to hallucinate?
-PLASMA_HALLUCINATION 0
+/datum/ZAS_Setting/PLASMA_HALLUCINATION 0
# N2O Hallucination
# Does being in sleeping gas cause you to hallucinate?
-N2O_HALLUCINATION 1
+/datum/ZAS_Setting/N2O_HALLUCINATION 1
diff --git a/config-example/config.txt b/config-example/config.txt
index f98a56a7918..1add23e63f4 100644
--- a/config-example/config.txt
+++ b/config-example/config.txt
@@ -270,3 +270,5 @@ RESPAWN_AS_MOMMI
##
## Do NOT share this, it's like a password.
#MEDIA_SECRET_KEY youshouldchangethisbro
+
+RENDERS_URL http://ss13.pomf.se/img/map-renders
\ No newline at end of file
diff --git a/html/changelog.html b/html/changelog.html
index f5fef28e51a..bf02c1ade22 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -68,7 +68,7 @@ ADDING CREDITS? EDIT templates/header.html (or footer.html if they're for old t
Added three new virus symptoms. Chicken Pox(Stage 3) which makes you cluck like a chicken and vomit eggs, Vox Pox(Stage 4) Which turns you into a pox ridden vox and finally Delightful Syndrome(Stage 4) which synthesises Doctor's Delight.
+
+
Deity Link updated:
+
+
Fixed tons of Bomberman Arenas-related bugs, thanks a lot to those who played with me to help me debug on the server
+
Entertainment Monitors in the bar will notify people near them that a bomberman round is starting
+
Re-added a couple of hat sprites that somehow disappeared recently (including some wizard hat sprites)
+
Fixed Cult Grilles having no sprite, and improved the current sprite
+
Improved the broken Cult Grille sprite
+
Improved the Cult Girder sprite
+
Added a Thermited Cult Wall sprite
+
+
Dylanstrategie updated:
+
+
Make cell charger emag message more explicit. There will now be an indication when someone sabotages a cell charger in your sight
+
Fix cell chargers not always being destroyed when they overload
+
Fix Component Exchanger sharing its design ID with the Device Analyzer (and thus being unresearchable, or replacing it when its tech level is reached first)
+
Component Exchanger storage now has a size of 20 instead of 10
+
Recovered Xeno Helmet sprite. It was accidentally pruned out during a clean-up in the head.dmi file (lying sprites are useless)
+
Fix a broken span when stacking dosh
+
Fix dart shots not behaving correctly. They still do shit-all damage, but now they inherit from bullets, not electrodes
+
General unfucking of floodlights. They should now work correctly, although in the meantime they cannot be built and are only found on the Derelict
+
Floodlights must be bolted down to work, use a wrench
+
Fix some beaker types not having lid sprites, or having incorrect ones
+
Fix broken span in vomit-messages fucking up the chat for the session
+
Vomit viral symptom now uses identical messages than regular vomiting, to avoid powergaymen
+
Damage from slamming someone into a window with a full grab is now 20 brute, down from 30 brute
+
+
Kurfurst updated:
+
+
Added three new chemistry tools Electrolyzer, Centrifuge, and Mortar
+
More Info http://ss13.pomf.se/wiki/index.php/User:Kurfurst/Ghettochem
+
Bustanuts now contain salt
+
Bowls may now be made from wood
+
Iron may now be grinded from metal
+
Sulphuric Acid may now be made with its real life formula (is still available at dispenser)
+
The Electrolyzer has a sprite
+
+
+
2015.04.15
+
DrCelt updated:
+
+
Finally fixed the issue where a new station account could bankrupt central command
+
The Station Account is now worth 5000, in line with all the departments.
+
PINs are now 4 digits & Account Numbers are now 5 digits.
+
+
Dylanstrategie updated:
+
+
Add in the Rapid Machinery Component Exchanger (R.M.C.E). This tool is used to quickly upgrade a machinery's components without having to take it apart, and can optionally scan the machinery's current components
+
The Rapid Machinery Component Exchanger can carry up to 10 components (stock_parts), although it will only remplace upgradable components (currently matter bins, scanning modules, manipulators, capacitators and micro-lasers)
+
It is used by opening a machinery's maintenance panel (usually with a screwdriver). A menu shows up from there. You need to stay in range until finished !
+
You can access further options by interacting with it, like ejecting loaded components or scanning the container
+
The Rapid Machinery Component Exchanger can be researched
+
The Rapid Machinery Component Exchanger has a sprite
+
+
iconleap updated:
+
+
Fixed everything is candy at candy machine.
+
+
+
2015.04.14
+
ArthurDentist updated:
+
+
Plasmamen no longer take damage from contaminated clothing
+
+
+
2015.04.12
+
ArthurDentist updated:
+
+
Added a new spell, 'Shoe Snatching Charm', this spell recquires no robes and allows you to steal someone's shoes from a distance.
+
+
Pomf123 updated:
+
+
Coded in external health indicator for cryo tubes, sprite and idea thanks to anonymoose in the thread.
+
Fixed theft objectives always saying failure.
+
Fixed non-ghosts triggering admin alerts when interacting with the AAC.
+
MoMMIs and robots can now open wrapped closets and crates without an item in hand.
+
Mousetraps attached to transfer valves will now properly activate the bomb if armed.
+
Fix the flashlight issue due to a hardcap in mob luminosity
+
Fix not being able to (un)equip items on people on top of an operating table.
+
Fix improper font tag with botany color mutations.
+
Prevent situations causing you to store your item as a robot while its not in your possession resulting in losing it forever.
+
Fix recruitment messages not being proper formatting.
+
Fix robots being able to give away their precious.
+
+
iconleap updated:
+
+
Fixes admin manual traitor to give uplink and codewords.
+
+
+
2015.04.11
+
Pomf123 updated:
+
+
thanks to angry man in the thread for making me remove the delay on adding shit to the exofab and protolathe
+
+
+
2015.04.10
+
Pomf123 updated:
+
+
Fixed protolathe lockboxes
+
+
+
2015.04.09
+
Kurfursten updated:
+
+
Adds special sounds for prayers and faxes to admins hopefully you'll get noticed now! Also faxes cooldown faster.
+
+
PJB3005 updated:
+
+
Ports the procedural map generator from /tg/, credits to RemieRichards for actually making the thing.
+
+
+
2015.04.08
+
Boxed updated:
+
+
ERT suits are now fireproof for the first time in ???.
+
+
Pomf123 updated:
+
+
Hey look i fixed nonhumans not cloning into their proper species... again.
+
+
+
2015.04.07
+
ArthurDentist updated:
+
+
Added a rare Syndie Bundle which contains the Grand Prize
+
+
Dylanstrategie updated:
+
+
Fix Doctor's Delight making you completely shitfaced
+
Fix RoboTrays picking up drinks (and most likely setting them on tables and the like) at any range due to a missing proximity flag
+
+
Fury McFlurry updated:
+
+
Added 10 new hairstyles and 5 new facial hairstyles.
+
+
Pomf123 updated:
+
+
Reduced how fast the sun moves so the solar trackers have an opportunity to work properly when set to auto.
+
+
2015.04.05
Boxed updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 62caa348294..409f6e16b7e 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2776,3 +2776,129 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- spellcheck: Fix typo in metal sheets description ("off" instead of "of")
iconleap:
- rscadd: More morgue indicator icons from tg, refer to this pull https://github.com/d3athrow/vgstation13/pull/3774.
+2015-04-07:
+ ArthurDentist:
+ - rscadd: Added a rare Syndie Bundle which contains the Grand Prize
+ Dylanstrategie:
+ - bugfix: Fix Doctor's Delight making you completely shitfaced
+ - bugfix: Fix RoboTrays picking up drinks (and most likely setting them on tables
+ and the like) at any range due to a missing proximity flag
+ Fury McFlurry:
+ - rscadd: Added 10 new hairstyles and 5 new facial hairstyles.
+ Pomf123:
+ - tweak: Reduced how fast the sun moves so the solar trackers have an opportunity
+ to work properly when set to auto.
+2015-04-08:
+ Boxed:
+ - bugfix: ERT suits are now fireproof for the first time in ???.
+ Pomf123:
+ - bugfix: Hey look i fixed nonhumans not cloning into their proper species... again.
+2015-04-09:
+ Kurfursten:
+ - rscadd: Adds special sounds for prayers and faxes to admins hopefully you'll
+ get noticed now! Also faxes cooldown faster.
+ PJB3005:
+ - rscadd: Ports the procedural map generator from /tg/, credits to RemieRichards
+ for actually making the thing.
+2015-04-10:
+ Pomf123:
+ - bugfix: Fixed protolathe lockboxes
+2015-04-11:
+ Pomf123:
+ - tweak: thanks to angry man in the thread for making me remove the delay on adding
+ shit to the exofab and protolathe
+2015-04-12:
+ ArthurDentist:
+ - rscadd: Added a new spell, 'Shoe Snatching Charm', this spell recquires no robes
+ and allows you to steal someone's shoes from a distance.
+ Pomf123:
+ - rscadd: Coded in external health indicator for cryo tubes, sprite and idea thanks
+ to anonymoose in the thread.
+ - bugfix: Fixed theft objectives always saying failure.
+ - bugfix: Fixed non-ghosts triggering admin alerts when interacting with the AAC.
+ - bugfix: MoMMIs and robots can now open wrapped closets and crates without an item
+ in hand.
+ - bugfix: Mousetraps attached to transfer valves will now properly activate the
+ bomb if armed.
+ - bugfix: Fix the flashlight issue due to a hardcap in mob luminosity
+ - bugfix: Fix not being able to (un)equip items on people on top of an operating
+ table.
+ - bugfix: Fix improper font tag with botany color mutations.
+ - bugfix: Prevent situations causing you to store your item as a robot while its
+ not in your possession resulting in losing it forever.
+ - bugfix: Fix recruitment messages not being proper formatting.
+ - bugfix: Fix robots being able to give away their precious.
+ iconleap:
+ - bugfix: Fixes admin manual traitor to give uplink and codewords.
+2015-04-14:
+ ArthurDentist:
+ - bugfix: Plasmamen no longer take damage from contaminated clothing
+2015-04-15:
+ DrCelt:
+ - bugfix: Finally fixed the issue where a new station account could bankrupt central
+ command
+ - tweak: The Station Account is now worth 5000, in line with all the departments.
+ - tweak: PINs are now 4 digits & Account Numbers are now 5 digits.
+ Dylanstrategie:
+ - rscadd: Add in the Rapid Machinery Component Exchanger (R.M.C.E). This tool is
+ used to quickly upgrade a machinery's components without having to take it apart,
+ and can optionally scan the machinery's current components
+ - rscadd: The Rapid Machinery Component Exchanger can carry up to 10 components
+ (stock_parts), although it will only remplace upgradable components (currently
+ matter bins, scanning modules, manipulators, capacitators and micro-lasers)
+ - rscadd: It is used by opening a machinery's maintenance panel (usually with a
+ screwdriver). A menu shows up from there. You need to stay in range until finished
+ !
+ - rscadd: You can access further options by interacting with it, like ejecting loaded
+ components or scanning the container
+ - rscadd: The Rapid Machinery Component Exchanger can be researched
+ - imageadd: The Rapid Machinery Component Exchanger has a sprite
+ iconleap:
+ - bugfix: Fixed everything is candy at candy machine.
+2015-04-16:
+ ArthurDentist:
+ - rscadd: Added three new virus symptoms. Chicken Pox(Stage 3) which makes you cluck
+ like a chicken and vomit eggs, Vox Pox(Stage 4) Which turns you into a pox ridden
+ vox and finally Delightful Syndrome(Stage 4) which synthesises Doctor's Delight.
+ Deity Link:
+ - bugfix: Fixed tons of Bomberman Arenas-related bugs, thanks a lot to those who
+ played with me to help me debug on the server
+ - rscadd: Entertainment Monitors in the bar will notify people near them that a
+ bomberman round is starting
+ - imageadd: Re-added a couple of hat sprites that somehow disappeared recently (including
+ some wizard hat sprites)
+ - bugfix: Fixed Cult Grilles having no sprite, and improved the current sprite
+ - imageadd: Improved the broken Cult Grille sprite
+ - imageadd: Improved the Cult Girder sprite
+ - imageadd: Added a Thermited Cult Wall sprite
+ Dylanstrategie:
+ - tweak: Make cell charger emag message more explicit. There will now be an indication
+ when someone sabotages a cell charger in your sight
+ - bugfix: Fix cell chargers not always being destroyed when they overload
+ - bugfix: Fix Component Exchanger sharing its design ID with the Device Analyzer
+ (and thus being unresearchable, or replacing it when its tech level is reached
+ first)
+ - tweak: Component Exchanger storage now has a size of 20 instead of 10
+ - imageadd: Recovered Xeno Helmet sprite. It was accidentally pruned out during
+ a clean-up in the head.dmi file (lying sprites are useless)
+ - bugfix: Fix a broken span when stacking dosh
+ - bugfix: Fix dart shots not behaving correctly. They still do shit-all damage,
+ but now they inherit from bullets, not electrodes
+ - bugfix: General unfucking of floodlights. They should now work correctly, although
+ in the meantime they cannot be built and are only found on the Derelict
+ - tweak: Floodlights must be bolted down to work, use a wrench
+ - imageadd: Fix some beaker types not having lid sprites, or having incorrect ones
+ - bugfix: Fix broken span in vomit-messages fucking up the chat for the session
+ - tweak: Vomit viral symptom now uses identical messages than regular vomiting,
+ to avoid powergaymen
+ - tweak: Damage from slamming someone into a window with a full grab is now 20 brute,
+ down from 30 brute
+ Kurfurst:
+ - rscadd: Added three new chemistry tools Electrolyzer, Centrifuge, and Mortar
+ - rscadd: More Info http://ss13.pomf.se/wiki/index.php/User:Kurfurst/Ghettochem
+ - tweak: Bustanuts now contain salt
+ - tweak: Bowls may now be made from wood
+ - tweak: Iron may now be grinded from metal
+ - tweak: Sulphuric Acid may now be made with its real life formula (is still available
+ at dispenser)
+ - imageadd: The Electrolyzer has a sprite
diff --git a/html/changelogs/DeityLink_3959.yml b/html/changelogs/DeityLink_3959.yml
new file mode 100644
index 00000000000..935678c7490
--- /dev/null
+++ b/html/changelogs/DeityLink_3959.yml
@@ -0,0 +1,5 @@
+author: Deity Link
+delete-after: true
+changes:
+ - bugfix: Removed species restrictions on Bomberman clothes, so Diona can be bombermen as well.
+ - bugfix: Bomberman clothes now protect Plasmamen from combusting.
diff --git a/html/templates/header.html b/html/templates/header.html
index c0172f11c5b..4da82add32a 100644
--- a/html/templates/header.html
+++ b/html/templates/header.html
@@ -68,7 +68,7 @@ ADDING CREDITS? EDIT templates/header.html (or footer.html if they're for old t