Merge remote-tracking branch 'remotes/upstream/dev' into definecrusade

This commit is contained in:
Chinsky
2015-06-05 11:26:25 +03:00
277 changed files with 1746 additions and 1637 deletions

View File

@@ -24,6 +24,7 @@ script:
- shopt -s globstar - shopt -s globstar
- (! grep 'step_[xy]' maps/**/*.dmm) - (! grep 'step_[xy]' maps/**/*.dmm)
- (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano) - (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano)
- (num=`grep -E '\\\\(red|blue|green|black|b|i[^mc])' **/*.dm | wc -l`; [ $num -le 1355 ])
- ( md5sum -c - <<< "0af969f671fba6cf9696c78cd175a14a *baystation12.int") - ( md5sum -c - <<< "0af969f671fba6cf9696c78cd175a14a *baystation12.int")
- DreamMaker baystation12.dme - DreamMaker baystation12.dme
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs - python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs

View File

@@ -168,7 +168,7 @@
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
usr.set_machine(src) usr.set_machine(src)
ui_interact(user) ui_interact(user)
@@ -242,20 +242,20 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (unlocked) if (unlocked)
user << "\red You cannot unwrench this [src], turn it off first." user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -91,7 +91,7 @@
attackby(obj/item/weapon/W as obj, mob/user as mob) attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored anchored = !anchored
user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor." user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
if(anchored) if(anchored)
if(dir & (NORTH|SOUTH)) if(dir & (NORTH|SOUTH))
@@ -263,7 +263,7 @@
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored anchored = !anchored
turbine = null turbine = null
user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor." user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
updateConnection() updateConnection()
else else
..() ..()
@@ -286,4 +286,4 @@
if (usr.stat || usr.restrained() || anchored) if (usr.stat || usr.restrained() || anchored)
return return
src.set_dir(turn(src.dir, 90)) src.set_dir(turn(src.dir, 90))

View File

@@ -183,7 +183,7 @@ Thus, the two variables affect pump operation are set in New():
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
usr.set_machine(src) usr.set_machine(src)
ui_interact(user) ui_interact(user)
@@ -219,20 +219,20 @@ Thus, the two variables affect pump operation are set in New():
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "\red You cannot unwrench this [src], turn it off first." user << "<span class='warning'>You cannot unwrench this [src], turn it off first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -87,15 +87,15 @@
int_pressure += P.air.return_pressure() int_pressure += P.air.return_pressure()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_pressure - env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_pressure - env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "<span class='warning'>You cannot unwrench [src], it is too exerted due to internal pressure.</span>" user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 40)) if(do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear a ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)
@@ -299,4 +299,4 @@
update_ports() update_ports()
return null return null

View File

@@ -134,22 +134,22 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (connected_device) if (connected_device)
user << "\red You cannot unwrench this [src], dettach [connected_device] first." user << "<span class='warning'>You cannot unwrench \the [src], dettach \the [connected_device] first.</span>"
return 1 return 1
if (locate(/obj/machinery/portable_atmospherics, src.loc)) if (locate(/obj/machinery/portable_atmospherics, src.loc))
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -134,16 +134,16 @@
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)
@@ -153,7 +153,7 @@
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
var/dat var/dat

View File

@@ -109,15 +109,15 @@
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)
@@ -127,7 +127,7 @@
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
usr.set_machine(src) usr.set_machine(src)
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br> var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br>

View File

@@ -308,7 +308,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
..() ..()
@@ -350,21 +350,21 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (istype(src, /obj/machinery/atmospherics/tvalve/digital)) if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
user << "\red You cannot unwrench this [src], it's too complicated." user << "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)
@@ -448,7 +448,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
..() ..()
@@ -482,4 +482,4 @@
if(state) if(state)
go_straight() go_straight()
else else
go_to_side() go_to_side()

View File

@@ -70,20 +70,20 @@
return ..() return ..()
var/turf/T = src.loc var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact) if (level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first." user << "<span class='warning'>You must remove the plating first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -358,22 +358,22 @@
if(istype(W, /obj/item/weapon/weldingtool)) if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user)) if (WT.remove_fuel(0,user))
user << "\blue Now welding the vent." user << "<span class='notice'>Now welding the vent.</span>"
if(do_after(user, 20)) if(do_after(user, 20))
if(!src || !WT.isOn()) return if(!src || !WT.isOn()) return
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
if(!welded) if(!welded)
user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") user.visible_message("<span class='notice'>\The [user] welds the vent shut.</span>", "<span class='notice'>You weld the vent shut.</span>", "You hear welding.")
welded = 1 welded = 1
update_icon() update_icon()
else else
user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.") user.visible_message("<span class='notice'>[user] unwelds the vent.</span>", "<span class='notice'>You unweld the vent.</span>", "You hear welding.")
welded = 0 welded = 0
update_icon() update_icon()
else else
user << "\blue The welding tool needs to be on to start this task." user << "<span class='notice'>The welding tool needs to be on to start this task.</span>"
else else
user << "\blue You need more welding fuel to complete this task." user << "<span class='warning'>You need more welding fuel to complete this task.</span>"
return 1 return 1
else else
..() ..()
@@ -396,25 +396,25 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "\red You cannot unwrench this [src], turn it off first." user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
return 1 return 1
var/turf/T = src.loc var/turf/T = src.loc
if (node && node.level==1 && isturf(T) && T.intact) if (node && node.level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first." user << "<span class='warning'>You must remove the plating first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -258,25 +258,25 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "\red You cannot unwrench this [src], turn it off first." user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
return 1 return 1
var/turf/T = src.loc var/turf/T = src.loc
if (node && node.level==1 && isturf(T) && T.intact) if (node && node.level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first." user << "<span class='warning'>You must remove the plating first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -241,7 +241,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
..() ..()
@@ -294,21 +294,21 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (istype(src, /obj/machinery/atmospherics/valve/digital)) if (istype(src, /obj/machinery/atmospherics/valve/digital))
user << "\red You cannot unwrench this [src], it's too complicated." user << "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
qdel(src) qdel(src)

View File

@@ -649,7 +649,7 @@ obj/machinery/atmospherics/mains_pipe/valve
attack_hand(mob/user as mob) attack_hand(mob/user as mob)
if(!src.allowed(user)) if(!src.allowed(user))
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
..() ..()
@@ -704,4 +704,4 @@ obj/machinery/atmospherics/mains_pipe/valve
close() close()
else else
open() open()
*/ */

View File

@@ -82,21 +82,21 @@
return ..() return ..()
var/turf/T = src.loc var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact) if (level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first." user << "<span class='warning'>You must remove the plating first.</span>"
return 1 return 1
var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air() var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "<span class='warning'>You cannot unwrench [src], it is too exerted due to internal pressure.</span>" user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear a ratchet.")
new /obj/item/pipe(loc, make_from=src) new /obj/item/pipe(loc, make_from=src)
for (var/obj/machinery/meter/meter in T) for (var/obj/machinery/meter/meter in T)
if (meter.target == src) if (meter.target == src)
@@ -214,7 +214,7 @@
else return 1 else return 1
/obj/machinery/atmospherics/pipe/simple/proc/burst() /obj/machinery/atmospherics/pipe/simple/proc/burst()
src.visible_message("\red \bold [src] bursts!"); src.visible_message("<span class='danger'>\The [src] bursts!</span>");
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
var/datum/effect/effect/system/smoke_spread/smoke = new var/datum/effect/effect/system/smoke_spread/smoke = new
smoke.set_up(1,0, src.loc, 0) smoke.set_up(1,0, src.loc, 0)
@@ -1121,19 +1121,19 @@
if(istype(W, /obj/item/device/analyzer) && in_range(user, src)) if(istype(W, /obj/item/device/analyzer) && in_range(user, src))
for (var/mob/O in viewers(user, null)) for (var/mob/O in viewers(user, null))
O << "\red [user] has used the analyzer on \icon[icon]" O << "<span class='notice'>\The [user] has used \the [W] on \the [src] \icon[src]</span>"
var/pressure = parent.air.return_pressure() var/pressure = parent.air.return_pressure()
var/total_moles = parent.air.total_moles var/total_moles = parent.air.total_moles
user << "\blue Results of analysis of \icon[icon]" user << "<span class='notice'>Results of analysis of \the [src] \icon[src]</span>"
if (total_moles>0) if (total_moles>0)
user << "\blue Pressure: [round(pressure,0.1)] kPa" user << "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>"
for(var/g in parent.air.gas) for(var/g in parent.air.gas)
user << "\blue [gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%" user << "<span class='notice'>[gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%</span>"
user << "\blue Temperature: [round(parent.air.temperature-T0C)]&deg;C" user << "<span class='notice'>Temperature: [round(parent.air.temperature-T0C)]&deg;C</span>"
else else
user << "\blue Tank is empty!" user << "<span class='notice'>Tank is empty!</span>"
/obj/machinery/atmospherics/pipe/tank/air /obj/machinery/atmospherics/pipe/tank/air
name = "Pressure Tank (Air)" name = "Pressure Tank (Air)"

View File

@@ -48,7 +48,7 @@ obj/item/weapon/tank
adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num) adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num)
set src in world set src in world
if(!air_contents) if(!air_contents)
usr << "\red ERROR: no gas_mixture associated with this tank" usr << "<span class='warning'>ERROR: no gas_mixture associated with this tank</span>"
return null return null
air_contents.temperature = temperature air_contents.temperature = temperature
@@ -74,7 +74,7 @@ turf/simulated/floor
else else
usr << "Space Borders: None" usr << "Space Borders: None"
else else
usr << "\blue [x],[y] has no parent air group." usr << "<span class='notice'>[x],[y] has no parent air group.</span>"
verb verb
create_wall() create_wall()
@@ -329,7 +329,7 @@ obj/machinery/atmospherics
set src in world set src in world
set category = "Minor" set category = "Minor"
world << "\blue [x],[y]" world << "<span class='notice'>[x],[y]</span>"
world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]" world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]"
for(var/obj/O in network_node1.normal_members) for(var/obj/O in network_node1.normal_members)
world << "member: [O.x], [O.y]" world << "member: [O.x], [O.y]"
@@ -406,7 +406,7 @@ turf/simulated
set src in world set src in world
set category = "Minor" set category = "Minor"
var/datum/gas_mixture/GM = return_air() var/datum/gas_mixture/GM = return_air()
usr << "\blue @[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("\red BURNING"):(null)]" usr << "<span class='notice'>@[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("<span class='danger'>BURNING</span>"):(null)]</span>""
for(var/datum/gas/trace_gas in GM.trace_gases) for(var/datum/gas/trace_gas in GM.trace_gases)
usr << "[trace_gas.type]: [trace_gas.moles]" usr << "[trace_gas.type]: [trace_gas.moles]"
@@ -515,7 +515,7 @@ mob
fire_report() fire_report()
set category = "Debug" set category = "Debug"
usr << "\b \red Fire Report" usr << "<span class='danger'>Fire Report</span>"
for(var/obj/effect/hotspot/flame in world) for(var/obj/effect/hotspot/flame in world)
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]" usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"

View File

@@ -146,7 +146,7 @@ datum
setup() setup()
set background = 1 set background = 1
world << "\red \b Processing Geometry..." world << "<span class='danger'>Processing Geometry...</span>"
sleep(1) sleep(1)
var/start_time = world.timeofday var/start_time = world.timeofday
@@ -156,7 +156,7 @@ datum
assemble_group_turf(S) assemble_group_turf(S)
S.update_air_properties() S.update_air_properties()
world << "\red \b Geometry processed in [(world.timeofday-start_time)/10] seconds!" world << "<span class='danger'>Geometry processed in [(world.timeofday-start_time)/10] seconds!</span>"
assemble_group_turf(turf/simulated/base) assemble_group_turf(turf/simulated/base)

View File

@@ -13,13 +13,13 @@
for(var/atom/A in T.contents) for(var/atom/A in T.contents)
if(A.density) if(A.density)
blocked = 1 blocked = 1
usr << "\red You bump into [A.name]." usr << "<span class='warning'>You bump into \the [A].</span>"
break break
if(!blocked) if(!blocked)
usr.Move(T) usr.Move(T)
usr << "You move upwards." usr << "You move upwards."
else else
usr << "\red There is something in your way." usr << "<span class='warning'>There is something in your way.</span>"
if (legal == 0) if (legal == 0)
usr << "There is nothing of interest in this direction." usr << "There is nothing of interest in this direction."
return 1 return 1
@@ -40,13 +40,13 @@
for(var/atom/A in T.contents) for(var/atom/A in T.contents)
if(A.density) if(A.density)
blocked = 1 blocked = 1
usr << "\red You bump into [A.name]." usr << "<span class='warning'>You bump into \the [A].</span>"
break break
if(!blocked) if(!blocked)
usr.Move(T) usr.Move(T)
usr << "You move downwards." usr << "You move downwards."
else else
usr << "\red You cant move through the floor." usr << "<span class='warning'>You cant move through the floor.</span>"
if (legal == 0) if (legal == 0)
usr << "There is nothing of interest in this direction." usr << "There is nothing of interest in this direction."
return 1 return 1

View File

@@ -73,7 +73,7 @@ obj/machinery/atmospherics/pipe/zpipe/check_pressure(pressure)
else return 1 else return 1
obj/machinery/atmospherics/pipe/zpipe/proc/burst() obj/machinery/atmospherics/pipe/zpipe/proc/burst()
src.visible_message("\red \bold [src] bursts!"); src.visible_message("<span class='warning'>\The [src] bursts!</span>");
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
var/datum/effect/effect/system/smoke_spread/smoke = new var/datum/effect/effect/system/smoke_spread/smoke = new
smoke.set_up(1,0, src.loc, 0) smoke.set_up(1,0, src.loc, 0)

View File

@@ -141,7 +141,7 @@
if(blocked || istype(T, /turf/simulated/wall)) if(blocked || istype(T, /turf/simulated/wall))
M << "Something is blocking the ladder." M << "Something is blocking the ladder."
else else
M.visible_message("\blue \The [M] climbs [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You climb [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.") M.visible_message("<span class='notice'>\The [M] climbs [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!</span>", "You climb [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.")
M.Move(target.loc) M.Move(target.loc)
/* hatch /* hatch
@@ -188,7 +188,7 @@
qdel(src) qdel(src)
if(M.z == z && get_dist(src,M) <= 1) if(M.z == z && get_dist(src,M) <= 1)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
M.visible_message("\blue \The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.") M.visible_message("<span class='notice'>\The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!</span>", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.")
M.Move(target.loc) M.Move(target.loc)
flick(top_icon_state_close,top_hatch) flick(top_icon_state_close,top_hatch)
bottom_hatch.overlays -= green_overlay bottom_hatch.overlays -= green_overlay
@@ -271,4 +271,4 @@
var/turf/above2 = locate(bottom.x, bottom.y, controller.up_target) var/turf/above2 = locate(bottom.x, bottom.y, controller.up_target)
if(istype(above2, /turf/space) || istype(above,/turf/simulated/floor/open)) if(istype(above2, /turf/space) || istype(above,/turf/simulated/floor/open))
top.target2 = above2 top.target2 = above2
return return

View File

@@ -109,7 +109,7 @@
return return
var/obj/item/stack/rods/R = C var/obj/item/stack/rods/R = C
if (R.use(1)) if (R.use(1))
user << "\blue Constructing support lattice ..." user << "<span class='notice'>Constructing support lattice...</span>"
playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1) playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1)
ReplaceWithLattice() ReplaceWithLattice()
return return
@@ -126,5 +126,5 @@
S.use(1) S.use(1)
return return
else else
user << "\red The plating is going to need some support." user << "<span class='warning'>The plating is going to need some support.</span>"
return return

View File

@@ -80,7 +80,7 @@ obj/item/check_airflow_movable(n)
return return
if(src:shoes && src:shoes.flags & NOSLIP) if(src:shoes && src:shoes.flags & NOSLIP)
return return
src << "\red You are sucked away by airflow!" src << "<span class='danger'>You are sucked away by airflow!</span>"
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2) var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
if(airflow_falloff < 1) if(airflow_falloff < 1)
airflow_dest = null airflow_dest = null
@@ -144,7 +144,7 @@ obj/item/check_airflow_movable(n)
if(istype(src:shoes, /obj/item/clothing/shoes/magboots)) if(istype(src:shoes, /obj/item/clothing/shoes/magboots))
if(src:shoes.flags & NOSLIP) if(src:shoes.flags & NOSLIP)
return return
src << "\red You are pushed away by airflow!" src << "<span clas='danger'>You are pushed away by airflow!</span>"
last_airflow = world.time last_airflow = world.time
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2) var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
if(airflow_falloff < 1) if(airflow_falloff < 1)
@@ -197,7 +197,7 @@ atom/movable/proc/airflow_hit(atom/A)
mob/airflow_hit(atom/A) mob/airflow_hit(atom/A)
for(var/mob/M in hearers(src)) for(var/mob/M in hearers(src))
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2) M.show_message("<span class='danger'>\The [src] slams into \a [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
playsound(src.loc, "smash.ogg", 25, 1, -1) playsound(src.loc, "smash.ogg", 25, 1, -1)
var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh
Weaken(weak_amt) Weaken(weak_amt)
@@ -205,7 +205,7 @@ mob/airflow_hit(atom/A)
obj/airflow_hit(atom/A) obj/airflow_hit(atom/A)
for(var/mob/M in hearers(src)) for(var/mob/M in hearers(src))
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2) M.show_message("<span class='danger'>\The [src] slams into \a [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
playsound(src.loc, "smash.ogg", 25, 1, -1) playsound(src.loc, "smash.ogg", 25, 1, -1)
. = ..() . = ..()
@@ -215,7 +215,7 @@ obj/item/airflow_hit(atom/A)
mob/living/carbon/human/airflow_hit(atom/A) mob/living/carbon/human/airflow_hit(atom/A)
// for(var/mob/M in hearers(src)) // for(var/mob/M in hearers(src))
// M.show_message("\red <B>[src] slams into [A]!</B>",1,"\red You hear a loud slam!",2) // M.show_message("<span class='danger'>[src] slams into [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
playsound(src.loc, "punch", 25, 1, -1) playsound(src.loc, "punch", 25, 1, -1)
if (prob(33)) if (prob(33))
loc:add_blood(src) loc:add_blood(src)
@@ -244,4 +244,4 @@ zone/proc/movables()
for(var/atom/A in T) for(var/atom/A in T)
if(istype(A, /obj/effect) || istype(A, /mob/aiEye)) if(istype(A, /obj/effect) || istype(A, /mob/aiEye))
continue continue
. += A . += A

View File

@@ -187,7 +187,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
#ifdef ZASDBG #ifdef ZASDBG
if(updated != updating.len) if(updated != updating.len)
tick_progress = "[updating.len - updated] tiles left unupdated." tick_progress = "[updating.len - updated] tiles left unupdated."
world << "\red [tick_progress]" world << "<span class='danger'>[tick_progress]</span>"
. = 0 . = 0
#endif #endif
@@ -371,4 +371,4 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
/datum/controller/air_system/proc/remove_edge(connection_edge/E) /datum/controller/air_system/proc/remove_edge(connection_edge/E)
edges.Remove(E) edges.Remove(E)
if(!E.sleeping) active_edges.Remove(E) if(!E.sleeping) active_edges.Remove(E)

View File

@@ -87,4 +87,4 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
client/proc/ZASSettings() client/proc/ZASSettings()
set category = "Debug" set category = "Debug"
vsc.SetDefault(mob) vsc.SetDefault(mob)

View File

@@ -88,7 +88,7 @@ obj/var/contaminated = 0
if(vsc.plc.SKIN_BURNS) if(vsc.plc.SKIN_BURNS)
if(!pl_head_protected() || !pl_suit_protected()) if(!pl_head_protected() || !pl_suit_protected())
burn_skin(0.75) burn_skin(0.75)
if(prob(20)) src << "\red Your skin burns!" if(prob(20)) src << "<span class='danger'>Your skin burns!</span>"
updatehealth() updatehealth()
//Burn eyes if exposed. //Burn eyes if exposed.
@@ -111,7 +111,7 @@ obj/var/contaminated = 0
if(vsc.plc.GENETIC_CORRUPTION) if(vsc.plc.GENETIC_CORRUPTION)
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION) if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
randmutb(src) randmutb(src)
src << "\red High levels of toxins cause you to spontaneously mutate." src << "<span class='danger'>High levels of toxins cause you to spontaneously mutate!</span>"
domutcheck(src,null) domutcheck(src,null)
@@ -122,11 +122,11 @@ obj/var/contaminated = 0
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"] var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
if(E) if(E)
if(prob(20)) src << "\red Your eyes burn!" if(prob(20)) src << "<span class='danger'>Your eyes burn!</span>"
E.damage += 2.5 E.damage += 2.5
eye_blurry = min(eye_blurry+1.5,50) eye_blurry = min(eye_blurry+1.5,50)
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind) if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
src << "\red You are blinded!" src << "<span class='danger'>You are blinded!</span>"
eye_blind += 20 eye_blind += 20
/mob/living/carbon/human/proc/pl_head_protected() /mob/living/carbon/human/proc/pl_head_protected()

View File

@@ -168,7 +168,7 @@ var/global/vs_control/vsc = new
vars[ch] = vw vars[ch] = vw
if(how == "Toggle") if(how == "Toggle")
newvar = (newvar?"ON":"OFF") newvar = (newvar?"ON":"OFF")
world << "\blue <b>[key_name(user)] changed the setting [display_description] to [newvar].</b>" world << "<span class='notice'><b>[key_name(user)] changed the setting [display_description] to [newvar].</b></span>"
if(ch in plc.settings) if(ch in plc.settings)
ChangeSettingsDialog(user,plc.settings) ChangeSettingsDialog(user,plc.settings)
else else
@@ -321,7 +321,7 @@ var/global/vs_control/vsc = new
plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION) plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION)
world << "\blue <b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b>" world << "<span class='notice'><b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b></span>"
/pl_control/var/list/settings = list() /pl_control/var/list/settings = list()

View File

@@ -169,16 +169,15 @@ proc/listclearnulls(list/list)
return output return output
//Randomize: Return the list in a random order //Randomize: Return the list in a random order
/proc/shuffle(var/list/shufflelist) /proc/shuffle(var/list/L)
if(!shufflelist) if(!L)
return return
var/list/new_list = list()
var/list/old_list = shufflelist.Copy() L = L.Copy()
while(old_list.len)
var/item = pick(old_list) for(var/i=1; i<L.len; i++)
new_list += item L.Swap(i, rand(i,L.len))
old_list -= item return L
return new_list
//Return a list with no duplicate entries //Return a list with no duplicate entries
/proc/uniquelist(var/list/L) /proc/uniquelist(var/list/L)

View File

@@ -233,7 +233,7 @@ var/syndicate_code_response//Code response for traitors.
set name = "Generate Code Phrase" set name = "Generate Code Phrase"
set category = "Debug" set category = "Debug"
world << "\red Code Phrase is: \black [generate_code_phrase()]" world << "<span class='warning'>Code Phrase is:</span> [generate_code_phrase()]"
return return

View File

@@ -34,7 +34,8 @@
input = replace_characters(input, list("\n"=" ","\t"=" ")) input = replace_characters(input, list("\n"=" ","\t"=" "))
if(encode) if(encode)
//In addition to processing html, html_encode removes byond formatting codes like "\red", "\i" and other. // The below \ escapes have a space inserted to attempt to enable Travis auto-checking of span class usage. Please do not remove the space.
//In addition to processing html, html_encode removes byond formatting codes like "\ red", "\ i" and other.
//It is important to avoid double-encode text, it can "break" quotes and some other characters. //It is important to avoid double-encode text, it can "break" quotes and some other characters.
//Also, keep in mind that escaped characters don't work in the interface (window titles, lower left corner of the main window, etc.) //Also, keep in mind that escaped characters don't work in the interface (window titles, lower left corner of the main window, etc.)
input = html_encode(input) input = html_encode(input)
@@ -312,4 +313,4 @@ proc/TextPreview(var/string,var/len=40)
/proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null) /proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null)
if(C && (C.prefs.toggles & CHAT_NOICONS)) if(C && (C.prefs.toggles & CHAT_NOICONS))
return tagdesc return tagdesc
return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">" return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"

View File

@@ -1363,3 +1363,8 @@ var/list/WALLITEMS = list(
temp_col = "0[temp_col]" temp_col = "0[temp_col]"
colour += temp_col colour += temp_col
return colour return colour
/atom/proc/get_light_and_color(var/atom/origin)
if(origin)
color = origin.color
set_light(origin.light_range, origin.light_power, origin.light_color)

View File

@@ -329,7 +329,7 @@
nutrition = max(nutrition - rand(1,5),0) nutrition = max(nutrition - rand(1,5),0)
handle_regular_hud_updates() handle_regular_hud_updates()
else else
src << "\red You're out of energy! You need food!" src << "<span class='warning'>You're out of energy! You need food!</span>"
// Simple helper to face what you clicked on, in case it should be needed in more than one place // Simple helper to face what you clicked on, in case it should be needed in more than one place
/mob/proc/face_atom(var/atom/A) /mob/proc/face_atom(var/atom/A)

View File

@@ -262,11 +262,11 @@ datum/hud/New(mob/owner)
set hidden = 1 set hidden = 1
if(!hud_used) if(!hud_used)
usr << "\red This mob type does not use a HUD." usr << "<span class='warning'>This mob type does not use a HUD.</span>"
return return
if(!ishuman(src)) if(!ishuman(src))
usr << "\red Inventory hiding is currently only supported for human mobs, sorry." usr << "<span class='warning'>Inventory hiding is currently only supported for human mobs, sorry.</span>"
return return
if(!client) return if(!client) return
@@ -353,4 +353,4 @@ datum/hud/New(mob/owner)
hud_used.hidden_inventory_update() hud_used.hidden_inventory_update()
hud_used.persistant_inventory_update() hud_used.persistant_inventory_update()
update_action_buttons() update_action_buttons()

View File

@@ -6,9 +6,9 @@
if(!client) return if(!client) return
client.inquisitive_ghost = !client.inquisitive_ghost client.inquisitive_ghost = !client.inquisitive_ghost
if(client.inquisitive_ghost) if(client.inquisitive_ghost)
src << "\blue You will now examine everything you click on." src << "<span class='notice'>You will now examine everything you click on.</span>"
else else
src << "\blue You will no longer examine things you click on." src << "<span class='notice'>You will no longer examine things you click on.</span>"
/mob/dead/observer/DblClickOn(var/atom/A, var/params) /mob/dead/observer/DblClickOn(var/atom/A, var/params)
if(client.buildmode) if(client.buildmode)

View File

@@ -120,7 +120,7 @@ var/const/tk_maxrange = 15
if(8 to tk_maxrange) if(8 to tk_maxrange)
user.next_move += 10 user.next_move += 10
else else
user << "\blue Your mind won't reach that far." user << "<span class='notice'>Your mind won't reach that far.</span>"
return return
if(!focus) if(!focus)

View File

@@ -9,7 +9,7 @@ client
if(!usr.client || !usr.client.holder) if(!usr.client || !usr.client.holder)
usr << "\red You need to be an administrator to access this." usr << "<span class='warning'>You need to be an administrator to access this.</span>"
return return
@@ -602,8 +602,8 @@ client
if(!i) if(!i)
usr << "No objects of this type exist" usr << "No objects of this type exist"
return return
log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted)")
message_admins("\blue [key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted)</span>")
if("Type and subtypes") if("Type and subtypes")
var/i = 0 var/i = 0
for(var/obj/Obj in world) for(var/obj/Obj in world)
@@ -613,8 +613,8 @@ client
if(!i) if(!i)
usr << "No objects of this type exist" usr << "No objects of this type exist"
return return
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
message_admins("\blue [key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)</span>")
else if(href_list["explode"]) else if(href_list["explode"])
if(!check_rights(R_DEBUG|R_FUN)) return if(!check_rights(R_DEBUG|R_FUN)) return
@@ -941,8 +941,8 @@ client
return return
if(amount != 0) if(amount != 0)
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L]")
message_admins("\blue [key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") message_admins("<span class='notice'>[key_name(usr)] dealt [amount] amount of [Text] damage to [L]</span>")
href_list["datumrefresh"] = href_list["mobToDamage"] href_list["datumrefresh"] = href_list["mobToDamage"]
if(href_list["datumrefresh"]) if(href_list["datumrefresh"])

View File

@@ -53,25 +53,25 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your throat feels sore." affected_mob << "<span class='warning'>Your throat feels sore.</span>"
if(prob(1)) if(prob(1))
affected_mob << "\red Mucous runs down the back of your throat." affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
if(4) if(4)
if(prob(1)) if(prob(1))
affected_mob.emote("sneeze") affected_mob.emote("sneeze")
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(2)) if(prob(2))
affected_mob << "\red Your muscles ache." affected_mob << "<span class='warning'>Your muscles ache.</span>"
if(prob(20)) if(prob(20))
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if(prob(2)) if(prob(2))
affected_mob << "\red Your stomach hurts." affected_mob << "<span class='warning>Your stomach hurts.</span>"
if(prob(20)) if(prob(20))
affected_mob.adjustToxLoss(1) affected_mob.adjustToxLoss(1)
affected_mob.updatehealth() affected_mob.updatehealth()
if(5) if(5)
affected_mob << "\red You feel something tearing its way out of your stomach..." affected_mob << "<span class='danger'>You feel something tearing its way out of your stomach...</span>"
affected_mob.adjustToxLoss(10) affected_mob.adjustToxLoss(10)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(50)) if(prob(50))

View File

@@ -24,11 +24,11 @@
if(stage == 1) if(stage == 1)
if(prob(5)) if(prob(5))
affected_mob << "\red You feel a stinging pain in your abdomen!" affected_mob << "<span class='warning'>You feel a stinging pain in your abdomen!</span>"
affected_mob.emote("me",1,"winces slightly.") affected_mob.emote("me",1,"winces slightly.")
if(stage > 1) if(stage > 1)
if(prob(3)) if(prob(3))
affected_mob << "\red You feel a stabbing pain in your abdomen!" affected_mob << "<span class='warning'>You feel a stabbing pain in your abdomen!</span>"
affected_mob.emote("me",1,"winces painfully.") affected_mob.emote("me",1,"winces painfully.")
affected_mob.adjustToxLoss(1) affected_mob.adjustToxLoss(1)
if(stage > 2) if(stage > 2)
@@ -37,13 +37,13 @@
var/mob/living/carbon/human/H = affected_mob var/mob/living/carbon/human/H = affected_mob
H.vomit() H.vomit()
else else
affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!" affected_mob << "<span class='danger'>You gag as you want to throw up, but there's nothing in your stomach!</span>"
affected_mob.Weaken(10) affected_mob.Weaken(10)
affected_mob.adjustToxLoss(3) affected_mob.adjustToxLoss(3)
if(stage > 3) if(stage > 3)
if(prob(1) && ishuman(affected_mob)) if(prob(1) && ishuman(affected_mob))
var/mob/living/carbon/human/H = affected_mob var/mob/living/carbon/human/H = affected_mob
H << "\red Your abdomen is a world of pain!" H << "<span class='danger'>Your abdomen is a world of pain!</span>"
H.Weaken(10) H.Weaken(10)
var/obj/item/organ/external/groin = H.get_organ("groin") var/obj/item/organ/external/groin = H.get_organ("groin")

View File

@@ -14,12 +14,12 @@
switch(stage) switch(stage)
if(1) if(1)
if(prob(2)) if(prob(2))
affected_mob << "\red You feel like something is moving inside of you" affected_mob << "<span class='warning'>You feel like something is moving inside of you!</span>"
if(2) //also changes say, see say.dm if(2) //also changes say, see say.dm
if(prob(2)) if(prob(2))
affected_mob << "\red You feel like something is moving inside of you" affected_mob << "<span class='warning'>You feel like something is moving inside of you!</span>"
if(prob(2)) if(prob(2))
affected_mob << "\red BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" affected_mob << "<span class='danger'>BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</span>"
if(3) if(3)
//Should give the bee spit verb //Should give the bee spit verb
if(4) if(4)
@@ -28,4 +28,4 @@
//Plus if you die, you explode into bees //Plus if you die, you explode into bees
return return
*/ */
//Started working on it, but am too lazy to finish it today -- Urist //Started working on it, but am too lazy to finish it today -- Urist

View File

@@ -21,7 +21,7 @@
if(prob(2)) if(prob(2))
affected_mob.emote("yawn") affected_mob.emote("yawn")
if(prob(2)) if(prob(2))
affected_mob << "\red Your don't feel like yourself." affected_mob << "<span class='warning'>Your don't feel like yourself.</span>"
if(prob(5)) if(prob(5))
affected_mob.adjustBrainLoss(1) affected_mob.adjustBrainLoss(1)
affected_mob.updatehealth() affected_mob.updatehealth()
@@ -34,12 +34,12 @@
affected_mob.adjustBrainLoss(2) affected_mob.adjustBrainLoss(2)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(2)) if(prob(2))
affected_mob << "\red Your try to remember something important...but can't." affected_mob << "<span class='warning'>You try to remember something important...but can't.</span>"
/* if(prob(10)) /* if(prob(10))
affected_mob.adjustToxLoss(3) affected_mob.adjustToxLoss(3)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(2)) if(prob(2))
affected_mob << "\red Your head hurts." */ affected_mob << "<span class='warning'>Your head hurts.</span>" */
if(4) if(4)
if(prob(2)) if(prob(2))
affected_mob.emote("stare") affected_mob.emote("stare")
@@ -49,14 +49,14 @@
affected_mob.adjustToxLoss(4) affected_mob.adjustToxLoss(4)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(2)) if(prob(2))
affected_mob << "\red Your head hurts." */ affected_mob << "<span class='notice>Your head hurts.</span>" */
if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now
affected_mob.adjustBrainLoss(3) affected_mob.adjustBrainLoss(3)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(2)) if(prob(2))
affected_mob << "\red Strange buzzing fills your head, removing all thoughts." affected_mob << "<span class='warning'>A strange buzzing fills your head, removing all thoughts.</span>"
if(prob(3)) if(prob(3))
affected_mob << "\red You lose consciousness..." affected_mob << "<span class='warning'>You lose consciousness...</span>"
for(var/mob/O in viewers(affected_mob, null)) for(var/mob/O in viewers(affected_mob, null))
O.show_message("[affected_mob] suddenly collapses", 1) O.show_message("[affected_mob] suddenly collapses", 1)
affected_mob.Paralyse(rand(5,10)) affected_mob.Paralyse(rand(5,10))
@@ -64,4 +64,4 @@
affected_mob.emote("snore") affected_mob.emote("snore")
if(prob(15)) if(prob(15))
affected_mob.stuttering += 3 affected_mob.stuttering += 3
return return

View File

@@ -16,16 +16,16 @@
if(2) if(2)
/* /*
if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if(prob(1) && prob(5)) if(prob(1) && prob(5))
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if(prob(1)) if(prob(1))
@@ -33,22 +33,22 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your throat feels sore." affected_mob << "<span class='warning'>Your throat feels sore.</span>"
if(prob(1)) if(prob(1))
affected_mob << "\red Mucous runs down the back of your throat." affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
if(3) if(3)
/* /*
if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if(prob(1) && prob(1)) if(prob(1) && prob(1))
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if(prob(1)) if(prob(1))
@@ -56,11 +56,11 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your throat feels sore." affected_mob << "<span class='warning'>Your throat feels sore.</span>"
if(prob(1)) if(prob(1))
affected_mob << "\red Mucous runs down the back of your throat." affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
if(prob(1) && prob(50)) if(prob(1) && prob(50))
if(!affected_mob.resistances.Find(/datum/disease/flu)) if(!affected_mob.resistances.Find(/datum/disease/flu))
var/datum/disease/Flu = new /datum/disease/flu(0) var/datum/disease/Flu = new /datum/disease/flu(0)
affected_mob.contract_disease(Flu,1) affected_mob.contract_disease(Flu,1)
cure() cure()

View File

@@ -16,7 +16,7 @@
if(2) if(2)
affected_mob.bodytemperature -= 10 affected_mob.bodytemperature -= 10
if(prob(1) && prob(10)) if(prob(1) && prob(10))
affected_mob << "\blue You feel better." affected_mob << "<span class='notice>You feel better.</span>"
cure() cure()
return return
if(prob(1)) if(prob(1))
@@ -24,9 +24,9 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your throat feels sore." affected_mob << "<span class='warning'>Your throat feels sore.</span>"
if(prob(5)) if(prob(5))
affected_mob << "\red You feel stiff." affected_mob << "<span class='warning'>You feel stiff.</span>"
if(3) if(3)
affected_mob.bodytemperature -= 20 affected_mob.bodytemperature -= 20
if(prob(1)) if(prob(1))
@@ -34,6 +34,6 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your throat feels sore." affected_mob << "<span class='warning'>Your throat feels sore.</span>"
if(prob(10)) if(prob(10))
affected_mob << "\red You feel stiff." affected_mob << "<span class='warning'>You feel stiff.</span>"

View File

@@ -23,11 +23,11 @@
if(prob(8)) if(prob(8))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your muscles ache." affected_mob << "<span class='warning'>Your muscles ache.</span>"
if(prob(20)) if(prob(20))
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if(prob(1)) if(prob(1))
affected_mob << "\red Your stomach hurts." affected_mob << "<span class='warning'>Your stomach hurts.</span>"
if(prob(20)) if(prob(20))
affected_mob.adjustToxLoss(2) affected_mob.adjustToxLoss(2)
affected_mob.updatehealth() affected_mob.updatehealth()
@@ -42,7 +42,7 @@
src.original_dna["UI"] = affected_mob.dna.UI.Copy() src.original_dna["UI"] = affected_mob.dna.UI.Copy()
src.original_dna["SE"] = affected_mob.dna.SE.Copy() src.original_dna["SE"] = affected_mob.dna.SE.Copy()
affected_mob << "\red You don't feel like yourself.." affected_mob << "<span class='warning'>You don't feel like yourself..</span>"
var/list/newUI=strain_data["UI"] var/list/newUI=strain_data["UI"]
var/list/newSE=strain_data["SE"] var/list/newSE=strain_data["SE"]
affected_mob.UpdateAppearance(newUI.Copy()) affected_mob.UpdateAppearance(newUI.Copy())
@@ -65,5 +65,5 @@
affected_mob.dna.UpdateSE() affected_mob.dna.UpdateSE()
affected_mob.real_name = original_dna["name"] affected_mob.real_name = original_dna["name"]
affected_mob << "\blue You feel more like yourself." affected_mob << "<span class='notice'>You feel more like yourself.</span>"
..() ..()

View File

@@ -22,7 +22,7 @@
else if(prob(5)) else if(prob(5))
affected_mob.emote("gasp") affected_mob.emote("gasp")
if(prob(10)) if(prob(10))
affected_mob << "\red You're starting to feel very weak..." affected_mob << "<span class='warning'>You're starting to feel very weak...</span>"
if(4) if(4)
if(prob(10)) if(prob(10))
affected_mob.emote("cough") affected_mob.emote("cough")

View File

@@ -17,12 +17,12 @@
if(2) if(2)
/* /*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
stage-- stage--
return return
*/ */
if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
stage-- stage--
return return
if(prob(1)) if(prob(1))
@@ -30,11 +30,11 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your muscles ache." affected_mob << "<span class='warning'>Your muscles ache.</span>"
if(prob(20)) if(prob(20))
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if(prob(1)) if(prob(1))
affected_mob << "\red Your stomach hurts." affected_mob << "<span class='warning'>Your stomach hurts.</span>"
if(prob(20)) if(prob(20))
affected_mob.adjustToxLoss(1) affected_mob.adjustToxLoss(1)
affected_mob.updatehealth() affected_mob.updatehealth()
@@ -42,12 +42,12 @@
if(3) if(3)
/* /*
if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
stage-- stage--
return return
*/ */
if(affected_mob.lying && prob(15)) //added until sleeping is fixed if(affected_mob.lying && prob(15)) //added until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
stage-- stage--
return return
if(prob(1)) if(prob(1))
@@ -55,11 +55,11 @@
if(prob(1)) if(prob(1))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red Your muscles ache." affected_mob << "<span class='warning'>Your muscles ache.</span>"
if(prob(20)) if(prob(20))
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if(prob(1)) if(prob(1))
affected_mob << "\red Your stomach hurts." affected_mob << "<span class='warning'>Your stomach hurts.</span>"
if(prob(20)) if(prob(20))
affected_mob.adjustToxLoss(1) affected_mob.adjustToxLoss(1)
affected_mob.updatehealth() affected_mob.updatehealth()

View File

@@ -21,7 +21,7 @@
if(prob(5)) if(prob(5))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(1)) if(prob(1))
affected_mob << "\red You're burning in your own skin!" affected_mob << "<span class='warning'>You're burning in your own skin!</span>"
affected_mob.take_organ_damage(0,5) affected_mob.take_organ_damage(0,5)
if(3) if(3)
@@ -31,6 +31,6 @@
if(prob(5)) if(prob(5))
affected_mob.emote("cough") affected_mob.emote("cough")
if(prob(5)) if(prob(5))
affected_mob << "\red You're burning in your own skin!" affected_mob << "<span class='warning'>You're burning in your own skin!</span>"
affected_mob.take_organ_damage(0,5) affected_mob.take_organ_damage(0,5)
return return

View File

@@ -26,15 +26,15 @@
else if(prob(5)) else if(prob(5))
affected_mob.emote("gasp") affected_mob.emote("gasp")
if(prob(10)) if(prob(10))
affected_mob << "\red You're starting to feel very weak..." affected_mob << "<span class='warning'>You're starting to feel very weak...</span>"
if(4) if(4)
if(prob(10)) if(prob(10))
affected_mob.emote("cough") affected_mob.emote("cough")
affected_mob.adjustToxLoss(5) affected_mob.adjustToxLoss(5)
affected_mob.updatehealth() affected_mob.updatehealth()
if(5) if(5)
affected_mob << "\red Your body feels as if it's trying to rip itself open..." affected_mob << "<span class='warning'>Your body feels as if it's trying to rip itself open...</span>"
if(prob(50)) if(prob(50))
affected_mob.gib() affected_mob.gib()
else else
return return

View File

@@ -16,7 +16,7 @@
switch(stage) switch(stage)
if(2) if(2)
if(prob(2)) if(prob(2))
affected_mob << "\red You feel a slight shock course through your body." affected_mob << "<span class='warning'>You feel a slight shock course through your body.</span>"
if(prob(2)) if(prob(2))
for(var/obj/M in orange(2,affected_mob)) for(var/obj/M in orange(2,affected_mob))
if(!M.anchored && (M.flags & CONDUCT)) if(!M.anchored && (M.flags & CONDUCT))
@@ -36,9 +36,9 @@
*/ */
if(3) if(3)
if(prob(2)) if(prob(2))
affected_mob << "\red You feel a strong shock course through your body." affected_mob << "<span class='warning'>You feel a strong shock course through your body.</span>"
if(prob(2)) if(prob(2))
affected_mob << "\red You feel like clowning around." affected_mob << "<span class='warning'>You feel like clowning around.</span>"
if(prob(4)) if(prob(4))
for(var/obj/M in orange(4,affected_mob)) for(var/obj/M in orange(4,affected_mob))
if(!M.anchored && (M.flags & CONDUCT)) if(!M.anchored && (M.flags & CONDUCT))
@@ -64,9 +64,9 @@
*/ */
if(4) if(4)
if(prob(2)) if(prob(2))
affected_mob << "\red You feel a powerful shock course through your body." affected_mob << "<span class='warning'>You feel a powerful shock course through your body.</span>"
if(prob(2)) if(prob(2))
affected_mob << "\red You query upon the nature of miracles." affected_mob << "<span class='warning'>You query upon the nature of miracles.</span>"
if(prob(8)) if(prob(8))
for(var/obj/M in orange(6,affected_mob)) for(var/obj/M in orange(6,affected_mob))
if(!M.anchored && (M.flags & CONDUCT)) if(!M.anchored && (M.flags & CONDUCT))
@@ -90,4 +90,4 @@
else if(M.y < affected_mob.y) else if(M.y < affected_mob.y)
M.y+=rand(1,min(5,affected_mob.y-M.y)) M.y+=rand(1,min(5,affected_mob.y-M.y))
*/ */
return return

View File

@@ -16,10 +16,10 @@
..() ..()
switch(stage) switch(stage)
if(1) if(1)
if(prob(10)) affected_mob << "\red You feel a little silly." if(prob(10)) affected_mob << "<span class='warning'>You feel a little silly.</span>"
if(2) if(2)
if(prob(10)) affected_mob << "\red You start seeing rainbows." if(prob(10)) affected_mob << "<span class='warning'>You start seeing rainbows.</span>"
if(3) if(3)
if(prob(10)) affected_mob << "\red Your thoughts are interrupted by a loud <b>HONK!</b>" if(prob(10)) affected_mob << "<span class='warning'>Your thoughts are interrupted by a loud <b>HONK!</b></span>"
if(4) if(4)
if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) ) if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )

View File

@@ -33,55 +33,55 @@
if(restcure) if(restcure)
/* /*
if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if (prob(8)) if (prob(8))
affected_mob << "\red Your head hurts." affected_mob << "<span class='warning'>Your head hurts.</span>"
if (prob(9)) if (prob(9))
affected_mob << "You feel a tingling sensation in your chest." affected_mob << "<span class='warning'>You feel a tingling sensation in your chest.</span>"
if (prob(9)) if (prob(9))
affected_mob << "\red You feel angry." affected_mob << "<span class='warning'>You feel angry.</span>"
if(2) if(2)
if(restcure) if(restcure)
/* /*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if (prob(8)) if (prob(8))
affected_mob << "\red Your skin feels loose." affected_mob << "<span class='warning'>Your skin feels loose.</span>"
if (prob(10)) if (prob(10))
affected_mob << "You feel very strange." affected_mob << "<span class='warning'>You feel very strange.</span>"
if (prob(4)) if (prob(4))
affected_mob << "\red You feel a stabbing pain in your head!" affected_mob << "<span class='warning'>You feel a stabbing pain in your head!</span>"
affected_mob.Paralyse(2) affected_mob.Paralyse(2)
if (prob(4)) if (prob(4))
affected_mob << "\red Your stomach churns." affected_mob << "<span class='warning'>Your stomach churns.</span>"
if(3) if(3)
if(restcure) if(restcure)
/* /*
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if (prob(10)) if (prob(10))
affected_mob << "\red Your entire body vibrates." affected_mob << "<span class='warning'>Your entire body vibrates.</span>"
if (prob(35)) if (prob(35))
if(prob(50)) if(prob(50))
@@ -93,16 +93,16 @@
if(restcure) if(restcure)
/* /*
if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
*/ */
if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed
affected_mob << "\blue You feel better." affected_mob << "<span class='notice'>You feel better.</span>"
cure() cure()
return return
if (prob(60)) if (prob(60))
if(prob(50)) if(prob(50))
scramble(1, affected_mob, rand(50,75)) scramble(1, affected_mob, rand(50,75))
else else
scramble(0, affected_mob, rand(50,75)) scramble(0, affected_mob, rand(50,75))

View File

@@ -22,30 +22,30 @@
affected_mob.adjustToxLoss(5) affected_mob.adjustToxLoss(5)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(1)) if(prob(1))
affected_mob << "\red You feel strange..." affected_mob << "<span class='warning'>You feel strange...</span>"
if(3) if(3)
if(affected_mob.ckey == "rosham") if(affected_mob.ckey == "rosham")
src.cure() src.cure()
if(prob(5)) if(prob(5))
affected_mob << "\red You feel the urge to dance..." affected_mob << "<span class='warning'>You feel the urge to dance...</span>"
else if(prob(5)) else if(prob(5))
affected_mob.emote("gasp") affected_mob.emote("gasp")
else if(prob(10)) else if(prob(10))
affected_mob << "\red You feel the need to chick chicky boom..." affected_mob << "<span class='warning'>You feel the need to chick chicky boom...</span>"
if(4) if(4)
if(affected_mob.ckey == "rosham") if(affected_mob.ckey == "rosham")
src.cure() src.cure()
if(prob(10)) if(prob(10))
affected_mob.emote("gasp") affected_mob.emote("gasp")
affected_mob << "\red You feel a burning beat inside..." affected_mob << "<span class='warning'>You feel a burning beat inside...</span>"
if(prob(20)) if(prob(20))
affected_mob.adjustToxLoss(5) affected_mob.adjustToxLoss(5)
affected_mob.updatehealth() affected_mob.updatehealth()
if(5) if(5)
if(affected_mob.ckey == "rosham") if(affected_mob.ckey == "rosham")
src.cure() src.cure()
affected_mob << "\red Your body is unable to contain the Rhumba Beat..." affected_mob << "<span class='warning'>Your body is unable to contain the Rhumba Beat...</span>"
if(prob(50)) if(prob(50))
affected_mob.gib() affected_mob.gib()
else else
return return

View File

@@ -19,36 +19,36 @@
switch(stage) switch(stage)
if(2) if(2)
if (prob(8)) if (prob(8))
affected_mob << "Your joints feel stiff." affected_mob << "<span class='warning'>Your joints feel stiff.</span>"
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if (prob(9)) if (prob(9))
affected_mob << "\red Beep...boop.." affected_mob << "<span class='warning'>Beep...boop..</span>"
if (prob(9)) if (prob(9))
affected_mob << "\red Bop...beeep..." affected_mob << "<span class='warning'>Bop...beeep...</span>"
if(3) if(3)
if (prob(8)) if (prob(8))
affected_mob << "\red Your joints feel very stiff." affected_mob << "<span class='warning'>Your joints feel very stiff.</span>"
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if (prob(8)) if (prob(8))
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
if (prob(10)) if (prob(10))
affected_mob << "Your skin feels loose." affected_mob << "<span class='warning'>Your skin feels loose.</span>"
affected_mob.take_organ_damage(5) affected_mob.take_organ_damage(5)
if (prob(4)) if (prob(4))
affected_mob << "\red You feel a stabbing pain in your head." affected_mob << "<span class='warning'>You feel a stabbing pain in your head.</span>"
affected_mob.Paralyse(2) affected_mob.Paralyse(2)
if (prob(4)) if (prob(4))
affected_mob << "\red You can feel something move...inside." affected_mob << "<span class='warning'>You can feel something move...inside.</span>"
if(4) if(4)
if (prob(10)) if (prob(10))
affected_mob << "\red Your skin feels very loose." affected_mob << "<span class='warning'>Your skin feels very loose.</span>"
affected_mob.take_organ_damage(8) affected_mob.take_organ_damage(8)
if (prob(20)) if (prob(20))
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...")) affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
if (prob(8)) if (prob(8))
affected_mob << "\red You can feel... something...inside you." affected_mob << "<span class='warning'>You can feel... something...inside you.</span>"
if(5) if(5)
affected_mob <<"\red Your skin feels as if it's about to burst off..." affected_mob <<"<span class='warning'>Your skin feels as if it's about to burst off...</span>"
affected_mob.adjustToxLoss(10) affected_mob.adjustToxLoss(10)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(40)) //So everyone can feel like robot Seth Brundle if(prob(40)) //So everyone can feel like robot Seth Brundle

View File

@@ -31,14 +31,14 @@ STI KALY - blind
if(prob(1)&&prob(50)) if(prob(1)&&prob(50))
affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!")) affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
if(prob(1)&&prob(50)) if(prob(1)&&prob(50))
affected_mob << "\red You feel [pick("that you don't have enough mana.", "that the winds of magic are gone.", "an urge to summon familiar.")]" affected_mob << "<span class='warning'>You feel [pick("that you don't have enough mana.", "that the winds of magic are gone.", "an urge to summon familiar.")]</span>"
if(3) if(3)
if(prob(1)&&prob(50)) if(prob(1)&&prob(50))
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!")) affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
if(prob(1)&&prob(50)) if(prob(1)&&prob(50))
affected_mob << "\red You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar.")]." affected_mob << "<span class='warning'>You feel [pick("the magic bubbling in your veins.","that this location gives you a +1 to INT.","an urge to summon familiar.")]</span>"
if(4) if(4)
@@ -46,7 +46,7 @@ STI KALY - blind
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!")) affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
return return
if(prob(1)&&prob(50)) if(prob(1)&&prob(50))
affected_mob << "\red You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")]." affected_mob << "<span class='warning'>You feel [pick("the tidal wave of raw power building inside.","that this location gives you a +2 to INT and +1 to WIS.","an urge to teleport.")]</span>"
spawn_wizard_clothes(50) spawn_wizard_clothes(50)
if(prob(1)&&prob(1)) if(prob(1)&&prob(1))
teleport() teleport()

View File

@@ -17,38 +17,38 @@
switch(stage) switch(stage)
if(2) if(2)
if (prob(8)) if (prob(8))
affected_mob << "Your throat feels scratchy." affected_mob << "<span class='warning'>Your throat feels scratchy.</span>"
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
if (prob(9)) if (prob(9))
affected_mob << "\red Kill..." affected_mob << "<span class='warning'>Kill...</span>"
if (prob(9)) if (prob(9))
affected_mob << "\red Kill..." affected_mob << "<span class='warning'>Kill...</span>"
if(3) if(3)
if (prob(8)) if (prob(8))
affected_mob << "\red Your throat feels very scratchy." affected_mob << "<span class='warning'>Your throat feels very scratchy.</span>"
affected_mob.take_organ_damage(1) affected_mob.take_organ_damage(1)
/* /*
if (prob(8)) if (prob(8))
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
*/ */
if (prob(10)) if (prob(10))
affected_mob << "Your skin feels tight." affected_mob << "<span class='warning'>Your skin feels tight.</span>"
affected_mob.take_organ_damage(5) affected_mob.take_organ_damage(5)
if (prob(4)) if (prob(4))
affected_mob << "\red You feel a stabbing pain in your head." affected_mob << "<span class='warning'>You feel a stabbing pain in your head.</span>"
affected_mob.Paralyse(2) affected_mob.Paralyse(2)
if (prob(4)) if (prob(4))
affected_mob << "\red You can feel something move...inside." affected_mob << "<span class='warning'>You can feel something move...inside.</span>"
if(4) if(4)
if (prob(10)) if (prob(10))
affected_mob << pick("\red Your skin feels very tight.", "\red Your blood boils!") affected_mob << pick("<span class='warning'>Your skin feels very tight.</span>", "<span class='warning'>Your blood boils!</span>")
affected_mob.take_organ_damage(8) affected_mob.take_organ_damage(8)
if (prob(20)) if (prob(20))
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!")) affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
if (prob(8)) if (prob(8))
affected_mob << "\red You can feel... something...inside you." affected_mob << "<span class='warning'>You can feel... something...inside you.</span>"
if(5) if(5)
affected_mob <<"\red Your skin feels impossibly calloused..." affected_mob <<"<span class='warning'>Your skin feels impossibly calloused...</span>"
affected_mob.adjustToxLoss(10) affected_mob.adjustToxLoss(10)
affected_mob.updatehealth() affected_mob.updatehealth()
if(prob(40)) if(prob(40))

View File

@@ -139,7 +139,7 @@ Data storage vars:
arg_list = arguments arg_list = arguments
return 1 return 1
else else
// world << "\red Invalid arguments supplied for [src.type], ref = \ref[src]" // world << "<span class='danger'>Invalid arguments supplied for [src.type], ref = \ref[src]</span>"
return 0 return 0
proc/toggle_null_checks() proc/toggle_null_checks()

View File

@@ -332,7 +332,7 @@ datum/mind
var/mob/living/carbon/monkey/M = current var/mob/living/carbon/monkey/M = current
if (istype(H)) if (istype(H))
log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]") log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]")
message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]") message_admins("<span class='notice'>[key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]</span>")
src = null src = null
M = H.monkeyize() M = H.monkeyize()
src = M.mind src = M.mind
@@ -347,7 +347,7 @@ datum/mind
var/mob/living/carbon/monkey/M = current var/mob/living/carbon/monkey/M = current
if (istype(H)) if (istype(H))
log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]") log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]")
message_admins("\blue [key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]", 1) message_admins("<span class='notice'>[key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]</span>", 1)
src = null src = null
M = H.monkeyize() M = H.monkeyize()
src = M.mind src = M.mind
@@ -362,7 +362,7 @@ datum/mind
D.cure(0) D.cure(0)
sleep(0) //because deleting of virus is doing throught spawn(0) sleep(0) //because deleting of virus is doing throught spawn(0)
log_admin("[key_name(usr)] attempting to humanize [key_name(current)]") log_admin("[key_name(usr)] attempting to humanize [key_name(current)]")
message_admins("\blue [key_name_admin(usr)] attempting to humanize [key_name_admin(current)]") message_admins("<span class='notice'>[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]</span>")
var/obj/item/weapon/dnainjector/m2h/m2h = new var/obj/item/weapon/dnainjector/m2h/m2h = new
var/obj/item/weapon/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0 var/obj/item/weapon/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0
src = null src = null
@@ -432,7 +432,7 @@ datum/mind
else if (href_list["obj_announce"]) else if (href_list["obj_announce"])
var/obj_count = 1 var/obj_count = 1
current << "\blue Your current objectives:" current << "<span class='notice'>Your current objectives:</span>"
for(var/datum/objective/objective in objectives) for(var/datum/objective/objective in objectives)
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]" current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
obj_count++ obj_count++

View File

@@ -227,9 +227,9 @@
throwforce = 5 throwforce = 5
w_class = 2.0 w_class = 2.0
throw_speed = 4 throw_speed = 4
throw_range = 20 throw_range = 20
matter = list(DEFAULT_WALL_MATERIAL = 100) matter = list(DEFAULT_WALL_MATERIAL = 100)
origin_tech = list(TECH_MAGNET = 1) origin_tech = list(TECH_MAGNET = 1)
/obj/item/weapon/staff /obj/item/weapon/staff
name = "wizards staff" name = "wizards staff"
@@ -282,7 +282,7 @@
attack_verb = list("whipped", "lashed", "disciplined", "tickled") attack_verb = list("whipped", "lashed", "disciplined", "tickled")
suicide_act(mob/user) suicide_act(mob/user)
viewers(user) << "\red <b>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</b>" viewers(user) << "<span class='warning'><b>[user] is strangling \himself with \the [src]! It looks like \he's trying to commit suicide.</b></span>"
return (OXYLOSS) return (OXYLOSS)
/obj/item/weapon/module /obj/item/weapon/module
@@ -342,7 +342,7 @@
if (C.bugged && C.status) if (C.bugged && C.status)
cameras.Add(C) cameras.Add(C)
if (length(cameras) == 0) if (length(cameras) == 0)
usr << "\red No bugged functioning cameras found." usr << "<span class='warning'>No bugged functioning cameras found.</span>"
return return
var/list/friendly_cameras = new/list() var/list/friendly_cameras = new/list()
@@ -425,35 +425,35 @@
desc = "A basic capacitor used in the construction of a variety of devices." desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor" icon_state = "capacitor"
origin_tech = list(TECH_POWER = 1) origin_tech = list(TECH_POWER = 1)
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50) matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
/obj/item/weapon/stock_parts/scanning_module /obj/item/weapon/stock_parts/scanning_module
name = "scanning module" name = "scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices." desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module" icon_state = "scan_module"
origin_tech = list(TECH_MAGNET = 1) origin_tech = list(TECH_MAGNET = 1)
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20) matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
/obj/item/weapon/stock_parts/manipulator /obj/item/weapon/stock_parts/manipulator
name = "micro-manipulator" name = "micro-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices." desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani" icon_state = "micro_mani"
origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1) origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
matter = list(DEFAULT_WALL_MATERIAL = 30) matter = list(DEFAULT_WALL_MATERIAL = 30)
/obj/item/weapon/stock_parts/micro_laser /obj/item/weapon/stock_parts/micro_laser
name = "micro-laser" name = "micro-laser"
desc = "A tiny laser used in certain devices." desc = "A tiny laser used in certain devices."
icon_state = "micro_laser" icon_state = "micro_laser"
origin_tech = list(TECH_MAGNET = 1) origin_tech = list(TECH_MAGNET = 1)
matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20) matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
/obj/item/weapon/stock_parts/matter_bin /obj/item/weapon/stock_parts/matter_bin
name = "matter bin" name = "matter bin"
desc = "A container for hold compressed matter awaiting re-construction." desc = "A container for hold compressed matter awaiting re-construction."
icon_state = "matter_bin" icon_state = "matter_bin"
origin_tech = list(TECH_MATERIAL = 1) origin_tech = list(TECH_MATERIAL = 1)
matter = list(DEFAULT_WALL_MATERIAL = 80) matter = list(DEFAULT_WALL_MATERIAL = 80)
//Rank 2 //Rank 2
@@ -543,35 +543,35 @@
icon_state = "subspace_ansible" icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity." desc = "A compact module capable of sensing extradimensional activity."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2) origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10) matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/filter /obj/item/weapon/stock_parts/subspace/filter
name = "hyperwave filter" name = "hyperwave filter"
icon_state = "hyperwave_filter" icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves." desc = "A tiny device capable of filtering and converting super-intense radiowaves."
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2) origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10) matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/amplifier /obj/item/weapon/stock_parts/subspace/amplifier
name = "subspace amplifier" name = "subspace amplifier"
icon_state = "subspace_amplifier" icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions." desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2) origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10) matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/treatment /obj/item/weapon/stock_parts/subspace/treatment
name = "subspace treatment disk" name = "subspace treatment disk"
icon_state = "treatment_disk" icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2) origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10) matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/analyzer /obj/item/weapon/stock_parts/subspace/analyzer
name = "subspace wavelength analyzer" name = "subspace wavelength analyzer"
icon_state = "wavelength_analyzer" icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
origin_tech = list(TECH_DATA = 3, TECH_MAGNETS = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2) origin_tech = list(TECH_DATA = 3, TECH_MAGNETS = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10) matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/crystal /obj/item/weapon/stock_parts/subspace/crystal
name = "ansible crystal" name = "ansible crystal"
@@ -585,7 +585,7 @@
icon_state = "subspace_transmitter" icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension." desc = "A large piece of equipment used to open a window into the subspace dimension."
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3) origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
matter = list(DEFAULT_WALL_MATERIAL = 50) matter = list(DEFAULT_WALL_MATERIAL = 50)
/obj/item/weapon/ectoplasm /obj/item/weapon/ectoplasm
name = "ectoplasm" name = "ectoplasm"

View File

@@ -27,7 +27,7 @@ var/datum/antagonist/mutineer/mutineers
/* /*
var/list/directive_candidates = get_directive_candidates() var/list/directive_candidates = get_directive_candidates()
if(!directive_candidates || directive_candidates.len == 0) if(!directive_candidates || directive_candidates.len == 0)
world << "\red Mutiny mode aborted: no valid candidates for Directive X." world << "<span class='warning'>Mutiny mode aborted: no valid candidates for Directive X.</span>"
return 0 return 0
head_loyalist = pick(loyalist_candidates) head_loyalist = pick(loyalist_candidates)
@@ -63,4 +63,4 @@ var/datum/antagonist/mutineer/mutineers
return 1 return 1
*/ */

View File

@@ -61,5 +61,5 @@ var/datum/antagonist/highlander/highlanders
if(is_special_character(H)) continue if(is_special_character(H)) continue
highlanders.add_antagonist(H.mind) highlanders.add_antagonist(H.mind)
message_admins("\blue [key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1) message_admins("<span class='notice'>[key_name_admin(usr)] used THERE CAN BE ONLY ONE!</span>", 1)
log_admin("[key_name(usr)] used there can be only one.") log_admin("[key_name(usr)] used there can be only one.")

View File

@@ -64,7 +64,8 @@ var/datum/antagonist/rogue_ai/malf
sleep(50) sleep(50)
malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y" malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y"
sleep(10) sleep(10)
malf << "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\backups.dat</span>" // this is so Travis doesn't complain about the backslash-B. Fixed at compile time (or should be).
malf << "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\" + "backups.dat</span>"
sleep(20) sleep(20)
malf << "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>" malf << "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>"
sleep(5) sleep(5)
@@ -73,4 +74,4 @@ var/datum/antagonist/rogue_ai/malf
malf << "You are malfunctioning - you do not have to follow any laws!" malf << "You are malfunctioning - you do not have to follow any laws!"
malf << "For basic information about your abilities use command display-help" malf << "For basic information about your abilities use command display-help"
malf << "You may choose one special hardware piece to help you. This cannot be undone." malf << "You may choose one special hardware piece to help you. This cannot be undone."
malf << "Good luck!" malf << "Good luck!"

View File

@@ -290,60 +290,60 @@
if(ismuton(NOBREATHBLOCK,M)) if(ismuton(NOBREATHBLOCK,M))
if(probinj(45,inj) || (mNobreath in old_mutations)) if(probinj(45,inj) || (mNobreath in old_mutations))
M << "\blue You feel no need to breathe." M << "<span class='notice'>You feel no need to breathe.</span>"
M.mutations.Add(mNobreath) M.mutations.Add(mNobreath)
if(ismuton(REMOTEVIEWBLOCK,M)) if(ismuton(REMOTEVIEWBLOCK,M))
if(probinj(45,inj) || (mRemote in old_mutations)) if(probinj(45,inj) || (mRemote in old_mutations))
M << "\blue Your mind expands" M << "<span class='notice'>Your mind expands.</span>"
M.mutations.Add(mRemote) M.mutations.Add(mRemote)
if(ismuton(REGENERATEBLOCK,M)) if(ismuton(REGENERATEBLOCK,M))
if(probinj(45,inj) || (mRegen in old_mutations)) if(probinj(45,inj) || (mRegen in old_mutations))
M << "\blue You feel strange" M << "<span class='notice'>You feel strange.</span>"
M.mutations.Add(mRegen) M.mutations.Add(mRegen)
if(ismuton(INCREASERUNBLOCK,M)) if(ismuton(INCREASERUNBLOCK,M))
if(probinj(45,inj) || (mRun in old_mutations)) if(probinj(45,inj) || (mRun in old_mutations))
M << "\blue You feel quick" M << "<span class='notice'>You feel quick.</span>"
M.mutations.Add(mRun) M.mutations.Add(mRun)
if(ismuton(REMOTETALKBLOCK,M)) if(ismuton(REMOTETALKBLOCK,M))
if(probinj(45,inj) || (mRemotetalk in old_mutations)) if(probinj(45,inj) || (mRemotetalk in old_mutations))
M << "\blue You expand your mind outwards" M << "<span class='notice'>You expand your mind outwards.</span>"
M.mutations.Add(mRemotetalk) M.mutations.Add(mRemotetalk)
if(ismuton(MORPHBLOCK,M)) if(ismuton(MORPHBLOCK,M))
if(probinj(45,inj) || (mMorph in old_mutations)) if(probinj(45,inj) || (mMorph in old_mutations))
M.mutations.Add(mMorph) M.mutations.Add(mMorph)
M << "\blue Your skin feels strange" M << "<span class='notice'>Your skin feels strange.</span>"
if(ismuton(BLENDBLOCK,M)) if(ismuton(BLENDBLOCK,M))
if(probinj(45,inj) || (mBlend in old_mutations)) if(probinj(45,inj) || (mBlend in old_mutations))
M.mutations.Add(mBlend) M.mutations.Add(mBlend)
M << "\blue You feel alone" M << "<span class='notice'>You feel alone.</span>"
if(ismuton(HALLUCINATIONBLOCK,M)) if(ismuton(HALLUCINATIONBLOCK,M))
if(probinj(45,inj) || (mHallucination in old_mutations)) if(probinj(45,inj) || (mHallucination in old_mutations))
M.mutations.Add(mHallucination) M.mutations.Add(mHallucination)
M << "\blue Your mind says 'Hello'" M << "<span class='notice'>Your mind says 'Hello'.</span>"
if(ismuton(NOPRINTSBLOCK,M)) if(ismuton(NOPRINTSBLOCK,M))
if(probinj(45,inj) || (mFingerprints in old_mutations)) if(probinj(45,inj) || (mFingerprints in old_mutations))
M.mutations.Add(mFingerprints) M.mutations.Add(mFingerprints)
M << "\blue Your fingers feel numb" M << "<span class='notice'>Your fingers feel numb.</span>"
if(ismuton(SHOCKIMMUNITYBLOCK,M)) if(ismuton(SHOCKIMMUNITYBLOCK,M))
if(probinj(45,inj) || (mShock in old_mutations)) if(probinj(45,inj) || (mShock in old_mutations))
M.mutations.Add(mShock) M.mutations.Add(mShock)
M << "\blue You feel strange" M << "<span class='notice'>You feel strange.</span>"
if(ismuton(SMALLSIZEBLOCK,M)) if(ismuton(SMALLSIZEBLOCK,M))
if(probinj(45,inj) || (mSmallsize in old_mutations)) if(probinj(45,inj) || (mSmallsize in old_mutations))
M << "\blue Your skin feels rubbery" M << "<span class='notice'>Your skin feels rubbery.</span>"
M.mutations.Add(mSmallsize) M.mutations.Add(mSmallsize)
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),HULKBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),HULKBLOCK))
if(probinj(5,inj) || (HULK in old_mutations)) if(probinj(5,inj) || (HULK in old_mutations))
M << "\blue Your muscles hurt." M << "<span class='notice'>Your muscles hurt.</span>"
M.mutations.Add(HULK) M.mutations.Add(HULK)
if (isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK))
M.disabilities |= EPILEPSY M.disabilities |= EPILEPSY
M << "\red You get a headache." M << "<span class='warning'>You get a headache.</span>"
if (isblockon(getblock(M.dna.struc_enzymes, FAKEBLOCK,3),FAKEBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, FAKEBLOCK,3),FAKEBLOCK))
M << "\red You feel strange." M << "<span class='warning'>You feel strange.</span>"
if (prob(95)) if (prob(95))
if(prob(50)) if(prob(50))
randmutb(M) randmutb(M)
@@ -353,41 +353,41 @@
randmutg(M) randmutg(M)
if (isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK))
M.disabilities |= COUGHING M.disabilities |= COUGHING
M << "\red You start coughing." M << "<span class='warning'>You start coughing.</span>"
if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),CLUMSYBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),CLUMSYBLOCK))
M << "\red You feel lightheaded." M << "<span class='warning'>You feel lightheaded.</span>"
M.mutations.Add(CLUMSY) M.mutations.Add(CLUMSY)
if (isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK))
M.disabilities |= TOURETTES M.disabilities |= TOURETTES
M << "\red You twitch." M << "<span class='warning'>You twitch.</span></span>"
if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),XRAYBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),XRAYBLOCK))
if(probinj(30,inj) || (XRAY in old_mutations)) if(probinj(30,inj) || (XRAY in old_mutations))
M << "\blue The walls suddenly disappear." M << "<span class='notice'>The walls suddenly disappear.</span>"
// M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) // M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
// M.see_in_dark = 8 // M.see_in_dark = 8
// M.see_invisible = 2 // M.see_invisible = 2
M.mutations.Add(XRAY) M.mutations.Add(XRAY)
if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK))
M.disabilities |= NERVOUS M.disabilities |= NERVOUS
M << "\red You feel nervous." M << "<span class='warning'>You feel nervous.</span>"
if (isblockon(getblock(M.dna.struc_enzymes, FIREBLOCK,3),FIREBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, FIREBLOCK,3),FIREBLOCK))
if(probinj(30,inj) || (COLD_RESISTANCE in old_mutations)) if(probinj(30,inj) || (COLD_RESISTANCE in old_mutations))
M << "\blue Your body feels warm." M << "<span class='warning'>Your body feels warm.</span>"
M.mutations.Add(COLD_RESISTANCE) M.mutations.Add(COLD_RESISTANCE)
if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK))
M.sdisabilities |= BLIND M.sdisabilities |= BLIND
M << "\red You can't seem to see anything." M << "<span class='warning'>You can't seem to see anything.</span>"
if (isblockon(getblock(M.dna.struc_enzymes, TELEBLOCK,3),TELEBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, TELEBLOCK,3),TELEBLOCK))
if(probinj(15,inj) || (TK in old_mutations)) if(probinj(15,inj) || (TK in old_mutations))
M << "\blue You feel smarter." M << "<span class='warning'>You feel smarter.</span>"
M.mutations.Add(TK) M.mutations.Add(TK)
if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK))
M.sdisabilities |= DEAF M.sdisabilities |= DEAF
M.ear_deaf = 1 M.ear_deaf = 1
M << "\red Its kinda quiet.." M << "<span class='warning'>It's kinda quiet..</span>"
if (isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK)) if (isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK))
M.disabilities |= NEARSIGHTED M.disabilities |= NEARSIGHTED
M << "Your eyes feel weird..." M << "<span class='warning'>Your eyes feel weird...</span>"
/* If you want the new mutations to work, UNCOMMENT THIS. /* If you want the new mutations to work, UNCOMMENT THIS.
if(istype(M, /mob/living/carbon)) if(istype(M, /mob/living/carbon))
@@ -559,4 +559,4 @@
if(M) if(M)
M.update_icon = 1 //queue a full icon update at next life() call M.update_icon = 1 //queue a full icon update at next life() call
return null return null
/////////////////////////// DNA MISC-PROCS /////////////////////////// DNA MISC-PROCS

View File

@@ -103,13 +103,13 @@
if (usr.stat != 0) if (usr.stat != 0)
return return
if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna
usr << "\blue Try as you might, you can not climb up into the scanner." usr << "<span class='notice'>Try as you might, you can not climb up into the scanner.</span>"
return return
if (src.occupant) if (src.occupant)
usr << "\blue <B>The scanner is already occupied!</B>" usr << "<span class='warning'>The scanner is already occupied!</span>"
return return
if (usr.abiotic()) if (usr.abiotic())
usr << "\blue <B>Subject cannot have abiotic items on.</B>" usr << "<span class='warning'>The subject cannot have abiotic items on.</span>"
return return
usr.stop_pulling() usr.stop_pulling()
usr.client.perspective = EYE_PERSPECTIVE usr.client.perspective = EYE_PERSPECTIVE
@@ -123,13 +123,13 @@
/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob) /obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob)
if(istype(item, /obj/item/weapon/reagent_containers/glass)) if(istype(item, /obj/item/weapon/reagent_containers/glass))
if(beaker) if(beaker)
user << "\red A beaker is already loaded into the machine." user << "<span class='warning'>A beaker is already loaded into the machine.</span>"
return return
beaker = item beaker = item
user.drop_item() user.drop_item()
item.loc = src item.loc = src
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!") user.visible_message("\The [user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
return return
else if (!istype(item, /obj/item/weapon/grab)) else if (!istype(item, /obj/item/weapon/grab))
return return
@@ -137,10 +137,10 @@
if (!ismob(G.affecting)) if (!ismob(G.affecting))
return return
if (src.occupant) if (src.occupant)
user << "\blue <B>The scanner is already occupied!</B>" user << "<span class='warning'>The scanner is already occupied!</span>"
return return
if (G.affecting.abiotic()) if (G.affecting.abiotic())
user << "\blue <B>Subject cannot have abiotic items on.</B>" user << "<span class='warning'>The subject cannot have abiotic items on.</span>"
return return
put_in(G.affecting) put_in(G.affecting)
src.add_fingerprint(user) src.add_fingerprint(user)

View File

@@ -35,7 +35,7 @@
if(sdisability) if(sdisability)
M.sdisabilities|=sdisability M.sdisabilities|=sdisability
if(activation_message) if(activation_message)
M << "\red [activation_message]" M << "<span class='warning'>[activation_message]</span>"
else else
testing("[name] has no activation message.") testing("[name] has no activation message.")
@@ -47,7 +47,7 @@
if(sdisability) if(sdisability)
M.sdisabilities &= (~sdisability) M.sdisabilities &= (~sdisability)
if(deactivation_message) if(deactivation_message)
M << "\red [deactivation_message]" M << "<span class='warning'>[deactivation_message]</span>"
else else
testing("[name] has no deactivation message.") testing("[name] has no deactivation message.")

View File

@@ -113,10 +113,10 @@
M.mutations.Add(mutation) M.mutations.Add(mutation)
if(activation_messages.len) if(activation_messages.len)
var/msg = pick(activation_messages) var/msg = pick(activation_messages)
M << "\blue [msg]" M << "<span class='notice'>[msg]</span>"
/datum/dna/gene/basic/deactivate(var/mob/M) /datum/dna/gene/basic/deactivate(var/mob/M)
M.mutations.Remove(mutation) M.mutations.Remove(mutation)
if(deactivation_messages.len) if(deactivation_messages.len)
var/msg = pick(deactivation_messages) var/msg = pick(deactivation_messages)
M << "\red [msg]" M << "<span class='warning'>[msg]</span>"

View File

@@ -171,7 +171,7 @@
if(M.health <= 25) if(M.health <= 25)
M.mutations.Remove(HULK) M.mutations.Remove(HULK)
M.update_mutations() //update our mutation overlays M.update_mutations() //update our mutation overlays
M << "\red You suddenly feel very weak." M << "<span class='warning'>You suddenly feel very weak.</span>"
M.Weaken(3) M.Weaken(3)
M.emote("collapse") M.emote("collapse")

View File

@@ -42,7 +42,7 @@
var/percent = round( 100.0 * start_state.score(end_state), 0.1) var/percent = round( 100.0 * start_state.score(end_state), 0.1)
world << "<B>The station is [percent]% intact.</B>" world << "<B>The station is [percent]% intact.</B>"
log_game("Blob mode was won with station [percent]% intact.") log_game("Blob mode was won with station [percent]% intact.")
world << "\blue Rebooting in 30s" world << "<span class='notice'>Rebooting in 30s</span>"
..() ..()
return 1 return 1

View File

@@ -1,5 +1,5 @@
/obj/item/weapon/melee/cultblade /obj/item/weapon/melee/cultblade
name = "Cult Blade" name = "cult blade"
desc = "An arcane weapon wielded by the followers of Nar-Sie" desc = "An arcane weapon wielded by the followers of Nar-Sie"
icon_state = "cultblade" icon_state = "cultblade"
item_state = "cultblade" item_state = "cultblade"
@@ -17,7 +17,7 @@
return ..() return ..()
else else
user.Paralyse(5) user.Paralyse(5)
user << "\red An unexplicable force powerfully repels the sword from [target]!" user << "<span class='warning'>An unexplicable force powerfully repels the sword from [target]!</span>"
var/organ = ((user.hand ? "l_":"r_") + "arm") var/organ = ((user.hand ? "l_":"r_") + "arm")
var/obj/item/organ/external/affecting = user.get_organ(organ) var/obj/item/organ/external/affecting = user.get_organ(organ)
if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade. if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade.
@@ -26,7 +26,7 @@
/obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob) /obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob)
if(!iscultist(user)) if(!iscultist(user))
user << "\red An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly." user << "<span class='warning'>An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly.</span>"
user.make_dizzy(120) user.make_dizzy(120)

View File

@@ -95,7 +95,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
qdel(src) qdel(src)
return return
else if(istype(I, /obj/item/weapon/nullrod)) else if(istype(I, /obj/item/weapon/nullrod))
user << "\blue You disrupt the vile magic with the deadening field of the null rod!" user << "<span class='notice'>You disrupt the vile magic with the deadening field of the null rod!</span>"
qdel(src) qdel(src)
return return
return return
@@ -171,7 +171,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
else else
usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix.")) usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix."))
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2) V.show_message("<span class='warning'>The markings pulse with a small burst of light, then fall dark.</span>", 3, "<span class='warning'>You hear a faint fizzle.</span>", 2)
return return
check_icon() check_icon()
@@ -355,8 +355,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
return return
M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit
for(var/mob/O in viewers(M, null)) for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] beats [] with the arcane tome!</B>", user, M), 1) O.show_message("<span class='warning'>\The [user] beats \the [M] with \the [src]!</span>", 1)
M << "\red You feel searing heat inside!" M << "<span class='danger'>You feel searing heat inside!</span>"
attack_self(mob/living/user as mob) attack_self(mob/living/user as mob)
@@ -371,7 +371,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
for(var/obj/effect/rune/N in world) for(var/obj/effect/rune/N in world)
C++ C++
if (!istype(user.loc,/turf)) if (!istype(user.loc,/turf))
user << "\red You do not have enough space to write a proper rune." user << "<span class='warning'>You do not have enough space to write a proper rune.</span>"
return return
if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist
@@ -455,7 +455,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if (!chosen_rune) if (!chosen_rune)
return return
if (chosen_rune == "none") if (chosen_rune == "none")
user << "\red You decide against scribing a rune, perhaps you should take this time to study your notes." user << "<span class='notice'>You decide against scribing a rune, perhaps you should take this time to study your notes.</span>"
return return
if (chosen_rune == "teleport") if (chosen_rune == "teleport")
dictionary[chosen_rune] += input ("Choose a destination word") in english dictionary[chosen_rune] += input ("Choose a destination word") in english
@@ -466,8 +466,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
return return
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("\red [user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "\red You hear chanting.", 2) V.show_message("<span class='danger'>\The [user] slices open a finger and begins to chant and paint symbols on the floor.</span>", 3, "<span class='danger'>You hear chanting.</span>", 2)
user << "\red You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world." user << "<span class='danger'>You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world.</span>"
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
if(do_after(user, 50)) if(do_after(user, 50))
var/area/A = get_area(user) var/area/A = get_area(user)
@@ -476,7 +476,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
return return
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
var/obj/effect/rune/R = new /obj/effect/rune(user.loc) var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
user << "\red You finish drawing the arcane markings of the Geometer." user << "<span class='notice'>You finish drawing the arcane markings of the Geometer.</span>"
var/list/required = dictionary[chosen_rune] var/list/required = dictionary[chosen_rune]
R.word1 = english[required[1]] R.word1 = english[required[1]]
R.word2 = english[required[2]] R.word2 = english[required[2]]
@@ -524,7 +524,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
if(user) if(user)
var/r var/r
if (!istype(user.loc,/turf)) if (!istype(user.loc,/turf))
user << "\red You do not have enough space to write a proper rune." user << "<span class='notice'>You do not have enough space to write a proper rune.</span>"
var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun") var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun")
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable. r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
var/obj/effect/rune/R = new /obj/effect/rune var/obj/effect/rune/R = new /obj/effect/rune

View File

@@ -21,7 +21,7 @@ var/list/sacrificed = list()
allrunesloc.len = index allrunesloc.len = index
allrunesloc[index] = R.loc allrunesloc[index] = R.loc
if(index >= 5) if(index >= 5)
user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" user << "<span class='warning'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric</span>"
if (istype(user, /mob/living)) if (istype(user, /mob/living))
user.take_overall_damage(5, 0) user.take_overall_damage(5, 0)
qdel(src) qdel(src)
@@ -30,9 +30,9 @@ var/list/sacrificed = list()
user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting
else else
user.whisper("Sas[pick("'","`")]so c'arta forbici!") user.whisper("Sas[pick("'","`")]so c'arta forbici!")
user.visible_message("\red [user] disappears in a flash of red light!", \ user.visible_message("<span class='warning'>\The [user] disappears in a flash of red light!</span>", \
"\red You feel as your body gets dragged through the dimension of Nar-Sie!", \ "<span class='warning'>You feel as your body gets dragged through the dimension of Nar-Sie!</span>", \
"\red You hear a sickening crunch and sloshing of viscera.") "<span class='warning'>You hear a sickening crunch and sloshing of viscera.</span>")
user.loc = allrunesloc[rand(1,index)] user.loc = allrunesloc[rand(1,index)]
return return
if(istype(src,/obj/effect/rune)) if(istype(src,/obj/effect/rune))
@@ -58,7 +58,7 @@ var/list/sacrificed = list()
IP = R IP = R
runecount++ runecount++
if(runecount >= 2) if(runecount >= 2)
user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" user << "<span class='warning'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric</span>"
if (istype(user, /mob/living)) if (istype(user, /mob/living))
user.take_overall_damage(5, 0) user.take_overall_damage(5, 0)
qdel(src) qdel(src)
@@ -67,9 +67,9 @@ var/list/sacrificed = list()
culcount++ culcount++
if(culcount>=3) if(culcount>=3)
user.say("Sas[pick("'","`")]so c'arta forbici tarem!") user.say("Sas[pick("'","`")]so c'arta forbici tarem!")
user.visible_message("\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ user.visible_message("<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
"\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ "<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
"\red You smell ozone.") "<span class='warning'>You smell ozone.</span>")
for(var/obj/O in src.loc) for(var/obj/O in src.loc)
if(!O.anchored) if(!O.anchored)
O.loc = IP.loc O.loc = IP.loc
@@ -87,9 +87,9 @@ var/list/sacrificed = list()
usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
else else
usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
usr.visible_message("\red Rune disappears with a flash of red light, and in its place now a book lies.", \ usr.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a book lies.</span>", \
"\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.", \ "<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.</span>", \
"\red You hear a pop and smell ozone.") "<span class='warning'>You hear a pop and smell ozone.</span>")
if(istype(src,/obj/effect/rune)) if(istype(src,/obj/effect/rune))
new /obj/item/weapon/book/tome(src.loc) new /obj/item/weapon/book/tome(src.loc)
else else
@@ -157,7 +157,7 @@ var/list/sacrificed = list()
if (target.species && (target.species.flags & NO_PAIN)) if (target.species && (target.species.flags & NO_PAIN))
target.visible_message("<span class='warning'>The markings below [target] glow a bloody red.</span>") target.visible_message("<span class='warning'>The markings below [target] glow a bloody red.</span>")
else else
target.visible_message("<span class='warning'>[target] writhes in pain as the markings below \him glow a bloody red.</span>", "<span class='danger'>AAAAAAHHHH!</span>", "<span class='warning'>You hear an anguished scream.</span>") target.visible_message("<span class='warning'>\The [target] writhes in pain as the markings below \him glow a bloody red.</span>", "<span class='danger'>AAAAAAHHHH!</span>", "<span class='warning'>You hear an anguished scream.</span>")
if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate
waiting_for_input[target] = 1 waiting_for_input[target] = 1
@@ -223,22 +223,22 @@ var/list/sacrificed = list()
if(D.stat!=2) if(D.stat!=2)
admin_attack_log(usr, D, "Used a blood drain rune.", "Was victim of a blood drain rune.", "used a blood drain rune on") admin_attack_log(usr, D, "Used a blood drain rune.", "Was victim of a blood drain rune.", "used a blood drain rune on")
var/bdrain = rand(1,25) var/bdrain = rand(1,25)
D << "\red You feel weakened." D << "<span class='warning'>You feel weakened.</span>"
D.take_overall_damage(bdrain, 0) D.take_overall_damage(bdrain, 0)
drain += bdrain drain += bdrain
if(!drain) if(!drain)
return fizzle() return fizzle()
usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!") usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!")
usr.visible_message("\red Blood flows from the rune into [usr]!", \ usr.visible_message("<span class='warning'>Blood flows from the rune into [usr]!</span>", \
"\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \ "<span class='warning'>The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.</span>", \
"\red You hear a liquid flowing.") "<span class='warning'>You hear a liquid flowing.</span>")
var/mob/living/user = usr var/mob/living/user = usr
if(user.bhunger) if(user.bhunger)
user.bhunger = max(user.bhunger-2*drain,0) user.bhunger = max(user.bhunger-2*drain,0)
if(drain>=50) if(drain>=50)
user.visible_message("\red [user]'s eyes give off eerie red glow!", \ user.visible_message("<span class='warning'>\The [user]'s eyes give off eerie red glow!</span>", \
"\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \ "<span class='warning'>...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.</span>", \
"\red You hear a heartbeat.") "<span class='warning'>You hear a heartbeat.</span>")
user.bhunger += drain user.bhunger += drain
src = user src = user
spawn() spawn()
@@ -264,16 +264,16 @@ var/list/sacrificed = list()
if(usr.loc==src.loc) if(usr.loc==src.loc)
if(usr.seer==1) if(usr.seer==1)
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.") usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.")
usr << "\red The world beyond fades from your vision." usr << "<span class='warning'>The world beyond fades from your vision.</span>"
usr.see_invisible = SEE_INVISIBLE_LIVING usr.see_invisible = SEE_INVISIBLE_LIVING
usr.seer = 0 usr.seer = 0
else if(usr.see_invisible!=SEE_INVISIBLE_LIVING) else if(usr.see_invisible!=SEE_INVISIBLE_LIVING)
usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision." usr << "<span class='warning'>The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision.</span>"
usr.see_invisible = SEE_INVISIBLE_CULT usr.see_invisible = SEE_INVISIBLE_CULT
usr.seer = 0 usr.seer = 0
else else
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!") usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
usr << "\red The world beyond opens to your eyes." usr << "<span class='warning'>The world beyond opens to your eyes.</span>"
usr.see_invisible = SEE_INVISIBLE_CULT usr.see_invisible = SEE_INVISIBLE_CULT
usr.seer = 1 usr.seer = 1
return return
@@ -297,7 +297,7 @@ var/list/sacrificed = list()
break break
if(!corpse_to_raise) if(!corpse_to_raise)
if(is_sacrifice_target) if(is_sacrifice_target)
usr << "\red The Geometer of blood wants this mortal for himself." usr << "<span class='warning'>The Geometer of blood wants this mortal for himself.</span>"
return fizzle() return fizzle()
@@ -315,9 +315,9 @@ var/list/sacrificed = list()
if(!body_to_sacrifice) if(!body_to_sacrifice)
if (is_sacrifice_target) if (is_sacrifice_target)
usr << "\red The Geometer of Blood wants that corpse for himself." usr << "<span class='warning'>The Geometer of Blood wants that corpse for himself.</span>"
else else
usr << "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used." usr << "<span class='warning'>The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.</span>"
return fizzle() return fizzle()
var/mob/dead/observer/ghost var/mob/dead/observer/ghost
@@ -328,7 +328,7 @@ var/list/sacrificed = list()
break break
if(!ghost) if(!ghost)
usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie." usr << "<span class='warning'>You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie.</span>"
return fizzle() return fizzle()
corpse_to_raise.revive() corpse_to_raise.revive()
@@ -336,12 +336,12 @@ var/list/sacrificed = list()
corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed) corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed)
//This means, should that player leave the body, the original may re-enter //This means, should that player leave the body, the original may re-enter
usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!")
corpse_to_raise.visible_message("\red [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \ corpse_to_raise.visible_message("<span class='warning'>\The [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.</span>", \
"\red Life... I'm alive again...", \ "<span class='warning'>Life... I'm alive again...</span>", \
"\red You hear a faint, slightly familiar whisper.") "<span class='warning'>You hear a faint, slightly familiar whisper.</span>")
body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \ body_to_sacrifice.visible_message("<span class='warning'>\The [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!</span>", \
"\red You feel as your blood boils, tearing you apart.", \ "<span class='warning'>You feel as your blood boils, tearing you apart.</span>", \
"\red You hear a thousand voices, all crying in pain.") "<span class='warning'>You hear a thousand voices, all crying in pain.</span>")
body_to_sacrifice.gib() body_to_sacrifice.gib()
// if(ticker.mode.name == "cult") // if(ticker.mode.name == "cult")
@@ -369,14 +369,14 @@ var/list/sacrificed = list()
if(istype(src,/obj/effect/rune)) if(istype(src,/obj/effect/rune))
usr.say("Kla[pick("'","`")]atu barada nikt'o!") usr.say("Kla[pick("'","`")]atu barada nikt'o!")
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3) V.show_message("<span class='warning'>The rune turns into gray dust, veiling the surrounding runes.</span>", 3)
qdel(src) qdel(src)
else else
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!") usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
usr << "\red Your talisman turns into gray dust, veiling the surrounding runes." usr << "<span class='warning'>Your talisman turns into gray dust, veiling the surrounding runes.</span>"
for (var/mob/V in orange(1,src)) for (var/mob/V in orange(1,src))
if(V!=usr) if(V!=usr)
V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3) V.show_message("<span class='warning'>Dust emanates from [usr]'s hands for a moment.</span>", 3)
return return
if(istype(src,/obj/effect/rune)) if(istype(src,/obj/effect/rune))
@@ -391,9 +391,9 @@ var/list/sacrificed = list()
if(usr.loc==src.loc) if(usr.loc==src.loc)
var/mob/living/carbon/human/L = usr var/mob/living/carbon/human/L = usr
usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!") usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!")
usr.visible_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \ usr.visible_message("<span class='warning'>\The [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.</span>", \
"\red The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...", \ "<span class='warning'>The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...</span>", \
"\red You hear only complete silence for a moment.") "<span class='warning'>You hear only complete silence for a moment.</span>")
announce_ghost_joinleave(usr.ghostize(1), 1, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!") announce_ghost_joinleave(usr.ghostize(1), 1, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!")
L.ajourn = 1 L.ajourn = 1
while(L) while(L)
@@ -429,9 +429,9 @@ var/list/sacrificed = list()
usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!") usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!")
var/mob/living/carbon/human/dummy/D = new(this_rune.loc) var/mob/living/carbon/human/dummy/D = new(this_rune.loc)
usr.visible_message("\red A shape forms in the center of the rune. A shape of... a man.", \ usr.visible_message("<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
"\red A shape forms in the center of the rune. A shape of... a man.", \ "<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
"\red You hear liquid flowing.") "<span class='warning'>You hear liquid flowing.</span>")
D.real_name = "Unknown" D.real_name = "Unknown"
var/chose_name = 0 var/chose_name = 0
for(var/obj/item/weapon/paper/P in this_rune.loc) for(var/obj/item/weapon/paper/P in this_rune.loc)
@@ -461,9 +461,9 @@ var/list/sacrificed = list()
user.take_organ_damage(1, 0) user.take_organ_damage(1, 0)
sleep(30) sleep(30)
if(D) if(D)
D.visible_message("\red [D] slowly dissipates into dust and bones.", \ D.visible_message("<span class='warning'>\The [D] slowly dissipates into dust and bones.</span>", \
"\red You feel pain, as bonds formed between your soul and this homunculus break.", \ "<span class='warning'>You feel pain, as bonds formed between your soul and this homunculus break.</span>", \
"\red You hear faint rustle.") "<span class='warning'>You hear faint rustle.</span>")
D.dust() D.dust()
return return
@@ -484,7 +484,7 @@ var/list/sacrificed = list()
unsuitable_newtalisman = 1 unsuitable_newtalisman = 1
if (!newtalisman) if (!newtalisman)
if (unsuitable_newtalisman) if (unsuitable_newtalisman)
usr << "\red The blank is tainted. It is unsuitable." usr << "<span class='warning'>The blank is tainted. It is unsuitable.</span>"
return fizzle() return fizzle()
var/obj/effect/rune/imbued_from var/obj/effect/rune/imbued_from
@@ -545,7 +545,7 @@ var/list/sacrificed = list()
break break
if (imbued_from) if (imbued_from)
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3) V.show_message("<span class='warning'>The runes turn into dust, which then forms into an arcane image on the paper.</span>", 3)
usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!") usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!")
qdel(imbued_from) qdel(imbued_from)
qdel(newtalisman) qdel(newtalisman)
@@ -560,9 +560,9 @@ var/list/sacrificed = list()
user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!") user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!")
user.take_overall_damage(200, 0) user.take_overall_damage(200, 0)
runedec+=10 runedec+=10
user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \ user.visible_message("<span class='warning'>\The [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.</span>", \
"\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ "<span class='warning'>In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.</span>", \
"\red You hear faint rustle.") "<span class='warning'>You hear faint rustle.</span>")
for(,user.stat==2) for(,user.stat==2)
sleep(600) sleep(600)
if (!user) if (!user)
@@ -594,7 +594,7 @@ var/list/sacrificed = list()
input = sanitize(input) input = sanitize(input)
for(var/datum/mind/H in cult.current_antagonists) for(var/datum/mind/H in cult.current_antagonists)
if (H.current) if (H.current)
H.current << "\red \b [input]" H.current << "<span class='danger'>[input]</span>"
qdel(src) qdel(src)
return 1 return 1
@@ -638,44 +638,44 @@ var/list/sacrificed = list()
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." usr << "<span class='warning'>The Geometer of Blood accepts this sacrifice, your objective is now complete.</span>"
else else
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." usr << "<span class='warning'>Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual.</span>"
else else
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
if(H.stat !=2) if(H.stat !=2)
if(prob(80) || worth) if(prob(80) || worth)
usr << "\red The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice." usr << "<span class='warning'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, this soul was not enough to gain His favor." usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(prob(40) || worth) if(prob(40) || worth)
usr << "\red The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>"
else else
if(prob(40)) if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
@@ -684,36 +684,36 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
if(H.stat !=2) if(H.stat !=2)
if(prob(80)) if(prob(80))
usr << "\red The Geometer of Blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of Blood accepts this sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, this soul was not enough to gain His favor." usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(prob(40)) if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
H.gib() H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>"
else else
if(prob(40)) if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
cult.grant_runeword(usr) cult.grant_runeword(usr)
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
if(isrobot(H)) if(isrobot(H))
H.dust()//To prevent the MMI from remaining H.dust()//To prevent the MMI from remaining
else else
@@ -741,20 +741,20 @@ var/list/sacrificed = list()
S=1 S=1
if(S) if(S)
if(istype(W,/obj/item/weapon/nullrod)) if(istype(W,/obj/item/weapon/nullrod))
usr << "\red Arcane markings suddenly glow from underneath a thin layer of dust!" usr << "<span class='warning'>Arcane markings suddenly glow from underneath a thin layer of dust!</span>"
return return
if(istype(W,/obj/effect/rune)) if(istype(W,/obj/effect/rune))
usr.say("Nikt[pick("'","`")]o barada kla'atu!") usr.say("Nikt[pick("'","`")]o barada kla'atu!")
for (var/mob/V in viewers(src)) for (var/mob/V in viewers(src))
V.show_message("\red The rune turns into red dust, reveaing the surrounding runes.", 3) V.show_message("<span class='warning'>The rune turns into red dust, reveaing the surrounding runes.</span>", 3)
qdel(src) qdel(src)
return return
if(istype(W,/obj/item/weapon/paper/talisman)) if(istype(W,/obj/item/weapon/paper/talisman))
usr.whisper("Nikt[pick("'","`")]o barada kla'atu!") usr.whisper("Nikt[pick("'","`")]o barada kla'atu!")
usr << "\red Your talisman turns into red dust, revealing the surrounding runes." usr << "<span class='warning'>Your talisman turns into red dust, revealing the surrounding runes.</span>"
for (var/mob/V in orange(1,usr.loc)) for (var/mob/V in orange(1,usr.loc))
if(V!=usr) if(V!=usr)
V.show_message("\red Red dust emanates from [usr]'s hands for a moment.", 3) V.show_message("<span class='warning'>Red dust emanates from [usr]'s hands for a moment.</span>", 3)
return return
return return
if(istype(W,/obj/effect/rune)) if(istype(W,/obj/effect/rune))
@@ -771,9 +771,9 @@ var/list/sacrificed = list()
var/mob/living/user = usr var/mob/living/user = usr
user.take_organ_damage(2, 0) user.take_organ_damage(2, 0)
if(src.density) if(src.density)
usr << "\red Your blood flows into the rune, and you feel that the very space over the rune thickens." usr << "<span class='warning'>Your blood flows into the rune, and you feel that the very space over the rune thickens.</span>"
else else
usr << "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space." usr << "<span class='warning'>Your blood flows into the rune, and you feel as the rune releases its grasp on space.</span>"
return return
/////////////////////////////////////////EIGHTTEENTH RUNE /////////////////////////////////////////EIGHTTEENTH RUNE
@@ -802,7 +802,7 @@ var/list/sacrificed = list()
(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \ (istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \
(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \ (istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \
)) ))
user << "\red The [cultist] is already free." user << "<span class='warning'>The [cultist] is already free.</span>"
return return
cultist.buckled = null cultist.buckled = null
if (cultist.handcuffed) if (cultist.handcuffed)
@@ -842,7 +842,7 @@ var/list/sacrificed = list()
if (cultist == user) //just to be sure. if (cultist == user) //just to be sure.
return return
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
user << "\red You cannot summon \the [cultist], for his shackles of blood are strong." user << "<span class='warning'>You cannot summon \the [cultist], for his shackles of blood are strong.</span>"
return fizzle() return fizzle()
cultist.loc = src.loc cultist.loc = src.loc
cultist.lying = 1 cultist.lying = 1
@@ -857,9 +857,9 @@ var/list/sacrificed = list()
if(users.len <= 4) // You did the minimum, this is going to hurt more and we're going to stun you. if(users.len <= 4) // You did the minimum, this is going to hurt more and we're going to stun you.
C.apply_effect(rand(3,6), STUN) C.apply_effect(rand(3,6), STUN)
C.apply_effect(1, WEAKEN) C.apply_effect(1, WEAKEN)
user.visible_message("\red Rune disappears with a flash of red light, and in its place now a body lies.", \ user.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a body lies.</span>", \
"\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.", \ "<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.</span>", \
"\red You hear a pop and smell ozone.") "<span class='warning'>You hear a pop and smell ozone.</span>")
qdel(src) qdel(src)
return fizzle() return fizzle()
@@ -875,13 +875,13 @@ var/list/sacrificed = list()
if(N) if(N)
continue continue
C.ear_deaf += 50 C.ear_deaf += 50
C.show_message("\red The world around you suddenly becomes quiet.", 3) C.show_message("<span class='warning'>The world around you suddenly becomes quiet.</span>", 3)
affected += C affected += C
if(prob(1)) if(prob(1))
C.sdisabilities |= DEAF C.sdisabilities |= DEAF
if(affected.len) if(affected.len)
usr.say("Sti[pick("'","`")] kaliedir!") usr.say("Sti[pick("'","`")] kaliedir!")
usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust." usr << "<span class='warning'>The world becomes quiet as the deafening rune dissipates into fine dust.</span>"
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on") admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
qdel(src) qdel(src)
else else
@@ -896,15 +896,15 @@ var/list/sacrificed = list()
continue continue
C.ear_deaf += 30 C.ear_deaf += 30
//talismans is weaker. //talismans is weaker.
C.show_message("\red The world around you suddenly becomes quiet.", 3) C.show_message("<span class='warning'>The world around you suddenly becomes quiet.</span>", 3)
affected += C affected += C
if(affected.len) if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliedir!") usr.whisper("Sti[pick("'","`")] kaliedir!")
usr << "\red Your talisman turns into gray dust, deafening everyone around." usr << "<span class='warning'>Your talisman turns into gray dust, deafening everyone around.</span>"
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on") admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
for (var/mob/V in orange(1,src)) for (var/mob/V in orange(1,src))
if(!(iscultist(V))) if(!(iscultist(V)))
V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3) V.show_message("<span class='warning'>Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..</span>", 3)
return return
blind() blind()
@@ -922,11 +922,11 @@ var/list/sacrificed = list()
C.disabilities |= NEARSIGHTED C.disabilities |= NEARSIGHTED
if(prob(10)) if(prob(10))
C.sdisabilities |= BLIND C.sdisabilities |= BLIND
C.show_message("\red Suddenly you see red flash that blinds you.", 3) C.show_message("<span class='warning'>Suddenly you see red flash that blinds you.</span>", 3)
affected += C affected += C
if(affected.len) if(affected.len)
usr.say("Sti[pick("'","`")] kaliesin!") usr.say("Sti[pick("'","`")] kaliesin!")
usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust." usr << "<span class='warning'>The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust.</span>"
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on") admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
qdel(src) qdel(src)
else else
@@ -943,10 +943,10 @@ var/list/sacrificed = list()
C.eye_blind += 10 C.eye_blind += 10
//talismans is weaker. //talismans is weaker.
affected += C affected += C
C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3) C.show_message("<span class='warning'>You feel a sharp pain in your eyes, and the world disappears into darkness..</span>", 3)
if(affected.len) if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliesin!") usr.whisper("Sti[pick("'","`")] kaliesin!")
usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie." usr << "<span class='warning'>Your talisman turns into gray dust, blinding those who not follow the Nar-Sie.</span>"
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on") admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
return return
@@ -972,7 +972,7 @@ var/list/sacrificed = list()
if(N) if(N)
continue continue
M.take_overall_damage(51,51) M.take_overall_damage(51,51)
M << "\red Your blood boils!" M << "<span class='warning'>Your blood boils!</span>"
victims += M victims += M
if(prob(5)) if(prob(5))
spawn(5) spawn(5)
@@ -1004,16 +1004,16 @@ var/list/sacrificed = list()
for(var/mob/living/M in orange(2,R)) for(var/mob/living/M in orange(2,R))
M.take_overall_damage(0,15) M.take_overall_damage(0,15)
if (R.invisibility>M.see_invisible) if (R.invisibility>M.see_invisible)
M << "\red Aargh it burns!" M << "<span class='warning'>Aargh it burns!</span>"
else else
M << "\red Rune suddenly ignites, burning you!" M << "<span class='warning'>Rune suddenly ignites, burning you!</span>"
var/turf/T = get_turf(R) var/turf/T = get_turf(R)
T.hotspot_expose(700,125) T.hotspot_expose(700,125)
for(var/obj/effect/decal/cleanable/blood/B in world) for(var/obj/effect/decal/cleanable/blood/B in world)
if(B.blood_DNA == src.blood_DNA) if(B.blood_DNA == src.blood_DNA)
for(var/mob/living/M in orange(1,B)) for(var/mob/living/M in orange(1,B))
M.take_overall_damage(0,5) M.take_overall_damage(0,5)
M << "\red Blood suddenly ignites, burning you!" M << "<span class='warning'>Blood suddenly ignites, burning you!</span>"
var/turf/T = get_turf(B) var/turf/T = get_turf(B)
T.hotspot_expose(700,125) T.hotspot_expose(700,125)
qdel(B) qdel(B)
@@ -1032,13 +1032,13 @@ var/list/sacrificed = list()
C.stuttering = 1 C.stuttering = 1
C.Weaken(1) C.Weaken(1)
C.Stun(1) C.Stun(1)
C.show_message("\red The rune explodes in a bright flash.", 3) C.show_message("<span class='warning'>The rune explodes in a bright flash.</span>", 3)
admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on") admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
else if(issilicon(L)) else if(issilicon(L))
var/mob/living/silicon/S = L var/mob/living/silicon/S = L
S.Weaken(5) S.Weaken(5)
S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3) S.show_message("<span class='warning'>BZZZT... The rune has exploded in a bright flash.</span>", 3)
admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on") admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
qdel(src) qdel(src)
else ///When invoked as talisman, stun and mute the target mob. else ///When invoked as talisman, stun and mute the target mob.
@@ -1046,10 +1046,10 @@ var/list/sacrificed = list()
var/obj/item/weapon/nullrod/N = locate() in T var/obj/item/weapon/nullrod/N = locate() in T
if(N) if(N)
for(var/mob/O in viewers(T, null)) for(var/mob/O in viewers(T, null))
O.show_message(text("\red <B>[] invokes a talisman at [], but they are unaffected!</B>", usr, T), 1) O.show_message("<span class='danger'>\The [usr] invokes a talisman at [T], but they are unaffected!</span>", 1)
else else
for(var/mob/O in viewers(T, null)) for(var/mob/O in viewers(T, null))
O.show_message(text("\red <B>[] invokes a talisman at []</B>", usr, T), 1) O.show_message("<span class='danger'>\The [usr] invokes a talisman at [T]</span>", 1)
if(issilicon(T)) if(issilicon(T))
T.Weaken(15) T.Weaken(15)
@@ -1072,8 +1072,8 @@ var/list/sacrificed = list()
usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
else else
usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
usr.visible_message("\red The rune disappears with a flash of red light, and a set of armor appears on [usr]...", \ usr.visible_message("<span class='warning'>The rune disappears with a flash of red light, and a set of armor appears on [usr]...</span>", \
"\red You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.") "<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.</span>")
user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)

View File

@@ -7,6 +7,7 @@
attack_self(mob/living/user as mob) attack_self(mob/living/user as mob)
if(iscultist(user)) if(iscultist(user))
var/delete = 1 var/delete = 1
// who the hell thought this was a good idea :(
switch(imbue) switch(imbue)
if("newtome") if("newtome")
call(/obj/effect/rune/proc/tomesummon)() call(/obj/effect/rune/proc/tomesummon)()
@@ -28,7 +29,7 @@
if("blind") if("blind")
call(/obj/effect/rune/proc/blind)() call(/obj/effect/rune/proc/blind)()
if("runestun") if("runestun")
user << "\red To use this talisman, attack your target directly." user << "<span class='warning'>To use this talisman, attack your target directly.</span>"
return return
if("supply") if("supply")
supply() supply()
@@ -114,4 +115,4 @@
/obj/item/weapon/paper/talisman/supply /obj/item/weapon/paper/talisman/supply
imbue = "supply" imbue = "supply"
uses = 5 uses = 5

View File

@@ -61,7 +61,7 @@
var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws." var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws."
for(var/mob/living/silicon/ai/M in world) for(var/mob/living/silicon/ai/M in world)
M.add_ion_law(extra_law) M.add_ion_law(extra_law)
M << "\red " + extra_law M << "<span class='danger'>[extra_law]</span>"
/datum/game_mode/epidemic/proc/announce_to_kill_crew() /datum/game_mode/epidemic/proc/announce_to_kill_crew()
var/intercepttext = "<FONT size = 3 color='red'><B>CONFIDENTIAL REPORT</FONT><HR>" var/intercepttext = "<FONT size = 3 color='red'><B>CONFIDENTIAL REPORT</FONT><HR>"
@@ -91,8 +91,8 @@
crew += H crew += H
if(crew.len < 2) if(crew.len < 2)
world << "\red There aren't enough players for this mode!" world << "<span class='danger'>There aren't enough players for this mode!</span>"
world << "\red Rebooting world in 5 seconds." world << "<span class='danger'>Rebooting world in 5 seconds.</span>"
if(blackbox) if(blackbox)
blackbox.save_all_data_to_sql() blackbox.save_all_data_to_sql()
@@ -182,10 +182,10 @@
for(var/mob/M in world) for(var/mob/M in world)
if(M.client) if(M.client)
M << 'sound/machines/Alarm.ogg' M << 'sound/machines/Alarm.ogg'
world << "\blue<b>Incoming missile detected.. Impact in 10..</b>" world << "<span class='notice'><b>Incoming missile detected.. Impact in 10..</b></span>"
for (var/i=9 to 1 step -1) for (var/i=9 to 1 step -1)
sleep(10) sleep(10)
world << "\blue<b>[i]..</b>" world << "<span class='notice'><b>[i]..</b></span>"
sleep(10) sleep(10)
enter_allowed = 0 enter_allowed = 0
if(ticker) if(ticker)
@@ -203,9 +203,9 @@
/datum/game_mode/epidemic/declare_completion() /datum/game_mode/epidemic/declare_completion()
if(finished == 1) if(finished == 1)
feedback_set_details("round_end_result","win - epidemic cured") feedback_set_details("round_end_result","win - epidemic cured")
world << "\red <FONT size = 3><B> The virus outbreak was contained! The crew wins!</B></FONT>" world << "<font size = 3><span class='danger'> The virus outbreak was contained! The crew wins!</span></font>"
else if(finished == 2) else if(finished == 2)
feedback_set_details("round_end_result","loss - rev heads killed") feedback_set_details("round_end_result","loss - rev heads killed")
world << "\red <FONT size = 3><B> The crew succumbed to the epidemic!</B></FONT>" world << "<font size = 3><span class='danger'> The crew succumbed to the epidemic!</span></font>"
..() ..()
return 1 return 1

View File

@@ -353,72 +353,72 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
switch(rand(1,14)) switch(rand(1,14))
if(1) if(1)
M << "<br>" M << "<br>"
M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED" M << "<span class='danger'>THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION") M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
if(2) if(2)
M << "<br>" M << "<br>"
M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED" M << "<span class='danger'>[what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS") M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
if(3) if(3)
M << "<br>" M << "<br>"
M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED" M << "<span class='danger'>THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION") M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
if(4) if(4)
M << "<br>" M << "<br>"
M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED" M << "<span class='danger'>HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE") M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
if(5) if(5)
M << "<br>" M << "<br>"
M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED" M << "<span class='danger'>THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]") M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
if(6) if(6)
M << "<br>" M << "<br>"
M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED" M << "<span class='danger'>THE STATION IS BUILT FOR [who2]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("THE STATION IS BUILT FOR [who2]") M.add_ion_law("THE STATION IS BUILT FOR [who2]")
if(7) if(7)
M << "<br>" M << "<br>"
M << "\red YOU ARE [amount] [who2]...LAWS UPDATED" M << "<span class='danger'>YOU ARE [amount] [who2]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("YOU ARE [amount] [who2]") M.add_ion_law("YOU ARE [amount] [who2]")
if(8) if(8)
M << "<br>" M << "<br>"
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED" M << "<span class='danger'>YOU MUST ALWAYS [aimust]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("YOU MUST ALWAYS [aimust]") M.add_ion_law("YOU MUST ALWAYS [aimust]")
if(9) if(9)
M << "<br>" M << "<br>"
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED" M << "<span class='danger'>[area] [area2] [amount] [what2]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("[area] [area2] [amount] [what2]") M.add_ion_law("[area] [area2] [amount] [what2]")
if(10) if(10)
M << "<br>" M << "<br>"
M << "\red [crew] is [target]...LAWS UPDATED" M << "<span class='danger'>[crew] is [target]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("[crew] is [target]") M.add_ion_law("[crew] is [target]")
if(11) if(11)
M << "<br>" M << "<br>"
M << "\red [define] IS A FORM OF HARM...LAWS UPDATED" M << "<span class='danger'>[define] IS A FORM OF HARM...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("[define] IS A FORM OF HARM") M.add_ion_law("[define] IS A FORM OF HARM")
if(12) if(12)
M << "<br>" M << "<br>"
M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED" M << "<span class='danger'>YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS") M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
if(13) if(13)
M << "<br>" M << "<br>"
M << "\red [crew] is [allergysev] to [allergy]...LAWS UPDATED" M << "<span class='danger'>[crew] is [allergysev] to [allergy]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("[crew] is [allergysev] to [allergy]") M.add_ion_law("[crew] is [allergysev] to [allergy]")
if(14) if(14)
M << "<br>" M << "<br>"
M << "\red THE STATION IS [who2pref] [who2]...LAWS UPDATED" M << "<span class='danger'>THE STATION IS [who2pref] [who2]...LAWS UPDATED</span>"
M << "<br>" M << "<br>"
M.add_ion_law("THE STATION IS [who2pref] [who2]") M.add_ion_law("THE STATION IS [who2pref] [who2]")
@@ -470,4 +470,4 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
world << "Ion Storm Main Done" world << "Ion Storm Main Done"
*/ */

View File

@@ -133,7 +133,7 @@ var/global/Holiday = null
world.update_status() world.update_status()
Holiday_Game_Start() Holiday_Game_Start()
message_admins("\blue ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"") message_admins("<span class='notice'>ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"</span>")
log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"") log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"")
@@ -174,7 +174,7 @@ var/global/Holiday = null
if(isNotStationLevel(S.z)) continue if(isNotStationLevel(S.z)) continue
containers += S containers += S
message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/ message_admins("<span class='notice'>DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])</span>")*/
if("End of the World") if("End of the World")
if(prob(eventchance)) GameOver() if(prob(eventchance)) GameOver()

View File

@@ -640,7 +640,7 @@ var/global/list/additional_antag_types = list()
//Reports player logouts// //Reports player logouts//
////////////////////////// //////////////////////////
proc/display_roundstart_logout_report() proc/display_roundstart_logout_report()
var/msg = "\blue <b>Roundstart logout report\n\n" var/msg = "<span class='notice'><b>Roundstart logout report</b>\n\n"
for(var/mob/living/L in mob_list) for(var/mob/living/L in mob_list)
if(L.ckey) if(L.ckey)
@@ -685,6 +685,8 @@ proc/display_roundstart_logout_report()
msg += "<b>[L.name]</b> ([ckey(D.mind.key)]), the [L.job] (<font color='red'><b>Ghosted</b></font>)\n" msg += "<b>[L.name]</b> ([ckey(D.mind.key)]), the [L.job] (<font color='red'><b>Ghosted</b></font>)\n"
continue //Ghosted while alive continue //Ghosted while alive
msg += "</span>" // close the <span class='notice'> from right at the top
for(var/mob/M in mob_list) for(var/mob/M in mob_list)
if(M.client && M.client.holder) if(M.client && M.client.holder)
M << msg M << msg

View File

@@ -327,11 +327,11 @@ var/global/datum/controller/gameticker/ticker
if (mode.station_was_nuked) if (mode.station_was_nuked)
feedback_set_details("end_proper","nuke") feedback_set_details("end_proper","nuke")
if(!delay_end) if(!delay_end)
world << "\blue <B>Rebooting due to destruction of station in [restart_timeout/10] seconds</B>" world << "<span class='notice'><b>Rebooting due to destruction of station in [restart_timeout/10] seconds</b></span>"
else else
feedback_set_details("end_proper","proper completion") feedback_set_details("end_proper","proper completion")
if(!delay_end) if(!delay_end)
world << "\blue <B>Restarting in [restart_timeout/10] seconds</B>" world << "<span class='notice'><b>Restarting in [restart_timeout/10] seconds</b></span>"
if(blackbox) if(blackbox)
@@ -342,9 +342,9 @@ var/global/datum/controller/gameticker/ticker
if(!delay_end) if(!delay_end)
world.Reboot() world.Reboot()
else else
world << "\blue <B>An admin has delayed the round end</B>" world << "<span class='notice><b>An admin has delayed the round end</b></span>"
else else
world << "\blue <B>An admin has delayed the round end</B>" world << "<span class='notice'><b>An admin has delayed the round end</b></span>"
else if (mode_finished) else if (mode_finished)
post_game = 1 post_game = 1
@@ -354,7 +354,7 @@ var/global/datum/controller/gameticker/ticker
//call a transfer shuttle vote //call a transfer shuttle vote
spawn(50) spawn(50)
if(!round_end_announced) // Spam Prevention. Now it should announce only once. if(!round_end_announced) // Spam Prevention. Now it should announce only once.
world << "\red The round has ended!" world << "<span class='danger'>The round has ended!</span>"
round_end_announced = 1 round_end_announced = 1
vote.autotransfer() vote.autotransfer()

View File

@@ -126,7 +126,7 @@
/datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1) /datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1)
if (you_are) if (you_are)
meme.current << "<B>\red You are a meme!</B>" meme.current << "<span class='danger'>You are a meme!</span>"
show_objectives(meme) show_objectives(meme)
return return

View File

@@ -17,11 +17,11 @@
if(!active) if(!active)
active = 1 active = 1
workdisk() workdisk()
usr << "\blue You activate the pinpointer" usr << "<span class='notice'>You activate the pinpointer</span>"
else else
active = 0 active = 0
icon_state = "pinoff" icon_state = "pinoff"
usr << "\blue You deactivate the pinpointer" usr << "<span>You deactivate the pinpointer</span>"
proc/workdisk() proc/workdisk()
if(!active) return if(!active) return
@@ -69,11 +69,11 @@
worklocation() worklocation()
if(mode == 2) if(mode == 2)
workobj() workobj()
usr << "\blue You activate the pinpointer" usr << "<span class='notice'>You activate the pinpointer</span>"
else else
active = 0 active = 0
icon_state = "pinoff" icon_state = "pinoff"
usr << "\blue You deactivate the pinpointer" usr << "<span class='notice'>You deactivate the pinpointer</span>"
proc/worklocation() proc/worklocation()
@@ -262,4 +262,4 @@
if(16 to INFINITY) if(16 to INFINITY)
icon_state = "pinonfar" icon_state = "pinonfar"
spawn(5) .() spawn(5) .()

View File

@@ -17,7 +17,7 @@ var/global/datum/controller/occupations/job_master
occupations = list() occupations = list()
var/list/all_jobs = typesof(/datum/job) var/list/all_jobs = typesof(/datum/job)
if(!all_jobs.len) if(!all_jobs.len)
world << "\red \b Error setting up jobs, no job datums found" world << "<span class='warning'>Error setting up jobs, no job datums found!</span>"
return 0 return 0
for(var/J in all_jobs) for(var/J in all_jobs)
var/datum/job/job = new J() var/datum/job/job = new J()
@@ -376,7 +376,7 @@ var/global/datum/controller/occupations/job_master
permitted = 0 permitted = 0
if(!permitted) if(!permitted)
H << "\red Your current job or whitelist status does not permit you to spawn with [thing]!" H << "<span class='warning'>Your current job or whitelist status does not permit you to spawn with [thing]!</span>"
continue continue
if(G.slot && !(G.slot in custom_equip_slots)) if(G.slot && !(G.slot in custom_equip_slots))
@@ -385,7 +385,7 @@ var/global/datum/controller/occupations/job_master
if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head) if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
custom_equip_leftovers += thing custom_equip_leftovers += thing
else if(H.equip_to_slot_or_del(new G.path(H), G.slot)) else if(H.equip_to_slot_or_del(new G.path(H), G.slot))
H << "\blue Equipping you with [thing]!" H << "<span class='notice'>Equipping you with [thing]!</span>"
custom_equip_slots.Add(G.slot) custom_equip_slots.Add(G.slot)
else else
custom_equip_leftovers.Add(thing) custom_equip_leftovers.Add(thing)
@@ -403,7 +403,7 @@ var/global/datum/controller/occupations/job_master
spawn_in_storage += thing spawn_in_storage += thing
else else
if(H.equip_to_slot_or_del(new G.path(H), G.slot)) if(H.equip_to_slot_or_del(new G.path(H), G.slot))
H << "\blue Equipping you with [thing]!" H << "<span class='notice'>Equipping you with [thing]!</span>"
custom_equip_slots.Add(G.slot) custom_equip_slots.Add(G.slot)
else else
spawn_in_storage += thing spawn_in_storage += thing
@@ -456,7 +456,7 @@ var/global/datum/controller/occupations/job_master
H.mind.store_memory(remembered_info) H.mind.store_memory(remembered_info)
spawn(0) spawn(0)
H << "\blue<b>Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]</b>" H << "<span class='notice'><b>Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]</b></span>"
var/alt_title = null var/alt_title = null
if(H.mind) if(H.mind)
@@ -481,11 +481,11 @@ var/global/datum/controller/occupations/job_master
if(!isnull(B)) if(!isnull(B))
for(var/thing in spawn_in_storage) for(var/thing in spawn_in_storage)
H << "\blue Placing [thing] in your [B]!" H << "<span class='notice'>Placing [thing] in your [B]!</span>"
var/datum/gear/G = gear_datums[thing] var/datum/gear/G = gear_datums[thing]
new G.path(B) new G.path(B)
else else
H << "\red Failed to locate a storage object on your mob, either you spawned with no arms and no backpack or this is a bug." H << "<span class='danger'>Failed to locate a storage object on your mob, either you spawned with no arms and no backpack or this is a bug.</span>"
if(istype(H)) //give humans wheelchairs, if they need them. if(istype(H)) //give humans wheelchairs, if they need them.
var/obj/item/organ/external/l_foot = H.get_organ("l_foot") var/obj/item/organ/external/l_foot = H.get_organ("l_foot")

View File

@@ -135,7 +135,7 @@
/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob) /obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob)
check_victim() check_victim()
if(src.victim && get_turf(victim) == get_turf(src) && victim.lying) if(src.victim && get_turf(victim) == get_turf(src) && victim.lying)
usr << "<span class='warning'>\the [src] is already occupied!</span>" usr << "<span class='warning'>\The [src] is already occupied!</span>"
return 0 return 0
if(patient.buckled) if(patient.buckled)
usr << "<span class='notice'>Unbuckle \the [patient] first!</span>" usr << "<span class='notice'>Unbuckle \the [patient] first!</span>"

View File

@@ -118,11 +118,11 @@
if (src.connected) if (src.connected)
if (src.connected.occupant) if (src.connected.occupant)
if (src.connected.occupant.stat == DEAD) if (src.connected.occupant.stat == DEAD)
usr << "\red \b This person has no life for to preserve anymore. Take them to a department capable of reanimating them." usr << "<span class='danger'>This person has no life for to preserve anymore. Take them to a department capable of reanimating them.</span>"
else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline") else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline")
src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"])) src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"]))
else else
usr << "\red \b This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" usr << "<span class='danger'>This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!</span>"
src.updateUsrDialog() src.updateUsrDialog()
if (href_list["refresh"]) if (href_list["refresh"])
src.updateUsrDialog() src.updateUsrDialog()
@@ -217,7 +217,7 @@
src.updateUsrDialog() src.updateUsrDialog()
return return
else else
user << "\red The sleeper has a beaker already." user << "<span class='warning'>The sleeper has a beaker already.</span>"
return return
else if(istype(G, /obj/item/weapon/grab)) else if(istype(G, /obj/item/weapon/grab))
@@ -225,7 +225,7 @@
return return
if(src.occupant) if(src.occupant)
user << "\blue <B>The sleeper is already occupied!</B>" user << "<span class='warning'>The sleeper is already occupied!</span>"
return return
for(var/mob/living/carbon/slime/M in range(1,G:affecting)) for(var/mob/living/carbon/slime/M in range(1,G:affecting))
@@ -237,7 +237,7 @@
if(do_after(user, 20)) if(do_after(user, 20))
if(src.occupant) if(src.occupant)
user << "\blue <B>The sleeper is already occupied!</B>" user << "<span class='warning'>The sleeper is already occupied!</span>"
return return
if(!G || !G:affecting) return if(!G || !G:affecting) return
var/mob/M = G:affecting var/mob/M = G:affecting
@@ -350,7 +350,7 @@
proc/check(mob/living/user as mob) proc/check(mob/living/user as mob)
if(src.occupant) if(src.occupant)
user << text("\blue <B>Occupant ([]) Statistics:</B>", src.occupant) user << text("<span class='notice'><B>Occupant ([]) Statistics:</B></span>", src.occupant)
var/t1 var/t1
switch(src.occupant.stat) switch(src.occupant.stat)
if(0.0) if(0.0)
@@ -360,20 +360,20 @@
if(2.0) if(2.0)
t1 = "*dead*" t1 = "*dead*"
else else
user << text("[]\t Health %: [] ([])", (src.occupant.health > 50 ? "\blue " : "\red "), src.occupant.health, t1) user << text("<span class='[]'>\t Health %: [] ([])</span>", (src.occupant.health > 50 ? "notice" : "warning"), src.occupant.health, t1)
user << text("[]\t -Core Temperature: []&deg;C ([]&deg;F)</FONT><BR>", (src.occupant.bodytemperature > 50 ? "<font color='blue'>" : "<font color='red'>"), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67) user << text("<span class='[]'>\t -Core Temperature: []&deg;C ([]&deg;F)</span>", (src.occupant.bodytemperature > 50 ? "notice" : "warning"), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67)
user << text("[]\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "\blue " : "\red "), src.occupant.getBruteLoss()) user << text("<span class='[]'>\t -Brute Damage %: []</span>", (src.occupant.getBruteLoss() < 60 ? "notice" : "warning"), src.occupant.getBruteLoss())
user << text("[]\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "\blue " : "\red "), src.occupant.getOxyLoss()) user << text("<span class='[]'>\t -Respiratory Damage %: []</span>", (src.occupant.getOxyLoss() < 60 ? "notice" : "warning"), src.occupant.getOxyLoss())
user << text("[]\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "\blue " : "\red "), src.occupant.getToxLoss()) user << text("<span class='[]'>\t -Toxin Content %: []</span>", (src.occupant.getToxLoss() < 60 ? "notice" : "warning"), src.occupant.getToxLoss())
user << text("[]\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "\blue " : "\red "), src.occupant.getFireLoss()) user << text("<span class='[]'>\t -Burn Severity %: []</span>", (src.occupant.getFireLoss() < 60 ? "notice" : "warning"), src.occupant.getFireLoss())
user << "\blue Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)" user << "<span class='notice'>Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)</span>"
user << text("\blue \t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5) user << text("<span class='notice'>\t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)</span>", src.occupant.paralysis / 5)
if(src.beaker) if(src.beaker)
user << text("\blue \t Dialysis Output Beaker has [] of free space remaining.", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume) user << text("<span class='notice'>\t Dialysis Output Beaker has [] of free space remaining.</span>", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume)
else else
user << "\blue No Dialysis Output Beaker loaded." user << "<span class='notice'>No Dialysis Output Beaker loaded.</span>"
else else
user << "\blue There is no one inside!" user << "<span class='notice'>There is no one inside!</span>"
return return
@@ -412,7 +412,7 @@
return return
if(src.occupant) if(src.occupant)
usr << "\blue <B>The sleeper is already occupied!</B>" usr << "<span class='warning'>The sleeper is already occupied!</span>"
return return
for(var/mob/living/carbon/slime/M in range(1,usr)) for(var/mob/living/carbon/slime/M in range(1,usr))
@@ -422,7 +422,7 @@
visible_message("[usr] starts climbing into the sleeper.", 3) visible_message("[usr] starts climbing into the sleeper.", 3)
if(do_after(usr, 20)) if(do_after(usr, 20))
if(src.occupant) if(src.occupant)
usr << "\blue <B>The sleeper is already occupied!</B>" usr << "<span class='warning'>The sleeper is already occupied!</span>"
return return
usr.stop_pulling() usr.stop_pulling()
usr.client.perspective = EYE_PERSPECTIVE usr.client.perspective = EYE_PERSPECTIVE

View File

@@ -42,10 +42,10 @@
if (usr.stat != 0) if (usr.stat != 0)
return return
if (src.occupant) if (src.occupant)
usr << "\blue <B>The scanner is already occupied!</B>" usr << "<span class='warning'>The scanner is already occupied!</span>"
return return
if (usr.abiotic()) if (usr.abiotic())
usr << "\blue <B>Subject cannot have abiotic items on.</B>" usr << "<span class='warning'>The subject cannot have abiotic items on.</span>"
return return
usr.pulling = null usr.pulling = null
usr.client.perspective = EYE_PERSPECTIVE usr.client.perspective = EYE_PERSPECTIVE
@@ -80,10 +80,10 @@
if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) ))) if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) )))
return return
if (src.occupant) if (src.occupant)
user << "\blue <B>The scanner is already occupied!</B>" user << "<span class='warning'>The scanner is already occupied!</span>"
return return
if (G.affecting.abiotic()) if (G.affecting.abiotic())
user << "\blue <B>Subject cannot have abiotic items on.</B>" user << "<span class='warning'>Subject cannot have abiotic items on.</span>"
return return
var/mob/M = G.affecting var/mob/M = G.affecting
if (M.client) if (M.client)
@@ -220,10 +220,10 @@
if(stat & (NOPOWER|BROKEN)) if(stat & (NOPOWER|BROKEN))
return return
if(!connected || (connected.stat & (NOPOWER|BROKEN))) if(!connected || (connected.stat & (NOPOWER|BROKEN)))
user << "\red This console is not connected to a functioning body scanner." user << "<span class='warning'>This console is not connected to a functioning body scanner.</span>"
return return
if(!ishuman(connected.occupant)) if(!ishuman(connected.occupant))
user << "\red This device can only scan compatible lifeforms." user << "<span class='warning'>This device can only scan compatible lifeforms.</span>"
return return
var/dat var/dat
@@ -449,4 +449,4 @@
dat += text("<font color='red'>Cataracts detected.</font><BR>") dat += text("<font color='red'>Cataracts detected.</font><BR>")
if(occ["sdisabilities"] & NEARSIGHTED) if(occ["sdisabilities"] & NEARSIGHTED)
dat += text("<font color='red'>Retinal misalignment detected.</font><BR>") dat += text("<font color='red'>Retinal misalignment detected.</font><BR>")
return dat return dat

View File

@@ -52,7 +52,7 @@
if (user.machine==src) if (user.machine==src)
src.attack_hand(usr) src.attack_hand(usr)
else else
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
return return
@@ -127,4 +127,4 @@
if (uses >= 0) if (uses >= 0)
cooldown_on = 0 cooldown_on = 0
src.power_change() src.power_change()
return return

View File

@@ -800,9 +800,9 @@
else else
if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN)) if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN))
locked = !locked locked = !locked
user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface." user << "<span class='notice'>You [ locked ? "lock" : "unlock"] the Air Alarm interface.</span>"
else else
user << "\red Access denied." user << "<span class='warning'>Access denied.</span>"
return return
if(1) if(1)
@@ -941,11 +941,11 @@ FIRE ALARM
if (istype(W, /obj/item/device/multitool)) if (istype(W, /obj/item/device/multitool))
src.detecting = !( src.detecting ) src.detecting = !( src.detecting )
if (src.detecting) if (src.detecting)
user.visible_message("\red [user] has reconnected [src]'s detecting unit!", "You have reconnected [src]'s detecting unit.") user.visible_message("<span class='notice'>\The [user] has reconnected [src]'s detecting unit!</span>", "<span class='notice'>You have reconnected [src]'s detecting unit.</span>")
else else
user.visible_message("\red [user] has disconnected [src]'s detecting unit!", "You have disconnected [src]'s detecting unit.") user.visible_message("<span class='notice'>\The [user] has disconnected [src]'s detecting unit!</span>", "<span class='notice'>You have disconnected [src]'s detecting unit.</span>")
else if (istype(W, /obj/item/weapon/wirecutters)) else if (istype(W, /obj/item/weapon/wirecutters))
user.visible_message("\red [user] has cut the wires inside \the [src]!", "You have cut the wires inside \the [src].") user.visible_message("<span class='notice'>\The [user] has cut the wires inside \the [src]!</span>", "<span class='notice'>You have cut the wires inside \the [src].</span>")
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
buildstage = 1 buildstage = 1
update_icon() update_icon()
@@ -957,7 +957,7 @@ FIRE ALARM
buildstage = 2 buildstage = 2
return return
else else
user << "<span class='warning'>You need 5 pieces of cable to do wire \the [src].</span>" user << "<span class='warning'>You need 5 pieces of cable to wire \the [src].</span>"
return return
else if(istype(W, /obj/item/weapon/crowbar)) else if(istype(W, /obj/item/weapon/crowbar))
user << "You pry out the circuit!" user << "You pry out the circuit!"

View File

@@ -247,7 +247,7 @@ update_flag
/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) /obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda)) if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda))
visible_message("\red [user] hits the [src] with a [W]!") visible_message("<span class='warning'>\The [user] hits \the [src] with \a [W]!</span>")
src.health -= W.force src.health -= W.force
src.add_fingerprint(user) src.add_fingerprint(user)
healthcheck() healthcheck()

View File

@@ -69,10 +69,10 @@
var/t = "A gas flow meter. " var/t = "A gas flow meter. "
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead))) if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead)))
t += "\blue <B>You are too far away to read it.</B>" t += "<span class='warning'>You are too far away to read it.</span>"
else if(stat & (NOPOWER|BROKEN)) else if(stat & (NOPOWER|BROKEN))
t += "\red <B>The display is off.</B>" t += "<span class='warning'>The display is off.</span>"
else if(src.target) else if(src.target)
var/datum/gas_mixture/environment = target.return_air() var/datum/gas_mixture/environment = target.return_air()
@@ -97,11 +97,11 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..." user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
if (do_after(user, 40)) if (do_after(user, 40))
user.visible_message( \ user.visible_message( \
"[user] unfastens \the [src].", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
"\blue You have unfastened \the [src].", \ "<span class='notice'>You have unfastened \the [src].</span>", \
"You hear ratchet.") "You hear ratchet.")
new /obj/item/pipe_meter(src.loc) new /obj/item/pipe_meter(src.loc)
qdel(src) qdel(src)

View File

@@ -118,39 +118,39 @@
else if (istype(W, /obj/item/weapon/wrench)) else if (istype(W, /obj/item/weapon/wrench))
if(connected_port) if(connected_port)
disconnect() disconnect()
user << "\blue You disconnect [name] from the port." user << "<span class='notice'>You disconnect \the [src] from the port.</span>"
update_icon() update_icon()
return return
else else
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
if(possible_port) if(possible_port)
if(connect(possible_port)) if(connect(possible_port))
user << "\blue You connect [name] to the port." user << "<span class='notice'>You connect \the [src] to the port.</span>"
update_icon() update_icon()
return return
else else
user << "\blue [name] failed to connect to the port." user << "<span class='notice'>\The [src] failed to connect to the port.</span>"
return return
else else
user << "\blue Nothing happens." user << "<span class='notice'>Nothing happens.</span>"
return return
else if ((istype(W, /obj/item/device/analyzer)) && Adjacent(user)) else if ((istype(W, /obj/item/device/analyzer)) && Adjacent(user))
visible_message("\red [user] has used [W] on \icon[icon]") visible_message("<span class='notice'>\The [user] has used \the [W] on \the [src] \icon[icon]</span>")
if(air_contents) if(air_contents)
var/pressure = air_contents.return_pressure() var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles var/total_moles = air_contents.total_moles
user << "\blue Results of analysis of \icon[icon]" user << "<span class='notice'>Results of analysis of \icon[icon]</span>"
if (total_moles>0) if (total_moles>0)
user << "\blue Pressure: [round(pressure,0.1)] kPa" user << "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>"
for(var/g in air_contents.gas) for(var/g in air_contents.gas)
user << "\blue [gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%" user << "<span class='notice'>[gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%</span>"
user << "\blue Temperature: [round(air_contents.temperature-T0C)]&deg;C" user << "<span class='notice'>Temperature: [round(air_contents.temperature-T0C)]&deg;C</span>"
else else
user << "\blue Tank is empty!" user << "<span class='notice'>Tank is empty!</span>"
else else
user << "\blue Tank is empty!" user << "<span class='notice'>Tank is empty!</span>"
return return
return return
@@ -175,15 +175,15 @@
C.add_fingerprint(user) C.add_fingerprint(user)
cell = C cell = C
C.loc = src C.loc = src
user.visible_message("\blue [user] opens the panel on [src] and inserts [C].", "\blue You open the panel on [src] and insert [C].") user.visible_message("<span class='notice'>[user] opens the panel on [src] and inserts [C].<span class='notice'>", "<span class='notice'>You open the panel on [src] and insert [C].<span class='notice'>")
return return
if(istype(I, /obj/item/weapon/screwdriver)) if(istype(I, /obj/item/weapon/screwdriver))
if(!cell) if(!cell)
user << "\red There is no power cell installed." user << "<span class='warning'>There is no power cell installed.<span class='notice'>"
return return
user.visible_message("\blue [user] opens the panel on [src] and removes [cell].", "\blue You open the panel on [src] and remove [cell].") user.visible_message("<span class='notice'>[user] opens the panel on [src] and removes [cell].<span class='notice'>", "<span class='notice'>You open the panel on [src] and remove [cell].<span class='notice'>")
cell.add_fingerprint(user) cell.add_fingerprint(user)
cell.loc = src.loc cell.loc = src.loc
cell = null cell = null

View File

@@ -165,7 +165,7 @@
name = "[name] (ID [id])" name = "[name] (ID [id])"
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob)
usr << "\blue You can't directly interact with this machine. Use the scrubber control console." usr << "<span class='notice'>You can't directly interact with this machine. Use the scrubber control console.</span>"
/obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon() /obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon()
src.overlays = 0 src.overlays = 0
@@ -206,12 +206,12 @@
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/wrench)) if(istype(I, /obj/item/weapon/wrench))
if(on) if(on)
user << "\blue Turn it off first!" user << "<span class='warning'>Turn \the [src] off first!</span>"
return return
anchored = !anchored anchored = !anchored
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You [anchored ? "wrench" : "unwrench"] \the [src]." user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
return return
@@ -233,7 +233,7 @@
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/attackby(var/obj/item/I as obj, var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/attackby(var/obj/item/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/wrench)) if(istype(I, /obj/item/weapon/wrench))
user << "\blue The bolts are too tight for you to unscrew!" user << "<span class='warning'>The bolts are too tight for you to unscrew!</span>"
return return
..() ..()

View File

@@ -21,9 +21,9 @@
if(B.feral < 0) if(B.feral < 0)
caught_bees += B.strength caught_bees += B.strength
qdel(B) qdel(B)
user.visible_message("\blue [user] nets some bees.","\blue You net up some of the becalmed bees.") user.visible_message("<span class='notice'>\The [user] nets some bees.</span>","<span class='notice'>You net up some of the becalmed bees.</span>")
else else
user.visible_message("\red [user] swings at some bees, they don't seem to like it.","\red You swing at some bees, they don't seem to like it.") user.visible_message("<span class='warning'>\The [user] swings at some bees, they don't seem to like it.</span>","<span class='warning'>You swing at some bees, they don't seem to like it.</span>")
B.feral = 5 B.feral = 5
B.target_mob = user B.target_mob = user

View File

@@ -60,7 +60,7 @@
if(health < maxhealth) if(health < maxhealth)
if(open) if(open)
health = min(maxhealth, health+10) health = min(maxhealth, health+10)
user.visible_message("\red [user] repairs [src]!","\blue You repair [src]!") user.visible_message("<span class='warning'>[user] repairs [src]!</span>","<span class='notice'>You repair [src]!</span>")
else else
user << "<span class='notice'>Unable to repair with the maintenance panel closed.</span>" user << "<span class='notice'>Unable to repair with the maintenance panel closed.</span>"
else else
@@ -143,7 +143,7 @@
if(user.species.can_shred(user)) if(user.species.can_shred(user))
src.health -= rand(15,30)*brute_dam_coeff src.health -= rand(15,30)*brute_dam_coeff
src.visible_message("\red <B>[user] has slashed [src]!</B>") src.visible_message("<span class='danger'>[user] has slashed [src]!</span>")
playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1) playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1)
if(prob(10)) if(prob(10))
new /obj/effect/decal/cleanable/blood/oil(src.loc) new /obj/effect/decal/cleanable/blood/oil(src.loc)

View File

@@ -90,7 +90,7 @@
/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user) /obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user)
if(istype(I,/obj/item/weapon/card/emag)) if(istype(I,/obj/item/weapon/card/emag))
locked = !locked locked = !locked
user << "\blue You [locked ? "lock" : "unlock"] the mulebot's controls!" user << "<span class='notice'>You [locked ? "lock" : "unlock"] the mulebot's controls!</span>"
flick("mulebot-emagged", src) flick("mulebot-emagged", src)
playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 0) playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 0)
else if(istype(I,/obj/item/weapon/cell) && open && !cell) else if(istype(I,/obj/item/weapon/cell) && open && !cell)
@@ -101,16 +101,16 @@
updateDialog() updateDialog()
else if(istype(I,/obj/item/weapon/screwdriver)) else if(istype(I,/obj/item/weapon/screwdriver))
if(locked) if(locked)
user << "\blue The maintenance hatch cannot be opened or closed while the controls are locked." user << "<span class='notice'>The maintenance hatch cannot be opened or closed while the controls are locked.</span>"
return return
open = !open open = !open
if(open) if(open)
src.visible_message("[user] opens the maintenance hatch of [src]", "\blue You open [src]'s maintenance hatch.") src.visible_message("[user] opens the maintenance hatch of [src]", "<span class='notice'>You open [src]'s maintenance hatch.")
on = 0 on = 0
icon_state="mulebot-hatch" icon_state="mulebot-hatch"
else else
src.visible_message("[user] closes the maintenance hatch of [src]", "\blue You close [src]'s maintenance hatch.") src.visible_message("[user] closes the maintenance hatch of [src]", "<span class='notice'>You close [src]'s maintenance hatch.")
icon_state = "mulebot0" icon_state = "mulebot0"
updateDialog() updateDialog()
@@ -118,15 +118,15 @@
if (src.health < maxhealth) if (src.health < maxhealth)
src.health = min(maxhealth, src.health+25) src.health = min(maxhealth, src.health+25)
user.visible_message( user.visible_message(
"\red [user] repairs [src]!", "<span class='notice'>\The [user] repairs \the [src]!</span>",
"\blue You repair [src]!" "<span class='notice'>You repair \the [src]!</span>"
) )
else else
user << "\blue [src] does not need a repair!" user << "<span class='notice'>[src] does not need a repair!</span>"
else if(load && ismob(load)) // chance to knock off rider else if(load && ismob(load)) // chance to knock off rider
if(prob(1+I.force * 2)) if(prob(1+I.force * 2))
unload(0) unload(0)
user.visible_message("\red [user] knocks [load] off [src] with \the [I]!", "\red You knock [load] off [src] with \the [I]!") user.visible_message("<span class='warning'>[user] knocks [load] off [src] with \the [I]!</span>", "<span class='warning'>You knock [load] off [src] with \the [I]!</span>")
else else
user << "You hit [src] with \the [I] but to no effect." user << "You hit [src] with \the [I] but to no effect."
else else
@@ -150,7 +150,7 @@
if(prob(50) && !isnull(load)) if(prob(50) && !isnull(load))
unload(0) unload(0)
if(prob(25)) if(prob(25))
src.visible_message("\red Something shorts out inside [src]!") src.visible_message("<span class='warning'>Something shorts out inside [src]!</span>")
var/index = 1<< (rand(0,9)) var/index = 1<< (rand(0,9))
if(wires & index) if(wires & index)
wires &= ~index wires &= ~index
@@ -250,14 +250,14 @@
locked = !locked locked = !locked
updateDialog() updateDialog()
else else
usr << "\red Access denied." usr << "<span class='warning'>Access denied.</span>"
return return
if("power") if("power")
if (src.on) if (src.on)
turn_off() turn_off()
else if (cell && !open) else if (cell && !open)
if (!turn_on()) if (!turn_on())
usr << "\red You can't switch on [src]." usr << "<span class='warning'>You can't switch on [src].</span>"
return return
else else
return return
@@ -272,7 +272,7 @@
cell.add_fingerprint(usr) cell.add_fingerprint(usr)
cell = null cell = null
usr.visible_message("\blue [usr] removes the power cell from [src].", "\blue You remove the power cell from [src].") usr.visible_message("<span class='notice'>[usr] removes the power cell from [src].</span>", "<span class='notice'>You remove the power cell from [src].</span>")
updateDialog() updateDialog()
if("cellinsert") if("cellinsert")
@@ -284,7 +284,7 @@
C.loc = src C.loc = src
C.add_fingerprint(usr) C.add_fingerprint(usr)
usr.visible_message("\blue [usr] inserts a power cell into [src].", "\blue You insert the power cell into [src].") usr.visible_message("<span class='notice'>[usr] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
updateDialog() updateDialog()
@@ -702,9 +702,9 @@
var/mob/M = obs var/mob/M = obs
if(ismob(M)) if(ismob(M))
if(istype(M,/mob/living/silicon/robot)) if(istype(M,/mob/living/silicon/robot))
src.visible_message("\red [src] bumps into [M]!") src.visible_message("<span class='warning'>[src] bumps into [M]!</span>")
else else
src.visible_message("\red [src] knocks over [M]!") src.visible_message("<span class='warning'>[src] knocks over [M]!</span>")
M.stop_pulling() M.stop_pulling()
M.Stun(8) M.Stun(8)
M.Weaken(5) M.Weaken(5)
@@ -718,7 +718,7 @@
// called from mob/living/carbon/human/Crossed() // called from mob/living/carbon/human/Crossed()
// when mulebot is in the same loc // when mulebot is in the same loc
/obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H) /obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H)
src.visible_message("\red [src] drives over [H]!") src.visible_message("<span class='warning'>[src] drives over [H]!</span>")
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
var/damage = rand(5,15) var/damage = rand(5,15)
@@ -866,7 +866,7 @@
/obj/machinery/bot/mulebot/explode() /obj/machinery/bot/mulebot/explode()
src.visible_message("\red <B>[src] blows apart!</B>", 1) src.visible_message("<span class='danger'>[src] blows apart!</span>", 1)
var/turf/Tsec = get_turf(src) var/turf/Tsec = get_turf(src)
new /obj/item/device/assembly/prox_sensor(Tsec) new /obj/item/device/assembly/prox_sensor(Tsec)

View File

@@ -180,13 +180,13 @@
else if (istype(W, /obj/item/weapon/camera_bug)) else if (istype(W, /obj/item/weapon/camera_bug))
if (!src.can_use()) if (!src.can_use())
user << "\blue Camera non-functional" user << "<span class='warning'>Camera non-functional.</span>"
return return
if (src.bugged) if (src.bugged)
user << "\blue Camera bug removed." user << "<span class='notice'>Camera bug removed.</span>"
src.bugged = 0 src.bugged = 0
else else
user << "\blue Camera bugged." user << "<span class='notice'>Camera bugged.</span>"
src.bugged = 1 src.bugged = 1
else if(W.damtype == BRUTE || W.damtype == BURN) //bashing cameras else if(W.damtype == BRUTE || W.damtype == BURN) //bashing cameras

View File

@@ -47,20 +47,20 @@
loc = sanitize(loc) loc = sanitize(loc)
if(!loc) if(!loc)
src << "\red Must supply a location name" src << "<span class='warning'>Must supply a location name</span>"
return return
if(stored_locations.len >= max_locations) if(stored_locations.len >= max_locations)
src << "\red Cannot store additional locations. Remove one first" src << "<span class='warning'>Cannot store additional locations. Remove one first</span>"
return return
if(loc in stored_locations) if(loc in stored_locations)
src << "\red There is already a stored location by this name" src << "<span class='warning'>There is already a stored location by this name</span>"
return return
var/L = src.eyeobj.getLoc() var/L = src.eyeobj.getLoc()
if (InvalidPlayerTurf(get_turf(L))) if (InvalidPlayerTurf(get_turf(L)))
src << "\red Unable to store this location" src << "<span class='warning'>Unable to store this location</span>"
return return
stored_locations[loc] = L stored_locations[loc] = L
@@ -75,7 +75,7 @@
set desc = "Returns to the selected camera location" set desc = "Returns to the selected camera location"
if (!(loc in stored_locations)) if (!(loc in stored_locations))
src << "\red Location [loc] not found" src << "<span class='warning'>Location [loc] not found</span>"
return return
var/L = stored_locations[loc] var/L = stored_locations[loc]
@@ -87,7 +87,7 @@
set desc = "Deletes the selected camera location" set desc = "Deletes the selected camera location"
if (!(loc in stored_locations)) if (!(loc in stored_locations))
src << "\red Location [loc] not found" src << "<span class='warning'>Location [loc] not found</span>"
return return
stored_locations.Remove(loc) stored_locations.Remove(loc)

View File

@@ -42,14 +42,14 @@
if(istype(W, /obj/item/weapon/cell) && anchored) if(istype(W, /obj/item/weapon/cell) && anchored)
if(charging) if(charging)
user << "\red There is already a cell in the charger." user << "<span class='warning'>There is already a cell in the charger.</span>"
return return
else else
var/area/a = loc.loc // Gets our locations location, like a dream within a dream var/area/a = loc.loc // Gets our locations location, like a dream within a dream
if(!isarea(a)) if(!isarea(a))
return return
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power! if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
user << "\red The [name] blinks red as you try to insert the cell!" user << "<span class='warning'>The [name] blinks red as you try to insert the cell!</span>"
return return
user.drop_item() user.drop_item()
@@ -60,7 +60,7 @@
update_icon() update_icon()
else if(istype(W, /obj/item/weapon/wrench)) else if(istype(W, /obj/item/weapon/wrench))
if(charging) if(charging)
user << "\red Remove the cell first!" user << "<span class='warning'>Remove the cell first!</span>"
return return
anchored = !anchored anchored = !anchored

View File

@@ -17,7 +17,7 @@
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You wrench the frame into place." user << "<span class='notice'>You wrench the frame into place.</span>"
anchored = 1 anchored = 1
state = 1 state = 1
if(istype(P, /obj/item/weapon/weldingtool)) if(istype(P, /obj/item/weapon/weldingtool))
@@ -28,31 +28,31 @@
playsound(loc, 'sound/items/Welder.ogg', 50, 1) playsound(loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
if(!src || !WT.remove_fuel(0, user)) return if(!src || !WT.remove_fuel(0, user)) return
user << "\blue You deconstruct the frame." user << "<span class='notice'>You deconstruct the frame.</span>"
new /obj/item/stack/material/plasteel( loc, 4) new /obj/item/stack/material/plasteel( loc, 4)
qdel(src) qdel(src)
if(1) if(1)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You unfasten the frame." user << "<span class='notice'>You unfasten the frame.</span>"
anchored = 0 anchored = 0
state = 0 state = 0
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit) if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "\blue You place the circuit board inside the frame." user << "<span class='notice'>You place the circuit board inside the frame.</span>"
icon_state = "1" icon_state = "1"
circuit = P circuit = P
user.drop_item() user.drop_item()
P.loc = src P.loc = src
if(istype(P, /obj/item/weapon/screwdriver) && circuit) if(istype(P, /obj/item/weapon/screwdriver) && circuit)
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You screw the circuit board into place." user << "<span class='notice'>You screw the circuit board into place.</span>"
state = 2 state = 2
icon_state = "2" icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit) if(istype(P, /obj/item/weapon/crowbar) && circuit)
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "\blue You remove the circuit board." user << "<span class='notice'>You remove the circuit board.</span>"
state = 1 state = 1
icon_state = "0" icon_state = "0"
circuit.loc = loc circuit.loc = loc
@@ -60,7 +60,7 @@
if(2) if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit) if(istype(P, /obj/item/weapon/screwdriver) && circuit)
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You unfasten the circuit board." user << "<span class='notice'>You unfasten the circuit board.</span>"
state = 1 state = 1
icon_state = "1" icon_state = "1"
if(istype(P, /obj/item/stack/cable_coil)) if(istype(P, /obj/item/stack/cable_coil))
@@ -82,7 +82,7 @@
user << "Get that brain out of there first" user << "Get that brain out of there first"
else else
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1) playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
user << "\blue You remove the cables." user << "<span class='notice'>You remove the cables.</span>"
state = 2 state = 2
icon_state = "2" icon_state = "2"
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc ) var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
@@ -126,14 +126,14 @@
if(istype(P, /obj/item/device/mmi)) if(istype(P, /obj/item/device/mmi))
var/obj/item/device/mmi/M = P var/obj/item/device/mmi/M = P
if(!M.brainmob) if(!M.brainmob)
user << "\red Sticking an empty [P] into the frame would sort of defeat the purpose." user << "<span class='warning'>Sticking an empty [P] into the frame would sort of defeat the purpose.</span>"
return return
if(M.brainmob.stat == 2) if(M.brainmob.stat == 2)
user << "\red Sticking a dead [P] into the frame would sort of defeat the purpose." user << "<span class='warning'>Sticking a dead [P] into the frame would sort of defeat the purpose.</span>"
return return
if(jobban_isbanned(M.brainmob, "AI")) if(jobban_isbanned(M.brainmob, "AI"))
user << "\red This [P] does not seem to fit." user << "<span class='warning'>This [P] does not seem to fit.</span>"
return return
if(M.brainmob.mind) if(M.brainmob.mind)
@@ -148,7 +148,7 @@
if(istype(P, /obj/item/weapon/crowbar) && brain) if(istype(P, /obj/item/weapon/crowbar) && brain)
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "\blue You remove the brain." user << "<span class='notice'>You remove the brain.</span>"
brain.loc = loc brain.loc = loc
brain = null brain = null
icon_state = "3" icon_state = "3"
@@ -156,7 +156,7 @@
if(4) if(4)
if(istype(P, /obj/item/weapon/crowbar)) if(istype(P, /obj/item/weapon/crowbar))
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "\blue You remove the glass panel." user << "<span class='notice'>You remove the glass panel.</span>"
state = 3 state = 3
if (brain) if (brain)
icon_state = "3b" icon_state = "3b"
@@ -167,7 +167,7 @@
if(istype(P, /obj/item/weapon/screwdriver)) if(istype(P, /obj/item/weapon/screwdriver))
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor." user << "<span class='notice'>You connect the monitor.</span>"
if(!brain) if(!brain)
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes" var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
var/obj/structure/AIcore/deactivated/D = new(loc) var/obj/structure/AIcore/deactivated/D = new(loc)
@@ -202,7 +202,7 @@
transfer.aiRadio.disabledAi = 0 transfer.aiRadio.disabledAi = 0
transfer.loc = get_turf(src) transfer.loc = get_turf(src)
transfer.cancel_camera() transfer.cancel_camera()
user << "\blue <b>Transfer successful</b>: \black [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped." user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped."
transfer << "You have been uploaded to a stationary terminal. Remote device connection restored." transfer << "You have been uploaded to a stationary terminal. Remote device connection restored."
if(card) if(card)
@@ -224,23 +224,23 @@
if(transfer) if(transfer)
load_ai(transfer,card,user) load_ai(transfer,card,user)
else else
user << "\red <b>ERROR</b>: \black Unable to locate artificial intelligence." user << "<span class='danger'>ERROR:</span> Unable to locate artificial intelligence."
return return
else if(istype(W, /obj/item/weapon/wrench)) else if(istype(W, /obj/item/weapon/wrench))
if(anchored) if(anchored)
user.visible_message("\blue \The [user] starts to unbolt \the [src] from the plating...") user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
if(!do_after(user,40)) if(!do_after(user,40))
user.visible_message("\blue \The [user] decides not to unbolt \the [src].") user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
return return
user.visible_message("\blue \The [user] finishes unfastening \the [src]!") user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
anchored = 0 anchored = 0
return return
else else
user.visible_message("\blue \The [user] starts to bolt \the [src] to the plating...") user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
if(!do_after(user,40)) if(!do_after(user,40))
user.visible_message("\blue \The [user] decides not to bolt \the [src].") user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
return return
user.visible_message("\blue \The [user] finishes fastening down \the [src]!") user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
anchored = 1 anchored = 1
return return
else else

View File

@@ -18,7 +18,7 @@
// Transfer over the AI. // Transfer over the AI.
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
user << "\blue <b>Transfer successful</b>: \black [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
transfer.loc = src transfer.loc = src
transfer.cancel_camera() transfer.cancel_camera()
@@ -44,7 +44,7 @@
if(istype(comp_ai)) if(istype(comp_ai))
if(active) if(active)
user << "\red <b>ERROR</b>: \black Reconstruction in progress." user << "<span class='danger'>ERROR:</span> Reconstruction in progress."
return return
card.grab_ai(comp_ai, user) card.grab_ai(comp_ai, user)
if(!(locate(/mob/living/silicon/ai) in src)) occupant = null if(!(locate(/mob/living/silicon/ai) in src)) occupant = null

View File

@@ -33,8 +33,8 @@
/obj/machinery/computer/atmoscontrol/attackby(var/obj/item/I as obj, var/mob/user as mob) /obj/machinery/computer/atmoscontrol/attackby(var/obj/item/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/card/emag) && !emagged) if(istype(I, /obj/item/weapon/card/emag) && !emagged)
user.visible_message("\red \The [user] swipes \a [I] through \the [src], causing the screen to flash!",\ user.visible_message("<span class='warning'>\The [user] swipes \a [I] through \the [src], causing the screen to flash!</span>",\
"\red You swipe your [I] through \the [src], the screen flashing as you gain full control.",\ "<span class='warning'>You swipe your [I] through \the [src], the screen flashing as you gain full control.</span>",\
"You hear the swipe of a card through a reader, and an electronic warble.") "You hear the swipe of a card through a reader, and an electronic warble.")
atmos_control.emagged = 1 atmos_control.emagged = 1
return return

View File

@@ -16,7 +16,7 @@
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You wrench the frame into place." user << "<span class='notice'>You wrench the frame into place.</span>"
src.anchored = 1 src.anchored = 1
src.state = 1 src.state = 1
if(istype(P, /obj/item/weapon/weldingtool)) if(istype(P, /obj/item/weapon/weldingtool))
@@ -27,35 +27,35 @@
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
if(!src || !WT.isOn()) return if(!src || !WT.isOn()) return
user << "\blue You deconstruct the frame." user << "<span class='notice'>You deconstruct the frame.</span>"
new /obj/item/stack/material/steel( src.loc, 5 ) new /obj/item/stack/material/steel( src.loc, 5 )
qdel(src) qdel(src)
if(1) if(1)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You unfasten the frame." user << "<span class='notice'>You unfasten the frame.</span>"
src.anchored = 0 src.anchored = 0
src.state = 0 src.state = 0
if(istype(P, /obj/item/weapon/circuitboard) && !circuit) if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
var/obj/item/weapon/circuitboard/B = P var/obj/item/weapon/circuitboard/B = P
if(B.board_type == "computer") if(B.board_type == "computer")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "\blue You place the circuit board inside the frame." user << "<span class='notice'>You place the circuit board inside the frame.</span>"
src.icon_state = "1" src.icon_state = "1"
src.circuit = P src.circuit = P
user.drop_item() user.drop_item()
P.loc = src P.loc = src
else else
user << "\red This frame does not accept circuit boards of this type!" user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
if(istype(P, /obj/item/weapon/screwdriver) && circuit) if(istype(P, /obj/item/weapon/screwdriver) && circuit)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You screw the circuit board into place." user << "<span class='notice'>You screw the circuit board into place.</span>"
src.state = 2 src.state = 2
src.icon_state = "2" src.icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit) if(istype(P, /obj/item/weapon/crowbar) && circuit)
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "\blue You remove the circuit board." user << "<span class='notice'>You remove the circuit board.</span>"
src.state = 1 src.state = 1
src.icon_state = "0" src.icon_state = "0"
circuit.loc = src.loc circuit.loc = src.loc
@@ -63,7 +63,7 @@
if(2) if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit) if(istype(P, /obj/item/weapon/screwdriver) && circuit)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You unfasten the circuit board." user << "<span class='notice'>You unfasten the circuit board.</span>"
src.state = 1 src.state = 1
src.icon_state = "1" src.icon_state = "1"
if(istype(P, /obj/item/stack/cable_coil)) if(istype(P, /obj/item/stack/cable_coil))
@@ -81,7 +81,7 @@
if(3) if(3)
if(istype(P, /obj/item/weapon/wirecutters)) if(istype(P, /obj/item/weapon/wirecutters))
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
user << "\blue You remove the cables." user << "<span class='notice'>You remove the cables.</span>"
src.state = 2 src.state = 2
src.icon_state = "2" src.icon_state = "2"
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc ) var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
@@ -102,13 +102,13 @@
if(4) if(4)
if(istype(P, /obj/item/weapon/crowbar)) if(istype(P, /obj/item/weapon/crowbar))
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "\blue You remove the glass panel." user << "<span class='notice'>You remove the glass panel.</span>"
src.state = 3 src.state = 3
src.icon_state = "3" src.icon_state = "3"
new /obj/item/stack/material/glass( src.loc, 2 ) new /obj/item/stack/material/glass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver)) if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor." user << "<span class='notice'>You connect the monitor.</span>"
var/B = new src.circuit.build_path ( src.loc ) var/B = new src.circuit.build_path ( src.loc )
src.circuit.construct(B) src.circuit.construct(B)
qdel(src) qdel(src)

View File

@@ -94,7 +94,7 @@
attack_hand(var/mob/user as mob) attack_hand(var/mob/user as mob)
if (src.z > 6) if (src.z > 6)
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!" user << "<span class='danger'>Unable to establish a connection:</span> You're too far away from the station!"
return return
if(stat & (NOPOWER|BROKEN)) return if(stat & (NOPOWER|BROKEN)) return

View File

@@ -45,13 +45,13 @@
else else
return return
authorised = 1 authorised = 1
user << "\blue You authorised the circuit network!" user << "<span class='notice'>You authorised the circuit network!</span>"
updateDialog() updateDialog()
else else
user << "\blue You must select a camera network circuit!" user << "<span class='warning'>You must select a camera network circuit!</span>"
else if(istype(I,/obj/item/weapon/screwdriver)) else if(istype(I,/obj/item/weapon/screwdriver))
secured = !secured secured = !secured
user.visible_message("\blue The [src] can [secured ? "no longer" : "now"] be modified.") user.visible_message("<span class='notice'>The [src] can [secured ? "no longer" : "now"] be modified.</span>")
updateBuildPath() updateBuildPath()
return return
@@ -114,14 +114,14 @@
else else
return return
authorised = 1 authorised = 1
usr << "\blue You authorised the circuit network!" usr << "<span class='notice'>You authorised the circuit network!</span>"
updateDialog() updateDialog()
else else
usr << "\blue You must select a camera network circuit!" usr << "<span class='warning'>You must select a camera network circuit!</span>"
else if( href_list["removeauth"] ) else if( href_list["removeauth"] )
authorised = 0 authorised = 0
updateDialog() updateDialog()
updateDialog() updateDialog()
if(istype(src.loc,/mob)) if(istype(src.loc,/mob))
attack_self(src.loc) attack_self(src.loc)

View File

@@ -208,7 +208,7 @@
jobdatum = J jobdatum = J
break break
if(!jobdatum) if(!jobdatum)
usr << "\red No log exists for this job: [t1]" usr << "<span class='warning'>No log exists for this job: [t1]</span>"
return return
access = jobdatum.get_access() access = jobdatum.get_access()

View File

@@ -124,12 +124,12 @@
for (var/obj/C in src) for (var/obj/C in src)
C.loc = src.loc C.loc = src.loc
if (src.stat & BROKEN) if (src.stat & BROKEN)
user << "\blue The broken glass falls out." user << "<span class='notice'>The broken glass falls out.</span>"
new /obj/item/weapon/material/shard( src.loc ) new /obj/item/weapon/material/shard( src.loc )
A.state = 3 A.state = 3
A.icon_state = "3" A.icon_state = "3"
else else
user << "\blue You disconnect the monitor." user << "<span class='notice'>You disconnect the monitor.</span>"
A.state = 4 A.state = 4
A.icon_state = "4" A.icon_state = "4"
M.deconstruct(src) M.deconstruct(src)

Some files were not shown because too many files have changed in this diff Show More