From d64186ec9b8850cb78e8040ed1e0e8170c47e4e5 Mon Sep 17 00:00:00 2001 From: "sieve32@gmail.com" Date: Thu, 10 Jan 2013 19:07:02 +0000 Subject: [PATCH] -Now instead of just giving an angry message, any living mob with a client and the nuke disk that hits a transition on Z1 on them will have their momentum reversed, effectively sending them back where they came from. (Dead and clientless mobs still have the disk deleted from them) Fixes Issue 1183 -Most game-specific messages now print to all non-new_player mobs instead of the world, round-end reports are unchanged but request consoles and other announcements will not be heard by people in the lobby any more Fixes Issue 1158 -Tweaked the temperature resistance of mechs to be more inline with current fires. Most mechs protect almost as well as a full fire suit, and the firefighter mech is just over 2x more effective Fixes Issue 1027 -False-walls can no longer be fixed when on top of a dense turfs Fixes Issue 1196 -Tweaked how damage was read for CPR and self-examining so you can't perform CPR on yourself at 100 damage Fixes Issue 1202 -Made stun-glove construction use the cable/Use() instead of just amount-2, so you can no longer get 0 amount coils Fixes Issue 1206 -Glass reagent containers and droppers now log attacks like syringes do, with the list of reagents Fixes Issue 1234 git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5508 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/procs/command_alert.dm | 13 +++++---- code/game/gamemodes/blob/blob.dm | 4 ++- code/game/gamemodes/events.dm | 29 +++++++++++++------ code/game/gamemodes/events/miniblob.dm | 4 ++- code/game/gamemodes/events/wormholes.dm | 4 ++- code/game/gamemodes/game_mode.dm | 4 ++- code/game/gamemodes/gameticker.dm | 4 ++- .../game/gamemodes/malfunction/malfunction.dm | 4 ++- code/game/machinery/requests_console.dm | 4 ++- code/game/mecha/combat/durand.dm | 2 +- code/game/mecha/combat/gygax.dm | 4 +-- code/game/mecha/combat/honker.dm | 2 +- code/game/mecha/combat/marauder.dm | 2 +- code/game/mecha/combat/phazon.dm | 2 +- code/game/mecha/mecha.dm | 2 +- code/game/mecha/medical/odysseus.dm | 2 +- code/game/mecha/working/ripley.dm | 4 +-- code/game/objects/structures/false_walls.dm | 6 ++-- code/game/turfs/space/space.dm | 8 +++-- code/modules/clothing/gloves/stungloves.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- .../living/carbon/human/human_attackhand.dm | 2 +- .../reagents/reagent_containers/dropper.dm | 10 +++++++ .../reagents/reagent_containers/glass.dm | 9 ++++++ .../reagent_containers/robodropper.dm | 9 ++++++ maps/tgstation.2.1.0.dmm | 4 +-- 26 files changed, 101 insertions(+), 41 deletions(-) diff --git a/code/defines/procs/command_alert.dm b/code/defines/procs/command_alert.dm index 23ee3c1119b..6a68d105729 100644 --- a/code/defines/procs/command_alert.dm +++ b/code/defines/procs/command_alert.dm @@ -1,9 +1,12 @@ /proc/command_alert(var/text, var/title = "") - world << "

[command_name()] Update

" + var/command + command += "

[command_name()] Update

" if (title && length(title) > 0) - world << "

[html_encode(title)]

" - - world << "[html_encode(text)]" - world << "
" + command += "

[html_encode(title)]

" + command += "
[html_encode(text)]
" + command += "
" + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << command diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 74543700308..7cca20dfac0 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -109,7 +109,9 @@ var/list/blob_nodes = list() if (1) command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/outbreak5.ogg') autoexpand = 0//No more extra pulses stage = -1 //next stage in 4-5 minutes diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index fec3b7df9ac..e6452da992d 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -29,7 +29,9 @@ switch(pick(eventNumbersToPickFrom)) if(1) command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - world << sound('sound/AI/meteors.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/meteors.ogg') spawn(100) meteor_wave() spawn_meteors() @@ -39,7 +41,9 @@ if(2) command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('sound/AI/granomalies.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/granomalies.ogg') var/turf/T = pick(blobstart) var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) spawn(rand(50, 300)) @@ -110,7 +114,8 @@ /proc/power_failure() command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") - world << sound('sound/AI/poweroff.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/poweroff.ogg') for(var/obj/machinery/power/smes/S in world) if(istype(get_area(S), /area/turret_protected) || S.z != 1) continue @@ -158,7 +163,8 @@ /proc/power_restore() command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal") - world << sound('sound/AI/poweron.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/poweron.ogg') for(var/obj/machinery/power/apc/C in world) if(C.cell && C.z == 1) C.cell.charge = C.cell.maxcharge @@ -180,7 +186,8 @@ /proc/power_restore_quick() command_alert("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal") - world << sound('sound/AI/poweron.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/poweron.ogg') for(var/obj/machinery/power/smes/S in world) if(S.z != 1) continue @@ -266,7 +273,8 @@ break spawn(rand(1500, 3000)) //Delayed announcements to keep the crew on their toes. command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak7.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/outbreak7.ogg') /proc/alien_infestation(var/spawncount = 1) // -- TLE //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") @@ -294,7 +302,8 @@ spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes. command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('sound/AI/aliens.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/aliens.ogg') /proc/high_radiation_event() @@ -331,7 +340,8 @@ M.apply_effect((rand(15,75)),IRRADIATE,0) sleep(100) command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert") - world << sound('sound/AI/radiation.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/radiation.ogg') @@ -381,7 +391,8 @@ //sleep(100) spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes. command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") - world << sound('sound/AI/commandreport.ogg') + for(var/mob/M in player_list) + M << sound('sound/AI/commandreport.ogg') /proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights if(isEvent) diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/gamemodes/events/miniblob.dm index fec1968a23c..9172aba4346 100644 --- a/code/game/gamemodes/events/miniblob.dm +++ b/code/game/gamemodes/events/miniblob.dm @@ -13,7 +13,9 @@ blobevent = 0 spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes. command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/outbreak5.ogg') /proc/dotheblobbaby() if (blobevent) diff --git a/code/game/gamemodes/events/wormholes.dm b/code/game/gamemodes/events/wormholes.dm index 45f2993b206..1ef19e24ac7 100644 --- a/code/game/gamemodes/events/wormholes.dm +++ b/code/game/gamemodes/events/wormholes.dm @@ -8,7 +8,9 @@ if(pick_turfs.len) //All ready. Announce that bad juju is afoot. command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('sound/AI/spanomalies.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/spanomalies.ogg') //prob(20) can be approximated to 1 wormhole every 5 turfs! //admittedly less random but totally worth it >_< diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index ded6a9a5f0e..d20bdb669ee 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -230,7 +230,9 @@ Whitespace:Seperator; comm.messagetext.Add(intercepttext) command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.") - world << sound('sound/AI/intercept.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/intercept.ogg') if(security_level < SEC_LEVEL_BLUE) set_security_level(SEC_LEVEL_BLUE) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 8cc75751ce1..4183ac322da 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -271,7 +271,9 @@ var/global/datum/controller/gameticker/ticker if(player.mind.assigned_role != "MODE") job_master.EquipRank(player, player.mind.assigned_role, 0) if(captainless) - world << "Captainship not forced on anyone." + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << "Captainship not forced on anyone." proc/process() diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index b0b12a9c4a4..3ae48074642 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -171,7 +171,9 @@ ticker.mode:malf_mode_declared = 1 for(var/datum/mind/AI_mind in ticker.mode:malf_ai) AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover - world << sound('sound/AI/aimalf.ogg') + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << sound('sound/AI/aimalf.ogg') /datum/game_mode/malfunction/proc/ai_win() diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 23be1f83f09..ced7486384d 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -245,7 +245,9 @@ var/list/obj/machinery/requests_console/allConsoles = list() if(href_list["sendAnnouncement"]) if(!announcementConsole) return - world << "[department] announcement: [message]" + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player)) + M << "[department] announcement: [message]" announceAuth = 0 message = "" screen = 0 diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 6dac559b943..920e081b693 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -7,7 +7,7 @@ health = 400 deflect_chance = 20 damage_absorption = list("brute"=0.5,"fire"=1.1,"bullet"=0.65,"laser"=0.85,"energy"=0.9,"bomb"=0.8) - max_temperature = 3000 + max_temperature = 30000 infra_luminosity = 8 force = 40 var/defence = 0 diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm index 8fc2f5bf4d1..3e9c6f5b315 100644 --- a/code/game/mecha/combat/gygax.dm +++ b/code/game/mecha/combat/gygax.dm @@ -7,7 +7,7 @@ health = 300 deflect_chance = 15 damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1) - max_temperature = 3500 + max_temperature = 25000 infra_luminosity = 6 var/overload = 0 var/overload_coeff = 2 @@ -22,7 +22,7 @@ health = 400 deflect_chance = 25 damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8) - max_temperature = 4500 + max_temperature = 45000 overload_coeff = 1 wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark max_equip = 4 diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm index 62dcd59b496..ca849a98465 100644 --- a/code/game/mecha/combat/honker.dm +++ b/code/game/mecha/combat/honker.dm @@ -7,7 +7,7 @@ deflect_chance = 60 internal_damage_threshold = 60 damage_absorption = list("brute"=1.2,"fire"=1.5,"bullet"=1,"laser"=1,"energy"=1,"bomb"=1) - max_temperature = 3500 + max_temperature = 25000 infra_luminosity = 5 operation_req_access = list(access_clown) wreckage = /obj/effect/decal/mecha_wreckage/honker diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index b366b9e7704..d70c0b532f6 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -6,7 +6,7 @@ health = 500 deflect_chance = 25 damage_absorption = list("brute"=0.5,"fire"=0.7,"bullet"=0.45,"laser"=0.6,"energy"=0.7,"bomb"=0.7) - max_temperature = 5000 + max_temperature = 60000 infra_luminosity = 3 var/zoom = 0 var/thrusters = 0 diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm index 6bcad8dab55..509935564aa 100644 --- a/code/game/mecha/combat/phazon.dm +++ b/code/game/mecha/combat/phazon.dm @@ -8,7 +8,7 @@ health = 200 deflect_chance = 30 damage_absorption = list("brute"=0.7,"fire"=0.7,"bullet"=0.7,"laser"=0.7,"energy"=0.7,"bomb"=0.7) - max_temperature = 1000 + max_temperature = 25000 infra_luminosity = 3 wreckage = /obj/effect/decal/mecha_wreckage/phazon add_req_access = 1 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 167681d0f34..54c1641d003 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -48,7 +48,7 @@ var/obj/item/device/radio/radio = null - var/max_temperature = 2500 + var/max_temperature = 25000 var/internal_damage_threshold = 50 //health percentage below which internal damage is possible var/internal_damage = 0 //contains bitflags diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 621f70e5d13..ada9de07964 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -3,7 +3,7 @@ name = "Odysseus" icon_state = "odysseus" step_in = 2 - max_temperature = 1500 + max_temperature = 15000 health = 120 wreckage = /obj/effect/decal/mecha_wreckage/odysseus internal_damage_threshold = 35 diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 3f58dc8edd8..2ad11bb0214 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -3,7 +3,7 @@ name = "APLU \"Ripley\"" icon_state = "ripley" step_in = 6 - max_temperature = 1000 + max_temperature = 20000 health = 200 wreckage = /obj/effect/decal/mecha_wreckage/ripley var/list/cargo = new @@ -19,7 +19,7 @@ desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." name = "APLU \"Firefighter\"" icon_state = "firefighter" - max_temperature = 4500 + max_temperature = 65000 health = 250 lights_power = 8 damage_absorption = list("fire"=0.5,"bullet"=0.8,"bomb"=0.5) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 3337936ae25..b49820dc548 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -88,8 +88,11 @@ return if(density) + var/turf/T = get_turf(src) + if(T.density) + user << "\red The wall is blocked!" + return if(istype(W, /obj/item/weapon/screwdriver)) - var/turf/T = get_turf(src) user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.") if(!mineral || mineral == "metal") T.ChangeTurf(/turf/simulated/wall) @@ -100,7 +103,6 @@ if( istype(W, /obj/item/weapon/weldingtool) ) var/obj/item/weapon/weldingtool/WT = W if( WT:welding ) - var/turf/T = get_turf(src) if(!mineral) T.ChangeTurf(/turf/simulated/wall) else diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 1a2e0438774..60369f3b5eb 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -80,16 +80,18 @@ del(A) //The disk's Del() proc ensures a new one is created return - if(!isemptylist(A.search_contents_for(/obj/item/weapon/disk/nuclear))) + var/list/disk_search = list(A.search_contents_for(/obj/item/weapon/disk/nuclear)) + if(!isemptylist(disk_search)) if(istype(A, /mob/living)) var/mob/living/MM = A if(MM.client && !MM.stat) MM << "\red Something you are carrying is preventing you from leaving. Don't play stupid; you know exactly what it is." + MM.inertia_dir = turn(MM.inertia_dir,180) else - for(var/obj/item/weapon/disk/nuclear/N in A.search_contents_for(/obj/item/weapon/disk/nuclear)) + for(var/obj/item/weapon/disk/nuclear/N in disk_search) del(N)//Make the disk respawn it is on a clientless mob or corpse else - for(var/obj/item/weapon/disk/nuclear/N in A.search_contents_for(/obj/item/weapon/disk/nuclear)) + for(var/obj/item/weapon/disk/nuclear/N in disk_search) del(N)//Make the disk respawn if it is floating on its own return diff --git a/code/modules/clothing/gloves/stungloves.dm b/code/modules/clothing/gloves/stungloves.dm index 9d245316f73..b892f001d35 100644 --- a/code/modules/clothing/gloves/stungloves.dm +++ b/code/modules/clothing/gloves/stungloves.dm @@ -7,7 +7,7 @@ var/obj/item/weapon/cable_coil/C = W if(!wired) if(C.amount >= 2) - C.amount -= 2 + C.use(2) wired = 1 siemens_coefficient = 1 user << "You wrap some wires around [src]." diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4abb3db83f6..b28dc9dc29d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -137,7 +137,7 @@ swap_hand() /mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) - if (src.health > 0) + if (src.health >= 0) if(src == M && istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src src.visible_message( \ diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 8bc4926de7f..fb148ae39bb 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -59,7 +59,7 @@ switch(M.a_intent) if("help") - if(health > 0) + if(health >= 0) help_shake_act(M) return 1 if(M.health < -75) return 0 diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index fc18d449ebb..22ea087b13f 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -52,6 +52,7 @@ src.reagents.reaction(safe_thing, TOUCH) + user << "\blue You transfer [trans] units of the solution." if (src.reagents.total_volume<=0) filled = 0 @@ -62,6 +63,15 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1) src.reagents.reaction(target, TOUCH) + var/mob/M = target + var/R + if(src.reagents) + for(var/datum/reagent/A in src.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" + M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])") trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "\blue You transfer [trans] units of the solution." diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a0e65ac6167..5eb3f5bc1aa 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -46,7 +46,16 @@ return if(ismob(target) && target.reagents && reagents.total_volume) + var/mob/M = target user << "\blue You splash the solution onto [target]." + var/R + if(src.reagents) + for(var/datum/reagent/A in src.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])" + M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])") for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] has been splashed with something by []!", target, user), 1) src.reagents.reaction(target, TOUCH) diff --git a/code/modules/reagents/reagent_containers/robodropper.dm b/code/modules/reagents/reagent_containers/robodropper.dm index e7663111950..a42d588f4ba 100644 --- a/code/modules/reagents/reagent_containers/robodropper.dm +++ b/code/modules/reagents/reagent_containers/robodropper.dm @@ -61,6 +61,15 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1) src.reagents.reaction(target, TOUCH) + var/mob/M = target + var/R + if(src.reagents) + for(var/datum/reagent/A in src.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" + M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])") trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "\blue You transfer [trans] units of the solution." diff --git a/maps/tgstation.2.1.0.dmm b/maps/tgstation.2.1.0.dmm index 9e2fba9dbc8..18c6a146b64 100644 --- a/maps/tgstation.2.1.0.dmm +++ b/maps/tgstation.2.1.0.dmm @@ -4121,7 +4121,7 @@ "bBm" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBn" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) "bBo" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/simulated/floor,/area/medical/sleeper) -"bBp" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBp" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/projectile/syringe,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBq" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteredcorner"},/area/medical/sleeper) "bBr" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBs" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4352,7 +4352,7 @@ "bFJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) "bFK" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/sleeper) "bFL" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = "SS13"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bFM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bFM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/projectile/syringe,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bFN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bFO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bFP" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)