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
@@ -104,8 +104,8 @@ crew += H if(crew.len < 2) - world << "\red There aren't enough players for this mode!" - world << "\red Rebooting world in 5 seconds." + world << "There aren't enough players for this mode!" + world << "Rebooting world in 5 seconds." if(blackbox) blackbox.save_all_data_to_sql() @@ -195,10 +195,10 @@ for(var/mob/M in world) if(M.client) M << 'sound/machines/Alarm.ogg' - world << "\blueIncoming missile detected.. Impact in 10.." + world << "Incoming missile detected.. Impact in 10.." for (var/i=9 to 1 step -1) sleep(10) - world << "\blue[i].." + world << "[i].." sleep(10) enter_allowed = 0 if(ticker) @@ -216,9 +216,9 @@ /datum/game_mode/epidemic/declare_completion() if(finished == 1) feedback_set_details("round_end_result","win - epidemic cured") - world << "\red The virus outbreak was contained! The crew wins!" + world << " The virus outbreak was contained! The crew wins!" else if(finished == 2) feedback_set_details("round_end_result","loss - rev heads killed") - world << "\red The crew succumbed to the epidemic!" + world << " The crew succumbed to the epidemic!" ..() return 1 \ No newline at end of file diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index b07aff67dd4..dffdd8d657e 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -364,72 +364,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/game/gamemodes/events/holidays/Holidays.dm b/code/game/gamemodes/events/holidays/Holidays.dm index aa024d20273..7a1d7c0f8fa 100644 --- a/code/game/gamemodes/events/holidays/Holidays.dm +++ b/code/game/gamemodes/events/holidays/Holidays.dm @@ -175,7 +175,7 @@ var/global/Holiday = null world.update_status() Holiday_Game_Start() - message_admins("\blue ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"") + message_admins("ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"") log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"") @@ -218,7 +218,7 @@ var/global/Holiday = null if(S.z != 1) continue containers += S - message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/ + message_admins("DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/ if("End of the World") if(prob(eventchance)) GameOver() diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index af8ea780cf5..013acca4ad9 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -17,21 +17,21 @@ s_cooldown ticks off each second based on the suit recharge proc, in seconds. De /obj/item/clothing/suit/space/space_ninja/proc/ninjacost(C = 0,X = 0) var/mob/living/carbon/human/U = affecting if( (U.stat||U.incorporeal_move)&&X!=3 )//Will not return if user is using an adrenaline booster since you can use them when stat==1. - U << "\red You must be conscious and solid to do this."//It's not a problem of stat==2 since the ninja will explode anyway if they die. + U << "You must be conscious and solid to do this."//It's not a problem of stat==2 since the ninja will explode anyway if they die. return 1 else if(C&&cell.chargeNot enough energy.
" return 1 switch(X) if(1) cancel_stealth()//Get rid of it. if(2) if(s_bombs<=0) - U << "\red There are no more smoke bombs remaining." + U << "There are no more smoke bombs remaining." return 1 if(3) if(a_boost<=0) - U << "\red You do not have any more adrenaline boosters." + U << "You do not have any more adrenaline boosters." return 1 return (s_coold)//Returns the value of the variable which counts down to zero. @@ -56,7 +56,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo if(!ninjacost(,2)) var/mob/living/carbon/human/U = affecting - U << "\blue There are [s_bombs] smoke bombs remaining." + U << "There are [s_bombs] smoke bombs remaining." var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad() smoke.set_up(10, 0, U.loc) smoke.start() @@ -97,7 +97,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo s_coold = 1 cell.charge-=(C*10) else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." + U << "The VOID-shift device is malfunctioning, teleportation failed." return //=======//RIGHT CLICK TELEPORT//=======// @@ -131,7 +131,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo s_coold = 1 cell.charge-=(C*10) else - U << "\red You cannot teleport into solid walls or from solid matter" + U << "You cannot teleport into solid walls or from solid matter" return //=======//EM PULSE//=======// @@ -170,7 +170,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo U.put_in_hands(W) cell.charge-=(C*10) else - U << "\red You can only summon one blade. Try dropping an item first." + U << "You can only summon one blade. Try dropping an item first." else//Else you can run around with TWO energy blades. I don't know why you'd want to but cool factor remains. if(!U.get_active_hand()) var/obj/item/weapon/melee/energy/blade/W = new() @@ -208,14 +208,14 @@ This could be a lot better but I'm too tired atm.*/ return if (targloc == curloc) return - var/obj/item/projectile/energy/dart/A = new /obj/item/projectile/energy/dart(U.loc) + var/obj/item/projectile/bullet/dart/A = new /obj/item/projectile/bullet/dart(U.loc) A.current = curloc A.yo = targloc.y - curloc.y A.xo = targloc.x - curloc.x cell.charge-=(C*10) A.process() else - U << "\red There are no targets in view." + U << "There are no targets in view." return //=======//ENERGY NET//=======// @@ -244,7 +244,7 @@ Must right click on a mob to activate.*/ var/obj/effect/energy_net/E = new /obj/effect/energy_net(M.loc) E.layer = M.layer+1//To have it appear one layer above the mob. for(var/mob/O in viewers(U, 3)) - O.show_message(text("\red [] caught [] with an energy net!", U, M), 1) + O.show_message(text("[] caught [] with an energy net!", U, M), 1) E.affecting = M E.master = U spawn(0)//Parallel processing. @@ -286,7 +286,7 @@ Movement impairing would indicate drugs and the like.*/ spawn(70) reagents.reaction(U, 2) reagents.trans_id_to(U, "radium", a_transfer) - U << "\red You are beginning to feel the after-effect of the injection." + U << "You are beginning to feel the after-effect of the injection." a_boost-- s_coold = 3 return @@ -309,10 +309,10 @@ Or otherwise known as anime mode. Which also happens to be ridiculously powerful var/mob/living/carbon/human/U = affecting if(!U.incorporeal_move) U.incorporeal_move = 2 - U << "\blue You will now phase through solid matter." + U << "You will now phase through solid matter." else U.incorporeal_move = 0 - U << "\blue You will no-longer phase through solid matter." + U << "You will no-longer phase through solid matter." return //=======//5 TILE TELEPORT/GIB//=======// @@ -351,7 +351,7 @@ Or otherwise known as anime mode. Which also happens to be ridiculously powerful anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) s_coold = 1 else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." + U << "The VOID-shift device is malfunctioning, teleportation failed." return //=======//TELEPORT BEHIND MOB//=======// @@ -425,7 +425,7 @@ This is so anime it hurts. But that's the point.*/ anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) s_coold = 1 else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." + U << "The VOID-shift device is malfunctioning, teleportation failed." else - U << "\red There are no targets in view." + U << "There are no targets in view." return diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 3138de8e2a0..38b6caf53eb 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -814,7 +814,7 @@ ________________________________________________________________________________ U << "ERROR: Remote access channel disabled." return//Return individually so that ..() can run properly at the end of the proc. else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card. - U:drop_item(src) + U.drop_item(I, src) pai = I U << "You slot \the [I] into \the [src]." updateUsrDialog() @@ -839,7 +839,7 @@ ________________________________________________________________________________ if(I:maxcharge>cell.maxcharge&&n_gloves&&n_gloves.candrain) U << "Higher maximum capacity detected.\nUpgrading..." if (n_gloves&&n_gloves.candrain&&do_after(U,s_delay)) - U.drop_item(src) + U.drop_item(I, src) I:charge = min(I:charge+cell.charge, I:maxcharge) var/obj/item/weapon/cell/old_cell = cell old_cell.charge = 0 @@ -918,10 +918,9 @@ ________________________________________________________________________________ else return 1 if(2) if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - U.drop_item() + U.drop_item(U.get_active_hand()) if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - U.swap_hand() - U.drop_item() + U.drop_item(U.get_inactive_hand()) return 0 /obj/item/clothing/suit/space/space_ninja/examine(mob/user) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index b8a3e7d13cd..945329077d9 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -100,7 +100,7 @@ var/ninja_confirmed_selection = 0 /proc/space_ninja_arrival(var/assign_key = null, var/assign_mission = null) if(ninja_selection_active) - usr << "\red Ninja selection already in progress. Please wait until it ends." + usr << "Ninja selection already in progress. Please wait until it ends." return var/datum/game_mode/current_mode = ticker.mode @@ -180,7 +180,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp break if(!candidate_mob) - usr << "\red The randomly chosen mob was not found in the second check." + usr << "The randomly chosen mob was not found in the second check." return ninja_selection_active = 1 @@ -189,7 +189,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp spawn(1) if(alert(candidate_mob, "You have been selected to play as a space ninja. Would you like to play as this role? (You have 30 seconds to accept - You will spawn in 30 seconds if you accept)",,"Yes","No")!="Yes") - usr << "\red The selected candidate for space ninja declined." + usr << "The selected candidate for space ninja declined." return ninja_confirmed_selection = this_selection_id @@ -197,12 +197,12 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp spawn(300) if(!ninja_selection_active || (this_selection_id != ninja_selection_id )) ninja_selection_active = 0 - candidate_mob << "\red Sorry, you were too late. You only had 30 seconds to accept." + candidate_mob << "Sorry, you were too late. You only had 30 seconds to accept." return if(ninja_confirmed_selection != ninja_selection_id) ninja_selection_active = 0 - usr << "\red The ninja did not accept the role in time." + usr << "The ninja did not accept the role in time." return ninja_selection_active = 0 @@ -226,8 +226,8 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp xeno_list += xeno if(assign_mission) - new_ninja.mind.store_memory("Mission: \red [assign_mission].
") - new_ninja << "\blue \nYou are an elite mercenary assassin of the Spider Clan, [new_ninja.real_name]. The dreaded \red SPACE NINJA!\blue You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor. Remember your training! \nYour current mission is: \red [assign_mission]" + new_ninja.mind.store_memory("Mission: [assign_mission].
") + new_ninja << "\nYou are an elite mercenary assassin of the Spider Clan, [new_ninja.real_name]. The dreaded SPACE NINJA!You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor. Remember your training! \nYour current mission is: [assign_mission]" else if(xeno_list.len>3)//If there are more than three humanoid xenos on the station, time to get dangerous. //Here we want the ninja to murder all the queens. The other aliens don't really matter. @@ -374,11 +374,11 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp ninja_mind.objectives += ninja_objective var/directive = generate_ninja_directive(side) - new_ninja << "\blue \nYou are an elite mercenary assassin of the Spider Clan, [new_ninja.real_name]. The dreaded \red SPACE NINJA!\blue You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor. Remember your training (initialize your suit by right clicking on it)! \nYour current directive is: \red [directive]" - new_ninja.mind.store_memory("Directive: \red [directive]
") + new_ninja << "\nYou are an elite mercenary assassin of the Spider Clan, [new_ninja.real_name]. The dreaded SPACE NINJA!You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor. Remember your training (initialize your suit by right clicking on it)! \nYour current directive is: [directive]" + new_ninja.mind.store_memory("Directive: [directive]
") var/obj_count = 1 - new_ninja << "\blue Your current objectives:" + new_ninja << "Your current objectives:" for(var/datum/objective/objective in ninja_mind.objectives) new_ninja << "Objective #[obj_count]: [objective.explanation_text]" obj_count++ @@ -483,7 +483,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. space_ninja_arrival(input, mission) - message_admins("\blue [key_name_admin(key)] has spawned [input] as a Space Ninja.\nTheir mission is: [mission]") + message_admins("[key_name_admin(key)] has spawned [input] as a Space Ninja.\nTheir mission is: [mission]") log_admin("[key] used Spawn Space Ninja.") return @@ -559,17 +559,17 @@ As such, it's hard-coded for now. No reason for it not to be, really. U:gloves.item_state = "s-ninjan" else if(U.mind.special_role!="Space Ninja") - U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." + U << "fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." U.gib() return 0 if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja)) - U << "\red ERROR: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..." + U << "ERROR: 100113 UNABLE TO LOCATE HEAD GEAR\nABORTING..." return 0 if(!istype(U:shoes, /obj/item/clothing/shoes/space_ninja)) - U << "\red ERROR: 122011 \black UNABLE TO LOCATE FOOT GEAR\nABORTING..." + U << "ERROR: 122011 UNABLE TO LOCATE FOOT GEAR\nABORTING..." return 0 if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja)) - U << "\red ERROR: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..." + U << "ERROR: 110223 UNABLE TO LOCATE HAND GEAR\nABORTING..." return 0 affecting = U @@ -704,7 +704,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. cancel_stealth() U << browse(null, "window=spideros") - U << "\red Do or Die, LET'S ROCK!!" + U << "Do or Die, LET'S ROCK!!" /obj/item/clothing/suit/space/space_ninja/proc/remove_kamikaze(mob/living/carbon/U) if(kamikaze) @@ -725,7 +725,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. U.incorporeal_move = 0 kamikaze = 0 k_unlock = 0 - U << "\blue Disengaging mode...\n\blackCODE NAME: \red KAMIKAZE" + U << "Disengaging mode...\n\blackCODE NAME: KAMIKAZE" //=======//AI VERBS//=======// @@ -781,13 +781,13 @@ spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to if(isturf(T) && T.is_plating()) attached = locate() in T if(!attached) - U << "\red Warning: no exposed cable available." + U << "Warning: no exposed cable available." else - U << "\blue Connecting to wire, stand still..." + U << "Connecting to wire, stand still..." if(do_after(U,50)&&!isnull(attached)) drain("WIRE",attached,U:wear_suit,src) else - U << "\red Procedure interrupted. Protocol terminated." + U << "Procedure interrupted. Protocol terminated." return I've tried a lot of stuff but adding verbs to the AI while inside an object, inside another object, did not want to work properly. diff --git a/code/game/gamemodes/events/spacevines.dm b/code/game/gamemodes/events/spacevines.dm index d095f19d564..a49039c5d6b 100644 --- a/code/game/gamemodes/events/spacevines.dm +++ b/code/game/gamemodes/events/spacevines.dm @@ -13,4 +13,4 @@ if(turfs.len) //Pick a turf to spawn at if we can var/turf/simulated/floor/T = pick(turfs) new/obj/effect/plant_controller(T) //spawn a controller at turf - message_admins("\blue Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z])") + message_admins("Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z])") diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 9746b90f14b..a14575344c6 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -193,10 +193,10 @@ var/extra = 4 suplink.uses += extra if(man.mind) man.mind.total_TC += extra - man << "\red We have received notice that enemy intelligence suspects you to be linked with us. We have thus invested significant resources to increase your uplink's capacity." + man << "We have received notice that enemy intelligence suspects you to be linked with us. We have thus invested significant resources to increase your uplink's capacity." else // Give them a warning! - man << "\red They are on to you!" + man << "They are on to you!" // Some poor people who were just in the wrong place at the wrong time.. else if(prob(10)) @@ -362,7 +362,7 @@ //Reports player logouts// ////////////////////////// proc/display_roundstart_logout_report() - var/msg = "\blue Roundstart logout report\n\n" + var/msg = "Roundstart logout report\n\n" for(var/mob/living/L in mob_list) if(L.ckey) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 9f79d585867..3ecb4e51e70 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -457,4 +457,67 @@ var/global/datum/controller/gameticker/ticker scoreboard() + if(bomberman_mode) + var/icon/bomberhead = icon('icons/obj/clothing/hats.dmi', "bomberman") + var/icon/bronze = icon('icons/obj/bomberman.dmi', "bronze") + var/icon/silver = icon('icons/obj/bomberman.dmi', "silver") + var/icon/gold = icon('icons/obj/bomberman.dmi', "gold") + var/icon/platinum = icon('icons/obj/bomberman.dmi', "platinum") + + var/list/bronze_tier = list() + for (var/mob/living/carbon/M in player_list) + if(locate(/obj/item/weapon/bomberman/) in M) + bronze_tier += M + var/list/silver_tier = list() + for (var/mob/M in bronze_tier) + if(M.z == map.zCentcomm) + silver_tier += M + bronze_tier -= M + var/list/gold_tier = list() + for (var/mob/M in silver_tier) + var/turf/T = get_turf(M) + if(istype(T.loc, /area/shuttle/escape/centcom)) + gold_tier += M + silver_tier -= M + var/list/platinum_tier = list() + for (var/mob/living/carbon/human/M in gold_tier) + if(istype(M.wear_suit, /obj/item/clothing/suit/space/bomberman) && istype(M.head, /obj/item/clothing/head/helmet/space/bomberman)) + var/obj/item/clothing/suit/space/bomberman/C1 = M.wear_suit + var/obj/item/clothing/head/helmet/space/bomberman/C2 = M.head + if(C1.never_removed && C2.never_removed) + platinum_tier += M + gold_tier -= M + + var/list/special_tier = list() + for (var/mob/living/silicon/robot/mommi/M in player_list) + if(istype(M.head_state, /obj/item/clothing/head/helmet/space/bomberman) && istype(M.tool_state, /obj/item/weapon/bomberman/)) + special_tier += M + + var/text = "\icon[bomberhead] Bomberman Mode Results \icon[bomberhead]" + if(!platinum_tier.len && !gold_tier.len && !silver_tier.len && !bronze_tier.len) + text += "
DRAW!" + if(platinum_tier.len) + text += "
\icon[platinum] Platinum Trophy (never removed his clothes, kept his bomb dispenser until the end, and escaped on the shuttle):" + for (var/mob/M in platinum_tier) + text += "
[M.real_name]" + if(gold_tier.len) + text += "
\icon[gold] Gold Trophy (kept his bomb dispenser until the end, and escaped on the shuttle):" + for (var/mob/M in gold_tier) + text += "
[M.real_name]" + if(silver_tier.len) + text += "
\icon[silver] Silver Trophy (kept his bomb dispenser until the end, and escaped in a pod):" + for (var/mob/M in silver_tier) + text += "
[M.real_name]" + if(bronze_tier.len) + text += "
\icon[bronze] Bronze Trophy (kept his bomb dispenser until the end):" + for (var/mob/M in bronze_tier) + text += "
[M.real_name]" + if(special_tier.len) + text += "
Special Mention to those adorable MoMMis:" + for (var/mob/M in special_tier) + text += "
[M]" + + + world << text + return 1 diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index f698ed7f90d..d737354d0d8 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -173,10 +173,10 @@ O.find_target() /datum/game_mode/heist/proc/greet_vox(const/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 Exodus 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 = 0 @@ -230,7 +230,7 @@ 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]") diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 5a54626a89c..c9f1dc44ca4 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -48,7 +48,7 @@ rcd light flash thingy on matter drain for(var/mob/living/silicon/ai/ai in player_list) ai.fire_res_on_core = 1 src.verbs -= /mob/living/silicon/ai/proc/fireproof_core - src << "\red Core fireproofed." + src << "Core fireproofed." /datum/AI_Module/large/upgrade_turrets module_name = "AI Turret upgrade" @@ -105,7 +105,7 @@ rcd light flash thingy on matter drain if(overload.uses > 0) overload.uses -- for(var/mob/V in hearers(M, null)) - V.show_message("\blue You hear a loud electrical buzzing sound!", 2) + V.show_message("You hear a loud electrical buzzing sound!", 2) spawn(50) explosion(get_turf(M), -1, 1, 2, 3) //C4 Radius + 1 Dest for the machine qdel(M) diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 7f9f3c20356..2f187595dfa 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -50,7 +50,7 @@ Rebooting world in 5 seconds."} blackbox.save_all_data_to_sql() 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 sleep(50) diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm index bd645759ad2..0ce49e6b83e 100644 --- a/code/game/gamemodes/meme/meme.dm +++ b/code/game/gamemodes/meme/meme.dm @@ -127,7 +127,7 @@ /datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1) if (you_are) - meme.current << "\red You are a meme!" + meme.current << "You are a meme!" var/obj_count = 1 for(var/datum/objective/objective in meme.objectives) @@ -161,10 +161,10 @@ var/count = 1 for(var/datum/objective/objective in meme.objectives) if(objective.check_completion()) - world << "Objective #[count]: [objective.explanation_text] \green Success" + world << "Objective #[count]: [objective.explanation_text] Success" feedback_add_details("meme_objective","[objective.type]|SUCCESS") else - world << "Objective #[count]: [objective.explanation_text] \red Failed" + world << "Objective #[count]: [objective.explanation_text] Failed" feedback_add_details("meme_objective","[objective.type]|FAIL") memewin = 0 count++ diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 46f26334cce..63e32e89437 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -196,7 +196,7 @@ /datum/game_mode/proc/greet_syndicate(var/datum/mind/syndicate, var/you_are=1) if (you_are) - syndicate.current << "\blue You are a [syndicate_name()] agent!" + syndicate.current << "You are a [syndicate_name()] agent!" var/obj_count = 1 for(var/datum/objective/objective in syndicate.objectives) syndicate.current << "Objective #[obj_count]: [objective.explanation_text]" @@ -236,7 +236,7 @@ if(istype(synd_mob.species, /datum/species/vox)) synd_mob.equip_or_collect(new /obj/item/clothing/mask/breath/vox(synd_mob), slot_wear_mask) synd_mob.equip_to_slot_or_del(new/obj/item/weapon/tank/nitrogen(synd_mob), slot_r_hand) - synd_mob << "\blue You are now running on nitrogen internals from the [slot_r_hand] in your right hand. Your species finds oxygen toxic, so you must breathe nitrogen (AKA N2) only." + synd_mob << "You are now running on nitrogen internals from the [slot_r_hand] in your right hand. Your species finds oxygen toxic, so you must breathe nitrogen (AKA N2) only." synd_mob.internal = synd_mob.get_item_by_slot(tank_slot) if (synd_mob.internals) synd_mob.internals.icon_state = "internal1" diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index de82ac75f11..5185905aefd 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -38,7 +38,7 @@ var/bomb_set /obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob) if (src.extended) if (istype(O, /obj/item/weapon/disk/nuclear)) - usr.drop_item(src) + usr.drop_item(O, src) src.auth = O src.add_fingerprint(user) return @@ -51,7 +51,7 @@ var/bomb_set var/obj/item/weapon/weldingtool/WT = O 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 user.visible_message("[user] starts cutting loose the anchoring bolt covers on [src].", "You start cutting loose the anchoring bolt covers with [O]...") @@ -159,7 +159,7 @@ var/bomb_set set name = "Make Deployable" set src in oview(1) - if (!usr || usr.stat || usr.lying) return + if (!usr || usr.stat || usr.lying || (usr.status_flags & FAKEDEATH)) return if (!ishuman(usr)) usr << "You don't have the dexterity to do this!" return @@ -176,7 +176,7 @@ var/bomb_set if (!usr.canmove || usr.stat || usr.restrained()) return if (!ishuman(usr)) - usr << "\red You don't have the dexterity to do this!" + usr << "You don't have the dexterity to do this!" return 1 if (istype(src.loc, /turf)) usr.set_machine(src) @@ -188,7 +188,7 @@ var/bomb_set else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/disk/nuclear)) - usr.drop_item(src) + usr.drop_item(I, src) src.auth = I if (src.auth) if (href_list["type"]) @@ -319,7 +319,7 @@ var/bomb_set 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 sleep(300) @@ -327,7 +327,9 @@ var/bomb_set world.Reboot() return return - +/** + * NOTE: Don't change it to Destroy(). + */ /obj/item/weapon/disk/nuclear/Del() if(blobstart.len > 0) var/picked_turf = get_turf(pick(blobstart)) diff --git a/code/game/gamemodes/revolution/anti_revolution.dm b/code/game/gamemodes/revolution/anti_revolution.dm index 710b96e797e..bbac23b2e42 100644 --- a/code/game/gamemodes/revolution/anti_revolution.dm +++ b/code/game/gamemodes/revolution/anti_revolution.dm @@ -99,8 +99,8 @@ /datum/game_mode/proc/greet_head(var/datum/mind/head_mind, var/you_are=1) var/obj_count = 1 if (you_are) - head_mind.current << "\blue It looks like this shift CentComm has some special orders for you.. check your objectives." - head_mind.current << "\blue Note that you can ignore these objectives, but resisting NT's orders probably means demotion or worse." + head_mind.current << "It looks like this shift CentComm has some special orders for you.. check your objectives." + head_mind.current << "Note that you can ignore these objectives, but resisting NT's orders probably means demotion or worse." for(var/datum/objective/objective in head_mind.objectives) head_mind.current << "Objective #[obj_count]: [objective.explanation_text]" head_mind.special_role = "Corrupt Head" @@ -155,9 +155,9 @@ var/text = "" if(finished == 2) - world << "\red The heads of staff were relieved of their posts! The crew wins!" + world << " The heads of staff were relieved of their posts! The crew wins!" else if(finished == 1) - world << "\red The heads of staff managed to meet the goals set for them by CentComm!" + world << " The heads of staff managed to meet the goals set for them by CentComm!" @@ -219,4 +219,4 @@ src.verbs -= /mob/proc/ResignFromHeadPosition - src << "\red You resigned from your position, now you have the consequences." \ No newline at end of file + src << "You resigned from your position, now you have the consequences." \ No newline at end of file diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 74f13215971..f25526bfa4e 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -118,7 +118,7 @@ /datum/game_mode/proc/greet_revolutionary(var/datum/mind/rev_mind, var/you_are=1) var/obj_count = 1 if (you_are) - rev_mind.current << "\blue You are a member of the revolutionaries' leadership!" + rev_mind.current << "You are a member of the revolutionaries' leadership!" for(var/datum/objective/objective in rev_mind.objectives) rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]" rev_mind.special_role = "Head Revolutionary" @@ -198,7 +198,7 @@ return -4 revolutionaries += rev_mind - rev_mind.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!" + rev_mind.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!" rev_mind.special_role = "Revolutionary" update_rev_icons_added(rev_mind) @@ -212,10 +212,10 @@ rev_mind.special_role = null if(beingborged) - rev_mind.current << "\red The frame's firmware detects and deletes your neural reprogramming! You remember nothing from the moment you were flashed until now." + rev_mind.current << "The frame's firmware detects and deletes your neural reprogramming! You remember nothing from the moment you were flashed until now." else - rev_mind.current << "\red You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you..." + rev_mind.current << "You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you..." update_rev_icons_removed(rev_mind) for(var/mob/living/M in view(rev_mind.current)) @@ -358,10 +358,10 @@ /datum/game_mode/revolution/declare_completion() if(finished == 1) feedback_set_details("round_end_result","win - heads killed") - world << "\red The heads of staff were killed or abandoned the station! The revolutionaries win!" + world << " The heads of staff were killed or abandoned the station! The revolutionaries win!" else if(finished == 2) feedback_set_details("round_end_result","loss - rev heads killed") - world << "\red The heads of staff managed to stop the revolution!" + world << " The heads of staff managed to stop the revolution!" ..() return 1 diff --git a/code/game/gamemodes/revolution/rp-revolution.dm b/code/game/gamemodes/revolution/rp-revolution.dm index 7456e73403b..b794b2c6631 100644 --- a/code/game/gamemodes/revolution/rp-revolution.dm +++ b/code/game/gamemodes/revolution/rp-revolution.dm @@ -62,7 +62,7 @@ var/rev_number = 0 if(!revs_possible || !heads) - world << " \red Not enough players for RP revolution game mode. Restarting world in 5 seconds." + world << " Not enough players for RP revolution game mode. Restarting world in 5 seconds." sleep(50) world.Reboot() return @@ -88,7 +88,7 @@ for(var/datum/mind/rev_mind in head_revolutionaries) var/obj_count = 1 - rev_mind.current << "\blue You are a member of the revolutionaries' leadership!" + rev_mind.current << "You are a member of the revolutionaries' leadership!" for(var/datum/objective/objective in rev_mind.objectives) rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]" obj_count++ @@ -229,9 +229,9 @@ var/text = "" if(finished == 1) - world << "\red The heads of staff were relieved of their posts! The revolutionaries win!" + world << " The heads of staff were relieved of their posts! The revolutionaries win!" else if(finished == 2) - world << "\red The heads of staff managed to stop the revolution!" + world << " The heads of staff managed to stop the revolution!" world << "The head revolutionaries were: " for(var/datum/mind/rev_mind in head_revolutionaries) @@ -286,22 +286,22 @@ mob/living/carbon/human/proc set name = "Rev-Convert" if(((src.mind in ticker.mode:head_revolutionaries) || (src.mind in ticker.mode:revolutionaries))) if((M.mind in ticker.mode:head_revolutionaries) || (M.mind in ticker.mode:revolutionaries)) - src << "\red [M] is already be a revolutionary!" + src << "[M] is already be a revolutionary!" else if(src.mind in ticker.mode:get_unconvertables()) - src << "\red [M] cannot be a revolutionary!" + src << "[M] cannot be a revolutionary!" else if(world.time < M.mind.rev_cooldown) - src << "\red Wait five seconds before reconversion attempt." + src << "Wait five seconds before reconversion attempt." return - src << "\red Attempting to convert [M]..." + src << "Attempting to convert [M]..." log_admin("[src]([src.ckey]) attempted to convert [M].") - message_admins("\red [src]([src.ckey]) attempted to convert [M].") + message_admins("[src]([src.ckey]) attempted to convert [M].") var/choice = alert(M,"Asked by [src]: Do you want to join the revolution?","Align Thyself with the Revolution!","No!","Yes!") if(choice == "Yes!") ticker.mode:add_revolutionary(M.mind) - M << "\blue You join the revolution!" - src << "\blue [M] joins the revolution!" + M << "You join the revolution!" + src << "[M] joins the revolution!" else if(choice == "No!") - M << "\red You reject this traitorous cause!" - src << "\red [M] does not support the revolution!" + M << "You reject this traitorous cause!" + src << "[M] does not support the revolution!" M.mind.rev_cooldown = world.time+50 \ No newline at end of file diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 6a3f6edf6fa..02c808cf934 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -80,7 +80,7 @@ /datum/game_mode/revolution/rp_revolution/greet_revolutionary(var/datum/mind/rev_mind, var/you_are=1) var/obj_count = 1 if (you_are) - rev_mind.current << "\blue You are a member of the revolutionaries' leadership!" + rev_mind.current << "You are a member of the revolutionaries' leadership!" for(var/datum/objective/objective in rev_mind.objectives) rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]" rev_mind.special_role = "Head Revolutionary" @@ -108,7 +108,7 @@ if((rev_mind in revolutionaries) || (rev_mind in head_revolutionaries)) return 0 revolutionaries += rev_mind - rev_mind.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, capture or convert the heads to win the revolution!" + rev_mind.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, capture or convert the heads to win the revolution!" rev_mind.special_role = "Revolutionary" update_rev_icons_added(rev_mind) return 1 @@ -142,10 +142,10 @@ /datum/game_mode/revolution/rp_revolution/declare_completion() if(finished == 1) feedback_set_details("round_end_result","win - heads overthrown") - world << "\red The heads of staff were overthrown! The revolutionaries win!" + world << " The heads of staff were overthrown! The revolutionaries win!" else if(finished == 2) feedback_set_details("round_end_result","loss - revolution stopped") - world << "\red The heads of staff managed to stop the revolution!" + world << " The heads of staff managed to stop the revolution!" ..() return 1 @@ -161,24 +161,24 @@ set category = "IC" if(((src.mind in ticker.mode:head_revolutionaries) || (src.mind in ticker.mode:revolutionaries))) if((M.mind in ticker.mode:head_revolutionaries) || (M.mind in ticker.mode:revolutionaries)) - src << "\red [M] is already be a revolutionary!" + src << "[M] is already be a revolutionary!" else if(!ticker.mode:is_convertible(M)) - src << "\red [M] is implanted with a loyalty implant - Remove it first!" + src << "[M] is implanted with a loyalty implant - Remove it first!" else if(world.time < M.mind.rev_cooldown) - src << "\red Wait five seconds before reconversion attempt." + src << "Wait five seconds before reconversion attempt." return - src << "\red Attempting to convert [M]..." + src << "Attempting to convert [M]..." log_admin("[src]([src.ckey]) attempted to convert [M].") - message_admins("\red [src]([src.ckey]) attempted to convert [M].") + message_admins("[src]([src.ckey]) attempted to convert [M].") var/choice = alert(M,"Asked by [src]: Do you want to join the revolution?","Align Thyself with the Revolution!","No!","Yes!") if(choice == "Yes!") ticker.mode:add_revolutionary(M.mind) - M << "\blue You join the revolution!" - src << "\blue [M] joins the revolution!" + M << "You join the revolution!" + src << "[M] joins the revolution!" else if(choice == "No!") - M << "\red You reject this traitorous cause!" - src << "\red [M] does not support the revolution!" + M << "You reject this traitorous cause!" + src << "[M] does not support the revolution!" M.mind.rev_cooldown = world.time+50 /datum/game_mode/revolution/rp_revolution/process() @@ -205,7 +205,7 @@ update_rev_icons_added(H.mind) H.verbs += /mob/living/carbon/human/proc/RevConvert - H << "\red Congratulations, yer heads of revolution are all gone now, so yer earned yourself a promotion." + H << "Congratulations, yer heads of revolution are all gone now, so yer earned yourself a promotion." added_heads = 1 break @@ -251,4 +251,4 @@ rev_obj.target = M.mind rev_obj.explanation_text = "Assassinate, convert or capture [M.real_name], the [M.mind.assigned_role]." rev_mind.objectives += rev_obj - rev_mind.current << "\red A new Head of Staff, [M.real_name], the [M.mind.assigned_role] has appeared. Your objectives have been updated." \ No newline at end of file + rev_mind.current << "A new Head of Staff, [M.real_name], the [M.mind.assigned_role] has appeared. Your objectives have been updated." \ No newline at end of file diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm index 4c5b48f47ab..5ae81d4903d 100644 --- a/code/game/gamemodes/steal_items.dm +++ b/code/game/gamemodes/steal_items.dm @@ -34,30 +34,29 @@ L += get_contents(D.wrapped) return L -/datum/theft_objective/proc/check_completion(var/datum/mind/owner) - if(!owner.current) - return 0 - var/list/all_items = list() - if(isliving(owner.current)) - all_items = owner.current.get_contents() - if(areas.len) - for(var/areatype in areas) - var/area/area = locate(areatype) - for(var/obj/O in area) - all_items += O - all_items += get_contents(O) - if(all_items.len) - for(var/obj/I in all_items) //Check for items - if(istype(I, typepath)) - //Stealing the cheap autoinjector doesn't count - if(istype(I, /obj/item/weapon/reagent_containers/hypospray/autoinjector)) - continue - if(areas.len) - if(!is_type_in_list(get_area_master(I),areas)) - continue - return 1 - return 0 +/datum/theft_objective/proc/check_completion(datum/mind/owner) + if (owner && owner.current) + var/all_items = new/list() + if (isliving(owner.current)) + all_items += get_contents_in_object(owner.current) + + for (var/area_type in areas) + all_items += get_contents_in_object(locate(area_type), /obj) + + for (var/obj/O in all_items) + + if (istype(O, typepath)) + if (istype(O, /obj/item/weapon/reagent_containers/hypospray/autoinjector)) // stealing the cheap autoinjector doesn't count + continue + + if (areas.len) + if (!is_type_in_list(get_area_master(O), areas)) + continue + + return 1 + + return 0 /datum/theft_objective/traitor/antique_laser_gun name = "the captain's antique laser gun" diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 4d1691ad255..084daa978e7 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -162,14 +162,18 @@ /datum/game_mode/proc/greet_traitor(var/datum/mind/traitor) - traitor.current << "You are the traitor." - traitor.current << sound('sound/voice/syndicate intro.ogg') - var/obj_count = 1 - for(var/datum/objective/objective in traitor.objectives) - traitor.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - return + traitor.current << {" + You are now a traitor! + "} + traitor.current << sound('sound/voice/syndicate intro.ogg') + + var/obj_count = 1 + + for (var/datum/objective/objective in traitor.objectives) + traitor.current << "Objective #[obj_count]: [objective.explanation_text]" + + obj_count++ /datum/game_mode/proc/finalize_traitor(var/datum/mind/traitor) if (istype(traitor.current, /mob/living/silicon)) @@ -201,12 +205,12 @@ //Begin code phrase. killer << "The Syndicate provided you with the following information on how to identify their agents:" if(prob(80)) - killer << "\red Code Phrase: \black [syndicate_code_phrase]" + killer << "Code Phrase: [syndicate_code_phrase]" killer.mind.store_memory("Code Phrase: [syndicate_code_phrase]") else killer << "Unfortunately, the Syndicate did not provide you with a code phrase." if(prob(80)) - killer << "\red Code Response: \black [syndicate_code_response]" + killer << "Code Response: [syndicate_code_response]" killer.mind.store_memory("Code Response: [syndicate_code_response]") else killer << "Unfortunately, the Syndicate did not provide you with a code response." @@ -321,12 +325,12 @@ if(!safety)//If they are not a rev. Can be added on to. traitor_mob << "The Syndicate provided you with the following information on how to identify other agents:" if(prob(80)) - traitor_mob << "\red Code Phrase: \black [syndicate_code_phrase]" + traitor_mob << "Code Phrase: [syndicate_code_phrase]" traitor_mob.mind.store_memory("Code Phrase: [syndicate_code_phrase]") else traitor_mob << "Unfortunetly, the Syndicate did not provide you with a code phrase." if(prob(80)) - traitor_mob << "\red Code Response: \black [syndicate_code_response]" + traitor_mob << "Code Response: [syndicate_code_response]" traitor_mob.mind.store_memory("Code Response: [syndicate_code_response]") else traitor_mob << "Unfortunately, the Syndicate did not provide you with a code response." @@ -400,4 +404,4 @@ traitor_mind.special_role = null update_traitor_icons_removed(traitor_mind) //world << "Removed [traitor_mind.current.name] from traitor shit" - traitor_mind.current << "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)" + traitor_mind.current << "The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)" diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index bfb529bb6b0..d90ad02005d 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -201,7 +201,7 @@ /datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1) var/dat if (you_are) - dat = "\red You are a Vampire! \black
" + dat = "You are a Vampire!
" dat += {"To bite someone, target the head and use harm intent with an empty hand. Drink blood to gain new powers. You are weak to holy things and starlight. Don't go into space and avoid the Chaplain, the chapel and especially Holy Water."} vampire.current << dat @@ -319,7 +319,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha bloodtotal = src.mind.vampire.bloodtotal bloodusable = src.mind.vampire.bloodusable if(!H.vessel.get_reagent_amount("blood")) - src << "\red They've got no blood left to give." + src << "They've got no blood left to give." break if(H.stat < 2) //alive blood = min(10, H.vessel.get_reagent_amount("blood"))// if they have less than 10 blood, give them the remnant else they get 10 blood @@ -365,7 +365,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha vamp.powers |= VAMP_BATS vamp.powers |= VAMP_SCREAM // Commented out until we can figured out a way to stop this from spamming. - //src << "\blue Your rejuvination abilities have improved and will now heal you over time when used." + //src << "Your rejuvination abilities have improved and will now heal you over time when used." // TIER 3.5 (/vg/) if(vamp.bloodtotal >= 250) @@ -503,7 +503,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha update_vampire_icons_removed(vampire_mind) vampire_mind.current.unsubLife(src) //world << "Removed [vampire_mind.current.name] from vampire shit" - vampire_mind.current << "\red The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now." + vampire_mind.current << "The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now." /mob/living/carbon/human/proc/check_sun() diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index aab5bace0d9..d8731c4c1d8 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -180,7 +180,7 @@ var/mob/living/carbon/C = M.current.vampire_active(50, 0, 1) if(!C) return if(!M.current.vampire_can_reach(C, 1)) - M.current << "You cannot touch [C.name] from where you are standing!" + M.current << "You cannot touch [C.name] from where you are standing!" return M.current << "You stealthily infect [C.name] with your diseased touch." C.help_shake_act(M.current) // i use da colon @@ -213,7 +213,7 @@ var/datum/mind/M = usr.mind if(!M) return if(M.current.vampire_power(0, 1)) - M.current.visible_message("[M.current.name]'s eyes emit a blinding flash!") + M.current.visible_message("[M.current.name]'s eyes emit a blinding flash!") //M.vampire.bloodusable -= 10 M.current.verbs -= /client/proc/vampire_glare spawn(300) @@ -274,7 +274,7 @@ if(C == M.current) continue if(ishuman(C) && C:is_on_ears(/obj/item/clothing/ears/earmuffs)) continue if(!C.vampire_affected(M)) continue - C << "You hear a ear piercing shriek and your senses dull!" + C << "You hear a ear piercing shriek and your senses dull!" C.Weaken(8) C.ear_deaf = 20 C.stuttering = 20 diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 492d79de46c..a292c763ef8 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -35,7 +35,7 @@ if(charged == 1) new /obj/effect/rend(get_turf(usr)) charged = 0 - visible_message("[src] hums with power as [usr] deals a blow to reality itself!") + visible_message("[src] hums with power as [usr] deals a blow to reality itself!") else user << "The unearthly energies that powered the blade are now dormant." @@ -49,7 +49,7 @@ if(charged) new /obj/effect/rend/cow(get_turf(usr)) charged = 0 - visible_message("[src] hums with power as [usr] deals a blow to hunger itself!") + visible_message("[src] hums with power as [usr] deals a blow to hunger itself!") else user << "The unearthly energies that powered the blade are now dormant." @@ -70,7 +70,7 @@ /obj/effect/rend/cow/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/nullrod)) - visible_message("[I] strikes a blow against \the [src], banishing it!") + visible_message("[I] strikes a blow against \the [src], banishing it!") spawn(1) del src return @@ -93,7 +93,7 @@ /obj/item/weapon/scrying/attack_self(mob/user as mob) user << "You can see...everything!" - visible_message("[usr] stares into [src], their eyes glazing over.") + visible_message("[usr] stares into [src], their eyes glazing over.") user.ghostize(1) return diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index 8a1adffaecf..a799f9ca95a 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -10,7 +10,7 @@ /datum/game_mode/wizard/announce() world << "The current game mode is - Ragin' Mages!" - world << "The \red Space Wizard Federation\black is pissed, help defeat all the space wizards!" + world << "The Space Wizard Federation is pissed, help defeat all the space wizards!" /datum/game_mode/wizard/raginmages/post_setup() var/playercount = 0 @@ -23,7 +23,7 @@ /datum/game_mode/wizard/raginmages/greet_wizard(var/datum/mind/wizard, var/you_are=1) if (you_are) - wizard.current << "\red You are the Space Wizard!" + wizard.current << "You are the Space Wizard!" wizard.current << "The Space Wizards Federation has given you the following tasks:" var/obj_count = 1 @@ -44,7 +44,7 @@ continue if(wizard.current.stat==1) if(wizard.current.health < 0) - wizard.current << "\red The Space Wizard Federation is upset with your performance and have terminated your employment." + wizard.current << "The Space Wizard Federation is upset with your performance and have terminated your employment." wizard.current.stat = 2 continue wizards_alive++ @@ -100,5 +100,5 @@ /datum/game_mode/wizard/raginmages/declare_completion() if(finished) feedback_set_details("round_end_result","loss - wizard killed") - world << "\red The crew has managed to hold off the wizard attack! The Space Wizards Federation has been taught a lesson they will not soon forget!" + world << " The crew has managed to hold off the wizard attack! The Space Wizards Federation has been taught a lesson they will not soon forget!" ..(1) \ No newline at end of file diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 924871f7821..3f917aee032 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -110,4 +110,4 @@ H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) H.see_in_dark = 8 H.see_invisible = SEE_INVISIBLE_LEVEL_TWO - H << "\blue The walls suddenly disappear." + H << "The walls suddenly disappear." diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 8bff37a3a8b..de38ec39155 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -120,16 +120,16 @@ return if(C.imprinted != "empty") - U << "\red Capture failed!: \black The soul stone has already been imprinted with [C.imprinted]'s mind!" + U << "Capture failed!: The soul stone has already been imprinted with [C.imprinted]'s mind!" else if (T.stat == CONSCIOUS) - U << "\red Capture failed!: \black Kill or maim the victim first!" + U << "Capture failed!: Kill or maim the victim first!" else if(T.isInCrit() || T.stat == DEAD) if(T.client == null) - U << "\red Capture failed!: \black The soul has already fled it's mortal frame." + U << "Capture failed!: The soul has already fled it's mortal frame." else if(C.contents.len) - U << "\red Capture failed!: \black The soul stone is full! Use or free an existing soul to make room." + U << "Capture failed!: The soul stone is full! Use or free an existing soul to make room." else for(var/obj/item/W in T) T.drop_from_inventory(W) @@ -154,7 +154,7 @@ C.icon_state = "soulstone2" C.name = "Soul Stone: [S.real_name]" S << "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs." - U << "\blue Capture successful!: \black [T.real_name]'s soul has been ripped from their body and stored within the soul stone." + U << "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone." U << "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls." C.imprinted = "[S.name]" var/ref = "\ref[U.mind]" @@ -172,13 +172,13 @@ var/mob/living/simple_animal/shade/T = target var/obj/item/device/soulstone/C = src if (T.stat == DEAD) - U << "\red Capture failed!: \black The shade has already been banished!" + U << "Capture failed!: The shade has already been banished!" else if(C.contents.len) - U << "\red Capture failed!: \black The soul stone is full! Use or free an existing soul to make room." + U << "Capture failed!: The soul stone is full! Use or free an existing soul to make room." else if(T.name != C.imprinted) - U << "\red Capture failed!: \black The soul stone has already been imprinted with [C.imprinted]'s mind!" + U << "Capture failed!: The soul stone has already been imprinted with [C.imprinted]'s mind!" else T.loc = C //put shade in stone T.status_flags |= GODMODE @@ -186,7 +186,7 @@ T.health = T.maxHealth C.icon_state = "soulstone2" T << "Your soul has been recaptured by the soul stone, its arcane energies are reknitting your ethereal form" - U << "\blue Capture successful!: \black [T.name]'s has been recaptured and stored within the soul stone." + U << "Capture successful!: [T.name]'s has been recaptured and stored within the soul stone." if("CONSTRUCT") var/obj/structure/constructshell/T = target var/obj/item/device/soulstone/C = src @@ -252,7 +252,7 @@ ticker.mode.update_necro_icons_added(Z.mind) ticker.mode.risen.Add(Z.mind) else - U << "Creation failed!: \black The soul stone is empty! Go kill someone!" + U << "Creation failed!: The soul stone is empty! Go kill someone!" ticker.mode.update_all_necro_icons() if(deleteafter) for(var/atom/A in src)//we get rid of the empty shade once we've transferred its mind to the construct, so it isn't dropped on the floor when the soulstone is destroyed. diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index ff33d70e44f..4f08f8c7be7 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -71,13 +71,15 @@ This spell will curse a person to wear an unremovable horse mask (it has glue on the inside) and speak like a horse. It does not require wizard garb.
The French Curse (30)
This spell silences sombody adjacent to you, and curses them with an unremovable Mime costume.
+ Shoe Snatching Charm (15)
+ This spell will remove your victim's shoes and materialize them in your hands. This spell does not require robes to cast.
Flesh to Stone (60)
This spell will curse a person to immediately turn into an unmoving statue. The effect will eventually wear off if the statue is not destroyed.
Butt-Bot's Revenge (50)
Summon the power of the butt gods to remove the anus of your enemy.
[!istype(ticker.mode, /datum/game_mode/wizard/raginmages) ? "Summon Guns (One time use, global spell)
Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill eachother. Just be careful not to get hit in the crossfire!
" : ""] Summon Chariot (1/1)
- Summon the most badass ride in all of wizardry. It can phase through walls, and is just badass.
+ Summon the most badass ride in all of wizardry.
Remove Clothes Requirement Warning: this takes away 2 spell choices.

Artefacts:
@@ -243,6 +245,10 @@ feedback_add_details("wizard_spell_learned","FC") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/targeted/frenchcurse) temp = "You have learned the french curse." + if("shoesnatch") + feedback_add_details("wizard_spell_learned","SS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells + H.add_spell(new/spell/targeted/shoesnatch) + temp = "You have learned the shoe snatching charm." if("fleshtostone") feedback_add_details("wizard_spell_learned","FS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/targeted/flesh_to_stone) @@ -312,7 +318,7 @@ H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) H.see_in_dark = 8 H.see_invisible = SEE_INVISIBLE_LEVEL_TWO - H << "\blue The walls suddenly disappear." + H << "The walls suddenly disappear." temp = "You have purchased a scrying orb, and gained x-ray vision." max_uses-- if("chariot") diff --git a/code/game/gamemodes/wizard/veilrender.dm b/code/game/gamemodes/wizard/veilrender.dm index 225158465fa..21d8d017822 100644 --- a/code/game/gamemodes/wizard/veilrender.dm +++ b/code/game/gamemodes/wizard/veilrender.dm @@ -33,7 +33,7 @@ if(charged == 1) new /obj/effect/rend(get_turf(usr)) charged = 0 - visible_message("\red [src] hums with power as [usr] deals a blow to reality itself!") + visible_message("[src] hums with power as [usr] deals a blow to reality itself!") else - user << "\red The unearthly energies that powered the blade are now dormant" + user << "The unearthly energies that powered the blade are now dormant" diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 2881ee0d758..7249df9e549 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -23,7 +23,7 @@ /datum/game_mode/wizard/announce() world << "The current game mode is - Wizard!" - world << "There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!" + world << "There is a SPACE WIZARD on the station. You can't let him achieve his objective!" /datum/game_mode/wizard/can_start()//This could be better, will likely have to recode it later @@ -50,7 +50,7 @@ wizard.special_role = "Wizard" wizard.original = wizard.current 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!" return 0 return 1 @@ -146,7 +146,7 @@ /datum/game_mode/proc/greet_wizard(var/datum/mind/wizard, var/you_are=1) if (you_are) - wizard.current << "\red You are the Space Wizard!" + wizard.current << "You are the Space Wizard!" wizard.current << "The Space Wizards Federation has given you the following tasks:" var/obj_count = 1 @@ -235,7 +235,7 @@ /datum/game_mode/wizard/declare_completion(var/ragin = 0) if(finished && !ragin) feedback_set_details("round_end_result","loss - wizard killed") - world << "\red The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" + world << " The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" ..() return 1 @@ -294,7 +294,7 @@ //To batch-remove wizard spells. Linked to mind.dm. /mob/proc/spellremove(var/mob/M as mob) for(var/spell/spell_to_remove in src.spell_list) - del(spell_to_remove) + remove_spell(spell_to_remove) // Does this clothing slot count as wizard garb? (Combines a few checks) /proc/is_wiz_garb(var/obj/item/clothing/C) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index da5359f35f6..d652b07fa6b 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -258,6 +258,8 @@ else H.equip_or_collect(new /obj/item/clothing/under/rank/clown(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/shoes/clown_shoes(H), slot_shoes) + H.real_name = pick(clown_names) + H.rename_self("clown") return 1 @@ -299,6 +301,7 @@ H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(H), slot_in_backpack) H.add_spell(new /spell/aoe_turf/conjure/forcewall/mime, "grey_spell_ready") H.miming = 1 + H.rename_self("mime") return 1 diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 7742c191d4a..f33119de47d 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -17,7 +17,7 @@ var/global/datum/controller/occupations/job_master occupations = list() var/list/all_jobs = typesof(/datum/job) if(!all_jobs.len) - world << "\red \b Error setting up jobs, no job datums found" + world << "Error setting up jobs, no job datums found" return 0 for(var/J in all_jobs) var/datum/job/job = new J() @@ -385,7 +385,7 @@ var/global/datum/controller/occupations/job_master H.mind.store_memory(remembered_info) spawn(0) - H << "\blueYour account number is: [M.account_number], your account pin is: [M.remote_access_pin]" + H << "Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]" var/alt_title = null if(H.mind) diff --git a/code/game/jobs/job_objective.dm b/code/game/jobs/job_objective.dm index 2720ec0cfd1..1e7be83ecba 100644 --- a/code/game/jobs/job_objective.dm +++ b/code/game/jobs/job_objective.dm @@ -100,7 +100,7 @@ var/hopobjectives = pick("Require that staff take a daily exercise regiment.", " var/assistantobjectives = pick("Get a haircut.", "Get a real job.", "Don't be a slob.", "Start your own business.", "Become a salesman.","Befriend a clown.", "Convince a mime to speak.") var/touristobjectives = pick("Take pictures of all the things. All of them.", "Befriend a clown.", "Convince a mime to speak.", "Get hired on the station.", "Become an assistant.", "Escape with your camera.") var/clownobjectives = pick("You are a mouse.", "Grunt ominously whenever possible.", "Epilepsy is fun, flicker lights whenever you can!", "Your name is Joe 6-pack.", "Refer to humans as puppies.", "Insult heads of staff on every request, while acquiescing.", "Advertise parties in your office, but don't deliver.", "Prevent non-dwarves from operating the power core.", "The ship needs elected officials.", "Only bearded people are human.", "Turn on the microphone on every intercom you see.", "Wrench is a lightbulb.", "Toolbox is a medkit.", "Everyone is wearing a pretty pink dress!", "The monkeys are plotting a hostile takeover of the ship. Inform the crew, and get them to take action against this", "Refer to the captain as \"Princess\" at all times.", "The crew must construct additional pylons.", "You must always lie.", "All answers must be in the form of a question.", "The station is an airplane.", "Happiness is mandatory.", "Today is laundry day.", "The word \"it\" is painful to you.", "You must act passive aggressively.", "Crew ranks have been reversed.", "It's Friday.", "It's backwards day.", "Give relationship advice to anyone who speaks to you.", "You are the ship psychologist. Give advice to the crew.", "You do not have to do anything for anyone unless they say \"please\"." ) - var/mimeobjectives = pick("...", "...", "...", "...", "...", "...", "\red The narrator appears to try gesturing your objective to you, but fails miserably.") + var/mimeobjectives = pick("...", "...", "...", "...", "...", "...", "The narrator appears to try gesturing your objective to you, but fails miserably.") var/chaplainobjectives = pick("Convert at least three other people to your religion..", "Hold a proper space burial.", "Build a shrine to your deity.", "Collect Ð18 in donations.", "Start a cult.", "Get someone to confess.", "Do your own radio show over the intercoms and accept calls.") //Civilian Jobs diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 2f5772b7ad2..4c4d92428b6 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -47,8 +47,8 @@ /obj/machinery/optable/attack_paw(mob/user as mob) if ((M_HULK in usr.mutations)) - usr << text("\blue You destroy the operating table.") - visible_message("\red [usr] destroys the operating table!") + usr << text("You destroy the operating table.") + visible_message("[usr] destroys the operating table!") src.density = 0 del(src) if (!( locate(/obj/machinery/optable, user.loc) )) @@ -60,8 +60,8 @@ /obj/machinery/optable/attack_hand(mob/user as mob) if (M_HULK in usr.mutations) - usr << text("\blue You destroy the table.") - visible_message("\red [usr] destroys the operating table!") + usr << text("You destroy the table.") + visible_message("[usr] destroys the operating table!") src.density = 0 del(src) return @@ -79,7 +79,7 @@ if ((( istype(O, /obj/item/weapon) ) || user.get_active_hand() == O)) - user.drop_item() + user.drop_item(O) if (O.loc != src.loc) step(O, get_dir(O, src)) return @@ -106,7 +106,7 @@ L.client.eye = src L.resting = 1 L.loc = src.loc - visible_message("\red [L] has been laid on the operating table by [user].", 3) + visible_message("[L] has been laid on the operating table by [user].", 3) for(var/obj/OO in src) OO.loc = src.loc src.add_fingerprint(user) @@ -133,7 +133,7 @@ if (C == user) user.visible_message("[user] climbs on the operating table.","You climb on the operating table.") else - visible_message("\red [C] has been laid on the operating table by [user].", 3) + visible_message("[C] has been laid on the operating table by [user].", 3) if (C.client) C.client.perspective = EYE_PERSPECTIVE C.client.eye = src @@ -154,11 +154,11 @@ set category = "Object" set src in oview(1) - if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained()) + if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained() || (usr.status_flags & FAKEDEATH)) return if(src.victim) - usr << "\blue The table is already occupied!" + usr << "The table is already occupied!" return take_victim(usr,usr) @@ -170,5 +170,5 @@ del(W) return if(isrobot(user)) return - user.drop_item(src.loc) + user.drop_item(W, src.loc) return \ No newline at end of file diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0f328a06c34..b5bd31ffa54 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -94,11 +94,11 @@ if (src.connected) if (src.connected.occupant) if (src.connected.occupant.stat == DEAD) - usr << "\red \b This person has no life for to preserve anymore. Take them to a department capable of reanimating them." + usr << "This person has no life for to preserve anymore. Take them to a department capable of reanimating them." else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline") src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"])) else - usr << "\red \b This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" + usr << "This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" if (href_list["refresh"]) src.updateUsrDialog() src.add_fingerprint(usr) @@ -177,7 +177,7 @@ if(!istype(L) || L.buckled) return if(L.abiotic()) - user << "\blue 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) @@ -190,7 +190,7 @@ if(do_after(user, 20)) if(src.occupant) - user << "\blue The sleeper is already occupied!" + user << "The sleeper is already occupied!" return if(!L || L.buckled) return @@ -202,7 +202,7 @@ src.icon_state = "sleeper_1" if(orient == "RIGHT") icon_state = "sleeper_1-r" - L << "\blue You feel cool air surround you. You go numb as your senses turn inward." + L << "You feel cool air surround you. You go numb as your senses turn inward." for(var/obj/OO in src) OO.loc = src.loc src.add_fingerprint(user) @@ -234,7 +234,7 @@ return if(G.affecting.buckled) return if(src.occupant) - user << "\blue The sleeper is already occupied!" + user << "The sleeper is already occupied!" return for(var/mob/living/carbon/slime/M in range(1,G.affecting)) @@ -246,7 +246,7 @@ if(do_after(user, 20)) if(src.occupant) - user << "\blue The sleeper is already occupied!" + user << "The sleeper is already occupied!" return if(!G || !G.affecting) return var/mob/M = G.affecting @@ -261,7 +261,7 @@ if(orient == "RIGHT") icon_state = "sleeper_1-r" - M << "\blue You feel cool air surround you. You go numb as your senses turn inward." + M << "You feel cool air surround you. You go numb as your senses turn inward." for(var/obj/O in src) O.loc = src.loc @@ -347,7 +347,7 @@ /obj/machinery/sleeper/proc/check(mob/living/user as mob) if(src.occupant) - user << text("\blue Occupant ([]) Statistics:", src.occupant) + user << text("Occupant ([]) Statistics:", src.occupant) var/t1 switch(src.occupant.stat) if(0.0) @@ -357,16 +357,16 @@ if(2.0) t1 = "*dead*" else - user << text("[]\t Health %: [] ([])", (src.occupant.health > 50 ? "\blue " : "\red "), src.occupant.health, t1) + user << text("[]\t Health %: [] ([])", (src.occupant.health > 50 ? "" : ""), src.occupant.health, t1) user << text("[]\t -Core Temperature: []°C ([]°F)
", (src.occupant.bodytemperature > 50 ? "" : ""), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67) - user << text("[]\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "\blue " : "\red "), src.occupant.getBruteLoss()) - user << text("[]\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "\blue " : "\red "), src.occupant.getOxyLoss()) - user << text("[]\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "\blue " : "\red "), src.occupant.getToxLoss()) - user << text("[]\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "\blue " : "\red "), src.occupant.getFireLoss()) - user << "\blue Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)" - user << text("\blue \t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5) + user << text("[]\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "" : ""), src.occupant.getBruteLoss()) + user << text("[]\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "" : ""), src.occupant.getOxyLoss()) + user << text("[]\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "" : ""), src.occupant.getToxLoss()) + user << text("[]\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "" : ""), src.occupant.getFireLoss()) + user << "Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)" + user << text("\t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5) else - user << "\blue There is no one inside!" + user << "There is no one inside!" return @@ -374,7 +374,7 @@ set name = "Eject Sleeper" set category = "Object" set src in oview(1) - if(usr.stat != 0) + if(usr.stat != 0 || (usr.status_flags & FAKEDEATH)) return if(orient == "RIGHT") icon_state = "sleeper_0-r" @@ -388,13 +388,13 @@ set name = "Enter Sleeper" set category = "Object" set src in oview(1) - if(usr.stat != 0 || !(ishuman(usr) || ismonkey(usr))) + if(usr.stat != 0 || !(ishuman(usr) || ismonkey(usr)) || (usr.status_flags & FAKEDEATH)) return if(src.occupant) - usr << "\blue The sleeper is already occupied!" + usr << "The sleeper is already occupied!" 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 for(var/mob/living/carbon/slime/M in range(1,usr)) if(M.Victim == usr) @@ -405,7 +405,7 @@ visible_message("[usr] starts climbing into the sleeper.", 3) if(do_after(usr, 20)) if(src.occupant) - usr << "\blue The sleeper is already occupied!" + usr << "The sleeper is already occupied!" return if(usr.buckled) return diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 872b9eac843..36615d760f0 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -83,7 +83,7 @@ set category = "Object" set name = "Eject Body Scanner" - if(usr.stat != 0) + if(usr.stat != 0 || (usr.status_flags & FAKEDEATH)) return src.go_out() add_fingerprint(usr) @@ -94,7 +94,7 @@ set category = "Object" set name = "Enter Body Scanner" - if(usr.stat != 0) + if(usr.stat != 0 || (usr.status_flags & FAKEDEATH)) return if(src.occupant) usr << "\The [src] is already occupied!" diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index a1263d3851e..63ee228658d 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -305,7 +305,7 @@ obj/machinery/access_button/update_icon() obj/machinery/access_button/attack_hand(mob/user) add_fingerprint(usr) if(!allowed(user)) - user << "\red Access Denied" + user << "Access Denied" else if(radio_connection) var/datum/signal/signal = new diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index bbcd2d17c73..e35f741a945 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -190,14 +190,14 @@ /obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(iswelder(W) && src.destroyed) if(weld(W, user)) - user << "\blue You salvage whats left of \the [src]" + user << "You salvage whats left of \the [src]" var/obj/item/stack/sheet/metal/M = getFromPool(/obj/item/stack/sheet/metal, get_turf(src))//new /obj/item/stack/sheet/metal(src.loc) M.amount = 3 del src return if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda)) - visible_message("\red [user] hits the [src] with a [W]!") + visible_message("[user] hits the [src] with a [W]!") investigation_log(I_ATMOS, "was smacked with \a [W] by [key_name(user)]") src.health -= W.force src.add_fingerprint(user) diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 6c3b7c6bb5c..f621a0835f5 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -88,7 +88,7 @@ if (src.holding) return var/obj/item/weapon/tank/T = W - user.drop_item(src) + user.drop_item(T, src) src.holding = T update_icon() return @@ -96,24 +96,24 @@ else if (istype(W, /obj/item/weapon/wrench)) if(connected_port) disconnect() - user << "\blue You disconnect [name] from the port." + user << "You disconnect [name] from the port." update_icon() return else var/obj/machinery/atmospherics/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/unary/portables_connector/) in loc if(possible_port) if(connect(possible_port)) - user << "\blue You connect [name] to the port." + user << "You connect [name] to the port." var/datum/gas/sleeping_agent/S = locate() in src.air_contents.trace_gases if(src.air_contents.toxins > 0 || (istype(S))) log_admin("[usr]([ckey(usr.key)]) connected a canister that contains \[[src.air_contents.toxins > 0 ? "Toxins" : ""] [istype(S) ? " N2O" : ""]\] to a connector_port at [loc.x], [loc.y], [loc.z]") update_icon() return else - user << "\blue [name] failed to connect to the port." + user << "[name] failed to connect to the port." return else - user << "\blue Nothing happens." + user << "Nothing happens." return else if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index c96a42e2cc4..2d7d8daa4ef 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -38,7 +38,7 @@ name = "[name] (ID [id])" attack_hand(var/mob/user as mob) - usr << "\blue You can't directly interact with this machine. Use the area atmos computer." + usr << "You can't directly interact with this machine. Use the area atmos computer." update_icon() src.overlays = 0 @@ -51,12 +51,12 @@ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) if(on) - user << "\blue Turn it off first!" + user << "Turn it off first!" return anchored = !anchored playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You [anchored ? "wrench" : "unwrench"] \the [src]." + user << "You [anchored ? "wrench" : "unwrench"] \the [src]." return @@ -67,7 +67,7 @@ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) - user << "\blue The bolts are too tight for you to unscrew!" + user << "The bolts are too tight for you to unscrew!" return ..() diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm index f82c268db4c..b2e4d5002bb 100644 --- a/code/game/machinery/bees_apiary.dm +++ b/code/game/machinery/bees_apiary.dm @@ -50,29 +50,29 @@ return if(istype(O, /obj/item/queen_bee)) if(health > 0) - user << "\red There is already a queen in there." + user << "There is already a queen in there." else health = 10 nutrilevel += 10 - user.drop_item() + user.drop_item(O) qdel(O) - user << "\blue You carefully insert the queen into [src], she gets busy making a hive." + user << "You carefully insert the queen into [src], she gets busy making a hive." bees_in_hive = 0 else if(istype(O, /obj/item/beezeez)) beezeez += 100 nutrilevel += 10 - user.drop_item() + user.drop_item(O) if(health > 0) - user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up." + user << "You insert [O] into [src]. A relaxed humming appears to pick up." else - user << "\blue You insert [O] into [src]. Now it just needs some bees." + user << "You insert [O] into [src]. Now it just needs some bees." qdel(O) else if(istype(O, /obj/item/weapon/minihoe)) if(health > 0) - user << "\red You begin to dislodge the apiary from the tray, the bees don't like that." + user << "You begin to dislodge the apiary from the tray, the bees don't like that." angry_swarm(user) else - user << "\blue You begin to dislodge the dead apiary from the tray." + user << "You begin to dislodge the dead apiary from the tray." if(do_after(user, 50)) var/obj/machinery/created_tray = new hydrotray_type(src.loc) created_tray.component_parts = list() @@ -84,30 +84,30 @@ I.loc = created_tray contents -= I new /obj/item/apiary(src.loc) - user << "\red You dislodge the apiary from the tray." + user << "You dislodge the apiary from the tray." qdel(src) else if(istype(O, /obj/item/weapon/bee_net)) var/obj/item/weapon/bee_net/N = O if(N.caught_bees > 0) - user << "\blue You empty the bees into the apiary." + user << "You empty the bees into the apiary." bees_in_hive += N.caught_bees N.caught_bees = 0 else - user << "\blue There are no more bees in the net." + user << "There are no more bees in the net." else if(istype(O, /obj/item/weapon/reagent_containers/glass)) var/obj/item/weapon/reagent_containers/glass/G = O if(harvestable_honey > 0) if(health > 0) - user << "\red You begin to harvest the honey. The bees don't seem to like it." + user << "You begin to harvest the honey. The bees don't seem to like it." angry_swarm(user) else - user << "\blue You begin to harvest the honey." + user << "You begin to harvest the honey." if(do_after(user,50)) G.reagents.add_reagent("honey",harvestable_honey) harvestable_honey = 0 - user << "\blue You successfully harvest the honey." + user << "You successfully harvest the honey." else - user << "\blue There is no honey left to harvest." + user << "There is no honey left to harvest." else angry_swarm(user) @@ -253,5 +253,5 @@ if(toxic > 0) H.reagents.add_reagent("toxin", toxic) - usr << "\blue You harvest the honeycomb from the hive. There is a wild buzzing!" + usr << "You harvest the honeycomb from the hive. There is a wild buzzing!" angry_swarm(usr) diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index 3c9e185bc23..637bd16e65b 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -20,9 +20,9 @@ if(B.feral < 0) caught_bees += B.strength del(B) - user.visible_message("\blue [user] nets some bees.","\blue You net up some of the becalmed bees.") + user.visible_message("[user] nets some bees.","You net up some of the becalmed bees.") else - user.visible_message("\red [user] swings at some bees, they don't seem to like it.","\red You swing at some bees, they don't seem to like it.") + user.visible_message("[user] swings at some bees, they don't seem to like it.","You swing at some bees, they don't seem to like it.") B.feral = 5 B.target = user diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 8937e50d212..8dfb9daa64d 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -276,7 +276,7 @@ return 1 else if(istype(O, /obj/item/weapon/reagent_containers/glass)) if(beaker) - user << "\red The biogenerator already occuped." + user << "The biogenerator already occuped." else if(panel_open) user << "The biogenerator's maintenance panel must be closed first." else @@ -285,42 +285,42 @@ 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 for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) 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/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 >= 20) - 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 /obj/machinery/biogenerator/crowbarDestroy(mob/user) if(beaker) - user << "\red A beaker is loaded, you cannot deconstruct \the [src]." + user << "A beaker is loaded, you cannot deconstruct \the [src]." return return ..() @@ -398,7 +398,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/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index 4cba70b8d45..c8d1418f255 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -92,7 +92,7 @@ else if(!prints_prosthetics && istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat)) visible_message("\The [src] processes \the [W].") stored_matter += 50 - user.drop_item() + user.drop_item(W) qdel(W) return // Steel for matter. @@ -100,7 +100,7 @@ var/obj/item/stack/sheet/metal/M = W visible_message("\The [src] processes \the [W].") stored_matter += M.amount * 10 - user.drop_item() + user.drop_item(M) returnToPool(M) return else if(istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/bots/buttbot.dm b/code/game/machinery/bots/buttbot.dm index 5bbceda3f46..d4682566b49 100644 --- a/code/game/machinery/bots/buttbot.dm +++ b/code/game/machinery/bots/buttbot.dm @@ -67,7 +67,7 @@ Here it is: Buttbot. /obj/machinery/bot/buttbot/explode() src.on = 0 - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) playsound(get_turf(src), 'sound/effects/superfart.ogg', 50, 1) //A fitting end var/turf/Tsec = get_turf(src) new /obj/item/clothing/head/butt(Tsec) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index db82e601ce6..b011fa477ec 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -305,7 +305,7 @@ text("[src.oddbutton ? "Yes" : "No" /obj/machinery/bot/cleanbot/proc/clean(var/turf/target) anchored = 1 icon_state = "cleanbot-c" - visible_message("\red [src] begins to clean up the [target]") + visible_message("[src] begins to clean up the [target]") cleaning = 1 var/cleantime = 20 // 50 // 5 seconds is too long. var/list/cleansed=list() @@ -323,7 +323,7 @@ text("[src.oddbutton ? "Yes" : "No" /obj/machinery/bot/cleanbot/explode() src.on = 0 - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) new /obj/item/weapon/reagent_containers/glass/bucket(Tsec) @@ -342,7 +342,7 @@ text("[src.oddbutton ? "Yes" : "No" /obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob) ..() if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) - user.drop_item() + user.drop_item(W) qdel(W) var/turf/T = get_turf(src.loc) var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index bfd72a047c2..770f9fbb613 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -231,7 +231,7 @@ Auto Patrol: []"}, if(user) user << "You short out [src]'s target assessment circuits." spawn(0) for(var/mob/O in hearers(src, null)) - O.show_message("\red [src] buzzes oddly!", 1) + O.show_message("[src] buzzes oddly!", 1) src.target = null if(user) src.oldtarget_name = user.name src.last_found = world.time @@ -320,7 +320,7 @@ Auto Patrol: []"}, if(declare_arrests) var/area/location = get_area(src) broadcast_security_hud_message("[src.name] is [arrest_type ? "detaining" : "arresting"] level [threatlevel] suspect [target] in [location]", src) - visible_message("\red [src.target] has been stunned by [src]!") + visible_message("[src.target] has been stunned by [src]!") mode = SECBOT_PREP_ARREST src.anchored = 1 @@ -353,7 +353,7 @@ Auto Patrol: []"}, if (!src.target.handcuffed && !src.arrest_type) playsound(get_turf(src), 'sound/weapons/handcuffs.ogg', 30, 1, -2) mode = SECBOT_ARREST - visible_message("\red [src] is trying to put handcuffs on [src.target]!") + visible_message("[src] is trying to put handcuffs on [src.target]!") spawn(60) if (get_dist(src, src.target) <= 1) @@ -789,7 +789,7 @@ Auto Patrol: []"}, /obj/machinery/bot/ed209/explode() walk_to(src,0) - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) var/obj/item/weapon/ed209_assembly/Sa = new /obj/item/weapon/ed209_assembly(Tsec) @@ -934,7 +934,7 @@ Auto Patrol: []"}, switch(build_step) if(0,1) if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the robot leg to [src]." @@ -952,7 +952,7 @@ Auto Patrol: []"}, else if( istype(W, /obj/item/clothing/suit/bluetag) ) lasercolor = "b" if( lasercolor || istype(W, /obj/item/clothing/suit/armor/vest) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the armor to [src]." @@ -969,7 +969,7 @@ Auto Patrol: []"}, user << "You welded the vest to [src]." if(4) if( istype(W, /obj/item/clothing/head/helmet) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the helmet to [src]." @@ -979,7 +979,7 @@ Auto Patrol: []"}, if(5) if( isprox(W) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the prox sensor to [src]." @@ -1019,7 +1019,7 @@ Auto Patrol: []"}, user << "You add [W] to [src]." src.item_state = "[lasercolor]ed209_taser" src.icon_state = "[lasercolor]ed209_taser" - user.drop_item() + user.drop_item(W) qdel(W) if(8) @@ -1039,7 +1039,7 @@ Auto Patrol: []"}, user << "You complete the ED-209." var/turf/T = get_turf(src) new /obj/machinery/bot/ed209(T,created_name,lasercolor) - user.drop_item() + user.drop_item(W) qdel(W) user.drop_from_inventory(src) qdel(src) diff --git a/code/game/machinery/bots/farmbot.dm b/code/game/machinery/bots/farmbot.dm index f963304556a..02c23bace24 100644 --- a/code/game/machinery/bots/farmbot.dm +++ b/code/game/machinery/bots/farmbot.dm @@ -168,13 +168,13 @@ user << "Controls are now [src.locked ? "locked." : "unlocked."]" src.updateUsrDialog() else - user << "\red Access denied." + user << "Access denied." else if (istype(W, /obj/item/weapon/reagent_containers/glass/fertilizer)) if ( get_total_ferts() >= Max_Fertilizers ) user << "The fertilizer storage is full!" return - user.drop_item(src) + user.drop_item(W, src) user << "You insert [W]." flick("farmbot_hatch",src) src.updateUsrDialog() @@ -185,10 +185,10 @@ /obj/machinery/bot/farmbot/Emag(mob/user as mob) ..() - if(user) user << "\red You short out [src]'s plant identifier circuits." + if(user) user << "You short out [src]'s plant identifier circuits." spawn(0) for(var/mob/O in hearers(src, null)) - O.show_message("\red [src] buzzes oddly!", 1) + O.show_message("[src] buzzes oddly!", 1) flick("farmbot_broke", src) src.emagged = 1 src.on = 1 @@ -200,7 +200,7 @@ /obj/machinery/bot/farmbot/explode() src.on = 0 - visible_message("\red [src] blows apart!", 1) + visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) new /obj/item/weapon/minihoe(Tsec) @@ -394,7 +394,7 @@ spawn(0) fert.loc = src.loc fert.throw_at(target, 16, 3) - src.visible_message("\red [src] launches [fert.name] at [target.name]!") + src.visible_message("[src] launches [fert.name] at [target.name]!") flick("farmbot_broke", src) spawn (FARMBOT_EMAG_DELAY) mode = 0 @@ -428,13 +428,13 @@ mode = 0 if ( prob(30) ) // better luck next time little guy - src.visible_message("\red [src] swings wildly at [target] with a minihoe, missing completely!") + src.visible_message("[src] swings wildly at [target] with a minihoe, missing completely!") else // yayyy take that weeds~ var/attackVerb = pick("slashed", "sliced", "cut", "clawed") var /mob/living/carbon/human/human = target - src.visible_message("\red [src] [attackVerb] [human]!") + src.visible_message("[src] [attackVerb] [human]!") var/damage = 15 var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") var/datum/organ/external/affecting = human.get_organ(ran_zone(dam_zone)) @@ -462,7 +462,7 @@ if ( emagged ) // warning, humans are thirsty! var splashAmount = min(70,tank.reagents.total_volume) - src.visible_message("\red [src] splashes [target] with a bucket of water!") + src.visible_message("[src] splashes [target] with a bucket of water!") playsound(get_turf(src), 'sound/effects/slosh.ogg', 25, 1) if ( prob(50) ) tank.reagents.reaction(target, TOUCH) //splash the human! @@ -502,9 +502,9 @@ mode = FARMBOT_MODE_WAITING playsound(get_turf(src), 'sound/effects/slosh.ogg', 25, 1) - src.visible_message("\blue [src] starts filling it's tank from [target].") + src.visible_message("[src] starts filling it's tank from [target].") spawn(300) - src.visible_message("\blue [src] finishes filling it's tank.") + src.visible_message("[src] finishes filling it's tank.") src.mode = 0 tank.reagents.add_reagent("water", tank.reagents.maximum_volume - tank.reagents.total_volume ) playsound(get_turf(src), 'sound/effects/slosh.ogg', 25, 1) diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index d4e6620f8e0..ad0bdccd0ea 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -311,7 +311,7 @@ var/global/list/floorbot_targets=list() F.break_tile_to_plating() else F.ReplaceWithLattice() - visible_message("\red [src] makes an excited booping sound.") + visible_message("[src] makes an excited booping sound.") spawn(50) src.amount ++ src.anchored = 0 @@ -413,7 +413,7 @@ var/global/list/floorbot_targets=list() src.anchored = 1 src.icon_state = "floorbot-c" if(istype(target, /turf/space/)) - visible_message("\red [src] begins to repair the hole") + visible_message("[src] begins to repair the hole") var/obj/item/stack/tile/plasteel/T = new /obj/item/stack/tile/plasteel src.repairing = 1 spawn(50) @@ -427,7 +427,7 @@ var/global/list/floorbot_targets=list() else var/turf/simulated/floor/F = src.loc if(!F.broken && !F.burnt) - visible_message("\red [src] begins to improve the floor.") + visible_message("[src] begins to improve the floor.") src.repairing = 1 spawn(50) F.make_plasteel_floor() @@ -439,7 +439,7 @@ var/global/list/floorbot_targets=list() src.target = null else if(F.is_plating()) - visible_message("\red [src] begins to fix dents in the floor.") + visible_message("[src] begins to fix dents in the floor.") src.repairing = 1 spawn(20) src.repairing = 0 @@ -453,7 +453,7 @@ var/global/list/floorbot_targets=list() /obj/machinery/bot/floorbot/proc/eattile(var/obj/item/stack/tile/plasteel/T) if(!istype(T, /obj/item/stack/tile/plasteel)) return - visible_message("\red [src] begins to collect tiles.") + visible_message("[src] begins to collect tiles.") src.repairing = 1 spawn(20) if(isnull(T)) @@ -477,7 +477,7 @@ var/global/list/floorbot_targets=list() return if(M.amount < 1) return - visible_message("\red [src] begins to create tiles.") + visible_message("[src] begins to create tiles.") src.repairing = 1 spawn(20) if(!M || !get_turf(M)) @@ -671,7 +671,7 @@ var/global/list/floorbot_targets=list() /obj/machinery/bot/floorbot/explode() src.on = 0 - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) var/obj/item/weapon/storage/toolbox/mechanical/N = new /obj/item/weapon/storage/toolbox/mechanical(Tsec) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 33798592686..6ec388f3f24 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -214,7 +214,7 @@ user << "There is already a beaker loaded." return - user.drop_item(src) + user.drop_item(W, src) src.reagent_glass = W user << "You insert [W]." src.updateUsrDialog() @@ -232,7 +232,7 @@ if(user) user << "You short out [src]'s reagent synthesis circuits." spawn(0) for(var/mob/O in hearers(src, null)) - O.show_message("\red [src] buzzes oddly!", 1) + O.show_message("[src] buzzes oddly!", 1) flick("medibot_spark", src) src.patient = null if(user) src.oldpatient = user @@ -443,7 +443,7 @@ return else src.icon_state = "medibots" - visible_message("\red [src] is trying to inject [src.patient]!") + visible_message("[src] is trying to inject [src.patient]!") spawn(30) if ((get_dist(src, src.patient) <= 1) && (src.on)) if((reagent_id == "internal_beaker") && (src.reagent_glass) && (src.reagent_glass.reagents.total_volume)) @@ -451,7 +451,7 @@ src.reagent_glass.reagents.reaction(src.patient, 2) else src.patient.reagents.add_reagent(reagent_id,src.injection_amount) - visible_message("\red [src] injects [src.patient] with the syringe!") + visible_message("[src] injects [src.patient] with the syringe!") src.icon_state = "medibot[src.on]" src.currently_healing = 0 @@ -475,7 +475,7 @@ /obj/machinery/bot/medbot/explode() src.on = 0 - visible_message("\red [src] blows apart!", 1) + visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) new /obj/item/weapon/storage/firstaid(Tsec) @@ -589,7 +589,7 @@ switch(build_step) if(0) if(istype(W, /obj/item/device/healthanalyzer)) - user.drop_item() + user.drop_item(W) qdel(W) src.build_step++ user << "You add the health sensor to [src]." @@ -598,7 +598,7 @@ if(1) if(isprox(W)) - user.drop_item() + user.drop_item(W) qdel(W) src.build_step++ user << "You complete the Medibot! Beep boop." diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index c75f44221ed..8fc746c8e1b 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -113,30 +113,30 @@ var/global/mulebot_count = 0 /obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user) if(istype(I,/obj/item/weapon/card/emag)) locked = !locked - user << "\blue You [locked ? "lock" : "unlock"] the mulebot's controls!" + user << "You [locked ? "lock" : "unlock"] the mulebot's controls!" flick("mulebot-emagged", src) playsound(get_turf(src), 'sound/effects/sparks1.ogg', 100, 0) else if(istype(I, /obj/item/weapon/card/id)) if(toggle_lock(user)) - user << "\blue Controls [(locked ? "locked" : "unlocked")]." + user << "Controls [(locked ? "locked" : "unlocked")]." else if(istype(I,/obj/item/weapon/cell) && open && !cell) var/obj/item/weapon/cell/C = I - user.drop_item(src) + user.drop_item(C, src) cell = C updateDialog() else if(istype(I,/obj/item/weapon/screwdriver)) if(locked) - user << "\blue The maintenance hatch cannot be opened or closed while the controls are locked." + user << "The maintenance hatch cannot be opened or closed while the controls are locked." return open = !open if(open) - src.visible_message("[user] opens the maintenance hatch of [src]", "\blue You open [src]'s maintenance hatch.") + src.visible_message("[user] opens the maintenance hatch of [src]", "You open [src]'s maintenance hatch.") on = 0 icon_state="mulebot-hatch" else - src.visible_message("[user] closes the maintenance hatch of [src]", "\blue You close [src]'s maintenance hatch.") + src.visible_message("[user] closes the maintenance hatch of [src]", "You close [src]'s maintenance hatch.") icon_state = "mulebot0" updateDialog() @@ -144,15 +144,15 @@ var/global/mulebot_count = 0 if (src.health < maxhealth) src.health = min(maxhealth, src.health+25) user.visible_message( - "\red [user] repairs [src]!", - "\blue You repair [src]!" + "[user] repairs [src]!", + "You repair [src]!" ) else - user << "\blue [src] does not need a repair!" + user << "[src] does not need a repair!" else if(load && ismob(load)) // chance to knock off rider if(prob(1+I.force * 2)) unload(0) - user.visible_message("\red [user] knocks [load] off [src] with \the [I]!", "\red You knock [load] off [src] with \the [I]!") + user.visible_message("[user] knocks [load] off [src] with \the [I]!", "You knock [load] off [src] with \the [I]!") else user << "You hit [src] with \the [I] but to no effect." else @@ -175,7 +175,7 @@ var/global/mulebot_count = 0 if(prob(50) && !isnull(load)) unload(0) if(prob(25)) - src.visible_message("\red Something shorts out inside [src]!") + src.visible_message("Something shorts out inside [src]!") wires.RandomCut() ..() @@ -280,7 +280,7 @@ var/global/mulebot_count = 0 turn_off() else if (cell && !open) if (!turn_on()) - usr << "\red You can't switch on [src]." + usr << "You can't switch on [src]." return else return @@ -295,18 +295,18 @@ var/global/mulebot_count = 0 cell.add_fingerprint(usr) cell = null - usr.visible_message("\blue [usr] removes the power cell from [src].", "\blue You remove the power cell from [src].") + usr.visible_message("[usr] removes the power cell from [src].", "You remove the power cell from [src].") updateDialog() if("cellinsert") if(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) - usr.visible_message("\blue [usr] inserts a power cell into [src].", "\blue You insert the power cell into [src].") + usr.visible_message("[usr] inserts a power cell into [src].", "You insert the power cell into [src].") updateDialog() @@ -386,7 +386,7 @@ var/global/mulebot_count = 0 updateDialog() return 1 else - user << "\red Access denied." + user << "Access denied." return 0 // mousedrop a crate to load the bot @@ -728,9 +728,9 @@ var/global/mulebot_count = 0 var/mob/M = obs if(ismob(M)) if(istype(M,/mob/living/silicon/robot)) - src.visible_message("\red [src] bumps into [M]!") + src.visible_message("[src] bumps into [M]!") else - src.visible_message("\red [src] knocks over [M]!") + src.visible_message("[src] knocks over [M]!") M.stop_pulling() M.Stun(8) M.Weaken(5) @@ -744,7 +744,7 @@ var/global/mulebot_count = 0 // called from mob/living/carbon/human/Crossed() // when mulebot is in the same loc /obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H) - src.visible_message("\red [src] drives over [H]!") + src.visible_message("[src] drives over [H]!") playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) var/damage = rand(5,15) @@ -760,7 +760,7 @@ var/global/mulebot_count = 0 currentBloodColor="#A10808" // For if species get different blood colors. /obj/machinery/bot/mulebot/proc/RunOverCreature(var/mob/living/H,var/bloodcolor) - src.visible_message("\red [src] drives over [H]!") + src.visible_message("[src] drives over [H]!") playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) bloodiness += 4 currentBloodColor=bloodcolor // For if species get different blood colors. @@ -904,7 +904,7 @@ var/global/mulebot_count = 0 /obj/machinery/bot/mulebot/explode() - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) new /obj/item/device/assembly/prox_sensor(Tsec) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index b94df494f13..0bec94b5893 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -191,9 +191,9 @@ Auto Patrol: []"}, if(emagged) user << "ERROR" if(open) - user << "\red Please close the access panel before locking it." + user << "Please close the access panel before locking it." else - user << "\red Access denied." + user << "Access denied." else ..() if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry. @@ -208,10 +208,10 @@ Auto Patrol: []"}, /obj/machinery/bot/secbot/Emag(mob/user as mob) ..() if(open && !locked) - if(user) user << "\red You short out [src]'s target assessment circuits." + if(user) user << "You short out [src]'s target assessment circuits." spawn(0) for(var/mob/O in hearers(src, null)) - O.show_message("\red [src] buzzes oddly!", 1) + O.show_message("[src] buzzes oddly!", 1) src.target = null if(user) src.oldtarget_name = user.name src.last_found = world.time @@ -279,7 +279,7 @@ Auto Patrol: []"}, if(declare_arrests) var/area/location = get_area(src) broadcast_security_hud_message("[src.name] is [arrest_type ? "detaining" : "arresting"] level [threatlevel] suspect [target] in [location]", src) - //visible_message("\red [src.target] has been stunned by [src]!") + //visible_message("[src.target] has been stunned by [src]!") mode = SECBOT_PREP_ARREST src.anchored = 1 @@ -290,7 +290,7 @@ Auto Patrol: []"}, if(world.time > next_harm_time) next_harm_time = world.time + 15 playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1) - visible_message("\red [src] beats [src.target] with the stun baton!") + visible_message("[src] beats [src.target] with the stun baton!") src.icon_state = "secbot-c" spawn(2) src.icon_state = "secbot[src.on]" @@ -326,7 +326,7 @@ Auto Patrol: []"}, if(!C.handcuffed && !src.arrest_type) playsound(get_turf(src), 'sound/weapons/handcuffs.ogg', 30, 1, -2) mode = SECBOT_ARREST - visible_message("\red [src] is trying to put handcuffs on [src.target]!") + visible_message("[src] is trying to put handcuffs on [src.target]!") spawn(60) if(Adjacent(target)) @@ -759,7 +759,7 @@ Auto Patrol: []"}, /obj/machinery/bot/secbot/explode() walk_to(src,0) - src.visible_message("\red [src] blows apart!", 1) + src.visible_message("[src] blows apart!", 1) var/turf/Tsec = get_turf(src) var/obj/item/weapon/secbot_assembly/Sa = new /obj/item/weapon/secbot_assembly(Tsec) @@ -817,7 +817,7 @@ Auto Patrol: []"}, user << "You weld a hole in [src]!" else if(isprox(W) && (src.build_step == 1)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You add the prox sensor to [src]!" src.overlays += image('icons/obj/aibots.dmi', "hs_eye") @@ -825,7 +825,7 @@ Auto Patrol: []"}, qdel(W) else if(((istype(W, /obj/item/robot_parts/l_arm)) || (istype(W, /obj/item/robot_parts/r_arm))) && (src.build_step == 2)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You add the robot arm to [src]!" src.name = "helmet/signaler/prox sensor/robot arm assembly" @@ -833,7 +833,7 @@ Auto Patrol: []"}, qdel(W) else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You complete the Securitron! Beep boop." var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index e05c08905b6..ff4d54b37fb 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -122,7 +122,7 @@ if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. user << "You attach the [W] into the assembly inner circuits." upgrades += W - user.drop_item(src) + user.drop_item(W, src) return // Taking out upgrades diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 25949f1473d..940d51e4fea 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -149,11 +149,11 @@ if("Yes") var/nhref = "src=\ref[tobeopened];aiEnable=7" tobeopened.Topic(nhref, params2list(nhref), tobeopened, 1) - src << "\blue You've opened \the [tobeopened] for [target]." + src << "You've opened \the [tobeopened] for [target]." if("No") - src << "\red You deny the request." + src << "You deny the request." else - src << "\red You've failed to open an airlock for [target]" + src << "You've failed to open an airlock for [target]" return /mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob) if(!istype(target)) return diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e146cdd9626..fa1f52685c3 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -78,14 +78,15 @@ user << "[src] blinks red as you try to insert the cell!" return - user.drop_item(src) + user.drop_item(W, src) charging = W user.visible_message("[user] inserts a cell into [src].", "You insert a cell into [src].") chargelevel = -1 updateicon() if(istype(W, /obj/item/weapon/card/emag) && !emagged) emagged = 1 //Congratulations, you've done it - user << "You hear fizzling and you notice a wire turning burning hot. Better not use it anymore" + user.visible_message("[user] swipes a card into \the [src]'s charging port.", \ + "You hear fizzling coming from \the [src] and a wire turns red hot as you swipe the electromagnetic card. Better not use it anymore.") return /obj/machinery/cell_charger/attack_hand(mob/user) @@ -96,6 +97,7 @@ s.start() spawn(15) explosion(src.loc, -1, 1, 3, adminlog = 0) //Overload + Destroy(src) //It exploded, rip return usr.put_in_hands(charging) charging.add_fingerprint(user) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index f6f70f2d095..0700ed059ce 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -340,7 +340,7 @@ else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat)) user << "\The [src] processes \the [W]." biomass += 50 - user.drop_item() + user.drop_item(W) qdel(W) return else @@ -362,7 +362,7 @@ set category = "Object" set src in oview(1) - if (usr.stat != 0) + if (usr.stat != 0 || (usr.status_flags & FAKEDEATH)) return src.go_out() add_fingerprint(usr) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 8c17edb6712..f9b8cbd9bd5 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -289,7 +289,7 @@ if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve return for(var/mob/M in range(3,src)) - M.show_message("\b ERROR. Recalibrating projetion apparatus.") + M.show_message("ERROR. Recalibrating projetion apparatus.") last_change = world.time return @@ -391,11 +391,11 @@ if(istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2) var/obj/item/weapon/grab/G = W if(G.stateYou need a better grip to do that!
" return G.affecting.loc = src.loc G.affecting.Weaken(5) - visible_message("\red [G.assailant] puts [G.affecting] on the table.") + visible_message("[G.assailant] puts [G.affecting] on the table.") qdel(W) return @@ -475,13 +475,13 @@ icon_state = "sword[_color]" 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 = "sword0" w_class = 2 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 @@ -508,16 +508,16 @@ if(istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2) var/obj/item/weapon/grab/G = W if(G.stateYou need a better grip to do that!" return G.affecting.loc = src.loc G.affecting.Weaken(5) - visible_message("\red [G.assailant] dunks [G.affecting] into the [src]!", 3) + visible_message("[G.assailant] dunks [G.affecting] into the [src]!", 3) qdel(W) return else if (istype(W, /obj/item) && get_dist(src,user)<2) - user.drop_item(src.loc) - visible_message("\blue [user] dunks [W] into the [src]!", 3) + user.drop_item(W, src.loc) + visible_message("[user] dunks [W] into the [src]!", 3) return /obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) @@ -527,9 +527,9 @@ return if(prob(50)) I.loc = src.loc - visible_message("\blue Swish! \the [I] lands in \the [src].", 3) + visible_message("Swish! \the [I] lands in \the [src].", 3) else - visible_message("\red \the [I] bounces off of \the [src]'s rim!", 3) + visible_message("\the [I] bounces off of \the [src]'s rim!", 3) return 0 else return ..(mover, target, height, air_group) diff --git a/code/game/machinery/computer/adv_camera.dm b/code/game/machinery/computer/adv_camera.dm index 5850854dd1f..0c62c6508a7 100644 --- a/code/game/machinery/computer/adv_camera.dm +++ b/code/game/machinery/computer/adv_camera.dm @@ -9,7 +9,7 @@ /obj/machinery/computer/security/advanced/attack_hand(var/mob/user as mob) 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 if(stat & (NOPOWER|BROKEN)) return ui_interact(user) diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index bbeed870d32..29153e3a4a6 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -45,7 +45,7 @@ user << "You place the circuit board inside the frame." icon_state = "1" circuit = P - user.drop_item(src) + user.drop_item(P, src) if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) user << "You screw the circuit board into place." @@ -137,7 +137,7 @@ ticker.mode.remove_cultist(P:brainmob.mind, 1) ticker.mode.remove_revolutionary(P:brainmob.mind, 1) - user.drop_item(src) + user.drop_item(P, src) brain = P usr << "Added [P]." icon_state = "3b" @@ -188,7 +188,7 @@ if(user:wear_suit:s_control) user:wear_suit:transfer_ai("INACTIVE","NINJASUIT",src,user) else - user << "ERROR: Remote access channel disabled." + user << "ERROR: Remote access channel disabled." return /* @@ -206,13 +206,13 @@ That prevents a few funky behaviors. if("AICARD") var/obj/item/device/aicard/C = src if(C.contents.len)//If there is an AI on card. - U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one." + U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one." else if (ticker.mode.name == "AI malfunction") var/datum/game_mode/malfunction/malf = ticker.mode for (var/datum/mind/malfai in malf.malf_ai) if (T.mind == malfai) - U << "ERROR: Remote transfer interface disabled."//Do ho ho ho~ + U << "ERROR: Remote transfer interface disabled."//Do ho ho ho~ return new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location. T.aiRestorePowerRoutine = 0//So the AI initially has power. @@ -229,16 +229,16 @@ That prevents a few funky behaviors. if("NINJASUIT") var/obj/item/clothing/suit/space/space_ninja/C = src if(C.AI)//If there is an AI on card. - U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one." + U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one." else if (ticker.mode.name == "AI malfunction") var/datum/game_mode/malfunction/malf = ticker.mode for (var/datum/mind/malfai in malf.malf_ai) if (T.mind == malfai) - U << "ERROR: Remote transfer interface disabled." + U << "ERROR: Remote transfer interface disabled." return if(T.stat)//If the ai is dead/dying. - U << "ERROR: [T.name] data core is corrupted. Unable to install." + U << "ERROR: [T.name] data core is corrupted. Unable to install." else new /obj/structure/AIcore/deactivated(T.loc) T.aiRestorePowerRoutine = 0 @@ -315,11 +315,11 @@ That prevents a few funky behaviors. T.occupant.cancel_camera() T.occupant = null else if (C.contents.len) - U << "ERROR: Artificial intelligence detected on terminal." + U << "ERROR: Artificial intelligence detected on terminal." else if (T.active) - U << "ERROR: Reconstruction in progress." + U << "ERROR: Reconstruction in progress." else if (!T.occupant) - U << "ERROR: Unable to locate artificial intelligence." + U << "ERROR: Unable to locate artificial intelligence." if("NINJASUIT") var/obj/item/clothing/suit/space/space_ninja/C = src if(!T.contents.len) @@ -339,7 +339,7 @@ That prevents a few funky behaviors. else if(!C.AI && T.occupant && !T.active) if (T.occupant.stat) - U << "ERROR: [T.occupant.name] data core is corrupted. Unable to install." + U << "ERROR: [T.occupant.name] data core is corrupted. Unable to install." else T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full") @@ -349,11 +349,11 @@ That prevents a few funky behaviors. T.occupant.cancel_camera() T.occupant = null else if (C.AI) - U << "ERROR: Artificial intelligence detected on terminal." + U << "ERROR: Artificial intelligence detected on terminal." else if (T.active) - U << "ERROR: Reconstruction in progress." + U << "ERROR: Reconstruction in progress." else if (!T.occupant) - U << "ERROR: Unable to locate artificial intelligence." + U << "ERROR: Unable to locate artificial intelligence." if("NINJASUIT")//Ninjasuit var/obj/item/clothing/suit/space/space_ninja/T = target switch(interaction) @@ -366,7 +366,7 @@ That prevents a few funky behaviors. if(A)//If the host AI card is not empty. if(A_T)//If there is an AI on the target card. - U << "ERROR: [A_T.name] already installed. Remove [A_T.name] to install a new one." + U << "ERROR: [A_T.name] already installed. Remove [A_T.name] to install a new one." else A.loc = C//Throw them into the target card. Since they are already on a card, transfer is easy. C.name = "inteliCard - [A.name]" @@ -377,7 +377,7 @@ That prevents a few funky behaviors. U << "SUCCESS: [A.name] ([rand(1000,9999)].exe) removed from host and stored within local memory." else//If host AI is empty. if(C.flush)//If the other card is flushing. - U << "ERROR: AI flush is in progress, cannot execute transfer protocol." + U << "ERROR: AI flush is in progress, cannot execute transfer protocol." else if(A_T&&!A_T.stat)//If there is an AI on the target card and it's not inactive. A_T.loc = T//Throw them into suit. @@ -389,7 +389,7 @@ That prevents a few funky behaviors. A_T << "You have been uploaded to a mobile storage device." U << "SUCCESS: [A_T.name] ([rand(1000,9999)].exe) removed from local memory and installed to host." else if(A_T)//If the target AI is dead. Else just go to return since nothing would happen if both are empty. - U << "ERROR: [A_T.name] data core is corrupted. Unable to install." + U << "ERROR: [A_T.name] data core is corrupted. Unable to install." else - U << "ERROR: AI flush is in progress, cannot execute transfer protocol." + U << "ERROR: AI flush is in progress, cannot execute transfer protocol." return \ No newline at end of file diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index d9771d0f987..cc4a32baf59 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -37,7 +37,7 @@ if(user:wear_suit:s_control) user:wear_suit.transfer_ai("AIFIXER","NINJASUIT",src,user) else - user << "\red ERROR: \black Remote access channel disabled." + user << "ERROR: Remote access channel disabled." return var/dat = "

AI System Integrity Restorer



" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index f91b8f3b2b1..5d700573003 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -316,7 +316,7 @@ user << "You place the circuit board inside the frame." src.icon_state = "1" src.circuit = P - user.drop_item(src) + user.drop_item(B, src) else user << "This frame does not accept circuit boards of this type!" return 1 diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 4d7c9ca34b8..62e118b559d 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -31,7 +31,7 @@ /obj/machinery/computer/security/attack_hand(var/mob/user as mob) 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 if(stat & (NOPOWER|BROKEN)) return diff --git a/code/game/machinery/computer/camera_circuit.dm b/code/game/machinery/computer/camera_circuit.dm index 25311edf1a6..cdb79516107 100644 --- a/code/game/machinery/computer/camera_circuit.dm +++ b/code/game/machinery/computer/camera_circuit.dm @@ -45,13 +45,13 @@ else return authorised = 1 - user << "\blue You authorised the circuit network!" + user << "You authorised the circuit network!" updateDialog() else - user << "\blue You must select a camera network circuit!" + user << "You must select a camera network circuit!" else if(istype(I,/obj/item/weapon/screwdriver)) secured = !secured - user.visible_message("\blue The [src] can [secured ? "no longer" : "now"] be modified.") + user.visible_message("The [src] can [secured ? "no longer" : "now"] be modified.") updateBuildPath() return @@ -114,10 +114,10 @@ else return authorised = 1 - usr << "\blue You authorised the circuit network!" + usr << "You authorised the circuit network!" updateDialog() else - usr << "\blue You must select a camera network circuit!" + usr << "You must select a camera network circuit!" else if( href_list["removeauth"] ) authorised = 0 updateDialog() diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 2dabc09ec0e..e621cefe0a8 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -65,7 +65,7 @@ set name = "Eject ID Card" set src in oview(1) - if(!usr || usr.stat || usr.lying) return + if(!usr || usr.stat || usr.lying || (usr.status_flags & FAKEDEATH)) return if (!ishuman(usr)) usr << "You don't have the dexterity to do this!" @@ -92,10 +92,10 @@ return ..() if(!scan && access_change_ids in id_card.access) - user.drop_item(src) + user.drop_item(id_card, src) scan = id_card else if(!modify) - user.drop_item(src) + user.drop_item(id_card, src) modify = id_card nanomanager.update_uis(src) @@ -197,7 +197,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) modify = I if ("scan") @@ -213,7 +213,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) scan = I if("access") @@ -249,7 +249,7 @@ jobdatum = J break if(!jobdatum) - usr << "\red No log exists for this job: [t1]" + usr << "No log exists for this job: [t1]" return access = jobdatum.get_access() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index fae592d6607..f814107a91e 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -61,7 +61,7 @@ /obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES if (!src.diskette) - user.drop_item(src) + user.drop_item(W, src) src.diskette = W user << "You insert [W]." src.updateUsrDialog() @@ -149,7 +149,7 @@
Back
    "} // END AUTOFIX for(var/datum/dna2/record/R in src.records) - dat += "
  • [R.dna.real_name && R.dna.real_name != "" ? R.dna.real_name : "Unknown"]
  • " + dat += "
  • [R.dna.real_name && R.dna.real_name != "" ? R.dna.real_name : "Unknown"]
  • " 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 += "\[+\] " + curNetId + "" 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.

    ") + dat += text("No Contact
    ") + dat += text("Assistance
    ") + dat += text("Supply
    ") + dat += text("Anonymous Tip Recipient
    ") + dat += text("Assistance + Supply
    ") + dat += text("Assistance + Tips
    ") + dat += text("Supply + Tips
    ") + dat += text("All
    ") + dat += text("
    Back
    ") if(6) //sent successfully dat += text("Message sent

    ") dat += text("Continue
    ") @@ -199,6 +223,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() dat += text("Request Assistance
    ") dat += text("Request Supplies
    ") dat += text("Relay Anonymous Information

    ") + dat += text("Configure Panel

    ") if(announcementConsole) dat += text("Send station-wide announcement

    ") 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()
  • Messenger
  • Current Events
  • "} // END AUTOFIX - //dat += "
  • Nanotrasen Relay Chat
  • " + //dat += "
  • Nanotrasen Relay Chat
  • " dat += "
  • View Crew Manifest
  • " @@ -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 list
    Account 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]
    @@ -278,7 +278,6 @@ var/global/list/all_money_accounts = list() "} // END AUTOFIX dat += "
    " - 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
    " + //var/dat = "
    Unban Player:(U) = Unban , (E) = Edit Ban(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
    " + //var/dat = "
    Unban Player:(U) = Unban , (E) = Edit Ban(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
    - Visit the Bleeding-Edge test server at byond://ss13.nexisonline.net:1336 + Visit the Bleeding-Edge test server at byond://pomftest.undo.it:7777
    +

    2015.04.16

    +

    ArthurDentist updated:

    +
      +
    • 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
    - Visit the Bleeding-Edge test server at byond://ss13.nexisonline.net:1336 + Visit the Bleeding-Edge test server at byond://pomftest.undo.it:7777