diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 8d30c946ca..5817d0948e 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -296,7 +296,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 05922103ff..7d476e17b7 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -256,7 +256,7 @@ Thus, the two variables affect pump operation are set in New(): to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index a3a368852f..f0c5498fb3 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -91,7 +91,7 @@ playsound(src, W.usesound, 50, 1) if(do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 5b489441db..31f61ae55b 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -162,7 +162,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index 10d7403541..eaae718b2e 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -62,7 +62,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index 7deca38847..12c3fbfa13 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -340,7 +340,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm index bba26185e7..a3571fed8b 100644 --- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm +++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm @@ -81,7 +81,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 5eeab2c8e4..b4991c0e5d 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -171,7 +171,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 488855a71f..4c843f5342 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -405,7 +405,7 @@ if(!src || !WT.isOn()) return playsound(src, WT.usesound, 50, 1) if(!welded) - user.visible_message("\The [user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") + user.visible_message("\The [user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") welded = 1 update_icon() else @@ -453,7 +453,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 515cd37e7f..8b481a6d8c 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -281,7 +281,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index c890938100..9e88195bcc 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -301,7 +301,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm index f95948868d..5f384ed457 100644 --- a/code/ATMOSPHERICS/pipes/pipe_base.dm +++ b/code/ATMOSPHERICS/pipes/pipe_base.dm @@ -130,7 +130,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if (do_after(user, 10 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") deconstruct() diff --git a/code/game/gamemodes/cult/construct_spells.dm b/code/game/gamemodes/cult/construct_spells.dm index 48394146b5..62cdd5bf48 100644 --- a/code/game/gamemodes/cult/construct_spells.dm +++ b/code/game/gamemodes/cult/construct_spells.dm @@ -671,6 +671,6 @@ W.visible_message("\The [user] [attack_message] \the [W], obliterating it!") W.dismantle_wall(1) else - user.visible_message("\The [user] lowers its fist.") + user.visible_message("\The [user] lowers its fist.") return qdel(src) \ No newline at end of file diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm index f7eae8025c..fb1e62c86e 100644 --- a/code/game/gamemodes/technomancer/core_obj.dm +++ b/code/game/gamemodes/technomancer/core_obj.dm @@ -121,7 +121,7 @@ if(L.stat == DEAD) summoned_mobs -= L spawn(1) - L.visible_message("\The [L] begins to fade away...") + L.visible_message("\The [L] begins to fade away...") animate(L, alpha = 255, alpha = 0, time = 30) // Makes them fade into nothingness. sleep(30) qdel(L) diff --git a/code/game/gamemodes/technomancer/spells/abjuration.dm b/code/game/gamemodes/technomancer/spells/abjuration.dm index dd39e1982b..c14356cba8 100644 --- a/code/game/gamemodes/technomancer/spells/abjuration.dm +++ b/code/game/gamemodes/technomancer/spells/abjuration.dm @@ -27,7 +27,7 @@ to_chat(L, "\The [user] tried to teleport you far away, but failed.") return 0 else - visible_message("\The [L] vanishes!") + visible_message("\The [L] vanishes!") qdel(L) else if(istype(L, /mob/living/simple_mob/construct)) var/mob/living/simple_mob/construct/evil = L diff --git a/code/game/gamemodes/technomancer/spells/blink.dm b/code/game/gamemodes/technomancer/spells/blink.dm index 0bbff7b016..f2a2b2051a 100644 --- a/code/game/gamemodes/technomancer/spells/blink.dm +++ b/code/game/gamemodes/technomancer/spells/blink.dm @@ -47,7 +47,7 @@ if(L.buckled) L.buckled.unbuckle_mob() AM.forceMove(destination) - AM.visible_message("\The [AM] vanishes!") + AM.visible_message("\The [AM] vanishes!") to_chat(AM, "You suddenly appear somewhere else!") new /obj/effect/effect/sparks(destination) new /obj/effect/effect/sparks(starting) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 73c15fd667..e53cd7818c 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -382,7 +382,7 @@ beaker = I user.drop_item() I.loc = src - user.visible_message("\The [user] adds \a [I] to \the [src].", "You add \a [I] to \the [src].") + user.visible_message("\The [user] adds \a [I] to \the [src].", "You add \a [I] to \the [src].") else to_chat(user, "\The [src] has a beaker already.") return diff --git a/code/game/machinery/airconditioner_vr.dm b/code/game/machinery/airconditioner_vr.dm index 4e9ce2d22b..ea54edfa2e 100644 --- a/code/game/machinery/airconditioner_vr.dm +++ b/code/game/machinery/airconditioner_vr.dm @@ -76,7 +76,7 @@ return if(draw_power(idle_power_usage) < idle_power_usage) - visible_message("\The [src] shuts down.") + visible_message("\The [src] shuts down.") turn_off() return diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index 2d5d0a8747..e5e4b65ab4 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -110,7 +110,7 @@ to_chat(user, "You begin to unfasten \the [src]...") if(do_after(user, 40 * W.toolspeed)) user.visible_message( \ - "\The [user] unfastens \the [src].", \ + "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe_meter(get_turf(src)) diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index b951a3c396..5081a1b56e 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -163,7 +163,7 @@ printing = 1 update_icon() - visible_message("\The [src] begins churning.") + visible_message("\The [src] begins churning.") sleep(print_delay) @@ -211,7 +211,7 @@ /obj/machinery/organ_printer/proc/can_print(var/choice, var/masscount = 0) var/biomass = get_biomass_volume() if(biomass < masscount) - visible_message("\The [src] displays a warning: 'Not enough biomass. [biomass] stored and [masscount] needed.'") + visible_message("\The [src] displays a warning: 'Not enough biomass. [biomass] stored and [masscount] needed.'") return 0 if(!loaded_dna || !loaded_dna["donor"]) diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index 5bb4d80194..8b5cce2aee 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -234,21 +234,21 @@ GLOBAL_LIST_BOILERPLATE(all_deactivated_AI_cores, /obj/structure/AIcore/deactiva return else if(W.is_wrench()) if(anchored) - user.visible_message("\The [user] starts to unbolt \the [src] from the plating...") + user.visible_message("\The [user] starts to unbolt \the [src] from the plating...") playsound(src, W.usesound, 50, 1) if(!do_after(user,40 * W.toolspeed)) - user.visible_message("\The [user] decides not to unbolt \the [src].") + user.visible_message("\The [user] decides not to unbolt \the [src].") return - user.visible_message("\The [user] finishes unfastening \the [src]!") + user.visible_message("\The [user] finishes unfastening \the [src]!") anchored = 0 return else - user.visible_message("\The [user] starts to bolt \the [src] to the plating...") + user.visible_message("\The [user] starts to bolt \the [src] to the plating...") playsound(src, W.usesound, 50, 1) if(!do_after(user,40 * W.toolspeed)) - user.visible_message("\The [user] decides not to bolt \the [src].") + user.visible_message("\The [user] decides not to bolt \the [src].") return - user.visible_message("\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/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 9d991ca556..811b12f27c 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -48,7 +48,7 @@ var/confirm = tgui_alert(usr, "Do you really want to deactivate this guest pass? (you can't reactivate it)", "Confirm Deactivation", list("Yes", "No")) if(confirm == "Yes") //rip guest pass \The [user] deactivates \the [src].") + user.visible_message("\The [user] deactivates \the [src].") icon_state = "guest-invalid" update_icon() expiration_time = world.time diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 616205563d..9b4994892a 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -47,7 +47,7 @@ playsound(src, S.attack_sound, 75, 1) take_damage(damage) else - visible_message("\The [user] bonks \the [src] harmlessly.") + visible_message("\The [user] bonks \the [src] harmlessly.") user.do_attack_animation(src) /obj/machinery/door/New() diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 06323a4f06..8cb44be78a 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -253,7 +253,7 @@ /obj/machinery/media/jukebox/proc/explode() walk_to(src,0) - src.visible_message("\the [src] blows apart!", 1) + src.visible_message("\The [src] blows apart!", 1) explosion(src.loc, 0, 0, 1, rand(1,2), 1) diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index ee0d44ede0..3673462534 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -55,7 +55,7 @@ /obj/machinery/oxygen_pump/attack_hand(mob/user as mob) if((stat & MAINT) && tank) - user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].") + user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].") user.put_in_hands(tank) src.add_fingerprint(user) tank.add_fingerprint(user) @@ -69,7 +69,7 @@ tank.forceMove(src) breather.remove_from_mob(contained) contained.forceMove(src) - src.visible_message("\The [user] makes \the [contained] rapidly retract back into \the [src]!") + src.visible_message("\The [user] makes \the [contained] rapidly retract back into \the [src]!") if(breather.internals) breather.internals.icon_state = "internal0" breather = null @@ -140,7 +140,7 @@ user.drop_item() W.forceMove(src) tank = W - user.visible_message("\The [user] installs \the [tank] into \the [src].", "You install \the [tank] into \the [src].") + user.visible_message("\The [user] installs \the [tank] into \the [src].", "You install \the [tank] into \the [src].") src.add_fingerprint(user) if(istype(W, /obj/item/weapon/tank) && !stat) to_chat(user, "Please open the maintenance hatch first.") diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 4c51d35ee2..c344a5e881 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -564,7 +564,7 @@ take_damage(incoming_damage) S.do_attack_animation(src) return 1 - visible_message("\The [L] bonks \the [src]'s casing!") + visible_message("\The [L] bonks \the [src]'s casing!") return ..() /obj/machinery/porta_turret/emag_act(var/remaining_charges, var/mob/user) @@ -1006,7 +1006,7 @@ return var/obj/item/weapon/gun/energy/E = I //typecasts the item to an energy gun if(!user.unEquip(I)) - to_chat(user, "\the [I] is stuck to your hand, you cannot put it in \the [src]") + to_chat(user, "\The [I] is stuck to your hand, you cannot put it in \the [src]") return installation = I.type //installation becomes I.type gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge @@ -1027,7 +1027,7 @@ if(isprox(I)) build_step = 5 if(!user.unEquip(I)) - to_chat(user, "\the [I] is stuck to your hand, you cannot put it in \the [src]") + to_chat(user, "\The [I] is stuck to your hand, you cannot put it in \the [src]") return to_chat(user, "You add the prox sensor to the turret.") qdel(I) diff --git a/code/game/machinery/reagents/pump.dm b/code/game/machinery/reagents/pump.dm index 04916d4d9b..b73ce06a4a 100644 --- a/code/game/machinery/reagents/pump.dm +++ b/code/game/machinery/reagents/pump.dm @@ -107,7 +107,7 @@ if(Output.get_pairing()) reagents.trans_to_holder(Output.reagents, Output.reagents.maximum_volume) if(prob(5)) - visible_message("\The [src] gurgles as it exports fluid.") + visible_message("\The [src] gurgles as it exports fluid.") if(!on) return @@ -148,7 +148,7 @@ on = 1 update_icon() if(loud) - visible_message("\The [src] turns on.") + visible_message("\The [src] turns on.") return 1 /obj/machinery/pump/proc/turn_off(var/loud = 0) @@ -156,7 +156,7 @@ set_light(0, 0) update_icon() if(loud) - visible_message("\The [src] shuts down.") + visible_message("\The [src] shuts down.") if(!on) return TRUE diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm index 20be7d52ca..c4d90818fc 100644 --- a/code/game/machinery/supplybeacon.dm +++ b/code/game/machinery/supplybeacon.dm @@ -12,11 +12,11 @@ deploy_path = /obj/machinery/power/supply_beacon/supermatter /obj/item/supply_beacon/attack_self(var/mob/user) - user.visible_message("\The [user] begins setting up \the [src].") + user.visible_message("\The [user] begins setting up \the [src].") if(!do_after(user, deploy_time)) return var/obj/S = new deploy_path(get_turf(user)) - user.visible_message("\The [user] deploys \the [S].") + user.visible_message("\The [user] deploys \the [S].") user.unEquip(src) qdel(src) diff --git a/code/game/machinery/virtual_reality/ar_console.dm b/code/game/machinery/virtual_reality/ar_console.dm index 5067c47600..6cf182e106 100644 --- a/code/game/machinery/virtual_reality/ar_console.dm +++ b/code/game/machinery/virtual_reality/ar_console.dm @@ -25,7 +25,7 @@ if(stat & (BROKEN)) if(occupant) go_out() - visible_message("\The [src] emits a low droning sound, before the pod door clicks open.") + visible_message("\The [src] emits a low droning sound, before the pod door clicks open.") return else if(eject_dead && occupant && occupant.stat == DEAD) visible_message("\The [src] sounds an alarm, swinging its hatch open.") diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm index c529d45da1..0f10b19e7f 100644 --- a/code/game/machinery/virtual_reality/vr_console.dm +++ b/code/game/machinery/virtual_reality/vr_console.dm @@ -40,7 +40,7 @@ if(stat & (NOPOWER|BROKEN)) if(occupant) go_out() - visible_message("\The [src] emits a low droning sound, before the pod door clicks open.") + visible_message("\The [src] emits a low droning sound, before the pod door clicks open.") return else if(eject_dead && occupant && occupant.stat == DEAD) // If someone dies somehow while inside, spit them out. visible_message("\The [src] sounds an alarm, swinging its hatch open.") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 04c64dae88..a5fee4a508 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1964,7 +1964,7 @@ if(ishuman(occupant)) GrantActions(occupant, 1) else - visible_message("\The [usr] starts to climb into [src.name]") + visible_message("\The [usr] starts to climb into [src.name]") if(enter_after(40,usr)) if(!src.occupant) moved_inside(usr) @@ -2604,11 +2604,11 @@ var/obj/item/mecha_parts/mecha_equipment/tool/passenger/P = passengers[pname] var/mob/occupant = P.occupant - user.visible_message("\The [user] begins opening the hatch on \the [P]...", "You begin opening the hatch on \the [P]...") + user.visible_message("\The [user] begins opening the hatch on \the [P]...", "You begin opening the hatch on \the [P]...") if (!do_after(user, 40)) return - user.visible_message("\The [user] opens the hatch on \the [P] and removes [occupant]!", "You open the hatch on \the [P] and remove [occupant]!") + user.visible_message("\The [user] opens the hatch on \the [P] and removes [occupant]!", "You open the hatch on \the [P] and remove [occupant]!") P.go_out() P.log_message("[occupant] was removed.") return @@ -2795,7 +2795,7 @@ if(prob(temp_deflect_chance))//Deflected src.log_append_to_last("Armor saved.") src.occupant_message("\The [user]'s attack is stopped by the armor.") - visible_message("\The [user] rebounds off [src.name]'s armor!") + visible_message("\The [user] rebounds off [src.name]'s armor!") user.attack_log += text("\[[time_stamp()]\] attacked [src.name]") playsound(src, 'sound/weapons/slash.ogg', 50, 1, -1) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index dcbf63688a..d6b21ef674 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -236,7 +236,7 @@ last_itch = world.time to_chat(O.owner, "Your [O.name] itches...") else if(prob(1)) - src.visible_message("\The [src] skitters.") + src.visible_message("\The [src] skitters.") if(amount_grown >= 0) amount_grown += rand(0,2) diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm index 4167cc9042..a98d984d17 100644 --- a/code/game/objects/items/devices/defib.dm +++ b/code/game/objects/items/devices/defib.dm @@ -86,7 +86,7 @@ reattach_paddles(user) else if(istype(W, /obj/item/weapon/cell)) if(bcell) - to_chat(user, "\the [src] already has a cell.") + to_chat(user, "\The [src] already has a cell.") else if(!user.unEquip(W)) return @@ -392,7 +392,7 @@ user.visible_message("\The [user] begins to place [src] on [H]'s chest.", "You begin to place [src] on [H]'s chest...") if(!do_after(user, 30, H)) return - user.visible_message("\The [user] places [src] on [H]'s chest.", "You place [src] on [H]'s chest.") + user.visible_message("\The [user] places [src] on [H]'s chest.", "You place [src] on [H]'s chest.") playsound(src, 'sound/machines/defib_charge.ogg', 50, 0) var/error = can_defib(H) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index facc87ae64..70e0d3d768 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -41,7 +41,7 @@ if(repairing) to_chat(user, "\The [src] is already being repaired!") return - user.visible_message("\The [user] starts trying to repair \the [src]'s bulb.") + user.visible_message("\The [user] starts trying to repair \the [src]'s bulb.") repairing = TRUE if(do_after(user, (40 SECONDS + rand(0, 20 SECONDS)) * W.toolspeed) && can_repair) if(prob(30)) @@ -50,7 +50,7 @@ update_icon() playsound(src, W.usesound, 50, 1) else - user.visible_message("\The [user] fails to repair \the [src].") + user.visible_message("\The [user] fails to repair \the [src].") repairing = FALSE else ..() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index ce2d8d7604..69dc2d26a3 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -115,7 +115,7 @@ if(!vision) to_chat(user, "You can't find any [H.species.vision_organ ? H.species.vision_organ : "eyes"] on [H]!") - user.visible_message("\The [user] directs [src] to [M]'s eyes.", \ + user.visible_message("\The [user] directs [src] to [M]'s eyes.", \ "You direct [src] to [M]'s eyes.") if(H != user) //can't look into your own eyes buster if(M.stat == DEAD || M.blinded) //mob is dead or fully blind diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index 820229fd83..e299a4d390 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -49,7 +49,7 @@ playsound(src, O.usesound, 100, 1) - user.visible_message("\The [user] opens \the [src] and modifies \the [O].","You open \the [src] and modify \the [O].") + user.visible_message("\The [user] opens \the [src] and modifies \the [O].","You open \the [src] and modify \the [O].") I.refit_for_species(target_species) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 179170fcea..629a383433 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -108,7 +108,7 @@ return 1 else var/available = get_amount() - user.visible_message("\The [user] starts bandaging [M]'s [affecting.name].", \ + user.visible_message("\The [user] starts bandaging [M]'s [affecting.name].", \ "You start bandaging [M]'s [affecting.name]." ) var/used = 0 for (var/datum/wound/W in affecting.wounds) @@ -131,10 +131,10 @@ break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ "You bandage \a [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message("\The [user] places a bandage over \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] places a bandage over \a [W.desc] on [M]'s [affecting.name].", \ "You place a bandage over \a [W.desc] on [M]'s [affecting.name]." ) W.bandage() playsound(src, pick(apply_sounds), 25) @@ -177,7 +177,7 @@ return 1 else var/available = get_amount() - user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ + user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ "You start treating [M]'s [affecting.name]." ) var/used = 0 for (var/datum/wound/W in affecting.wounds) @@ -200,14 +200,14 @@ break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ "You bandage \a [W.desc] on [M]'s [affecting.name]." ) //H.add_side_effect("Itch") else if (W.damage_type == BRUISE) - user.visible_message("\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name].", \ "You place a bruise patch over \a [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].", \ "You place a bandaid over \a [W.desc] on [M]'s [affecting.name]." ) W.bandage() // W.disinfect() // VOREStation - Tech1 should not disinfect @@ -250,7 +250,7 @@ to_chat(user, "The wounds on [M]'s [affecting.name] have already been salved.") return 1 else - user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ + user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ "You start salving the wounds on [M]'s [affecting.name]." ) if(!do_mob(user, M, 10, exclusive = TRUE)) to_chat(user, "You must stand still to salve wounds.") @@ -290,7 +290,7 @@ return 1 else var/available = get_amount() - user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ + user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ "You start treating [M]'s [affecting.name]." ) var/used = 0 for (var/datum/wound/W in affecting.wounds) @@ -312,13 +312,13 @@ break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ + user.visible_message("\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ "You clean and seal \a [W.desc] on [M]'s [affecting.name]." ) else if (W.damage_type == BRUISE) - user.visible_message("\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name].", \ "You place a medical patch over \a [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message("\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name].", \ + user.visible_message("\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name].", \ "You smear some bioglue over \a [W.desc] on [M]'s [affecting.name]." ) W.bandage() W.disinfect() @@ -358,7 +358,7 @@ to_chat(user, "The wounds on [M]'s [affecting.name] have already been salved.") return 1 else - user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ + user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ "You start salving the wounds on [M]'s [affecting.name]." ) if(!do_mob(user, M, 10, exclusive = TRUE)) to_chat(user, "You must stand still to salve wounds.") diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm index 7868d2d3ab..100fac14c2 100644 --- a/code/game/objects/items/weapons/autopsy.dm +++ b/code/game/objects/items/weapons/autopsy.dm @@ -177,7 +177,7 @@ if(!S.open) to_chat(user, "You have to cut [S] open first!") return - M.visible_message("\The [user] scans the wounds on [M]'s [S.name] with [src]") + M.visible_message("\The [user] scans the wounds on [M]'s [S.name] with [src]") src.add_data(S) diff --git a/code/game/objects/items/weapons/canes.dm b/code/game/objects/items/weapons/canes.dm index 48bf6454ca..6e61e4669c 100644 --- a/code/game/objects/items/weapons/canes.dm +++ b/code/game/objects/items/weapons/canes.dm @@ -97,7 +97,7 @@ /obj/item/weapon/cane/white/collapsible/attack_self(mob/user as mob) on = !on if(on) - user.visible_message("\The [user] extends the white cane.",\ + user.visible_message("\The [user] extends the white cane.",\ "You extend the white cane.",\ "You hear an ominous click.") icon_state = "whitecane1out" @@ -106,7 +106,7 @@ force = 5 attack_verb = list("smacked", "struck", "cracked", "beaten") else - user.visible_message("\The [user] collapses the white cane.",\ + user.visible_message("\The [user] collapses the white cane.",\ "You collapse the white cane.",\ "You hear a click.") icon_state = "whitecane1in" diff --git a/code/game/objects/items/weapons/circuitboards/computer/research.dm b/code/game/objects/items/weapons/circuitboards/computer/research.dm index 791cd51cdc..8de61a2b91 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/research.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/research.dm @@ -9,7 +9,7 @@ /obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob) if(I.is_screwdriver()) playsound(src, I.usesound, 50, 1) - user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.") + user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.") if(build_path == /obj/machinery/computer/rdconsole/core) name = T_BOARD("RD Console - Robotics") build_path = /obj/machinery/computer/rdconsole/robotics diff --git a/code/game/objects/items/weapons/circuitboards/machinery/research.dm b/code/game/objects/items/weapons/circuitboards/machinery/research.dm index 8049096292..4305ecf180 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/research.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/research.dm @@ -14,7 +14,7 @@ /obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mob) if(I.is_screwdriver()) playsound(src, I.usesound, 50, 1) - user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.") + user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.") if(build_path == /obj/machinery/r_n_d/server/core) name = T_BOARD("RD Console - Robotics") build_path = /obj/machinery/r_n_d/server/robotics diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 1dca4b4caf..e86a7406b0 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -301,7 +301,7 @@ var/last_chew = 0 return 1 /obj/item/weapon/handcuffs/legcuffs/bola/dropped() - visible_message("\The [src] falls apart!") + visible_message("\The [src] falls apart!") qdel(src) /obj/item/weapon/handcuffs/legcuffs/bola/place_legcuffs(var/mob/living/carbon/target, var/mob/user) @@ -313,7 +313,7 @@ var/last_chew = 0 return 0 if(!H.has_organ_for_slot(slot_legcuffed)) - H.visible_message("\The [src] slams into [H], but slides off!") + H.visible_message("\The [src] slams into [H], but slides off!") src.dropped() return 0 diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index 9cb6f78daa..f9b0c11a17 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -333,7 +333,7 @@ var/list/tape_roll_applications = list() /obj/item/tape/attack_hand(mob/user as mob) if (user.a_intent == I_HELP && src.allowed(user)) - user.show_viewers("\The [user] lifts \the [src], allowing passage.") + user.show_viewers("\The [user] lifts \the [src], allowing passage.") for(var/obj/item/tape/T in gettapeline()) T.lift(100) //~10 seconds else @@ -377,7 +377,7 @@ var/list/tape_roll_applications = list() if(user.a_intent == I_HELP) to_chat(user, "You refrain from breaking \the [src].") return - user.visible_message("\The [user] breaks \the [src]!","You break \the [src].") + user.visible_message("\The [user] breaks \the [src]!","You break \the [src].") for (var/obj/item/tape/T in gettapeline()) if(T == src) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 1bada80a03..e6370499a0 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -465,29 +465,29 @@ return if(!parachute) //This packs the parachute - H.visible_message("\The [H] starts to pack \the [src]!", \ + H.visible_message("\The [H] starts to pack \the [src]!", \ "You start to pack \the [src]!", \ "You hear the shuffling of cloth.") if(do_after(H, 50)) - H.visible_message("\The [H] finishes packing \the [src]!", \ + H.visible_message("\The [H] finishes packing \the [src]!", \ "You finish packing \the [src]!", \ "You hear the shuffling of cloth.") parachute = TRUE else - H.visible_message("\The [src] gives up on packing \the [src]!", \ + H.visible_message("\The [src] gives up on packing \the [src]!", \ "You give up on packing \the [src]!") return else //This unpacks the parachute - H.visible_message("\The [src] starts to unpack \the [src]!", \ + H.visible_message("\The [src] starts to unpack \the [src]!", \ "You start to unpack \the [src]!", \ "You hear the shuffling of cloth.") if(do_after(H, 25)) - H.visible_message("\The [src] finishes unpacking \the [src]!", \ + H.visible_message("\The [src] finishes unpacking \the [src]!", \ "You finish unpacking \the [src]!", \ "You hear the shuffling of cloth.") parachute = FALSE else - H.visible_message("\The [src] decides not to unpack \the [src]!", \ + H.visible_message("\The [src] decides not to unpack \the [src]!", \ "You decide not to unpack \the [src]!") return diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 6fc53235b5..0ff349f476 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -67,7 +67,7 @@ force = 15//quite robust attack_verb = list("smacked", "struck", "slapped") else - user.visible_message("\The [user] collapses their telescopic baton.",\ + user.visible_message("\The [user] collapses their telescopic baton.",\ "You collapse the baton.",\ "You hear a click.") icon_state = "telebaton0" diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 88e6ad19ec..8e62410e68 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -508,7 +508,7 @@ if(mounted_pack.loc != src.loc && src.loc != mounted_pack) mounted_pack.return_nozzle() - visible_message("\The [src] retracts to its fueltank.") + visible_message("\The [src] retracts to its fueltank.") if(get_fuel() <= get_max_fuel()) mounted_pack.reagents.trans_to_obj(src, 1) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 29498bb2df..c7bab19f0f 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -30,7 +30,7 @@ LINEN BINS /obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user) if(is_sharp(I)) - user.visible_message("\The [user] begins cutting up [src] with [I].", "You begin cutting up [src] with [I].") + user.visible_message("\The [user] begins cutting up [src] with [I].", "You begin cutting up [src] with [I].") if(do_after(user, 50)) to_chat(user, "You cut [src] into pieces!") for(var/i in 1 to rand(2,5)) diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index 637f069df0..b1f8786d70 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -170,7 +170,7 @@ burning = FALSE update_icon() STOP_PROCESSING(SSobj, src) - visible_message("\The [src] stops burning.") + visible_message("\The [src] stops burning.") /obj/structure/bonfire/proc/ignite() if(!burning && get_fuel_amount()) @@ -363,7 +363,7 @@ burning = FALSE update_icon() STOP_PROCESSING(SSobj, src) - visible_message("\The [src] stops burning.") + visible_message("\The [src] stops burning.") /obj/structure/fireplace/proc/ignite() if(!burning && get_fuel_amount()) diff --git a/code/game/objects/structures/flora/trees.dm b/code/game/objects/structures/flora/trees.dm index 213708cd5e..9a885a68f7 100644 --- a/code/game/objects/structures/flora/trees.dm +++ b/code/game/objects/structures/flora/trees.dm @@ -47,7 +47,7 @@ if(is_stump) if(istype(W,/obj/item/weapon/shovel)) if(do_after(user, 5 SECONDS)) - visible_message("\The [user] digs up \the [src] stump with \the [W].") + visible_message("\The [user] digs up \the [src] stump with \the [W].") qdel(src) return diff --git a/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm b/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm index 1c88500020..a792e1b559 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm @@ -15,7 +15,7 @@ return if(!activated) - to_chat(user, "\the [src] has not yet been activated. Sorry.") + to_chat(user, "\The [src] has not yet been activated. Sorry.") return if(used) diff --git a/code/game/objects/structures/medical_stand_vr.dm b/code/game/objects/structures/medical_stand_vr.dm index 2da7daba7b..e2eca967ff 100644 --- a/code/game/objects/structures/medical_stand_vr.dm +++ b/code/game/objects/structures/medical_stand_vr.dm @@ -129,10 +129,10 @@ qdel(contained) contained = new mask_type(src) breather = null - src.visible_message("\The [contained] slips to \the [src]!") + src.visible_message("\The [contained] slips to \the [src]!") update_icon() return - usr.visible_message("\The [usr] begins carefully placing the mask onto [target].", + usr.visible_message("\The [usr] begins carefully placing the mask onto [target].", "You begin carefully placing the mask onto [target].") if(!do_mob(usr, target, 100) || !can_apply_to_target(target, usr)) return @@ -151,14 +151,14 @@ visible_message("\The [attached] is taken off \the [src]") attached = null else if(ishuman(target)) - usr.visible_message("\The [usr] begins inserting needle into [target]'s vein.", + usr.visible_message("\The [usr] begins inserting needle into [target]'s vein.", "You begin inserting needle into [target]'s vein.") if(!do_mob(usr, target, 50)) usr.visible_message("\The [usr]'s hand slips and pricks \the [target].", "Your hand slips and pricks \the [target].") target.apply_damage(3, BRUTE, pick(BP_R_ARM, BP_L_ARM)) return - usr.visible_message("\The [usr] hooks \the [target] up to \the [src].", + usr.visible_message("\The [usr] hooks \the [target] up to \the [src].", "You hook \the [target] up to \the [src].") attached = target START_PROCESSING(SSobj,src) @@ -184,13 +184,13 @@ to_chat(user, "There is no tank in \the [src]!") return else if (tank && is_loosen) - user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].>") + user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].>") user.put_in_hands(tank) tank = null update_icon() return else if (!is_loosen) - user.visible_message("\The [user] tries to removes \the [tank] from \the [src] but it won't budge.", "You try to removes \the [tank] from \the [src] but it won't budge.>") + user.visible_message("\The [user] tries to removes \the [tank] from \the [src] but it won't budge.", "You try to removes \the [tank] from \the [src] but it won't budge.>") return if ("Toggle valve") if (!tank) @@ -198,7 +198,7 @@ return else if (valve_opened) - src.visible_message("\The [user] closes valve on \the [src]!", + src.visible_message("\The [user] closes valve on \the [src]!", "You close valve on \the [src].") if(breather) breather.internals?.icon_state = "internal0" @@ -206,7 +206,7 @@ valve_opened = FALSE update_icon() else - src.visible_message("\The [user] opens valve on \the [src]!", + src.visible_message("\The [user] opens valve on \the [src]!", "You open valve on \the [src].") if(breather) breather.internal = tank @@ -319,7 +319,7 @@ user.drop_item() W.forceMove(src) tank = W - user.visible_message("\The [user] attaches \the [tank] to \the [src].", "You attach \the [tank] to \the [src].") + user.visible_message("\The [user] attaches \the [tank] to \the [src].", "You attach \the [tank] to \the [src].") src.add_fingerprint(user) update_icon() @@ -373,7 +373,7 @@ else qdel(contained) contained = new mask_type (src) - src.visible_message("\The [contained] slips to \the [src]!") + src.visible_message("\The [contained] slips to \the [src]!") breather = null update_icon() return diff --git a/code/game/objects/structures/props/beam_prism.dm b/code/game/objects/structures/props/beam_prism.dm index d70d72d089..a8d22fad50 100644 --- a/code/game/objects/structures/props/beam_prism.dm +++ b/code/game/objects/structures/props/beam_prism.dm @@ -90,11 +90,11 @@ /obj/structure/prop/prism/proc/rotate_auto(var/new_bearing) if(rotation_lock) - visible_message("\The [src] shudders.") + visible_message("\The [src] shudders.") playsound(src, 'sound/effects/clang.ogg', 50, 1) return - visible_message("\The [src] rotates to a bearing of [new_bearing].") + visible_message("\The [src] rotates to a bearing of [new_bearing].") var/rotate_degrees = new_bearing - degrees_from_north diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index c6c1e1aea5..876e58c4e3 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -205,7 +205,7 @@ if(W.is_wrench() && !anchored) playsound(src, W.usesound, 50, 1) if(do_after(user, 20, src)) - user.visible_message("\The [user] dismantles \the [src].", "You dismantle \the [src].") + user.visible_message("\The [user] dismantles \the [src].", "You dismantle \the [src].") new /obj/item/stack/material/steel(get_turf(usr), 2) qdel(src) return @@ -216,13 +216,13 @@ if(F.welding) playsound(src, F.usesound, 50, 1) if(do_after(user, 20, src)) - user.visible_message("\The [user] repairs some damage to \the [src].", "You repair some damage to \the [src].") + user.visible_message("\The [user] repairs some damage to \the [src].", "You repair some damage to \the [src].") health = min(health+(maxhealth/5), maxhealth) // 20% repair per application return // Install if(W.is_screwdriver()) - user.visible_message(anchored ? "\The [user] begins unscrewing \the [src]." : "\The [user] begins fasten \the [src]." ) + user.visible_message(anchored ? "\The [user] begins unscrewing \the [src]." : "\The [user] begins fasten \the [src]." ) playsound(src, W.usesound, 75, 1) if(do_after(user, 10, src)) to_chat(user, (anchored ? "You have unfastened \the [src] from the floor." : "You have fastened \the [src] to the floor.")) diff --git a/code/game/objects/structures/salvageable.dm b/code/game/objects/structures/salvageable.dm index 18fe7ad080..faf6c788aa 100644 --- a/code/game/objects/structures/salvageable.dm +++ b/code/game/objects/structures/salvageable.dm @@ -18,7 +18,7 @@ playsound(src, I.usesound, 50, 1) var/actual_time = I.toolspeed * 170 user.visible_message( \ - "\The [user] begins salvaging from \the [src].", \ + "\The [user] begins salvaging from \the [src].", \ "You start salvaging from \the [src].") if(do_after(user, actual_time, target = src)) user.visible_message( \ diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 1f9d163e78..4309478e5d 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -324,7 +324,7 @@ to_chat(usr, "\The [thing] is empty.") return // Clear the vessel. - visible_message("\The [usr] tips the contents of \the [thing] into \the [src].") + visible_message("\The [usr] tips the contents of \the [thing] into \the [src].") thing.reagents.clear_reagents() thing.update_icon() diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 2ae7c7adfc..6083a38a79 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -215,7 +215,7 @@ damage = damage / 2 take_damage(damage) else - visible_message("\The [user] bonks \the [src] harmlessly.") + visible_message("\The [user] bonks \the [src] harmlessly.") user.do_attack_animation(src) return 1 @@ -302,7 +302,7 @@ if (C.use(1)) playsound(src, 'sound/effects/sparks1.ogg', 75, 1) user.visible_message( \ - "\The [user] begins to wire \the [src] for electrochromic tinting.", \ + "\The [user] begins to wire \the [src] for electrochromic tinting.", \ "You begin to wire \the [src] for electrochromic tinting.", \ "You hear sparks.") if(do_after(user, 20 * C.toolspeed, src) && state == 0) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9115c934a4..2102eee50e 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /obj/item/clothing name = "clothing" siemens_coefficient = 0.9 @@ -1092,3 +1093,2194 @@ /obj/item/clothing/under/rank/New() sensor_mode = pick(0,1,2,3) ..() +||||||| parent of e4b8407fdb... Merge pull request #10908 from MarinaGryphon/spannening +/obj/item/clothing + name = "clothing" + siemens_coefficient = 0.9 + drop_sound = 'sound/items/drop/clothing.ogg' + pickup_sound = 'sound/items/pickup/clothing.ogg' + var/list/species_restricted = null //Only these species can wear this kit. + var/gunshot_residue //Used by forensics. + + var/list/accessories + var/list/valid_accessory_slots + var/list/restricted_accessory_slots + var/list/starting_accessories + + var/flash_protection = FLASH_PROTECTION_NONE + var/tint = TINT_NONE + var/list/enables_planes //Enables these planes in the wearing mob's plane_holder + var/list/plane_slots //But only if it's equipped into this specific slot + + /* + Sprites used when the clothing item is refit. This is done by setting icon_override. + For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. + Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), + while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). + */ + var/list/sprite_sheets_refit = null + var/ear_protection = 0 + var/blood_sprite_state + + var/index //null by default, if set, will change which dmi it uses + + var/update_icon_define = null // Only needed if you've got multiple files for the same type of clothing + + var/polychromic = FALSE //VOREStation edit + +//Updates the icons of the mob wearing the clothing item, if any. +/obj/item/clothing/proc/update_clothing_icon() + return + +// Aurora forensics port. +/obj/item/clothing/clean_blood() + . = ..() + gunshot_residue = null + + +/obj/item/clothing/New() + ..() + if(starting_accessories) + for(var/T in starting_accessories) + var/obj/item/clothing/accessory/tie = new T(src) + src.attach_accessory(null, tie) + set_clothing_index() + + //VOREStation edit start + if(polychromic) + verbs |= /obj/item/clothing/proc/change_color + //VOREStation edit start + +/obj/item/clothing/update_icon() + cut_overlays() //This removes all the overlays on the sprite and then goes down a checklist adding them as required. + if(blood_DNA) + add_blood() + . = ..() + +/obj/item/clothing/equipped(var/mob/user,var/slot) + ..() + if(enables_planes) + user.recalculate_vis() + +/obj/item/clothing/dropped(var/mob/user) + ..() + if(enables_planes) + user.recalculate_vis() + +//BS12: Species-restricted clothing check. +/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = FALSE) + + //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) + if (!..()) + return 0 + + if(LAZYLEN(species_restricted) && istype(M,/mob/living/carbon/human)) + var/exclusive = null + var/wearable = null + var/mob/living/carbon/human/H = M + + if("exclude" in species_restricted) + exclusive = 1 + + if(H.species) + if(exclusive) + if(!(H.species.get_bodytype(H) in species_restricted)) + wearable = 1 + else + if(H.species.get_bodytype(H) in species_restricted) + wearable = 1 + + if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store))) + to_chat(H, "Your species cannot wear [src].") + return 0 + return 1 + +/obj/item/clothing/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") + . = ..() + if((. == 0) && LAZYLEN(accessories)) + for(var/obj/item/I in accessories) + var/check = I.handle_shield(user, damage, damage_source, attacker, def_zone, attack_text) + + if(check != 0) // Projectiles sometimes use negatives IIRC, 0 is only returned if something is not blocked. + . = check + break + +// For now, these two temp procs only return TRUE or FALSE if they can provide resistance to a given temperature. +/obj/item/clothing/proc/handle_low_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_low_temperature(tempcheck)) + . = TRUE + + if(min_cold_protection_temperature && min_cold_protection_temperature <= tempcheck) + . = TRUE + +/obj/item/clothing/proc/handle_high_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_high_temperature(tempcheck)) + . = TRUE + + if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck) + . = TRUE + +// Returns the relative flag-vars for covered protection. +/obj/item/clothing/proc/get_cold_protection_flags() + . = cold_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_cold_protection_flags() + +/obj/item/clothing/proc/get_heat_protection_flags() + . = heat_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_heat_protection_flags() + +/obj/item/clothing/proc/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN, SPECIES_SKRELL) //humanoid bodytypes + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +//VOREStation edit start +/obj/item/clothing/proc/change_color() + set name = "Change Color" + set category = "Object" + set desc = "Change the color of the clothing." + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + var/new_color = input(usr, "Pick a new color", "Color", color) as color|null + + if(new_color && (new_color != color)) + color = new_color + update_icon() + update_clothing_icon() +//VOREStation edit end + +/obj/item/clothing/head/helmet/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN) + species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_SKRELL) + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +/////////////////////////////////////////////////////////////////////// +// Ears: headsets, earmuffs and tiny objects +/obj/item/clothing/ears + name = "ears" + w_class = ITEMSIZE_TINY + throwforce = 2 + slot_flags = SLOT_EARS + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi') + +/obj/item/clothing/ears/attack_hand(mob/user as mob) + if (!user) return + + if (src.loc != user || !istype(user,/mob/living/carbon/human)) + ..() + return + + var/mob/living/carbon/human/H = user + if(H.l_ear != src && H.r_ear != src) + ..() + return + + if(!canremove) + return + + var/obj/item/clothing/ears/O + if(slot_flags & SLOT_TWOEARS ) + O = (H.l_ear == src ? H.r_ear : H.l_ear) + user.u_equip(O) + if(!istype(src,/obj/item/clothing/ears/offear)) + qdel(O) + O = src + else + O = src + + user.unEquip(src) + + if (O) + user.put_in_hands(O) + O.add_fingerprint(user) + + if(istype(src,/obj/item/clothing/ears/offear)) + qdel(src) + +/obj/item/clothing/ears/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_ears() + +/obj/item/clothing/ears/MouseDrop(var/obj/over_object) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + // If this covers both ears, we want to return the result of unequipping the primary object, and kill the off-ear one + if(slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/O = (H.l_ear == src ? H.r_ear : H.l_ear) + if(istype(src, /obj/item/clothing/ears/offear)) + . = O.MouseDrop(over_object) + H.drop_from_inventory(src) + qdel(src) + else + . = ..() + H.drop_from_inventory(O) + qdel(O) + else + . = ..() + + +/obj/item/clothing/ears/offear + name = "Other ear" + w_class = ITEMSIZE_HUGE + icon = 'icons/mob/screen1_Midnight.dmi' + icon_state = "block" + slot_flags = SLOT_EARS | SLOT_TWOEARS + +/obj/item/clothing/ears/offear/New(var/obj/O) + name = O.name + desc = O.desc + icon = O.icon + icon_state = O.icon_state + set_dir(O.dir) + +//////////////////////////////////////////////////////////////////////////////////////// +//Gloves +/obj/item/clothing/gloves + name = "gloves" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + gender = PLURAL //Carn: for grammarically correct text-parsing + w_class = ITEMSIZE_SMALL + icon = 'icons/obj/clothing/gloves.dmi' + siemens_coefficient = 0.9 + blood_sprite_state = "bloodyhands" + var/wired = 0 + var/obj/item/weapon/cell/cell = 0 + var/fingerprint_chance = 0 //How likely the glove is to let fingerprints through + var/obj/item/clothing/gloves/ring = null //Covered ring + var/mob/living/carbon/human/wearer = null //Used for covered rings when dropping + var/glove_level = 2 //What "layer" the glove is on + var/overgloves = 0 //Used by gauntlets and arm_guards + var/punch_force = 0 //How much damage do these gloves add to a punch? + var/punch_damtype = BRUTE //What type of damage does this make fists be? + body_parts_covered = HANDS + slot_flags = SLOT_GLOVES + attack_verb = list("challenged") + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/gloves.dmi', + SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi' + ) + drop_sound = 'sound/items/drop/gloves.ogg' + pickup_sound = 'sound/items/pickup/gloves.ogg' + +/obj/item/clothing/proc/set_clothing_index() + return + +/obj/item/clothing/gloves/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_gloves() + +/obj/item/clothing/gloves/emp_act(severity) + if(cell) + cell.emp_act(severity) + if(ring) + ring.emp_act(severity) + ..() + +// Called just before an attack_hand(), in mob/UnarmedAttack() +/obj/item/clothing/gloves/proc/Touch(var/atom/A, var/proximity) + return 0 // return 1 to cancel attack_hand() + +/*/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user) + if(W.is_wirecutter() || istype(W, /obj/item/weapon/scalpel)) + if (clipped) + to_chat(user, "The [src] have already been clipped!") + update_icon() + return + + playsound(src, W.usesound, 50, 1) + user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].") + + clipped = 1 + name = "modified [name]" + desc = "[desc]
They have had the fingertips cut off of them." + if("exclude" in species_restricted) + species_restricted -= SPECIES_UNATHI + species_restricted -= SPECIES_TAJ + return +*/ + +/obj/item/clothing/gloves/clean_blood() + . = ..() + transfer_blood = 0 + update_icon() + +/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) + var/mob/living/carbon/human/H = user + + if(slot && slot == slot_gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(istype(G)) + ring = H.gloves + if(ring.glove_level >= src.glove_level) + to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.") + ring = null + return 0 + else + H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves. + ring.forceMove(src) + to_chat(user, "You slip \the [src] on over \the [src.ring].") + if(!(flags & THICKMATERIAL)) + punch_force += ring.punch_force + else + ring = null + + if(!..()) + if(ring) //Put the ring back on if the check fails. + if(H.equip_to_slot_if_possible(ring, slot_gloves)) + src.ring = null + punch_force = initial(punch_force) + return 0 + + wearer = H //TODO clean this when magboots are cleaned + return 1 + +/obj/item/clothing/gloves/dropped() + ..() + + if(!wearer) + return + + var/mob/living/carbon/human/H = wearer + if(ring && istype(H)) + if(!H.equip_to_slot_if_possible(ring, slot_gloves)) + ring.forceMove(get_turf(src)) + src.ring = null + punch_force = initial(punch_force) + wearer = null + +/obj/item/clothing/gloves + var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack? + var/special_attack_type = null + +/obj/item/clothing/gloves/New() + ..() + if(special_attack_type && ispath(special_attack_type)) + special_attack = new special_attack_type + + + +///////////////////////////////////////////////////////////////////// +//Rings + +/obj/item/clothing/gloves/ring + name = "ring" + w_class = ITEMSIZE_TINY + icon = 'icons/obj/clothing/rings.dmi' + gender = NEUTER + species_restricted = list("exclude", SPECIES_DIONA) + siemens_coefficient = 1 + glove_level = 1 + fingerprint_chance = 100 + punch_force = 2 + body_parts_covered = 0 + drop_sound = 'sound/items/drop/ring.ogg' + pickup_sound = 'sound/items/pickup/ring.ogg' + +/////////////////////////////////////////////////////////////////////// +//Head +/obj/item/clothing/head + name = "head" + icon = 'icons/obj/clothing/hats.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_hats.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_hats.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_HEAD + w_class = ITEMSIZE_SMALL + blood_sprite_state = "helmetblood" + + light_system = MOVABLE_LIGHT_DIRECTIONAL + light_cone_y_offset = 11 + + var/light_overlay = "helmet_light" + var/image/helmet_light + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', + SPECIES_VOX = 'icons/mob/species/vox/head.dmi' + ) + drop_sound = 'sound/items/drop/hat.ogg' + pickup_sound = 'sound/items/pickup/hat.ogg' + +/obj/item/clothing/head/attack_self(mob/user) + if(light_range) + if(!isturf(user.loc)) + to_chat(user, "You cannot toggle the light while in this [user.loc]") + return + update_flashlight(user) + to_chat(user, "You [light_on ? "enable" : "disable"] the helmet light.") + else + return ..(user) + +/obj/item/clothing/head/proc/update_flashlight(var/mob/user = null) + set_light_on(!light_on) + + if(light_system == STATIC_LIGHT) + update_light() + + update_icon(user) + user.update_action_buttons() + +/obj/item/clothing/head/attack_ai(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/attack_generic(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) + if(!Adjacent(user)) + return 0 + var/success + if(istype(user, /mob/living/silicon/robot/drone)) + var/mob/living/silicon/robot/drone/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + else if(istype(user, /mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + + if(!success) + return 0 + else if(success == 2) + to_chat(user, "You are already wearing a hat.") + else if(success == 1) + to_chat(user, "You crawl under \the [src].") + return 1 + +/obj/item/clothing/head/update_icon(var/mob/user) + var/mob/living/carbon/human/H + if(ishuman(user)) + H = user + + if(light_on) + // Generate object icon. + if(!light_overlay_cache["[light_overlay]_icon"]) + light_overlay_cache["[light_overlay]_icon"] = image(icon = 'icons/obj/light_overlays.dmi', icon_state = "[light_overlay]") + helmet_light = light_overlay_cache["[light_overlay]_icon"] + add_overlay(helmet_light) + + // Generate and cache the on-mob icon, which is used in update_inv_head(). + var/body_type = (H && H.species.get_bodytype(H)) + var/cache_key = "[light_overlay][body_type && sprite_sheets[body_type] ? "_[body_type]" : ""]" + if(!light_overlay_cache[cache_key]) + var/use_icon = LAZYACCESS(sprite_sheets,body_type) || 'icons/mob/light_overlays.dmi' + light_overlay_cache[cache_key] = image(icon = use_icon, icon_state = "[light_overlay]") + + else if(helmet_light) + cut_overlay(helmet_light) + helmet_light = null + + user.update_inv_head() //Will redraw the helmet with the light on the mob + +/obj/item/clothing/head/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_head() + +/////////////////////////////////////////////////////////////////////// +//Mask +/obj/item/clothing/mask + name = "mask" + icon = 'icons/obj/clothing/masks.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_MASK + body_parts_covered = FACE|EYES + blood_sprite_state = "maskblood" + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/masks.dmi', + SPECIES_VOX = 'icons/mob/species/vox/masks.dmi', + SPECIES_TAJ = 'icons/mob/species/tajaran/mask.dmi', + SPECIES_UNATHI = 'icons/mob/species/unathi/mask.dmi' + ) + + var/voicechange = 0 + var/list/say_messages + var/list/say_verbs + + drop_sound = "generic_drop" + pickup_sound = "generic_pickup" + +/obj/item/clothing/mask/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_mask() + +/obj/item/clothing/mask/proc/filter_air(datum/gas_mixture/air) + return + +/////////////////////////////////////////////////////////////////////// +//Shoes +/obj/item/clothing/shoes + name = "shoes" + icon = 'icons/obj/clothing/shoes.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_shoes.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_shoes.dmi', + ) + desc = "Comfortable-looking shoes." + gender = PLURAL //Carn: for grammarically correct text-parsing + siemens_coefficient = 0.9 + body_parts_covered = FEET + slot_flags = SLOT_FEET + blood_sprite_state = "shoeblood" + + var/can_hold_knife = 0 + var/obj/item/holding + + var/shoes_under_pants = 0 + + var/water_speed = 0 //Speed boost/decrease in water, lower/negative values mean more speed + var/snow_speed = 0 //Speed boost/decrease on snow, lower/negative values mean more speed + var/rock_climbing = FALSE // If true, allows climbing cliffs with clickdrag. + + var/step_volume_mod = 1 //How quiet or loud footsteps in this shoe are + + permeability_coefficient = 0.50 + slowdown = SHOES_SLOWDOWN + force = 2 + var/overshoes = 0 + species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX) + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/shoes.dmi', + SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi' + ) + drop_sound = 'sound/items/drop/shoes.ogg' + pickup_sound = 'sound/items/pickup/shoes.ogg' + +/obj/item/clothing/shoes/proc/draw_knife() + set name = "Draw Boot Knife" + set desc = "Pull out your boot knife." + set category = "IC" + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + holding.forceMove(get_turf(usr)) + + if(usr.put_in_hands(holding)) + usr.visible_message("\The [usr] pulls a knife out of their boot!") + playsound(src, 'sound/weapons/holster/sheathout.ogg', 25) + holding = null + cut_overlay("[icon_state]_knife") + else + to_chat(usr, "Your need an empty, unbroken hand to do that.") + holding.forceMove(src) + + if(!holding) + verbs -= /obj/item/clothing/shoes/proc/draw_knife + + update_icon() + return + +/obj/item/clothing/shoes/attack_hand(var/mob/living/M) + if(can_hold_knife == 1 && holding && src.loc == M) + draw_knife() + return + ..() + +/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user) + if((can_hold_knife == 1) && (istype(I, /obj/item/weapon/material/shard) || \ + istype(I, /obj/item/weapon/material/butterfly) || \ + istype(I, /obj/item/weapon/material/kitchen/utensil) || \ + istype(I, /obj/item/weapon/material/knife/tacknife))) + if(holding) + to_chat(user, "\The [src] is already holding \a [holding].") + return + user.unEquip(I) + I.forceMove(src) + holding = I + user.visible_message("\The [user] shoves \the [I] into \the [src].") + verbs |= /obj/item/clothing/shoes/proc/draw_knife + update_icon() + else + return ..() + +/obj/item/clothing/shoes/verb/toggle_layer() + set name = "Switch Shoe Layer" + set category = "Object" + + if(shoes_under_pants == -1) + to_chat(usr, "\The [src] cannot be worn above your suit!") + return + shoes_under_pants = !shoes_under_pants + update_icon() + +/obj/item/clothing/shoes/update_icon() + . = ..() + if(holding) + add_overlay("[icon_state]_knife") + if(contaminated) + add_overlay(contamination_overlay) + if(gurgled) //VOREStation Edit Start + decontaminate() + gurgle_contaminate() //VOREStation Edit End + if(ismob(usr)) + var/mob/M = usr + M.update_inv_shoes() + +/obj/item/clothing/shoes/clean_blood() + update_icon() + return ..() + +/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running) + if(prob(1) && !recent_squish) //VOREStation edit begin + recent_squish = 1 + spawn(100) + recent_squish = 0 + for(var/mob/living/M in contents) + var/emote = pick(inside_emotes) + to_chat(M,emote) //VOREStation edit end + return + +/obj/item/clothing/shoes/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_shoes() + + +/////////////////////////////////////////////////////////////////////// +//Suit +/obj/item/clothing/suit + icon = 'icons/obj/clothing/suits.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_suits.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_suits.dmi', + ) + name = "suit" + var/fire_resist = T0C+100 + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + allowed = list(/obj/item/weapon/tank/emergency/oxygen) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + slot_flags = SLOT_OCLOTHING + var/blood_overlay_type = "suit" + blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. + + var/taurized = FALSE + siemens_coefficient = 0.9 + w_class = ITEMSIZE_NORMAL + preserve_item = 1 + equip_sound = 'sound/items/jumpsuit_equip.ogg' + + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi', + SPECIES_VOX = 'icons/mob/species/vox/suit.dmi' + ) + + valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND) + restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/set_clothing_index() + ..() + + if(index && !icon_override) + icon = new /icon("icons/obj/clothing/suits_[index].dmi") + item_icons = list( + slot_l_hand_str = new /icon("icons/mob/items/lefthand_suits_[index].dmi"), + slot_r_hand_str = new /icon("icons/mob/items/righthand_suits_[index].dmi"), + ) + + return 1 + + return 0 + +/obj/item/clothing/suit/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_suit() + + set_clothing_index() + +/obj/item/clothing/suit/equipped(var/mob/user, var/slot) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if((taurized && !istaurtail(H.tail_style)) || (!taurized && istaurtail(H.tail_style))) + taurize(user) + + return ..() + +/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur) + if(istaurtail(Taur.tail_style)) + var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style + if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites))) + icon_override = taurtail.suit_sprites + taurized = TRUE + + if(!taurized) + icon_override = initial(icon_override) + taurized = FALSE + +// Taur suits need to be shifted so its centered on their taur half. +/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask) + var/image/standing = ..() + if(taurized) //Special snowflake var on suits + standing.pixel_x = -16 + standing.layer = BODY_LAYER + 15 // 15 is above tail layer, so will not be covered by taurbody. + return standing + +/obj/item/clothing/suit/apply_accessories(var/image/standing) + if(LAZYLEN(accessories) && taurized) + for(var/obj/item/clothing/accessory/A in accessories) + var/image/I = new(A.get_mob_overlay()) + I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body. + standing.add_overlay(I) + else + return ..() + + +/////////////////////////////////////////////////////////////////////// +//Under clothing +/obj/item/clothing/under + icon = 'icons/obj/clothing/uniforms.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi', + ) + name = "under" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + permeability_coefficient = 0.90 + slot_flags = SLOT_ICLOTHING + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + equip_sound = 'sound/items/jumpsuit_equip.ogg' + w_class = ITEMSIZE_NORMAL + show_messages = 1 + blood_sprite_state = "uniformblood" + + var/has_sensor = 1 //For the crew computer 2 = unable to change mode + var/sensor_mode = 0 + /* + 1 = Report living/dead + 2 = Report detailed damages + 3 = Report location + */ + var/displays_id = 1 + var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/uniform.dmi', + SPECIES_VOX = 'icons/mob/species/vox/uniform.dmi' + ) + + //convenience var for defining the icon state for the overlay used when the clothing is worn. + //Also used by rolling/unrolling. + var/worn_state = null + valid_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_DECOR\ + |ACCESSORY_SLOT_MEDAL\ + |ACCESSORY_SLOT_INSIGNIA\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + restricted_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + + var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi' + var/icon/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi' + +/obj/item/clothing/under/attack_hand(var/mob/user) + if(LAZYLEN(accessories)) + ..() + if ((ishuman(usr) || issmall(usr)) && src.loc == user) + return + ..() + +/obj/item/clothing/under/New() + ..() + if(worn_state) + if(!item_state_slots) + item_state_slots = list() + item_state_slots[slot_w_uniform_str] = worn_state + else + worn_state = icon_state + + //autodetect rollability + if(rolled_down < 0) + if(("[worn_state]_d_s" in cached_icon_states(icon)) || ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in cached_icon_states(icon_override))) + rolled_down = 0 + + if(rolled_down == -1) + verbs -= /obj/item/clothing/under/verb/rollsuit + if(rolled_sleeves == -1) + verbs -= /obj/item/clothing/under/verb/rollsleeves + +/obj/item/clothing/under/set_clothing_index() + ..() + + if(index && !icon_override) + icon = new /icon("icons/obj/clothing/uniforms_[index].dmi") + + item_icons = list( + slot_l_hand_str = new /icon("icons/mob/items/lefthand_uniforms_[index].dmi"), + slot_r_hand_str = new /icon("icons/mob/items/righthand_uniforms_[index].dmi"), + ) + + rolled_down_icon = new /icon("icons/mob/uniform_rolled_down_[index].dmi") + rolled_down_sleeves_icon = new /icon("icons/mob/uniform_sleeves_rolled_[index].dmi") + return 1 + + return 0 + +/obj/item/clothing/under/proc/update_rolldown_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override) + under_icon = icon_override + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(item_icons && item_icons[slot_w_uniform_str]) + under_icon = item_icons[slot_w_uniform_str] + else if ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + under_icon = rolled_down_icon + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_d_s" in cached_icon_states(under_icon))) + if(rolled_down != 1) + rolled_down = 0 + else + rolled_down = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/proc/update_rollsleeves_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override) + under_icon = icon_override + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(item_icons && item_icons[slot_w_uniform_str]) + under_icon = item_icons[slot_w_uniform_str] + else if ("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + under_icon = rolled_down_sleeves_icon + else if(index) + under_icon = new /icon("[INV_W_UNIFORM_DEF_ICON]_[index].dmi") + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_sleeves_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_r_s" in cached_icon_states(under_icon))) + if(rolled_sleeves != 1) + rolled_sleeves = 0 + else + rolled_sleeves = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_w_uniform() + + set_clothing_index() + + +/obj/item/clothing/under/examine(mob/user) + . = ..() + switch(src.sensor_mode) + if(0) + . += "Its sensors appear to be disabled." + if(1) + . += "Its binary life sensors appear to be enabled." + if(2) + . += "Its vital tracker appears to be enabled." + if(3) + . += "Its vital tracker and tracking beacon appear to be enabled." + +/obj/item/clothing/under/proc/set_sensors(mob/usr as mob) + var/mob/M = usr + if (istype(M, /mob/observer)) return + if (usr.stat || usr.restrained()) return + if(has_sensor >= 2) + to_chat(usr, "The controls are locked.") + return 0 + if(has_sensor <= 0) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") + var/switchMode = tgui_input_list(usr, "Select a sensor mode:", "Suit Sensor Mode", modes) + if(get_dist(usr, src) > 1) + to_chat(usr, "You have moved too far away.") + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr.visible_message("[usr] adjusts their sensors.", "You disable your suit's remote sensing equipment.") + if(1) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report whether you are live or dead.") + if(2) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns.") + if(3) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns as well as your coordinate position.") + + else if (istype(src.loc, /mob)) + usr.visible_message("[usr] adjusts [src.loc]'s sensors.", "You adjust [src.loc]'s sensors.") + +/obj/item/clothing/under/verb/toggle() + set name = "Toggle Suit Sensors" + set category = "Object" + set src in usr + set_sensors(usr) + +/obj/item/clothing/under/verb/rollsuit() + set name = "Roll Down Jumpsuit" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rolldown_status() + if(rolled_down == -1) + to_chat(usr, "You cannot roll down [src]!") + return + if((rolled_sleeves == 1) && !(rolled_down)) + rolled_sleeves = 0 + + rolled_down = !rolled_down + if(rolled_down) + body_parts_covered = initial(body_parts_covered) + body_parts_covered &= ~(UPPER_TORSO|ARMS) + if("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + icon_override = rolled_down_icon + item_state_slots[slot_w_uniform_str] = "[worn_state]" + else + item_state_slots[slot_w_uniform_str] = "[worn_state]_d" + + to_chat(usr, "You roll down your [src].") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_icon) + icon_override = initial(icon_override) + item_state_slots[slot_w_uniform_str] = "[worn_state]" + to_chat(usr, "You roll up your [src].") + update_clothing_icon() + +/obj/item/clothing/under/verb/rollsleeves() + set name = "Roll Up Sleeves" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rollsleeves_status() + if(rolled_sleeves == -1) + to_chat(usr, "You cannot roll up your [src]'s sleeves!") + return + if(rolled_down == 1) + to_chat(usr, "You must roll up your [src] first!") + return + + rolled_sleeves = !rolled_sleeves + if(rolled_sleeves) + body_parts_covered &= ~(ARMS) + if("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + icon_override = rolled_down_sleeves_icon + item_state_slots[slot_w_uniform_str] = "[worn_state]" + else + item_state_slots[slot_w_uniform_str] = "[worn_state]_r" + to_chat(usr, "You roll up your [src]'s sleeves.") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_sleeves_icon) + icon_override = initial(icon_override) + item_state_slots[slot_w_uniform_str] = "[worn_state]" + to_chat(usr, "You roll down your [src]'s sleeves.") + update_clothing_icon() + +/obj/item/clothing/under/rank/New() + sensor_mode = pick(0,1,2,3) + ..() +======= +/obj/item/clothing + name = "clothing" + siemens_coefficient = 0.9 + drop_sound = 'sound/items/drop/clothing.ogg' + pickup_sound = 'sound/items/pickup/clothing.ogg' + var/list/species_restricted = null //Only these species can wear this kit. + var/gunshot_residue //Used by forensics. + + var/list/accessories + var/list/valid_accessory_slots + var/list/restricted_accessory_slots + var/list/starting_accessories + + var/flash_protection = FLASH_PROTECTION_NONE + var/tint = TINT_NONE + var/list/enables_planes //Enables these planes in the wearing mob's plane_holder + var/list/plane_slots //But only if it's equipped into this specific slot + + /* + Sprites used when the clothing item is refit. This is done by setting icon_override. + For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. + Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), + while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). + */ + var/list/sprite_sheets_refit = null + var/ear_protection = 0 + var/blood_sprite_state + + var/index //null by default, if set, will change which dmi it uses + + var/update_icon_define = null // Only needed if you've got multiple files for the same type of clothing + + var/polychromic = FALSE //VOREStation edit + +//Updates the icons of the mob wearing the clothing item, if any. +/obj/item/clothing/proc/update_clothing_icon() + return + +// Aurora forensics port. +/obj/item/clothing/clean_blood() + . = ..() + gunshot_residue = null + + +/obj/item/clothing/New() + ..() + if(starting_accessories) + for(var/T in starting_accessories) + var/obj/item/clothing/accessory/tie = new T(src) + src.attach_accessory(null, tie) + set_clothing_index() + + //VOREStation edit start + if(polychromic) + verbs |= /obj/item/clothing/proc/change_color + //VOREStation edit start + +/obj/item/clothing/update_icon() + cut_overlays() //This removes all the overlays on the sprite and then goes down a checklist adding them as required. + if(blood_DNA) + add_blood() + . = ..() + +/obj/item/clothing/equipped(var/mob/user,var/slot) + ..() + if(enables_planes) + user.recalculate_vis() + +/obj/item/clothing/dropped(var/mob/user) + ..() + if(enables_planes) + user.recalculate_vis() + +//BS12: Species-restricted clothing check. +/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = FALSE) + + //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) + if (!..()) + return 0 + + if(LAZYLEN(species_restricted) && istype(M,/mob/living/carbon/human)) + var/exclusive = null + var/wearable = null + var/mob/living/carbon/human/H = M + + if("exclude" in species_restricted) + exclusive = 1 + + if(H.species) + if(exclusive) + if(!(H.species.get_bodytype(H) in species_restricted)) + wearable = 1 + else + if(H.species.get_bodytype(H) in species_restricted) + wearable = 1 + + if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store))) + to_chat(H, "Your species cannot wear [src].") + return 0 + return 1 + +/obj/item/clothing/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") + . = ..() + if((. == 0) && LAZYLEN(accessories)) + for(var/obj/item/I in accessories) + var/check = I.handle_shield(user, damage, damage_source, attacker, def_zone, attack_text) + + if(check != 0) // Projectiles sometimes use negatives IIRC, 0 is only returned if something is not blocked. + . = check + break + +// For now, these two temp procs only return TRUE or FALSE if they can provide resistance to a given temperature. +/obj/item/clothing/proc/handle_low_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_low_temperature(tempcheck)) + . = TRUE + + if(min_cold_protection_temperature && min_cold_protection_temperature <= tempcheck) + . = TRUE + +/obj/item/clothing/proc/handle_high_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_high_temperature(tempcheck)) + . = TRUE + + if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck) + . = TRUE + +// Returns the relative flag-vars for covered protection. +/obj/item/clothing/proc/get_cold_protection_flags() + . = cold_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_cold_protection_flags() + +/obj/item/clothing/proc/get_heat_protection_flags() + . = heat_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_heat_protection_flags() + +/obj/item/clothing/proc/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN, SPECIES_SKRELL) //humanoid bodytypes + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +//VOREStation edit start +/obj/item/clothing/proc/change_color() + set name = "Change Color" + set category = "Object" + set desc = "Change the color of the clothing." + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + var/new_color = input(usr, "Pick a new color", "Color", color) as color|null + + if(new_color && (new_color != color)) + color = new_color + update_icon() + update_clothing_icon() +//VOREStation edit end + +/obj/item/clothing/head/helmet/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN) + species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_SKRELL) + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +/////////////////////////////////////////////////////////////////////// +// Ears: headsets, earmuffs and tiny objects +/obj/item/clothing/ears + name = "ears" + w_class = ITEMSIZE_TINY + throwforce = 2 + slot_flags = SLOT_EARS + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi') + +/obj/item/clothing/ears/attack_hand(mob/user as mob) + if (!user) return + + if (src.loc != user || !istype(user,/mob/living/carbon/human)) + ..() + return + + var/mob/living/carbon/human/H = user + if(H.l_ear != src && H.r_ear != src) + ..() + return + + if(!canremove) + return + + var/obj/item/clothing/ears/O + if(slot_flags & SLOT_TWOEARS ) + O = (H.l_ear == src ? H.r_ear : H.l_ear) + user.u_equip(O) + if(!istype(src,/obj/item/clothing/ears/offear)) + qdel(O) + O = src + else + O = src + + user.unEquip(src) + + if (O) + user.put_in_hands(O) + O.add_fingerprint(user) + + if(istype(src,/obj/item/clothing/ears/offear)) + qdel(src) + +/obj/item/clothing/ears/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_ears() + +/obj/item/clothing/ears/MouseDrop(var/obj/over_object) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + // If this covers both ears, we want to return the result of unequipping the primary object, and kill the off-ear one + if(slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/O = (H.l_ear == src ? H.r_ear : H.l_ear) + if(istype(src, /obj/item/clothing/ears/offear)) + . = O.MouseDrop(over_object) + H.drop_from_inventory(src) + qdel(src) + else + . = ..() + H.drop_from_inventory(O) + qdel(O) + else + . = ..() + + +/obj/item/clothing/ears/offear + name = "Other ear" + w_class = ITEMSIZE_HUGE + icon = 'icons/mob/screen1_Midnight.dmi' + icon_state = "block" + slot_flags = SLOT_EARS | SLOT_TWOEARS + +/obj/item/clothing/ears/offear/New(var/obj/O) + name = O.name + desc = O.desc + icon = O.icon + icon_state = O.icon_state + set_dir(O.dir) + +//////////////////////////////////////////////////////////////////////////////////////// +//Gloves +/obj/item/clothing/gloves + name = "gloves" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + gender = PLURAL //Carn: for grammarically correct text-parsing + w_class = ITEMSIZE_SMALL + icon = 'icons/obj/clothing/gloves.dmi' + siemens_coefficient = 0.9 + blood_sprite_state = "bloodyhands" + var/wired = 0 + var/obj/item/weapon/cell/cell = 0 + var/fingerprint_chance = 0 //How likely the glove is to let fingerprints through + var/obj/item/clothing/gloves/ring = null //Covered ring + var/mob/living/carbon/human/wearer = null //Used for covered rings when dropping + var/glove_level = 2 //What "layer" the glove is on + var/overgloves = 0 //Used by gauntlets and arm_guards + var/punch_force = 0 //How much damage do these gloves add to a punch? + var/punch_damtype = BRUTE //What type of damage does this make fists be? + body_parts_covered = HANDS + slot_flags = SLOT_GLOVES + attack_verb = list("challenged") + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/gloves.dmi', + SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi' + ) + drop_sound = 'sound/items/drop/gloves.ogg' + pickup_sound = 'sound/items/pickup/gloves.ogg' + +/obj/item/clothing/proc/set_clothing_index() + return + +/obj/item/clothing/gloves/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_gloves() + +/obj/item/clothing/gloves/emp_act(severity) + if(cell) + cell.emp_act(severity) + if(ring) + ring.emp_act(severity) + ..() + +// Called just before an attack_hand(), in mob/UnarmedAttack() +/obj/item/clothing/gloves/proc/Touch(var/atom/A, var/proximity) + return 0 // return 1 to cancel attack_hand() + +/*/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user) + if(W.is_wirecutter() || istype(W, /obj/item/weapon/scalpel)) + if (clipped) + to_chat(user, "The [src] have already been clipped!") + update_icon() + return + + playsound(src, W.usesound, 50, 1) + user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].") + + clipped = 1 + name = "modified [name]" + desc = "[desc]
They have had the fingertips cut off of them." + if("exclude" in species_restricted) + species_restricted -= SPECIES_UNATHI + species_restricted -= SPECIES_TAJ + return +*/ + +/obj/item/clothing/gloves/clean_blood() + . = ..() + transfer_blood = 0 + update_icon() + +/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) + var/mob/living/carbon/human/H = user + + if(slot && slot == slot_gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(istype(G)) + ring = H.gloves + if(ring.glove_level >= src.glove_level) + to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.") + ring = null + return 0 + else + H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves. + ring.forceMove(src) + to_chat(user, "You slip \the [src] on over \the [src.ring].") + if(!(flags & THICKMATERIAL)) + punch_force += ring.punch_force + else + ring = null + + if(!..()) + if(ring) //Put the ring back on if the check fails. + if(H.equip_to_slot_if_possible(ring, slot_gloves)) + src.ring = null + punch_force = initial(punch_force) + return 0 + + wearer = H //TODO clean this when magboots are cleaned + return 1 + +/obj/item/clothing/gloves/dropped() + ..() + + if(!wearer) + return + + var/mob/living/carbon/human/H = wearer + if(ring && istype(H)) + if(!H.equip_to_slot_if_possible(ring, slot_gloves)) + ring.forceMove(get_turf(src)) + src.ring = null + punch_force = initial(punch_force) + wearer = null + +/obj/item/clothing/gloves + var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack? + var/special_attack_type = null + +/obj/item/clothing/gloves/New() + ..() + if(special_attack_type && ispath(special_attack_type)) + special_attack = new special_attack_type + + + +///////////////////////////////////////////////////////////////////// +//Rings + +/obj/item/clothing/gloves/ring + name = "ring" + w_class = ITEMSIZE_TINY + icon = 'icons/obj/clothing/rings.dmi' + gender = NEUTER + species_restricted = list("exclude", SPECIES_DIONA) + siemens_coefficient = 1 + glove_level = 1 + fingerprint_chance = 100 + punch_force = 2 + body_parts_covered = 0 + drop_sound = 'sound/items/drop/ring.ogg' + pickup_sound = 'sound/items/pickup/ring.ogg' + +/////////////////////////////////////////////////////////////////////// +//Head +/obj/item/clothing/head + name = "head" + icon = 'icons/obj/clothing/hats.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_hats.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_hats.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_HEAD + w_class = ITEMSIZE_SMALL + blood_sprite_state = "helmetblood" + + light_system = MOVABLE_LIGHT_DIRECTIONAL + light_cone_y_offset = 11 + + var/light_overlay = "helmet_light" + var/image/helmet_light + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', + SPECIES_VOX = 'icons/mob/species/vox/head.dmi' + ) + drop_sound = 'sound/items/drop/hat.ogg' + pickup_sound = 'sound/items/pickup/hat.ogg' + +/obj/item/clothing/head/attack_self(mob/user) + if(light_range) + if(!isturf(user.loc)) + to_chat(user, "You cannot toggle the light while in this [user.loc]") + return + update_flashlight(user) + to_chat(user, "You [light_on ? "enable" : "disable"] the helmet light.") + else + return ..(user) + +/obj/item/clothing/head/proc/update_flashlight(var/mob/user = null) + set_light_on(!light_on) + + if(light_system == STATIC_LIGHT) + update_light() + + update_icon(user) + user.update_action_buttons() + +/obj/item/clothing/head/attack_ai(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/attack_generic(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) + if(!Adjacent(user)) + return 0 + var/success + if(istype(user, /mob/living/silicon/robot/drone)) + var/mob/living/silicon/robot/drone/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + else if(istype(user, /mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + + if(!success) + return 0 + else if(success == 2) + to_chat(user, "You are already wearing a hat.") + else if(success == 1) + to_chat(user, "You crawl under \the [src].") + return 1 + +/obj/item/clothing/head/update_icon(var/mob/user) + var/mob/living/carbon/human/H + if(ishuman(user)) + H = user + + if(light_on) + // Generate object icon. + if(!light_overlay_cache["[light_overlay]_icon"]) + light_overlay_cache["[light_overlay]_icon"] = image(icon = 'icons/obj/light_overlays.dmi', icon_state = "[light_overlay]") + helmet_light = light_overlay_cache["[light_overlay]_icon"] + add_overlay(helmet_light) + + // Generate and cache the on-mob icon, which is used in update_inv_head(). + var/body_type = (H && H.species.get_bodytype(H)) + var/cache_key = "[light_overlay][body_type && sprite_sheets[body_type] ? "_[body_type]" : ""]" + if(!light_overlay_cache[cache_key]) + var/use_icon = LAZYACCESS(sprite_sheets,body_type) || 'icons/mob/light_overlays.dmi' + light_overlay_cache[cache_key] = image(icon = use_icon, icon_state = "[light_overlay]") + + else if(helmet_light) + cut_overlay(helmet_light) + helmet_light = null + + user.update_inv_head() //Will redraw the helmet with the light on the mob + +/obj/item/clothing/head/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_head() + +/////////////////////////////////////////////////////////////////////// +//Mask +/obj/item/clothing/mask + name = "mask" + icon = 'icons/obj/clothing/masks.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_MASK + body_parts_covered = FACE|EYES + blood_sprite_state = "maskblood" + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/masks.dmi', + SPECIES_VOX = 'icons/mob/species/vox/masks.dmi', + SPECIES_TAJ = 'icons/mob/species/tajaran/mask.dmi', + SPECIES_UNATHI = 'icons/mob/species/unathi/mask.dmi' + ) + + var/voicechange = 0 + var/list/say_messages + var/list/say_verbs + + drop_sound = "generic_drop" + pickup_sound = "generic_pickup" + +/obj/item/clothing/mask/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_mask() + +/obj/item/clothing/mask/proc/filter_air(datum/gas_mixture/air) + return + +/////////////////////////////////////////////////////////////////////// +//Shoes +/obj/item/clothing/shoes + name = "shoes" + icon = 'icons/obj/clothing/shoes.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_shoes.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_shoes.dmi', + ) + desc = "Comfortable-looking shoes." + gender = PLURAL //Carn: for grammarically correct text-parsing + siemens_coefficient = 0.9 + body_parts_covered = FEET + slot_flags = SLOT_FEET + blood_sprite_state = "shoeblood" + + var/can_hold_knife = 0 + var/obj/item/holding + + var/shoes_under_pants = 0 + + var/water_speed = 0 //Speed boost/decrease in water, lower/negative values mean more speed + var/snow_speed = 0 //Speed boost/decrease on snow, lower/negative values mean more speed + var/rock_climbing = FALSE // If true, allows climbing cliffs with clickdrag. + + var/step_volume_mod = 1 //How quiet or loud footsteps in this shoe are + + permeability_coefficient = 0.50 + slowdown = SHOES_SLOWDOWN + force = 2 + var/overshoes = 0 + species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX) + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/shoes.dmi', + SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi' + ) + drop_sound = 'sound/items/drop/shoes.ogg' + pickup_sound = 'sound/items/pickup/shoes.ogg' + +/obj/item/clothing/shoes/proc/draw_knife() + set name = "Draw Boot Knife" + set desc = "Pull out your boot knife." + set category = "IC" + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + holding.forceMove(get_turf(usr)) + + if(usr.put_in_hands(holding)) + usr.visible_message("\The [usr] pulls a knife out of their boot!") + playsound(src, 'sound/weapons/holster/sheathout.ogg', 25) + holding = null + cut_overlay("[icon_state]_knife") + else + to_chat(usr, "Your need an empty, unbroken hand to do that.") + holding.forceMove(src) + + if(!holding) + verbs -= /obj/item/clothing/shoes/proc/draw_knife + + update_icon() + return + +/obj/item/clothing/shoes/attack_hand(var/mob/living/M) + if(can_hold_knife == 1 && holding && src.loc == M) + draw_knife() + return + ..() + +/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user) + if((can_hold_knife == 1) && (istype(I, /obj/item/weapon/material/shard) || \ + istype(I, /obj/item/weapon/material/butterfly) || \ + istype(I, /obj/item/weapon/material/kitchen/utensil) || \ + istype(I, /obj/item/weapon/material/knife/tacknife))) + if(holding) + to_chat(user, "\The [src] is already holding \a [holding].") + return + user.unEquip(I) + I.forceMove(src) + holding = I + user.visible_message("\The [user] shoves \the [I] into \the [src].") + verbs |= /obj/item/clothing/shoes/proc/draw_knife + update_icon() + else + return ..() + +/obj/item/clothing/shoes/verb/toggle_layer() + set name = "Switch Shoe Layer" + set category = "Object" + + if(shoes_under_pants == -1) + to_chat(usr, "\The [src] cannot be worn above your suit!") + return + shoes_under_pants = !shoes_under_pants + update_icon() + +/obj/item/clothing/shoes/update_icon() + . = ..() + if(holding) + add_overlay("[icon_state]_knife") + if(contaminated) + add_overlay(contamination_overlay) + if(gurgled) //VOREStation Edit Start + decontaminate() + gurgle_contaminate() //VOREStation Edit End + if(ismob(usr)) + var/mob/M = usr + M.update_inv_shoes() + +/obj/item/clothing/shoes/clean_blood() + update_icon() + return ..() + +/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running) + if(prob(1) && !recent_squish) //VOREStation edit begin + recent_squish = 1 + spawn(100) + recent_squish = 0 + for(var/mob/living/M in contents) + var/emote = pick(inside_emotes) + to_chat(M,emote) //VOREStation edit end + return + +/obj/item/clothing/shoes/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_shoes() + + +/////////////////////////////////////////////////////////////////////// +//Suit +/obj/item/clothing/suit + icon = 'icons/obj/clothing/suits.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_suits.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_suits.dmi', + ) + name = "suit" + var/fire_resist = T0C+100 + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + allowed = list(/obj/item/weapon/tank/emergency/oxygen) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + slot_flags = SLOT_OCLOTHING + var/blood_overlay_type = "suit" + blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. + + var/taurized = FALSE + siemens_coefficient = 0.9 + w_class = ITEMSIZE_NORMAL + preserve_item = 1 + equip_sound = 'sound/items/jumpsuit_equip.ogg' + + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi', + SPECIES_VOX = 'icons/mob/species/vox/suit.dmi' + ) + + valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND) + restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/set_clothing_index() + ..() + + if(index && !icon_override) + icon = new /icon("icons/obj/clothing/suits_[index].dmi") + item_icons = list( + slot_l_hand_str = new /icon("icons/mob/items/lefthand_suits_[index].dmi"), + slot_r_hand_str = new /icon("icons/mob/items/righthand_suits_[index].dmi"), + ) + + return 1 + + return 0 + +/obj/item/clothing/suit/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_suit() + + set_clothing_index() + +/obj/item/clothing/suit/equipped(var/mob/user, var/slot) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if((taurized && !istaurtail(H.tail_style)) || (!taurized && istaurtail(H.tail_style))) + taurize(user) + + return ..() + +/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur) + if(istaurtail(Taur.tail_style)) + var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style + if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites))) + icon_override = taurtail.suit_sprites + taurized = TRUE + + if(!taurized) + icon_override = initial(icon_override) + taurized = FALSE + +// Taur suits need to be shifted so its centered on their taur half. +/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask) + var/image/standing = ..() + if(taurized) //Special snowflake var on suits + standing.pixel_x = -16 + standing.layer = BODY_LAYER + 15 // 15 is above tail layer, so will not be covered by taurbody. + return standing + +/obj/item/clothing/suit/apply_accessories(var/image/standing) + if(LAZYLEN(accessories) && taurized) + for(var/obj/item/clothing/accessory/A in accessories) + var/image/I = new(A.get_mob_overlay()) + I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body. + standing.add_overlay(I) + else + return ..() + + +/////////////////////////////////////////////////////////////////////// +//Under clothing +/obj/item/clothing/under + icon = 'icons/obj/clothing/uniforms.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi', + ) + name = "under" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + permeability_coefficient = 0.90 + slot_flags = SLOT_ICLOTHING + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + equip_sound = 'sound/items/jumpsuit_equip.ogg' + w_class = ITEMSIZE_NORMAL + show_messages = 1 + blood_sprite_state = "uniformblood" + + var/has_sensor = 1 //For the crew computer 2 = unable to change mode + var/sensor_mode = 0 + /* + 1 = Report living/dead + 2 = Report detailed damages + 3 = Report location + */ + var/displays_id = 1 + var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/uniform.dmi', + SPECIES_VOX = 'icons/mob/species/vox/uniform.dmi' + ) + + //convenience var for defining the icon state for the overlay used when the clothing is worn. + //Also used by rolling/unrolling. + var/worn_state = null + valid_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_DECOR\ + |ACCESSORY_SLOT_MEDAL\ + |ACCESSORY_SLOT_INSIGNIA\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + restricted_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + + var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi' + var/icon/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi' + +/obj/item/clothing/under/attack_hand(var/mob/user) + if(LAZYLEN(accessories)) + ..() + if ((ishuman(usr) || issmall(usr)) && src.loc == user) + return + ..() + +/obj/item/clothing/under/New() + ..() + if(worn_state) + if(!item_state_slots) + item_state_slots = list() + item_state_slots[slot_w_uniform_str] = worn_state + else + worn_state = icon_state + + //autodetect rollability + if(rolled_down < 0) + if(("[worn_state]_d_s" in cached_icon_states(icon)) || ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in cached_icon_states(icon_override))) + rolled_down = 0 + + if(rolled_down == -1) + verbs -= /obj/item/clothing/under/verb/rollsuit + if(rolled_sleeves == -1) + verbs -= /obj/item/clothing/under/verb/rollsleeves + +/obj/item/clothing/under/set_clothing_index() + ..() + + if(index && !icon_override) + icon = new /icon("icons/obj/clothing/uniforms_[index].dmi") + + item_icons = list( + slot_l_hand_str = new /icon("icons/mob/items/lefthand_uniforms_[index].dmi"), + slot_r_hand_str = new /icon("icons/mob/items/righthand_uniforms_[index].dmi"), + ) + + rolled_down_icon = new /icon("icons/mob/uniform_rolled_down_[index].dmi") + rolled_down_sleeves_icon = new /icon("icons/mob/uniform_sleeves_rolled_[index].dmi") + return 1 + + return 0 + +/obj/item/clothing/under/proc/update_rolldown_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override) + under_icon = icon_override + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(item_icons && item_icons[slot_w_uniform_str]) + under_icon = item_icons[slot_w_uniform_str] + else if ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + under_icon = rolled_down_icon + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_d_s" in cached_icon_states(under_icon))) + if(rolled_down != 1) + rolled_down = 0 + else + rolled_down = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/proc/update_rollsleeves_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override) + under_icon = icon_override + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(item_icons && item_icons[slot_w_uniform_str]) + under_icon = item_icons[slot_w_uniform_str] + else if ("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + under_icon = rolled_down_sleeves_icon + else if(index) + under_icon = new /icon("[INV_W_UNIFORM_DEF_ICON]_[index].dmi") + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_sleeves_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_r_s" in cached_icon_states(under_icon))) + if(rolled_sleeves != 1) + rolled_sleeves = 0 + else + rolled_sleeves = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_w_uniform() + + set_clothing_index() + + +/obj/item/clothing/under/examine(mob/user) + . = ..() + switch(src.sensor_mode) + if(0) + . += "Its sensors appear to be disabled." + if(1) + . += "Its binary life sensors appear to be enabled." + if(2) + . += "Its vital tracker appears to be enabled." + if(3) + . += "Its vital tracker and tracking beacon appear to be enabled." + +/obj/item/clothing/under/proc/set_sensors(mob/usr as mob) + var/mob/M = usr + if (istype(M, /mob/observer)) return + if (usr.stat || usr.restrained()) return + if(has_sensor >= 2) + to_chat(usr, "The controls are locked.") + return 0 + if(has_sensor <= 0) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") + var/switchMode = tgui_input_list(usr, "Select a sensor mode:", "Suit Sensor Mode", modes) + if(get_dist(usr, src) > 1) + to_chat(usr, "You have moved too far away.") + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr.visible_message("[usr] adjusts their sensors.", "You disable your suit's remote sensing equipment.") + if(1) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report whether you are live or dead.") + if(2) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns.") + if(3) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns as well as your coordinate position.") + + else if (istype(src.loc, /mob)) + usr.visible_message("[usr] adjusts [src.loc]'s sensors.", "You adjust [src.loc]'s sensors.") + +/obj/item/clothing/under/verb/toggle() + set name = "Toggle Suit Sensors" + set category = "Object" + set src in usr + set_sensors(usr) + +/obj/item/clothing/under/verb/rollsuit() + set name = "Roll Down Jumpsuit" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rolldown_status() + if(rolled_down == -1) + to_chat(usr, "You cannot roll down [src]!") + return + if((rolled_sleeves == 1) && !(rolled_down)) + rolled_sleeves = 0 + + rolled_down = !rolled_down + if(rolled_down) + body_parts_covered = initial(body_parts_covered) + body_parts_covered &= ~(UPPER_TORSO|ARMS) + if("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + icon_override = rolled_down_icon + item_state_slots[slot_w_uniform_str] = "[worn_state]" + else + item_state_slots[slot_w_uniform_str] = "[worn_state]_d" + + to_chat(usr, "You roll down your [src].") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_icon) + icon_override = initial(icon_override) + item_state_slots[slot_w_uniform_str] = "[worn_state]" + to_chat(usr, "You roll up your [src].") + update_clothing_icon() + +/obj/item/clothing/under/verb/rollsleeves() + set name = "Roll Up Sleeves" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rollsleeves_status() + if(rolled_sleeves == -1) + to_chat(usr, "You cannot roll up your [src]'s sleeves!") + return + if(rolled_down == 1) + to_chat(usr, "You must roll up your [src] first!") + return + + rolled_sleeves = !rolled_sleeves + if(rolled_sleeves) + body_parts_covered &= ~(ARMS) + if("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + icon_override = rolled_down_sleeves_icon + item_state_slots[slot_w_uniform_str] = "[worn_state]" + else + item_state_slots[slot_w_uniform_str] = "[worn_state]_r" + to_chat(usr, "You roll up your [src]'s sleeves.") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_sleeves_icon) + icon_override = initial(icon_override) + item_state_slots[slot_w_uniform_str] = "[worn_state]" + to_chat(usr, "You roll down your [src]'s sleeves.") + update_clothing_icon() + +/obj/item/clothing/under/rank/New() + sensor_mode = pick(0,1,2,3) + ..() +>>>>>>> e4b8407fdb... Merge pull request #10908 from MarinaGryphon/spannening diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index c7a7682993..e2029c3c49 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -62,7 +62,7 @@ //TODO: Make inflating gloves a thing /*/obj/item/clothing/gloves/sterile/proc/Inflate(/mob/living/carbon/human/user) - user.visible_message("\The [src] expands!") + user.visible_message("\The [src] expands!") qdel(src)*/ /obj/item/clothing/gloves/sterile/latex diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index 97140e6f29..4ec669a565 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -152,7 +152,7 @@ return if(A.reagents && A.reagents.trans_to_obj(src, reagents.maximum_volume)) - user.visible_message("\The [user] soaks [src] using [A].", "You soak [src] using [A].") + user.visible_message("\The [user] soaks [src] using [A].", "You soak [src] using [A].") update_name() return diff --git a/code/modules/economy/vending.dm b/code/modules/economy/vending.dm index e4b4998171..4086dcd921 100644 --- a/code/modules/economy/vending.dm +++ b/code/modules/economy/vending.dm @@ -580,7 +580,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(prob(1)) sleep(3) if(R.get_product(get_turf(src))) - visible_message("\The [src] clunks as it vends an additional item.") + visible_message("\The [src] clunks as it vends an additional item.") playsound(src, "sound/[vending_sound]", 100, 1, 1) GLOB.items_sold_shift_roundstat++ diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 140f6a71fb..10af8e6372 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -241,7 +241,7 @@ user.visible_message("\The [user] crudely slices \the [src] with [W]!", "You crudely slice \the [src] with your [W]!") slices_lost = rand(1,min(1,round(slices_num/2))) else - user.visible_message("\The [user] slices \the [src]!", "You slice \the [src]!") + user.visible_message("\The [user] slices \the [src]!", "You slice \the [src]!") var/reagents_per_slice = reagents.total_volume/slices_num for(var/i=1 to (slices_num-slices_lost)) @@ -1839,7 +1839,7 @@ Unwrap(user) /obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Expand() - src.visible_message("\The [src] expands!") + src.visible_message("\The [src] expands!") var/mob/living/carbon/human/H = new(get_turf(src)) H.set_species(monkey_type) H.real_name = H.species.get_random_name() diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index 6b9f15ff5a..f8509d4392 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -476,7 +476,7 @@ . = ..() /obj/item/weapon/reagent_containers/food/snacks/cube/proc/Expand() - src.visible_message("\The [src] expands!") + src.visible_message("\The [src] expands!") new food_type(get_turf(src)) qdel(src) diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm index d87fbfc902..1b090068f6 100644 --- a/code/modules/food/kitchen/cooking_machines/_appliance.dm +++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm @@ -319,7 +319,7 @@ CI = new /datum/cooking_item/(CC) I.forceMove(src) cooking_objs.Add(CI) - user.visible_message("\The [user] puts \the [I] into \the [src].") + user.visible_message("\The [user] puts \the [I] into \the [src].") if (CC.check_contents() == 0)//If we're just putting an empty container in, then dont start any processing. return TRUE else @@ -333,7 +333,7 @@ CI.combine_target = selected_option // We can actually start cooking now. - user.visible_message("\The [user] puts \the [I] into \the [src].") + user.visible_message("\The [user] puts \the [I] into \the [src].") get_cooking_work(CI) cooking = TRUE @@ -433,7 +433,7 @@ /obj/machinery/appliance/proc/finish_cooking(var/datum/cooking_item/CI) - src.visible_message("\The [src] pings!") + src.visible_message("\The [src] pings!") if(cooked_sound) playsound(get_turf(src), cooked_sound, 50, 1) //Check recipes first, a valid recipe overrides other options diff --git a/code/modules/food/kitchen/cooking_machines/oven.dm b/code/modules/food/kitchen/cooking_machines/oven.dm index d58df7e6f6..bcebc851a0 100644 --- a/code/modules/food/kitchen/cooking_machines/oven.dm +++ b/code/modules/food/kitchen/cooking_machines/oven.dm @@ -148,7 +148,7 @@ /obj/machinery/appliance/cooker/oven/finish_cooking(var/datum/cooking_item/CI) if(CI.combine_target) CI.result_type = 3//Combination type. We're making something out of our ingredients - visible_message("\The [src] pings!") + visible_message("\The [src] pings!") combination_cook(CI) return else diff --git a/code/modules/food/kitchen/microwave.dm b/code/modules/food/kitchen/microwave.dm index a92e17c6da..9162286858 100644 --- a/code/modules/food/kitchen/microwave.dm +++ b/code/modules/food/kitchen/microwave.dm @@ -77,24 +77,24 @@ if(src.broken > 0) if(src.broken == 2 && O.is_screwdriver()) // If it's broken and they're using a screwdriver user.visible_message( \ - "\The [user] starts to fix part of the microwave.", \ + "\The [user] starts to fix part of the microwave.", \ "You start to fix part of the microwave." \ ) playsound(src, O.usesound, 50, 1) if (do_after(user,20 * O.toolspeed)) user.visible_message( \ - "\The [user] fixes part of the microwave.", \ + "\The [user] fixes part of the microwave.", \ "You have fixed part of the microwave." \ ) src.broken = 1 // Fix it a bit else if(src.broken == 1 && O.is_wrench()) // If it's broken and they're doing the wrench user.visible_message( \ - "\The [user] starts to fix part of the microwave.", \ + "\The [user] starts to fix part of the microwave.", \ "You start to fix part of the microwave." \ ) if (do_after(user,20 * O.toolspeed)) user.visible_message( \ - "\The [user] fixes the microwave.", \ + "\The [user] fixes the microwave.", \ "You have fixed the microwave." \ ) src.icon_state = "mw" @@ -108,7 +108,7 @@ else if(src.dirty==100) // The microwave is all dirty so can't be used! if(istype(O, /obj/item/weapon/reagent_containers/spray/cleaner) || istype(O, /obj/item/weapon/soap)) // If they're trying to clean it then let them user.visible_message( \ - "\The [user] starts to clean the microwave.", \ + "\The [user] starts to clean the microwave.", \ "You start to clean the microwave." \ ) if (do_after(user,20)) diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index e411cdb7db..ad8b592f27 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -111,7 +111,7 @@ cards -= P H.parentdeck = src H.update_icon() - user.visible_message("\The [user] draws a card.") + user.visible_message("\The [user] draws a card.") to_chat(user,"It's the [P].") /obj/item/weapon/deck/verb/deal_card() diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index 5de81594a9..594d6f2e45 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -83,7 +83,7 @@ var/list/ghost_traps to_chat(target, "Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.") to_chat(target, "Use say #b to speak to other artificial intelligences.") var/turf/T = get_turf(target) - T.visible_message("\The [src] chimes quietly.") + T.visible_message("\The [src] chimes quietly.") var/obj/item/device/mmi/digital/posibrain/P = target.loc if(!istype(P)) //wat return diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 35d7ee2fef..70fa60be35 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -513,5 +513,5 @@ derez() /mob/living/simple_mob/animal/space/carp/holodeck/proc/derez() - visible_message("\The [src] fades away!") + visible_message("\The [src] fades away!") qdel(src) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 8d51f087a2..2a080c38e9 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -571,7 +571,7 @@ if(!degree || get_trait(TRAIT_IMMUTABLE) > 0) return - source_turf.visible_message("\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) @@ -608,7 +608,7 @@ if(prob(degree*5)) set_trait(TRAIT_CARNIVOROUS, get_trait(TRAIT_CARNIVOROUS)+rand(-degree,degree),2, 0) if(get_trait(TRAIT_CARNIVOROUS)) - source_turf.visible_message("\The [display_name] shudders hungrily.") + source_turf.visible_message("\The [display_name] shudders hungrily.") if(6) set_trait(TRAIT_WEED_TOLERANCE, get_trait(TRAIT_WEED_TOLERANCE)+(rand(-2,2)*degree),10, 0) if(prob(degree*5)) @@ -629,7 +629,7 @@ set_trait(TRAIT_POTENCY, get_trait(TRAIT_POTENCY)+(rand(-20,20)*degree),200, 0) if(prob(degree*5)) set_trait(TRAIT_SPREAD, get_trait(TRAIT_SPREAD)+rand(-1,1),2, 0) - source_turf.visible_message("\The [display_name] spasms visibly, shifting in the tray.") + source_turf.visible_message("\The [display_name] spasms visibly, shifting in the tray.") if(prob(degree*3)) set_trait(TRAIT_SPORING, !get_trait(TRAIT_SPORING)) if(9) @@ -647,7 +647,7 @@ if(prob(degree*2)) set_trait(TRAIT_BIOLUM, !get_trait(TRAIT_BIOLUM)) if(get_trait(TRAIT_BIOLUM)) - source_turf.visible_message("\The [display_name] begins to glow!") + source_turf.visible_message("\The [display_name] begins to glow!") if(prob(degree*2)) set_trait(TRAIT_BIOLUM_COLOUR,"#[get_random_colour(0,75,190)]") source_turf.visible_message("\The [display_name]'s glow changes colour!") diff --git a/code/modules/hydroponics/seed_gene_mut.dm b/code/modules/hydroponics/seed_gene_mut.dm index 09147c72b9..35ced29739 100644 --- a/code/modules/hydroponics/seed_gene_mut.dm +++ b/code/modules/hydroponics/seed_gene_mut.dm @@ -4,7 +4,7 @@ return src var/datum/seed/S = diverge() //Let's not modify all of the seeds. - T.visible_message("\The [S.display_name] quivers!") //Mimicks the normal mutation. + T.visible_message("\The [S.display_name] quivers!") //Mimicks the normal mutation. G.mutate(S, T) return S @@ -94,7 +94,7 @@ if(prob(50)) S.set_trait(TRAIT_BIOLUM, !S.get_trait(TRAIT_BIOLUM)) if(S.get_trait(TRAIT_BIOLUM)) - T.visible_message("\The [S.display_name] begins to glow!") + T.visible_message("\The [S.display_name] begins to glow!") if(prob(50)) S.set_trait(TRAIT_BIOLUM_COLOUR,get_random_colour(0,75,190)) T.visible_message("\The [S.display_name]'s glow changes colour!") @@ -118,7 +118,7 @@ S.set_trait(TRAIT_MATURATION, S.get_trait(TRAIT_MATURATION)+rand(-1,1),30,0) if(prob(55)) S.set_trait(TRAIT_SPREAD, S.get_trait(TRAIT_SPREAD)+rand(-1,1),2,0) - T.visible_message("\The [S.display_name] spasms visibly, shifting in the tray.") + T.visible_message("\The [S.display_name] spasms visibly, shifting in the tray.") /decl/plantgene/fruit/mutate(var/datum/seed/S) if(prob(65)) diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm index b448357187..ab22ae15df 100644 --- a/code/modules/hydroponics/spreading/spreading_response.dm +++ b/code/modules/hydroponics/spreading/spreading_response.dm @@ -68,12 +68,12 @@ var/mob/living/L = A if(!(user in buckled_mobs)) L.visible_message(\ - "\The [user] frees \the [L] from \the [src].",\ - "\The [user] frees you from \the [src].",\ + "\The [user] frees \the [L] from \the [src].",\ + "\The [user] frees you from \the [src].",\ "You hear shredding and ripping.") else L.visible_message(\ - "\The [L] struggles free of \the [src].",\ + "\The [L] struggles free of \the [src].",\ "You untangle \the [src] from around yourself.",\ "You hear shredding and ripping.") unbuckle() diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index f671b51569..69e8b69e18 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -268,7 +268,7 @@ if(S.scan(target)) scanned = TRUE if(scanned) - visible_message("\The [user] waves \the [src] around [target].") + visible_message("\The [user] waves \the [src] around [target].") /obj/item/device/electronic_assembly/attackby(var/obj/item/I, var/mob/user) if(can_anchor && I.is_wrench()) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 46996249b8..f1f518d375 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -195,7 +195,7 @@ new /obj/item/weapon/book/tome(src.loc) var/datum/gender/T = gender_datums[user.get_visible_gender()] to_chat(user, "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a dusty old tome sitting on the desk. You don't really remember printing it.") - user.visible_message("\The [user] stares at the blank screen for a few moments, [T.his] expression frozen in fear. When [T.he] finally awakens from it, [T.he] looks a lot older.", 2) + user.visible_message("\The [user] stares at the blank screen for a few moments, [T.his] expression frozen in fear. When [T.he] finally awakens from it, [T.he] looks a lot older.", 2) src.arcanecheckout = 0 if(1) // Inventory diff --git a/code/modules/materials/sheets/metals/rods.dm b/code/modules/materials/sheets/metals/rods.dm index d1c4a1ee24..42aff5d096 100644 --- a/code/modules/materials/sheets/metals/rods.dm +++ b/code/modules/materials/sheets/metals/rods.dm @@ -67,7 +67,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \ var/obj/item/stack/medical/splint/ghetto/new_splint = new(get_turf(user)) new_splint.add_fingerprint(user) - user.visible_message("\The [user] constructs \a [new_splint] out of a [singular_name].", \ + user.visible_message("\The [user] constructs \a [new_splint] out of a [singular_name].", \ "You use make \a [new_splint] out of a [singular_name].") src.use(1) return diff --git a/code/modules/materials/sheets/organic/tanning/hide.dm b/code/modules/materials/sheets/organic/tanning/hide.dm index a8b229c9eb..e9617ba921 100644 --- a/code/modules/materials/sheets/organic/tanning/hide.dm +++ b/code/modules/materials/sheets/organic/tanning/hide.dm @@ -18,7 +18,7 @@ /obj/item/stack/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob) if(has_edge(W) || is_sharp(W)) //visible message on mobs is defined as visible_message(var/message, var/self_message, var/blind_message) - user.visible_message("\The [user] starts cutting hair off \the [src]", "You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh") + user.visible_message("\The [user] starts cutting hair off \the [src]", "You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh") var/scraped = 0 while(amount > 0 && do_after(user, 2.5 SECONDS)) // 2.5s per hide //Try locating an exisitng stack on the tile and add to there if possible diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index aa46981599..66a3088767 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -209,10 +209,10 @@ if(use_cell_power()) active = !active if(active) - visible_message("\The [src] lurches downwards, grinding noisily.") + visible_message("\The [src] lurches downwards, grinding noisily.") need_update_field = 1 else - visible_message("\The [src] shudders to a grinding halt.") + visible_message("\The [src] shudders to a grinding halt.") else to_chat(user, "The drill is unpowered.") else @@ -273,7 +273,7 @@ /obj/machinery/mining/drill/proc/system_error(var/error) if(error) - src.visible_message("\The [src] flashes a '[error]' warning.") + src.visible_message("\The [src] flashes a '[error]' warning.") faultreporter.autosay(error, src.name, "Supply") need_player_check = 1 active = 0 diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 6ae5dcd5b6..f90b3c0b7e 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -407,7 +407,7 @@ var/list/mining_overlay_cache = list() if (istype(W, /obj/item/device/measuring_tape)) var/obj/item/device/measuring_tape/P = W - user.visible_message("\The [user] extends \a [P] towards \the [src].","You extend \the [P] towards \the [src].") + user.visible_message("\The [user] extends \a [P] towards \the [src].","You extend \the [P] towards \the [src].") if(do_after(user, 15)) to_chat(user, "\The [src] has been excavated to a depth of [excavation_level]cm.") return @@ -417,7 +417,7 @@ var/list/mining_overlay_cache = list() if(C.mode) //Mode means scanning C.depth_scanner.scan_atom(user, src) else - user.visible_message("\The [user] extends \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!", "You extend \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!") + user.visible_message("\The [user] extends \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!", "You extend \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!") if(do_after(user, 15)) to_chat(user, "\The [src] has been excavated to a depth of [excavation_level]cm.") return diff --git a/code/modules/mob/living/bot/edCLNbot.dm b/code/modules/mob/living/bot/edCLNbot.dm index d0ebbc91ad..bbb1e9861d 100644 --- a/code/modules/mob/living/bot/edCLNbot.dm +++ b/code/modules/mob/living/bot/edCLNbot.dm @@ -37,7 +37,7 @@ if(!red_switch && blue_switch && !green_switch && prob(50) || src.emagged) if(istype(loc, /turf/simulated)) var/turf/simulated/T = loc - visible_message("\The [src] squirts a puddle of water on the floor!") + visible_message("\The [src] squirts a puddle of water on the floor!") T.wet_floor() if(!red_switch && !blue_switch && green_switch && prob(10) || src.emagged) diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm index 54fbc8403c..c433f64f85 100644 --- a/code/modules/mob/living/bot/floorbot.dm +++ b/code/modules/mob/living/bot/floorbot.dm @@ -228,7 +228,7 @@ return busy = 1 update_icons() - visible_message("\The [src] begins to repair the hole.") + visible_message("\The [src] begins to repair the hole.") if(do_after(src, 50)) if(A && (locate(/obj/structure/lattice, A) && building == 1 || !locate(/obj/structure/lattice, A) && building == 2)) // Make sure that it still needs repairs var/obj/item/I @@ -245,7 +245,7 @@ if(F.broken || F.burnt) busy = 1 update_icons() - visible_message("\The [src] begins to remove the broken floor.") + visible_message("\The [src] begins to remove the broken floor.") if(do_after(src, 50, F)) if(F.broken || F.burnt) F.make_plating() @@ -255,7 +255,7 @@ else if(!F.flooring && amount) busy = 1 update_icons() - visible_message("\The [src] begins to improve the floor.") + visible_message("\The [src] begins to improve the floor.") if(do_after(src, 50)) if(!F.flooring) F.set_flooring(get_flooring_data(floor_build_type)) @@ -265,7 +265,7 @@ update_icons() else if(istype(A, /obj/item/stack/tile/floor) && amount < maxAmount) var/obj/item/stack/tile/floor/T = A - visible_message("\The [src] begins to collect tiles.") + visible_message("\The [src] begins to collect tiles.") busy = 1 update_icons() if(do_after(src, 20)) @@ -279,7 +279,7 @@ else if(istype(A, /obj/item/stack/material) && amount + 4 <= maxAmount) var/obj/item/stack/material/M = A if(M.get_material_name() == DEFAULT_WALL_MATERIAL) - visible_message("\The [src] begins to make tiles.") + visible_message("\The [src] begins to make tiles.") busy = 1 update_icons() if(do_after(50)) diff --git a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm index 3adf6b34f0..450f47103f 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm @@ -18,6 +18,6 @@ return user.unEquip(W) wear_hat(W) - user.visible_message("\The [user] puts \the [W] on \the [src].") + user.visible_message("\The [user] puts \the [W] on \the [src].") return return ..() diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index b6c9a5e938..8f25d65430 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -58,7 +58,7 @@ to_chat(user, "\The [src] appears to reject this brain. It is incompatable.") return - user.visible_message("\The [user] sticks \a [O] into \the [src].") + user.visible_message("\The [user] sticks \a [O] into \the [src].") B.preserved = TRUE brainmob = B.brainmob diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3ceea87f7b..feab80627a 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -421,7 +421,7 @@ emp_act return if(!zone) - visible_message("\The [O] misses [src] narrowly!") + visible_message("\The [O] misses [src] narrowly!") return O.throwing = 0 //it hit, so stop moving diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm index 264de146e3..d616b7dc1e 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm @@ -164,7 +164,7 @@ var/list/wrapped_species_by_ref = list() return wrapped_species_by_ref["\ref[src]"] = new_species - visible_message("\The [src] shifts and contorts, taking the form of \a [new_species]!") + visible_message("\The [src] shifts and contorts, taking the form of \a [new_species]!") regenerate_icons() /mob/living/carbon/human/proc/shapeshifter_select_colour() diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index d4be111e4d..88a0607c83 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -170,7 +170,7 @@ var/datum/species/shapeshifter/promethean/prometheans if(FEMALE) t_him = "her" - H.visible_message("\The [H] glomps [target] to make [t_him] feel better!", \ + H.visible_message("\The [H] glomps [target] to make [t_him] feel better!", \ "You glomp [target] to make [t_him] feel better!") H.apply_stored_shock_to(target) diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm index 09d5e2dc10..3bc2e8cd5c 100644 --- a/code/modules/mob/living/carbon/human/species/station/teshari.dm +++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm @@ -213,7 +213,7 @@ // Handled! if(!silent) to_chat(H, SPAN_NOTICE("You catch the air in your wings and greatly slow your fall.")) - landing.visible_message(SPAN_NOTICE("\The [H] glides down from above, landing safely.")) + landing.visible_message("\The [H] glides down from above, landing safely.") H.Stun(1) playsound(H, "rustle", 25, 1) return TRUE diff --git a/code/modules/mob/living/carbon/lick_wounds.dm b/code/modules/mob/living/carbon/lick_wounds.dm index 4e0aa7cbe3..8c2be6c240 100644 --- a/code/modules/mob/living/carbon/lick_wounds.dm +++ b/code/modules/mob/living/carbon/lick_wounds.dm @@ -55,7 +55,7 @@ return else - visible_message("\The [src] starts licking the wounds on [M]'s [affecting.name] clean.", \ + visible_message("\The [src] starts licking the wounds on [M]'s [affecting.name] clean.", \ "You start licking the wounds on [M]'s [affecting.name] clean." ) for (var/datum/wound/W in affecting.wounds) diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index c3874e6f2e..af07971ed7 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -278,7 +278,7 @@ playsound(src, 'sound/weapons/Egloves.ogg', 50, 1, -1) R.cell.charge -= 666 else - user.visible_message("\the [user] affectionately licks all over \the [target]'s face!", "You affectionately lick all over \the [target]'s face!") + user.visible_message("\The [user] affectionately licks all over \the [target]'s face!", "You affectionately lick all over \the [target]'s face!") playsound(src, 'sound/effects/attackblob.ogg', 50, 1) water.use_charge(5) var/mob/living/carbon/human/H = target diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index afa61a5317..32cc4f32d4 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -173,7 +173,7 @@ var/list/mob_hat_cache = list() return user.unEquip(W) wear_hat(W) - user.visible_message("\The [user] puts \the [W] on \the [src].") + user.visible_message("\The [user] puts \the [W] on \the [src].") return else if(istype(W, /obj/item/borg/upgrade/)) to_chat(user, "\The [src] is not compatible with \the [W].") diff --git a/code/modules/mob/living/silicon/robot/subtypes/thinktank/_thinktank.dm b/code/modules/mob/living/silicon/robot/subtypes/thinktank/_thinktank.dm index f777fe7996..cc0b3785b6 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/thinktank/_thinktank.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/thinktank/_thinktank.dm @@ -165,4 +165,4 @@ if(!recharge_complete && recharging_atom.percent() >= 100) recharge_complete = TRUE - visible_message(SPAN_NOTICE("\The [src] beeps and flashes a green light above \his recharging port.")) + visible_message("\The [src] beeps and flashes a green light above \his recharging port.") diff --git a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm index f9a78b4f12..0c981cb4b2 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm @@ -6,7 +6,7 @@ if(istype(recharging_atom) && !QDELETED(recharging_atom) && recharging_atom.loc == src) recharging_atom.dropInto(loc) user.put_in_hands(recharging_atom) - user.visible_message(SPAN_NOTICE("\The [user] pops \the [recharging_atom] out of \the [src]'s recharging port.")) + user.visible_message("\The [user] pops \the [recharging_atom] out of \the [src]'s recharging port.") recharging = null return TRUE @@ -24,7 +24,7 @@ W.forceMove(src) recharging = weakref(W) recharge_complete = FALSE - user.visible_message(SPAN_NOTICE("\The [user] slots \the [W] into \the [src]'s recharging port.")) + user.visible_message("\The [user] slots \the [W] into \the [src]'s recharging port.") return TRUE if(istype(W, /obj/item/device/floor_painter)) diff --git a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_storage.dm b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_storage.dm index ec6d6f4267..6ffe75bfe3 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_storage.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_storage.dm @@ -82,9 +82,9 @@ if(istype(ejecting) && !QDELETED(ejecting) && ejecting.loc == src) ejecting.dropInto(loc) if(user == src) - visible_message(SPAN_NOTICE("\The [src] ejects \the [ejecting] from its cargo compartment.")) + visible_message("\The [src] ejects \the [ejecting] from its cargo compartment.") else - user.visible_message(SPAN_NOTICE("\The [user] pulls \the [ejecting] from \the [src]'s cargo compartment.")) + user.visible_message("\The [user] pulls \the [ejecting] from \the [src]'s cargo compartment.") /mob/living/silicon/robot/platform/attack_ai(mob/user) if(isrobot(user) && user.Adjacent(src)) @@ -99,7 +99,7 @@ if(!istype(removing) || QDELETED(removing) || removing.loc != src) LAZYREMOVE(stored_atoms, remove_ref) else - user.visible_message(SPAN_NOTICE("\The [user] begins unloading \the [removing] from \the [src]'s cargo compartment.")) + user.visible_message("\The [user] begins unloading \the [removing] from \the [src]'s cargo compartment.") if(do_after(user, 3 SECONDS, src) && !QDELETED(removing) && removing.loc == src) drop_stored_atom(removing, user) return TRUE @@ -124,9 +124,9 @@ if(!can_mouse_drop(dropping, user) || !can_store_atom(dropping, user)) return FALSE if(user == src) - visible_message(SPAN_NOTICE("\The [src] begins loading \the [dropping] into its cargo compartment.")) + visible_message("\The [src] begins loading \the [dropping] into its cargo compartment.") else - user.visible_message(SPAN_NOTICE("\The [user] begins loading \the [dropping] into \the [src]'s cargo compartment.")) + user.visible_message("\The [user] begins loading \the [dropping] into \the [src]'s cargo compartment.") if(do_after(user, 3 SECONDS, src) && can_mouse_drop(dropping, user) && can_store_atom(dropping, user)) store_atom(dropping, user) return FALSE diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm index b17274bd2f..b0d622cb20 100644 --- a/code/modules/mob/living/simple_mob/defense.dm +++ b/code/modules/mob/living/simple_mob/defense.dm @@ -64,7 +64,7 @@ MED.amount -= 1 if(MED.amount <= 0) qdel(MED) - visible_message("\The [user] applies the [MED] on [src].") + visible_message("\The [user] applies the [MED] on [src].") else var/datum/gender/T = gender_datums[src.get_visible_gender()] to_chat(user, "\The [src] is dead, medical items won't bring [T.him] back to life.") // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index 1f99fb43b7..59cfa2850a 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -167,9 +167,9 @@ vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while if(prob(successrate)) // pounce success! M.Weaken(5) - M.visible_message("\the [src] pounces on \the [M]!!") + M.visible_message("\The [src] pounces on \the [M]!!") else // pounce misses! - M.visible_message("\the [src] attempts to pounce \the [M] but misses!!") + M.visible_message("\The [src] attempts to pounce \the [M] but misses!!") playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1) if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too @@ -265,7 +265,7 @@ if(istype(tmob) && will_eat(tmob) && !istype(tmob, type) && prob(vore_bump_chance) && !ckey) //check if they decide to eat. Includes sanity check to prevent cannibalism. if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still tmob.Weaken(5) - tmob.visible_message("\the [src] [vore_bump_emote] \the [tmob]!!") + tmob.visible_message("\The [src] [vore_bump_emote] \the [tmob]!!") set_AI_busy(TRUE) spawn() animal_nom(tmob) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm index 5e1aab7290..b942f69d0f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm @@ -38,7 +38,7 @@ var/obj/item/weapon/storage/S = O var/obj/item/weapon/holder/H = new holder_type(get_turf(src),src) //this works weird, but it creates an empty holder, to see if that holder can fit if(S.can_be_inserted(H) && (src.size_multiplier <= 0.75)) - visible_message("\the [src] squeezes into \the [S].") + visible_message("\The [src] squeezes into \the [S].") H.forceMove(S) return 1 else diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm index 722ac3ffcd..3c8cd73f09 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm @@ -185,7 +185,7 @@ var/list/_cat_default_emotes = list( /mob/living/simple_mob/animal/passive/cat/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen)) if(named) - to_chat(user, "\the [name] already has a name!") + to_chat(user, "\The [name] already has a name!") else var/tmp_name = sanitizeSafe(input(user, "Give \the [name] a name", "Name"), MAX_NAME_LEN) if(length(tmp_name) > 50) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm index 0ac8d54c2b..7bb9db0b06 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm @@ -116,5 +116,5 @@ if(prob(10)) for(var/mob/living/L in hearers(holder)) if(!istype(L, holder)) // Don't follow other hooligan crabs. - holder.visible_message("\The [holder] starts to follow \the [L].") + holder.visible_message("\The [holder] starts to follow \the [L].") set_follow(L, rand(20 SECONDS, 40 SECONDS)) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm index 23792b907b..a11c85ade8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm @@ -181,7 +181,7 @@ if(holder.get_active_hand() && istype(holder.get_active_hand(), /obj/item/clothing/head) && !S.hat) var/obj/item/I = holder.get_active_hand() S.take_hat(S) - holder.visible_message("\The [holder] wears \the [I]") + holder.visible_message("\The [holder] wears \the [I]") /mob/living/simple_mob/animal/sif/sakimm/intelligent desc = "What appears to be an oversized rodent with hands. This one has a curious look in its eyes." @@ -327,7 +327,7 @@ if(istype(holder) && istype(holder.get_active_hand(), /obj/item/clothing/head) && !S.hat) var/obj/item/I = holder.get_active_hand() S.take_hat(S) - holder.visible_message("\The [holder] wears \the [I]") + holder.visible_message("\The [holder] wears \the [I]") carrying_item = TRUE if(istype(holder) && S.hat) // Do we have a hat? Hats are loot. diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm index 7ca24f3174..dbf9b48159 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm @@ -41,7 +41,7 @@ var/mob/living/L = A if(prob(scare_chance)) L.Stun(1) - L.visible_message("\the [src] scares \the [L]!") + L.visible_message("\The [src] scares \the [L]!") // Spookiest of bats /mob/living/simple_mob/animal/space/bats/cult diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm index 2e014482f2..ece32ca7a4 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm @@ -116,7 +116,7 @@ my_storage.rangedload(T, src) if(my_storage.contents.len >= my_storage.max_storage_space) - visible_message("\The [src] emits a shrill beep, indicating its storage is full.") + visible_message("\The [src] emits a shrill beep, indicating its storage is full.") var/obj/structure/ore_box/OB = locate() in view(2, src) diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm index 0a0f36d516..33d2494884 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm @@ -126,7 +126,7 @@ var/repair_upper_bound = A.melee_damage_upper * -1 adjustBruteLoss(rand(repair_lower_bound, repair_upper_bound)) adjustFireLoss(rand(repair_lower_bound, repair_upper_bound)) - user.visible_message("\The [user] mends some of \the [src]'s wounds.") + user.visible_message("\The [user] mends some of \the [src]'s wounds.") else to_chat(user, "\The [src] is undamaged.") return diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm index 1c4ac8876c..d65c9527b2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm @@ -48,7 +48,7 @@ var/mob/living/L = A if(prob(12)) L.Weaken(3) - L.visible_message("\the [src] knocks down \the [L]!") + L.visible_message("\The [src] knocks down \the [L]!") // Strong Variant /mob/living/simple_mob/faithless/strong diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 22481cf405..287b6652bd 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -162,7 +162,7 @@ hunger += 5 else food.Weaken(5) - food.visible_message("\the [src] pounces on \the [food]!!") + food.visible_message("\The [src] pounces on \the [food]!!") target_mob = food EatTarget() hunger = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm index de7d23bce1..75e1c81a6c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm @@ -77,7 +77,7 @@ var/global/list/moth_amount = 0 // Chompstation Addition, Rykka waz here. *pawst if(attached) set_AI_busy(TRUE) if(prob(2)) - src.visible_message("\The [src] begins to sink power from the net.") + src.visible_message("\The [src] begins to sink power from the net.") if(prob(5)) var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(5, 0, get_turf(src)) diff --git a/code/modules/modular_computers/file_system/programs/generic/game.dm b/code/modules/modular_computers/file_system/programs/generic/game.dm index cde240be73..31eaac08d2 100644 --- a/code/modules/modular_computers/file_system/programs/generic/game.dm +++ b/code/modules/modular_computers/file_system/programs/generic/game.dm @@ -166,7 +166,7 @@ to_chat(usr, "Hardware error: Printer is out of paper.") return else - computer.visible_message("\The [computer] prints out paper.") + computer.visible_message("\The [computer] prints out paper.") if(ticket_count >= 1) new /obj/item/stack/arcadeticket((get_turf(computer)), 1) to_chat(usr, "[src] dispenses a ticket!") diff --git a/code/modules/multiz/ladders.dm b/code/modules/multiz/ladders.dm index 8c726a8ed3..6b03f8f610 100644 --- a/code/modules/multiz/ladders.dm +++ b/code/modules/multiz/ladders.dm @@ -94,7 +94,7 @@ /obj/structure/ladder/proc/climbLadder(var/mob/M, var/obj/target_ladder) var/direction = (target_ladder == target_up ? "up" : "down") - M.visible_message("\The [M] begins climbing [direction] \the [src]!", + M.visible_message("\The [M] begins climbing [direction] \the [src]!", "You begin climbing [direction] \the [src]!", "You hear the grunting and clanging of a metal ladder being used.") diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index db5f1fc2e4..01b5a7f1ef 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -462,9 +462,9 @@ if(damage_desc) if(user == src.owner) var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message("\The [user] patches [damage_desc] on [T.his] [src.name] with [tool].") + user.visible_message("\The [user] patches [damage_desc] on [T.his] [src.name] with [tool].") else - user.visible_message("\The [user] patches [damage_desc] on [owner]'s [src.name] with [tool].") + user.visible_message("\The [user] patches [damage_desc] on [owner]'s [src.name] with [tool].") return 1 diff --git a/code/modules/organs/subtypes/slime.dm b/code/modules/organs/subtypes/slime.dm index eef360a515..fa60367e93 100644 --- a/code/modules/organs/subtypes/slime.dm +++ b/code/modules/organs/subtypes/slime.dm @@ -71,7 +71,7 @@ /obj/item/organ/internal/heart/grey/colormatch/slime/process() ..() if(!(QDELETED(src)) && src.loc != owner) - visible_message("\The [src] splatters!") + visible_message("\The [src] splatters!") var/turf/T = get_turf(src) var/obj/effect/decal/cleanable/blood/B = new (T) @@ -120,7 +120,7 @@ ..() if(!(QDELETED(src)) && src.loc != owner) - visible_message("\The [src] splatters!") + visible_message("\The [src] splatters!") var/turf/T = get_turf(src) var/obj/effect/decal/cleanable/blood/B = new (T) diff --git a/code/modules/overmap/disperser/disperser.dm b/code/modules/overmap/disperser/disperser.dm index b51c0fb709..c7a5efd130 100644 --- a/code/modules/overmap/disperser/disperser.dm +++ b/code/modules/overmap/disperser/disperser.dm @@ -24,7 +24,7 @@ /obj/machinery/disperser/attackby(obj/item/I, mob/user) if(I && I.is_wrench()) if(panel_open) - user.visible_message("\The [user] rotates \the [src] with \the [I].", + user.visible_message("\The [user] rotates \the [src] with \the [I].", "You rotate \the [src] with \the [I].") set_dir(turn(dir, 90)) playsound(src, 'sound/items/jaws_pry.ogg', 50, 1) diff --git a/code/modules/paperwork/paper_sticky.dm b/code/modules/paperwork/paper_sticky.dm index 4332be7762..04f4249cfb 100644 --- a/code/modules/paperwork/paper_sticky.dm +++ b/code/modules/paperwork/paper_sticky.dm @@ -37,7 +37,7 @@ var/text = sanitizeSafe(input(usr, "What would you like to write?") as text, writing_space) if(!text || thing.loc != user || (!Adjacent(user) && loc != user) || user.incapacitated()) return - user.visible_message(SPAN_NOTICE("\The [user] jots a note down on \the [src].")) + user.visible_message("\The [user] jots a note down on \the [src].") written_by = user.ckey if(written_text) written_text = "[written_text] [text]" diff --git a/code/modules/persistence/graffiti.dm b/code/modules/persistence/graffiti.dm index 2259186c71..999a82ea90 100644 --- a/code/modules/persistence/graffiti.dm +++ b/code/modules/persistence/graffiti.dm @@ -47,7 +47,7 @@ var/obj/item/weapon/weldingtool/welder = thing if(welder.isOn() && welder.remove_fuel(0,user) && do_after(user, 5, src) && !QDELETED(src)) playsound(src.loc, welder.usesound, 50, 1) - user.visible_message("\The [user] clears away some graffiti.") + user.visible_message("\The [user] clears away some graffiti.") qdel(src) else if(thing.sharp) diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm index af1f24449e..aba9087b75 100644 --- a/code/modules/power/fusion/core/_core.dm +++ b/code/modules/power/fusion/core/_core.dm @@ -67,7 +67,7 @@ GLOBAL_LIST_EMPTY(fusion_cores) if(Output.get_pairing()) reagents.trans_to_holder(Output.reagents, Output.reagents.maximum_volume) if(prob(5)) - visible_message("\The [src] gurgles as it exports fluid.") + visible_message("\The [src] gurgles as it exports fluid.") if(owned_field) @@ -131,7 +131,7 @@ GLOBAL_LIST_EMPTY(fusion_cores) /obj/machinery/power/fusion_core/attack_hand(var/mob/user) if(!Adjacent(user)) // As funny as it was for the AI to hug-kill the tokamak field from a distance... return - visible_message("\The [user] hugs \the [src] to make it feel better!") + visible_message("\The [user] hugs \the [src] to make it feel better!") if(owned_field) Shutdown() diff --git a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm index f7e6018448..cde88d74b8 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm @@ -27,14 +27,14 @@ to_chat(user, "You need at least three hundred units of material to form a fuel rod.") return 1 var/datum/reagent/R = thing.reagents.reagent_list[1] - visible_message("\The [src] compresses the contents of \the [thing] into a new fuel assembly.") + visible_message("\The [src] compresses the contents of \the [thing] into a new fuel assembly.") var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), R.id, R.color) thing.reagents.remove_reagent(R.id, R.volume) user.put_in_hands(F) else if(istype(thing, /obj/machinery/power/supermatter)) var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), "supermatter") - visible_message("\The [src] compresses \the [thing] into a new fuel assembly.") + visible_message("\The [src] compresses \the [thing] into a new fuel assembly.") qdel(thing) user.put_in_hands(F) return 1 @@ -52,6 +52,7 @@ if(istype(thing, /obj/item/stack/material)) var/obj/item/stack/material/M = thing var/datum/material/mat = M.get_material() +<<<<<<< HEAD if(!blitzprogress) if(!mat.is_fusion_fuel) to_chat(user, "It would be pointless to make a fuel rod out of [mat.use_name].") @@ -83,6 +84,29 @@ else to_chat(user, "A blitz rod is currently in progress! Either add 25 phoron sheets to complete it, or eject the supermatter sheet!") return +||||||| parent of e4b8407fdb... Merge pull request #10908 from MarinaGryphon/spannening + if(!mat.is_fusion_fuel) + to_chat(user, "It would be pointless to make a fuel rod out of [mat.use_name].") + return + if(M.get_amount() < FUSION_ROD_SHEET_AMT) + to_chat(user, "You need at least 25 [mat.sheet_plural_name] to make a fuel rod.") + return + var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), mat.name) + visible_message("\The [src] compresses the [mat.use_name] into a new fuel assembly.") + M.use(FUSION_ROD_SHEET_AMT) + user.put_in_hands(F) +======= + if(!mat.is_fusion_fuel) + to_chat(user, "It would be pointless to make a fuel rod out of [mat.use_name].") + return + if(M.get_amount() < FUSION_ROD_SHEET_AMT) + to_chat(user, "You need at least 25 [mat.sheet_plural_name] to make a fuel rod.") + return + var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), mat.name) + visible_message("\The [src] compresses the [mat.use_name] into a new fuel assembly.") + M.use(FUSION_ROD_SHEET_AMT) + user.put_in_hands(F) +>>>>>>> e4b8407fdb... Merge pull request #10908 from MarinaGryphon/spannening else if(do_special_fuel_compression(thing, user)) return diff --git a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm index 19179107c9..5e0122ce04 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm @@ -61,9 +61,9 @@ GLOBAL_LIST_EMPTY(fuel_injectors) //CHOMPEdit End if(cur_assembly) cur_assembly.forceMove(get_turf(src)) - visible_message("\The [user] swaps \the [src]'s [cur_assembly] for \a [W].") + visible_message("\The [user] swaps \the [src]'s [cur_assembly] for \a [W].") else - visible_message("\The [user] inserts \a [W] into \the [src].") + visible_message("\The [user] inserts \a [W] into \the [src].") user.drop_from_inventory(W) W.forceMove(src) @@ -104,7 +104,7 @@ GLOBAL_LIST_EMPTY(fuel_injectors) if(cur_assembly) cur_assembly.forceMove(get_turf(src)) user.put_in_hands(cur_assembly) - visible_message("\The [user] removes \the [cur_assembly] from \the [src].") + visible_message("\The [user] removes \the [cur_assembly] from \the [src].") cur_assembly = null return else diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 213b37d01a..5c9031a831 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -32,7 +32,7 @@ if(W.is_screwdriver()) panel_open = !panel_open playsound(src, W.usesound, 50, 1) - visible_message("\The [user] adjusts \the [src]'s mechanisms.") + visible_message("\The [user] adjusts \the [src]'s mechanisms.") if(panel_open && do_after(user, 30)) to_chat(user, "\The [src] looks like it could be modified.") if(panel_open && do_after(user, 80 * W.toolspeed)) // We don't have skills, so a delayed hint for engineers will have to do for now. (Panel open check for sanity) @@ -41,10 +41,10 @@ else to_chat(user, "\The [src]'s mechanisms look secure.") if(istype(W, /obj/item/weapon/smes_coil/super_io) && panel_open) - visible_message("\The [user] begins to modify \the [src] with \the [W].") + visible_message("\The [user] begins to modify \the [src] with \the [W].") if(do_after(user, 300)) user.drop_from_inventory(W) - visible_message("\The [user] installs \the [W] onto \the [src].") + visible_message("\The [user] installs \the [W] onto \the [src].") qdel(W) var/turf/T = get_turf(src) var/new_machine = /obj/machinery/particle_smasher diff --git a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm index adff836cee..44e5c5d4fc 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm @@ -174,7 +174,7 @@ recipes = typesof(/datum/particle_smasher_recipe) if(!target) // You are just blasting an empty machine. - visible_message("\The [src] shudders.") + visible_message("\The [src] shudders.") update_icon() return diff --git a/code/modules/projectiles/guns/magnetic/bore.dm b/code/modules/projectiles/guns/magnetic/bore.dm index eea444fbf6..3d52f5737e 100644 --- a/code/modules/projectiles/guns/magnetic/bore.dm +++ b/code/modules/projectiles/guns/magnetic/bore.dm @@ -63,7 +63,7 @@ if(removing) user.put_in_hands(removing) - user.visible_message("\The [user] removes \the [removing] from \the [src].") + user.visible_message("\The [user] removes \the [removing] from \the [src].") playsound(src, 'sound/machines/click.ogg', 10, 1) update_icon() return @@ -91,7 +91,7 @@ to_chat(user, "\The [src] has no manipulator installed.") return user.put_in_hands(manipulator) - user.visible_message("\The [user] levers \the [manipulator] from \the [src].") + user.visible_message("\The [user] levers \the [manipulator] from \the [src].") playsound(src, thing.usesound, 50, 1) mat_cost = initial(mat_cost) manipulator = null @@ -107,7 +107,7 @@ user.drop_from_inventory(manipulator, src) playsound(src, 'sound/machines/click.ogg', 10,1) mat_cost = initial(mat_cost) / (2*manipulator.rating) - user.visible_message("\The [user] slots \the [manipulator] into \the [src].") + user.visible_message("\The [user] slots \the [manipulator] into \the [src].") update_icon() update_rating_mod() return @@ -143,7 +143,7 @@ mat_storage += (SHEET_MATERIAL_AMOUNT/2*0.8) //two plasma ores needed per sheet, some inefficiency for not using refined product success = TRUE if(success) - user.visible_message("\The [user] loads \the [src] with \the [M].") + user.visible_message("\The [user] loads \the [src] with \the [M].") playsound(src, 'sound/weapons/flipblade.ogg', 50, 1) update_icon() return diff --git a/code/modules/projectiles/guns/magnetic/magnetic.dm b/code/modules/projectiles/guns/magnetic/magnetic.dm index 4428d6b0dc..05564efacd 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic.dm @@ -151,7 +151,7 @@ cell = thing user.drop_from_inventory(cell, src) playsound(src, 'sound/machines/click.ogg', 10, 1) - user.visible_message("\The [user] slots \the [cell] into \the [src].") + user.visible_message("\The [user] slots \the [cell] into \the [src].") update_icon() return @@ -160,7 +160,7 @@ to_chat(user, "\The [src] has no capacitor installed.") return user.put_in_hands(capacitor) - user.visible_message("\The [user] unscrews \the [capacitor] from \the [src].") + user.visible_message("\The [user] unscrews \the [capacitor] from \the [src].") playsound(src, thing.usesound, 50, 1) capacitor = null update_icon() @@ -174,7 +174,7 @@ user.drop_from_inventory(capacitor, src) playsound(src, 'sound/machines/click.ogg', 10, 1) power_per_tick = (power_cost*0.15) * capacitor.rating - user.visible_message("\The [user] slots \the [capacitor] into \the [src].") + user.visible_message("\The [user] slots \the [capacitor] into \the [src].") update_icon() return @@ -195,7 +195,7 @@ loaded = new load_type(src, 1) ammo.use(1) - user.visible_message("\The [user] loads \the [src] with \the [loaded].") + user.visible_message("\The [user] loads \the [src] with \the [loaded].") playsound(src, 'sound/weapons/flipblade.ogg', 50, 1) update_icon() return @@ -215,7 +215,7 @@ if(removing) removing.forceMove(get_turf(src)) user.put_in_hands(removing) - user.visible_message("\The [user] removes \the [removing] from \the [src].") + user.visible_message("\The [user] removes \the [removing] from \the [src].") playsound(src, 'sound/machines/click.ogg', 10, 1) update_icon() return diff --git a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm index 8476e28bee..5014b52718 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm @@ -17,19 +17,19 @@ to_chat(user, "You need at least 5 [reinforcing.singular_name]\s for this task.") return reinforcing.use(5) - user.visible_message("\The [user] shapes some steel sheets around \the [src] to form a body.") + user.visible_message("\The [user] shapes some steel sheets around \the [src] to form a body.") increment_construction_stage() return if(istype(thing, /obj/item/weapon/tape_roll) && construction_stage == 2) - user.visible_message("\The [user] secures \the [src] together with \the [thing].") + user.visible_message("\The [user] secures \the [src] together with \the [thing].") increment_construction_stage() return if(istype(thing, /obj/item/pipe) && construction_stage == 3) user.drop_from_inventory(thing) qdel(thing) - user.visible_message("\The [user] jams \the [thing] into \the [src].") + user.visible_message("\The [user] jams \the [thing] into \the [src].") increment_construction_stage() return @@ -44,7 +44,7 @@ to_chat(user, "You need more fuel!") return - user.visible_message("\The [user] welds the barrel of \the [src] into place.") + user.visible_message("\The [user] welds the barrel of \the [src] into place.") playsound(src, 'sound/items/Welder2.ogg', 100, 1) increment_construction_stage() return @@ -55,19 +55,19 @@ to_chat(user, "You need at least 5 lengths of cable for this task.") return cable.use(5) - user.visible_message("\The [user] wires \the [src].") + user.visible_message("\The [user] wires \the [src].") increment_construction_stage() return if(istype(thing, /obj/item/weapon/smes_coil) && construction_stage >= 6 && construction_stage <= 8) - user.visible_message("\The [user] installs \a [thing] into \the [src].") + user.visible_message("\The [user] installs \a [thing] into \the [src].") user.drop_from_inventory(thing) qdel(thing) increment_construction_stage() return if(thing.is_screwdriver() && construction_stage >= 9) - user.visible_message("\The [user] secures \the [src] and finishes it off.") + user.visible_message("\The [user] secures \the [src] and finishes it off.") playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) var/obj/item/weapon/gun/magnetic/coilgun = new(loc) var/put_in_hands diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 1f292e31e2..172c7d7383 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -674,7 +674,7 @@ if(result == PROJECTILE_FORCE_MISS) if(!silenced) - target_mob.visible_message("\The [src] misses \the [target_mob] narrowly!") + target_mob.visible_message("\The [src] misses \the [target_mob] narrowly!") playsound(target_mob, "bullet_miss", 75, 1) return FALSE diff --git a/code/modules/projectiles/targeting/targeting_overlay.dm b/code/modules/projectiles/targeting/targeting_overlay.dm index cea545ce25..67525bdc5b 100644 --- a/code/modules/projectiles/targeting/targeting_overlay.dm +++ b/code/modules/projectiles/targeting/targeting_overlay.dm @@ -217,7 +217,7 @@ if(istype(aiming_with, /obj/item/weapon/gun)) playsound(owner, 'sound/weapons/TargetOff.ogg', 50,1) if(!no_message) - owner.visible_message("\The [owner] lowers \the [aiming_with].") + owner.visible_message("\The [owner] lowers \the [aiming_with].") aiming_with = null aiming_at.aimed -= src diff --git a/code/modules/reagents/machinery/distillery.dm b/code/modules/reagents/machinery/distillery.dm index c9679ccec9..6e0ad4d7c0 100644 --- a/code/modules/reagents/machinery/distillery.dm +++ b/code/modules/reagents/machinery/distillery.dm @@ -146,7 +146,7 @@ to_chat(user, "You press \the [src]'s chamber agitator button.") if(on) - visible_message("\The [src] rattles to life.") + visible_message("\The [src] rattles to life.") reagents.handle_reactions() else spawn(1 SECOND) @@ -316,7 +316,7 @@ if(target_temp == round(current_temp, 1.0)) current_temp = target_temp // Hard set it so we don't need to worry about exact decimals any more, after we've been keeping track of it all this time playsound(src, 'sound/machines/ping.ogg', 50, 0) - src.visible_message("\The [src] pings as it reaches the target temperature.") + src.visible_message("\The [src] pings as it reaches the target temperature.") else if(connected_port && avg_pressure > 1000) current_temp = round((current_temp + avg_temp) / 2) diff --git a/code/modules/reagents/reagents/medicine.dm b/code/modules/reagents/reagents/medicine.dm index fc21e22589..b6990ac5a2 100644 --- a/code/modules/reagents/reagents/medicine.dm +++ b/code/modules/reagents/reagents/medicine.dm @@ -354,7 +354,7 @@ var/obj/item/stack/medical/M = C.upgrade_stack(to_produce) if(M && M.amount) - holder.my_atom.visible_message("\The [packname] bubbles.") + holder.my_atom.visible_message("\The [packname] bubbles.") remove_self(to_produce * 5) /datum/reagent/cryoxadone @@ -1289,7 +1289,7 @@ var/obj/item/stack/medical/M = C.upgrade_stack(to_produce) if(M && M.amount) - holder.my_atom.visible_message("\The [packname] bubbles.") + holder.my_atom.visible_message("\The [packname] bubbles.") remove_self(to_produce) /datum/reagent/sterilizine diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 610fb85e54..ae9a97c5d1 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -110,7 +110,7 @@ if(istype(I, /obj/item/weapon/material/ashtray)) var/obj/item/weapon/material/ashtray/A = I if(A.contents.len > 0) - user.visible_message("\The [user] empties \the [A.name] into [src].") + user.visible_message("\The [user] empties \the [A] into [src].") for(var/obj/item/O in A.contents) O.forceMove(src) A.update_icon() diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm index ad3fff29dd..d0e39c920d 100644 --- a/code/modules/resleeving/machines.dm +++ b/code/modules/resleeving/machines.dm @@ -389,7 +389,7 @@ var/obj/item/stack/material/S = W if(!(S.material.name in stored_material)) - to_chat(user, "\the [src] doesn't accept [S.material]!") + to_chat(user, "\The [src] doesn't accept [S.material]!") return var/amnt = S.perunit diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index 3643e00880..53790689a9 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -24,7 +24,7 @@ /obj/machinery/shield/proc/check_failure() if (src.health <= 0) - visible_message("\The [src] dissipates!") + visible_message("\The [src] dissipates!") qdel(src) return diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 47cba8bf46..8f6a2e5278 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -110,7 +110,7 @@ var/list/table_icon_cache = list() return 1 if(carpeted && W.is_crowbar()) - user.visible_message("\The [user] removes the carpet from \the [src].", + user.visible_message("\The [user] removes the carpet from \the [src].", "You remove the carpet from \the [src].") new carpeted_type(loc) carpeted = 0 @@ -120,7 +120,7 @@ var/list/table_icon_cache = list() if(!carpeted && material && istype(W, /obj/item/stack/tile/carpet)) var/obj/item/stack/tile/carpet/C = W if(C.use(1)) - user.visible_message("\The [user] adds \the [C] to \the [src].", + user.visible_message("\The [user] adds \the [C] to \the [src].", "You add \the [C] to \the [src].") carpeted = 1 carpeted_type = W.type @@ -151,7 +151,7 @@ var/list/table_icon_cache = list() playsound(src, F.usesound, 50, 1) if(!do_after(user, 20 * F.toolspeed) || !F.remove_fuel(1, user)) return - user.visible_message("\The [user] repairs some damage to \the [src].", + user.visible_message("\The [user] repairs some damage to \the [src].", "You repair some damage to \the [src].") health = max(health+(maxhealth/5), maxhealth) // 20% repair per application return 1 @@ -191,7 +191,7 @@ var/list/table_icon_cache = list() src.break_to_parts() user.do_attack_animation(src) return 1 - visible_message("\The [user] scratches at \the [src]!") + visible_message("\The [user] scratches at \the [src]!") return ..() /obj/structure/table/MouseDrop_T(obj/item/stack/material/what) @@ -260,14 +260,14 @@ var/list/table_icon_cache = list() if(manipulating) return M manipulating = 1 - user.visible_message("\The [user] begins removing the [type_holding] holding \the [src]'s [M.display_name] [what] in place.", + user.visible_message("\The [user] begins removing the [type_holding] holding \the [src]'s [M.display_name] [what] in place.", "You begin removing the [type_holding] holding \the [src]'s [M.display_name] [what] in place.") if(sound) playsound(src, sound, 50, 1) if(!do_after(user, delay)) manipulating = 0 return M - user.visible_message("\The [user] removes the [M.display_name] [what] from \the [src].", + user.visible_message("\The [user] removes the [M.display_name] [what] from \the [src].", "You remove the [M.display_name] [what] from \the [src].") new M.stack_type(src.loc) manipulating = 0 @@ -282,13 +282,13 @@ var/list/table_icon_cache = list() /obj/structure/table/proc/dismantle(obj/item/W, mob/user) if(manipulating) return manipulating = 1 - user.visible_message("\The [user] begins dismantling \the [src].", + user.visible_message("\The [user] begins dismantling \the [src].", "You begin dismantling \the [src].") playsound(src, W.usesound, 50, 1) if(!do_after(user, 20 * W.toolspeed)) manipulating = 0 return - user.visible_message("\The [user] dismantles \the [src].", + user.visible_message("\The [user] dismantles \the [src].", "You dismantle \the [src].") new /obj/item/stack/material/steel(src.loc) qdel(src) diff --git a/code/modules/tgui/modules/ntos-only/cardmod.dm b/code/modules/tgui/modules/ntos-only/cardmod.dm index f96772626e..fc77417996 100644 --- a/code/modules/tgui/modules/ntos-only/cardmod.dm +++ b/code/modules/tgui/modules/ntos-only/cardmod.dm @@ -152,7 +152,7 @@ to_chat(usr, "Hardware error: Printer was unable to print the file. It may be out of paper.") return else - computer.visible_message("\The [computer] prints out paper.") + computer.visible_message("\The [computer] prints out paper.") else var/contents = {"

Crew Manifest


@@ -162,7 +162,7 @@ to_chat(usr, "Hardware error: Printer was unable to print the file. It may be out of paper.") return else - computer.visible_message("\The [computer] prints out paper.") + computer.visible_message("\The [computer] prints out paper.") . = TRUE if("modify") if(computer && computer.card_slot) diff --git a/code/modules/turbolift/turbolift_console.dm b/code/modules/turbolift/turbolift_console.dm index dddfb4e60f..a638fbbad4 100644 --- a/code/modules/turbolift/turbolift_console.dm +++ b/code/modules/turbolift/turbolift_console.dm @@ -26,7 +26,7 @@ if(user.a_intent == I_HURT) user.visible_message("\The [user] hammers on the lift button!") else - user.visible_message("\The [user] presses the lift button.") + user.visible_message("\The [user] presses the lift button.") /obj/structure/lift/New(var/newloc, var/datum/turbolift/_lift) diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index f3d84fc2a8..02bbd2e3ab 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -2123,7 +2123,7 @@ Departamental Swimsuits, for general use user.visible_message("[user] harmlessly bops [target] with \the [src].", \ "\The [src] harmlessly bops [target]. The hat seems... unwilling?") else - user.visible_message("\The [src] flops over [user]'s' head for a moment, but they seem alright.", \ + user.visible_message("\The [src] flops over [user]'s' head for a moment, but they seem alright.", \ "\The [src] flops over your head for a moment, but you correct it without issue. There we go!") /obj/item/clothing/head/fluff/nikki/proc/hat_warp_checks(var/mob/living/target, mob/user, proximity_flag) diff --git a/code/modules/xenoarcheaology/artifacts/gigadrill.dm b/code/modules/xenoarcheaology/artifacts/gigadrill.dm index ad51cd690a..b30b1ed959 100644 --- a/code/modules/xenoarcheaology/artifacts/gigadrill.dm +++ b/code/modules/xenoarcheaology/artifacts/gigadrill.dm @@ -24,7 +24,7 @@ if(istype(A,/turf/simulated/mineral)) var/turf/simulated/mineral/M = A drilling_turf = get_turf(src) - src.visible_message("\The [src] begins to drill into \the [M].") + src.visible_message("\The [src] begins to drill into \the [M].") anchored = 1 spawn(drill_time) if(get_turf(src) == drilling_turf && active) diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm index 20358b6fec..a1f069e546 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator.dm @@ -178,4 +178,4 @@ user.drop_item() W.loc = src stored_materials.Add(W) - src.visible_message("\The [user] inserts \the [W] into \the [src].") + src.visible_message("\The [user] inserts \the [W] into \the [src].") diff --git a/code/modules/xenoarcheaology/boulder.dm b/code/modules/xenoarcheaology/boulder.dm index a04fce089f..b66ed8f0e6 100644 --- a/code/modules/xenoarcheaology/boulder.dm +++ b/code/modules/xenoarcheaology/boulder.dm @@ -35,14 +35,14 @@ C.depth_scanner.scan_atom(user, src) return else - user.visible_message("\The [user] extends \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!", "You extend \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!") + user.visible_message("\The [user] extends \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!", "You extend \the [C] over \the [src], a flurry of red beams scanning \the [src]'s surface!") if(do_after(user, 15)) to_chat(user, "\The [src] has been excavated to a depth of [2 * src.excavation_level]cm.") return if(istype(I, /obj/item/device/measuring_tape)) var/obj/item/device/measuring_tape/P = I - user.visible_message("\The [user] extends \the [P] towards \the [src].", "You extend \the [P] towards \the [src].") + user.visible_message("\The [user] extends \the [P] towards \the [src].", "You extend \the [P] towards \the [src].") if(do_after(user, 15)) to_chat(user, "\The [src] has been excavated to a depth of [2 * src.excavation_level]cm.") return diff --git a/code/modules/xenoarcheaology/tools/tools.dm b/code/modules/xenoarcheaology/tools/tools.dm index 7f7b51d32a..2023413f6c 100644 --- a/code/modules/xenoarcheaology/tools/tools.dm +++ b/code/modules/xenoarcheaology/tools/tools.dm @@ -111,7 +111,7 @@ var/material = "unknown" /obj/item/device/depth_scanner/proc/scan_atom(var/mob/user, var/atom/A) - user.visible_message("\The [user] scans \the [A], the air around them humming gently.") + user.visible_message("\The [user] scans \the [A], the air around them humming gently.") if(istype(A, /turf/simulated/mineral)) var/turf/simulated/mineral/M = A diff --git a/code/modules/xenobio/items/extracts.dm b/code/modules/xenobio/items/extracts.dm index f810b9f68b..dacebb203c 100644 --- a/code/modules/xenobio/items/extracts.dm +++ b/code/modules/xenobio/items/extracts.dm @@ -53,7 +53,7 @@ var/obj/item/slime_extract/T = holder.my_atom T.uses-- if(T.uses <= 0) - T.visible_message("[bicon(T)]\The [T] goes inert.") + T.visible_message("[bicon(T)]\The [T] goes inert.") T.name = "inert [initial(T.name)]" diff --git a/code/modules/xenobio/machinery/processor.dm b/code/modules/xenobio/machinery/processor.dm index 216c0cb77b..04b929d5c8 100644 --- a/code/modules/xenobio/machinery/processor.dm +++ b/code/modules/xenobio/machinery/processor.dm @@ -58,7 +58,7 @@ return to_be_processed.Add(AM) AM.forceMove(src) - visible_message("\the [user] places [AM] inside \the [src].") + visible_message("\The [user] places [AM] inside \the [src].") /obj/machinery/processor/proc/begin_processing() if(processing)