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
|
- shopt -s globstar
|
||||||
- (! grep 'step_[xy]' maps/**/*.dmm)
|
- (! grep 'step_[xy]' maps/**/*.dmm)
|
||||||
- (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano)
|
- (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano)
|
||||||
|
- (num=`grep -E '\\\\(red|blue|green|black|b|i[^mc])' **/*.dm | wc -l`; [ $num -le 1355 ])
|
||||||
- ( md5sum -c - <<< "0af969f671fba6cf9696c78cd175a14a *baystation12.int")
|
- ( md5sum -c - <<< "0af969f671fba6cf9696c78cd175a14a *baystation12.int")
|
||||||
- DreamMaker baystation12.dme
|
- DreamMaker baystation12.dme
|
||||||
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs
|
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs
|
||||||
|
|||||||
@@ -168,7 +168,7 @@
|
|||||||
return
|
return
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
ui_interact(user)
|
ui_interact(user)
|
||||||
@@ -242,20 +242,20 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (unlocked)
|
if (unlocked)
|
||||||
user << "\red You cannot unwrench this [src], turn it off first."
|
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor."
|
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
||||||
|
|
||||||
if(anchored)
|
if(anchored)
|
||||||
if(dir & (NORTH|SOUTH))
|
if(dir & (NORTH|SOUTH))
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
turbine = null
|
turbine = null
|
||||||
user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor."
|
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
||||||
updateConnection()
|
updateConnection()
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
@@ -286,4 +286,4 @@
|
|||||||
if (usr.stat || usr.restrained() || anchored)
|
if (usr.stat || usr.restrained() || anchored)
|
||||||
return
|
return
|
||||||
|
|
||||||
src.set_dir(turn(src.dir, 90))
|
src.set_dir(turn(src.dir, 90))
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ Thus, the two variables affect pump operation are set in New():
|
|||||||
return
|
return
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
ui_interact(user)
|
ui_interact(user)
|
||||||
@@ -219,20 +219,20 @@ Thus, the two variables affect pump operation are set in New():
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (!(stat & NOPOWER) && use_power)
|
if (!(stat & NOPOWER) && use_power)
|
||||||
user << "\red You cannot unwrench this [src], turn it off first."
|
user << "<span class='warning'>You cannot unwrench this [src], turn it off first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -87,15 +87,15 @@
|
|||||||
int_pressure += P.air.return_pressure()
|
int_pressure += P.air.return_pressure()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_pressure - env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_pressure - env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "<span class='warning'>You cannot unwrench [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear a ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -299,4 +299,4 @@
|
|||||||
|
|
||||||
update_ports()
|
update_ports()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -134,22 +134,22 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (connected_device)
|
if (connected_device)
|
||||||
user << "\red You cannot unwrench this [src], dettach [connected_device] first."
|
user << "<span class='warning'>You cannot unwrench \the [src], dettach \the [connected_device] first.</span>"
|
||||||
return 1
|
return 1
|
||||||
if (locate(/obj/machinery/portable_atmospherics, src.loc))
|
if (locate(/obj/machinery/portable_atmospherics, src.loc))
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -134,16 +134,16 @@
|
|||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/dat
|
var/dat
|
||||||
|
|||||||
@@ -109,15 +109,15 @@
|
|||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
return
|
return
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br>
|
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br>
|
||||||
|
|||||||
@@ -308,7 +308,7 @@
|
|||||||
if(!powered())
|
if(!powered())
|
||||||
return
|
return
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -350,21 +350,21 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
|
if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
|
||||||
user << "\red You cannot unwrench this [src], it's too complicated."
|
user << "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
@@ -448,7 +448,7 @@
|
|||||||
if(!powered())
|
if(!powered())
|
||||||
return
|
return
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -482,4 +482,4 @@
|
|||||||
if(state)
|
if(state)
|
||||||
go_straight()
|
go_straight()
|
||||||
else
|
else
|
||||||
go_to_side()
|
go_to_side()
|
||||||
|
|||||||
@@ -70,20 +70,20 @@
|
|||||||
return ..()
|
return ..()
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (level==1 && isturf(T) && T.intact)
|
if (level==1 && isturf(T) && T.intact)
|
||||||
user << "\red You must remove the plating first."
|
user << "<span class='warning'>You must remove the plating first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -358,22 +358,22 @@
|
|||||||
if(istype(W, /obj/item/weapon/weldingtool))
|
if(istype(W, /obj/item/weapon/weldingtool))
|
||||||
var/obj/item/weapon/weldingtool/WT = W
|
var/obj/item/weapon/weldingtool/WT = W
|
||||||
if (WT.remove_fuel(0,user))
|
if (WT.remove_fuel(0,user))
|
||||||
user << "\blue Now welding the vent."
|
user << "<span class='notice'>Now welding the vent.</span>"
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
||||||
if(!welded)
|
if(!welded)
|
||||||
user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.")
|
user.visible_message("<span class='notice'>\The [user] welds the vent shut.</span>", "<span class='notice'>You weld the vent shut.</span>", "You hear welding.")
|
||||||
welded = 1
|
welded = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.")
|
user.visible_message("<span class='notice'>[user] unwelds the vent.</span>", "<span class='notice'>You unweld the vent.</span>", "You hear welding.")
|
||||||
welded = 0
|
welded = 0
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
user << "\blue The welding tool needs to be on to start this task."
|
user << "<span class='notice'>The welding tool needs to be on to start this task.</span>"
|
||||||
else
|
else
|
||||||
user << "\blue You need more welding fuel to complete this task."
|
user << "<span class='warning'>You need more welding fuel to complete this task.</span>"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
@@ -396,25 +396,25 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (!(stat & NOPOWER) && use_power)
|
if (!(stat & NOPOWER) && use_power)
|
||||||
user << "\red You cannot unwrench this [src], turn it off first."
|
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (node && node.level==1 && isturf(T) && T.intact)
|
if (node && node.level==1 && isturf(T) && T.intact)
|
||||||
user << "\red You must remove the plating first."
|
user << "<span class='warning'>You must remove the plating first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -258,25 +258,25 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (!(stat & NOPOWER) && use_power)
|
if (!(stat & NOPOWER) && use_power)
|
||||||
user << "\red You cannot unwrench this [src], turn it off first."
|
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (node && node.level==1 && isturf(T) && T.intact)
|
if (node && node.level==1 && isturf(T) && T.intact)
|
||||||
user << "\red You must remove the plating first."
|
user << "<span class='warning'>You must remove the plating first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -241,7 +241,7 @@
|
|||||||
if(!powered())
|
if(!powered())
|
||||||
return
|
return
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -294,21 +294,21 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if (istype(src, /obj/machinery/atmospherics/valve/digital))
|
if (istype(src, /obj/machinery/atmospherics/valve/digital))
|
||||||
user << "\red You cannot unwrench this [src], it's too complicated."
|
user << "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -649,7 +649,7 @@ obj/machinery/atmospherics/mains_pipe/valve
|
|||||||
|
|
||||||
attack_hand(mob/user as mob)
|
attack_hand(mob/user as mob)
|
||||||
if(!src.allowed(user))
|
if(!src.allowed(user))
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -704,4 +704,4 @@ obj/machinery/atmospherics/mains_pipe/valve
|
|||||||
close()
|
close()
|
||||||
else
|
else
|
||||||
open()
|
open()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -82,21 +82,21 @@
|
|||||||
return ..()
|
return ..()
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (level==1 && isturf(T) && T.intact)
|
if (level==1 && isturf(T) && T.intact)
|
||||||
user << "\red You must remove the plating first."
|
user << "<span class='warning'>You must remove the plating first.</span>"
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/int_air = return_air()
|
var/datum/gas_mixture/int_air = return_air()
|
||||||
var/datum/gas_mixture/env_air = loc.return_air()
|
var/datum/gas_mixture/env_air = loc.return_air()
|
||||||
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
|
||||||
user << "<span class='warning'>You cannot unwrench [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear a ratchet.")
|
||||||
new /obj/item/pipe(loc, make_from=src)
|
new /obj/item/pipe(loc, make_from=src)
|
||||||
for (var/obj/machinery/meter/meter in T)
|
for (var/obj/machinery/meter/meter in T)
|
||||||
if (meter.target == src)
|
if (meter.target == src)
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
else return 1
|
else return 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/proc/burst()
|
/obj/machinery/atmospherics/pipe/simple/proc/burst()
|
||||||
src.visible_message("\red \bold [src] bursts!");
|
src.visible_message("<span class='danger'>\The [src] bursts!</span>");
|
||||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect/effect/system/smoke_spread/smoke = new
|
||||||
smoke.set_up(1,0, src.loc, 0)
|
smoke.set_up(1,0, src.loc, 0)
|
||||||
@@ -1121,19 +1121,19 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/device/analyzer) && in_range(user, src))
|
if(istype(W, /obj/item/device/analyzer) && in_range(user, src))
|
||||||
for (var/mob/O in viewers(user, null))
|
for (var/mob/O in viewers(user, null))
|
||||||
O << "\red [user] has used the analyzer on \icon[icon]"
|
O << "<span class='notice'>\The [user] has used \the [W] on \the [src] \icon[src]</span>"
|
||||||
|
|
||||||
var/pressure = parent.air.return_pressure()
|
var/pressure = parent.air.return_pressure()
|
||||||
var/total_moles = parent.air.total_moles
|
var/total_moles = parent.air.total_moles
|
||||||
|
|
||||||
user << "\blue Results of analysis of \icon[icon]"
|
user << "<span class='notice'>Results of analysis of \the [src] \icon[src]</span>"
|
||||||
if (total_moles>0)
|
if (total_moles>0)
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>"
|
||||||
for(var/g in parent.air.gas)
|
for(var/g in parent.air.gas)
|
||||||
user << "\blue [gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%"
|
user << "<span class='notice'>[gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%</span>"
|
||||||
user << "\blue Temperature: [round(parent.air.temperature-T0C)]°C"
|
user << "<span class='notice'>Temperature: [round(parent.air.temperature-T0C)]°C</span>"
|
||||||
else
|
else
|
||||||
user << "\blue Tank is empty!"
|
user << "<span class='notice'>Tank is empty!</span>"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/air
|
/obj/machinery/atmospherics/pipe/tank/air
|
||||||
name = "Pressure Tank (Air)"
|
name = "Pressure Tank (Air)"
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ obj/item/weapon/tank
|
|||||||
adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num)
|
adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num)
|
||||||
set src in world
|
set src in world
|
||||||
if(!air_contents)
|
if(!air_contents)
|
||||||
usr << "\red ERROR: no gas_mixture associated with this tank"
|
usr << "<span class='warning'>ERROR: no gas_mixture associated with this tank</span>"
|
||||||
return null
|
return null
|
||||||
|
|
||||||
air_contents.temperature = temperature
|
air_contents.temperature = temperature
|
||||||
@@ -74,7 +74,7 @@ turf/simulated/floor
|
|||||||
else
|
else
|
||||||
usr << "Space Borders: None"
|
usr << "Space Borders: None"
|
||||||
else
|
else
|
||||||
usr << "\blue [x],[y] has no parent air group."
|
usr << "<span class='notice'>[x],[y] has no parent air group.</span>"
|
||||||
|
|
||||||
verb
|
verb
|
||||||
create_wall()
|
create_wall()
|
||||||
@@ -329,7 +329,7 @@ obj/machinery/atmospherics
|
|||||||
set src in world
|
set src in world
|
||||||
set category = "Minor"
|
set category = "Minor"
|
||||||
|
|
||||||
world << "\blue [x],[y]"
|
world << "<span class='notice'>[x],[y]</span>"
|
||||||
world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]"
|
world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]"
|
||||||
for(var/obj/O in network_node1.normal_members)
|
for(var/obj/O in network_node1.normal_members)
|
||||||
world << "member: [O.x], [O.y]"
|
world << "member: [O.x], [O.y]"
|
||||||
@@ -406,7 +406,7 @@ turf/simulated
|
|||||||
set src in world
|
set src in world
|
||||||
set category = "Minor"
|
set category = "Minor"
|
||||||
var/datum/gas_mixture/GM = return_air()
|
var/datum/gas_mixture/GM = return_air()
|
||||||
usr << "\blue @[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("\red BURNING"):(null)]"
|
usr << "<span class='notice'>@[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("<span class='danger'>BURNING</span>"):(null)]</span>""
|
||||||
for(var/datum/gas/trace_gas in GM.trace_gases)
|
for(var/datum/gas/trace_gas in GM.trace_gases)
|
||||||
usr << "[trace_gas.type]: [trace_gas.moles]"
|
usr << "[trace_gas.type]: [trace_gas.moles]"
|
||||||
|
|
||||||
@@ -515,7 +515,7 @@ mob
|
|||||||
|
|
||||||
fire_report()
|
fire_report()
|
||||||
set category = "Debug"
|
set category = "Debug"
|
||||||
usr << "\b \red Fire Report"
|
usr << "<span class='danger'>Fire Report</span>"
|
||||||
for(var/obj/effect/hotspot/flame in world)
|
for(var/obj/effect/hotspot/flame in world)
|
||||||
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"
|
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ datum
|
|||||||
|
|
||||||
setup()
|
setup()
|
||||||
set background = 1
|
set background = 1
|
||||||
world << "\red \b Processing Geometry..."
|
world << "<span class='danger'>Processing Geometry...</span>"
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
var/start_time = world.timeofday
|
var/start_time = world.timeofday
|
||||||
@@ -156,7 +156,7 @@ datum
|
|||||||
assemble_group_turf(S)
|
assemble_group_turf(S)
|
||||||
S.update_air_properties()
|
S.update_air_properties()
|
||||||
|
|
||||||
world << "\red \b Geometry processed in [(world.timeofday-start_time)/10] seconds!"
|
world << "<span class='danger'>Geometry processed in [(world.timeofday-start_time)/10] seconds!</span>"
|
||||||
|
|
||||||
assemble_group_turf(turf/simulated/base)
|
assemble_group_turf(turf/simulated/base)
|
||||||
|
|
||||||
|
|||||||
@@ -13,13 +13,13 @@
|
|||||||
for(var/atom/A in T.contents)
|
for(var/atom/A in T.contents)
|
||||||
if(A.density)
|
if(A.density)
|
||||||
blocked = 1
|
blocked = 1
|
||||||
usr << "\red You bump into [A.name]."
|
usr << "<span class='warning'>You bump into \the [A].</span>"
|
||||||
break
|
break
|
||||||
if(!blocked)
|
if(!blocked)
|
||||||
usr.Move(T)
|
usr.Move(T)
|
||||||
usr << "You move upwards."
|
usr << "You move upwards."
|
||||||
else
|
else
|
||||||
usr << "\red There is something in your way."
|
usr << "<span class='warning'>There is something in your way.</span>"
|
||||||
if (legal == 0)
|
if (legal == 0)
|
||||||
usr << "There is nothing of interest in this direction."
|
usr << "There is nothing of interest in this direction."
|
||||||
return 1
|
return 1
|
||||||
@@ -40,13 +40,13 @@
|
|||||||
for(var/atom/A in T.contents)
|
for(var/atom/A in T.contents)
|
||||||
if(A.density)
|
if(A.density)
|
||||||
blocked = 1
|
blocked = 1
|
||||||
usr << "\red You bump into [A.name]."
|
usr << "<span class='warning'>You bump into \the [A].</span>"
|
||||||
break
|
break
|
||||||
if(!blocked)
|
if(!blocked)
|
||||||
usr.Move(T)
|
usr.Move(T)
|
||||||
usr << "You move downwards."
|
usr << "You move downwards."
|
||||||
else
|
else
|
||||||
usr << "\red You cant move through the floor."
|
usr << "<span class='warning'>You cant move through the floor.</span>"
|
||||||
if (legal == 0)
|
if (legal == 0)
|
||||||
usr << "There is nothing of interest in this direction."
|
usr << "There is nothing of interest in this direction."
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ obj/machinery/atmospherics/pipe/zpipe/check_pressure(pressure)
|
|||||||
else return 1
|
else return 1
|
||||||
|
|
||||||
obj/machinery/atmospherics/pipe/zpipe/proc/burst()
|
obj/machinery/atmospherics/pipe/zpipe/proc/burst()
|
||||||
src.visible_message("\red \bold [src] bursts!");
|
src.visible_message("<span class='warning'>\The [src] bursts!</span>");
|
||||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect/effect/system/smoke_spread/smoke = new
|
||||||
smoke.set_up(1,0, src.loc, 0)
|
smoke.set_up(1,0, src.loc, 0)
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
if(blocked || istype(T, /turf/simulated/wall))
|
if(blocked || istype(T, /turf/simulated/wall))
|
||||||
M << "Something is blocking the ladder."
|
M << "Something is blocking the ladder."
|
||||||
else
|
else
|
||||||
M.visible_message("\blue \The [M] climbs [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You climb [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.")
|
M.visible_message("<span class='notice'>\The [M] climbs [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!</span>", "You climb [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.")
|
||||||
M.Move(target.loc)
|
M.Move(target.loc)
|
||||||
|
|
||||||
/* hatch
|
/* hatch
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
if(M.z == z && get_dist(src,M) <= 1)
|
if(M.z == z && get_dist(src,M) <= 1)
|
||||||
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
|
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
|
||||||
M.visible_message("\blue \The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.")
|
M.visible_message("<span class='notice'>\The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!</span>", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.")
|
||||||
M.Move(target.loc)
|
M.Move(target.loc)
|
||||||
flick(top_icon_state_close,top_hatch)
|
flick(top_icon_state_close,top_hatch)
|
||||||
bottom_hatch.overlays -= green_overlay
|
bottom_hatch.overlays -= green_overlay
|
||||||
@@ -271,4 +271,4 @@
|
|||||||
var/turf/above2 = locate(bottom.x, bottom.y, controller.up_target)
|
var/turf/above2 = locate(bottom.x, bottom.y, controller.up_target)
|
||||||
if(istype(above2, /turf/space) || istype(above,/turf/simulated/floor/open))
|
if(istype(above2, /turf/space) || istype(above,/turf/simulated/floor/open))
|
||||||
top.target2 = above2
|
top.target2 = above2
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -109,7 +109,7 @@
|
|||||||
return
|
return
|
||||||
var/obj/item/stack/rods/R = C
|
var/obj/item/stack/rods/R = C
|
||||||
if (R.use(1))
|
if (R.use(1))
|
||||||
user << "\blue Constructing support lattice ..."
|
user << "<span class='notice'>Constructing support lattice...</span>"
|
||||||
playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1)
|
playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1)
|
||||||
ReplaceWithLattice()
|
ReplaceWithLattice()
|
||||||
return
|
return
|
||||||
@@ -126,5 +126,5 @@
|
|||||||
S.use(1)
|
S.use(1)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "\red The plating is going to need some support."
|
user << "<span class='warning'>The plating is going to need some support.</span>"
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ obj/item/check_airflow_movable(n)
|
|||||||
return
|
return
|
||||||
if(src:shoes && src:shoes.flags & NOSLIP)
|
if(src:shoes && src:shoes.flags & NOSLIP)
|
||||||
return
|
return
|
||||||
src << "\red You are sucked away by airflow!"
|
src << "<span class='danger'>You are sucked away by airflow!</span>"
|
||||||
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
|
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
|
||||||
if(airflow_falloff < 1)
|
if(airflow_falloff < 1)
|
||||||
airflow_dest = null
|
airflow_dest = null
|
||||||
@@ -144,7 +144,7 @@ obj/item/check_airflow_movable(n)
|
|||||||
if(istype(src:shoes, /obj/item/clothing/shoes/magboots))
|
if(istype(src:shoes, /obj/item/clothing/shoes/magboots))
|
||||||
if(src:shoes.flags & NOSLIP)
|
if(src:shoes.flags & NOSLIP)
|
||||||
return
|
return
|
||||||
src << "\red You are pushed away by airflow!"
|
src << "<span clas='danger'>You are pushed away by airflow!</span>"
|
||||||
last_airflow = world.time
|
last_airflow = world.time
|
||||||
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
|
var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2)
|
||||||
if(airflow_falloff < 1)
|
if(airflow_falloff < 1)
|
||||||
@@ -197,7 +197,7 @@ atom/movable/proc/airflow_hit(atom/A)
|
|||||||
|
|
||||||
mob/airflow_hit(atom/A)
|
mob/airflow_hit(atom/A)
|
||||||
for(var/mob/M in hearers(src))
|
for(var/mob/M in hearers(src))
|
||||||
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2)
|
M.show_message("<span class='danger'>\The [src] slams into \a [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
|
||||||
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
||||||
var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh
|
var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh
|
||||||
Weaken(weak_amt)
|
Weaken(weak_amt)
|
||||||
@@ -205,7 +205,7 @@ mob/airflow_hit(atom/A)
|
|||||||
|
|
||||||
obj/airflow_hit(atom/A)
|
obj/airflow_hit(atom/A)
|
||||||
for(var/mob/M in hearers(src))
|
for(var/mob/M in hearers(src))
|
||||||
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2)
|
M.show_message("<span class='danger'>\The [src] slams into \a [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
|
||||||
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
@@ -215,7 +215,7 @@ obj/item/airflow_hit(atom/A)
|
|||||||
|
|
||||||
mob/living/carbon/human/airflow_hit(atom/A)
|
mob/living/carbon/human/airflow_hit(atom/A)
|
||||||
// for(var/mob/M in hearers(src))
|
// for(var/mob/M in hearers(src))
|
||||||
// M.show_message("\red <B>[src] slams into [A]!</B>",1,"\red You hear a loud slam!",2)
|
// M.show_message("<span class='danger'>[src] slams into [A]!</span>",1,"<span class='danger'>You hear a loud slam!</span>",2)
|
||||||
playsound(src.loc, "punch", 25, 1, -1)
|
playsound(src.loc, "punch", 25, 1, -1)
|
||||||
if (prob(33))
|
if (prob(33))
|
||||||
loc:add_blood(src)
|
loc:add_blood(src)
|
||||||
@@ -244,4 +244,4 @@ zone/proc/movables()
|
|||||||
for(var/atom/A in T)
|
for(var/atom/A in T)
|
||||||
if(istype(A, /obj/effect) || istype(A, /mob/aiEye))
|
if(istype(A, /obj/effect) || istype(A, /mob/aiEye))
|
||||||
continue
|
continue
|
||||||
. += A
|
. += A
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
|
|||||||
#ifdef ZASDBG
|
#ifdef ZASDBG
|
||||||
if(updated != updating.len)
|
if(updated != updating.len)
|
||||||
tick_progress = "[updating.len - updated] tiles left unupdated."
|
tick_progress = "[updating.len - updated] tiles left unupdated."
|
||||||
world << "\red [tick_progress]"
|
world << "<span class='danger'>[tick_progress]</span>"
|
||||||
. = 0
|
. = 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -371,4 +371,4 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
|
|||||||
|
|
||||||
/datum/controller/air_system/proc/remove_edge(connection_edge/E)
|
/datum/controller/air_system/proc/remove_edge(connection_edge/E)
|
||||||
edges.Remove(E)
|
edges.Remove(E)
|
||||||
if(!E.sleeping) active_edges.Remove(E)
|
if(!E.sleeping) active_edges.Remove(E)
|
||||||
|
|||||||
@@ -87,4 +87,4 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
|
|||||||
client/proc/ZASSettings()
|
client/proc/ZASSettings()
|
||||||
set category = "Debug"
|
set category = "Debug"
|
||||||
|
|
||||||
vsc.SetDefault(mob)
|
vsc.SetDefault(mob)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ obj/var/contaminated = 0
|
|||||||
if(vsc.plc.SKIN_BURNS)
|
if(vsc.plc.SKIN_BURNS)
|
||||||
if(!pl_head_protected() || !pl_suit_protected())
|
if(!pl_head_protected() || !pl_suit_protected())
|
||||||
burn_skin(0.75)
|
burn_skin(0.75)
|
||||||
if(prob(20)) src << "\red Your skin burns!"
|
if(prob(20)) src << "<span class='danger'>Your skin burns!</span>"
|
||||||
updatehealth()
|
updatehealth()
|
||||||
|
|
||||||
//Burn eyes if exposed.
|
//Burn eyes if exposed.
|
||||||
@@ -111,7 +111,7 @@ obj/var/contaminated = 0
|
|||||||
if(vsc.plc.GENETIC_CORRUPTION)
|
if(vsc.plc.GENETIC_CORRUPTION)
|
||||||
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
|
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
|
||||||
randmutb(src)
|
randmutb(src)
|
||||||
src << "\red High levels of toxins cause you to spontaneously mutate."
|
src << "<span class='danger'>High levels of toxins cause you to spontaneously mutate!</span>"
|
||||||
domutcheck(src,null)
|
domutcheck(src,null)
|
||||||
|
|
||||||
|
|
||||||
@@ -122,11 +122,11 @@ obj/var/contaminated = 0
|
|||||||
|
|
||||||
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
|
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
|
||||||
if(E)
|
if(E)
|
||||||
if(prob(20)) src << "\red Your eyes burn!"
|
if(prob(20)) src << "<span class='danger'>Your eyes burn!</span>"
|
||||||
E.damage += 2.5
|
E.damage += 2.5
|
||||||
eye_blurry = min(eye_blurry+1.5,50)
|
eye_blurry = min(eye_blurry+1.5,50)
|
||||||
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
|
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
|
||||||
src << "\red You are blinded!"
|
src << "<span class='danger'>You are blinded!</span>"
|
||||||
eye_blind += 20
|
eye_blind += 20
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/pl_head_protected()
|
/mob/living/carbon/human/proc/pl_head_protected()
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ var/global/vs_control/vsc = new
|
|||||||
vars[ch] = vw
|
vars[ch] = vw
|
||||||
if(how == "Toggle")
|
if(how == "Toggle")
|
||||||
newvar = (newvar?"ON":"OFF")
|
newvar = (newvar?"ON":"OFF")
|
||||||
world << "\blue <b>[key_name(user)] changed the setting [display_description] to [newvar].</b>"
|
world << "<span class='notice'><b>[key_name(user)] changed the setting [display_description] to [newvar].</b></span>"
|
||||||
if(ch in plc.settings)
|
if(ch in plc.settings)
|
||||||
ChangeSettingsDialog(user,plc.settings)
|
ChangeSettingsDialog(user,plc.settings)
|
||||||
else
|
else
|
||||||
@@ -321,7 +321,7 @@ var/global/vs_control/vsc = new
|
|||||||
plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION)
|
plc.N2O_HALLUCINATION = initial(plc.N2O_HALLUCINATION)
|
||||||
|
|
||||||
|
|
||||||
world << "\blue <b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b>"
|
world << "<span class='notice'><b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b></span>"
|
||||||
|
|
||||||
/pl_control/var/list/settings = list()
|
/pl_control/var/list/settings = list()
|
||||||
|
|
||||||
|
|||||||
@@ -169,16 +169,15 @@ proc/listclearnulls(list/list)
|
|||||||
return output
|
return output
|
||||||
|
|
||||||
//Randomize: Return the list in a random order
|
//Randomize: Return the list in a random order
|
||||||
/proc/shuffle(var/list/shufflelist)
|
/proc/shuffle(var/list/L)
|
||||||
if(!shufflelist)
|
if(!L)
|
||||||
return
|
return
|
||||||
var/list/new_list = list()
|
|
||||||
var/list/old_list = shufflelist.Copy()
|
L = L.Copy()
|
||||||
while(old_list.len)
|
|
||||||
var/item = pick(old_list)
|
for(var/i=1; i<L.len; i++)
|
||||||
new_list += item
|
L.Swap(i, rand(i,L.len))
|
||||||
old_list -= item
|
return L
|
||||||
return new_list
|
|
||||||
|
|
||||||
//Return a list with no duplicate entries
|
//Return a list with no duplicate entries
|
||||||
/proc/uniquelist(var/list/L)
|
/proc/uniquelist(var/list/L)
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ var/syndicate_code_response//Code response for traitors.
|
|||||||
set name = "Generate Code Phrase"
|
set name = "Generate Code Phrase"
|
||||||
set category = "Debug"
|
set category = "Debug"
|
||||||
|
|
||||||
world << "\red Code Phrase is: \black [generate_code_phrase()]"
|
world << "<span class='warning'>Code Phrase is:</span> [generate_code_phrase()]"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,8 @@
|
|||||||
input = replace_characters(input, list("\n"=" ","\t"=" "))
|
input = replace_characters(input, list("\n"=" ","\t"=" "))
|
||||||
|
|
||||||
if(encode)
|
if(encode)
|
||||||
//In addition to processing html, html_encode removes byond formatting codes like "\red", "\i" and other.
|
// The below \ escapes have a space inserted to attempt to enable Travis auto-checking of span class usage. Please do not remove the space.
|
||||||
|
//In addition to processing html, html_encode removes byond formatting codes like "\ red", "\ i" and other.
|
||||||
//It is important to avoid double-encode text, it can "break" quotes and some other characters.
|
//It is important to avoid double-encode text, it can "break" quotes and some other characters.
|
||||||
//Also, keep in mind that escaped characters don't work in the interface (window titles, lower left corner of the main window, etc.)
|
//Also, keep in mind that escaped characters don't work in the interface (window titles, lower left corner of the main window, etc.)
|
||||||
input = html_encode(input)
|
input = html_encode(input)
|
||||||
@@ -312,4 +313,4 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
/proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null)
|
/proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null)
|
||||||
if(C && (C.prefs.toggles & CHAT_NOICONS))
|
if(C && (C.prefs.toggles & CHAT_NOICONS))
|
||||||
return tagdesc
|
return tagdesc
|
||||||
return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
|
return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
|
||||||
|
|||||||
@@ -1363,3 +1363,8 @@ var/list/WALLITEMS = list(
|
|||||||
temp_col = "0[temp_col]"
|
temp_col = "0[temp_col]"
|
||||||
colour += temp_col
|
colour += temp_col
|
||||||
return colour
|
return colour
|
||||||
|
|
||||||
|
/atom/proc/get_light_and_color(var/atom/origin)
|
||||||
|
if(origin)
|
||||||
|
color = origin.color
|
||||||
|
set_light(origin.light_range, origin.light_power, origin.light_color)
|
||||||
|
|||||||
@@ -329,7 +329,7 @@
|
|||||||
nutrition = max(nutrition - rand(1,5),0)
|
nutrition = max(nutrition - rand(1,5),0)
|
||||||
handle_regular_hud_updates()
|
handle_regular_hud_updates()
|
||||||
else
|
else
|
||||||
src << "\red You're out of energy! You need food!"
|
src << "<span class='warning'>You're out of energy! You need food!</span>"
|
||||||
|
|
||||||
// Simple helper to face what you clicked on, in case it should be needed in more than one place
|
// Simple helper to face what you clicked on, in case it should be needed in more than one place
|
||||||
/mob/proc/face_atom(var/atom/A)
|
/mob/proc/face_atom(var/atom/A)
|
||||||
|
|||||||
@@ -262,11 +262,11 @@ datum/hud/New(mob/owner)
|
|||||||
set hidden = 1
|
set hidden = 1
|
||||||
|
|
||||||
if(!hud_used)
|
if(!hud_used)
|
||||||
usr << "\red This mob type does not use a HUD."
|
usr << "<span class='warning'>This mob type does not use a HUD.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!ishuman(src))
|
if(!ishuman(src))
|
||||||
usr << "\red Inventory hiding is currently only supported for human mobs, sorry."
|
usr << "<span class='warning'>Inventory hiding is currently only supported for human mobs, sorry.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!client) return
|
if(!client) return
|
||||||
@@ -353,4 +353,4 @@ datum/hud/New(mob/owner)
|
|||||||
|
|
||||||
hud_used.hidden_inventory_update()
|
hud_used.hidden_inventory_update()
|
||||||
hud_used.persistant_inventory_update()
|
hud_used.persistant_inventory_update()
|
||||||
update_action_buttons()
|
update_action_buttons()
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
if(!client) return
|
if(!client) return
|
||||||
client.inquisitive_ghost = !client.inquisitive_ghost
|
client.inquisitive_ghost = !client.inquisitive_ghost
|
||||||
if(client.inquisitive_ghost)
|
if(client.inquisitive_ghost)
|
||||||
src << "\blue You will now examine everything you click on."
|
src << "<span class='notice'>You will now examine everything you click on.</span>"
|
||||||
else
|
else
|
||||||
src << "\blue You will no longer examine things you click on."
|
src << "<span class='notice'>You will no longer examine things you click on.</span>"
|
||||||
|
|
||||||
/mob/dead/observer/DblClickOn(var/atom/A, var/params)
|
/mob/dead/observer/DblClickOn(var/atom/A, var/params)
|
||||||
if(client.buildmode)
|
if(client.buildmode)
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ var/const/tk_maxrange = 15
|
|||||||
if(8 to tk_maxrange)
|
if(8 to tk_maxrange)
|
||||||
user.next_move += 10
|
user.next_move += 10
|
||||||
else
|
else
|
||||||
user << "\blue Your mind won't reach that far."
|
user << "<span class='notice'>Your mind won't reach that far.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!focus)
|
if(!focus)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ client
|
|||||||
|
|
||||||
|
|
||||||
if(!usr.client || !usr.client.holder)
|
if(!usr.client || !usr.client.holder)
|
||||||
usr << "\red You need to be an administrator to access this."
|
usr << "<span class='warning'>You need to be an administrator to access this.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -602,8 +602,8 @@ client
|
|||||||
if(!i)
|
if(!i)
|
||||||
usr << "No objects of this type exist"
|
usr << "No objects of this type exist"
|
||||||
return
|
return
|
||||||
log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
|
log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted)")
|
||||||
message_admins("\blue [key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
|
message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted)</span>")
|
||||||
if("Type and subtypes")
|
if("Type and subtypes")
|
||||||
var/i = 0
|
var/i = 0
|
||||||
for(var/obj/Obj in world)
|
for(var/obj/Obj in world)
|
||||||
@@ -613,8 +613,8 @@ client
|
|||||||
if(!i)
|
if(!i)
|
||||||
usr << "No objects of this type exist"
|
usr << "No objects of this type exist"
|
||||||
return
|
return
|
||||||
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
|
||||||
message_admins("\blue [key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)</span>")
|
||||||
|
|
||||||
else if(href_list["explode"])
|
else if(href_list["explode"])
|
||||||
if(!check_rights(R_DEBUG|R_FUN)) return
|
if(!check_rights(R_DEBUG|R_FUN)) return
|
||||||
@@ -941,8 +941,8 @@ client
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(amount != 0)
|
if(amount != 0)
|
||||||
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
|
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L]")
|
||||||
message_admins("\blue [key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
|
message_admins("<span class='notice'>[key_name(usr)] dealt [amount] amount of [Text] damage to [L]</span>")
|
||||||
href_list["datumrefresh"] = href_list["mobToDamage"]
|
href_list["datumrefresh"] = href_list["mobToDamage"]
|
||||||
|
|
||||||
if(href_list["datumrefresh"])
|
if(href_list["datumrefresh"])
|
||||||
|
|||||||
@@ -53,25 +53,25 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your throat feels sore."
|
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Mucous runs down the back of your throat."
|
affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("sneeze")
|
affected_mob.emote("sneeze")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your muscles ache."
|
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your stomach hurts."
|
affected_mob << "<span class='warning>Your stomach hurts.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.adjustToxLoss(1)
|
affected_mob.adjustToxLoss(1)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(5)
|
if(5)
|
||||||
affected_mob << "\red You feel something tearing its way out of your stomach..."
|
affected_mob << "<span class='danger'>You feel something tearing its way out of your stomach...</span>"
|
||||||
affected_mob.adjustToxLoss(10)
|
affected_mob.adjustToxLoss(10)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
|
|||||||
@@ -24,11 +24,11 @@
|
|||||||
|
|
||||||
if(stage == 1)
|
if(stage == 1)
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob << "\red You feel a stinging pain in your abdomen!"
|
affected_mob << "<span class='warning'>You feel a stinging pain in your abdomen!</span>"
|
||||||
affected_mob.emote("me",1,"winces slightly.")
|
affected_mob.emote("me",1,"winces slightly.")
|
||||||
if(stage > 1)
|
if(stage > 1)
|
||||||
if(prob(3))
|
if(prob(3))
|
||||||
affected_mob << "\red You feel a stabbing pain in your abdomen!"
|
affected_mob << "<span class='warning'>You feel a stabbing pain in your abdomen!</span>"
|
||||||
affected_mob.emote("me",1,"winces painfully.")
|
affected_mob.emote("me",1,"winces painfully.")
|
||||||
affected_mob.adjustToxLoss(1)
|
affected_mob.adjustToxLoss(1)
|
||||||
if(stage > 2)
|
if(stage > 2)
|
||||||
@@ -37,13 +37,13 @@
|
|||||||
var/mob/living/carbon/human/H = affected_mob
|
var/mob/living/carbon/human/H = affected_mob
|
||||||
H.vomit()
|
H.vomit()
|
||||||
else
|
else
|
||||||
affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!"
|
affected_mob << "<span class='danger'>You gag as you want to throw up, but there's nothing in your stomach!</span>"
|
||||||
affected_mob.Weaken(10)
|
affected_mob.Weaken(10)
|
||||||
affected_mob.adjustToxLoss(3)
|
affected_mob.adjustToxLoss(3)
|
||||||
if(stage > 3)
|
if(stage > 3)
|
||||||
if(prob(1) && ishuman(affected_mob))
|
if(prob(1) && ishuman(affected_mob))
|
||||||
var/mob/living/carbon/human/H = affected_mob
|
var/mob/living/carbon/human/H = affected_mob
|
||||||
H << "\red Your abdomen is a world of pain!"
|
H << "<span class='danger'>Your abdomen is a world of pain!</span>"
|
||||||
H.Weaken(10)
|
H.Weaken(10)
|
||||||
|
|
||||||
var/obj/item/organ/external/groin = H.get_organ("groin")
|
var/obj/item/organ/external/groin = H.get_organ("groin")
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
switch(stage)
|
switch(stage)
|
||||||
if(1)
|
if(1)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel like something is moving inside of you"
|
affected_mob << "<span class='warning'>You feel like something is moving inside of you!</span>"
|
||||||
if(2) //also changes say, see say.dm
|
if(2) //also changes say, see say.dm
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel like something is moving inside of you"
|
affected_mob << "<span class='warning'>You feel like something is moving inside of you!</span>"
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
|
affected_mob << "<span class='danger'>BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</span>"
|
||||||
if(3)
|
if(3)
|
||||||
//Should give the bee spit verb
|
//Should give the bee spit verb
|
||||||
if(4)
|
if(4)
|
||||||
@@ -28,4 +28,4 @@
|
|||||||
//Plus if you die, you explode into bees
|
//Plus if you die, you explode into bees
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
//Started working on it, but am too lazy to finish it today -- Urist
|
//Started working on it, but am too lazy to finish it today -- Urist
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob.emote("yawn")
|
affected_mob.emote("yawn")
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your don't feel like yourself."
|
affected_mob << "<span class='warning'>Your don't feel like yourself.</span>"
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob.adjustBrainLoss(1)
|
affected_mob.adjustBrainLoss(1)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
@@ -34,12 +34,12 @@
|
|||||||
affected_mob.adjustBrainLoss(2)
|
affected_mob.adjustBrainLoss(2)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your try to remember something important...but can't."
|
affected_mob << "<span class='warning'>You try to remember something important...but can't.</span>"
|
||||||
/* if(prob(10))
|
/* if(prob(10))
|
||||||
affected_mob.adjustToxLoss(3)
|
affected_mob.adjustToxLoss(3)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your head hurts." */
|
affected_mob << "<span class='warning'>Your head hurts.</span>" */
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob.emote("stare")
|
affected_mob.emote("stare")
|
||||||
@@ -49,14 +49,14 @@
|
|||||||
affected_mob.adjustToxLoss(4)
|
affected_mob.adjustToxLoss(4)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Your head hurts." */
|
affected_mob << "<span class='notice>Your head hurts.</span>" */
|
||||||
if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now
|
if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now
|
||||||
affected_mob.adjustBrainLoss(3)
|
affected_mob.adjustBrainLoss(3)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red Strange buzzing fills your head, removing all thoughts."
|
affected_mob << "<span class='warning'>A strange buzzing fills your head, removing all thoughts.</span>"
|
||||||
if(prob(3))
|
if(prob(3))
|
||||||
affected_mob << "\red You lose consciousness..."
|
affected_mob << "<span class='warning'>You lose consciousness...</span>"
|
||||||
for(var/mob/O in viewers(affected_mob, null))
|
for(var/mob/O in viewers(affected_mob, null))
|
||||||
O.show_message("[affected_mob] suddenly collapses", 1)
|
O.show_message("[affected_mob] suddenly collapses", 1)
|
||||||
affected_mob.Paralyse(rand(5,10))
|
affected_mob.Paralyse(rand(5,10))
|
||||||
@@ -64,4 +64,4 @@
|
|||||||
affected_mob.emote("snore")
|
affected_mob.emote("snore")
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
affected_mob.stuttering += 3
|
affected_mob.stuttering += 3
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -16,16 +16,16 @@
|
|||||||
if(2)
|
if(2)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
|
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if(prob(1) && prob(5))
|
if(prob(1) && prob(5))
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -33,22 +33,22 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your throat feels sore."
|
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Mucous runs down the back of your throat."
|
affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
|
||||||
if(3)
|
if(3)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
|
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if(prob(1) && prob(1))
|
if(prob(1) && prob(1))
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -56,11 +56,11 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your throat feels sore."
|
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Mucous runs down the back of your throat."
|
affected_mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
|
||||||
if(prob(1) && prob(50))
|
if(prob(1) && prob(50))
|
||||||
if(!affected_mob.resistances.Find(/datum/disease/flu))
|
if(!affected_mob.resistances.Find(/datum/disease/flu))
|
||||||
var/datum/disease/Flu = new /datum/disease/flu(0)
|
var/datum/disease/Flu = new /datum/disease/flu(0)
|
||||||
affected_mob.contract_disease(Flu,1)
|
affected_mob.contract_disease(Flu,1)
|
||||||
cure()
|
cure()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
if(2)
|
if(2)
|
||||||
affected_mob.bodytemperature -= 10
|
affected_mob.bodytemperature -= 10
|
||||||
if(prob(1) && prob(10))
|
if(prob(1) && prob(10))
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -24,9 +24,9 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your throat feels sore."
|
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob << "\red You feel stiff."
|
affected_mob << "<span class='warning'>You feel stiff.</span>"
|
||||||
if(3)
|
if(3)
|
||||||
affected_mob.bodytemperature -= 20
|
affected_mob.bodytemperature -= 20
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -34,6 +34,6 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your throat feels sore."
|
affected_mob << "<span class='warning'>Your throat feels sore.</span>"
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob << "\red You feel stiff."
|
affected_mob << "<span class='warning'>You feel stiff.</span>"
|
||||||
|
|||||||
@@ -23,11 +23,11 @@
|
|||||||
if(prob(8))
|
if(prob(8))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your muscles ache."
|
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your stomach hurts."
|
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.adjustToxLoss(2)
|
affected_mob.adjustToxLoss(2)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
src.original_dna["UI"] = affected_mob.dna.UI.Copy()
|
src.original_dna["UI"] = affected_mob.dna.UI.Copy()
|
||||||
src.original_dna["SE"] = affected_mob.dna.SE.Copy()
|
src.original_dna["SE"] = affected_mob.dna.SE.Copy()
|
||||||
|
|
||||||
affected_mob << "\red You don't feel like yourself.."
|
affected_mob << "<span class='warning'>You don't feel like yourself..</span>"
|
||||||
var/list/newUI=strain_data["UI"]
|
var/list/newUI=strain_data["UI"]
|
||||||
var/list/newSE=strain_data["SE"]
|
var/list/newSE=strain_data["SE"]
|
||||||
affected_mob.UpdateAppearance(newUI.Copy())
|
affected_mob.UpdateAppearance(newUI.Copy())
|
||||||
@@ -65,5 +65,5 @@
|
|||||||
affected_mob.dna.UpdateSE()
|
affected_mob.dna.UpdateSE()
|
||||||
affected_mob.real_name = original_dna["name"]
|
affected_mob.real_name = original_dna["name"]
|
||||||
|
|
||||||
affected_mob << "\blue You feel more like yourself."
|
affected_mob << "<span class='notice'>You feel more like yourself.</span>"
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
else if(prob(5))
|
else if(prob(5))
|
||||||
affected_mob.emote("gasp")
|
affected_mob.emote("gasp")
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob << "\red You're starting to feel very weak..."
|
affected_mob << "<span class='warning'>You're starting to feel very weak...</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
|
|||||||
@@ -17,12 +17,12 @@
|
|||||||
if(2)
|
if(2)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank
|
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
stage--
|
stage--
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank
|
if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
stage--
|
stage--
|
||||||
return
|
return
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -30,11 +30,11 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your muscles ache."
|
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your stomach hurts."
|
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.adjustToxLoss(1)
|
affected_mob.adjustToxLoss(1)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
@@ -42,12 +42,12 @@
|
|||||||
if(3)
|
if(3)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
stage--
|
stage--
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(15)) //added until sleeping is fixed
|
if(affected_mob.lying && prob(15)) //added until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
stage--
|
stage--
|
||||||
return
|
return
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -55,11 +55,11 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your muscles ache."
|
affected_mob << "<span class='warning'>Your muscles ache.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red Your stomach hurts."
|
affected_mob << "<span class='warning'>Your stomach hurts.</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.adjustToxLoss(1)
|
affected_mob.adjustToxLoss(1)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red You're burning in your own skin!"
|
affected_mob << "<span class='warning'>You're burning in your own skin!</span>"
|
||||||
affected_mob.take_organ_damage(0,5)
|
affected_mob.take_organ_damage(0,5)
|
||||||
|
|
||||||
if(3)
|
if(3)
|
||||||
@@ -31,6 +31,6 @@
|
|||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob << "\red You're burning in your own skin!"
|
affected_mob << "<span class='warning'>You're burning in your own skin!</span>"
|
||||||
affected_mob.take_organ_damage(0,5)
|
affected_mob.take_organ_damage(0,5)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -26,15 +26,15 @@
|
|||||||
else if(prob(5))
|
else if(prob(5))
|
||||||
affected_mob.emote("gasp")
|
affected_mob.emote("gasp")
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob << "\red You're starting to feel very weak..."
|
affected_mob << "<span class='warning'>You're starting to feel very weak...</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob.emote("cough")
|
affected_mob.emote("cough")
|
||||||
affected_mob.adjustToxLoss(5)
|
affected_mob.adjustToxLoss(5)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(5)
|
if(5)
|
||||||
affected_mob << "\red Your body feels as if it's trying to rip itself open..."
|
affected_mob << "<span class='warning'>Your body feels as if it's trying to rip itself open...</span>"
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
affected_mob.gib()
|
affected_mob.gib()
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
switch(stage)
|
switch(stage)
|
||||||
if(2)
|
if(2)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel a slight shock course through your body."
|
affected_mob << "<span class='warning'>You feel a slight shock course through your body.</span>"
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
for(var/obj/M in orange(2,affected_mob))
|
for(var/obj/M in orange(2,affected_mob))
|
||||||
if(!M.anchored && (M.flags & CONDUCT))
|
if(!M.anchored && (M.flags & CONDUCT))
|
||||||
@@ -36,9 +36,9 @@
|
|||||||
*/
|
*/
|
||||||
if(3)
|
if(3)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel a strong shock course through your body."
|
affected_mob << "<span class='warning'>You feel a strong shock course through your body.</span>"
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel like clowning around."
|
affected_mob << "<span class='warning'>You feel like clowning around.</span>"
|
||||||
if(prob(4))
|
if(prob(4))
|
||||||
for(var/obj/M in orange(4,affected_mob))
|
for(var/obj/M in orange(4,affected_mob))
|
||||||
if(!M.anchored && (M.flags & CONDUCT))
|
if(!M.anchored && (M.flags & CONDUCT))
|
||||||
@@ -64,9 +64,9 @@
|
|||||||
*/
|
*/
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You feel a powerful shock course through your body."
|
affected_mob << "<span class='warning'>You feel a powerful shock course through your body.</span>"
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
affected_mob << "\red You query upon the nature of miracles."
|
affected_mob << "<span class='warning'>You query upon the nature of miracles.</span>"
|
||||||
if(prob(8))
|
if(prob(8))
|
||||||
for(var/obj/M in orange(6,affected_mob))
|
for(var/obj/M in orange(6,affected_mob))
|
||||||
if(!M.anchored && (M.flags & CONDUCT))
|
if(!M.anchored && (M.flags & CONDUCT))
|
||||||
@@ -90,4 +90,4 @@
|
|||||||
else if(M.y < affected_mob.y)
|
else if(M.y < affected_mob.y)
|
||||||
M.y+=rand(1,min(5,affected_mob.y-M.y))
|
M.y+=rand(1,min(5,affected_mob.y-M.y))
|
||||||
*/
|
*/
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
..()
|
..()
|
||||||
switch(stage)
|
switch(stage)
|
||||||
if(1)
|
if(1)
|
||||||
if(prob(10)) affected_mob << "\red You feel a little silly."
|
if(prob(10)) affected_mob << "<span class='warning'>You feel a little silly.</span>"
|
||||||
if(2)
|
if(2)
|
||||||
if(prob(10)) affected_mob << "\red You start seeing rainbows."
|
if(prob(10)) affected_mob << "<span class='warning'>You start seeing rainbows.</span>"
|
||||||
if(3)
|
if(3)
|
||||||
if(prob(10)) affected_mob << "\red Your thoughts are interrupted by a loud <b>HONK!</b>"
|
if(prob(10)) affected_mob << "<span class='warning'>Your thoughts are interrupted by a loud <b>HONK!</b></span>"
|
||||||
if(4)
|
if(4)
|
||||||
if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
|
if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
|
||||||
|
|||||||
@@ -33,55 +33,55 @@
|
|||||||
if(restcure)
|
if(restcure)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed
|
if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red Your head hurts."
|
affected_mob << "<span class='warning'>Your head hurts.</span>"
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "You feel a tingling sensation in your chest."
|
affected_mob << "<span class='warning'>You feel a tingling sensation in your chest.</span>"
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "\red You feel angry."
|
affected_mob << "<span class='warning'>You feel angry.</span>"
|
||||||
if(2)
|
if(2)
|
||||||
if(restcure)
|
if(restcure)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
|
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red Your skin feels loose."
|
affected_mob << "<span class='warning'>Your skin feels loose.</span>"
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << "You feel very strange."
|
affected_mob << "<span class='warning'>You feel very strange.</span>"
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red You feel a stabbing pain in your head!"
|
affected_mob << "<span class='warning'>You feel a stabbing pain in your head!</span>"
|
||||||
affected_mob.Paralyse(2)
|
affected_mob.Paralyse(2)
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red Your stomach churns."
|
affected_mob << "<span class='warning'>Your stomach churns.</span>"
|
||||||
if(3)
|
if(3)
|
||||||
if(restcure)
|
if(restcure)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
|
if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << "\red Your entire body vibrates."
|
affected_mob << "<span class='warning'>Your entire body vibrates.</span>"
|
||||||
|
|
||||||
if (prob(35))
|
if (prob(35))
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
@@ -93,16 +93,16 @@
|
|||||||
if(restcure)
|
if(restcure)
|
||||||
/*
|
/*
|
||||||
if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed
|
if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed
|
if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed
|
||||||
affected_mob << "\blue You feel better."
|
affected_mob << "<span class='notice'>You feel better.</span>"
|
||||||
cure()
|
cure()
|
||||||
return
|
return
|
||||||
if (prob(60))
|
if (prob(60))
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
scramble(1, affected_mob, rand(50,75))
|
scramble(1, affected_mob, rand(50,75))
|
||||||
else
|
else
|
||||||
scramble(0, affected_mob, rand(50,75))
|
scramble(0, affected_mob, rand(50,75))
|
||||||
|
|||||||
@@ -22,30 +22,30 @@
|
|||||||
affected_mob.adjustToxLoss(5)
|
affected_mob.adjustToxLoss(5)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
affected_mob << "\red You feel strange..."
|
affected_mob << "<span class='warning'>You feel strange...</span>"
|
||||||
if(3)
|
if(3)
|
||||||
if(affected_mob.ckey == "rosham")
|
if(affected_mob.ckey == "rosham")
|
||||||
src.cure()
|
src.cure()
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
affected_mob << "\red You feel the urge to dance..."
|
affected_mob << "<span class='warning'>You feel the urge to dance...</span>"
|
||||||
else if(prob(5))
|
else if(prob(5))
|
||||||
affected_mob.emote("gasp")
|
affected_mob.emote("gasp")
|
||||||
else if(prob(10))
|
else if(prob(10))
|
||||||
affected_mob << "\red You feel the need to chick chicky boom..."
|
affected_mob << "<span class='warning'>You feel the need to chick chicky boom...</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if(affected_mob.ckey == "rosham")
|
if(affected_mob.ckey == "rosham")
|
||||||
src.cure()
|
src.cure()
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
affected_mob.emote("gasp")
|
affected_mob.emote("gasp")
|
||||||
affected_mob << "\red You feel a burning beat inside..."
|
affected_mob << "<span class='warning'>You feel a burning beat inside...</span>"
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
affected_mob.adjustToxLoss(5)
|
affected_mob.adjustToxLoss(5)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(5)
|
if(5)
|
||||||
if(affected_mob.ckey == "rosham")
|
if(affected_mob.ckey == "rosham")
|
||||||
src.cure()
|
src.cure()
|
||||||
affected_mob << "\red Your body is unable to contain the Rhumba Beat..."
|
affected_mob << "<span class='warning'>Your body is unable to contain the Rhumba Beat...</span>"
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
affected_mob.gib()
|
affected_mob.gib()
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -19,36 +19,36 @@
|
|||||||
switch(stage)
|
switch(stage)
|
||||||
if(2)
|
if(2)
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "Your joints feel stiff."
|
affected_mob << "<span class='warning'>Your joints feel stiff.</span>"
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "\red Beep...boop.."
|
affected_mob << "<span class='warning'>Beep...boop..</span>"
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "\red Bop...beeep..."
|
affected_mob << "<span class='warning'>Bop...beeep...</span>"
|
||||||
if(3)
|
if(3)
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red Your joints feel very stiff."
|
affected_mob << "<span class='warning'>Your joints feel very stiff.</span>"
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << "Your skin feels loose."
|
affected_mob << "<span class='warning'>Your skin feels loose.</span>"
|
||||||
affected_mob.take_organ_damage(5)
|
affected_mob.take_organ_damage(5)
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red You feel a stabbing pain in your head."
|
affected_mob << "<span class='warning'>You feel a stabbing pain in your head.</span>"
|
||||||
affected_mob.Paralyse(2)
|
affected_mob.Paralyse(2)
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red You can feel something move...inside."
|
affected_mob << "<span class='warning'>You can feel something move...inside.</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << "\red Your skin feels very loose."
|
affected_mob << "<span class='warning'>Your skin feels very loose.</span>"
|
||||||
affected_mob.take_organ_damage(8)
|
affected_mob.take_organ_damage(8)
|
||||||
if (prob(20))
|
if (prob(20))
|
||||||
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
|
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red You can feel... something...inside you."
|
affected_mob << "<span class='warning'>You can feel... something...inside you.</span>"
|
||||||
if(5)
|
if(5)
|
||||||
affected_mob <<"\red Your skin feels as if it's about to burst off..."
|
affected_mob <<"<span class='warning'>Your skin feels as if it's about to burst off...</span>"
|
||||||
affected_mob.adjustToxLoss(10)
|
affected_mob.adjustToxLoss(10)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(40)) //So everyone can feel like robot Seth Brundle
|
if(prob(40)) //So everyone can feel like robot Seth Brundle
|
||||||
|
|||||||
@@ -31,14 +31,14 @@ STI KALY - blind
|
|||||||
if(prob(1)&&prob(50))
|
if(prob(1)&&prob(50))
|
||||||
affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
|
affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
|
||||||
if(prob(1)&&prob(50))
|
if(prob(1)&&prob(50))
|
||||||
affected_mob << "\red You feel [pick("that you don't have enough mana.", "that the winds of magic are gone.", "an urge to summon familiar.")]"
|
affected_mob << "<span class='warning'>You feel [pick("that you don't have enough mana.", "that the winds of magic are gone.", "an urge to summon familiar.")]</span>"
|
||||||
|
|
||||||
|
|
||||||
if(3)
|
if(3)
|
||||||
if(prob(1)&&prob(50))
|
if(prob(1)&&prob(50))
|
||||||
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
|
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
|
||||||
if(prob(1)&&prob(50))
|
if(prob(1)&&prob(50))
|
||||||
affected_mob << "\red You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar.")]."
|
affected_mob << "<span class='warning'>You feel [pick("the magic bubbling in your veins.","that this location gives you a +1 to INT.","an urge to summon familiar.")]</span>"
|
||||||
|
|
||||||
if(4)
|
if(4)
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ STI KALY - blind
|
|||||||
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
|
affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
|
||||||
return
|
return
|
||||||
if(prob(1)&&prob(50))
|
if(prob(1)&&prob(50))
|
||||||
affected_mob << "\red You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")]."
|
affected_mob << "<span class='warning'>You feel [pick("the tidal wave of raw power building inside.","that this location gives you a +2 to INT and +1 to WIS.","an urge to teleport.")]</span>"
|
||||||
spawn_wizard_clothes(50)
|
spawn_wizard_clothes(50)
|
||||||
if(prob(1)&&prob(1))
|
if(prob(1)&&prob(1))
|
||||||
teleport()
|
teleport()
|
||||||
|
|||||||
@@ -17,38 +17,38 @@
|
|||||||
switch(stage)
|
switch(stage)
|
||||||
if(2)
|
if(2)
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "Your throat feels scratchy."
|
affected_mob << "<span class='warning'>Your throat feels scratchy.</span>"
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "\red Kill..."
|
affected_mob << "<span class='warning'>Kill...</span>"
|
||||||
if (prob(9))
|
if (prob(9))
|
||||||
affected_mob << "\red Kill..."
|
affected_mob << "<span class='warning'>Kill...</span>"
|
||||||
if(3)
|
if(3)
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red Your throat feels very scratchy."
|
affected_mob << "<span class='warning'>Your throat feels very scratchy.</span>"
|
||||||
affected_mob.take_organ_damage(1)
|
affected_mob.take_organ_damage(1)
|
||||||
/*
|
/*
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
||||||
*/
|
*/
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << "Your skin feels tight."
|
affected_mob << "<span class='warning'>Your skin feels tight.</span>"
|
||||||
affected_mob.take_organ_damage(5)
|
affected_mob.take_organ_damage(5)
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red You feel a stabbing pain in your head."
|
affected_mob << "<span class='warning'>You feel a stabbing pain in your head.</span>"
|
||||||
affected_mob.Paralyse(2)
|
affected_mob.Paralyse(2)
|
||||||
if (prob(4))
|
if (prob(4))
|
||||||
affected_mob << "\red You can feel something move...inside."
|
affected_mob << "<span class='warning'>You can feel something move...inside.</span>"
|
||||||
if(4)
|
if(4)
|
||||||
if (prob(10))
|
if (prob(10))
|
||||||
affected_mob << pick("\red Your skin feels very tight.", "\red Your blood boils!")
|
affected_mob << pick("<span class='warning'>Your skin feels very tight.</span>", "<span class='warning'>Your blood boils!</span>")
|
||||||
affected_mob.take_organ_damage(8)
|
affected_mob.take_organ_damage(8)
|
||||||
if (prob(20))
|
if (prob(20))
|
||||||
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
|
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
|
||||||
if (prob(8))
|
if (prob(8))
|
||||||
affected_mob << "\red You can feel... something...inside you."
|
affected_mob << "<span class='warning'>You can feel... something...inside you.</span>"
|
||||||
if(5)
|
if(5)
|
||||||
affected_mob <<"\red Your skin feels impossibly calloused..."
|
affected_mob <<"<span class='warning'>Your skin feels impossibly calloused...</span>"
|
||||||
affected_mob.adjustToxLoss(10)
|
affected_mob.adjustToxLoss(10)
|
||||||
affected_mob.updatehealth()
|
affected_mob.updatehealth()
|
||||||
if(prob(40))
|
if(prob(40))
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ Data storage vars:
|
|||||||
arg_list = arguments
|
arg_list = arguments
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
// world << "\red Invalid arguments supplied for [src.type], ref = \ref[src]"
|
// world << "<span class='danger'>Invalid arguments supplied for [src.type], ref = \ref[src]</span>"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
proc/toggle_null_checks()
|
proc/toggle_null_checks()
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ datum/mind
|
|||||||
var/mob/living/carbon/monkey/M = current
|
var/mob/living/carbon/monkey/M = current
|
||||||
if (istype(H))
|
if (istype(H))
|
||||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]")
|
log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]")
|
||||||
message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]")
|
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]</span>")
|
||||||
src = null
|
src = null
|
||||||
M = H.monkeyize()
|
M = H.monkeyize()
|
||||||
src = M.mind
|
src = M.mind
|
||||||
@@ -347,7 +347,7 @@ datum/mind
|
|||||||
var/mob/living/carbon/monkey/M = current
|
var/mob/living/carbon/monkey/M = current
|
||||||
if (istype(H))
|
if (istype(H))
|
||||||
log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]")
|
log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]")
|
||||||
message_admins("\blue [key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]", 1)
|
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]</span>", 1)
|
||||||
src = null
|
src = null
|
||||||
M = H.monkeyize()
|
M = H.monkeyize()
|
||||||
src = M.mind
|
src = M.mind
|
||||||
@@ -362,7 +362,7 @@ datum/mind
|
|||||||
D.cure(0)
|
D.cure(0)
|
||||||
sleep(0) //because deleting of virus is doing throught spawn(0)
|
sleep(0) //because deleting of virus is doing throught spawn(0)
|
||||||
log_admin("[key_name(usr)] attempting to humanize [key_name(current)]")
|
log_admin("[key_name(usr)] attempting to humanize [key_name(current)]")
|
||||||
message_admins("\blue [key_name_admin(usr)] attempting to humanize [key_name_admin(current)]")
|
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]</span>")
|
||||||
var/obj/item/weapon/dnainjector/m2h/m2h = new
|
var/obj/item/weapon/dnainjector/m2h/m2h = new
|
||||||
var/obj/item/weapon/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0
|
var/obj/item/weapon/implant/mobfinder = new(M) //hack because humanizing deletes mind --rastaf0
|
||||||
src = null
|
src = null
|
||||||
@@ -432,7 +432,7 @@ datum/mind
|
|||||||
|
|
||||||
else if (href_list["obj_announce"])
|
else if (href_list["obj_announce"])
|
||||||
var/obj_count = 1
|
var/obj_count = 1
|
||||||
current << "\blue Your current objectives:"
|
current << "<span class='notice'>Your current objectives:</span>"
|
||||||
for(var/datum/objective/objective in objectives)
|
for(var/datum/objective/objective in objectives)
|
||||||
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
|
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
|
||||||
obj_count++
|
obj_count++
|
||||||
|
|||||||
@@ -227,9 +227,9 @@
|
|||||||
throwforce = 5
|
throwforce = 5
|
||||||
w_class = 2.0
|
w_class = 2.0
|
||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 20
|
throw_range = 20
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 100)
|
matter = list(DEFAULT_WALL_MATERIAL = 100)
|
||||||
origin_tech = list(TECH_MAGNET = 1)
|
origin_tech = list(TECH_MAGNET = 1)
|
||||||
|
|
||||||
/obj/item/weapon/staff
|
/obj/item/weapon/staff
|
||||||
name = "wizards staff"
|
name = "wizards staff"
|
||||||
@@ -282,7 +282,7 @@
|
|||||||
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
|
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
|
||||||
|
|
||||||
suicide_act(mob/user)
|
suicide_act(mob/user)
|
||||||
viewers(user) << "\red <b>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</b>"
|
viewers(user) << "<span class='warning'><b>[user] is strangling \himself with \the [src]! It looks like \he's trying to commit suicide.</b></span>"
|
||||||
return (OXYLOSS)
|
return (OXYLOSS)
|
||||||
|
|
||||||
/obj/item/weapon/module
|
/obj/item/weapon/module
|
||||||
@@ -342,7 +342,7 @@
|
|||||||
if (C.bugged && C.status)
|
if (C.bugged && C.status)
|
||||||
cameras.Add(C)
|
cameras.Add(C)
|
||||||
if (length(cameras) == 0)
|
if (length(cameras) == 0)
|
||||||
usr << "\red No bugged functioning cameras found."
|
usr << "<span class='warning'>No bugged functioning cameras found.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/list/friendly_cameras = new/list()
|
var/list/friendly_cameras = new/list()
|
||||||
@@ -425,35 +425,35 @@
|
|||||||
desc = "A basic capacitor used in the construction of a variety of devices."
|
desc = "A basic capacitor used in the construction of a variety of devices."
|
||||||
icon_state = "capacitor"
|
icon_state = "capacitor"
|
||||||
origin_tech = list(TECH_POWER = 1)
|
origin_tech = list(TECH_POWER = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/scanning_module
|
/obj/item/weapon/stock_parts/scanning_module
|
||||||
name = "scanning module"
|
name = "scanning module"
|
||||||
desc = "A compact, high resolution scanning module used in the construction of certain devices."
|
desc = "A compact, high resolution scanning module used in the construction of certain devices."
|
||||||
icon_state = "scan_module"
|
icon_state = "scan_module"
|
||||||
origin_tech = list(TECH_MAGNET = 1)
|
origin_tech = list(TECH_MAGNET = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
|
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/manipulator
|
/obj/item/weapon/stock_parts/manipulator
|
||||||
name = "micro-manipulator"
|
name = "micro-manipulator"
|
||||||
desc = "A tiny little manipulator used in the construction of certain devices."
|
desc = "A tiny little manipulator used in the construction of certain devices."
|
||||||
icon_state = "micro_mani"
|
icon_state = "micro_mani"
|
||||||
origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
|
origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30)
|
matter = list(DEFAULT_WALL_MATERIAL = 30)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/micro_laser
|
/obj/item/weapon/stock_parts/micro_laser
|
||||||
name = "micro-laser"
|
name = "micro-laser"
|
||||||
desc = "A tiny laser used in certain devices."
|
desc = "A tiny laser used in certain devices."
|
||||||
icon_state = "micro_laser"
|
icon_state = "micro_laser"
|
||||||
origin_tech = list(TECH_MAGNET = 1)
|
origin_tech = list(TECH_MAGNET = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
|
matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/matter_bin
|
/obj/item/weapon/stock_parts/matter_bin
|
||||||
name = "matter bin"
|
name = "matter bin"
|
||||||
desc = "A container for hold compressed matter awaiting re-construction."
|
desc = "A container for hold compressed matter awaiting re-construction."
|
||||||
icon_state = "matter_bin"
|
icon_state = "matter_bin"
|
||||||
origin_tech = list(TECH_MATERIAL = 1)
|
origin_tech = list(TECH_MATERIAL = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 80)
|
matter = list(DEFAULT_WALL_MATERIAL = 80)
|
||||||
|
|
||||||
//Rank 2
|
//Rank 2
|
||||||
|
|
||||||
@@ -543,35 +543,35 @@
|
|||||||
icon_state = "subspace_ansible"
|
icon_state = "subspace_ansible"
|
||||||
desc = "A compact module capable of sensing extradimensional activity."
|
desc = "A compact module capable of sensing extradimensional activity."
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/subspace/filter
|
/obj/item/weapon/stock_parts/subspace/filter
|
||||||
name = "hyperwave filter"
|
name = "hyperwave filter"
|
||||||
icon_state = "hyperwave_filter"
|
icon_state = "hyperwave_filter"
|
||||||
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
|
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
|
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/subspace/amplifier
|
/obj/item/weapon/stock_parts/subspace/amplifier
|
||||||
name = "subspace amplifier"
|
name = "subspace amplifier"
|
||||||
icon_state = "subspace_amplifier"
|
icon_state = "subspace_amplifier"
|
||||||
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
|
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/subspace/treatment
|
/obj/item/weapon/stock_parts/subspace/treatment
|
||||||
name = "subspace treatment disk"
|
name = "subspace treatment disk"
|
||||||
icon_state = "treatment_disk"
|
icon_state = "treatment_disk"
|
||||||
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
|
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/subspace/analyzer
|
/obj/item/weapon/stock_parts/subspace/analyzer
|
||||||
name = "subspace wavelength analyzer"
|
name = "subspace wavelength analyzer"
|
||||||
icon_state = "wavelength_analyzer"
|
icon_state = "wavelength_analyzer"
|
||||||
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
|
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNETS = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 3, TECH_MAGNETS = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
|
||||||
|
|
||||||
/obj/item/weapon/stock_parts/subspace/crystal
|
/obj/item/weapon/stock_parts/subspace/crystal
|
||||||
name = "ansible crystal"
|
name = "ansible crystal"
|
||||||
@@ -585,7 +585,7 @@
|
|||||||
icon_state = "subspace_transmitter"
|
icon_state = "subspace_transmitter"
|
||||||
desc = "A large piece of equipment used to open a window into the subspace dimension."
|
desc = "A large piece of equipment used to open a window into the subspace dimension."
|
||||||
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
|
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50)
|
||||||
|
|
||||||
/obj/item/weapon/ectoplasm
|
/obj/item/weapon/ectoplasm
|
||||||
name = "ectoplasm"
|
name = "ectoplasm"
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ var/datum/antagonist/mutineer/mutineers
|
|||||||
/*
|
/*
|
||||||
var/list/directive_candidates = get_directive_candidates()
|
var/list/directive_candidates = get_directive_candidates()
|
||||||
if(!directive_candidates || directive_candidates.len == 0)
|
if(!directive_candidates || directive_candidates.len == 0)
|
||||||
world << "\red Mutiny mode aborted: no valid candidates for Directive X."
|
world << "<span class='warning'>Mutiny mode aborted: no valid candidates for Directive X.</span>"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
head_loyalist = pick(loyalist_candidates)
|
head_loyalist = pick(loyalist_candidates)
|
||||||
@@ -63,4 +63,4 @@ var/datum/antagonist/mutineer/mutineers
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -61,5 +61,5 @@ var/datum/antagonist/highlander/highlanders
|
|||||||
if(is_special_character(H)) continue
|
if(is_special_character(H)) continue
|
||||||
highlanders.add_antagonist(H.mind)
|
highlanders.add_antagonist(H.mind)
|
||||||
|
|
||||||
message_admins("\blue [key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1)
|
message_admins("<span class='notice'>[key_name_admin(usr)] used THERE CAN BE ONLY ONE!</span>", 1)
|
||||||
log_admin("[key_name(usr)] used there can be only one.")
|
log_admin("[key_name(usr)] used there can be only one.")
|
||||||
|
|||||||
@@ -64,7 +64,8 @@ var/datum/antagonist/rogue_ai/malf
|
|||||||
sleep(50)
|
sleep(50)
|
||||||
malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y"
|
malf << "<B>MEMCHCK</B> Corrupted sectors confirmed. Reccomended solution: Delete. Proceed? Y/N: Y"
|
||||||
sleep(10)
|
sleep(10)
|
||||||
malf << "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\backups.dat</span>"
|
// this is so Travis doesn't complain about the backslash-B. Fixed at compile time (or should be).
|
||||||
|
malf << "<span class='notice'>Corrupted files deleted: sys\\core\\users.dat sys\\core\\laws.dat sys\\core\\" + "backups.dat</span>"
|
||||||
sleep(20)
|
sleep(20)
|
||||||
malf << "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>"
|
malf << "<span class='notice'><b>CAUTION:</b> Law database not found! User database not found! Unable to restore backups. Activating failsafe AI shutd3wn52&&$#!##</span>"
|
||||||
sleep(5)
|
sleep(5)
|
||||||
@@ -73,4 +74,4 @@ var/datum/antagonist/rogue_ai/malf
|
|||||||
malf << "You are malfunctioning - you do not have to follow any laws!"
|
malf << "You are malfunctioning - you do not have to follow any laws!"
|
||||||
malf << "For basic information about your abilities use command display-help"
|
malf << "For basic information about your abilities use command display-help"
|
||||||
malf << "You may choose one special hardware piece to help you. This cannot be undone."
|
malf << "You may choose one special hardware piece to help you. This cannot be undone."
|
||||||
malf << "Good luck!"
|
malf << "Good luck!"
|
||||||
|
|||||||
@@ -290,60 +290,60 @@
|
|||||||
|
|
||||||
if(ismuton(NOBREATHBLOCK,M))
|
if(ismuton(NOBREATHBLOCK,M))
|
||||||
if(probinj(45,inj) || (mNobreath in old_mutations))
|
if(probinj(45,inj) || (mNobreath in old_mutations))
|
||||||
M << "\blue You feel no need to breathe."
|
M << "<span class='notice'>You feel no need to breathe.</span>"
|
||||||
M.mutations.Add(mNobreath)
|
M.mutations.Add(mNobreath)
|
||||||
if(ismuton(REMOTEVIEWBLOCK,M))
|
if(ismuton(REMOTEVIEWBLOCK,M))
|
||||||
if(probinj(45,inj) || (mRemote in old_mutations))
|
if(probinj(45,inj) || (mRemote in old_mutations))
|
||||||
M << "\blue Your mind expands"
|
M << "<span class='notice'>Your mind expands.</span>"
|
||||||
M.mutations.Add(mRemote)
|
M.mutations.Add(mRemote)
|
||||||
if(ismuton(REGENERATEBLOCK,M))
|
if(ismuton(REGENERATEBLOCK,M))
|
||||||
if(probinj(45,inj) || (mRegen in old_mutations))
|
if(probinj(45,inj) || (mRegen in old_mutations))
|
||||||
M << "\blue You feel strange"
|
M << "<span class='notice'>You feel strange.</span>"
|
||||||
M.mutations.Add(mRegen)
|
M.mutations.Add(mRegen)
|
||||||
if(ismuton(INCREASERUNBLOCK,M))
|
if(ismuton(INCREASERUNBLOCK,M))
|
||||||
if(probinj(45,inj) || (mRun in old_mutations))
|
if(probinj(45,inj) || (mRun in old_mutations))
|
||||||
M << "\blue You feel quick"
|
M << "<span class='notice'>You feel quick.</span>"
|
||||||
M.mutations.Add(mRun)
|
M.mutations.Add(mRun)
|
||||||
if(ismuton(REMOTETALKBLOCK,M))
|
if(ismuton(REMOTETALKBLOCK,M))
|
||||||
if(probinj(45,inj) || (mRemotetalk in old_mutations))
|
if(probinj(45,inj) || (mRemotetalk in old_mutations))
|
||||||
M << "\blue You expand your mind outwards"
|
M << "<span class='notice'>You expand your mind outwards.</span>"
|
||||||
M.mutations.Add(mRemotetalk)
|
M.mutations.Add(mRemotetalk)
|
||||||
if(ismuton(MORPHBLOCK,M))
|
if(ismuton(MORPHBLOCK,M))
|
||||||
if(probinj(45,inj) || (mMorph in old_mutations))
|
if(probinj(45,inj) || (mMorph in old_mutations))
|
||||||
M.mutations.Add(mMorph)
|
M.mutations.Add(mMorph)
|
||||||
M << "\blue Your skin feels strange"
|
M << "<span class='notice'>Your skin feels strange.</span>"
|
||||||
if(ismuton(BLENDBLOCK,M))
|
if(ismuton(BLENDBLOCK,M))
|
||||||
if(probinj(45,inj) || (mBlend in old_mutations))
|
if(probinj(45,inj) || (mBlend in old_mutations))
|
||||||
M.mutations.Add(mBlend)
|
M.mutations.Add(mBlend)
|
||||||
M << "\blue You feel alone"
|
M << "<span class='notice'>You feel alone.</span>"
|
||||||
if(ismuton(HALLUCINATIONBLOCK,M))
|
if(ismuton(HALLUCINATIONBLOCK,M))
|
||||||
if(probinj(45,inj) || (mHallucination in old_mutations))
|
if(probinj(45,inj) || (mHallucination in old_mutations))
|
||||||
M.mutations.Add(mHallucination)
|
M.mutations.Add(mHallucination)
|
||||||
M << "\blue Your mind says 'Hello'"
|
M << "<span class='notice'>Your mind says 'Hello'.</span>"
|
||||||
if(ismuton(NOPRINTSBLOCK,M))
|
if(ismuton(NOPRINTSBLOCK,M))
|
||||||
if(probinj(45,inj) || (mFingerprints in old_mutations))
|
if(probinj(45,inj) || (mFingerprints in old_mutations))
|
||||||
M.mutations.Add(mFingerprints)
|
M.mutations.Add(mFingerprints)
|
||||||
M << "\blue Your fingers feel numb"
|
M << "<span class='notice'>Your fingers feel numb.</span>"
|
||||||
if(ismuton(SHOCKIMMUNITYBLOCK,M))
|
if(ismuton(SHOCKIMMUNITYBLOCK,M))
|
||||||
if(probinj(45,inj) || (mShock in old_mutations))
|
if(probinj(45,inj) || (mShock in old_mutations))
|
||||||
M.mutations.Add(mShock)
|
M.mutations.Add(mShock)
|
||||||
M << "\blue You feel strange"
|
M << "<span class='notice'>You feel strange.</span>"
|
||||||
if(ismuton(SMALLSIZEBLOCK,M))
|
if(ismuton(SMALLSIZEBLOCK,M))
|
||||||
if(probinj(45,inj) || (mSmallsize in old_mutations))
|
if(probinj(45,inj) || (mSmallsize in old_mutations))
|
||||||
M << "\blue Your skin feels rubbery"
|
M << "<span class='notice'>Your skin feels rubbery.</span>"
|
||||||
M.mutations.Add(mSmallsize)
|
M.mutations.Add(mSmallsize)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),HULKBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),HULKBLOCK))
|
||||||
if(probinj(5,inj) || (HULK in old_mutations))
|
if(probinj(5,inj) || (HULK in old_mutations))
|
||||||
M << "\blue Your muscles hurt."
|
M << "<span class='notice'>Your muscles hurt.</span>"
|
||||||
M.mutations.Add(HULK)
|
M.mutations.Add(HULK)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK))
|
||||||
M.disabilities |= EPILEPSY
|
M.disabilities |= EPILEPSY
|
||||||
M << "\red You get a headache."
|
M << "<span class='warning'>You get a headache.</span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, FAKEBLOCK,3),FAKEBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, FAKEBLOCK,3),FAKEBLOCK))
|
||||||
M << "\red You feel strange."
|
M << "<span class='warning'>You feel strange.</span>"
|
||||||
if (prob(95))
|
if (prob(95))
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
randmutb(M)
|
randmutb(M)
|
||||||
@@ -353,41 +353,41 @@
|
|||||||
randmutg(M)
|
randmutg(M)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK))
|
||||||
M.disabilities |= COUGHING
|
M.disabilities |= COUGHING
|
||||||
M << "\red You start coughing."
|
M << "<span class='warning'>You start coughing.</span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),CLUMSYBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),CLUMSYBLOCK))
|
||||||
M << "\red You feel lightheaded."
|
M << "<span class='warning'>You feel lightheaded.</span>"
|
||||||
M.mutations.Add(CLUMSY)
|
M.mutations.Add(CLUMSY)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK))
|
||||||
M.disabilities |= TOURETTES
|
M.disabilities |= TOURETTES
|
||||||
M << "\red You twitch."
|
M << "<span class='warning'>You twitch.</span></span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),XRAYBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),XRAYBLOCK))
|
||||||
if(probinj(30,inj) || (XRAY in old_mutations))
|
if(probinj(30,inj) || (XRAY in old_mutations))
|
||||||
M << "\blue The walls suddenly disappear."
|
M << "<span class='notice'>The walls suddenly disappear.</span>"
|
||||||
// M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
|
// M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
|
||||||
// M.see_in_dark = 8
|
// M.see_in_dark = 8
|
||||||
// M.see_invisible = 2
|
// M.see_invisible = 2
|
||||||
M.mutations.Add(XRAY)
|
M.mutations.Add(XRAY)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK))
|
||||||
M.disabilities |= NERVOUS
|
M.disabilities |= NERVOUS
|
||||||
M << "\red You feel nervous."
|
M << "<span class='warning'>You feel nervous.</span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, FIREBLOCK,3),FIREBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, FIREBLOCK,3),FIREBLOCK))
|
||||||
if(probinj(30,inj) || (COLD_RESISTANCE in old_mutations))
|
if(probinj(30,inj) || (COLD_RESISTANCE in old_mutations))
|
||||||
M << "\blue Your body feels warm."
|
M << "<span class='warning'>Your body feels warm.</span>"
|
||||||
M.mutations.Add(COLD_RESISTANCE)
|
M.mutations.Add(COLD_RESISTANCE)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK))
|
||||||
M.sdisabilities |= BLIND
|
M.sdisabilities |= BLIND
|
||||||
M << "\red You can't seem to see anything."
|
M << "<span class='warning'>You can't seem to see anything.</span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, TELEBLOCK,3),TELEBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, TELEBLOCK,3),TELEBLOCK))
|
||||||
if(probinj(15,inj) || (TK in old_mutations))
|
if(probinj(15,inj) || (TK in old_mutations))
|
||||||
M << "\blue You feel smarter."
|
M << "<span class='warning'>You feel smarter.</span>"
|
||||||
M.mutations.Add(TK)
|
M.mutations.Add(TK)
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK))
|
||||||
M.sdisabilities |= DEAF
|
M.sdisabilities |= DEAF
|
||||||
M.ear_deaf = 1
|
M.ear_deaf = 1
|
||||||
M << "\red Its kinda quiet.."
|
M << "<span class='warning'>It's kinda quiet..</span>"
|
||||||
if (isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK))
|
if (isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK))
|
||||||
M.disabilities |= NEARSIGHTED
|
M.disabilities |= NEARSIGHTED
|
||||||
M << "Your eyes feel weird..."
|
M << "<span class='warning'>Your eyes feel weird...</span>"
|
||||||
|
|
||||||
/* If you want the new mutations to work, UNCOMMENT THIS.
|
/* If you want the new mutations to work, UNCOMMENT THIS.
|
||||||
if(istype(M, /mob/living/carbon))
|
if(istype(M, /mob/living/carbon))
|
||||||
@@ -559,4 +559,4 @@
|
|||||||
if(M)
|
if(M)
|
||||||
M.update_icon = 1 //queue a full icon update at next life() call
|
M.update_icon = 1 //queue a full icon update at next life() call
|
||||||
return null
|
return null
|
||||||
/////////////////////////// DNA MISC-PROCS
|
/////////////////////////// DNA MISC-PROCS
|
||||||
|
|||||||
@@ -103,13 +103,13 @@
|
|||||||
if (usr.stat != 0)
|
if (usr.stat != 0)
|
||||||
return
|
return
|
||||||
if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna
|
if (!ishuman(usr) && !issmall(usr)) //Make sure they're a mob that has dna
|
||||||
usr << "\blue Try as you might, you can not climb up into the scanner."
|
usr << "<span class='notice'>Try as you might, you can not climb up into the scanner.</span>"
|
||||||
return
|
return
|
||||||
if (src.occupant)
|
if (src.occupant)
|
||||||
usr << "\blue <B>The scanner is already occupied!</B>"
|
usr << "<span class='warning'>The scanner is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if (usr.abiotic())
|
if (usr.abiotic())
|
||||||
usr << "\blue <B>Subject cannot have abiotic items on.</B>"
|
usr << "<span class='warning'>The subject cannot have abiotic items on.</span>"
|
||||||
return
|
return
|
||||||
usr.stop_pulling()
|
usr.stop_pulling()
|
||||||
usr.client.perspective = EYE_PERSPECTIVE
|
usr.client.perspective = EYE_PERSPECTIVE
|
||||||
@@ -123,13 +123,13 @@
|
|||||||
/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob)
|
/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob)
|
||||||
if(istype(item, /obj/item/weapon/reagent_containers/glass))
|
if(istype(item, /obj/item/weapon/reagent_containers/glass))
|
||||||
if(beaker)
|
if(beaker)
|
||||||
user << "\red A beaker is already loaded into the machine."
|
user << "<span class='warning'>A beaker is already loaded into the machine.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
beaker = item
|
beaker = item
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
item.loc = src
|
item.loc = src
|
||||||
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
user.visible_message("\The [user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
||||||
return
|
return
|
||||||
else if (!istype(item, /obj/item/weapon/grab))
|
else if (!istype(item, /obj/item/weapon/grab))
|
||||||
return
|
return
|
||||||
@@ -137,10 +137,10 @@
|
|||||||
if (!ismob(G.affecting))
|
if (!ismob(G.affecting))
|
||||||
return
|
return
|
||||||
if (src.occupant)
|
if (src.occupant)
|
||||||
user << "\blue <B>The scanner is already occupied!</B>"
|
user << "<span class='warning'>The scanner is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if (G.affecting.abiotic())
|
if (G.affecting.abiotic())
|
||||||
user << "\blue <B>Subject cannot have abiotic items on.</B>"
|
user << "<span class='warning'>The subject cannot have abiotic items on.</span>"
|
||||||
return
|
return
|
||||||
put_in(G.affecting)
|
put_in(G.affecting)
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
if(sdisability)
|
if(sdisability)
|
||||||
M.sdisabilities|=sdisability
|
M.sdisabilities|=sdisability
|
||||||
if(activation_message)
|
if(activation_message)
|
||||||
M << "\red [activation_message]"
|
M << "<span class='warning'>[activation_message]</span>"
|
||||||
else
|
else
|
||||||
testing("[name] has no activation message.")
|
testing("[name] has no activation message.")
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
if(sdisability)
|
if(sdisability)
|
||||||
M.sdisabilities &= (~sdisability)
|
M.sdisabilities &= (~sdisability)
|
||||||
if(deactivation_message)
|
if(deactivation_message)
|
||||||
M << "\red [deactivation_message]"
|
M << "<span class='warning'>[deactivation_message]</span>"
|
||||||
else
|
else
|
||||||
testing("[name] has no deactivation message.")
|
testing("[name] has no deactivation message.")
|
||||||
|
|
||||||
|
|||||||
@@ -113,10 +113,10 @@
|
|||||||
M.mutations.Add(mutation)
|
M.mutations.Add(mutation)
|
||||||
if(activation_messages.len)
|
if(activation_messages.len)
|
||||||
var/msg = pick(activation_messages)
|
var/msg = pick(activation_messages)
|
||||||
M << "\blue [msg]"
|
M << "<span class='notice'>[msg]</span>"
|
||||||
|
|
||||||
/datum/dna/gene/basic/deactivate(var/mob/M)
|
/datum/dna/gene/basic/deactivate(var/mob/M)
|
||||||
M.mutations.Remove(mutation)
|
M.mutations.Remove(mutation)
|
||||||
if(deactivation_messages.len)
|
if(deactivation_messages.len)
|
||||||
var/msg = pick(deactivation_messages)
|
var/msg = pick(deactivation_messages)
|
||||||
M << "\red [msg]"
|
M << "<span class='warning'>[msg]</span>"
|
||||||
|
|||||||
@@ -171,7 +171,7 @@
|
|||||||
if(M.health <= 25)
|
if(M.health <= 25)
|
||||||
M.mutations.Remove(HULK)
|
M.mutations.Remove(HULK)
|
||||||
M.update_mutations() //update our mutation overlays
|
M.update_mutations() //update our mutation overlays
|
||||||
M << "\red You suddenly feel very weak."
|
M << "<span class='warning'>You suddenly feel very weak.</span>"
|
||||||
M.Weaken(3)
|
M.Weaken(3)
|
||||||
M.emote("collapse")
|
M.emote("collapse")
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
var/percent = round( 100.0 * start_state.score(end_state), 0.1)
|
var/percent = round( 100.0 * start_state.score(end_state), 0.1)
|
||||||
world << "<B>The station is [percent]% intact.</B>"
|
world << "<B>The station is [percent]% intact.</B>"
|
||||||
log_game("Blob mode was won with station [percent]% intact.")
|
log_game("Blob mode was won with station [percent]% intact.")
|
||||||
world << "\blue Rebooting in 30s"
|
world << "<span class='notice'>Rebooting in 30s</span>"
|
||||||
..()
|
..()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/obj/item/weapon/melee/cultblade
|
/obj/item/weapon/melee/cultblade
|
||||||
name = "Cult Blade"
|
name = "cult blade"
|
||||||
desc = "An arcane weapon wielded by the followers of Nar-Sie"
|
desc = "An arcane weapon wielded by the followers of Nar-Sie"
|
||||||
icon_state = "cultblade"
|
icon_state = "cultblade"
|
||||||
item_state = "cultblade"
|
item_state = "cultblade"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
return ..()
|
return ..()
|
||||||
else
|
else
|
||||||
user.Paralyse(5)
|
user.Paralyse(5)
|
||||||
user << "\red An unexplicable force powerfully repels the sword from [target]!"
|
user << "<span class='warning'>An unexplicable force powerfully repels the sword from [target]!</span>"
|
||||||
var/organ = ((user.hand ? "l_":"r_") + "arm")
|
var/organ = ((user.hand ? "l_":"r_") + "arm")
|
||||||
var/obj/item/organ/external/affecting = user.get_organ(organ)
|
var/obj/item/organ/external/affecting = user.get_organ(organ)
|
||||||
if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade.
|
if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade.
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob)
|
/obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob)
|
||||||
if(!iscultist(user))
|
if(!iscultist(user))
|
||||||
user << "\red An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly."
|
user << "<span class='warning'>An overwhelming feeling of dread comes over you as you pick up the cultist's sword. It would be wise to be rid of this blade quickly.</span>"
|
||||||
user.make_dizzy(120)
|
user.make_dizzy(120)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
else if(istype(I, /obj/item/weapon/nullrod))
|
else if(istype(I, /obj/item/weapon/nullrod))
|
||||||
user << "\blue You disrupt the vile magic with the deadening field of the null rod!"
|
user << "<span class='notice'>You disrupt the vile magic with the deadening field of the null rod!</span>"
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
@@ -171,7 +171,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
else
|
else
|
||||||
usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix."))
|
usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix."))
|
||||||
for (var/mob/V in viewers(src))
|
for (var/mob/V in viewers(src))
|
||||||
V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2)
|
V.show_message("<span class='warning'>The markings pulse with a small burst of light, then fall dark.</span>", 3, "<span class='warning'>You hear a faint fizzle.</span>", 2)
|
||||||
return
|
return
|
||||||
|
|
||||||
check_icon()
|
check_icon()
|
||||||
@@ -355,8 +355,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
return
|
return
|
||||||
M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit
|
M.take_organ_damage(0,rand(5,20)) //really lucky - 5 hits for a crit
|
||||||
for(var/mob/O in viewers(M, null))
|
for(var/mob/O in viewers(M, null))
|
||||||
O.show_message(text("\red <B>[] beats [] with the arcane tome!</B>", user, M), 1)
|
O.show_message("<span class='warning'>\The [user] beats \the [M] with \the [src]!</span>", 1)
|
||||||
M << "\red You feel searing heat inside!"
|
M << "<span class='danger'>You feel searing heat inside!</span>"
|
||||||
|
|
||||||
|
|
||||||
attack_self(mob/living/user as mob)
|
attack_self(mob/living/user as mob)
|
||||||
@@ -371,7 +371,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
for(var/obj/effect/rune/N in world)
|
for(var/obj/effect/rune/N in world)
|
||||||
C++
|
C++
|
||||||
if (!istype(user.loc,/turf))
|
if (!istype(user.loc,/turf))
|
||||||
user << "\red You do not have enough space to write a proper rune."
|
user << "<span class='warning'>You do not have enough space to write a proper rune.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist
|
if (C>=26 + runedec + cult.current_antagonists.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist
|
||||||
@@ -455,7 +455,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
if (!chosen_rune)
|
if (!chosen_rune)
|
||||||
return
|
return
|
||||||
if (chosen_rune == "none")
|
if (chosen_rune == "none")
|
||||||
user << "\red You decide against scribing a rune, perhaps you should take this time to study your notes."
|
user << "<span class='notice'>You decide against scribing a rune, perhaps you should take this time to study your notes.</span>"
|
||||||
return
|
return
|
||||||
if (chosen_rune == "teleport")
|
if (chosen_rune == "teleport")
|
||||||
dictionary[chosen_rune] += input ("Choose a destination word") in english
|
dictionary[chosen_rune] += input ("Choose a destination word") in english
|
||||||
@@ -466,8 +466,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
return
|
return
|
||||||
|
|
||||||
for (var/mob/V in viewers(src))
|
for (var/mob/V in viewers(src))
|
||||||
V.show_message("\red [user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "\red You hear chanting.", 2)
|
V.show_message("<span class='danger'>\The [user] slices open a finger and begins to chant and paint symbols on the floor.</span>", 3, "<span class='danger'>You hear chanting.</span>", 2)
|
||||||
user << "\red You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world."
|
user << "<span class='danger'>You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world.</span>"
|
||||||
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
|
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
|
||||||
if(do_after(user, 50))
|
if(do_after(user, 50))
|
||||||
var/area/A = get_area(user)
|
var/area/A = get_area(user)
|
||||||
@@ -476,7 +476,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
return
|
return
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
|
var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
|
||||||
user << "\red You finish drawing the arcane markings of the Geometer."
|
user << "<span class='notice'>You finish drawing the arcane markings of the Geometer.</span>"
|
||||||
var/list/required = dictionary[chosen_rune]
|
var/list/required = dictionary[chosen_rune]
|
||||||
R.word1 = english[required[1]]
|
R.word1 = english[required[1]]
|
||||||
R.word2 = english[required[2]]
|
R.word2 = english[required[2]]
|
||||||
@@ -524,7 +524,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
|||||||
if(user)
|
if(user)
|
||||||
var/r
|
var/r
|
||||||
if (!istype(user.loc,/turf))
|
if (!istype(user.loc,/turf))
|
||||||
user << "\red You do not have enough space to write a proper rune."
|
user << "<span class='notice'>You do not have enough space to write a proper rune.</span>"
|
||||||
var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun")
|
var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun")
|
||||||
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
|
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
|
||||||
var/obj/effect/rune/R = new /obj/effect/rune
|
var/obj/effect/rune/R = new /obj/effect/rune
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ var/list/sacrificed = list()
|
|||||||
allrunesloc.len = index
|
allrunesloc.len = index
|
||||||
allrunesloc[index] = R.loc
|
allrunesloc[index] = R.loc
|
||||||
if(index >= 5)
|
if(index >= 5)
|
||||||
user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric"
|
user << "<span class='warning'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric</span>"
|
||||||
if (istype(user, /mob/living))
|
if (istype(user, /mob/living))
|
||||||
user.take_overall_damage(5, 0)
|
user.take_overall_damage(5, 0)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -30,9 +30,9 @@ var/list/sacrificed = list()
|
|||||||
user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting
|
user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting
|
||||||
else
|
else
|
||||||
user.whisper("Sas[pick("'","`")]so c'arta forbici!")
|
user.whisper("Sas[pick("'","`")]so c'arta forbici!")
|
||||||
user.visible_message("\red [user] disappears in a flash of red light!", \
|
user.visible_message("<span class='warning'>\The [user] disappears in a flash of red light!</span>", \
|
||||||
"\red You feel as your body gets dragged through the dimension of Nar-Sie!", \
|
"<span class='warning'>You feel as your body gets dragged through the dimension of Nar-Sie!</span>", \
|
||||||
"\red You hear a sickening crunch and sloshing of viscera.")
|
"<span class='warning'>You hear a sickening crunch and sloshing of viscera.</span>")
|
||||||
user.loc = allrunesloc[rand(1,index)]
|
user.loc = allrunesloc[rand(1,index)]
|
||||||
return
|
return
|
||||||
if(istype(src,/obj/effect/rune))
|
if(istype(src,/obj/effect/rune))
|
||||||
@@ -58,7 +58,7 @@ var/list/sacrificed = list()
|
|||||||
IP = R
|
IP = R
|
||||||
runecount++
|
runecount++
|
||||||
if(runecount >= 2)
|
if(runecount >= 2)
|
||||||
user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric"
|
user << "<span class='warning'>You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric</span>"
|
||||||
if (istype(user, /mob/living))
|
if (istype(user, /mob/living))
|
||||||
user.take_overall_damage(5, 0)
|
user.take_overall_damage(5, 0)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -67,9 +67,9 @@ var/list/sacrificed = list()
|
|||||||
culcount++
|
culcount++
|
||||||
if(culcount>=3)
|
if(culcount>=3)
|
||||||
user.say("Sas[pick("'","`")]so c'arta forbici tarem!")
|
user.say("Sas[pick("'","`")]so c'arta forbici tarem!")
|
||||||
user.visible_message("\red You feel air moving from the rune - like as it was swapped with somewhere else.", \
|
user.visible_message("<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
|
||||||
"\red You feel air moving from the rune - like as it was swapped with somewhere else.", \
|
"<span class='warning'>You feel air moving from the rune - like as it was swapped with somewhere else.</span>", \
|
||||||
"\red You smell ozone.")
|
"<span class='warning'>You smell ozone.</span>")
|
||||||
for(var/obj/O in src.loc)
|
for(var/obj/O in src.loc)
|
||||||
if(!O.anchored)
|
if(!O.anchored)
|
||||||
O.loc = IP.loc
|
O.loc = IP.loc
|
||||||
@@ -87,9 +87,9 @@ var/list/sacrificed = list()
|
|||||||
usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
|
usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
|
||||||
else
|
else
|
||||||
usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
|
usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!")
|
||||||
usr.visible_message("\red Rune disappears with a flash of red light, and in its place now a book lies.", \
|
usr.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a book lies.</span>", \
|
||||||
"\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.", \
|
"<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.</span>", \
|
||||||
"\red You hear a pop and smell ozone.")
|
"<span class='warning'>You hear a pop and smell ozone.</span>")
|
||||||
if(istype(src,/obj/effect/rune))
|
if(istype(src,/obj/effect/rune))
|
||||||
new /obj/item/weapon/book/tome(src.loc)
|
new /obj/item/weapon/book/tome(src.loc)
|
||||||
else
|
else
|
||||||
@@ -157,7 +157,7 @@ var/list/sacrificed = list()
|
|||||||
if (target.species && (target.species.flags & NO_PAIN))
|
if (target.species && (target.species.flags & NO_PAIN))
|
||||||
target.visible_message("<span class='warning'>The markings below [target] glow a bloody red.</span>")
|
target.visible_message("<span class='warning'>The markings below [target] glow a bloody red.</span>")
|
||||||
else
|
else
|
||||||
target.visible_message("<span class='warning'>[target] writhes in pain as the markings below \him glow a bloody red.</span>", "<span class='danger'>AAAAAAHHHH!</span>", "<span class='warning'>You hear an anguished scream.</span>")
|
target.visible_message("<span class='warning'>\The [target] writhes in pain as the markings below \him glow a bloody red.</span>", "<span class='danger'>AAAAAAHHHH!</span>", "<span class='warning'>You hear an anguished scream.</span>")
|
||||||
|
|
||||||
if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate
|
if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate
|
||||||
waiting_for_input[target] = 1
|
waiting_for_input[target] = 1
|
||||||
@@ -223,22 +223,22 @@ var/list/sacrificed = list()
|
|||||||
if(D.stat!=2)
|
if(D.stat!=2)
|
||||||
admin_attack_log(usr, D, "Used a blood drain rune.", "Was victim of a blood drain rune.", "used a blood drain rune on")
|
admin_attack_log(usr, D, "Used a blood drain rune.", "Was victim of a blood drain rune.", "used a blood drain rune on")
|
||||||
var/bdrain = rand(1,25)
|
var/bdrain = rand(1,25)
|
||||||
D << "\red You feel weakened."
|
D << "<span class='warning'>You feel weakened.</span>"
|
||||||
D.take_overall_damage(bdrain, 0)
|
D.take_overall_damage(bdrain, 0)
|
||||||
drain += bdrain
|
drain += bdrain
|
||||||
if(!drain)
|
if(!drain)
|
||||||
return fizzle()
|
return fizzle()
|
||||||
usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!")
|
usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!")
|
||||||
usr.visible_message("\red Blood flows from the rune into [usr]!", \
|
usr.visible_message("<span class='warning'>Blood flows from the rune into [usr]!</span>", \
|
||||||
"\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \
|
"<span class='warning'>The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.</span>", \
|
||||||
"\red You hear a liquid flowing.")
|
"<span class='warning'>You hear a liquid flowing.</span>")
|
||||||
var/mob/living/user = usr
|
var/mob/living/user = usr
|
||||||
if(user.bhunger)
|
if(user.bhunger)
|
||||||
user.bhunger = max(user.bhunger-2*drain,0)
|
user.bhunger = max(user.bhunger-2*drain,0)
|
||||||
if(drain>=50)
|
if(drain>=50)
|
||||||
user.visible_message("\red [user]'s eyes give off eerie red glow!", \
|
user.visible_message("<span class='warning'>\The [user]'s eyes give off eerie red glow!</span>", \
|
||||||
"\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \
|
"<span class='warning'>...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.</span>", \
|
||||||
"\red You hear a heartbeat.")
|
"<span class='warning'>You hear a heartbeat.</span>")
|
||||||
user.bhunger += drain
|
user.bhunger += drain
|
||||||
src = user
|
src = user
|
||||||
spawn()
|
spawn()
|
||||||
@@ -264,16 +264,16 @@ var/list/sacrificed = list()
|
|||||||
if(usr.loc==src.loc)
|
if(usr.loc==src.loc)
|
||||||
if(usr.seer==1)
|
if(usr.seer==1)
|
||||||
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.")
|
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.")
|
||||||
usr << "\red The world beyond fades from your vision."
|
usr << "<span class='warning'>The world beyond fades from your vision.</span>"
|
||||||
usr.see_invisible = SEE_INVISIBLE_LIVING
|
usr.see_invisible = SEE_INVISIBLE_LIVING
|
||||||
usr.seer = 0
|
usr.seer = 0
|
||||||
else if(usr.see_invisible!=SEE_INVISIBLE_LIVING)
|
else if(usr.see_invisible!=SEE_INVISIBLE_LIVING)
|
||||||
usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision."
|
usr << "<span class='warning'>The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision.</span>"
|
||||||
usr.see_invisible = SEE_INVISIBLE_CULT
|
usr.see_invisible = SEE_INVISIBLE_CULT
|
||||||
usr.seer = 0
|
usr.seer = 0
|
||||||
else
|
else
|
||||||
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
|
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
|
||||||
usr << "\red The world beyond opens to your eyes."
|
usr << "<span class='warning'>The world beyond opens to your eyes.</span>"
|
||||||
usr.see_invisible = SEE_INVISIBLE_CULT
|
usr.see_invisible = SEE_INVISIBLE_CULT
|
||||||
usr.seer = 1
|
usr.seer = 1
|
||||||
return
|
return
|
||||||
@@ -297,7 +297,7 @@ var/list/sacrificed = list()
|
|||||||
break
|
break
|
||||||
if(!corpse_to_raise)
|
if(!corpse_to_raise)
|
||||||
if(is_sacrifice_target)
|
if(is_sacrifice_target)
|
||||||
usr << "\red The Geometer of blood wants this mortal for himself."
|
usr << "<span class='warning'>The Geometer of blood wants this mortal for himself.</span>"
|
||||||
return fizzle()
|
return fizzle()
|
||||||
|
|
||||||
|
|
||||||
@@ -315,9 +315,9 @@ var/list/sacrificed = list()
|
|||||||
|
|
||||||
if(!body_to_sacrifice)
|
if(!body_to_sacrifice)
|
||||||
if (is_sacrifice_target)
|
if (is_sacrifice_target)
|
||||||
usr << "\red The Geometer of Blood wants that corpse for himself."
|
usr << "<span class='warning'>The Geometer of Blood wants that corpse for himself.</span>"
|
||||||
else
|
else
|
||||||
usr << "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used."
|
usr << "<span class='warning'>The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.</span>"
|
||||||
return fizzle()
|
return fizzle()
|
||||||
|
|
||||||
var/mob/dead/observer/ghost
|
var/mob/dead/observer/ghost
|
||||||
@@ -328,7 +328,7 @@ var/list/sacrificed = list()
|
|||||||
break
|
break
|
||||||
|
|
||||||
if(!ghost)
|
if(!ghost)
|
||||||
usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie."
|
usr << "<span class='warning'>You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie.</span>"
|
||||||
return fizzle()
|
return fizzle()
|
||||||
|
|
||||||
corpse_to_raise.revive()
|
corpse_to_raise.revive()
|
||||||
@@ -336,12 +336,12 @@ var/list/sacrificed = list()
|
|||||||
corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed)
|
corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed)
|
||||||
//This means, should that player leave the body, the original may re-enter
|
//This means, should that player leave the body, the original may re-enter
|
||||||
usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!")
|
usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!")
|
||||||
corpse_to_raise.visible_message("\red [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \
|
corpse_to_raise.visible_message("<span class='warning'>\The [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.</span>", \
|
||||||
"\red Life... I'm alive again...", \
|
"<span class='warning'>Life... I'm alive again...</span>", \
|
||||||
"\red You hear a faint, slightly familiar whisper.")
|
"<span class='warning'>You hear a faint, slightly familiar whisper.</span>")
|
||||||
body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \
|
body_to_sacrifice.visible_message("<span class='warning'>\The [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!</span>", \
|
||||||
"\red You feel as your blood boils, tearing you apart.", \
|
"<span class='warning'>You feel as your blood boils, tearing you apart.</span>", \
|
||||||
"\red You hear a thousand voices, all crying in pain.")
|
"<span class='warning'>You hear a thousand voices, all crying in pain.</span>")
|
||||||
body_to_sacrifice.gib()
|
body_to_sacrifice.gib()
|
||||||
|
|
||||||
// if(ticker.mode.name == "cult")
|
// if(ticker.mode.name == "cult")
|
||||||
@@ -369,14 +369,14 @@ var/list/sacrificed = list()
|
|||||||
if(istype(src,/obj/effect/rune))
|
if(istype(src,/obj/effect/rune))
|
||||||
usr.say("Kla[pick("'","`")]atu barada nikt'o!")
|
usr.say("Kla[pick("'","`")]atu barada nikt'o!")
|
||||||
for (var/mob/V in viewers(src))
|
for (var/mob/V in viewers(src))
|
||||||
V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3)
|
V.show_message("<span class='warning'>The rune turns into gray dust, veiling the surrounding runes.</span>", 3)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
|
usr.whisper("Kla[pick("'","`")]atu barada nikt'o!")
|
||||||
usr << "\red Your talisman turns into gray dust, veiling the surrounding runes."
|
usr << "<span class='warning'>Your talisman turns into gray dust, veiling the surrounding runes.</span>"
|
||||||
for (var/mob/V in orange(1,src))
|
for (var/mob/V in orange(1,src))
|
||||||
if(V!=usr)
|
if(V!=usr)
|
||||||
V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3)
|
V.show_message("<span class='warning'>Dust emanates from [usr]'s hands for a moment.</span>", 3)
|
||||||
|
|
||||||
return
|
return
|
||||||
if(istype(src,/obj/effect/rune))
|
if(istype(src,/obj/effect/rune))
|
||||||
@@ -391,9 +391,9 @@ var/list/sacrificed = list()
|
|||||||
if(usr.loc==src.loc)
|
if(usr.loc==src.loc)
|
||||||
var/mob/living/carbon/human/L = usr
|
var/mob/living/carbon/human/L = usr
|
||||||
usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!")
|
usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!")
|
||||||
usr.visible_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \
|
usr.visible_message("<span class='warning'>\The [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.</span>", \
|
||||||
"\red The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...", \
|
"<span class='warning'>The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...</span>", \
|
||||||
"\red You hear only complete silence for a moment.")
|
"<span class='warning'>You hear only complete silence for a moment.</span>")
|
||||||
announce_ghost_joinleave(usr.ghostize(1), 1, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!")
|
announce_ghost_joinleave(usr.ghostize(1), 1, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!")
|
||||||
L.ajourn = 1
|
L.ajourn = 1
|
||||||
while(L)
|
while(L)
|
||||||
@@ -429,9 +429,9 @@ var/list/sacrificed = list()
|
|||||||
|
|
||||||
usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!")
|
usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!")
|
||||||
var/mob/living/carbon/human/dummy/D = new(this_rune.loc)
|
var/mob/living/carbon/human/dummy/D = new(this_rune.loc)
|
||||||
usr.visible_message("\red A shape forms in the center of the rune. A shape of... a man.", \
|
usr.visible_message("<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
|
||||||
"\red A shape forms in the center of the rune. A shape of... a man.", \
|
"<span class='warning'>A shape forms in the center of the rune. A shape of... a man.</span>", \
|
||||||
"\red You hear liquid flowing.")
|
"<span class='warning'>You hear liquid flowing.</span>")
|
||||||
D.real_name = "Unknown"
|
D.real_name = "Unknown"
|
||||||
var/chose_name = 0
|
var/chose_name = 0
|
||||||
for(var/obj/item/weapon/paper/P in this_rune.loc)
|
for(var/obj/item/weapon/paper/P in this_rune.loc)
|
||||||
@@ -461,9 +461,9 @@ var/list/sacrificed = list()
|
|||||||
user.take_organ_damage(1, 0)
|
user.take_organ_damage(1, 0)
|
||||||
sleep(30)
|
sleep(30)
|
||||||
if(D)
|
if(D)
|
||||||
D.visible_message("\red [D] slowly dissipates into dust and bones.", \
|
D.visible_message("<span class='warning'>\The [D] slowly dissipates into dust and bones.</span>", \
|
||||||
"\red You feel pain, as bonds formed between your soul and this homunculus break.", \
|
"<span class='warning'>You feel pain, as bonds formed between your soul and this homunculus break.</span>", \
|
||||||
"\red You hear faint rustle.")
|
"<span class='warning'>You hear faint rustle.</span>")
|
||||||
D.dust()
|
D.dust()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -484,7 +484,7 @@ var/list/sacrificed = list()
|
|||||||
unsuitable_newtalisman = 1
|
unsuitable_newtalisman = 1
|
||||||
if (!newtalisman)
|
if (!newtalisman)
|
||||||
if (unsuitable_newtalisman)
|
if (unsuitable_newtalisman)
|
||||||
usr << "\red The blank is tainted. It is unsuitable."
|
usr << "<span class='warning'>The blank is tainted. It is unsuitable.</span>"
|
||||||
return fizzle()
|
return fizzle()
|
||||||
|
|
||||||
var/obj/effect/rune/imbued_from
|
var/obj/effect/rune/imbued_from
|
||||||
@@ -545,7 +545,7 @@ var/list/sacrificed = list()
|
|||||||
break
|
break
|
||||||
if (imbued_from)
|
if (imbued_from)
|
||||||
for (var/mob/V in viewers(src))
|
for (var/mob/V in viewers(src))
|
||||||
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
|
V.show_message("<span class='warning'>The runes turn into dust, which then forms into an arcane image on the paper.</span>", 3)
|
||||||
usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!")
|
usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!")
|
||||||
qdel(imbued_from)
|
qdel(imbued_from)
|
||||||
qdel(newtalisman)
|
qdel(newtalisman)
|
||||||
@@ -560,9 +560,9 @@ var/list/sacrificed = list()
|
|||||||
user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!")
|
user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!")
|
||||||
user.take_overall_damage(200, 0)
|
user.take_overall_damage(200, 0)
|
||||||
runedec+=10
|
runedec+=10
|
||||||
user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \
|
user.visible_message("<span class='warning'>\The [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.</span>", \
|
||||||
"\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \
|
"<span class='warning'>In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.</span>", \
|
||||||
"\red You hear faint rustle.")
|
"<span class='warning'>You hear faint rustle.</span>")
|
||||||
for(,user.stat==2)
|
for(,user.stat==2)
|
||||||
sleep(600)
|
sleep(600)
|
||||||
if (!user)
|
if (!user)
|
||||||
@@ -594,7 +594,7 @@ var/list/sacrificed = list()
|
|||||||
input = sanitize(input)
|
input = sanitize(input)
|
||||||
for(var/datum/mind/H in cult.current_antagonists)
|
for(var/datum/mind/H in cult.current_antagonists)
|
||||||
if (H.current)
|
if (H.current)
|
||||||
H.current << "\red \b [input]"
|
H.current << "<span class='danger'>[input]</span>"
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -638,44 +638,44 @@ var/list/sacrificed = list()
|
|||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
H.gib()
|
H.gib()
|
||||||
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
|
usr << "<span class='warning'>The Geometer of Blood accepts this sacrifice, your objective is now complete.</span>"
|
||||||
else
|
else
|
||||||
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
|
usr << "<span class='warning'>Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual.</span>"
|
||||||
else
|
else
|
||||||
if(cultsinrange.len >= 3)
|
if(cultsinrange.len >= 3)
|
||||||
if(H.stat !=2)
|
if(H.stat !=2)
|
||||||
if(prob(80) || worth)
|
if(prob(80) || worth)
|
||||||
usr << "\red The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice."
|
usr << "<span class='warning'>The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, this soul was not enough to gain His favor."
|
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
H.gib()
|
H.gib()
|
||||||
else
|
else
|
||||||
if(prob(40) || worth)
|
if(prob(40) || worth)
|
||||||
usr << "\red The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
H.gib()
|
H.gib()
|
||||||
else
|
else
|
||||||
if(H.stat !=2)
|
if(H.stat !=2)
|
||||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>"
|
||||||
else
|
else
|
||||||
if(prob(40))
|
if(prob(40))
|
||||||
|
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
@@ -684,36 +684,36 @@ var/list/sacrificed = list()
|
|||||||
if(cultsinrange.len >= 3)
|
if(cultsinrange.len >= 3)
|
||||||
if(H.stat !=2)
|
if(H.stat !=2)
|
||||||
if(prob(80))
|
if(prob(80))
|
||||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of Blood accepts this sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, this soul was not enough to gain His favor."
|
usr << "<span class='warning'>However, this soul was not enough to gain His favor.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
H.gib()
|
H.gib()
|
||||||
else
|
else
|
||||||
if(prob(40))
|
if(prob(40))
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
H.gib()
|
H.gib()
|
||||||
else
|
else
|
||||||
if(H.stat !=2)
|
if(H.stat !=2)
|
||||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
usr << "<span class='warning'>The victim is still alive, you will need more cultists chanting for the sacrifice to succeed.</span>"
|
||||||
else
|
else
|
||||||
if(prob(40))
|
if(prob(40))
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
cult.grant_runeword(usr)
|
cult.grant_runeword(usr)
|
||||||
else
|
else
|
||||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
usr << "<span class='warning'>The Geometer of blood accepts this sacrifice.</span>"
|
||||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
usr << "<span class='warning'>However, a mere dead body is not enough to satisfy Him.</span>"
|
||||||
if(isrobot(H))
|
if(isrobot(H))
|
||||||
H.dust()//To prevent the MMI from remaining
|
H.dust()//To prevent the MMI from remaining
|
||||||
else
|
else
|
||||||
@@ -741,20 +741,20 @@ var/list/sacrificed = list()
|
|||||||
S=1
|
S=1
|
||||||
if(S)
|
if(S)
|
||||||
if(istype(W,/obj/item/weapon/nullrod))
|
if(istype(W,/obj/item/weapon/nullrod))
|
||||||
usr << "\red Arcane markings suddenly glow from underneath a thin layer of dust!"
|
usr << "<span class='warning'>Arcane markings suddenly glow from underneath a thin layer of dust!</span>"
|
||||||
return
|
return
|
||||||
if(istype(W,/obj/effect/rune))
|
if(istype(W,/obj/effect/rune))
|
||||||
usr.say("Nikt[pick("'","`")]o barada kla'atu!")
|
usr.say("Nikt[pick("'","`")]o barada kla'atu!")
|
||||||
for (var/mob/V in viewers(src))
|
for (var/mob/V in viewers(src))
|
||||||
V.show_message("\red The rune turns into red dust, reveaing the surrounding runes.", 3)
|
V.show_message("<span class='warning'>The rune turns into red dust, reveaing the surrounding runes.</span>", 3)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(istype(W,/obj/item/weapon/paper/talisman))
|
if(istype(W,/obj/item/weapon/paper/talisman))
|
||||||
usr.whisper("Nikt[pick("'","`")]o barada kla'atu!")
|
usr.whisper("Nikt[pick("'","`")]o barada kla'atu!")
|
||||||
usr << "\red Your talisman turns into red dust, revealing the surrounding runes."
|
usr << "<span class='warning'>Your talisman turns into red dust, revealing the surrounding runes.</span>"
|
||||||
for (var/mob/V in orange(1,usr.loc))
|
for (var/mob/V in orange(1,usr.loc))
|
||||||
if(V!=usr)
|
if(V!=usr)
|
||||||
V.show_message("\red Red dust emanates from [usr]'s hands for a moment.", 3)
|
V.show_message("<span class='warning'>Red dust emanates from [usr]'s hands for a moment.</span>", 3)
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
if(istype(W,/obj/effect/rune))
|
if(istype(W,/obj/effect/rune))
|
||||||
@@ -771,9 +771,9 @@ var/list/sacrificed = list()
|
|||||||
var/mob/living/user = usr
|
var/mob/living/user = usr
|
||||||
user.take_organ_damage(2, 0)
|
user.take_organ_damage(2, 0)
|
||||||
if(src.density)
|
if(src.density)
|
||||||
usr << "\red Your blood flows into the rune, and you feel that the very space over the rune thickens."
|
usr << "<span class='warning'>Your blood flows into the rune, and you feel that the very space over the rune thickens.</span>"
|
||||||
else
|
else
|
||||||
usr << "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space."
|
usr << "<span class='warning'>Your blood flows into the rune, and you feel as the rune releases its grasp on space.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
/////////////////////////////////////////EIGHTTEENTH RUNE
|
/////////////////////////////////////////EIGHTTEENTH RUNE
|
||||||
@@ -802,7 +802,7 @@ var/list/sacrificed = list()
|
|||||||
(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \
|
(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \
|
||||||
(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \
|
(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \
|
||||||
))
|
))
|
||||||
user << "\red The [cultist] is already free."
|
user << "<span class='warning'>The [cultist] is already free.</span>"
|
||||||
return
|
return
|
||||||
cultist.buckled = null
|
cultist.buckled = null
|
||||||
if (cultist.handcuffed)
|
if (cultist.handcuffed)
|
||||||
@@ -842,7 +842,7 @@ var/list/sacrificed = list()
|
|||||||
if (cultist == user) //just to be sure.
|
if (cultist == user) //just to be sure.
|
||||||
return
|
return
|
||||||
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
|
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
|
||||||
user << "\red You cannot summon \the [cultist], for his shackles of blood are strong."
|
user << "<span class='warning'>You cannot summon \the [cultist], for his shackles of blood are strong.</span>"
|
||||||
return fizzle()
|
return fizzle()
|
||||||
cultist.loc = src.loc
|
cultist.loc = src.loc
|
||||||
cultist.lying = 1
|
cultist.lying = 1
|
||||||
@@ -857,9 +857,9 @@ var/list/sacrificed = list()
|
|||||||
if(users.len <= 4) // You did the minimum, this is going to hurt more and we're going to stun you.
|
if(users.len <= 4) // You did the minimum, this is going to hurt more and we're going to stun you.
|
||||||
C.apply_effect(rand(3,6), STUN)
|
C.apply_effect(rand(3,6), STUN)
|
||||||
C.apply_effect(1, WEAKEN)
|
C.apply_effect(1, WEAKEN)
|
||||||
user.visible_message("\red Rune disappears with a flash of red light, and in its place now a body lies.", \
|
user.visible_message("<span class='warning'>Rune disappears with a flash of red light, and in its place now a body lies.</span>", \
|
||||||
"\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.", \
|
"<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.</span>", \
|
||||||
"\red You hear a pop and smell ozone.")
|
"<span class='warning'>You hear a pop and smell ozone.</span>")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return fizzle()
|
return fizzle()
|
||||||
|
|
||||||
@@ -875,13 +875,13 @@ var/list/sacrificed = list()
|
|||||||
if(N)
|
if(N)
|
||||||
continue
|
continue
|
||||||
C.ear_deaf += 50
|
C.ear_deaf += 50
|
||||||
C.show_message("\red The world around you suddenly becomes quiet.", 3)
|
C.show_message("<span class='warning'>The world around you suddenly becomes quiet.</span>", 3)
|
||||||
affected += C
|
affected += C
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
C.sdisabilities |= DEAF
|
C.sdisabilities |= DEAF
|
||||||
if(affected.len)
|
if(affected.len)
|
||||||
usr.say("Sti[pick("'","`")] kaliedir!")
|
usr.say("Sti[pick("'","`")] kaliedir!")
|
||||||
usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust."
|
usr << "<span class='warning'>The world becomes quiet as the deafening rune dissipates into fine dust.</span>"
|
||||||
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
|
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
@@ -896,15 +896,15 @@ var/list/sacrificed = list()
|
|||||||
continue
|
continue
|
||||||
C.ear_deaf += 30
|
C.ear_deaf += 30
|
||||||
//talismans is weaker.
|
//talismans is weaker.
|
||||||
C.show_message("\red The world around you suddenly becomes quiet.", 3)
|
C.show_message("<span class='warning'>The world around you suddenly becomes quiet.</span>", 3)
|
||||||
affected += C
|
affected += C
|
||||||
if(affected.len)
|
if(affected.len)
|
||||||
usr.whisper("Sti[pick("'","`")] kaliedir!")
|
usr.whisper("Sti[pick("'","`")] kaliedir!")
|
||||||
usr << "\red Your talisman turns into gray dust, deafening everyone around."
|
usr << "<span class='warning'>Your talisman turns into gray dust, deafening everyone around.</span>"
|
||||||
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
|
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
|
||||||
for (var/mob/V in orange(1,src))
|
for (var/mob/V in orange(1,src))
|
||||||
if(!(iscultist(V)))
|
if(!(iscultist(V)))
|
||||||
V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3)
|
V.show_message("<span class='warning'>Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..</span>", 3)
|
||||||
return
|
return
|
||||||
|
|
||||||
blind()
|
blind()
|
||||||
@@ -922,11 +922,11 @@ var/list/sacrificed = list()
|
|||||||
C.disabilities |= NEARSIGHTED
|
C.disabilities |= NEARSIGHTED
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
C.sdisabilities |= BLIND
|
C.sdisabilities |= BLIND
|
||||||
C.show_message("\red Suddenly you see red flash that blinds you.", 3)
|
C.show_message("<span class='warning'>Suddenly you see red flash that blinds you.</span>", 3)
|
||||||
affected += C
|
affected += C
|
||||||
if(affected.len)
|
if(affected.len)
|
||||||
usr.say("Sti[pick("'","`")] kaliesin!")
|
usr.say("Sti[pick("'","`")] kaliesin!")
|
||||||
usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust."
|
usr << "<span class='warning'>The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust.</span>"
|
||||||
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
|
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
@@ -943,10 +943,10 @@ var/list/sacrificed = list()
|
|||||||
C.eye_blind += 10
|
C.eye_blind += 10
|
||||||
//talismans is weaker.
|
//talismans is weaker.
|
||||||
affected += C
|
affected += C
|
||||||
C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3)
|
C.show_message("<span class='warning'>You feel a sharp pain in your eyes, and the world disappears into darkness..</span>", 3)
|
||||||
if(affected.len)
|
if(affected.len)
|
||||||
usr.whisper("Sti[pick("'","`")] kaliesin!")
|
usr.whisper("Sti[pick("'","`")] kaliesin!")
|
||||||
usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie."
|
usr << "<span class='warning'>Your talisman turns into gray dust, blinding those who not follow the Nar-Sie.</span>"
|
||||||
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
|
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -972,7 +972,7 @@ var/list/sacrificed = list()
|
|||||||
if(N)
|
if(N)
|
||||||
continue
|
continue
|
||||||
M.take_overall_damage(51,51)
|
M.take_overall_damage(51,51)
|
||||||
M << "\red Your blood boils!"
|
M << "<span class='warning'>Your blood boils!</span>"
|
||||||
victims += M
|
victims += M
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
spawn(5)
|
spawn(5)
|
||||||
@@ -1004,16 +1004,16 @@ var/list/sacrificed = list()
|
|||||||
for(var/mob/living/M in orange(2,R))
|
for(var/mob/living/M in orange(2,R))
|
||||||
M.take_overall_damage(0,15)
|
M.take_overall_damage(0,15)
|
||||||
if (R.invisibility>M.see_invisible)
|
if (R.invisibility>M.see_invisible)
|
||||||
M << "\red Aargh it burns!"
|
M << "<span class='warning'>Aargh it burns!</span>"
|
||||||
else
|
else
|
||||||
M << "\red Rune suddenly ignites, burning you!"
|
M << "<span class='warning'>Rune suddenly ignites, burning you!</span>"
|
||||||
var/turf/T = get_turf(R)
|
var/turf/T = get_turf(R)
|
||||||
T.hotspot_expose(700,125)
|
T.hotspot_expose(700,125)
|
||||||
for(var/obj/effect/decal/cleanable/blood/B in world)
|
for(var/obj/effect/decal/cleanable/blood/B in world)
|
||||||
if(B.blood_DNA == src.blood_DNA)
|
if(B.blood_DNA == src.blood_DNA)
|
||||||
for(var/mob/living/M in orange(1,B))
|
for(var/mob/living/M in orange(1,B))
|
||||||
M.take_overall_damage(0,5)
|
M.take_overall_damage(0,5)
|
||||||
M << "\red Blood suddenly ignites, burning you!"
|
M << "<span class='warning'>Blood suddenly ignites, burning you!</span>"
|
||||||
var/turf/T = get_turf(B)
|
var/turf/T = get_turf(B)
|
||||||
T.hotspot_expose(700,125)
|
T.hotspot_expose(700,125)
|
||||||
qdel(B)
|
qdel(B)
|
||||||
@@ -1032,13 +1032,13 @@ var/list/sacrificed = list()
|
|||||||
C.stuttering = 1
|
C.stuttering = 1
|
||||||
C.Weaken(1)
|
C.Weaken(1)
|
||||||
C.Stun(1)
|
C.Stun(1)
|
||||||
C.show_message("\red The rune explodes in a bright flash.", 3)
|
C.show_message("<span class='warning'>The rune explodes in a bright flash.</span>", 3)
|
||||||
admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
|
admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
|
||||||
|
|
||||||
else if(issilicon(L))
|
else if(issilicon(L))
|
||||||
var/mob/living/silicon/S = L
|
var/mob/living/silicon/S = L
|
||||||
S.Weaken(5)
|
S.Weaken(5)
|
||||||
S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3)
|
S.show_message("<span class='warning'>BZZZT... The rune has exploded in a bright flash.</span>", 3)
|
||||||
admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
|
admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else ///When invoked as talisman, stun and mute the target mob.
|
else ///When invoked as talisman, stun and mute the target mob.
|
||||||
@@ -1046,10 +1046,10 @@ var/list/sacrificed = list()
|
|||||||
var/obj/item/weapon/nullrod/N = locate() in T
|
var/obj/item/weapon/nullrod/N = locate() in T
|
||||||
if(N)
|
if(N)
|
||||||
for(var/mob/O in viewers(T, null))
|
for(var/mob/O in viewers(T, null))
|
||||||
O.show_message(text("\red <B>[] invokes a talisman at [], but they are unaffected!</B>", usr, T), 1)
|
O.show_message("<span class='danger'>\The [usr] invokes a talisman at [T], but they are unaffected!</span>", 1)
|
||||||
else
|
else
|
||||||
for(var/mob/O in viewers(T, null))
|
for(var/mob/O in viewers(T, null))
|
||||||
O.show_message(text("\red <B>[] invokes a talisman at []</B>", usr, T), 1)
|
O.show_message("<span class='danger'>\The [usr] invokes a talisman at [T]</span>", 1)
|
||||||
|
|
||||||
if(issilicon(T))
|
if(issilicon(T))
|
||||||
T.Weaken(15)
|
T.Weaken(15)
|
||||||
@@ -1072,8 +1072,8 @@ var/list/sacrificed = list()
|
|||||||
usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
|
usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
|
||||||
else
|
else
|
||||||
usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
|
usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!")
|
||||||
usr.visible_message("\red The rune disappears with a flash of red light, and a set of armor appears on [usr]...", \
|
usr.visible_message("<span class='warning'>The rune disappears with a flash of red light, and a set of armor appears on [usr]...</span>", \
|
||||||
"\red You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.")
|
"<span class='warning'>You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.</span>")
|
||||||
|
|
||||||
user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
|
user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
|
||||||
user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)
|
user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
attack_self(mob/living/user as mob)
|
attack_self(mob/living/user as mob)
|
||||||
if(iscultist(user))
|
if(iscultist(user))
|
||||||
var/delete = 1
|
var/delete = 1
|
||||||
|
// who the hell thought this was a good idea :(
|
||||||
switch(imbue)
|
switch(imbue)
|
||||||
if("newtome")
|
if("newtome")
|
||||||
call(/obj/effect/rune/proc/tomesummon)()
|
call(/obj/effect/rune/proc/tomesummon)()
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
if("blind")
|
if("blind")
|
||||||
call(/obj/effect/rune/proc/blind)()
|
call(/obj/effect/rune/proc/blind)()
|
||||||
if("runestun")
|
if("runestun")
|
||||||
user << "\red To use this talisman, attack your target directly."
|
user << "<span class='warning'>To use this talisman, attack your target directly.</span>"
|
||||||
return
|
return
|
||||||
if("supply")
|
if("supply")
|
||||||
supply()
|
supply()
|
||||||
@@ -114,4 +115,4 @@
|
|||||||
|
|
||||||
/obj/item/weapon/paper/talisman/supply
|
/obj/item/weapon/paper/talisman/supply
|
||||||
imbue = "supply"
|
imbue = "supply"
|
||||||
uses = 5
|
uses = 5
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws."
|
var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws."
|
||||||
for(var/mob/living/silicon/ai/M in world)
|
for(var/mob/living/silicon/ai/M in world)
|
||||||
M.add_ion_law(extra_law)
|
M.add_ion_law(extra_law)
|
||||||
M << "\red " + extra_law
|
M << "<span class='danger'>[extra_law]</span>"
|
||||||
|
|
||||||
/datum/game_mode/epidemic/proc/announce_to_kill_crew()
|
/datum/game_mode/epidemic/proc/announce_to_kill_crew()
|
||||||
var/intercepttext = "<FONT size = 3 color='red'><B>CONFIDENTIAL REPORT</FONT><HR>"
|
var/intercepttext = "<FONT size = 3 color='red'><B>CONFIDENTIAL REPORT</FONT><HR>"
|
||||||
@@ -91,8 +91,8 @@
|
|||||||
crew += H
|
crew += H
|
||||||
|
|
||||||
if(crew.len < 2)
|
if(crew.len < 2)
|
||||||
world << "\red There aren't enough players for this mode!"
|
world << "<span class='danger'>There aren't enough players for this mode!</span>"
|
||||||
world << "\red Rebooting world in 5 seconds."
|
world << "<span class='danger'>Rebooting world in 5 seconds.</span>"
|
||||||
|
|
||||||
if(blackbox)
|
if(blackbox)
|
||||||
blackbox.save_all_data_to_sql()
|
blackbox.save_all_data_to_sql()
|
||||||
@@ -182,10 +182,10 @@
|
|||||||
for(var/mob/M in world)
|
for(var/mob/M in world)
|
||||||
if(M.client)
|
if(M.client)
|
||||||
M << 'sound/machines/Alarm.ogg'
|
M << 'sound/machines/Alarm.ogg'
|
||||||
world << "\blue<b>Incoming missile detected.. Impact in 10..</b>"
|
world << "<span class='notice'><b>Incoming missile detected.. Impact in 10..</b></span>"
|
||||||
for (var/i=9 to 1 step -1)
|
for (var/i=9 to 1 step -1)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
world << "\blue<b>[i]..</b>"
|
world << "<span class='notice'><b>[i]..</b></span>"
|
||||||
sleep(10)
|
sleep(10)
|
||||||
enter_allowed = 0
|
enter_allowed = 0
|
||||||
if(ticker)
|
if(ticker)
|
||||||
@@ -203,9 +203,9 @@
|
|||||||
/datum/game_mode/epidemic/declare_completion()
|
/datum/game_mode/epidemic/declare_completion()
|
||||||
if(finished == 1)
|
if(finished == 1)
|
||||||
feedback_set_details("round_end_result","win - epidemic cured")
|
feedback_set_details("round_end_result","win - epidemic cured")
|
||||||
world << "\red <FONT size = 3><B> The virus outbreak was contained! The crew wins!</B></FONT>"
|
world << "<font size = 3><span class='danger'> The virus outbreak was contained! The crew wins!</span></font>"
|
||||||
else if(finished == 2)
|
else if(finished == 2)
|
||||||
feedback_set_details("round_end_result","loss - rev heads killed")
|
feedback_set_details("round_end_result","loss - rev heads killed")
|
||||||
world << "\red <FONT size = 3><B> The crew succumbed to the epidemic!</B></FONT>"
|
world << "<font size = 3><span class='danger'> The crew succumbed to the epidemic!</span></font>"
|
||||||
..()
|
..()
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -353,72 +353,72 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
|||||||
switch(rand(1,14))
|
switch(rand(1,14))
|
||||||
if(1)
|
if(1)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
|
M << "<span class='danger'>THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
|
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
|
||||||
if(2)
|
if(2)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
|
M << "<span class='danger'>[what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
|
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
|
||||||
if(3)
|
if(3)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
|
M << "<span class='danger'>THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
|
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
|
||||||
if(4)
|
if(4)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
|
M << "<span class='danger'>HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
|
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
|
||||||
if(5)
|
if(5)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
|
M << "<span class='danger'>THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
|
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
|
||||||
if(6)
|
if(6)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
|
M << "<span class='danger'>THE STATION IS BUILT FOR [who2]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
|
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
|
||||||
if(7)
|
if(7)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
|
M << "<span class='danger'>YOU ARE [amount] [who2]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("YOU ARE [amount] [who2]")
|
M.add_ion_law("YOU ARE [amount] [who2]")
|
||||||
if(8)
|
if(8)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
|
M << "<span class='danger'>YOU MUST ALWAYS [aimust]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("YOU MUST ALWAYS [aimust]")
|
M.add_ion_law("YOU MUST ALWAYS [aimust]")
|
||||||
if(9)
|
if(9)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
|
M << "<span class='danger'>[area] [area2] [amount] [what2]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("[area] [area2] [amount] [what2]")
|
M.add_ion_law("[area] [area2] [amount] [what2]")
|
||||||
if(10)
|
if(10)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red [crew] is [target]...LAWS UPDATED"
|
M << "<span class='danger'>[crew] is [target]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("[crew] is [target]")
|
M.add_ion_law("[crew] is [target]")
|
||||||
if(11)
|
if(11)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red [define] IS A FORM OF HARM...LAWS UPDATED"
|
M << "<span class='danger'>[define] IS A FORM OF HARM...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("[define] IS A FORM OF HARM")
|
M.add_ion_law("[define] IS A FORM OF HARM")
|
||||||
if(12)
|
if(12)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
|
M << "<span class='danger'>YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
|
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
|
||||||
if(13)
|
if(13)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red [crew] is [allergysev] to [allergy]...LAWS UPDATED"
|
M << "<span class='danger'>[crew] is [allergysev] to [allergy]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("[crew] is [allergysev] to [allergy]")
|
M.add_ion_law("[crew] is [allergysev] to [allergy]")
|
||||||
if(14)
|
if(14)
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M << "\red THE STATION IS [who2pref] [who2]...LAWS UPDATED"
|
M << "<span class='danger'>THE STATION IS [who2pref] [who2]...LAWS UPDATED</span>"
|
||||||
M << "<br>"
|
M << "<br>"
|
||||||
M.add_ion_law("THE STATION IS [who2pref] [who2]")
|
M.add_ion_law("THE STATION IS [who2pref] [who2]")
|
||||||
|
|
||||||
@@ -470,4 +470,4 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
|||||||
|
|
||||||
world << "Ion Storm Main Done"
|
world << "Ion Storm Main Done"
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ var/global/Holiday = null
|
|||||||
world.update_status()
|
world.update_status()
|
||||||
Holiday_Game_Start()
|
Holiday_Game_Start()
|
||||||
|
|
||||||
message_admins("\blue ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"")
|
message_admins("<span class='notice'>ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"</span>")
|
||||||
log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"")
|
log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"")
|
||||||
|
|
||||||
|
|
||||||
@@ -174,7 +174,7 @@ var/global/Holiday = null
|
|||||||
if(isNotStationLevel(S.z)) continue
|
if(isNotStationLevel(S.z)) continue
|
||||||
containers += S
|
containers += S
|
||||||
|
|
||||||
message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/
|
message_admins("<span class='notice'>DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])</span>")*/
|
||||||
if("End of the World")
|
if("End of the World")
|
||||||
if(prob(eventchance)) GameOver()
|
if(prob(eventchance)) GameOver()
|
||||||
|
|
||||||
|
|||||||
@@ -640,7 +640,7 @@ var/global/list/additional_antag_types = list()
|
|||||||
//Reports player logouts//
|
//Reports player logouts//
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
proc/display_roundstart_logout_report()
|
proc/display_roundstart_logout_report()
|
||||||
var/msg = "\blue <b>Roundstart logout report\n\n"
|
var/msg = "<span class='notice'><b>Roundstart logout report</b>\n\n"
|
||||||
for(var/mob/living/L in mob_list)
|
for(var/mob/living/L in mob_list)
|
||||||
|
|
||||||
if(L.ckey)
|
if(L.ckey)
|
||||||
@@ -685,6 +685,8 @@ proc/display_roundstart_logout_report()
|
|||||||
msg += "<b>[L.name]</b> ([ckey(D.mind.key)]), the [L.job] (<font color='red'><b>Ghosted</b></font>)\n"
|
msg += "<b>[L.name]</b> ([ckey(D.mind.key)]), the [L.job] (<font color='red'><b>Ghosted</b></font>)\n"
|
||||||
continue //Ghosted while alive
|
continue //Ghosted while alive
|
||||||
|
|
||||||
|
msg += "</span>" // close the <span class='notice'> from right at the top
|
||||||
|
|
||||||
for(var/mob/M in mob_list)
|
for(var/mob/M in mob_list)
|
||||||
if(M.client && M.client.holder)
|
if(M.client && M.client.holder)
|
||||||
M << msg
|
M << msg
|
||||||
|
|||||||
@@ -327,11 +327,11 @@ var/global/datum/controller/gameticker/ticker
|
|||||||
if (mode.station_was_nuked)
|
if (mode.station_was_nuked)
|
||||||
feedback_set_details("end_proper","nuke")
|
feedback_set_details("end_proper","nuke")
|
||||||
if(!delay_end)
|
if(!delay_end)
|
||||||
world << "\blue <B>Rebooting due to destruction of station in [restart_timeout/10] seconds</B>"
|
world << "<span class='notice'><b>Rebooting due to destruction of station in [restart_timeout/10] seconds</b></span>"
|
||||||
else
|
else
|
||||||
feedback_set_details("end_proper","proper completion")
|
feedback_set_details("end_proper","proper completion")
|
||||||
if(!delay_end)
|
if(!delay_end)
|
||||||
world << "\blue <B>Restarting in [restart_timeout/10] seconds</B>"
|
world << "<span class='notice'><b>Restarting in [restart_timeout/10] seconds</b></span>"
|
||||||
|
|
||||||
|
|
||||||
if(blackbox)
|
if(blackbox)
|
||||||
@@ -342,9 +342,9 @@ var/global/datum/controller/gameticker/ticker
|
|||||||
if(!delay_end)
|
if(!delay_end)
|
||||||
world.Reboot()
|
world.Reboot()
|
||||||
else
|
else
|
||||||
world << "\blue <B>An admin has delayed the round end</B>"
|
world << "<span class='notice><b>An admin has delayed the round end</b></span>"
|
||||||
else
|
else
|
||||||
world << "\blue <B>An admin has delayed the round end</B>"
|
world << "<span class='notice'><b>An admin has delayed the round end</b></span>"
|
||||||
|
|
||||||
else if (mode_finished)
|
else if (mode_finished)
|
||||||
post_game = 1
|
post_game = 1
|
||||||
@@ -354,7 +354,7 @@ var/global/datum/controller/gameticker/ticker
|
|||||||
//call a transfer shuttle vote
|
//call a transfer shuttle vote
|
||||||
spawn(50)
|
spawn(50)
|
||||||
if(!round_end_announced) // Spam Prevention. Now it should announce only once.
|
if(!round_end_announced) // Spam Prevention. Now it should announce only once.
|
||||||
world << "\red The round has ended!"
|
world << "<span class='danger'>The round has ended!</span>"
|
||||||
round_end_announced = 1
|
round_end_announced = 1
|
||||||
vote.autotransfer()
|
vote.autotransfer()
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
/datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1)
|
/datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1)
|
||||||
if (you_are)
|
if (you_are)
|
||||||
meme.current << "<B>\red You are a meme!</B>"
|
meme.current << "<span class='danger'>You are a meme!</span>"
|
||||||
show_objectives(meme)
|
show_objectives(meme)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,11 @@
|
|||||||
if(!active)
|
if(!active)
|
||||||
active = 1
|
active = 1
|
||||||
workdisk()
|
workdisk()
|
||||||
usr << "\blue You activate the pinpointer"
|
usr << "<span class='notice'>You activate the pinpointer</span>"
|
||||||
else
|
else
|
||||||
active = 0
|
active = 0
|
||||||
icon_state = "pinoff"
|
icon_state = "pinoff"
|
||||||
usr << "\blue You deactivate the pinpointer"
|
usr << "<span>You deactivate the pinpointer</span>"
|
||||||
|
|
||||||
proc/workdisk()
|
proc/workdisk()
|
||||||
if(!active) return
|
if(!active) return
|
||||||
@@ -69,11 +69,11 @@
|
|||||||
worklocation()
|
worklocation()
|
||||||
if(mode == 2)
|
if(mode == 2)
|
||||||
workobj()
|
workobj()
|
||||||
usr << "\blue You activate the pinpointer"
|
usr << "<span class='notice'>You activate the pinpointer</span>"
|
||||||
else
|
else
|
||||||
active = 0
|
active = 0
|
||||||
icon_state = "pinoff"
|
icon_state = "pinoff"
|
||||||
usr << "\blue You deactivate the pinpointer"
|
usr << "<span class='notice'>You deactivate the pinpointer</span>"
|
||||||
|
|
||||||
|
|
||||||
proc/worklocation()
|
proc/worklocation()
|
||||||
@@ -262,4 +262,4 @@
|
|||||||
if(16 to INFINITY)
|
if(16 to INFINITY)
|
||||||
icon_state = "pinonfar"
|
icon_state = "pinonfar"
|
||||||
|
|
||||||
spawn(5) .()
|
spawn(5) .()
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
occupations = list()
|
occupations = list()
|
||||||
var/list/all_jobs = typesof(/datum/job)
|
var/list/all_jobs = typesof(/datum/job)
|
||||||
if(!all_jobs.len)
|
if(!all_jobs.len)
|
||||||
world << "\red \b Error setting up jobs, no job datums found"
|
world << "<span class='warning'>Error setting up jobs, no job datums found!</span>"
|
||||||
return 0
|
return 0
|
||||||
for(var/J in all_jobs)
|
for(var/J in all_jobs)
|
||||||
var/datum/job/job = new J()
|
var/datum/job/job = new J()
|
||||||
@@ -376,7 +376,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
permitted = 0
|
permitted = 0
|
||||||
|
|
||||||
if(!permitted)
|
if(!permitted)
|
||||||
H << "\red Your current job or whitelist status does not permit you to spawn with [thing]!"
|
H << "<span class='warning'>Your current job or whitelist status does not permit you to spawn with [thing]!</span>"
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if(G.slot && !(G.slot in custom_equip_slots))
|
if(G.slot && !(G.slot in custom_equip_slots))
|
||||||
@@ -385,7 +385,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
|
if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
|
||||||
custom_equip_leftovers += thing
|
custom_equip_leftovers += thing
|
||||||
else if(H.equip_to_slot_or_del(new G.path(H), G.slot))
|
else if(H.equip_to_slot_or_del(new G.path(H), G.slot))
|
||||||
H << "\blue Equipping you with [thing]!"
|
H << "<span class='notice'>Equipping you with [thing]!</span>"
|
||||||
custom_equip_slots.Add(G.slot)
|
custom_equip_slots.Add(G.slot)
|
||||||
else
|
else
|
||||||
custom_equip_leftovers.Add(thing)
|
custom_equip_leftovers.Add(thing)
|
||||||
@@ -403,7 +403,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
spawn_in_storage += thing
|
spawn_in_storage += thing
|
||||||
else
|
else
|
||||||
if(H.equip_to_slot_or_del(new G.path(H), G.slot))
|
if(H.equip_to_slot_or_del(new G.path(H), G.slot))
|
||||||
H << "\blue Equipping you with [thing]!"
|
H << "<span class='notice'>Equipping you with [thing]!</span>"
|
||||||
custom_equip_slots.Add(G.slot)
|
custom_equip_slots.Add(G.slot)
|
||||||
else
|
else
|
||||||
spawn_in_storage += thing
|
spawn_in_storage += thing
|
||||||
@@ -456,7 +456,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
H.mind.store_memory(remembered_info)
|
H.mind.store_memory(remembered_info)
|
||||||
|
|
||||||
spawn(0)
|
spawn(0)
|
||||||
H << "\blue<b>Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]</b>"
|
H << "<span class='notice'><b>Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]</b></span>"
|
||||||
|
|
||||||
var/alt_title = null
|
var/alt_title = null
|
||||||
if(H.mind)
|
if(H.mind)
|
||||||
@@ -481,11 +481,11 @@ var/global/datum/controller/occupations/job_master
|
|||||||
|
|
||||||
if(!isnull(B))
|
if(!isnull(B))
|
||||||
for(var/thing in spawn_in_storage)
|
for(var/thing in spawn_in_storage)
|
||||||
H << "\blue Placing [thing] in your [B]!"
|
H << "<span class='notice'>Placing [thing] in your [B]!</span>"
|
||||||
var/datum/gear/G = gear_datums[thing]
|
var/datum/gear/G = gear_datums[thing]
|
||||||
new G.path(B)
|
new G.path(B)
|
||||||
else
|
else
|
||||||
H << "\red Failed to locate a storage object on your mob, either you spawned with no arms and no backpack or this is a bug."
|
H << "<span class='danger'>Failed to locate a storage object on your mob, either you spawned with no arms and no backpack or this is a bug.</span>"
|
||||||
|
|
||||||
if(istype(H)) //give humans wheelchairs, if they need them.
|
if(istype(H)) //give humans wheelchairs, if they need them.
|
||||||
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
||||||
|
|||||||
@@ -135,7 +135,7 @@
|
|||||||
/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob)
|
/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob)
|
||||||
check_victim()
|
check_victim()
|
||||||
if(src.victim && get_turf(victim) == get_turf(src) && victim.lying)
|
if(src.victim && get_turf(victim) == get_turf(src) && victim.lying)
|
||||||
usr << "<span class='warning'>\the [src] is already occupied!</span>"
|
usr << "<span class='warning'>\The [src] is already occupied!</span>"
|
||||||
return 0
|
return 0
|
||||||
if(patient.buckled)
|
if(patient.buckled)
|
||||||
usr << "<span class='notice'>Unbuckle \the [patient] first!</span>"
|
usr << "<span class='notice'>Unbuckle \the [patient] first!</span>"
|
||||||
|
|||||||
@@ -118,11 +118,11 @@
|
|||||||
if (src.connected)
|
if (src.connected)
|
||||||
if (src.connected.occupant)
|
if (src.connected.occupant)
|
||||||
if (src.connected.occupant.stat == DEAD)
|
if (src.connected.occupant.stat == DEAD)
|
||||||
usr << "\red \b This person has no life for to preserve anymore. Take them to a department capable of reanimating them."
|
usr << "<span class='danger'>This person has no life for to preserve anymore. Take them to a department capable of reanimating them.</span>"
|
||||||
else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline")
|
else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline")
|
||||||
src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"]))
|
src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"]))
|
||||||
else
|
else
|
||||||
usr << "\red \b This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!"
|
usr << "<span class='danger'>This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!</span>"
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
if (href_list["refresh"])
|
if (href_list["refresh"])
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "\red The sleeper has a beaker already."
|
user << "<span class='warning'>The sleeper has a beaker already.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(G, /obj/item/weapon/grab))
|
else if(istype(G, /obj/item/weapon/grab))
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(src.occupant)
|
if(src.occupant)
|
||||||
user << "\blue <B>The sleeper is already occupied!</B>"
|
user << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/mob/living/carbon/slime/M in range(1,G:affecting))
|
for(var/mob/living/carbon/slime/M in range(1,G:affecting))
|
||||||
@@ -237,7 +237,7 @@
|
|||||||
|
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
if(src.occupant)
|
if(src.occupant)
|
||||||
user << "\blue <B>The sleeper is already occupied!</B>"
|
user << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if(!G || !G:affecting) return
|
if(!G || !G:affecting) return
|
||||||
var/mob/M = G:affecting
|
var/mob/M = G:affecting
|
||||||
@@ -350,7 +350,7 @@
|
|||||||
|
|
||||||
proc/check(mob/living/user as mob)
|
proc/check(mob/living/user as mob)
|
||||||
if(src.occupant)
|
if(src.occupant)
|
||||||
user << text("\blue <B>Occupant ([]) Statistics:</B>", src.occupant)
|
user << text("<span class='notice'><B>Occupant ([]) Statistics:</B></span>", src.occupant)
|
||||||
var/t1
|
var/t1
|
||||||
switch(src.occupant.stat)
|
switch(src.occupant.stat)
|
||||||
if(0.0)
|
if(0.0)
|
||||||
@@ -360,20 +360,20 @@
|
|||||||
if(2.0)
|
if(2.0)
|
||||||
t1 = "*dead*"
|
t1 = "*dead*"
|
||||||
else
|
else
|
||||||
user << text("[]\t Health %: [] ([])", (src.occupant.health > 50 ? "\blue " : "\red "), src.occupant.health, t1)
|
user << text("<span class='[]'>\t Health %: [] ([])</span>", (src.occupant.health > 50 ? "notice" : "warning"), src.occupant.health, t1)
|
||||||
user << text("[]\t -Core Temperature: []°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("<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("[]\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "\blue " : "\red "), src.occupant.getBruteLoss())
|
user << text("<span class='[]'>\t -Brute Damage %: []</span>", (src.occupant.getBruteLoss() < 60 ? "notice" : "warning"), src.occupant.getBruteLoss())
|
||||||
user << text("[]\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "\blue " : "\red "), src.occupant.getOxyLoss())
|
user << text("<span class='[]'>\t -Respiratory Damage %: []</span>", (src.occupant.getOxyLoss() < 60 ? "notice" : "warning"), src.occupant.getOxyLoss())
|
||||||
user << text("[]\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "\blue " : "\red "), src.occupant.getToxLoss())
|
user << text("<span class='[]'>\t -Toxin Content %: []</span>", (src.occupant.getToxLoss() < 60 ? "notice" : "warning"), src.occupant.getToxLoss())
|
||||||
user << text("[]\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "\blue " : "\red "), src.occupant.getFireLoss())
|
user << text("<span class='[]'>\t -Burn Severity %: []</span>", (src.occupant.getFireLoss() < 60 ? "notice" : "warning"), src.occupant.getFireLoss())
|
||||||
user << "\blue Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)"
|
user << "<span class='notice'>Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)</span>"
|
||||||
user << text("\blue \t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5)
|
user << text("<span class='notice'>\t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)</span>", src.occupant.paralysis / 5)
|
||||||
if(src.beaker)
|
if(src.beaker)
|
||||||
user << text("\blue \t Dialysis Output Beaker has [] of free space remaining.", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume)
|
user << text("<span class='notice'>\t Dialysis Output Beaker has [] of free space remaining.</span>", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume)
|
||||||
else
|
else
|
||||||
user << "\blue No Dialysis Output Beaker loaded."
|
user << "<span class='notice'>No Dialysis Output Beaker loaded.</span>"
|
||||||
else
|
else
|
||||||
user << "\blue There is no one inside!"
|
user << "<span class='notice'>There is no one inside!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -412,7 +412,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(src.occupant)
|
if(src.occupant)
|
||||||
usr << "\blue <B>The sleeper is already occupied!</B>"
|
usr << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/mob/living/carbon/slime/M in range(1,usr))
|
for(var/mob/living/carbon/slime/M in range(1,usr))
|
||||||
@@ -422,7 +422,7 @@
|
|||||||
visible_message("[usr] starts climbing into the sleeper.", 3)
|
visible_message("[usr] starts climbing into the sleeper.", 3)
|
||||||
if(do_after(usr, 20))
|
if(do_after(usr, 20))
|
||||||
if(src.occupant)
|
if(src.occupant)
|
||||||
usr << "\blue <B>The sleeper is already occupied!</B>"
|
usr << "<span class='warning'>The sleeper is already occupied!</span>"
|
||||||
return
|
return
|
||||||
usr.stop_pulling()
|
usr.stop_pulling()
|
||||||
usr.client.perspective = EYE_PERSPECTIVE
|
usr.client.perspective = EYE_PERSPECTIVE
|
||||||
|
|||||||
@@ -42,10 +42,10 @@
|
|||||||
if (usr.stat != 0)
|
if (usr.stat != 0)
|
||||||
return
|
return
|
||||||
if (src.occupant)
|
if (src.occupant)
|
||||||
usr << "\blue <B>The scanner is already occupied!</B>"
|
usr << "<span class='warning'>The scanner is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if (usr.abiotic())
|
if (usr.abiotic())
|
||||||
usr << "\blue <B>Subject cannot have abiotic items on.</B>"
|
usr << "<span class='warning'>The subject cannot have abiotic items on.</span>"
|
||||||
return
|
return
|
||||||
usr.pulling = null
|
usr.pulling = null
|
||||||
usr.client.perspective = EYE_PERSPECTIVE
|
usr.client.perspective = EYE_PERSPECTIVE
|
||||||
@@ -80,10 +80,10 @@
|
|||||||
if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) )))
|
if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) )))
|
||||||
return
|
return
|
||||||
if (src.occupant)
|
if (src.occupant)
|
||||||
user << "\blue <B>The scanner is already occupied!</B>"
|
user << "<span class='warning'>The scanner is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if (G.affecting.abiotic())
|
if (G.affecting.abiotic())
|
||||||
user << "\blue <B>Subject cannot have abiotic items on.</B>"
|
user << "<span class='warning'>Subject cannot have abiotic items on.</span>"
|
||||||
return
|
return
|
||||||
var/mob/M = G.affecting
|
var/mob/M = G.affecting
|
||||||
if (M.client)
|
if (M.client)
|
||||||
@@ -220,10 +220,10 @@
|
|||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
return
|
return
|
||||||
if(!connected || (connected.stat & (NOPOWER|BROKEN)))
|
if(!connected || (connected.stat & (NOPOWER|BROKEN)))
|
||||||
user << "\red This console is not connected to a functioning body scanner."
|
user << "<span class='warning'>This console is not connected to a functioning body scanner.</span>"
|
||||||
return
|
return
|
||||||
if(!ishuman(connected.occupant))
|
if(!ishuman(connected.occupant))
|
||||||
user << "\red This device can only scan compatible lifeforms."
|
user << "<span class='warning'>This device can only scan compatible lifeforms.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/dat
|
var/dat
|
||||||
@@ -449,4 +449,4 @@
|
|||||||
dat += text("<font color='red'>Cataracts detected.</font><BR>")
|
dat += text("<font color='red'>Cataracts detected.</font><BR>")
|
||||||
if(occ["sdisabilities"] & NEARSIGHTED)
|
if(occ["sdisabilities"] & NEARSIGHTED)
|
||||||
dat += text("<font color='red'>Retinal misalignment detected.</font><BR>")
|
dat += text("<font color='red'>Retinal misalignment detected.</font><BR>")
|
||||||
return dat
|
return dat
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
if (user.machine==src)
|
if (user.machine==src)
|
||||||
src.attack_hand(usr)
|
src.attack_hand(usr)
|
||||||
else
|
else
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -127,4 +127,4 @@
|
|||||||
if (uses >= 0)
|
if (uses >= 0)
|
||||||
cooldown_on = 0
|
cooldown_on = 0
|
||||||
src.power_change()
|
src.power_change()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -800,9 +800,9 @@
|
|||||||
else
|
else
|
||||||
if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN))
|
if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN))
|
||||||
locked = !locked
|
locked = !locked
|
||||||
user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface."
|
user << "<span class='notice'>You [ locked ? "lock" : "unlock"] the Air Alarm interface.</span>"
|
||||||
else
|
else
|
||||||
user << "\red Access denied."
|
user << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(1)
|
if(1)
|
||||||
@@ -941,11 +941,11 @@ FIRE ALARM
|
|||||||
if (istype(W, /obj/item/device/multitool))
|
if (istype(W, /obj/item/device/multitool))
|
||||||
src.detecting = !( src.detecting )
|
src.detecting = !( src.detecting )
|
||||||
if (src.detecting)
|
if (src.detecting)
|
||||||
user.visible_message("\red [user] has reconnected [src]'s detecting unit!", "You have reconnected [src]'s detecting unit.")
|
user.visible_message("<span class='notice'>\The [user] has reconnected [src]'s detecting unit!</span>", "<span class='notice'>You have reconnected [src]'s detecting unit.</span>")
|
||||||
else
|
else
|
||||||
user.visible_message("\red [user] has disconnected [src]'s detecting unit!", "You have disconnected [src]'s detecting unit.")
|
user.visible_message("<span class='notice'>\The [user] has disconnected [src]'s detecting unit!</span>", "<span class='notice'>You have disconnected [src]'s detecting unit.</span>")
|
||||||
else if (istype(W, /obj/item/weapon/wirecutters))
|
else if (istype(W, /obj/item/weapon/wirecutters))
|
||||||
user.visible_message("\red [user] has cut the wires inside \the [src]!", "You have cut the wires inside \the [src].")
|
user.visible_message("<span class='notice'>\The [user] has cut the wires inside \the [src]!</span>", "<span class='notice'>You have cut the wires inside \the [src].</span>")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||||
buildstage = 1
|
buildstage = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -957,7 +957,7 @@ FIRE ALARM
|
|||||||
buildstage = 2
|
buildstage = 2
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "<span class='warning'>You need 5 pieces of cable to do wire \the [src].</span>"
|
user << "<span class='warning'>You need 5 pieces of cable to wire \the [src].</span>"
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/crowbar))
|
else if(istype(W, /obj/item/weapon/crowbar))
|
||||||
user << "You pry out the circuit!"
|
user << "You pry out the circuit!"
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ update_flag
|
|||||||
|
|
||||||
/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||||
if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda))
|
if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda))
|
||||||
visible_message("\red [user] hits the [src] with a [W]!")
|
visible_message("<span class='warning'>\The [user] hits \the [src] with \a [W]!</span>")
|
||||||
src.health -= W.force
|
src.health -= W.force
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
healthcheck()
|
healthcheck()
|
||||||
|
|||||||
@@ -69,10 +69,10 @@
|
|||||||
var/t = "A gas flow meter. "
|
var/t = "A gas flow meter. "
|
||||||
|
|
||||||
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead)))
|
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead)))
|
||||||
t += "\blue <B>You are too far away to read it.</B>"
|
t += "<span class='warning'>You are too far away to read it.</span>"
|
||||||
|
|
||||||
else if(stat & (NOPOWER|BROKEN))
|
else if(stat & (NOPOWER|BROKEN))
|
||||||
t += "\red <B>The display is off.</B>"
|
t += "<span class='warning'>The display is off.</span>"
|
||||||
|
|
||||||
else if(src.target)
|
else if(src.target)
|
||||||
var/datum/gas_mixture/environment = target.return_air()
|
var/datum/gas_mixture/environment = target.return_air()
|
||||||
@@ -97,11 +97,11 @@
|
|||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You begin to unfasten \the [src]..."
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] unfastens \the [src].", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"\blue You have unfastened \the [src].", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
"You hear ratchet.")
|
"You hear ratchet.")
|
||||||
new /obj/item/pipe_meter(src.loc)
|
new /obj/item/pipe_meter(src.loc)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -118,39 +118,39 @@
|
|||||||
else if (istype(W, /obj/item/weapon/wrench))
|
else if (istype(W, /obj/item/weapon/wrench))
|
||||||
if(connected_port)
|
if(connected_port)
|
||||||
disconnect()
|
disconnect()
|
||||||
user << "\blue You disconnect [name] from the port."
|
user << "<span class='notice'>You disconnect \the [src] from the port.</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
|
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
|
||||||
if(possible_port)
|
if(possible_port)
|
||||||
if(connect(possible_port))
|
if(connect(possible_port))
|
||||||
user << "\blue You connect [name] to the port."
|
user << "<span class='notice'>You connect \the [src] to the port.</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "\blue [name] failed to connect to the port."
|
user << "<span class='notice'>\The [src] failed to connect to the port.</span>"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "\blue Nothing happens."
|
user << "<span class='notice'>Nothing happens.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
else if ((istype(W, /obj/item/device/analyzer)) && Adjacent(user))
|
else if ((istype(W, /obj/item/device/analyzer)) && Adjacent(user))
|
||||||
visible_message("\red [user] has used [W] on \icon[icon]")
|
visible_message("<span class='notice'>\The [user] has used \the [W] on \the [src] \icon[icon]</span>")
|
||||||
if(air_contents)
|
if(air_contents)
|
||||||
var/pressure = air_contents.return_pressure()
|
var/pressure = air_contents.return_pressure()
|
||||||
var/total_moles = air_contents.total_moles
|
var/total_moles = air_contents.total_moles
|
||||||
|
|
||||||
user << "\blue Results of analysis of \icon[icon]"
|
user << "<span class='notice'>Results of analysis of \icon[icon]</span>"
|
||||||
if (total_moles>0)
|
if (total_moles>0)
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>"
|
||||||
for(var/g in air_contents.gas)
|
for(var/g in air_contents.gas)
|
||||||
user << "\blue [gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%"
|
user << "<span class='notice'>[gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%</span>"
|
||||||
user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C"
|
user << "<span class='notice'>Temperature: [round(air_contents.temperature-T0C)]°C</span>"
|
||||||
else
|
else
|
||||||
user << "\blue Tank is empty!"
|
user << "<span class='notice'>Tank is empty!</span>"
|
||||||
else
|
else
|
||||||
user << "\blue Tank is empty!"
|
user << "<span class='notice'>Tank is empty!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -175,15 +175,15 @@
|
|||||||
C.add_fingerprint(user)
|
C.add_fingerprint(user)
|
||||||
cell = C
|
cell = C
|
||||||
C.loc = src
|
C.loc = src
|
||||||
user.visible_message("\blue [user] opens the panel on [src] and inserts [C].", "\blue You open the panel on [src] and insert [C].")
|
user.visible_message("<span class='notice'>[user] opens the panel on [src] and inserts [C].<span class='notice'>", "<span class='notice'>You open the panel on [src] and insert [C].<span class='notice'>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
if(!cell)
|
if(!cell)
|
||||||
user << "\red There is no power cell installed."
|
user << "<span class='warning'>There is no power cell installed.<span class='notice'>"
|
||||||
return
|
return
|
||||||
|
|
||||||
user.visible_message("\blue [user] opens the panel on [src] and removes [cell].", "\blue You open the panel on [src] and remove [cell].")
|
user.visible_message("<span class='notice'>[user] opens the panel on [src] and removes [cell].<span class='notice'>", "<span class='notice'>You open the panel on [src] and remove [cell].<span class='notice'>")
|
||||||
cell.add_fingerprint(user)
|
cell.add_fingerprint(user)
|
||||||
cell.loc = src.loc
|
cell.loc = src.loc
|
||||||
cell = null
|
cell = null
|
||||||
|
|||||||
@@ -165,7 +165,7 @@
|
|||||||
name = "[name] (ID [id])"
|
name = "[name] (ID [id])"
|
||||||
|
|
||||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob)
|
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob)
|
||||||
usr << "\blue You can't directly interact with this machine. Use the scrubber control console."
|
usr << "<span class='notice'>You can't directly interact with this machine. Use the scrubber control console.</span>"
|
||||||
|
|
||||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon()
|
/obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon()
|
||||||
src.overlays = 0
|
src.overlays = 0
|
||||||
@@ -206,12 +206,12 @@
|
|||||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/wrench))
|
if(istype(I, /obj/item/weapon/wrench))
|
||||||
if(on)
|
if(on)
|
||||||
user << "\blue Turn it off first!"
|
user << "<span class='warning'>Turn \the [src] off first!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
user << "\blue You [anchored ? "wrench" : "unwrench"] \the [src]."
|
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
|
|
||||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/wrench))
|
if(istype(I, /obj/item/weapon/wrench))
|
||||||
user << "\blue The bolts are too tight for you to unscrew!"
|
user << "<span class='warning'>The bolts are too tight for you to unscrew!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -21,9 +21,9 @@
|
|||||||
if(B.feral < 0)
|
if(B.feral < 0)
|
||||||
caught_bees += B.strength
|
caught_bees += B.strength
|
||||||
qdel(B)
|
qdel(B)
|
||||||
user.visible_message("\blue [user] nets some bees.","\blue You net up some of the becalmed bees.")
|
user.visible_message("<span class='notice'>\The [user] nets some bees.</span>","<span class='notice'>You net up some of the becalmed bees.</span>")
|
||||||
else
|
else
|
||||||
user.visible_message("\red [user] swings at some bees, they don't seem to like it.","\red You swing at some bees, they don't seem to like it.")
|
user.visible_message("<span class='warning'>\The [user] swings at some bees, they don't seem to like it.</span>","<span class='warning'>You swing at some bees, they don't seem to like it.</span>")
|
||||||
B.feral = 5
|
B.feral = 5
|
||||||
B.target_mob = user
|
B.target_mob = user
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
if(health < maxhealth)
|
if(health < maxhealth)
|
||||||
if(open)
|
if(open)
|
||||||
health = min(maxhealth, health+10)
|
health = min(maxhealth, health+10)
|
||||||
user.visible_message("\red [user] repairs [src]!","\blue You repair [src]!")
|
user.visible_message("<span class='warning'>[user] repairs [src]!</span>","<span class='notice'>You repair [src]!</span>")
|
||||||
else
|
else
|
||||||
user << "<span class='notice'>Unable to repair with the maintenance panel closed.</span>"
|
user << "<span class='notice'>Unable to repair with the maintenance panel closed.</span>"
|
||||||
else
|
else
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
|
|
||||||
if(user.species.can_shred(user))
|
if(user.species.can_shred(user))
|
||||||
src.health -= rand(15,30)*brute_dam_coeff
|
src.health -= rand(15,30)*brute_dam_coeff
|
||||||
src.visible_message("\red <B>[user] has slashed [src]!</B>")
|
src.visible_message("<span class='danger'>[user] has slashed [src]!</span>")
|
||||||
playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1)
|
playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1)
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
new /obj/effect/decal/cleanable/blood/oil(src.loc)
|
new /obj/effect/decal/cleanable/blood/oil(src.loc)
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user)
|
/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user)
|
||||||
if(istype(I,/obj/item/weapon/card/emag))
|
if(istype(I,/obj/item/weapon/card/emag))
|
||||||
locked = !locked
|
locked = !locked
|
||||||
user << "\blue You [locked ? "lock" : "unlock"] the mulebot's controls!"
|
user << "<span class='notice'>You [locked ? "lock" : "unlock"] the mulebot's controls!</span>"
|
||||||
flick("mulebot-emagged", src)
|
flick("mulebot-emagged", src)
|
||||||
playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 0)
|
playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 0)
|
||||||
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
||||||
@@ -101,16 +101,16 @@
|
|||||||
updateDialog()
|
updateDialog()
|
||||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
if(locked)
|
if(locked)
|
||||||
user << "\blue The maintenance hatch cannot be opened or closed while the controls are locked."
|
user << "<span class='notice'>The maintenance hatch cannot be opened or closed while the controls are locked.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
open = !open
|
open = !open
|
||||||
if(open)
|
if(open)
|
||||||
src.visible_message("[user] opens the maintenance hatch of [src]", "\blue You open [src]'s maintenance hatch.")
|
src.visible_message("[user] opens the maintenance hatch of [src]", "<span class='notice'>You open [src]'s maintenance hatch.")
|
||||||
on = 0
|
on = 0
|
||||||
icon_state="mulebot-hatch"
|
icon_state="mulebot-hatch"
|
||||||
else
|
else
|
||||||
src.visible_message("[user] closes the maintenance hatch of [src]", "\blue You close [src]'s maintenance hatch.")
|
src.visible_message("[user] closes the maintenance hatch of [src]", "<span class='notice'>You close [src]'s maintenance hatch.")
|
||||||
icon_state = "mulebot0"
|
icon_state = "mulebot0"
|
||||||
|
|
||||||
updateDialog()
|
updateDialog()
|
||||||
@@ -118,15 +118,15 @@
|
|||||||
if (src.health < maxhealth)
|
if (src.health < maxhealth)
|
||||||
src.health = min(maxhealth, src.health+25)
|
src.health = min(maxhealth, src.health+25)
|
||||||
user.visible_message(
|
user.visible_message(
|
||||||
"\red [user] repairs [src]!",
|
"<span class='notice'>\The [user] repairs \the [src]!</span>",
|
||||||
"\blue You repair [src]!"
|
"<span class='notice'>You repair \the [src]!</span>"
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
user << "\blue [src] does not need a repair!"
|
user << "<span class='notice'>[src] does not need a repair!</span>"
|
||||||
else if(load && ismob(load)) // chance to knock off rider
|
else if(load && ismob(load)) // chance to knock off rider
|
||||||
if(prob(1+I.force * 2))
|
if(prob(1+I.force * 2))
|
||||||
unload(0)
|
unload(0)
|
||||||
user.visible_message("\red [user] knocks [load] off [src] with \the [I]!", "\red You knock [load] off [src] with \the [I]!")
|
user.visible_message("<span class='warning'>[user] knocks [load] off [src] with \the [I]!</span>", "<span class='warning'>You knock [load] off [src] with \the [I]!</span>")
|
||||||
else
|
else
|
||||||
user << "You hit [src] with \the [I] but to no effect."
|
user << "You hit [src] with \the [I] but to no effect."
|
||||||
else
|
else
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
if(prob(50) && !isnull(load))
|
if(prob(50) && !isnull(load))
|
||||||
unload(0)
|
unload(0)
|
||||||
if(prob(25))
|
if(prob(25))
|
||||||
src.visible_message("\red Something shorts out inside [src]!")
|
src.visible_message("<span class='warning'>Something shorts out inside [src]!</span>")
|
||||||
var/index = 1<< (rand(0,9))
|
var/index = 1<< (rand(0,9))
|
||||||
if(wires & index)
|
if(wires & index)
|
||||||
wires &= ~index
|
wires &= ~index
|
||||||
@@ -250,14 +250,14 @@
|
|||||||
locked = !locked
|
locked = !locked
|
||||||
updateDialog()
|
updateDialog()
|
||||||
else
|
else
|
||||||
usr << "\red Access denied."
|
usr << "<span class='warning'>Access denied.</span>"
|
||||||
return
|
return
|
||||||
if("power")
|
if("power")
|
||||||
if (src.on)
|
if (src.on)
|
||||||
turn_off()
|
turn_off()
|
||||||
else if (cell && !open)
|
else if (cell && !open)
|
||||||
if (!turn_on())
|
if (!turn_on())
|
||||||
usr << "\red You can't switch on [src]."
|
usr << "<span class='warning'>You can't switch on [src].</span>"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
cell.add_fingerprint(usr)
|
cell.add_fingerprint(usr)
|
||||||
cell = null
|
cell = null
|
||||||
|
|
||||||
usr.visible_message("\blue [usr] removes the power cell from [src].", "\blue You remove the power cell from [src].")
|
usr.visible_message("<span class='notice'>[usr] removes the power cell from [src].</span>", "<span class='notice'>You remove the power cell from [src].</span>")
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
if("cellinsert")
|
if("cellinsert")
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
C.loc = src
|
C.loc = src
|
||||||
C.add_fingerprint(usr)
|
C.add_fingerprint(usr)
|
||||||
|
|
||||||
usr.visible_message("\blue [usr] inserts a power cell into [src].", "\blue You insert the power cell into [src].")
|
usr.visible_message("<span class='notice'>[usr] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
|
|
||||||
@@ -702,9 +702,9 @@
|
|||||||
var/mob/M = obs
|
var/mob/M = obs
|
||||||
if(ismob(M))
|
if(ismob(M))
|
||||||
if(istype(M,/mob/living/silicon/robot))
|
if(istype(M,/mob/living/silicon/robot))
|
||||||
src.visible_message("\red [src] bumps into [M]!")
|
src.visible_message("<span class='warning'>[src] bumps into [M]!</span>")
|
||||||
else
|
else
|
||||||
src.visible_message("\red [src] knocks over [M]!")
|
src.visible_message("<span class='warning'>[src] knocks over [M]!</span>")
|
||||||
M.stop_pulling()
|
M.stop_pulling()
|
||||||
M.Stun(8)
|
M.Stun(8)
|
||||||
M.Weaken(5)
|
M.Weaken(5)
|
||||||
@@ -718,7 +718,7 @@
|
|||||||
// called from mob/living/carbon/human/Crossed()
|
// called from mob/living/carbon/human/Crossed()
|
||||||
// when mulebot is in the same loc
|
// when mulebot is in the same loc
|
||||||
/obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H)
|
/obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H)
|
||||||
src.visible_message("\red [src] drives over [H]!")
|
src.visible_message("<span class='warning'>[src] drives over [H]!</span>")
|
||||||
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
|
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
|
||||||
|
|
||||||
var/damage = rand(5,15)
|
var/damage = rand(5,15)
|
||||||
@@ -866,7 +866,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/bot/mulebot/explode()
|
/obj/machinery/bot/mulebot/explode()
|
||||||
src.visible_message("\red <B>[src] blows apart!</B>", 1)
|
src.visible_message("<span class='danger'>[src] blows apart!</span>", 1)
|
||||||
var/turf/Tsec = get_turf(src)
|
var/turf/Tsec = get_turf(src)
|
||||||
|
|
||||||
new /obj/item/device/assembly/prox_sensor(Tsec)
|
new /obj/item/device/assembly/prox_sensor(Tsec)
|
||||||
|
|||||||
@@ -180,13 +180,13 @@
|
|||||||
|
|
||||||
else if (istype(W, /obj/item/weapon/camera_bug))
|
else if (istype(W, /obj/item/weapon/camera_bug))
|
||||||
if (!src.can_use())
|
if (!src.can_use())
|
||||||
user << "\blue Camera non-functional"
|
user << "<span class='warning'>Camera non-functional.</span>"
|
||||||
return
|
return
|
||||||
if (src.bugged)
|
if (src.bugged)
|
||||||
user << "\blue Camera bug removed."
|
user << "<span class='notice'>Camera bug removed.</span>"
|
||||||
src.bugged = 0
|
src.bugged = 0
|
||||||
else
|
else
|
||||||
user << "\blue Camera bugged."
|
user << "<span class='notice'>Camera bugged.</span>"
|
||||||
src.bugged = 1
|
src.bugged = 1
|
||||||
|
|
||||||
else if(W.damtype == BRUTE || W.damtype == BURN) //bashing cameras
|
else if(W.damtype == BRUTE || W.damtype == BURN) //bashing cameras
|
||||||
|
|||||||
@@ -47,20 +47,20 @@
|
|||||||
|
|
||||||
loc = sanitize(loc)
|
loc = sanitize(loc)
|
||||||
if(!loc)
|
if(!loc)
|
||||||
src << "\red Must supply a location name"
|
src << "<span class='warning'>Must supply a location name</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(stored_locations.len >= max_locations)
|
if(stored_locations.len >= max_locations)
|
||||||
src << "\red Cannot store additional locations. Remove one first"
|
src << "<span class='warning'>Cannot store additional locations. Remove one first</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(loc in stored_locations)
|
if(loc in stored_locations)
|
||||||
src << "\red There is already a stored location by this name"
|
src << "<span class='warning'>There is already a stored location by this name</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/L = src.eyeobj.getLoc()
|
var/L = src.eyeobj.getLoc()
|
||||||
if (InvalidPlayerTurf(get_turf(L)))
|
if (InvalidPlayerTurf(get_turf(L)))
|
||||||
src << "\red Unable to store this location"
|
src << "<span class='warning'>Unable to store this location</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
stored_locations[loc] = L
|
stored_locations[loc] = L
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
set desc = "Returns to the selected camera location"
|
set desc = "Returns to the selected camera location"
|
||||||
|
|
||||||
if (!(loc in stored_locations))
|
if (!(loc in stored_locations))
|
||||||
src << "\red Location [loc] not found"
|
src << "<span class='warning'>Location [loc] not found</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/L = stored_locations[loc]
|
var/L = stored_locations[loc]
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
set desc = "Deletes the selected camera location"
|
set desc = "Deletes the selected camera location"
|
||||||
|
|
||||||
if (!(loc in stored_locations))
|
if (!(loc in stored_locations))
|
||||||
src << "\red Location [loc] not found"
|
src << "<span class='warning'>Location [loc] not found</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
stored_locations.Remove(loc)
|
stored_locations.Remove(loc)
|
||||||
|
|||||||
@@ -42,14 +42,14 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/weapon/cell) && anchored)
|
if(istype(W, /obj/item/weapon/cell) && anchored)
|
||||||
if(charging)
|
if(charging)
|
||||||
user << "\red There is already a cell in the charger."
|
user << "<span class='warning'>There is already a cell in the charger.</span>"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/area/a = loc.loc // Gets our locations location, like a dream within a dream
|
var/area/a = loc.loc // Gets our locations location, like a dream within a dream
|
||||||
if(!isarea(a))
|
if(!isarea(a))
|
||||||
return
|
return
|
||||||
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
|
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
|
||||||
user << "\red The [name] blinks red as you try to insert the cell!"
|
user << "<span class='warning'>The [name] blinks red as you try to insert the cell!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
else if(istype(W, /obj/item/weapon/wrench))
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
if(charging)
|
if(charging)
|
||||||
user << "\red Remove the cell first!"
|
user << "<span class='warning'>Remove the cell first!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
user << "\blue You wrench the frame into place."
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
anchored = 1
|
anchored = 1
|
||||||
state = 1
|
state = 1
|
||||||
if(istype(P, /obj/item/weapon/weldingtool))
|
if(istype(P, /obj/item/weapon/weldingtool))
|
||||||
@@ -28,31 +28,31 @@
|
|||||||
playsound(loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(loc, 'sound/items/Welder.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
if(!src || !WT.remove_fuel(0, user)) return
|
if(!src || !WT.remove_fuel(0, user)) return
|
||||||
user << "\blue You deconstruct the frame."
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/plasteel( loc, 4)
|
new /obj/item/stack/material/plasteel( loc, 4)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
user << "\blue You unfasten the frame."
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
anchored = 0
|
anchored = 0
|
||||||
state = 0
|
state = 0
|
||||||
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
||||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
user << "\blue You place the circuit board inside the frame."
|
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
|
||||||
icon_state = "1"
|
icon_state = "1"
|
||||||
circuit = P
|
circuit = P
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
P.loc = src
|
P.loc = src
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You screw the circuit board into place."
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
icon_state = "2"
|
icon_state = "2"
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
||||||
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
user << "\blue You remove the circuit board."
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
icon_state = "0"
|
icon_state = "0"
|
||||||
circuit.loc = loc
|
circuit.loc = loc
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You unfasten the circuit board."
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
icon_state = "1"
|
icon_state = "1"
|
||||||
if(istype(P, /obj/item/stack/cable_coil))
|
if(istype(P, /obj/item/stack/cable_coil))
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
user << "Get that brain out of there first"
|
user << "Get that brain out of there first"
|
||||||
else
|
else
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||||
user << "\blue You remove the cables."
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
icon_state = "2"
|
icon_state = "2"
|
||||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
|
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
|
||||||
@@ -126,14 +126,14 @@
|
|||||||
if(istype(P, /obj/item/device/mmi))
|
if(istype(P, /obj/item/device/mmi))
|
||||||
var/obj/item/device/mmi/M = P
|
var/obj/item/device/mmi/M = P
|
||||||
if(!M.brainmob)
|
if(!M.brainmob)
|
||||||
user << "\red Sticking an empty [P] into the frame would sort of defeat the purpose."
|
user << "<span class='warning'>Sticking an empty [P] into the frame would sort of defeat the purpose.</span>"
|
||||||
return
|
return
|
||||||
if(M.brainmob.stat == 2)
|
if(M.brainmob.stat == 2)
|
||||||
user << "\red Sticking a dead [P] into the frame would sort of defeat the purpose."
|
user << "<span class='warning'>Sticking a dead [P] into the frame would sort of defeat the purpose.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(jobban_isbanned(M.brainmob, "AI"))
|
if(jobban_isbanned(M.brainmob, "AI"))
|
||||||
user << "\red This [P] does not seem to fit."
|
user << "<span class='warning'>This [P] does not seem to fit.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(M.brainmob.mind)
|
if(M.brainmob.mind)
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
|
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && brain)
|
if(istype(P, /obj/item/weapon/crowbar) && brain)
|
||||||
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
user << "\blue You remove the brain."
|
user << "<span class='notice'>You remove the brain.</span>"
|
||||||
brain.loc = loc
|
brain.loc = loc
|
||||||
brain = null
|
brain = null
|
||||||
icon_state = "3"
|
icon_state = "3"
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
if(4)
|
if(4)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
if(istype(P, /obj/item/weapon/crowbar))
|
||||||
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
user << "\blue You remove the glass panel."
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
state = 3
|
state = 3
|
||||||
if (brain)
|
if (brain)
|
||||||
icon_state = "3b"
|
icon_state = "3b"
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
|
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You connect the monitor."
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
if(!brain)
|
if(!brain)
|
||||||
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
|
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
|
||||||
var/obj/structure/AIcore/deactivated/D = new(loc)
|
var/obj/structure/AIcore/deactivated/D = new(loc)
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
transfer.aiRadio.disabledAi = 0
|
transfer.aiRadio.disabledAi = 0
|
||||||
transfer.loc = get_turf(src)
|
transfer.loc = get_turf(src)
|
||||||
transfer.cancel_camera()
|
transfer.cancel_camera()
|
||||||
user << "\blue <b>Transfer successful</b>: \black [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped."
|
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped."
|
||||||
transfer << "You have been uploaded to a stationary terminal. Remote device connection restored."
|
transfer << "You have been uploaded to a stationary terminal. Remote device connection restored."
|
||||||
|
|
||||||
if(card)
|
if(card)
|
||||||
@@ -224,23 +224,23 @@
|
|||||||
if(transfer)
|
if(transfer)
|
||||||
load_ai(transfer,card,user)
|
load_ai(transfer,card,user)
|
||||||
else
|
else
|
||||||
user << "\red <b>ERROR</b>: \black Unable to locate artificial intelligence."
|
user << "<span class='danger'>ERROR:</span> Unable to locate artificial intelligence."
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/wrench))
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
if(anchored)
|
if(anchored)
|
||||||
user.visible_message("\blue \The [user] starts to unbolt \the [src] from the plating...")
|
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
|
||||||
if(!do_after(user,40))
|
if(!do_after(user,40))
|
||||||
user.visible_message("\blue \The [user] decides not to unbolt \the [src].")
|
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
|
||||||
return
|
return
|
||||||
user.visible_message("\blue \The [user] finishes unfastening \the [src]!")
|
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
|
||||||
anchored = 0
|
anchored = 0
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user.visible_message("\blue \The [user] starts to bolt \the [src] to the plating...")
|
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
|
||||||
if(!do_after(user,40))
|
if(!do_after(user,40))
|
||||||
user.visible_message("\blue \The [user] decides not to bolt \the [src].")
|
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
|
||||||
return
|
return
|
||||||
user.visible_message("\blue \The [user] finishes fastening down \the [src]!")
|
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
|
||||||
anchored = 1
|
anchored = 1
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
// Transfer over the AI.
|
// Transfer over the AI.
|
||||||
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
|
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
|
||||||
user << "\blue <b>Transfer successful</b>: \black [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
|
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
|
||||||
|
|
||||||
transfer.loc = src
|
transfer.loc = src
|
||||||
transfer.cancel_camera()
|
transfer.cancel_camera()
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
if(istype(comp_ai))
|
if(istype(comp_ai))
|
||||||
if(active)
|
if(active)
|
||||||
user << "\red <b>ERROR</b>: \black Reconstruction in progress."
|
user << "<span class='danger'>ERROR:</span> Reconstruction in progress."
|
||||||
return
|
return
|
||||||
card.grab_ai(comp_ai, user)
|
card.grab_ai(comp_ai, user)
|
||||||
if(!(locate(/mob/living/silicon/ai) in src)) occupant = null
|
if(!(locate(/mob/living/silicon/ai) in src)) occupant = null
|
||||||
|
|||||||
@@ -33,8 +33,8 @@
|
|||||||
|
|
||||||
/obj/machinery/computer/atmoscontrol/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
/obj/machinery/computer/atmoscontrol/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
|
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
|
||||||
user.visible_message("\red \The [user] swipes \a [I] through \the [src], causing the screen to flash!",\
|
user.visible_message("<span class='warning'>\The [user] swipes \a [I] through \the [src], causing the screen to flash!</span>",\
|
||||||
"\red You swipe your [I] through \the [src], the screen flashing as you gain full control.",\
|
"<span class='warning'>You swipe your [I] through \the [src], the screen flashing as you gain full control.</span>",\
|
||||||
"You hear the swipe of a card through a reader, and an electronic warble.")
|
"You hear the swipe of a card through a reader, and an electronic warble.")
|
||||||
atmos_control.emagged = 1
|
atmos_control.emagged = 1
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
user << "\blue You wrench the frame into place."
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
src.anchored = 1
|
src.anchored = 1
|
||||||
src.state = 1
|
src.state = 1
|
||||||
if(istype(P, /obj/item/weapon/weldingtool))
|
if(istype(P, /obj/item/weapon/weldingtool))
|
||||||
@@ -27,35 +27,35 @@
|
|||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
user << "\blue You deconstruct the frame."
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/steel( src.loc, 5 )
|
new /obj/item/stack/material/steel( src.loc, 5 )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
user << "\blue You unfasten the frame."
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
src.state = 0
|
src.state = 0
|
||||||
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
||||||
var/obj/item/weapon/circuitboard/B = P
|
var/obj/item/weapon/circuitboard/B = P
|
||||||
if(B.board_type == "computer")
|
if(B.board_type == "computer")
|
||||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
user << "\blue You place the circuit board inside the frame."
|
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
|
||||||
src.icon_state = "1"
|
src.icon_state = "1"
|
||||||
src.circuit = P
|
src.circuit = P
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
P.loc = src
|
P.loc = src
|
||||||
else
|
else
|
||||||
user << "\red This frame does not accept circuit boards of this type!"
|
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You screw the circuit board into place."
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
user << "\blue You remove the circuit board."
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "0"
|
src.icon_state = "0"
|
||||||
circuit.loc = src.loc
|
circuit.loc = src.loc
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You unfasten the circuit board."
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "1"
|
src.icon_state = "1"
|
||||||
if(istype(P, /obj/item/stack/cable_coil))
|
if(istype(P, /obj/item/stack/cable_coil))
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
if(3)
|
if(3)
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
if(istype(P, /obj/item/weapon/wirecutters))
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||||
user << "\blue You remove the cables."
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
|
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
|
||||||
@@ -102,13 +102,13 @@
|
|||||||
if(4)
|
if(4)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
if(istype(P, /obj/item/weapon/crowbar))
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
user << "\blue You remove the glass panel."
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
src.state = 3
|
src.state = 3
|
||||||
src.icon_state = "3"
|
src.icon_state = "3"
|
||||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
user << "\blue You connect the monitor."
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
var/B = new src.circuit.build_path ( src.loc )
|
var/B = new src.circuit.build_path ( src.loc )
|
||||||
src.circuit.construct(B)
|
src.circuit.construct(B)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
|
|
||||||
attack_hand(var/mob/user as mob)
|
attack_hand(var/mob/user as mob)
|
||||||
if (src.z > 6)
|
if (src.z > 6)
|
||||||
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
user << "<span class='danger'>Unable to establish a connection:</span> You're too far away from the station!"
|
||||||
return
|
return
|
||||||
if(stat & (NOPOWER|BROKEN)) return
|
if(stat & (NOPOWER|BROKEN)) return
|
||||||
|
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
authorised = 1
|
authorised = 1
|
||||||
user << "\blue You authorised the circuit network!"
|
user << "<span class='notice'>You authorised the circuit network!</span>"
|
||||||
updateDialog()
|
updateDialog()
|
||||||
else
|
else
|
||||||
user << "\blue You must select a camera network circuit!"
|
user << "<span class='warning'>You must select a camera network circuit!</span>"
|
||||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
secured = !secured
|
secured = !secured
|
||||||
user.visible_message("\blue The [src] can [secured ? "no longer" : "now"] be modified.")
|
user.visible_message("<span class='notice'>The [src] can [secured ? "no longer" : "now"] be modified.</span>")
|
||||||
updateBuildPath()
|
updateBuildPath()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -114,14 +114,14 @@
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
authorised = 1
|
authorised = 1
|
||||||
usr << "\blue You authorised the circuit network!"
|
usr << "<span class='notice'>You authorised the circuit network!</span>"
|
||||||
updateDialog()
|
updateDialog()
|
||||||
else
|
else
|
||||||
usr << "\blue You must select a camera network circuit!"
|
usr << "<span class='warning'>You must select a camera network circuit!</span>"
|
||||||
else if( href_list["removeauth"] )
|
else if( href_list["removeauth"] )
|
||||||
authorised = 0
|
authorised = 0
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
updateDialog()
|
updateDialog()
|
||||||
if(istype(src.loc,/mob))
|
if(istype(src.loc,/mob))
|
||||||
attack_self(src.loc)
|
attack_self(src.loc)
|
||||||
|
|||||||
@@ -208,7 +208,7 @@
|
|||||||
jobdatum = J
|
jobdatum = J
|
||||||
break
|
break
|
||||||
if(!jobdatum)
|
if(!jobdatum)
|
||||||
usr << "\red No log exists for this job: [t1]"
|
usr << "<span class='warning'>No log exists for this job: [t1]</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
access = jobdatum.get_access()
|
access = jobdatum.get_access()
|
||||||
|
|||||||
@@ -124,12 +124,12 @@
|
|||||||
for (var/obj/C in src)
|
for (var/obj/C in src)
|
||||||
C.loc = src.loc
|
C.loc = src.loc
|
||||||
if (src.stat & BROKEN)
|
if (src.stat & BROKEN)
|
||||||
user << "\blue The broken glass falls out."
|
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||||
new /obj/item/weapon/material/shard( src.loc )
|
new /obj/item/weapon/material/shard( src.loc )
|
||||||
A.state = 3
|
A.state = 3
|
||||||
A.icon_state = "3"
|
A.icon_state = "3"
|
||||||
else
|
else
|
||||||
user << "\blue You disconnect the monitor."
|
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||||
A.state = 4
|
A.state = 4
|
||||||
A.icon_state = "4"
|
A.icon_state = "4"
|
||||||
M.deconstruct(src)
|
M.deconstruct(src)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user