mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-28 02:52:01 +00:00
Merge branch 'sink_glowstick_sounds'
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
item_state = "glowstick"
|
||||
uv_intensity = 255
|
||||
light_wedge = LIGHT_OMNI
|
||||
activation_sound = null
|
||||
activation_sound = 'sound/items/glowstick.ogg'
|
||||
|
||||
/obj/item/device/flashlight/flare/glowstick/New()
|
||||
. = ..()
|
||||
@@ -40,7 +40,7 @@
|
||||
/obj/item/device/flashlight/flare/glowstick/attack_self(var/mob/living/user)
|
||||
|
||||
if(((user.is_clumsy())) && prob(50))
|
||||
to_chat(user, "<span class='notice'>You break \the [src] apart, spilling its contents everywhere!</span>")
|
||||
to_chat(user, span("notice", "You break \the [src] apart, spilling its contents everywhere!"))
|
||||
fuel = 0
|
||||
new /obj/effect/decal/cleanable/greenglow(get_turf(user))
|
||||
user.apply_effect((rand(15,30)),IRRADIATE,blocked = user.getarmor(null, "rad"))
|
||||
@@ -48,18 +48,18 @@
|
||||
return
|
||||
|
||||
if(!fuel)
|
||||
to_chat(user, "<span class='notice'>\The [src] has already been used.</span>")
|
||||
to_chat(user, span("notice", "\The [src] has already been used."))
|
||||
return
|
||||
if(on)
|
||||
to_chat(user, "<span class='notice'>\The [src] has already been turned on.</span>")
|
||||
to_chat(user, span("notice", "\The [src] has already been turned on."))
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
if(.)
|
||||
user.visible_message(
|
||||
"<span class='notice'>[user] cracks and shakes \the [src].</span>",
|
||||
"<span class='notice'>You crack and shake \the [src], turning it on!</span>"
|
||||
span("notice", "[user] cracks and shakes \the [src]."),
|
||||
span("notice", "You crack and shake \the [src], turning it on!")
|
||||
)
|
||||
update_icon()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
/obj/structure/toilet/attack_hand(mob/living/user as mob)
|
||||
if(swirlie)
|
||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
usr.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie.name]'s head!</span>", "<span class='notice'>You slam the toilet seat onto [swirlie.name]'s head!</span>", "You hear reverberating porcelain.")
|
||||
usr.visible_message(span("danger", "[user] slams the toilet seat onto [swirlie.name]'s head!"), span("notice", "You slam the toilet seat onto [swirlie.name]'s head!"), "You hear reverberating porcelain.")
|
||||
swirlie.adjustBruteLoss(8)
|
||||
return
|
||||
|
||||
if(cistern && !open)
|
||||
if(!contents.len)
|
||||
to_chat(user, "<span class='notice'>The cistern is empty.</span>")
|
||||
to_chat(user, span("notice", "The cistern is empty."))
|
||||
return
|
||||
else
|
||||
var/obj/item/I = pick(contents)
|
||||
@@ -34,7 +34,7 @@
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
I.forceMove(get_turf(src))
|
||||
to_chat(user, "<span class='notice'>You find \an [I] in the cistern.</span>")
|
||||
to_chat(user, span("notice", "You find \an [I] in the cistern."))
|
||||
w_items -= I.w_class
|
||||
return
|
||||
|
||||
@@ -46,10 +46,10 @@
|
||||
|
||||
/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob)
|
||||
if(I.iscrowbar())
|
||||
to_chat(user, "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].</span>")
|
||||
to_chat(user, span("notice", "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]."))
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
|
||||
if(do_after(user, 30/I.toolspeed))
|
||||
user.visible_message("<span class='notice'>[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!</span>", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "You hear grinding porcelain.")
|
||||
user.visible_message(span("notice", "[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!"), span("notice", "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!"), "You hear grinding porcelain.")
|
||||
cistern = !cistern
|
||||
update_icon()
|
||||
return
|
||||
@@ -63,29 +63,29 @@
|
||||
|
||||
if(G.state>1)
|
||||
if(!GM.loc == get_turf(src))
|
||||
to_chat(user, "<span class='notice'>[GM.name] needs to be on the toilet.</span>")
|
||||
to_chat(user, span("notice", "[GM.name] needs to be on the toilet."))
|
||||
return
|
||||
if(open && !swirlie)
|
||||
user.visible_message("<span class='danger'>[user] starts to give [GM.name] a swirlie!</span>", "<span class='notice'>You start to give [GM.name] a swirlie!</span>")
|
||||
user.visible_message(span("danger", "[user] starts to give [GM.name] a swirlie!"), span("notice", "You start to give [GM.name] a swirlie!"))
|
||||
swirlie = GM
|
||||
if(do_after(user, 30, 5, 0))
|
||||
user.visible_message("<span class='danger'>[user] gives [GM.name] a swirlie!</span>", "<span class='notice'>You give [GM.name] a swirlie!</span>", "You hear a toilet flushing.")
|
||||
user.visible_message(span("danger", "[user] gives [GM.name] a swirlie!"), span("notice", "You give [GM.name] a swirlie!"), "You hear a toilet flushing.")
|
||||
if(!GM.internal)
|
||||
GM.adjustOxyLoss(5)
|
||||
SSfeedback.IncrementSimpleStat("swirlies")
|
||||
swirlie = null
|
||||
else
|
||||
user.visible_message("<span class='danger'>[user] slams [GM.name] into the [src]!</span>", "<span class='notice'>You slam [GM.name] into the [src]!</span>")
|
||||
user.visible_message(span("danger", "[user] slams [GM.name] into the [src]!"), span("notice", "You slam [GM.name] into the [src]!"))
|
||||
GM.adjustBruteLoss(8)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You need a tighter grip.</span>")
|
||||
to_chat(user, span("notice", "You need a tighter grip."))
|
||||
|
||||
if(cistern && !istype(user,/mob/living/silicon/robot)) //STOP PUTTING YOUR MODULES IN THE TOILET.
|
||||
if(I.w_class > 3)
|
||||
to_chat(user, "<span class='notice'>\The [I] does not fit.</span>")
|
||||
to_chat(user, span("notice", "\The [I] does not fit."))
|
||||
return
|
||||
if(w_items + I.w_class > 5)
|
||||
to_chat(user, "<span class='notice'>The cistern is full.</span>")
|
||||
to_chat(user, span("notice", "The cistern is full."))
|
||||
return
|
||||
user.drop_from_inventory(I,src)
|
||||
w_items += I.w_class
|
||||
@@ -116,12 +116,12 @@
|
||||
var/mob/living/GM = G.affecting
|
||||
if(G.state>1)
|
||||
if(!GM.loc == get_turf(src))
|
||||
to_chat(user, "<span class='notice'>[GM.name] needs to be on the urinal.</span>")
|
||||
to_chat(user, span("notice", "[GM.name] needs to be on the urinal."))
|
||||
return
|
||||
user.visible_message("<span class='danger'>[user] slams [GM.name] into the [src]!</span>", "<span class='notice'>You slam [GM.name] into the [src]!</span>")
|
||||
user.visible_message(span("danger", "[user] slams [GM.name] into the [src]!"), span("notice", "You slam [GM.name] into the [src]!"))
|
||||
GM.adjustBruteLoss(8)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You need a tighter grip.</span>")
|
||||
to_chat(user, span("notice", "You need a tighter grip."))
|
||||
|
||||
|
||||
|
||||
@@ -174,14 +174,14 @@
|
||||
|
||||
/obj/machinery/shower/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(I.type == /obj/item/device/analyzer)
|
||||
to_chat(user, "<span class='notice'>The water temperature seems to be [watertemp].</span>")
|
||||
to_chat(user, span("notice", "The water temperature seems to be [watertemp]."))
|
||||
if(I.iswrench())
|
||||
var/newtemp = input(user, "What setting would you like to set the temperature valve to?", "Water Temperature Valve") in temperature_settings
|
||||
to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I].</span>")
|
||||
to_chat(user, span("notice", "You begin to adjust the temperature valve with \the [I]."))
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 50/I.toolspeed))
|
||||
watertemp = newtemp
|
||||
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I].</span>")
|
||||
user.visible_message(span("notice", "[user] adjusts the shower with \the [I]."), span("notice", "You adjust the shower with \the [I]."))
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
|
||||
@@ -330,9 +330,11 @@
|
||||
qdel(E)
|
||||
|
||||
/obj/machinery/shower/machinery_process()
|
||||
if(!on) return
|
||||
if(!on)
|
||||
return
|
||||
wash_floor()
|
||||
if(!mobpresent) return
|
||||
if(!mobpresent)
|
||||
return
|
||||
for(var/mob/living/L in loc)
|
||||
wash(L) // Why was it not here before?
|
||||
process_heat(L)
|
||||
@@ -348,7 +350,8 @@
|
||||
is_washing = 0
|
||||
|
||||
/obj/machinery/shower/proc/process_heat(mob/living/M)
|
||||
if(!on || !istype(M)) return
|
||||
if(!on || !istype(M))
|
||||
return
|
||||
|
||||
var/temperature = temperature_settings[watertemp]
|
||||
var/temp_adj = between(BODYTEMP_COOLING_MAX, temperature - M.bodytemperature, BODYTEMP_HEATING_MAX)
|
||||
@@ -357,9 +360,9 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(temperature >= H.species.heat_level_1)
|
||||
to_chat(H, "<span class='danger'>The water is searing hot!</span>")
|
||||
to_chat(H, span("danger", "The water is searing hot!"))
|
||||
else if(temperature <= H.species.cold_level_1)
|
||||
to_chat(H, "<span class='warning'>The water is freezing cold!</span>")
|
||||
to_chat(H, span("warning", "The water is freezing cold!"))
|
||||
|
||||
/obj/item/bikehorn/rubberducky
|
||||
name = "rubber ducky"
|
||||
@@ -393,7 +396,7 @@
|
||||
if (user.hand)
|
||||
temp = H.organs_by_name[BP_L_HAND]
|
||||
if(temp && !temp.is_usable())
|
||||
to_chat(user, "<span class='notice'>You try to move your [temp.name], but cannot!</span>")
|
||||
to_chat(user, span("notice", "You try to move your [temp.name], but cannot!"))
|
||||
return
|
||||
|
||||
if(isrobot(user) || isAI(user))
|
||||
@@ -403,28 +406,29 @@
|
||||
return
|
||||
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here.</span>")
|
||||
to_chat(user, span("warning", "Someone's already washing here."))
|
||||
return
|
||||
|
||||
to_chat(usr, "<span class='notice'>You start washing your hands.</span>")
|
||||
playsound(src.loc, 'sound/effects/sink_fill.ogg', 25, 1)
|
||||
to_chat(usr, span("notice", "You start washing your hands."))
|
||||
playsound(loc, 'sound/effects/sink_long.ogg', 75, 1)
|
||||
|
||||
busy = 1
|
||||
sleep(40)
|
||||
if(!do_after(user, 40, src))
|
||||
busy = 0
|
||||
return TRUE
|
||||
busy = 0
|
||||
|
||||
if(!Adjacent(user)) return //Person has moved away from the sink
|
||||
if(!Adjacent(user))
|
||||
return //Person has moved away from the sink
|
||||
|
||||
user.clean_blood()
|
||||
if(ishuman(user))
|
||||
user:update_inv_gloves()
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message("<span class='notice'>[user] washes their hands using \the [src].</span>")
|
||||
playsound(src.loc, 'sound/effects/sink_empty.ogg', 25, 1)
|
||||
user.visible_message( \
|
||||
span("notice", "[user] washes their hands using \the [src]."), \
|
||||
span("notice", "You wash your hands using \the [src]."))
|
||||
|
||||
/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob)
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here.</span>")
|
||||
to_chat(user, span("warning", "Someone's already washing here."))
|
||||
return
|
||||
|
||||
// Filling/emptying open reagent containers
|
||||
@@ -435,28 +439,28 @@
|
||||
if(!usr.Adjacent(src)) return
|
||||
if(RG.loc != usr && !isrobot(user)) return
|
||||
if(busy)
|
||||
to_chat(usr, "<span class='warning'>Someone's already using \the [src].</span>")
|
||||
to_chat(usr, span("warning", "Someone's already using \the [src]."))
|
||||
return
|
||||
|
||||
switch(atype)
|
||||
if ("Fill")
|
||||
if(RG.reagents.total_volume >= RG.volume)
|
||||
to_chat(usr, "<span class='warning'>\The [RG] is already full.</span>")
|
||||
to_chat(usr, span("warning", "\The [RG] is already full."))
|
||||
return
|
||||
|
||||
RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, amount_per_transfer_from_this))
|
||||
to_chat(oviewers(3, usr), "<span class='notice'>[usr] fills \the [RG] using \the [src].</span>")
|
||||
to_chat(usr, "<span class='notice'>You fill \the [RG] using \the [src].</span>")
|
||||
playsound(src.loc, 'sound/effects/sink_fill.ogg', 25, 1)
|
||||
user.visible_message(span("notice", "[user] fills \the [RG] using \the [src]."),
|
||||
span("notice", "You fill \the [RG] using \the [src]."))
|
||||
playsound(loc, 'sound/effects/sink.ogg', 75, 1)
|
||||
if ("Empty")
|
||||
if(!RG.reagents.total_volume)
|
||||
to_chat(usr, "<span class='warning'>\The [RG] is already empty.</span>")
|
||||
to_chat(usr, span("warning", "\The [RG] is already empty."))
|
||||
return
|
||||
|
||||
var/empty_amount = RG.reagents.trans_to(src, RG.amount_per_transfer_from_this)
|
||||
to_chat(oviewers(3, usr), "<span class='notice'>[usr] empties [empty_amount]u of \the [RG] into \the [src].</span>")
|
||||
to_chat(usr, "<span class='notice'>You empty [empty_amount]u of \the [RG] into \the [src].</span>")
|
||||
playsound(src.loc, 'sound/effects/sink_empty.ogg', 25, 1)
|
||||
user.visible_message(span("notice", "[user] empties [empty_amount]u of \the [RG] into \the [src]."),
|
||||
span("notice", "You empty [empty_amount]u of \the [RG] into \the [src]."))
|
||||
playsound(src.loc, 'sound/effects/pour.ogg', 10, 1)
|
||||
return
|
||||
|
||||
// Filling/empying Syringes
|
||||
@@ -465,23 +469,22 @@
|
||||
switch(S.mode)
|
||||
if(0) // draw
|
||||
if(S.reagents.total_volume >= S.volume)
|
||||
to_chat(usr, "<span class='warning'>\The [S] is already full.</span>")
|
||||
to_chat(usr, span("warning", "\The [S] is already full."))
|
||||
return
|
||||
|
||||
var/trans = min(S.volume - S.reagents.total_volume, S.amount_per_transfer_from_this)
|
||||
S.reagents.add_reagent("water", trans)
|
||||
to_chat(oviewers(3, usr), "<span class='notice'>[usr] uses \the [S] to draw water from \the [src].</span>")
|
||||
to_chat(usr, "<span class='notice'>You draw [trans] units of water from \the [src]. \The [S] now contains [S.reagents.total_volume] units.</span>")
|
||||
user.visible_message(span("notice", "[usr] uses \the [S] to draw water from \the [src]."),
|
||||
span("notice", "You draw [trans] units of water from \the [src]. \The [S] now contains [S.reagents.total_volume] units."))
|
||||
if(1) // inject
|
||||
if(!S.reagents.total_volume)
|
||||
to_chat(usr, "<span class='warning'>\The [S] is already empty.</span>")
|
||||
to_chat(usr, span("warning", "\The [S] is already empty."))
|
||||
return
|
||||
|
||||
var/trans = min(S.amount_per_transfer_from_this, S.reagents.total_volume)
|
||||
S.reagents.remove_any(trans)
|
||||
to_chat(oviewers(3, usr), "<span class='notice'>[usr] empties \the [S] into \the [src].</span>")
|
||||
to_chat(usr, "<span class='notice'>You empty [trans] units of water into \the [src]. \The [S] now contains [S.reagents.total_volume] units.</span>")
|
||||
|
||||
user.visible_message(span("notice", "[usr] empties \the [S] into \the [src]."),
|
||||
span("notice", "You empty [trans] units of water into \the [src]. \The [S] now contains [S.reagents.total_volume] units."))
|
||||
return
|
||||
|
||||
else if (istype(O, /obj/item/melee/baton))
|
||||
@@ -497,14 +500,14 @@
|
||||
R.cell.charge -= 20
|
||||
else
|
||||
B.deductcharge(B.hitcost)
|
||||
user.visible_message("<span class='danger'>[user] was stunned by \the [O]!</span>")
|
||||
user.visible_message(span("danger", "[user] was stunned by \the [O]!"))
|
||||
return 1
|
||||
// Short of a rewrite, this is necessary to stop monkeycubes being washed.
|
||||
else if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
|
||||
return
|
||||
else if(istype(O, /obj/item/mop))
|
||||
O.reagents.add_reagent("water", 5)
|
||||
to_chat(user, "<span class='notice'>You wet \the [O] in \the [src].</span>")
|
||||
to_chat(user, span("notice", "You wet \the [O] in \the [src]."))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
|
||||
return
|
||||
|
||||
@@ -514,10 +517,13 @@
|
||||
var/obj/item/I = O
|
||||
if(!I || !istype(I,/obj/item)) return
|
||||
|
||||
to_chat(usr, "<span class='notice'>You start washing \the [I].</span>")
|
||||
to_chat(usr, span("notice", "You start washing \the [I]."))
|
||||
playsound(loc, 'sound/effects/sink_long.ogg', 75, 1)
|
||||
|
||||
busy = 1
|
||||
sleep(40)
|
||||
if(!do_after(user, 40, src))
|
||||
busy = 0
|
||||
return TRUE
|
||||
busy = 0
|
||||
|
||||
if(user.loc != location) return //User has moved
|
||||
@@ -526,15 +532,13 @@
|
||||
|
||||
O.clean_blood()
|
||||
user.visible_message( \
|
||||
"<span class='notice'>[user] washes \a [I] using \the [src].</span>", \
|
||||
"<span class='notice'>You wash \a [I] using \the [src].</span>")
|
||||
|
||||
span("notice", "[user] washes \a [I] using \the [src]."), \
|
||||
span("notice", "You wash \a [I] using \the [src]."))
|
||||
|
||||
/obj/structure/sink/kitchen
|
||||
name = "kitchen sink"
|
||||
icon_state = "sink_alt"
|
||||
|
||||
|
||||
/obj/structure/sink/puddle //splishy splashy ^_^
|
||||
name = "puddle"
|
||||
icon_state = "puddle"
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
/mob/living/carbon/gib()
|
||||
for(var/mob/M in contents)
|
||||
M.dropInto(loc)
|
||||
visible_message("<span class='danger'>\The [M] bursts out of \the [src]!</span>")
|
||||
visible_message(span("danger", "\The [M] bursts out of \the [src]!"))
|
||||
..()
|
||||
|
||||
/mob/living/carbon/attack_hand(mob/M as mob)
|
||||
@@ -197,11 +197,11 @@
|
||||
if (!is_asystole())
|
||||
if(src == M && istype(src, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = src
|
||||
src.visible_message( \
|
||||
text("<span class='notice'>[src] examines [].</span>",src.gender==MALE?"himself":"herself"), \
|
||||
src.visible_message(
|
||||
span("notice", "[src] examines [src.gender==MALE?"himself":"herself"]."), \
|
||||
span("notice", "You check yourself for injuries.") \
|
||||
)
|
||||
|
||||
|
||||
for(var/obj/item/organ/external/org in H.organs)
|
||||
var/list/status = list()
|
||||
var/brutedamage = org.brute_dam
|
||||
@@ -237,9 +237,9 @@
|
||||
if(org.status & ORGAN_BLEEDING)
|
||||
status += span("danger", "bleeding")
|
||||
if(status.len)
|
||||
src.show_message("My [org.name] is <span class='warning'>[english_list(status)].</span>",1)
|
||||
src.show_message("My [org.name] is [span("warning", "[english_list(status)].")]" ,1)
|
||||
else
|
||||
src.show_message("My [org.name] is <span class='notice'>OK.</span>",1)
|
||||
src.show_message("My [org.name] is [span("notice", "OK.")]" ,1)
|
||||
|
||||
if((isskeleton(H)) && (!H.w_uniform) && (!H.wear_suit))
|
||||
H.play_xylophone()
|
||||
@@ -304,7 +304,7 @@
|
||||
src.help_up_offer = 0
|
||||
else
|
||||
M.visible_message(span("warning", "[M] grabs onto [src], trying to pull themselves up."), \
|
||||
span("warning", "You grab onto [src], trying to pull yourself up."))
|
||||
span("warning", "You grab onto [src], trying to pull yourself up."))
|
||||
if(M.fire_stacks >= (src.fire_stacks + 3))
|
||||
src.adjust_fire_stacks(1)
|
||||
M.adjust_fire_stacks(-1)
|
||||
@@ -316,8 +316,8 @@
|
||||
else if(istype(tapper))
|
||||
tapper.species.tap(tapper,src)
|
||||
else
|
||||
M.visible_message("<span class='notice'>[M] taps [src] to get their attention!</span>", \
|
||||
"<span class='notice'>You tap [src] to get their attention!</span>")
|
||||
M.visible_message(span("notice", "[M] taps [src] to get their attention!"), \
|
||||
span("notice", "You tap [src] to get their attention!"))
|
||||
|
||||
if(stat != DEAD)
|
||||
AdjustParalysis(-3)
|
||||
@@ -340,23 +340,6 @@
|
||||
|
||||
// ++++ROCKDTBEN++++ MOB PROCS //END
|
||||
|
||||
/mob/living/carbon/clean_blood()
|
||||
. = ..()
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(H.gloves)
|
||||
if(H.gloves.clean_blood())
|
||||
H.update_inv_gloves(0)
|
||||
H.gloves.germ_level = 0
|
||||
else
|
||||
if(!isnull(H.bloody_hands))
|
||||
H.bloody_hands = null
|
||||
H.update_inv_gloves(0)
|
||||
H.germ_level = 0
|
||||
update_icons() //apply the now updated overlays to the mob
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
..()
|
||||
var/temp_inc = max(min(BODYTEMP_HEATING_MAX*(1-get_heat_protection()), exposed_temperature - bodytemperature), 0)
|
||||
|
||||
@@ -523,7 +523,7 @@
|
||||
if(7)//snowflake arc - only happens when they have long hair.
|
||||
damage_areas = list(BP_R_HAND, BP_R_ARM, BP_CHEST, BP_HEAD)
|
||||
h_style = "skinhead"
|
||||
visible_message("<span class='warning'>[src]'s hair gets a burst of electricty through it, burning and turning to dust!</span>", "<span class='danger'>your hair burns as the current flows through it, turning to dust!</span>", "<span class='notice'>You hear a crackling sound, and smell burned hair!.</span>")
|
||||
visible_message(span("warning", "[src]'s hair gets a burst of electricty through it, burning and turning to dust!"), span("danger", "your hair burns as the current flows through it, turning to dust!"), span("notice", "You hear a crackling sound, and smell burned hair!."))
|
||||
update_hair()
|
||||
else
|
||||
damage_areas = list(def_zone)
|
||||
@@ -568,18 +568,18 @@
|
||||
|
||||
if (shock_damage > 15)
|
||||
visible_message(
|
||||
"<span class='warning'>[src] was shocked by the [source]!</span>",
|
||||
"<span class='danger'>You feel a powerful shock course through your body!</span>",
|
||||
"<span class='warning'>You hear a heavy electrical crack.</span>"
|
||||
span("warning", "[src] was shocked by the [source]!"),
|
||||
span("danger", "You feel a powerful shock course through your body!"),
|
||||
span("warning", "You hear a heavy electrical crack.")
|
||||
)
|
||||
Stun(10)//This should work for now, more is really silly and makes you lay there forever
|
||||
Weaken(10)
|
||||
|
||||
else
|
||||
visible_message(
|
||||
"<span class='warning'>[src] was mildly shocked by the [source].</span>",
|
||||
"<span class='warning'>You feel a mild shock course through your body.</span>",
|
||||
"<span class='warning'>You hear a light zapping.</span>"
|
||||
span("warning", "[src] was mildly shocked by the [source]."),
|
||||
span("warning", "You feel a mild shock course through your body."),
|
||||
span("warning", "You hear a light zapping.")
|
||||
)
|
||||
|
||||
spark(loc, 5, alldirs)
|
||||
@@ -632,7 +632,7 @@
|
||||
U.handle_regular_hud_updates()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["secrecord"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -657,7 +657,7 @@
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["secrecordComment"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -684,7 +684,7 @@
|
||||
to_chat(usr, "<a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["secrecordadd"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -742,7 +742,7 @@
|
||||
U.handle_regular_hud_updates()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["medrecord"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -768,7 +768,7 @@
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["medrecordComment"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -795,7 +795,7 @@
|
||||
to_chat(usr, "<a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
to_chat(usr, span("warning", "Unable to locate a data core entry for this person."))
|
||||
|
||||
if (href_list["medrecordadd"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -896,17 +896,17 @@
|
||||
|
||||
if(is_berserk())
|
||||
if(!silent)
|
||||
to_chat(src, "<span class='warning'>You are in no state to use that!</span>")
|
||||
to_chat(src, span("warning", "You are in no state to use that!"))
|
||||
return 0
|
||||
|
||||
if(!species.has_fine_manipulation)
|
||||
if(!silent)
|
||||
to_chat(src, "<span class='warning'>You don't have the dexterity to use that!</span>")
|
||||
to_chat(src, span("warning", "You don't have the dexterity to use that!"))
|
||||
return 0
|
||||
|
||||
if(disabilities & MONKEYLIKE)
|
||||
if(!silent)
|
||||
to_chat(src, "<span class='warning'>You don't have the dexterity to use that!</span>")
|
||||
to_chat(src, span("warning", "You don't have the dexterity to use that!"))
|
||||
return 0
|
||||
|
||||
return 1
|
||||
@@ -935,7 +935,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/play_xylophone()
|
||||
if(!src.xylophone)
|
||||
visible_message("<span class='warning'>\The [src] begins playing \his ribcage like a xylophone. It's quite spooky.</span>","<span class='notice'>You begin to play a spooky refrain on your ribcage.</span>","<span class='warning'>You hear a spooky xylophone melody.</span>")
|
||||
visible_message(span("warning", "\The [src] begins playing \his ribcage like a xylophone. It's quite spooky."),span("notice", "You begin to play a spooky refrain on your ribcage."),span("warning", "You hear a spooky xylophone melody."))
|
||||
var/song = pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg')
|
||||
playsound(loc, song, 50, 1, -1)
|
||||
xylophone = 1
|
||||
@@ -1135,7 +1135,7 @@
|
||||
regenerate_icons()
|
||||
check_dna()
|
||||
|
||||
visible_message("<span class='notice'>\The [src] morphs and changes [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] appearance!</span>", "<span class='notice'>You change your appearance!</span>", "<span class='warning'>Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!</span>")
|
||||
visible_message(span("notice", "\The [src] morphs and changes [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] appearance!"), span("notice", "You change your appearance!"), span("warning", "Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!"))
|
||||
|
||||
/mob/living/carbon/human/proc/remotesay()
|
||||
set name = "Project mind"
|
||||
@@ -1161,10 +1161,10 @@
|
||||
|
||||
var/say = sanitize(input("What do you wish to say"))
|
||||
if(mRemotetalk in target.mutations)
|
||||
target.show_message("<span class='notice'>You hear [src.real_name]'s voice: [say]</span>")
|
||||
target.show_message(span("notice", "You hear [src.real_name]'s voice: [say]"))
|
||||
else
|
||||
target.show_message("<span class='notice'>You hear a voice that seems to echo around the room: [say]</span>")
|
||||
usr.show_message("<span class='notice'>You project your mind into [target.real_name]: [say]</span>")
|
||||
target.show_message(span("notice", "You hear a voice that seems to echo around the room: [say]"))
|
||||
usr.show_message(span("notice", "You project your mind into [target.real_name]: [say]"))
|
||||
log_say("[key_name(usr)] sent a telepathic message to [key_name(target)]: [say]",ckey=key_name(usr))
|
||||
for(var/mob/abstract/observer/G in dead_mob_list)
|
||||
G.show_message("<i>Telepathic message from <b>[src]</b> to <b>[target]</b>: [say]</i>")
|
||||
@@ -1318,6 +1318,16 @@
|
||||
|
||||
/mob/living/carbon/human/clean_blood(var/clean_feet)
|
||||
.=..()
|
||||
if(gloves)
|
||||
if(gloves.clean_blood())
|
||||
update_inv_gloves(1)
|
||||
gloves.germ_level = 0
|
||||
else
|
||||
if(!isnull(bloody_hands))
|
||||
bloody_hands = null
|
||||
update_inv_gloves(1)
|
||||
germ_level = 0
|
||||
|
||||
gunshot_residue = null
|
||||
if(clean_feet && !shoes)
|
||||
feet_blood_color = null
|
||||
@@ -1351,12 +1361,12 @@
|
||||
if(!istype(O,/obj/item/implant) && prob(5)) //Moving with things stuck in you could be bad.
|
||||
// All kinds of embedded objects cause bleeding.
|
||||
if(!can_feel_pain())
|
||||
to_chat(src, "<span class='warning'>You feel [O] moving inside your [organ.name].</span>")
|
||||
to_chat(src, span("warning", "You feel [O] moving inside your [organ.name]."))
|
||||
else
|
||||
var/msg = pick( \
|
||||
"<span class='warning'>A spike of pain jolts your [organ.name] as you bump [O] inside.</span>", \
|
||||
"<span class='warning'>Your movement jostles [O] in your [organ.name] painfully.</span>", \
|
||||
"<span class='warning'>Your movement jostles [O] in your [organ.name] painfully.</span>")
|
||||
span("warning", "A spike of pain jolts your [organ.name] as you bump [O] inside."), \
|
||||
span("warning", "Your movement jostles [O] in your [organ.name] painfully."), \
|
||||
span("warning", "Your movement jostles [O] in your [organ.name] painfully."))
|
||||
to_chat(src, msg)
|
||||
|
||||
organ.take_damage(rand(1, 3), sharp = TRUE, edge = TRUE, used_weapon = O)
|
||||
@@ -1378,25 +1388,25 @@
|
||||
return
|
||||
|
||||
if(!self)
|
||||
usr.visible_message("<span class='notice'>[usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse.</span>",\
|
||||
usr.visible_message(span("notice", "[usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse."),\
|
||||
"You begin counting [src]'s pulse")
|
||||
else
|
||||
usr.visible_message("<span class='notice'>[usr] begins counting their pulse.</span>",\
|
||||
usr.visible_message(span("notice", "[usr] begins counting their pulse."),\
|
||||
"You begin counting your pulse.")
|
||||
|
||||
if(pulse())
|
||||
to_chat(usr, "<span class='notice'>[self ? "You have a" : "[src] has a"] pulse! Counting...</span>")
|
||||
to_chat(usr, span("notice", "[self ? "You have a" : "[src] has a"] pulse! Counting..."))
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>[src] has no pulse!</span>") //it is REALLY UNLIKELY that a dead person would check his own pulse)
|
||||
to_chat(usr, span("danger", "[src] has no pulse!")) //it is REALLY UNLIKELY that a dead person would check his own pulse)
|
||||
return
|
||||
|
||||
to_chat(usr, "You must[self ? "" : " both"] remain still until counting is finished.")
|
||||
if(do_mob(usr, src, 60))
|
||||
var/pulsae = src.get_pulse(GETPULSE_HAND)
|
||||
var/introspect = self ? "Your" : "[src]'s"
|
||||
to_chat(usr, "<span class='notice'>[introspect] pulse is [pulsae].</span>")
|
||||
to_chat(usr, span("notice", "[introspect] pulse is [pulsae]."))
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>You failed to check the pulse. Try again.</span>")
|
||||
to_chat(usr, span("warning", "You failed to check the pulse. Try again."))
|
||||
|
||||
/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/kpg=0, var/change_hair = TRUE)
|
||||
cached_bodytype = null
|
||||
@@ -1509,26 +1519,26 @@
|
||||
verbs -= /mob/living/carbon/human/proc/bloody_doodle
|
||||
|
||||
if (src.gloves)
|
||||
to_chat(src, "<span class='warning'>Your [src.gloves] are getting in the way.</span>")
|
||||
to_chat(src, span("warning", "Your [src.gloves] are getting in the way."))
|
||||
return
|
||||
|
||||
var/turf/simulated/T = src.loc
|
||||
if (!istype(T)) //to prevent doodling out of mechs and lockers
|
||||
to_chat(src, "<span class='warning'>You cannot reach the floor.</span>")
|
||||
to_chat(src, span("warning", "You cannot reach the floor."))
|
||||
return
|
||||
|
||||
var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West")
|
||||
if (direction != "Here")
|
||||
T = get_step(T,text2dir(direction))
|
||||
if (!istype(T))
|
||||
to_chat(src, "<span class='warning'>You cannot doodle there.</span>")
|
||||
to_chat(src, span("warning", "You cannot doodle there."))
|
||||
return
|
||||
|
||||
var/num_doodles = 0
|
||||
for (var/obj/effect/decal/cleanable/blood/writing/W in T)
|
||||
num_doodles++
|
||||
if (num_doodles > 4)
|
||||
to_chat(src, "<span class='warning'>There is no space to write on!</span>")
|
||||
to_chat(src, span("warning", "There is no space to write on!"))
|
||||
return
|
||||
|
||||
var/max_length = bloody_hands * 30 //tweeter style
|
||||
@@ -1541,7 +1551,7 @@
|
||||
|
||||
if (length(message) > max_length)
|
||||
message += "-"
|
||||
to_chat(src, "<span class='warning'>You ran out of blood to write with!</span>")
|
||||
to_chat(src, span("warning", "You ran out of blood to write with!"))
|
||||
|
||||
var/obj/effect/decal/cleanable/blood/writing/W = new(T)
|
||||
W.basecolor = (hand_blood_color) ? hand_blood_color : "#A10808"
|
||||
@@ -1577,7 +1587,7 @@
|
||||
if(!. && error_msg && user)
|
||||
if(!fail_msg)
|
||||
fail_msg = "There is no exposed flesh or thin material [target_zone == BP_HEAD ? "on their head" : "on their body"] to inject into."
|
||||
to_chat(user, "<span class='alert'>[fail_msg]</span>")
|
||||
to_chat(user, span("alert", "[fail_msg]"))
|
||||
|
||||
/mob/living/carbon/human/print_flavor_text(var/shrink = 1)
|
||||
var/list/equipment = list(src.head,src.wear_mask,src.glasses,src.w_uniform,src.wear_suit,src.gloves,src.shoes)
|
||||
@@ -1685,11 +1695,11 @@
|
||||
var/obj/item/organ/external/current_limb = organs_by_name[choice]
|
||||
|
||||
if(self)
|
||||
U.visible_message("<span class='warning'>[U] tries to relocate their [current_limb.joint]...</span>", \
|
||||
"<span class='warning'>You brace yourself to relocate your [current_limb.joint]...</span>")
|
||||
U.visible_message(span("warning", "[U] tries to relocate their [current_limb.joint]..."), \
|
||||
span("warning", "You brace yourself to relocate your [current_limb.joint]..."))
|
||||
else
|
||||
U.visible_message("<span class='warning'>[U] tries to relocate [S]'s [current_limb.joint]...</span>", \
|
||||
"<span class='warning'>You begin to relocate [S]'s [current_limb.joint]...</span>")
|
||||
U.visible_message(span("warning", "[U] tries to relocate [S]'s [current_limb.joint]..."), \
|
||||
span("warning", "You begin to relocate [S]'s [current_limb.joint]..."))
|
||||
|
||||
if(!do_after(U, 30))
|
||||
return
|
||||
@@ -1697,11 +1707,13 @@
|
||||
return
|
||||
|
||||
if(self)
|
||||
U.visible_message("<span class='danger'>[U] pops their [current_limb.joint] back in!</span>", \
|
||||
"<span class='danger'>You pop your [current_limb.joint] back in!</span>")
|
||||
U.visible_message(span("danger", "[U] pops their [current_limb.joint] back in!"), \
|
||||
span("danger", "You pop your [current_limb.joint] back in!"))
|
||||
playsound(src.loc, "fracture", 50, 1, -2)
|
||||
else
|
||||
U.visible_message("<span class='danger'>[U] pops [S]'s [current_limb.joint] back in!</span>", \
|
||||
"<span class='danger'>You pop [S]'s [current_limb.joint] back in!</span>")
|
||||
U.visible_message(span("danger", "[U] pops [S]'s [current_limb.joint] back in!"), \
|
||||
span("danger", "You pop [S]'s [current_limb.joint] back in!"))
|
||||
playsound(src.loc, "fracture", 50, 1, -2)
|
||||
current_limb.undislocate()
|
||||
|
||||
/mob/living/carbon/human/drop_from_inventory(var/obj/item/W, var/atom/target = null)
|
||||
@@ -1750,7 +1762,7 @@
|
||||
|
||||
if(stat) return
|
||||
pulling_punches = !pulling_punches
|
||||
to_chat(src, "<span class='notice'>You are now [pulling_punches ? "pulling your punches" : "not pulling your punches"].</span>")
|
||||
to_chat(src, span("notice", "You are now [pulling_punches ? "pulling your punches" : "not pulling your punches"]."))
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/get_traumas()
|
||||
|
||||
Reference in New Issue
Block a user