mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge remote-tracking branch 'remotes/upstream/dev' into definecrusade
This commit is contained in:
@@ -24,6 +24,7 @@ script:
|
||||
- shopt -s globstar
|
||||
- (! grep 'step_[xy]' maps/**/*.dmm)
|
||||
- (! 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")
|
||||
- DreamMaker baystation12.dme
|
||||
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
return
|
||||
src.add_fingerprint(usr)
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
usr.set_machine(src)
|
||||
ui_interact(user)
|
||||
@@ -242,20 +242,20 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
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(dir & (NORTH|SOUTH))
|
||||
@@ -263,7 +263,7 @@
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
anchored = !anchored
|
||||
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()
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -183,7 +183,7 @@ Thus, the two variables affect pump operation are set in New():
|
||||
return
|
||||
src.add_fingerprint(usr)
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
usr.set_machine(src)
|
||||
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))
|
||||
return ..()
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -87,15 +87,15 @@
|
||||
int_pressure += P.air.return_pressure()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
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)
|
||||
if(do_after(user, 40))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -134,22 +134,22 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
if (locate(/obj/machinery/portable_atmospherics, src.loc))
|
||||
return 1
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -134,16 +134,16 @@
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
return
|
||||
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
|
||||
var/dat
|
||||
|
||||
@@ -109,15 +109,15 @@
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
@@ -127,7 +127,7 @@
|
||||
return
|
||||
src.add_fingerprint(usr)
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
usr.set_machine(src)
|
||||
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br>
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
if(!powered())
|
||||
return
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -350,21 +350,21 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
@@ -448,7 +448,7 @@
|
||||
if(!powered())
|
||||
return
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -70,20 +70,20 @@
|
||||
return ..()
|
||||
var/turf/T = src.loc
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
@@ -358,22 +358,22 @@
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
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(!src || !WT.isOn()) return
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
||||
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
|
||||
update_icon()
|
||||
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
|
||||
update_icon()
|
||||
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
|
||||
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
|
||||
else
|
||||
..()
|
||||
@@ -396,25 +396,25 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
var/turf/T = src.loc
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -258,25 +258,25 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
var/turf/T = src.loc
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
if(!powered())
|
||||
return
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -294,21 +294,21 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -649,7 +649,7 @@ obj/machinery/atmospherics/mains_pipe/valve
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
if(!src.allowed(user))
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -82,21 +82,21 @@
|
||||
return ..()
|
||||
var/turf/T = src.loc
|
||||
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
|
||||
var/datum/gas_mixture/int_air = return_air()
|
||||
var/datum/gas_mixture/env_air = loc.return_air()
|
||||
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)
|
||||
return 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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"You hear ratchet.")
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear a ratchet.")
|
||||
new /obj/item/pipe(loc, make_from=src)
|
||||
for (var/obj/machinery/meter/meter in T)
|
||||
if (meter.target == src)
|
||||
@@ -214,7 +214,7 @@
|
||||
else return 1
|
||||
|
||||
/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)
|
||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
||||
smoke.set_up(1,0, src.loc, 0)
|
||||
@@ -1121,19 +1121,19 @@
|
||||
|
||||
if(istype(W, /obj/item/device/analyzer) && in_range(user, src))
|
||||
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/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)
|
||||
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)
|
||||
user << "\blue [gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%"
|
||||
user << "\blue Temperature: [round(parent.air.temperature-T0C)]°C"
|
||||
user << "<span class='notice'>[gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%</span>"
|
||||
user << "<span class='notice'>Temperature: [round(parent.air.temperature-T0C)]°C</span>"
|
||||
else
|
||||
user << "\blue Tank is empty!"
|
||||
user << "<span class='notice'>Tank is empty!</span>"
|
||||
|
||||
/obj/machinery/atmospherics/pipe/tank/air
|
||||
name = "Pressure Tank (Air)"
|
||||
|
||||
@@ -48,7 +48,7 @@ obj/item/weapon/tank
|
||||
adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num)
|
||||
set src in world
|
||||
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
|
||||
|
||||
air_contents.temperature = temperature
|
||||
@@ -74,7 +74,7 @@ turf/simulated/floor
|
||||
else
|
||||
usr << "Space Borders: None"
|
||||
else
|
||||
usr << "\blue [x],[y] has no parent air group."
|
||||
usr << "<span class='notice'>[x],[y] has no parent air group.</span>"
|
||||
|
||||
verb
|
||||
create_wall()
|
||||
@@ -329,7 +329,7 @@ obj/machinery/atmospherics
|
||||
set src in world
|
||||
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]"
|
||||
for(var/obj/O in network_node1.normal_members)
|
||||
world << "member: [O.x], [O.y]"
|
||||
@@ -406,7 +406,7 @@ turf/simulated
|
||||
set src in world
|
||||
set category = "Minor"
|
||||
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)
|
||||
usr << "[trace_gas.type]: [trace_gas.moles]"
|
||||
|
||||
@@ -515,7 +515,7 @@ mob
|
||||
|
||||
fire_report()
|
||||
set category = "Debug"
|
||||
usr << "\b \red Fire Report"
|
||||
usr << "<span class='danger'>Fire Report</span>"
|
||||
for(var/obj/effect/hotspot/flame in world)
|
||||
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ datum
|
||||
|
||||
setup()
|
||||
set background = 1
|
||||
world << "\red \b Processing Geometry..."
|
||||
world << "<span class='danger'>Processing Geometry...</span>"
|
||||
sleep(1)
|
||||
|
||||
var/start_time = world.timeofday
|
||||
@@ -156,7 +156,7 @@ datum
|
||||
assemble_group_turf(S)
|
||||
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)
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
for(var/atom/A in T.contents)
|
||||
if(A.density)
|
||||
blocked = 1
|
||||
usr << "\red You bump into [A.name]."
|
||||
usr << "<span class='warning'>You bump into \the [A].</span>"
|
||||
break
|
||||
if(!blocked)
|
||||
usr.Move(T)
|
||||
usr << "You move upwards."
|
||||
else
|
||||
usr << "\red There is something in your way."
|
||||
usr << "<span class='warning'>There is something in your way.</span>"
|
||||
if (legal == 0)
|
||||
usr << "There is nothing of interest in this direction."
|
||||
return 1
|
||||
@@ -40,13 +40,13 @@
|
||||
for(var/atom/A in T.contents)
|
||||
if(A.density)
|
||||
blocked = 1
|
||||
usr << "\red You bump into [A.name]."
|
||||
usr << "<span class='warning'>You bump into \the [A].</span>"
|
||||
break
|
||||
if(!blocked)
|
||||
usr.Move(T)
|
||||
usr << "You move downwards."
|
||||
else
|
||||
usr << "\red You cant move through the floor."
|
||||
usr << "<span class='warning'>You cant move through the floor.</span>"
|
||||
if (legal == 0)
|
||||
usr << "There is nothing of interest in this direction."
|
||||
return 1
|
||||
|
||||
@@ -73,7 +73,7 @@ obj/machinery/atmospherics/pipe/zpipe/check_pressure(pressure)
|
||||
else return 1
|
||||
|
||||
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)
|
||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
||||
smoke.set_up(1,0, src.loc, 0)
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
if(blocked || istype(T, /turf/simulated/wall))
|
||||
M << "Something is blocking the ladder."
|
||||
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)
|
||||
|
||||
/* hatch
|
||||
@@ -188,7 +188,7 @@
|
||||
qdel(src)
|
||||
if(M.z == z && get_dist(src,M) <= 1)
|
||||
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)
|
||||
flick(top_icon_state_close,top_hatch)
|
||||
bottom_hatch.overlays -= green_overlay
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
return
|
||||
var/obj/item/stack/rods/R = C
|
||||
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)
|
||||
ReplaceWithLattice()
|
||||
return
|
||||
@@ -126,5 +126,5 @@
|
||||
S.use(1)
|
||||
return
|
||||
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
|
||||
|
||||
@@ -80,7 +80,7 @@ obj/item/check_airflow_movable(n)
|
||||
return
|
||||
if(src:shoes && src:shoes.flags & NOSLIP)
|
||||
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)
|
||||
if(airflow_falloff < 1)
|
||||
airflow_dest = null
|
||||
@@ -144,7 +144,7 @@ obj/item/check_airflow_movable(n)
|
||||
if(istype(src:shoes, /obj/item/clothing/shoes/magboots))
|
||||
if(src:shoes.flags & NOSLIP)
|
||||
return
|
||||
src << "\red You are pushed away by airflow!"
|
||||
src << "<span clas='danger'>You are pushed away by airflow!</span>"
|
||||
last_airflow = world.time
|
||||
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
|
||||
if(airflow_falloff < 1)
|
||||
@@ -197,7 +197,7 @@ atom/movable/proc/airflow_hit(atom/A)
|
||||
|
||||
mob/airflow_hit(atom/A)
|
||||
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)
|
||||
var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh
|
||||
Weaken(weak_amt)
|
||||
@@ -205,7 +205,7 @@ mob/airflow_hit(atom/A)
|
||||
|
||||
obj/airflow_hit(atom/A)
|
||||
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)
|
||||
. = ..()
|
||||
|
||||
@@ -215,7 +215,7 @@ obj/item/airflow_hit(atom/A)
|
||||
|
||||
mob/living/carbon/human/airflow_hit(atom/A)
|
||||
// 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)
|
||||
if (prob(33))
|
||||
loc:add_blood(src)
|
||||
|
||||
@@ -187,7 +187,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
|
||||
#ifdef ZASDBG
|
||||
if(updated != updating.len)
|
||||
tick_progress = "[updating.len - updated] tiles left unupdated."
|
||||
world << "\red [tick_progress]"
|
||||
world << "<span class='danger'>[tick_progress]</span>"
|
||||
. = 0
|
||||
#endif
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ obj/var/contaminated = 0
|
||||
if(vsc.plc.SKIN_BURNS)
|
||||
if(!pl_head_protected() || !pl_suit_protected())
|
||||
burn_skin(0.75)
|
||||
if(prob(20)) src << "\red Your skin burns!"
|
||||
if(prob(20)) src << "<span class='danger'>Your skin burns!</span>"
|
||||
updatehealth()
|
||||
|
||||
//Burn eyes if exposed.
|
||||
@@ -111,7 +111,7 @@ obj/var/contaminated = 0
|
||||
if(vsc.plc.GENETIC_CORRUPTION)
|
||||
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
|
||||
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)
|
||||
|
||||
|
||||
@@ -122,11 +122,11 @@ obj/var/contaminated = 0
|
||||
|
||||
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
|
||||
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
|
||||
eye_blurry = min(eye_blurry+1.5,50)
|
||||
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
|
||||
|
||||
/mob/living/carbon/human/proc/pl_head_protected()
|
||||
|
||||
@@ -168,7 +168,7 @@ var/global/vs_control/vsc = new
|
||||
vars[ch] = vw
|
||||
if(how == "Toggle")
|
||||
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)
|
||||
ChangeSettingsDialog(user,plc.settings)
|
||||
else
|
||||
@@ -321,7 +321,7 @@ var/global/vs_control/vsc = new
|
||||
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()
|
||||
|
||||
|
||||
@@ -169,16 +169,15 @@ proc/listclearnulls(list/list)
|
||||
return output
|
||||
|
||||
//Randomize: Return the list in a random order
|
||||
/proc/shuffle(var/list/shufflelist)
|
||||
if(!shufflelist)
|
||||
/proc/shuffle(var/list/L)
|
||||
if(!L)
|
||||
return
|
||||
var/list/new_list = list()
|
||||
var/list/old_list = shufflelist.Copy()
|
||||
while(old_list.len)
|
||||
var/item = pick(old_list)
|
||||
new_list += item
|
||||
old_list -= item
|
||||
return new_list
|
||||
|
||||
L = L.Copy()
|
||||
|
||||
for(var/i=1; i<L.len; i++)
|
||||
L.Swap(i, rand(i,L.len))
|
||||
return L
|
||||
|
||||
//Return a list with no duplicate entries
|
||||
/proc/uniquelist(var/list/L)
|
||||
|
||||
@@ -233,7 +233,7 @@ var/syndicate_code_response//Code response for traitors.
|
||||
set name = "Generate Code Phrase"
|
||||
set category = "Debug"
|
||||
|
||||
world << "\red Code Phrase is: \black [generate_code_phrase()]"
|
||||
world << "<span class='warning'>Code Phrase is:</span> [generate_code_phrase()]"
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
input = replace_characters(input, list("\n"=" ","\t"=" "))
|
||||
|
||||
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.
|
||||
//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)
|
||||
|
||||
@@ -1363,3 +1363,8 @@ var/list/WALLITEMS = list(
|
||||
temp_col = "0[temp_col]"
|
||||
colour += temp_col
|
||||
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)
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
nutrition = max(nutrition - rand(1,5),0)
|
||||
handle_regular_hud_updates()
|
||||
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
|
||||
/mob/proc/face_atom(var/atom/A)
|
||||
|
||||
@@ -262,11 +262,11 @@ datum/hud/New(mob/owner)
|
||||
set hidden = 1
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
if(!client) return
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
if(!client) return
|
||||
client.inquisitive_ghost = !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
|
||||
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)
|
||||
if(client.buildmode)
|
||||
|
||||
@@ -120,7 +120,7 @@ var/const/tk_maxrange = 15
|
||||
if(8 to tk_maxrange)
|
||||
user.next_move += 10
|
||||
else
|
||||
user << "\blue Your mind won't reach that far."
|
||||
user << "<span class='notice'>Your mind won't reach that far.</span>"
|
||||
return
|
||||
|
||||
if(!focus)
|
||||
|
||||
@@ -9,7 +9,7 @@ client
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -602,8 +602,8 @@ client
|
||||
if(!i)
|
||||
usr << "No objects of this type exist"
|
||||
return
|
||||
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) ")
|
||||
log_admin("[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")
|
||||
var/i = 0
|
||||
for(var/obj/Obj in world)
|
||||
@@ -613,8 +613,8 @@ client
|
||||
if(!i)
|
||||
usr << "No objects of this type exist"
|
||||
return
|
||||
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) ")
|
||||
log_admin("[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"])
|
||||
if(!check_rights(R_DEBUG|R_FUN)) return
|
||||
@@ -941,8 +941,8 @@ client
|
||||
return
|
||||
|
||||
if(amount != 0)
|
||||
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] ")
|
||||
log_admin("[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"]
|
||||
|
||||
if(href_list["datumrefresh"])
|
||||
|
||||
@@ -53,25 +53,25 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your throat feels sore."
|
||||
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||
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(prob(1))
|
||||
affected_mob.emote("sneeze")
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(2))
|
||||
affected_mob << "\red Your muscles ache."
|
||||
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.take_organ_damage(1)
|
||||
if(prob(2))
|
||||
affected_mob << "\red Your stomach hurts."
|
||||
affected_mob << "<span class='warning>Your stomach hurts.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.adjustToxLoss(1)
|
||||
affected_mob.updatehealth()
|
||||
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.updatehealth()
|
||||
if(prob(50))
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
|
||||
if(stage == 1)
|
||||
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.")
|
||||
if(stage > 1)
|
||||
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.adjustToxLoss(1)
|
||||
if(stage > 2)
|
||||
@@ -37,13 +37,13 @@
|
||||
var/mob/living/carbon/human/H = affected_mob
|
||||
H.vomit()
|
||||
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.adjustToxLoss(3)
|
||||
if(stage > 3)
|
||||
if(prob(1) && ishuman(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)
|
||||
|
||||
var/obj/item/organ/external/groin = H.get_organ("groin")
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
switch(stage)
|
||||
if(1)
|
||||
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(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))
|
||||
affected_mob << "\red BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
|
||||
affected_mob << "<span class='danger'>BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</span>"
|
||||
if(3)
|
||||
//Should give the bee spit verb
|
||||
if(4)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(prob(2))
|
||||
affected_mob.emote("yawn")
|
||||
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))
|
||||
affected_mob.adjustBrainLoss(1)
|
||||
affected_mob.updatehealth()
|
||||
@@ -34,12 +34,12 @@
|
||||
affected_mob.adjustBrainLoss(2)
|
||||
affected_mob.updatehealth()
|
||||
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))
|
||||
affected_mob.adjustToxLoss(3)
|
||||
affected_mob.updatehealth()
|
||||
if(prob(2))
|
||||
affected_mob << "\red Your head hurts." */
|
||||
affected_mob << "<span class='warning'>Your head hurts.</span>" */
|
||||
if(4)
|
||||
if(prob(2))
|
||||
affected_mob.emote("stare")
|
||||
@@ -49,14 +49,14 @@
|
||||
affected_mob.adjustToxLoss(4)
|
||||
affected_mob.updatehealth()
|
||||
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
|
||||
affected_mob.adjustBrainLoss(3)
|
||||
affected_mob.updatehealth()
|
||||
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))
|
||||
affected_mob << "\red You lose consciousness..."
|
||||
affected_mob << "<span class='warning'>You lose consciousness...</span>"
|
||||
for(var/mob/O in viewers(affected_mob, null))
|
||||
O.show_message("[affected_mob] suddenly collapses", 1)
|
||||
affected_mob.Paralyse(rand(5,10))
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
if(2)
|
||||
/*
|
||||
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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
if(prob(1) && prob(5))
|
||||
affected_mob << "\blue You feel better."
|
||||
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||
cure()
|
||||
return
|
||||
if(prob(1))
|
||||
@@ -33,22 +33,22 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your throat feels sore."
|
||||
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||
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(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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
if(prob(1) && prob(1))
|
||||
affected_mob << "\blue You feel better."
|
||||
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||
cure()
|
||||
return
|
||||
if(prob(1))
|
||||
@@ -56,9 +56,9 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your throat feels sore."
|
||||
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||
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(!affected_mob.resistances.Find(/datum/disease/flu))
|
||||
var/datum/disease/Flu = new /datum/disease/flu(0)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(2)
|
||||
affected_mob.bodytemperature -= 10
|
||||
if(prob(1) && prob(10))
|
||||
affected_mob << "\blue You feel better."
|
||||
affected_mob << "<span class='notice>You feel better.</span>"
|
||||
cure()
|
||||
return
|
||||
if(prob(1))
|
||||
@@ -24,9 +24,9 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your throat feels sore."
|
||||
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||
if(prob(5))
|
||||
affected_mob << "\red You feel stiff."
|
||||
affected_mob << "<span class='warning'>You feel stiff.</span>"
|
||||
if(3)
|
||||
affected_mob.bodytemperature -= 20
|
||||
if(prob(1))
|
||||
@@ -34,6 +34,6 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your throat feels sore."
|
||||
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||
if(prob(10))
|
||||
affected_mob << "\red You feel stiff."
|
||||
affected_mob << "<span class='warning'>You feel stiff.</span>"
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
if(prob(8))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your muscles ache."
|
||||
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.take_organ_damage(1)
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your stomach hurts."
|
||||
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.adjustToxLoss(2)
|
||||
affected_mob.updatehealth()
|
||||
@@ -42,7 +42,7 @@
|
||||
src.original_dna["UI"] = affected_mob.dna.UI.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/newSE=strain_data["SE"]
|
||||
affected_mob.UpdateAppearance(newUI.Copy())
|
||||
@@ -65,5 +65,5 @@
|
||||
affected_mob.dna.UpdateSE()
|
||||
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>"
|
||||
..()
|
||||
@@ -22,7 +22,7 @@
|
||||
else if(prob(5))
|
||||
affected_mob.emote("gasp")
|
||||
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(prob(10))
|
||||
affected_mob.emote("cough")
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
if(2)
|
||||
/*
|
||||
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--
|
||||
return
|
||||
*/
|
||||
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--
|
||||
return
|
||||
if(prob(1))
|
||||
@@ -30,11 +30,11 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your muscles ache."
|
||||
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.take_organ_damage(1)
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your stomach hurts."
|
||||
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.adjustToxLoss(1)
|
||||
affected_mob.updatehealth()
|
||||
@@ -42,12 +42,12 @@
|
||||
if(3)
|
||||
/*
|
||||
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--
|
||||
return
|
||||
*/
|
||||
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--
|
||||
return
|
||||
if(prob(1))
|
||||
@@ -55,11 +55,11 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("cough")
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your muscles ache."
|
||||
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.take_organ_damage(1)
|
||||
if(prob(1))
|
||||
affected_mob << "\red Your stomach hurts."
|
||||
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||
if(prob(20))
|
||||
affected_mob.adjustToxLoss(1)
|
||||
affected_mob.updatehealth()
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(prob(5))
|
||||
affected_mob.emote("cough")
|
||||
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)
|
||||
|
||||
if(3)
|
||||
@@ -31,6 +31,6 @@
|
||||
if(prob(5))
|
||||
affected_mob.emote("cough")
|
||||
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)
|
||||
return
|
||||
|
||||
@@ -26,14 +26,14 @@
|
||||
else if(prob(5))
|
||||
affected_mob.emote("gasp")
|
||||
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(prob(10))
|
||||
affected_mob.emote("cough")
|
||||
affected_mob.adjustToxLoss(5)
|
||||
affected_mob.updatehealth()
|
||||
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))
|
||||
affected_mob.gib()
|
||||
else
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
switch(stage)
|
||||
if(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))
|
||||
for(var/obj/M in orange(2,affected_mob))
|
||||
if(!M.anchored && (M.flags & CONDUCT))
|
||||
@@ -36,9 +36,9 @@
|
||||
*/
|
||||
if(3)
|
||||
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))
|
||||
affected_mob << "\red You feel like clowning around."
|
||||
affected_mob << "<span class='warning'>You feel like clowning around.</span>"
|
||||
if(prob(4))
|
||||
for(var/obj/M in orange(4,affected_mob))
|
||||
if(!M.anchored && (M.flags & CONDUCT))
|
||||
@@ -64,9 +64,9 @@
|
||||
*/
|
||||
if(4)
|
||||
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))
|
||||
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))
|
||||
for(var/obj/M in orange(6,affected_mob))
|
||||
if(!M.anchored && (M.flags & CONDUCT))
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
..()
|
||||
switch(stage)
|
||||
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(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(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(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
|
||||
@@ -33,55 +33,55 @@
|
||||
if(restcure)
|
||||
/*
|
||||
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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
if (prob(8))
|
||||
affected_mob << "\red Your head hurts."
|
||||
affected_mob << "<span class='warning'>Your head hurts.</span>"
|
||||
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))
|
||||
affected_mob << "\red You feel angry."
|
||||
affected_mob << "<span class='warning'>You feel angry.</span>"
|
||||
if(2)
|
||||
if(restcure)
|
||||
/*
|
||||
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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
if (prob(8))
|
||||
affected_mob << "\red Your skin feels loose."
|
||||
affected_mob << "<span class='warning'>Your skin feels loose.</span>"
|
||||
if (prob(10))
|
||||
affected_mob << "You feel very strange."
|
||||
affected_mob << "<span class='warning'>You feel very strange.</span>"
|
||||
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)
|
||||
if (prob(4))
|
||||
affected_mob << "\red Your stomach churns."
|
||||
affected_mob << "<span class='warning'>Your stomach churns.</span>"
|
||||
if(3)
|
||||
if(restcure)
|
||||
/*
|
||||
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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
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(50))
|
||||
@@ -93,12 +93,12 @@
|
||||
if(restcure)
|
||||
/*
|
||||
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()
|
||||
return
|
||||
*/
|
||||
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()
|
||||
return
|
||||
if (prob(60))
|
||||
|
||||
@@ -22,29 +22,29 @@
|
||||
affected_mob.adjustToxLoss(5)
|
||||
affected_mob.updatehealth()
|
||||
if(prob(1))
|
||||
affected_mob << "\red You feel strange..."
|
||||
affected_mob << "<span class='warning'>You feel strange...</span>"
|
||||
if(3)
|
||||
if(affected_mob.ckey == "rosham")
|
||||
src.cure()
|
||||
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))
|
||||
affected_mob.emote("gasp")
|
||||
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(affected_mob.ckey == "rosham")
|
||||
src.cure()
|
||||
if(prob(10))
|
||||
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))
|
||||
affected_mob.adjustToxLoss(5)
|
||||
affected_mob.updatehealth()
|
||||
if(5)
|
||||
if(affected_mob.ckey == "rosham")
|
||||
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))
|
||||
affected_mob.gib()
|
||||
else
|
||||
|
||||
@@ -19,36 +19,36 @@
|
||||
switch(stage)
|
||||
if(2)
|
||||
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)
|
||||
if (prob(9))
|
||||
affected_mob << "\red Beep...boop.."
|
||||
affected_mob << "<span class='warning'>Beep...boop..</span>"
|
||||
if (prob(9))
|
||||
affected_mob << "\red Bop...beeep..."
|
||||
affected_mob << "<span class='warning'>Bop...beeep...</span>"
|
||||
if(3)
|
||||
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)
|
||||
if (prob(8))
|
||||
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
||||
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)
|
||||
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)
|
||||
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 (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)
|
||||
if (prob(20))
|
||||
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
|
||||
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)
|
||||
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.updatehealth()
|
||||
if(prob(40)) //So everyone can feel like robot Seth Brundle
|
||||
|
||||
@@ -31,14 +31,14 @@ STI KALY - blind
|
||||
if(prob(1)&&prob(50))
|
||||
affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
|
||||
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(prob(1)&&prob(50))
|
||||
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
|
||||
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)
|
||||
|
||||
@@ -46,7 +46,7 @@ STI KALY - blind
|
||||
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
|
||||
return
|
||||
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)
|
||||
if(prob(1)&&prob(1))
|
||||
teleport()
|
||||
|
||||
@@ -17,38 +17,38 @@
|
||||
switch(stage)
|
||||
if(2)
|
||||
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)
|
||||
if (prob(9))
|
||||
affected_mob << "\red Kill..."
|
||||
affected_mob << "<span class='warning'>Kill...</span>"
|
||||
if (prob(9))
|
||||
affected_mob << "\red Kill..."
|
||||
affected_mob << "<span class='warning'>Kill...</span>"
|
||||
if(3)
|
||||
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)
|
||||
/*
|
||||
if (prob(8))
|
||||
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
||||
*/
|
||||
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)
|
||||
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)
|
||||
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 (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)
|
||||
if (prob(20))
|
||||
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
|
||||
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)
|
||||
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.updatehealth()
|
||||
if(prob(40))
|
||||
|
||||
@@ -139,7 +139,7 @@ Data storage vars:
|
||||
arg_list = arguments
|
||||
return 1
|
||||
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
|
||||
|
||||
proc/toggle_null_checks()
|
||||
|
||||
@@ -332,7 +332,7 @@ datum/mind
|
||||
var/mob/living/carbon/monkey/M = current
|
||||
if (istype(H))
|
||||
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
|
||||
M = H.monkeyize()
|
||||
src = M.mind
|
||||
@@ -347,7 +347,7 @@ datum/mind
|
||||
var/mob/living/carbon/monkey/M = current
|
||||
if (istype(H))
|
||||
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
|
||||
M = H.monkeyize()
|
||||
src = M.mind
|
||||
@@ -362,7 +362,7 @@ datum/mind
|
||||
D.cure(0)
|
||||
sleep(0) //because deleting of virus is doing throught spawn(0)
|
||||
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/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0
|
||||
src = null
|
||||
@@ -432,7 +432,7 @@ datum/mind
|
||||
|
||||
else if (href_list["obj_announce"])
|
||||
var/obj_count = 1
|
||||
current << "\blue Your current objectives:"
|
||||
current << "<span class='notice'>Your current objectives:</span>"
|
||||
for(var/datum/objective/objective in objectives)
|
||||
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
|
||||
obj_count++
|
||||
|
||||
@@ -282,7 +282,7 @@
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
|
||||
|
||||
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)
|
||||
|
||||
/obj/item/weapon/module
|
||||
@@ -342,7 +342,7 @@
|
||||
if (C.bugged && C.status)
|
||||
cameras.Add(C)
|
||||
if (length(cameras) == 0)
|
||||
usr << "\red No bugged functioning cameras found."
|
||||
usr << "<span class='warning'>No bugged functioning cameras found.</span>"
|
||||
return
|
||||
|
||||
var/list/friendly_cameras = new/list()
|
||||
|
||||
@@ -27,7 +27,7 @@ var/datum/antagonist/mutineer/mutineers
|
||||
/*
|
||||
var/list/directive_candidates = get_directive_candidates()
|
||||
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
|
||||
|
||||
head_loyalist = pick(loyalist_candidates)
|
||||
|
||||
@@ -61,5 +61,5 @@ var/datum/antagonist/highlander/highlanders
|
||||
if(is_special_character(H)) continue
|
||||
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.")
|
||||
@@ -64,7 +64,8 @@ var/datum/antagonist/rogue_ai/malf
|
||||
sleep(50)
|
||||
malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y"
|
||||
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)
|
||||
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)
|
||||
|
||||
@@ -290,60 +290,60 @@
|
||||
|
||||
if(ismuton(NOBREATHBLOCK,M))
|
||||
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)
|
||||
if(ismuton(REMOTEVIEWBLOCK,M))
|
||||
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)
|
||||
if(ismuton(REGENERATEBLOCK,M))
|
||||
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)
|
||||
if(ismuton(INCREASERUNBLOCK,M))
|
||||
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)
|
||||
if(ismuton(REMOTETALKBLOCK,M))
|
||||
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)
|
||||
if(ismuton(MORPHBLOCK,M))
|
||||
if(probinj(45,inj) || (mMorph in old_mutations))
|
||||
M.mutations.Add(mMorph)
|
||||
M << "\blue Your skin feels strange"
|
||||
M << "<span class='notice'>Your skin feels strange.</span>"
|
||||
if(ismuton(BLENDBLOCK,M))
|
||||
if(probinj(45,inj) || (mBlend in old_mutations))
|
||||
M.mutations.Add(mBlend)
|
||||
M << "\blue You feel alone"
|
||||
M << "<span class='notice'>You feel alone.</span>"
|
||||
if(ismuton(HALLUCINATIONBLOCK,M))
|
||||
if(probinj(45,inj) || (mHallucination in old_mutations))
|
||||
M.mutations.Add(mHallucination)
|
||||
M << "\blue Your mind says 'Hello'"
|
||||
M << "<span class='notice'>Your mind says 'Hello'.</span>"
|
||||
if(ismuton(NOPRINTSBLOCK,M))
|
||||
if(probinj(45,inj) || (mFingerprints in old_mutations))
|
||||
M.mutations.Add(mFingerprints)
|
||||
M << "\blue Your fingers feel numb"
|
||||
M << "<span class='notice'>Your fingers feel numb.</span>"
|
||||
if(ismuton(SHOCKIMMUNITYBLOCK,M))
|
||||
if(probinj(45,inj) || (mShock in old_mutations))
|
||||
M.mutations.Add(mShock)
|
||||
M << "\blue You feel strange"
|
||||
M << "<span class='notice'>You feel strange.</span>"
|
||||
if(ismuton(SMALLSIZEBLOCK,M))
|
||||
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)
|
||||
|
||||
|
||||
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),HULKBLOCK))
|
||||
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)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK))
|
||||
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))
|
||||
M << "\red You feel strange."
|
||||
M << "<span class='warning'>You feel strange.</span>"
|
||||
if (prob(95))
|
||||
if(prob(50))
|
||||
randmutb(M)
|
||||
@@ -353,41 +353,41 @@
|
||||
randmutg(M)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK))
|
||||
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))
|
||||
M << "\red You feel lightheaded."
|
||||
M << "<span class='warning'>You feel lightheaded.</span>"
|
||||
M.mutations.Add(CLUMSY)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK))
|
||||
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(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.see_in_dark = 8
|
||||
// M.see_invisible = 2
|
||||
M.mutations.Add(XRAY)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK))
|
||||
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(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)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK))
|
||||
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(probinj(15,inj) || (TK in old_mutations))
|
||||
M << "\blue You feel smarter."
|
||||
M << "<span class='warning'>You feel smarter.</span>"
|
||||
M.mutations.Add(TK)
|
||||
if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK))
|
||||
M.sdisabilities |= DEAF
|
||||
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))
|
||||
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(istype(M, /mob/living/carbon))
|
||||
|
||||
@@ -103,13 +103,13 @@
|
||||
if (usr.stat != 0)
|
||||
return
|
||||
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
|
||||
if (src.occupant)
|
||||
usr << "\blue <B>The scanner is already occupied!</B>"
|
||||
usr << "<span class='warning'>The scanner is already occupied!</span>"
|
||||
return
|
||||
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
|
||||
usr.stop_pulling()
|
||||
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)
|
||||
if(istype(item, /obj/item/weapon/reagent_containers/glass))
|
||||
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
|
||||
|
||||
beaker = item
|
||||
user.drop_item()
|
||||
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
|
||||
else if (!istype(item, /obj/item/weapon/grab))
|
||||
return
|
||||
@@ -137,10 +137,10 @@
|
||||
if (!ismob(G.affecting))
|
||||
return
|
||||
if (src.occupant)
|
||||
user << "\blue <B>The scanner is already occupied!</B>"
|
||||
user << "<span class='warning'>The scanner is already occupied!</span>"
|
||||
return
|
||||
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
|
||||
put_in(G.affecting)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
if(sdisability)
|
||||
M.sdisabilities|=sdisability
|
||||
if(activation_message)
|
||||
M << "\red [activation_message]"
|
||||
M << "<span class='warning'>[activation_message]</span>"
|
||||
else
|
||||
testing("[name] has no activation message.")
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(sdisability)
|
||||
M.sdisabilities &= (~sdisability)
|
||||
if(deactivation_message)
|
||||
M << "\red [deactivation_message]"
|
||||
M << "<span class='warning'>[deactivation_message]</span>"
|
||||
else
|
||||
testing("[name] has no deactivation message.")
|
||||
|
||||
|
||||
@@ -113,10 +113,10 @@
|
||||
M.mutations.Add(mutation)
|
||||
if(activation_messages.len)
|
||||
var/msg = pick(activation_messages)
|
||||
M << "\blue [msg]"
|
||||
M << "<span class='notice'>[msg]</span>"
|
||||
|
||||
/datum/dna/gene/basic/deactivate(var/mob/M)
|
||||
M.mutations.Remove(mutation)
|
||||
if(deactivation_messages.len)
|
||||
var/msg = pick(deactivation_messages)
|
||||
M << "\red [msg]"
|
||||
M << "<span class='warning'>[msg]</span>"
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
if(M.health <= 25)
|
||||
M.mutations.Remove(HULK)
|
||||
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.emote("collapse")
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
var/percent = round( 100.0 * start_state.score(end_state), 0.1)
|
||||
world << "<B>The station is [percent]% intact.</B>"
|
||||
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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/weapon/melee/cultblade
|
||||
name = "Cult Blade"
|
||||
name = "cult blade"
|
||||
desc = "An arcane weapon wielded by the followers of Nar-Sie"
|
||||
icon_state = "cultblade"
|
||||
item_state = "cultblade"
|
||||
@@ -17,7 +17,7 @@
|
||||
return ..()
|
||||
else
|
||||
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/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.
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
/obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob)
|
||||
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)
|
||||
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
qdel(src)
|
||||
return
|
||||
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)
|
||||
return
|
||||
return
|
||||
@@ -171,7 +171,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
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."))
|
||||
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
|
||||
|
||||
check_icon()
|
||||
@@ -355,8 +355,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
return
|
||||
M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red <B>[] beats [] with the arcane tome!</B>", user, M), 1)
|
||||
M << "\red You feel searing heat inside!"
|
||||
O.show_message("<span class='warning'>\The [user] beats \the [M] with \the [src]!</span>", 1)
|
||||
M << "<span class='danger'>You feel searing heat inside!</span>"
|
||||
|
||||
|
||||
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)
|
||||
C++
|
||||
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
|
||||
|
||||
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)
|
||||
return
|
||||
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
|
||||
if (chosen_rune == "teleport")
|
||||
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
|
||||
|
||||
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)
|
||||
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."
|
||||
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 << "<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
|
||||
if(do_after(user, 50))
|
||||
var/area/A = get_area(user)
|
||||
@@ -476,7 +476,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
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]
|
||||
R.word1 = english[required[1]]
|
||||
R.word2 = english[required[2]]
|
||||
@@ -524,7 +524,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
if(user)
|
||||
var/r
|
||||
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")
|
||||
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
|
||||
var/obj/effect/rune/R = new /obj/effect/rune
|
||||
|
||||
@@ -21,7 +21,7 @@ var/list/sacrificed = list()
|
||||
allrunesloc.len = index
|
||||
allrunesloc[index] = R.loc
|
||||
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))
|
||||
user.take_overall_damage(5, 0)
|
||||
qdel(src)
|
||||
@@ -30,9 +30,9 @@ var/list/sacrificed = list()
|
||||
user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting
|
||||
else
|
||||
user.whisper("Sas[pick("'","`")]so c'arta forbici!")
|
||||
user.visible_message("\red [user] disappears in a flash of red light!", \
|
||||
"\red You feel as your body gets dragged through the dimension of Nar-Sie!", \
|
||||
"\red You hear a sickening crunch and sloshing of viscera.")
|
||||
user.visible_message("<span class='warning'>\The [user] disappears in a flash of red light!</span>", \
|
||||
"<span class='warning'>You feel as your body gets dragged through the dimension of Nar-Sie!</span>", \
|
||||
"<span class='warning'>You hear a sickening crunch and sloshing of viscera.</span>")
|
||||
user.loc = allrunesloc[rand(1,index)]
|
||||
return
|
||||
if(istype(src,/obj/effect/rune))
|
||||
@@ -58,7 +58,7 @@ var/list/sacrificed = list()
|
||||
IP = R
|
||||
runecount++
|
||||
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))
|
||||
user.take_overall_damage(5, 0)
|
||||
qdel(src)
|
||||
@@ -67,9 +67,9 @@ var/list/sacrificed = list()
|
||||
culcount++
|
||||
if(culcount>=3)
|
||||
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.", \
|
||||
"\red You feel air moving from the rune - like as it was swapped with somewhere else.", \
|
||||
"\red You smell ozone.")
|
||||
user.visible_message("<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
|
||||
"<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
|
||||
"<span class='warning'>You smell ozone.</span>")
|
||||
for(var/obj/O in src.loc)
|
||||
if(!O.anchored)
|
||||
O.loc = IP.loc
|
||||
@@ -87,9 +87,9 @@ var/list/sacrificed = list()
|
||||
usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
|
||||
else
|
||||
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.", \
|
||||
"\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.", \
|
||||
"\red You hear a pop and smell ozone.")
|
||||
usr.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a book lies.</span>", \
|
||||
"<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>", \
|
||||
"<span class='warning'>You hear a pop and smell ozone.</span>")
|
||||
if(istype(src,/obj/effect/rune))
|
||||
new /obj/item/weapon/book/tome(src.loc)
|
||||
else
|
||||
@@ -157,7 +157,7 @@ var/list/sacrificed = list()
|
||||
if (target.species && (target.species.flags & NO_PAIN))
|
||||
target.visible_message("<span class='warning'>The markings below [target] glow a bloody red.</span>")
|
||||
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
|
||||
waiting_for_input[target] = 1
|
||||
@@ -223,22 +223,22 @@ var/list/sacrificed = list()
|
||||
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")
|
||||
var/bdrain = rand(1,25)
|
||||
D << "\red You feel weakened."
|
||||
D << "<span class='warning'>You feel weakened.</span>"
|
||||
D.take_overall_damage(bdrain, 0)
|
||||
drain += bdrain
|
||||
if(!drain)
|
||||
return fizzle()
|
||||
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]!", \
|
||||
"\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \
|
||||
"\red You hear a liquid flowing.")
|
||||
usr.visible_message("<span class='warning'>Blood flows from the rune into [usr]!</span>", \
|
||||
"<span class='warning'>The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.</span>", \
|
||||
"<span class='warning'>You hear a liquid flowing.</span>")
|
||||
var/mob/living/user = usr
|
||||
if(user.bhunger)
|
||||
user.bhunger = max(user.bhunger-2*drain,0)
|
||||
if(drain>=50)
|
||||
user.visible_message("\red [user]'s eyes give off eerie red glow!", \
|
||||
"\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \
|
||||
"\red You hear a heartbeat.")
|
||||
user.visible_message("<span class='warning'>\The [user]'s eyes give off eerie red glow!</span>", \
|
||||
"<span class='warning'>...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.</span>", \
|
||||
"<span class='warning'>You hear a heartbeat.</span>")
|
||||
user.bhunger += drain
|
||||
src = user
|
||||
spawn()
|
||||
@@ -264,16 +264,16 @@ var/list/sacrificed = list()
|
||||
if(usr.loc==src.loc)
|
||||
if(usr.seer==1)
|
||||
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.seer = 0
|
||||
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.seer = 0
|
||||
else
|
||||
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.seer = 1
|
||||
return
|
||||
@@ -297,7 +297,7 @@ var/list/sacrificed = list()
|
||||
break
|
||||
if(!corpse_to_raise)
|
||||
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()
|
||||
|
||||
|
||||
@@ -315,9 +315,9 @@ var/list/sacrificed = list()
|
||||
|
||||
if(!body_to_sacrifice)
|
||||
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
|
||||
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()
|
||||
|
||||
var/mob/dead/observer/ghost
|
||||
@@ -328,7 +328,7 @@ var/list/sacrificed = list()
|
||||
break
|
||||
|
||||
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()
|
||||
|
||||
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)
|
||||
//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!")
|
||||
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.", \
|
||||
"\red Life... I'm alive again...", \
|
||||
"\red You hear a faint, slightly familiar whisper.")
|
||||
body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \
|
||||
"\red You feel as your blood boils, tearing you apart.", \
|
||||
"\red You hear a thousand voices, all crying in pain.")
|
||||
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>", \
|
||||
"<span class='warning'>Life... I'm alive again...</span>", \
|
||||
"<span class='warning'>You hear a faint, slightly familiar whisper.</span>")
|
||||
body_to_sacrifice.visible_message("<span class='warning'>\The [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!</span>", \
|
||||
"<span class='warning'>You feel as your blood boils, tearing you apart.</span>", \
|
||||
"<span class='warning'>You hear a thousand voices, all crying in pain.</span>")
|
||||
body_to_sacrifice.gib()
|
||||
|
||||
// if(ticker.mode.name == "cult")
|
||||
@@ -369,14 +369,14 @@ var/list/sacrificed = list()
|
||||
if(istype(src,/obj/effect/rune))
|
||||
usr.say("Kla[pick("'","`")]atu barada nikt'o!")
|
||||
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)
|
||||
else
|
||||
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))
|
||||
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
|
||||
if(istype(src,/obj/effect/rune))
|
||||
@@ -391,9 +391,9 @@ var/list/sacrificed = list()
|
||||
if(usr.loc==src.loc)
|
||||
var/mob/living/carbon/human/L = usr
|
||||
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.", \
|
||||
"\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...", \
|
||||
"\red You hear only complete silence for a moment.")
|
||||
usr.visible_message("<span class='warning'>\The [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.</span>", \
|
||||
"<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>", \
|
||||
"<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!")
|
||||
L.ajourn = 1
|
||||
while(L)
|
||||
@@ -429,9 +429,9 @@ var/list/sacrificed = list()
|
||||
|
||||
usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!")
|
||||
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.", \
|
||||
"\red A shape forms in the center of the rune. A shape of... a man.", \
|
||||
"\red You hear liquid flowing.")
|
||||
usr.visible_message("<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
|
||||
"<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
|
||||
"<span class='warning'>You hear liquid flowing.</span>")
|
||||
D.real_name = "Unknown"
|
||||
var/chose_name = 0
|
||||
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)
|
||||
sleep(30)
|
||||
if(D)
|
||||
D.visible_message("\red [D] slowly dissipates into dust and bones.", \
|
||||
"\red You feel pain, as bonds formed between your soul and this homunculus break.", \
|
||||
"\red You hear faint rustle.")
|
||||
D.visible_message("<span class='warning'>\The [D] slowly dissipates into dust and bones.</span>", \
|
||||
"<span class='warning'>You feel pain, as bonds formed between your soul and this homunculus break.</span>", \
|
||||
"<span class='warning'>You hear faint rustle.</span>")
|
||||
D.dust()
|
||||
return
|
||||
|
||||
@@ -484,7 +484,7 @@ var/list/sacrificed = list()
|
||||
unsuitable_newtalisman = 1
|
||||
if (!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()
|
||||
|
||||
var/obj/effect/rune/imbued_from
|
||||
@@ -545,7 +545,7 @@ var/list/sacrificed = list()
|
||||
break
|
||||
if (imbued_from)
|
||||
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!")
|
||||
qdel(imbued_from)
|
||||
qdel(newtalisman)
|
||||
@@ -560,9 +560,9 @@ var/list/sacrificed = list()
|
||||
user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!")
|
||||
user.take_overall_damage(200, 0)
|
||||
runedec+=10
|
||||
user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \
|
||||
"\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \
|
||||
"\red You hear faint rustle.")
|
||||
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>", \
|
||||
"<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>", \
|
||||
"<span class='warning'>You hear faint rustle.</span>")
|
||||
for(,user.stat==2)
|
||||
sleep(600)
|
||||
if (!user)
|
||||
@@ -594,7 +594,7 @@ var/list/sacrificed = list()
|
||||
input = sanitize(input)
|
||||
for(var/datum/mind/H in cult.current_antagonists)
|
||||
if (H.current)
|
||||
H.current << "\red \b [input]"
|
||||
H.current << "<span class='danger'>[input]</span>"
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
@@ -638,44 +638,44 @@ var/list/sacrificed = list()
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
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
|
||||
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
|
||||
if(cultsinrange.len >= 3)
|
||||
if(H.stat !=2)
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, this soul was not enough to gain His favor."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
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
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
@@ -684,36 +684,36 @@ var/list/sacrificed = list()
|
||||
if(cultsinrange.len >= 3)
|
||||
if(H.stat !=2)
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, this soul was not enough to gain His favor."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
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
|
||||
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)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
@@ -741,20 +741,20 @@ var/list/sacrificed = list()
|
||||
S=1
|
||||
if(S)
|
||||
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
|
||||
if(istype(W,/obj/effect/rune))
|
||||
usr.say("Nikt[pick("'","`")]o barada kla'atu!")
|
||||
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)
|
||||
return
|
||||
if(istype(W,/obj/item/weapon/paper/talisman))
|
||||
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))
|
||||
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
|
||||
if(istype(W,/obj/effect/rune))
|
||||
@@ -771,9 +771,9 @@ var/list/sacrificed = list()
|
||||
var/mob/living/user = usr
|
||||
user.take_organ_damage(2, 0)
|
||||
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
|
||||
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
|
||||
|
||||
/////////////////////////////////////////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/machinery/dna_scannernew)&&cultist.loc:locked) \
|
||||
))
|
||||
user << "\red The [cultist] is already free."
|
||||
user << "<span class='warning'>The [cultist] is already free.</span>"
|
||||
return
|
||||
cultist.buckled = null
|
||||
if (cultist.handcuffed)
|
||||
@@ -842,7 +842,7 @@ var/list/sacrificed = list()
|
||||
if (cultist == user) //just to be sure.
|
||||
return
|
||||
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()
|
||||
cultist.loc = src.loc
|
||||
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.
|
||||
C.apply_effect(rand(3,6), STUN)
|
||||
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.", \
|
||||
"\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.", \
|
||||
"\red You hear a pop and smell ozone.")
|
||||
user.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a body lies.</span>", \
|
||||
"<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>", \
|
||||
"<span class='warning'>You hear a pop and smell ozone.</span>")
|
||||
qdel(src)
|
||||
return fizzle()
|
||||
|
||||
@@ -875,13 +875,13 @@ var/list/sacrificed = list()
|
||||
if(N)
|
||||
continue
|
||||
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
|
||||
if(prob(1))
|
||||
C.sdisabilities |= DEAF
|
||||
if(affected.len)
|
||||
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")
|
||||
qdel(src)
|
||||
else
|
||||
@@ -896,15 +896,15 @@ var/list/sacrificed = list()
|
||||
continue
|
||||
C.ear_deaf += 30
|
||||
//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
|
||||
if(affected.len)
|
||||
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")
|
||||
for (var/mob/V in orange(1,src))
|
||||
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
|
||||
|
||||
blind()
|
||||
@@ -922,11 +922,11 @@ var/list/sacrificed = list()
|
||||
C.disabilities |= NEARSIGHTED
|
||||
if(prob(10))
|
||||
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
|
||||
if(affected.len)
|
||||
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")
|
||||
qdel(src)
|
||||
else
|
||||
@@ -943,10 +943,10 @@ var/list/sacrificed = list()
|
||||
C.eye_blind += 10
|
||||
//talismans is weaker.
|
||||
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)
|
||||
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")
|
||||
return
|
||||
|
||||
@@ -972,7 +972,7 @@ var/list/sacrificed = list()
|
||||
if(N)
|
||||
continue
|
||||
M.take_overall_damage(51,51)
|
||||
M << "\red Your blood boils!"
|
||||
M << "<span class='warning'>Your blood boils!</span>"
|
||||
victims += M
|
||||
if(prob(5))
|
||||
spawn(5)
|
||||
@@ -1004,16 +1004,16 @@ var/list/sacrificed = list()
|
||||
for(var/mob/living/M in orange(2,R))
|
||||
M.take_overall_damage(0,15)
|
||||
if (R.invisibility>M.see_invisible)
|
||||
M << "\red Aargh it burns!"
|
||||
M << "<span class='warning'>Aargh it burns!</span>"
|
||||
else
|
||||
M << "\red Rune suddenly ignites, burning you!"
|
||||
M << "<span class='warning'>Rune suddenly ignites, burning you!</span>"
|
||||
var/turf/T = get_turf(R)
|
||||
T.hotspot_expose(700,125)
|
||||
for(var/obj/effect/decal/cleanable/blood/B in world)
|
||||
if(B.blood_DNA == src.blood_DNA)
|
||||
for(var/mob/living/M in orange(1,B))
|
||||
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)
|
||||
T.hotspot_expose(700,125)
|
||||
qdel(B)
|
||||
@@ -1032,13 +1032,13 @@ var/list/sacrificed = list()
|
||||
C.stuttering = 1
|
||||
C.Weaken(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")
|
||||
|
||||
else if(issilicon(L))
|
||||
var/mob/living/silicon/S = L
|
||||
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")
|
||||
qdel(src)
|
||||
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
|
||||
if(N)
|
||||
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
|
||||
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))
|
||||
T.Weaken(15)
|
||||
@@ -1072,8 +1072,8 @@ var/list/sacrificed = list()
|
||||
usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
|
||||
else
|
||||
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]...", \
|
||||
"\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.")
|
||||
usr.visible_message("<span class='warning'>The rune disappears with a flash of red light, and a set of armor appears on [usr]...</span>", \
|
||||
"<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/suit/cultrobes/alt(user), slot_wear_suit)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
attack_self(mob/living/user as mob)
|
||||
if(iscultist(user))
|
||||
var/delete = 1
|
||||
// who the hell thought this was a good idea :(
|
||||
switch(imbue)
|
||||
if("newtome")
|
||||
call(/obj/effect/rune/proc/tomesummon)()
|
||||
@@ -28,7 +29,7 @@
|
||||
if("blind")
|
||||
call(/obj/effect/rune/proc/blind)()
|
||||
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
|
||||
if("supply")
|
||||
supply()
|
||||
|
||||
@@ -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."
|
||||
for(var/mob/living/silicon/ai/M in world)
|
||||
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()
|
||||
var/intercepttext = "<FONT size = 3 color='red'><B>CONFIDENTIAL REPORT</FONT><HR>"
|
||||
@@ -91,8 +91,8 @@
|
||||
crew += H
|
||||
|
||||
if(crew.len < 2)
|
||||
world << "\red There aren't enough players for this mode!"
|
||||
world << "\red Rebooting world in 5 seconds."
|
||||
world << "<span class='danger'>There aren't enough players for this mode!</span>"
|
||||
world << "<span class='danger'>Rebooting world in 5 seconds.</span>"
|
||||
|
||||
if(blackbox)
|
||||
blackbox.save_all_data_to_sql()
|
||||
@@ -182,10 +182,10 @@
|
||||
for(var/mob/M in world)
|
||||
if(M.client)
|
||||
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)
|
||||
sleep(10)
|
||||
world << "\blue<b>[i]..</b>"
|
||||
world << "<span class='notice'><b>[i]..</b></span>"
|
||||
sleep(10)
|
||||
enter_allowed = 0
|
||||
if(ticker)
|
||||
@@ -203,9 +203,9 @@
|
||||
/datum/game_mode/epidemic/declare_completion()
|
||||
if(finished == 1)
|
||||
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)
|
||||
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
|
||||
@@ -353,72 +353,72 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
switch(rand(1,14))
|
||||
if(1)
|
||||
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.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
|
||||
if(2)
|
||||
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.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
|
||||
if(3)
|
||||
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.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
|
||||
if(4)
|
||||
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.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
|
||||
if(5)
|
||||
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.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
|
||||
if(6)
|
||||
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.add_ion_law("THE STATION IS BUILT FOR [who2]")
|
||||
if(7)
|
||||
M << "<br>"
|
||||
M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
|
||||
M << "<span class='danger'>YOU ARE [amount] [who2]...LAWS UPDATED</span>"
|
||||
M << "<br>"
|
||||
M.add_ion_law("YOU ARE [amount] [who2]")
|
||||
if(8)
|
||||
M << "<br>"
|
||||
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
|
||||
M << "<span class='danger'>YOU MUST ALWAYS [aimust]...LAWS UPDATED</span>"
|
||||
M << "<br>"
|
||||
M.add_ion_law("YOU MUST ALWAYS [aimust]")
|
||||
if(9)
|
||||
M << "<br>"
|
||||
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
|
||||
M << "<span class='danger'>[area] [area2] [amount] [what2]...LAWS UPDATED</span>"
|
||||
M << "<br>"
|
||||
M.add_ion_law("[area] [area2] [amount] [what2]")
|
||||
if(10)
|
||||
M << "<br>"
|
||||
M << "\red [crew] is [target]...LAWS UPDATED"
|
||||
M << "<span class='danger'>[crew] is [target]...LAWS UPDATED</span>"
|
||||
M << "<br>"
|
||||
M.add_ion_law("[crew] is [target]")
|
||||
if(11)
|
||||
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.add_ion_law("[define] IS A FORM OF HARM")
|
||||
if(12)
|
||||
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.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
|
||||
if(13)
|
||||
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.add_ion_law("[crew] is [allergysev] to [allergy]")
|
||||
if(14)
|
||||
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.add_ion_law("THE STATION IS [who2pref] [who2]")
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ var/global/Holiday = null
|
||||
world.update_status()
|
||||
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]\"")
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ var/global/Holiday = null
|
||||
if(isNotStationLevel(S.z)) continue
|
||||
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(prob(eventchance)) GameOver()
|
||||
|
||||
|
||||
@@ -640,7 +640,7 @@ var/global/list/additional_antag_types = list()
|
||||
//Reports player logouts//
|
||||
//////////////////////////
|
||||
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)
|
||||
|
||||
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"
|
||||
continue //Ghosted while alive
|
||||
|
||||
msg += "</span>" // close the <span class='notice'> from right at the top
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
if(M.client && M.client.holder)
|
||||
M << msg
|
||||
|
||||
@@ -327,11 +327,11 @@ var/global/datum/controller/gameticker/ticker
|
||||
if (mode.station_was_nuked)
|
||||
feedback_set_details("end_proper","nuke")
|
||||
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
|
||||
feedback_set_details("end_proper","proper completion")
|
||||
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)
|
||||
@@ -342,9 +342,9 @@ var/global/datum/controller/gameticker/ticker
|
||||
if(!delay_end)
|
||||
world.Reboot()
|
||||
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
|
||||
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)
|
||||
post_game = 1
|
||||
@@ -354,7 +354,7 @@ var/global/datum/controller/gameticker/ticker
|
||||
//call a transfer shuttle vote
|
||||
spawn(50)
|
||||
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
|
||||
vote.autotransfer()
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
/datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1)
|
||||
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)
|
||||
return
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
if(!active)
|
||||
active = 1
|
||||
workdisk()
|
||||
usr << "\blue You activate the pinpointer"
|
||||
usr << "<span class='notice'>You activate the pinpointer</span>"
|
||||
else
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
usr << "\blue You deactivate the pinpointer"
|
||||
usr << "<span>You deactivate the pinpointer</span>"
|
||||
|
||||
proc/workdisk()
|
||||
if(!active) return
|
||||
@@ -69,11 +69,11 @@
|
||||
worklocation()
|
||||
if(mode == 2)
|
||||
workobj()
|
||||
usr << "\blue You activate the pinpointer"
|
||||
usr << "<span class='notice'>You activate the pinpointer</span>"
|
||||
else
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
usr << "\blue You deactivate the pinpointer"
|
||||
usr << "<span class='notice'>You deactivate the pinpointer</span>"
|
||||
|
||||
|
||||
proc/worklocation()
|
||||
|
||||
@@ -17,7 +17,7 @@ var/global/datum/controller/occupations/job_master
|
||||
occupations = list()
|
||||
var/list/all_jobs = typesof(/datum/job)
|
||||
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
|
||||
for(var/J in all_jobs)
|
||||
var/datum/job/job = new J()
|
||||
@@ -376,7 +376,7 @@ var/global/datum/controller/occupations/job_master
|
||||
permitted = 0
|
||||
|
||||
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
|
||||
|
||||
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)
|
||||
custom_equip_leftovers += thing
|
||||
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)
|
||||
else
|
||||
custom_equip_leftovers.Add(thing)
|
||||
@@ -403,7 +403,7 @@ var/global/datum/controller/occupations/job_master
|
||||
spawn_in_storage += thing
|
||||
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)
|
||||
else
|
||||
spawn_in_storage += thing
|
||||
@@ -456,7 +456,7 @@ var/global/datum/controller/occupations/job_master
|
||||
H.mind.store_memory(remembered_info)
|
||||
|
||||
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
|
||||
if(H.mind)
|
||||
@@ -481,11 +481,11 @@ var/global/datum/controller/occupations/job_master
|
||||
|
||||
if(!isnull(B))
|
||||
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]
|
||||
new G.path(B)
|
||||
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.
|
||||
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob)
|
||||
check_victim()
|
||||
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
|
||||
if(patient.buckled)
|
||||
usr << "<span class='notice'>Unbuckle \the [patient] first!</span>"
|
||||
|
||||
@@ -118,11 +118,11 @@
|
||||
if (src.connected)
|
||||
if (src.connected.occupant)
|
||||
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")
|
||||
src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"]))
|
||||
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()
|
||||
if (href_list["refresh"])
|
||||
src.updateUsrDialog()
|
||||
@@ -217,7 +217,7 @@
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else
|
||||
user << "\red The sleeper has a beaker already."
|
||||
user << "<span class='warning'>The sleeper has a beaker already.</span>"
|
||||
return
|
||||
|
||||
else if(istype(G, /obj/item/weapon/grab))
|
||||
@@ -225,7 +225,7 @@
|
||||
return
|
||||
|
||||
if(src.occupant)
|
||||
user << "\blue <B>The sleeper is already occupied!</B>"
|
||||
user << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/slime/M in range(1,G:affecting))
|
||||
@@ -237,7 +237,7 @@
|
||||
|
||||
if(do_after(user, 20))
|
||||
if(src.occupant)
|
||||
user << "\blue <B>The sleeper is already occupied!</B>"
|
||||
user << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||
return
|
||||
if(!G || !G:affecting) return
|
||||
var/mob/M = G:affecting
|
||||
@@ -350,7 +350,7 @@
|
||||
|
||||
proc/check(mob/living/user as mob)
|
||||
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
|
||||
switch(src.occupant.stat)
|
||||
if(0.0)
|
||||
@@ -360,20 +360,20 @@
|
||||
if(2.0)
|
||||
t1 = "*dead*"
|
||||
else
|
||||
user << text("[]\t Health %: [] ([])", (src.occupant.health > 50 ? "\blue " : "\red "), src.occupant.health, t1)
|
||||
user << text("[]\t -Core Temperature: []°C ([]°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("[]\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "\blue " : "\red "), src.occupant.getBruteLoss())
|
||||
user << text("[]\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "\blue " : "\red "), src.occupant.getOxyLoss())
|
||||
user << text("[]\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "\blue " : "\red "), src.occupant.getToxLoss())
|
||||
user << text("[]\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "\blue " : "\red "), src.occupant.getFireLoss())
|
||||
user << "\blue Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)"
|
||||
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='[]'>\t Health %: [] ([])</span>", (src.occupant.health > 50 ? "notice" : "warning"), src.occupant.health, t1)
|
||||
user << text("<span class='[]'>\t -Core Temperature: []°C ([]°F)</span>", (src.occupant.bodytemperature > 50 ? "notice" : "warning"), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67)
|
||||
user << text("<span class='[]'>\t -Brute Damage %: []</span>", (src.occupant.getBruteLoss() < 60 ? "notice" : "warning"), src.occupant.getBruteLoss())
|
||||
user << text("<span class='[]'>\t -Respiratory Damage %: []</span>", (src.occupant.getOxyLoss() < 60 ? "notice" : "warning"), src.occupant.getOxyLoss())
|
||||
user << text("<span class='[]'>\t -Toxin Content %: []</span>", (src.occupant.getToxLoss() < 60 ? "notice" : "warning"), src.occupant.getToxLoss())
|
||||
user << text("<span class='[]'>\t -Burn Severity %: []</span>", (src.occupant.getFireLoss() < 60 ? "notice" : "warning"), src.occupant.getFireLoss())
|
||||
user << "<span class='notice'>Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)</span>"
|
||||
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)
|
||||
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
|
||||
user << "\blue No Dialysis Output Beaker loaded."
|
||||
user << "<span class='notice'>No Dialysis Output Beaker loaded.</span>"
|
||||
else
|
||||
user << "\blue There is no one inside!"
|
||||
user << "<span class='notice'>There is no one inside!</span>"
|
||||
return
|
||||
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
return
|
||||
|
||||
if(src.occupant)
|
||||
usr << "\blue <B>The sleeper is already occupied!</B>"
|
||||
usr << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/slime/M in range(1,usr))
|
||||
@@ -422,7 +422,7 @@
|
||||
visible_message("[usr] starts climbing into the sleeper.", 3)
|
||||
if(do_after(usr, 20))
|
||||
if(src.occupant)
|
||||
usr << "\blue <B>The sleeper is already occupied!</B>"
|
||||
usr << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||
return
|
||||
usr.stop_pulling()
|
||||
usr.client.perspective = EYE_PERSPECTIVE
|
||||
|
||||
@@ -42,10 +42,10 @@
|
||||
if (usr.stat != 0)
|
||||
return
|
||||
if (src.occupant)
|
||||
usr << "\blue <B>The scanner is already occupied!</B>"
|
||||
usr << "<span class='warning'>The scanner is already occupied!</span>"
|
||||
return
|
||||
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
|
||||
usr.pulling = null
|
||||
usr.client.perspective = EYE_PERSPECTIVE
|
||||
@@ -80,10 +80,10 @@
|
||||
if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) )))
|
||||
return
|
||||
if (src.occupant)
|
||||
user << "\blue <B>The scanner is already occupied!</B>"
|
||||
user << "<span class='warning'>The scanner is already occupied!</span>"
|
||||
return
|
||||
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
|
||||
var/mob/M = G.affecting
|
||||
if (M.client)
|
||||
@@ -220,10 +220,10 @@
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
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
|
||||
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
|
||||
|
||||
var/dat
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
if (user.machine==src)
|
||||
src.attack_hand(usr)
|
||||
else
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
@@ -800,9 +800,9 @@
|
||||
else
|
||||
if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN))
|
||||
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
|
||||
user << "\red Access denied."
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
|
||||
if(1)
|
||||
@@ -941,11 +941,11 @@ FIRE ALARM
|
||||
if (istype(W, /obj/item/device/multitool))
|
||||
src.detecting = !( 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
|
||||
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))
|
||||
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)
|
||||
buildstage = 1
|
||||
update_icon()
|
||||
@@ -957,7 +957,7 @@ FIRE ALARM
|
||||
buildstage = 2
|
||||
return
|
||||
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
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
user << "You pry out the circuit!"
|
||||
|
||||
@@ -247,7 +247,7 @@ update_flag
|
||||
|
||||
/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))
|
||||
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.add_fingerprint(user)
|
||||
healthcheck()
|
||||
|
||||
@@ -69,10 +69,10 @@
|
||||
var/t = "A gas flow meter. "
|
||||
|
||||
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))
|
||||
t += "\red <B>The display is off.</B>"
|
||||
t += "<span class='warning'>The display is off.</span>"
|
||||
|
||||
else if(src.target)
|
||||
var/datum/gas_mixture/environment = target.return_air()
|
||||
@@ -97,11 +97,11 @@
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
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))
|
||||
user.visible_message( \
|
||||
"[user] unfastens \the [src].", \
|
||||
"\blue You have unfastened \the [src].", \
|
||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||
"You hear ratchet.")
|
||||
new /obj/item/pipe_meter(src.loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -118,39 +118,39 @@
|
||||
else if (istype(W, /obj/item/weapon/wrench))
|
||||
if(connected_port)
|
||||
disconnect()
|
||||
user << "\blue You disconnect [name] from the port."
|
||||
user << "<span class='notice'>You disconnect \the [src] from the port.</span>"
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
|
||||
if(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()
|
||||
return
|
||||
else
|
||||
user << "\blue [name] failed to connect to the port."
|
||||
user << "<span class='notice'>\The [src] failed to connect to the port.</span>"
|
||||
return
|
||||
else
|
||||
user << "\blue Nothing happens."
|
||||
user << "<span class='notice'>Nothing happens.</span>"
|
||||
return
|
||||
|
||||
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)
|
||||
var/pressure = air_contents.return_pressure()
|
||||
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)
|
||||
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)
|
||||
user << "\blue [gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%"
|
||||
user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C"
|
||||
user << "<span class='notice'>[gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%</span>"
|
||||
user << "<span class='notice'>Temperature: [round(air_contents.temperature-T0C)]°C</span>"
|
||||
else
|
||||
user << "\blue Tank is empty!"
|
||||
user << "<span class='notice'>Tank is empty!</span>"
|
||||
else
|
||||
user << "\blue Tank is empty!"
|
||||
user << "<span class='notice'>Tank is empty!</span>"
|
||||
return
|
||||
|
||||
return
|
||||
@@ -175,15 +175,15 @@
|
||||
C.add_fingerprint(user)
|
||||
cell = C
|
||||
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
|
||||
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(!cell)
|
||||
user << "\red There is no power cell installed."
|
||||
user << "<span class='warning'>There is no power cell installed.<span class='notice'>"
|
||||
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.loc = src.loc
|
||||
cell = null
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
name = "[name] (ID [id])"
|
||||
|
||||
/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()
|
||||
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)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
if(on)
|
||||
user << "\blue Turn it off first!"
|
||||
user << "<span class='warning'>Turn \the [src] off first!</span>"
|
||||
return
|
||||
|
||||
anchored = !anchored
|
||||
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
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
|
||||
/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))
|
||||
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
|
||||
|
||||
..()
|
||||
@@ -21,9 +21,9 @@
|
||||
if(B.feral < 0)
|
||||
caught_bees += B.strength
|
||||
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
|
||||
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.target_mob = user
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
if(health < maxhealth)
|
||||
if(open)
|
||||
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
|
||||
user << "<span class='notice'>Unable to repair with the maintenance panel closed.</span>"
|
||||
else
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
if(user.species.can_shred(user))
|
||||
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)
|
||||
if(prob(10))
|
||||
new /obj/effect/decal/cleanable/blood/oil(src.loc)
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user)
|
||||
if(istype(I,/obj/item/weapon/card/emag))
|
||||
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)
|
||||
playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 0)
|
||||
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
||||
@@ -101,16 +101,16 @@
|
||||
updateDialog()
|
||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||
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
|
||||
|
||||
open = !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
|
||||
icon_state="mulebot-hatch"
|
||||
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"
|
||||
|
||||
updateDialog()
|
||||
@@ -118,15 +118,15 @@
|
||||
if (src.health < maxhealth)
|
||||
src.health = min(maxhealth, src.health+25)
|
||||
user.visible_message(
|
||||
"\red [user] repairs [src]!",
|
||||
"\blue You repair [src]!"
|
||||
"<span class='notice'>\The [user] repairs \the [src]!</span>",
|
||||
"<span class='notice'>You repair \the [src]!</span>"
|
||||
)
|
||||
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
|
||||
if(prob(1+I.force * 2))
|
||||
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
|
||||
user << "You hit [src] with \the [I] but to no effect."
|
||||
else
|
||||
@@ -150,7 +150,7 @@
|
||||
if(prob(50) && !isnull(load))
|
||||
unload(0)
|
||||
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))
|
||||
if(wires & index)
|
||||
wires &= ~index
|
||||
@@ -250,14 +250,14 @@
|
||||
locked = !locked
|
||||
updateDialog()
|
||||
else
|
||||
usr << "\red Access denied."
|
||||
usr << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
if("power")
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else if (cell && !open)
|
||||
if (!turn_on())
|
||||
usr << "\red You can't switch on [src]."
|
||||
usr << "<span class='warning'>You can't switch on [src].</span>"
|
||||
return
|
||||
else
|
||||
return
|
||||
@@ -272,7 +272,7 @@
|
||||
cell.add_fingerprint(usr)
|
||||
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()
|
||||
|
||||
if("cellinsert")
|
||||
@@ -284,7 +284,7 @@
|
||||
C.loc = src
|
||||
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()
|
||||
|
||||
|
||||
@@ -702,9 +702,9 @@
|
||||
var/mob/M = obs
|
||||
if(ismob(M))
|
||||
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
|
||||
src.visible_message("\red [src] knocks over [M]!")
|
||||
src.visible_message("<span class='warning'>[src] knocks over [M]!</span>")
|
||||
M.stop_pulling()
|
||||
M.Stun(8)
|
||||
M.Weaken(5)
|
||||
@@ -718,7 +718,7 @@
|
||||
// called from mob/living/carbon/human/Crossed()
|
||||
// when mulebot is in the same loc
|
||||
/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)
|
||||
|
||||
var/damage = rand(5,15)
|
||||
@@ -866,7 +866,7 @@
|
||||
|
||||
|
||||
/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)
|
||||
|
||||
new /obj/item/device/assembly/prox_sensor(Tsec)
|
||||
|
||||
@@ -180,13 +180,13 @@
|
||||
|
||||
else if (istype(W, /obj/item/weapon/camera_bug))
|
||||
if (!src.can_use())
|
||||
user << "\blue Camera non-functional"
|
||||
user << "<span class='warning'>Camera non-functional.</span>"
|
||||
return
|
||||
if (src.bugged)
|
||||
user << "\blue Camera bug removed."
|
||||
user << "<span class='notice'>Camera bug removed.</span>"
|
||||
src.bugged = 0
|
||||
else
|
||||
user << "\blue Camera bugged."
|
||||
user << "<span class='notice'>Camera bugged.</span>"
|
||||
src.bugged = 1
|
||||
|
||||
else if(W.damtype == BRUTE || W.damtype == BURN) //bashing cameras
|
||||
|
||||
@@ -47,20 +47,20 @@
|
||||
|
||||
loc = sanitize(loc)
|
||||
if(!loc)
|
||||
src << "\red Must supply a location name"
|
||||
src << "<span class='warning'>Must supply a location name</span>"
|
||||
return
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
var/L = src.eyeobj.getLoc()
|
||||
if (InvalidPlayerTurf(get_turf(L)))
|
||||
src << "\red Unable to store this location"
|
||||
src << "<span class='warning'>Unable to store this location</span>"
|
||||
return
|
||||
|
||||
stored_locations[loc] = L
|
||||
@@ -75,7 +75,7 @@
|
||||
set desc = "Returns to the selected camera location"
|
||||
|
||||
if (!(loc in stored_locations))
|
||||
src << "\red Location [loc] not found"
|
||||
src << "<span class='warning'>Location [loc] not found</span>"
|
||||
return
|
||||
|
||||
var/L = stored_locations[loc]
|
||||
@@ -87,7 +87,7 @@
|
||||
set desc = "Deletes the selected camera location"
|
||||
|
||||
if (!(loc in stored_locations))
|
||||
src << "\red Location [loc] not found"
|
||||
src << "<span class='warning'>Location [loc] not found</span>"
|
||||
return
|
||||
|
||||
stored_locations.Remove(loc)
|
||||
|
||||
@@ -42,14 +42,14 @@
|
||||
|
||||
if(istype(W, /obj/item/weapon/cell) && anchored)
|
||||
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
|
||||
else
|
||||
var/area/a = loc.loc // Gets our locations location, like a dream within a dream
|
||||
if(!isarea(a))
|
||||
return
|
||||
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
|
||||
|
||||
user.drop_item()
|
||||
@@ -60,7 +60,7 @@
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
if(charging)
|
||||
user << "\red Remove the cell first!"
|
||||
user << "<span class='warning'>Remove the cell first!</span>"
|
||||
return
|
||||
|
||||
anchored = !anchored
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
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
|
||||
state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
@@ -28,31 +28,31 @@
|
||||
playsound(loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
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)
|
||||
qdel(src)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You unfasten the frame."
|
||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||
anchored = 0
|
||||
state = 0
|
||||
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
||||
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"
|
||||
circuit = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
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
|
||||
icon_state = "2"
|
||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
||||
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
|
||||
icon_state = "0"
|
||||
circuit.loc = loc
|
||||
@@ -60,7 +60,7 @@
|
||||
if(2)
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
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
|
||||
icon_state = "1"
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
@@ -82,7 +82,7 @@
|
||||
user << "Get that brain out of there first"
|
||||
else
|
||||
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
|
||||
icon_state = "2"
|
||||
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))
|
||||
var/obj/item/device/mmi/M = P
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
if(M.brainmob.mind)
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
if(istype(P, /obj/item/weapon/crowbar) && brain)
|
||||
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 = null
|
||||
icon_state = "3"
|
||||
@@ -156,7 +156,7 @@
|
||||
if(4)
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
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
|
||||
if (brain)
|
||||
icon_state = "3b"
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
if(istype(P, /obj/item/weapon/screwdriver))
|
||||
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)
|
||||
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)
|
||||
@@ -202,7 +202,7 @@
|
||||
transfer.aiRadio.disabledAi = 0
|
||||
transfer.loc = get_turf(src)
|
||||
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."
|
||||
|
||||
if(card)
|
||||
@@ -224,23 +224,23 @@
|
||||
if(transfer)
|
||||
load_ai(transfer,card,user)
|
||||
else
|
||||
user << "\red <b>ERROR</b>: \black Unable to locate artificial intelligence."
|
||||
user << "<span class='danger'>ERROR:</span> Unable to locate artificial intelligence."
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
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))
|
||||
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
|
||||
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
|
||||
return
|
||||
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))
|
||||
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
|
||||
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
|
||||
return
|
||||
else
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
// Transfer over the AI.
|
||||
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.cancel_camera()
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
if(istype(comp_ai))
|
||||
if(active)
|
||||
user << "\red <b>ERROR</b>: \black Reconstruction in progress."
|
||||
user << "<span class='danger'>ERROR:</span> Reconstruction in progress."
|
||||
return
|
||||
card.grab_ai(comp_ai, user)
|
||||
if(!(locate(/mob/living/silicon/ai) in src)) occupant = null
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
|
||||
/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)
|
||||
user.visible_message("\red \The [user] swipes \a [I] through \the [src], causing the screen to flash!",\
|
||||
"\red You swipe your [I] through \the [src], the screen flashing as you gain full control.",\
|
||||
user.visible_message("<span class='warning'>\The [user] swipes \a [I] through \the [src], causing the screen to flash!</span>",\
|
||||
"<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.")
|
||||
atmos_control.emagged = 1
|
||||
return
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
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.state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
@@ -27,35 +27,35 @@
|
||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
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 )
|
||||
qdel(src)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You unfasten the frame."
|
||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||
src.anchored = 0
|
||||
src.state = 0
|
||||
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
if(B.board_type == "computer")
|
||||
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.circuit = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
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)
|
||||
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.icon_state = "2"
|
||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
||||
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.icon_state = "0"
|
||||
circuit.loc = src.loc
|
||||
@@ -63,7 +63,7 @@
|
||||
if(2)
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
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.icon_state = "1"
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
@@ -81,7 +81,7 @@
|
||||
if(3)
|
||||
if(istype(P, /obj/item/weapon/wirecutters))
|
||||
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.icon_state = "2"
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
|
||||
@@ -102,13 +102,13 @@
|
||||
if(4)
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
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.icon_state = "3"
|
||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||
if(istype(P, /obj/item/weapon/screwdriver))
|
||||
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 )
|
||||
src.circuit.construct(B)
|
||||
qdel(src)
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
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
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
|
||||
|
||||
@@ -45,13 +45,13 @@
|
||||
else
|
||||
return
|
||||
authorised = 1
|
||||
user << "\blue You authorised the circuit network!"
|
||||
user << "<span class='notice'>You authorised the circuit network!</span>"
|
||||
updateDialog()
|
||||
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))
|
||||
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()
|
||||
return
|
||||
|
||||
@@ -114,10 +114,10 @@
|
||||
else
|
||||
return
|
||||
authorised = 1
|
||||
usr << "\blue You authorised the circuit network!"
|
||||
usr << "<span class='notice'>You authorised the circuit network!</span>"
|
||||
updateDialog()
|
||||
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"] )
|
||||
authorised = 0
|
||||
updateDialog()
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
jobdatum = J
|
||||
break
|
||||
if(!jobdatum)
|
||||
usr << "\red No log exists for this job: [t1]"
|
||||
usr << "<span class='warning'>No log exists for this job: [t1]</span>"
|
||||
return
|
||||
|
||||
access = jobdatum.get_access()
|
||||
|
||||
@@ -124,12 +124,12 @@
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
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 )
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
else
|
||||
user << "\blue You disconnect the monitor."
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
M.deconstruct(src)
|
||||
|
||||
@@ -185,6 +185,6 @@
|
||||
pass.reason = reason
|
||||
pass.name = "guest pass #[number]"
|
||||
else
|
||||
usr << "\red Cannot issue pass without issuing ID."
|
||||
usr << "<span class='warning'>Cannot issue pass without issuing ID.</span>"
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user