From 9b9481d65ce54e543492348b87dc4dd7ba4c10e9 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 18 Oct 2014 16:00:38 +0200 Subject: [PATCH] Changes many span classes. Replaces for(mob in oviewers) show_message() with visible_message() when possible. Fixes the absolute pathing in Ninja code. Fixes facehugger attack messages being bold red for third party (only the first leap message will stay bold red for third party, for better visibility) Standardizes vomiting message Fixes mech occupant not receiving any attack messages when the mech is attacked. --- .../datums/diseases/advance/symptoms/vomit.dm | 6 +- code/datums/diseases/appendicitis.dm | 2 +- code/game/machinery/bots/cleanbot.dm | 2 +- code/game/mecha/mecha.dm | 17 +- code/game/objects/items/shooting_range.dm | 4 +- code/game/objects/structures/displaycase.dm | 8 +- code/game/objects/structures/lamarr_cage.dm | 6 +- code/game/objects/structures/statues.dm | 2 +- code/modules/events/ninja.dm | 250 +++++++++--------- code/modules/flufftext/Hallucination.dm | 7 +- code/modules/mining/equipment_locker.dm | 3 +- .../carbon/alien/humanoid/alien_powers.dm | 3 +- .../mob/living/carbon/alien/larva/powers.dm | 12 +- .../living/carbon/alien/special/facehugger.dm | 9 +- code/modules/power/singularity/singularity.dm | 7 +- 15 files changed, 166 insertions(+), 172 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index 67f53564deb..55fd92863e0 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -43,7 +43,8 @@ Bonus /datum/symptom/vomit/proc/Vomit(var/mob/living/M) - M.visible_message("[M] vomits on the floor!") + M.visible_message("[M] vomits on the floor!", \ + "You throw up on the floor!") M.nutrition -= 20 M.adjustToxLoss(-3) @@ -84,7 +85,8 @@ Bonus /datum/symptom/vomit/blood/Vomit(var/mob/living/M) M.Stun(1) - M.visible_message("[M] vomits on the floor!") + M.visible_message("[M] vomits on the floor!", \ + "You throw up on the floor!") // They lose blood and health. var/brute_dam = M.getBruteLoss() diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index 8a628eefd62..f3a2432ebe5 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -44,7 +44,7 @@ affected_mob.nutrition -= 95 affected_mob.adjustToxLoss(-1) else - affected_mob << "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) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index f27815a0a3c..592b1686c4a 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -316,7 +316,7 @@ text("[src.oddbutton ? "Yes" : "No" /obj/machinery/bot/cleanbot/proc/clean(var/obj/effect/decal/cleanable/target) src.anchored = 1 src.icon_state = "cleanbot-c" - visible_message("[src] begins to clean up [target]") + visible_message("[src] begins to clean up [target]") src.cleaning = 1 spawn(50) src.cleaning = 0 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 1096f5d5533..3404cafa4f2 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -468,9 +468,10 @@ if ((HULK in user.mutations) && !prob(src.deflect_chance)) src.take_damage(15) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) - user.visible_message("[user] hits [src.name], doing some damage.", "You hit [src.name] with all your might. The metal creaks and bends.") + user.visible_message("[user] hits [src.name], doing some damage.", "You hit [src.name] with all your might. The metal creaks and bends.") + src.occupant_message("[user] hits [src.name], doing some damage.") else - user.visible_message("[user] hits [src.name]. Nothing happens","You hit [src.name] with no visible effect.") + user.visible_message("[user] hits [src.name]. Nothing happens","You hit [src.name] with no visible effect.") src.log_append_to_last("Armor saved.") return @@ -486,6 +487,7 @@ playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) user << "You slash at the armored suit!" visible_message("The [user] slashes at [src.name]'s armor!") + src.occupant_message("The [user] slashes at [src.name]'s armor!") else src.log_append_to_last("Armor saved.") playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) @@ -504,12 +506,13 @@ var/damage = rand(user.melee_damage_lower, user.melee_damage_upper) src.take_damage(damage) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) - visible_message("[user] [user.attacktext] [src]!") + visible_message("[user] [user.attacktext] [src]!") + src.occupant_message("[user] [user.attacktext] [src]!") add_logs(user, src, "attacked", admin=0) else src.log_append_to_last("Armor saved.") playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) - src.occupant_message("The [user]'s attack is stopped by the armor.") + src.occupant_message("[user]'s attack is stopped by the armor.") visible_message("The [user] rebounds off [src.name]'s armor!") add_logs(user, src, "attacked", admin=0) return @@ -537,6 +540,8 @@ else if(istype(A, /obj)) var/obj/O = A if(O.throwforce) + src.occupant_message("[src.name] is hit by [A].") + src.visible_message("[src.name] is hit by [A].") src.take_damage(O.throwforce) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) return @@ -562,6 +567,8 @@ ignore_threshold = 1 if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) src.take_damage(Proj.damage,Proj.flag) + src.occupant_message("[src.name] is hit by [Proj]!") + src.visible_message("[src.name] is hit by [Proj].") src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold) Proj.on_hit(src) return @@ -644,7 +651,7 @@ return 0 else src.occupant_message("[user] hits [src] with [W].") - user.visible_message("[user] hits [src] with [W].", "You hit [src] with [W].") + user.visible_message("[user] hits [src] with [W].", "You hit [src] with [W].") src.take_damage(W.force,W.damtype) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) return 1 diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 8d974017521..8f822385dd1 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -95,9 +95,7 @@ hp -= Proj.damage if(hp <= 0) - for(var/mob/O in oviewers()) - if ((O.client && !( O.blinded ))) - O << "[src] breaks into tiny pieces and collapses!" + visible_message("[src] breaks into tiny pieces and collapses!") qdel(src) // Create a temporary object to represent the damage diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 63817318c05..0c4558d1bac 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -85,16 +85,14 @@ user.changeNext_move(CLICK_CD_MELEE) if (src.destroyed && src.occupied) new /obj/item/weapon/gun/energy/laser/captain( src.loc ) - user << "\b You deactivate the hover field built into the case." + user << "You deactivate the hover field built into the case." src.occupied = 0 src.add_fingerprint(user) update_icon() return else - usr << text("You kick the display case.") - for(var/mob/O in oviewers()) - if ((O.client && !( O.blinded ))) - O << text("[] kicks the display case.", usr) + user.visible_message("[user] kicks the display case.", \ + "You kick the display case.") src.health -= 2 healthcheck() return diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm index 69a6626d69a..b95ec7128c4 100644 --- a/code/game/objects/structures/lamarr_cage.dm +++ b/code/game/objects/structures/lamarr_cage.dm @@ -75,10 +75,8 @@ if (src.destroyed) return else - usr << text("You kick the lab cage.") - for(var/mob/O in oviewers()) - if ((O.client && !( O.blinded ))) - O << text("[] kicks the lab cage.", usr) + user.visible_message("[user] kicks the lab cage.", \ + "You kick the lab cage.") src.health -= 2 healthcheck() return diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index ba98fa3d0de..bf542a54c9c 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -25,7 +25,7 @@ CheckHardness() /obj/structure/statue/attack_hand(mob/user) - visible_message("[user] rubs some dust off from the [name]'s surface.") + visible_message("[user] rubs some dust off from the [name]'s surface.") /obj/structure/statue/CanAtmosPass() return !density diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 3c7db7f4461..c88b23c7398 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -2210,9 +2210,8 @@ ________________________________________________________________________________ anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) s_active=!s_active U.alpha = 0 - U << "You are now invisible to normal detection." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] vanishes into thin air!",1) + U.visible_message("[U.name] vanishes into thin air!", \ + "You are now invisible to normal detection.") return /obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth() @@ -2222,9 +2221,8 @@ ________________________________________________________________________________ anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) s_active=!s_active U.alpha = 255 - U << "You are now visible." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] appears from thin air!",1) + U.visible_message("[U.name] appears from thin air!", \ + "You are now visible.") return 1 return 0 @@ -2613,143 +2611,139 @@ It is possible to destroy the net by the occupant or someone else. var/mob/living/affecting = null//Who it is currently affecting, if anyone. var/mob/living/master = null//Who shot web. Will let this person know if the net was successful or failed. - proc - healthcheck() - if(health <=0) - density = 0 - if(affecting) - var/mob/living/carbon/M = affecting - M.anchored = 0 - for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] was recovered from the energy net!", M.name), 1, text("You hear a grunt."), 2) - if(!isnull(master))//As long as they still exist. - master << "ERROR: \black unable to initiate transport protocol. Procedure terminated." - qdel(src) - return - - process(var/mob/living/carbon/M as mob) - var/check = 30//30 seconds before teleportation. Could be extended I guess. - var/mob_name = affecting.name//Since they will report as null if terminated before teleport. - //The person can still try and attack the net when inside. - while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. - check-- - sleep(10) - - if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location. - if(!isnull(master))//As long as they still exist. - master << "ERROR: \black unable to locate \the [mob_name]. Procedure terminated." - qdel(src)//Get rid of the net. - return - - if(!isnull(src))//As long as both net and person exist. - //No need to check for countdown here since while() broke, it's implicit that it finished. - - density = 0//Make the net pass-through. - invisibility = 101//Make the net invisible so all the animations can play out. - health = INFINITY//Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. - for(var/obj/item/W in M) - if(istype(M,/mob/living/carbon/human)) - if(W==M:w_uniform) continue//So all they're left with are shoes and uniform. - if(W==M:shoes) continue - M.unEquip(W) - - spawn(0) - playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phaseout",,M.dir) - - M.loc = pick(holdingfacility)//Throw mob in to the holding facility. - M << "You appear in a strange place!" - - spawn(0) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, M.loc) - spark_system.start() - playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir) - qdel(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0). - +/obj/effect/energy_net/proc/healthcheck() + if(health <=0) + density = 0 + if(affecting) + var/mob/living/carbon/M = affecting + M.anchored = 0 for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] vanished!", M), 1, text("You hear sparks flying!"), 2) - + O.show_message("[M.name] was recovered from the energy net!", 1, "You hear a grunt.", 2) if(!isnull(master))//As long as they still exist. - master << "SUCCESS: \black transport procedure of \the [affecting] complete." + master << "ERROR: \black unable to initiate transport protocol. Procedure terminated." + qdel(src) + return - M.anchored = 0//Important. +/obj/effect/energy_net/process(var/mob/living/carbon/M as mob) + var/check = 30//30 seconds before teleportation. Could be extended I guess. + var/mob_name = affecting.name//Since they will report as null if terminated before teleport. + //The person can still try and attack the net when inside. + while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. + check-- + sleep(10) - else//And they are free. - M << "You are free of the net!" + if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location. + if(!isnull(master))//As long as they still exist. + master << "ERROR: \black unable to locate \the [mob_name]. Procedure terminated." + qdel(src)//Get rid of the net. return - bullet_act(var/obj/item/projectile/Proj) - health -= Proj.damage - healthcheck() - ..() + if(!isnull(src))//As long as both net and person exist. + //No need to check for countdown here since while() broke, it's implicit that it finished. - ex_act(severity) - switch(severity) - if(1.0) - health-=50 - if(2.0) - health-=50 - if(3.0) - health-=prob(50)?50:25 - healthcheck() - return + density = 0//Make the net pass-through. + invisibility = 101//Make the net invisible so all the animations can play out. + health = INFINITY//Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. + for(var/obj/item/W in M) + if(istype(M,/mob/living/carbon/human)) + if(W==M:w_uniform) continue//So all they're left with are shoes and uniform. + if(W==M:shoes) continue + M.unEquip(W) - blob_act() - health-=50 - healthcheck() - return + spawn(0) + playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) + anim(M.loc,M,'icons/mob/mob.dmi',,"phaseout",,M.dir) - hitby(AM as mob|obj) - ..() - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] was hit by [AM]."), 1) - var/tforce = 0 - if(ismob(AM)) - tforce = 10 - else - tforce = AM:throwforce - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health = max(0, health - tforce) - healthcheck() - ..() - return + M.loc = pick(holdingfacility)//Throw mob in to the holding facility. + M << "You appear in a strange place!" - attack_hand() - if (HULK in usr.mutations) - usr << text("You easily destroy the energy net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("[] rips the energy net apart!", usr), 1) + spawn(0) + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, M.loc) + spark_system.start() + playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) + playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) + anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir) + qdel(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0). + + for(var/mob/O in viewers(src, 3)) + O.show_message("[M] vanished!", 1, "You hear sparks flying!", 2) + + if(!isnull(master))//As long as they still exist. + master << "SUCCESS: \black transport procedure of \the [affecting] complete." + + M.anchored = 0//Important. + + else//And they are free. + M << "You are free of the net!" + return + +/obj/effect/energy_net/bullet_act(var/obj/item/projectile/Proj) + health -= Proj.damage + healthcheck() + ..() + +/obj/effect/energy_net/ex_act(severity) + switch(severity) + if(1.0) health-=50 - healthcheck() - return + if(2.0) + health-=50 + if(3.0) + health-=prob(50)?50:25 + healthcheck() + return - attack_paw() - return attack_hand() +/obj/effect/energy_net/blob_act() + health-=50 + healthcheck() + return - attack_alien() - if (islarva(usr)) - return - usr << text("\green You claw at the net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("[] claws at the energy net!", usr), 1) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health -= rand(10, 20) - if(health <= 0) - usr << text("\green You slice the energy net to pieces.") - for(var/mob/O in oviewers(src)) - O.show_message(text("[] slices the energy net apart!", usr), 1) - healthcheck() - return +/obj/effect/energy_net/hitby(AM as mob|obj) + ..() + visible_message("[src] was hit by [AM].") + var/tforce = 0 + if(ismob(AM)) + tforce = 10 + else + tforce = AM:throwforce + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + health = max(0, health - tforce) + healthcheck() + ..() + return - attackby(obj/item/weapon/W as obj, mob/user as mob) - var/aforce = W.force - health = max(0, health - aforce) - healthcheck() - ..() +/obj/effect/energy_net/attack_hand(mob/user) + if (HULK in user.mutations) + user.visible_message("[user] rips the energy net apart!", \ + "You easily destroy the energy net.") + health-=50 + healthcheck() + return + +/obj/effect/energy_net/attack_paw(mob/user) + return attack_hand() + +/obj/effect/energy_net/attack_alien(mob/user as mob) + if (islarva(user)) return + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + health -= rand(10, 20) + if(health > 0) + user.visible_message("[user] claws at the energy net!", \ + "\green You claw at the net.") + else + user.visible_message("[user] slices the energy net apart!", \ + "\green You slice the energy net to pieces.") + healthcheck() + return + +/obj/effect/energy_net/attackby(obj/item/weapon/W as obj, mob/user as mob) + var/aforce = W.force + health = max(0, health - aforce) + healthcheck() + ..() + return proc/create_ninja_mind(key) var/datum/mind/Mind = new /datum/mind(key) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 6f6700f9624..a2c07dd6242 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -247,9 +247,8 @@ proc/check_panel(mob/M) /obj/effect/fake_attacker/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 << "[my_target] flails around wildly." - my_target.show_message("[src] has been attacked by [my_target] ", 1) //Lazy. + my_target.visible_message("[my_target] flails around wildly.", \ + "[src] has been attacked by [my_target] ") src.health -= P.force @@ -261,7 +260,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 << "[my_target] stumbles around." + O << "[my_target] stumbles around." /obj/effect/fake_attacker/New() ..() diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 2c6a39fac76..be8295a08a8 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -453,7 +453,8 @@ shake_camera(L, 20, 1) spawn(20) if(L) - L.visible_message("[L.name] vomits from travelling through the [src.name]!") + L.visible_message("[L.name] vomits from travelling through the [src.name]!", \ + "You throw up from travelling through the [src.name]!") L.nutrition -= 20 L.adjustToxLoss(-3) var/turf/T = get_turf(L) 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 2c372c6497b..513c7b2b6e6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -150,8 +150,7 @@ Doesn't work on other aliens/AI.*/ if(!choice || !powerc(55)) return adjustToxLoss(-55) src << "You shape a [choice]." - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] vomits up a thick purple substance and begins to shape it."), 1) + visible_message("[src] vomits up a thick purple substance and begins to shape it.") switch(choice) if("resin wall") new /obj/structure/alien/resin/wall(loc) diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm index 46097e7c411..efbdcdafe9b 100644 --- a/code/modules/mob/living/carbon/alien/larva/powers.dm +++ b/code/modules/mob/living/carbon/alien/larva/powers.dm @@ -9,16 +9,12 @@ if (layer != TURF_LAYER+0.2) layer = TURF_LAYER+0.2 - src << text("You are now hiding.") - for(var/mob/O in oviewers(src, null)) - if ((O.client && !( O.blinded ))) - O << text("[] scurries to the ground!", src) + visible_message("[src] scurries to the ground!", \ + "You are now hiding.") else layer = MOB_LAYER - src << text("You have stopped hiding.") - for(var/mob/O in oviewers(src, null)) - if ((O.client && !( O.blinded ))) - O << text("[] slowly peaks up from the ground...", src) + visible_message("[src] slowly peaks up from the ground...", \ + "You have stopped hiding.") /mob/living/carbon/alien/larva/verb/evolve() set name = "Evolve" diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index fecd02cc271..bc11bcd2490 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -137,7 +137,8 @@ var/const/MAX_ACTIVE_TIME = 400 if(W.flags & NODROP) return 0 target.unEquip(W) - target.visible_message("[src] tears [W] off of [target]'s face!") + target.visible_message("[src] tears [W] off of [target]'s face!", \ + "[src] tears [W] off of [target]'s face!") src.loc = target target.equip_to_slot(src, slot_wear_mask,,0) @@ -166,7 +167,8 @@ var/const/MAX_ACTIVE_TIME = 400 if(!sterile) //target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance - target.visible_message("[src] falls limp after violating [target]'s face!") + target.visible_message("[src] falls limp after violating [target]'s face!", \ + "[src] falls limp after violating [target]'s face!") Die() icon_state = "[initial(icon_state)]_impregnated" @@ -180,7 +182,8 @@ var/const/MAX_ACTIVE_TIME = 400 src.loc = get_turf(C) C.facehugger = null else - target.visible_message("[src] violates [target]'s face!") + target.visible_message("[src] violates [target]'s face!", \ + "[src] violates [target]'s face!") return /obj/item/clothing/mask/facehugger/proc/GoActive() diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 770cd676ed8..349f4f1d581 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -438,12 +438,11 @@ if (istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(istype(H.glasses,/obj/item/clothing/glasses/meson)) - H << "You look directly into The [src.name], good thing you had your protective eyewear on!" + H << "You look directly into the [src.name], good thing you had your protective eyewear on!" return - M << "You look directly into The [src.name] and feel weak." M.apply_effect(3, STUN) - for(var/mob/O in viewers(M, null)) - O.show_message(text("[] stares blankly at The []!", M, src), 1) + M.visible_message("[M] stares blankly at the [src.name]!", \ + "You look directly into the [src.name] and feel weak.") return