mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge resolution, compile fixes with outdated glass paths/map.
This commit is contained in:
@@ -183,12 +183,16 @@ var/list/alldepartments = list("Central Command")
|
|||||||
|
|
||||||
var/msg = "\blue <b><font color='#006100'>CENTCOMM FAX: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;CentcommFaxReply=\ref[Sender];originfax=\ref[originfax]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
|
var/msg = "\blue <b><font color='#006100'>CENTCOMM FAX: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;CentcommFaxReply=\ref[Sender];originfax=\ref[originfax]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
|
||||||
|
|
||||||
admins << msg
|
for(var/client/C in admins)
|
||||||
|
if(R_ADMIN & C.holder.rights)
|
||||||
|
C << msg
|
||||||
|
|
||||||
/proc/Solgov_fax(var/originfax, var/sent, var/sentname, var/mob/Sender)
|
/proc/Solgov_fax(var/originfax, var/sent, var/sentname, var/mob/Sender)
|
||||||
var/msg = "\blue <b><font color='#1F66A0'>SOL GOVERNMENT FAX: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;SolGovFaxReply=\ref[Sender];originfax=\ref[originfax]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
|
var/msg = "\blue <b><font color='#1F66A0'>SOL GOVERNMENT FAX: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;SolGovFaxReply=\ref[Sender];originfax=\ref[originfax]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
|
||||||
|
|
||||||
admins << msg
|
for(var/client/C in admins)
|
||||||
|
if(R_ADMIN & C.holder.rights)
|
||||||
|
C << msg
|
||||||
|
|
||||||
|
|
||||||
proc/SendFax(var/sent, var/sentname, var/mob/Sender, var/dpt)
|
proc/SendFax(var/sent, var/sentname, var/mob/Sender, var/dpt)
|
||||||
|
|||||||
@@ -290,9 +290,9 @@ datum/controller/vote
|
|||||||
var/admin = 0
|
var/admin = 0
|
||||||
var/trialmin = 0
|
var/trialmin = 0
|
||||||
if(C.holder)
|
if(C.holder)
|
||||||
admin = 1
|
|
||||||
if(C.holder.rights & R_ADMIN)
|
if(C.holder.rights & R_ADMIN)
|
||||||
trialmin = 1
|
admin = 1
|
||||||
|
trialmin = 1 // don't know why we use both of these it's really weird, but I'm 2 lasy to refactor this all to use just admin.
|
||||||
voting |= C
|
voting |= C
|
||||||
|
|
||||||
. = "<html><head><title>Voting Panel</title></head><body>"
|
. = "<html><head><title>Voting Panel</title></head><body>"
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
|
|
||||||
/datum/autolathe/recipe/rglass
|
/datum/autolathe/recipe/rglass
|
||||||
name = "reinforced glass sheets"
|
name = "reinforced glass sheets"
|
||||||
path = /obj/item/stack/sheet/rglass
|
path = /obj/item/stack/sheet/glass/reinforced
|
||||||
category = "General"
|
category = "General"
|
||||||
is_stack = 1
|
is_stack = 1
|
||||||
|
|
||||||
|
|||||||
@@ -87,8 +87,8 @@
|
|||||||
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 )
|
||||||
A.amount = 5
|
A.amount = 5
|
||||||
|
|
||||||
if(istype(P, /obj/item/stack/sheet/rglass))
|
if(istype(P, /obj/item/stack/sheet/glass/reinforced))
|
||||||
var/obj/item/stack/sheet/rglass/RG = P
|
var/obj/item/stack/sheet/glass/reinforced/RG = P
|
||||||
if (RG.get_amount() < 2)
|
if (RG.get_amount() < 2)
|
||||||
user << "<span class='warning'>You need two sheets of glass to put in the glass panel.</span>"
|
user << "<span class='warning'>You need two sheets of glass to put in the glass panel.</span>"
|
||||||
return
|
return
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
icon_state = "3b"
|
icon_state = "3b"
|
||||||
else
|
else
|
||||||
icon_state = "3"
|
icon_state = "3"
|
||||||
new /obj/item/stack/sheet/rglass( loc, 2 )
|
new /obj/item/stack/sheet/glass/reinforced( loc, 2 )
|
||||||
return
|
return
|
||||||
|
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
|
|||||||
@@ -135,23 +135,6 @@
|
|||||||
A.ai_actual_track(target)
|
A.ai_actual_track(target)
|
||||||
return
|
return
|
||||||
|
|
||||||
else if (href_list["faketrack"])
|
|
||||||
var/mob/target = locate(href_list["track"])
|
|
||||||
var/mob/living/silicon/ai/A = locate(href_list["track2"])
|
|
||||||
if(A && target)
|
|
||||||
|
|
||||||
A:cameraFollow = target
|
|
||||||
A << text("Now tracking [] on camera.", target.name)
|
|
||||||
if (usr.machine == null)
|
|
||||||
usr.machine = usr
|
|
||||||
|
|
||||||
while (usr:cameraFollow == target)
|
|
||||||
usr << "Target is not on or near any active cameras on the station. We'll check again in 5 seconds (unless you use the cancel-camera verb)."
|
|
||||||
sleep(40)
|
|
||||||
continue
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
else if (href_list["freq"])
|
else if (href_list["freq"])
|
||||||
var/new_frequency = (frequency + text2num(href_list["freq"]))
|
var/new_frequency = (frequency + text2num(href_list["freq"]))
|
||||||
if (!freerange || (frequency < 1200 || frequency > 1600))
|
if (!freerange || (frequency < 1200 || frequency > 1600))
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
matter = list("glass" = 3750)
|
matter = list("glass" = 3750)
|
||||||
origin_tech = "materials=1"
|
origin_tech = "materials=1"
|
||||||
var/created_window = /obj/structure/window/basic
|
var/created_window = /obj/structure/window/basic
|
||||||
|
var/is_reinforced = 0
|
||||||
|
var/list/construction_options = list("One Direction", "Full Window")
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/cyborg
|
/obj/item/stack/sheet/glass/cyborg
|
||||||
name = "glass"
|
name = "glass"
|
||||||
@@ -32,19 +34,24 @@
|
|||||||
|
|
||||||
/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user)
|
/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user)
|
||||||
..()
|
..()
|
||||||
if(istype(W,/obj/item/stack/cable_coil))
|
if(!is_reinforced)
|
||||||
var/obj/item/stack/cable_coil/CC = W
|
if(istype(W,/obj/item/stack/cable_coil))
|
||||||
if (get_amount() < 1 || CC.get_amount() < 5)
|
var/obj/item/stack/cable_coil/CC = W
|
||||||
user << "<span class='warning>You need five lengths of coil and one sheet of glass to make wired glass.</span>"
|
if (get_amount() < 1 || CC.get_amount() < 5)
|
||||||
return
|
user << "<span class='warning>You need five lengths of coil and one sheet of glass to make wired glass.</span>"
|
||||||
CC.use(5)
|
return
|
||||||
use(1)
|
|
||||||
user << "<span class='notice'>You attach wire to the [name].</span>"
|
CC.use(5)
|
||||||
new /obj/item/stack/light_w(user.loc)
|
use(1)
|
||||||
else if(istype(W, /obj/item/stack/rods))
|
user << "<span class='notice'>You attach wire to the [name].</span>"
|
||||||
var/obj/item/stack/rods/V = W
|
new /obj/item/stack/light_w(user.loc)
|
||||||
if (V.get_amount() >= 1 && get_amount() >= 1)
|
else if(istype(W, /obj/item/stack/rods))
|
||||||
var/obj/item/stack/sheet/rglass/RG = new (user.loc)
|
var/obj/item/stack/rods/V = W
|
||||||
|
if (V.get_amount() < 1 || get_amount() < 1)
|
||||||
|
user << "<span class='warning'>You need one rod and one sheet of glass to make reinforced glass.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
var/obj/item/stack/sheet/glass/reinforced/RG = new (user.loc)
|
||||||
RG.add_fingerprint(user)
|
RG.add_fingerprint(user)
|
||||||
RG.add_to_stacks(user)
|
RG.add_to_stacks(user)
|
||||||
var/obj/item/stack/sheet/glass/G = src
|
var/obj/item/stack/sheet/glass/G = src
|
||||||
@@ -54,20 +61,15 @@
|
|||||||
G.use(1)
|
G.use(1)
|
||||||
if (!G && replace)
|
if (!G && replace)
|
||||||
user.put_in_hands(RG)
|
user.put_in_hands(RG)
|
||||||
else
|
|
||||||
user << "<span class='warning'>You need one rod and one sheet of glass to make reinforced glass.</span>"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
return ..()
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/proc/construct_window(mob/user as mob)
|
/obj/item/stack/sheet/glass/proc/construct_window(mob/user as mob)
|
||||||
if(!user || !src) return 0
|
if(!user || !src) return 0
|
||||||
if(!istype(user.loc,/turf)) return 0
|
if(!istype(user.loc,/turf)) return 0
|
||||||
if(!user.IsAdvancedToolUser())
|
if(!user.IsAdvancedToolUser())
|
||||||
return 0
|
return 0
|
||||||
var/title = "Sheet-Glass"
|
var/title = "Sheet-[name]"
|
||||||
title += " ([src.amount] sheet\s left)"
|
title += " ([src.amount] sheet\s left)"
|
||||||
switch(alert(title, "Would you like full tile glass or one direction?", "One Direction", "Full Window", "Cancel", null))
|
switch(input(title, "What would you like to construct?") as null|anything in construction_options)
|
||||||
if("One Direction")
|
if("One Direction")
|
||||||
if(!src) return 1
|
if(!src) return 1
|
||||||
if(src.loc != user) return 1
|
if(src.loc != user) return 1
|
||||||
@@ -80,7 +82,7 @@
|
|||||||
user << "\red There are too many windows in this location."
|
user << "\red There are too many windows in this location."
|
||||||
return 1
|
return 1
|
||||||
directions-=win.dir
|
directions-=win.dir
|
||||||
if(!(win.ini_dir in cardinal))
|
if(!(win.dir in cardinal))
|
||||||
user << "\red Can't let you do that."
|
user << "\red Can't let you do that."
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -94,112 +96,23 @@
|
|||||||
if(!found)
|
if(!found)
|
||||||
dir_to_set = direction
|
dir_to_set = direction
|
||||||
break
|
break
|
||||||
var/obj/structure/window/W
|
new created_window( user.loc, dir_to_set, 1 )
|
||||||
W = new created_window( user.loc, 0 )
|
|
||||||
W.dir = dir_to_set
|
|
||||||
W.ini_dir = W.dir
|
|
||||||
W.anchored = 0
|
|
||||||
src.use(1)
|
src.use(1)
|
||||||
if("Full Window")
|
if("Full Window")
|
||||||
if(!src) return 1
|
if(!src) return 1
|
||||||
if(src.loc != user) return 1
|
if(src.loc != user) return 1
|
||||||
if(src.amount < 2)
|
if(src.amount < 4)
|
||||||
user << "\red You need more glass to do that."
|
user << "\red You need more glass to do that."
|
||||||
return 1
|
return 1
|
||||||
if(locate(/obj/structure/window) in user.loc)
|
if(locate(/obj/structure/window) in user.loc)
|
||||||
user << "\red There is a window in the way."
|
user << "\red There is a window in the way."
|
||||||
return 1
|
return 1
|
||||||
var/obj/structure/window/W
|
new created_window( user.loc, SOUTHWEST, 1 )
|
||||||
W = new created_window( user.loc, 0 )
|
src.use(4)
|
||||||
W.dir = SOUTHWEST
|
|
||||||
W.ini_dir = SOUTHWEST
|
|
||||||
W.anchored = 0
|
|
||||||
src.use(2)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reinforced glass sheets
|
|
||||||
*/
|
|
||||||
/obj/item/stack/sheet/rglass
|
|
||||||
name = "reinforced glass"
|
|
||||||
desc = "Glass which seems to have rods or something stuck in them."
|
|
||||||
singular_name = "reinforced glass sheet"
|
|
||||||
icon_state = "sheet-rglass"
|
|
||||||
|
|
||||||
matter = list("metal" = 1875,"glass" = 3750)
|
|
||||||
|
|
||||||
origin_tech = "materials=2"
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/rglass/cyborg
|
|
||||||
name = "reinforced glass"
|
|
||||||
desc = "Glass which seems to have rods or something stuck in them."
|
|
||||||
singular_name = "reinforced glass sheet"
|
|
||||||
icon_state = "sheet-rglass"
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/rglass/attack_self(mob/user as mob)
|
|
||||||
construct_window(user)
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/rglass/proc/construct_window(mob/user as mob)
|
|
||||||
if(!user || !src) return 0
|
|
||||||
if(!istype(user.loc,/turf)) return 0
|
|
||||||
if(!user.IsAdvancedToolUser())
|
|
||||||
return 0
|
|
||||||
var/title = "Sheet Reinf. Glass"
|
|
||||||
title += " ([src.amount] sheet\s left)"
|
|
||||||
switch(input(title, "Would you like full tile glass a one direction glass pane or a windoor?") in list("One Direction", "Full Window", "Windoor", "Cancel"))
|
|
||||||
if("One Direction")
|
|
||||||
if(!src) return 1
|
|
||||||
if(src.loc != user) return 1
|
|
||||||
var/list/directions = new/list(cardinal)
|
|
||||||
var/i = 0
|
|
||||||
for (var/obj/structure/window/win in user.loc)
|
|
||||||
i++
|
|
||||||
if(i >= 4)
|
|
||||||
user << "\red There are too many windows in this location."
|
|
||||||
return 1
|
|
||||||
directions-=win.dir
|
|
||||||
if(!(win.ini_dir in cardinal))
|
|
||||||
user << "\red Can't let you do that."
|
|
||||||
return 1
|
|
||||||
|
|
||||||
//Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc.
|
|
||||||
var/dir_to_set = 2
|
|
||||||
for(var/direction in list( user.dir, turn(user.dir,90), turn(user.dir,180), turn(user.dir,270) ))
|
|
||||||
var/found = 0
|
|
||||||
for(var/obj/structure/window/WT in user.loc)
|
|
||||||
if(WT.dir == direction)
|
|
||||||
found = 1
|
|
||||||
if(!found)
|
|
||||||
dir_to_set = direction
|
|
||||||
break
|
|
||||||
|
|
||||||
var/obj/structure/window/W
|
|
||||||
W = new /obj/structure/window/reinforced( user.loc, 1 )
|
|
||||||
W.state = 0
|
|
||||||
W.dir = dir_to_set
|
|
||||||
W.ini_dir = W.dir
|
|
||||||
W.anchored = 0
|
|
||||||
src.use(1)
|
|
||||||
|
|
||||||
if("Full Window")
|
|
||||||
if(!src) return 1
|
|
||||||
if(src.loc != user) return 1
|
|
||||||
if(src.amount < 2)
|
|
||||||
user << "\red You need more glass to do that."
|
|
||||||
return 1
|
|
||||||
if(locate(/obj/structure/window) in user.loc)
|
|
||||||
user << "\red There is a window in the way."
|
|
||||||
return 1
|
|
||||||
var/obj/structure/window/W
|
|
||||||
W = new /obj/structure/window/reinforced( user.loc, 1 )
|
|
||||||
W.state = 0
|
|
||||||
W.dir = SOUTHWEST
|
|
||||||
W.ini_dir = SOUTHWEST
|
|
||||||
W.anchored = 0
|
|
||||||
src.use(2)
|
|
||||||
|
|
||||||
if("Windoor")
|
if("Windoor")
|
||||||
|
if(!is_reinforced) return 1
|
||||||
|
|
||||||
|
|
||||||
if(!src || src.loc != user) return 1
|
if(!src || src.loc != user) return 1
|
||||||
|
|
||||||
if(isturf(user.loc) && locate(/obj/structure/windoor_assembly/, user.loc))
|
if(isturf(user.loc) && locate(/obj/structure/windoor_assembly/, user.loc))
|
||||||
@@ -214,31 +127,33 @@
|
|||||||
user << "\red You need more glass to do that."
|
user << "\red You need more glass to do that."
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
var/obj/structure/windoor_assembly/WD
|
new /obj/structure/windoor_assembly(user.loc, user.dir, 1)
|
||||||
WD = new /obj/structure/windoor_assembly(user.loc)
|
|
||||||
WD.state = "01"
|
|
||||||
WD.anchored = 0
|
|
||||||
src.use(5)
|
src.use(5)
|
||||||
switch(user.dir)
|
|
||||||
if(SOUTH)
|
|
||||||
WD.dir = SOUTH
|
|
||||||
WD.ini_dir = SOUTH
|
|
||||||
if(EAST)
|
|
||||||
WD.dir = EAST
|
|
||||||
WD.ini_dir = EAST
|
|
||||||
if(WEST)
|
|
||||||
WD.dir = WEST
|
|
||||||
WD.ini_dir = WEST
|
|
||||||
else//If the user is facing northeast. northwest, southeast, southwest or north, default to north
|
|
||||||
WD.dir = NORTH
|
|
||||||
WD.ini_dir = NORTH
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reinforced glass sheets
|
||||||
|
*/
|
||||||
|
/obj/item/stack/sheet/glass/reinforced
|
||||||
|
name = "reinforced glass"
|
||||||
|
desc = "Glass which has been reinforced with metal rods."
|
||||||
|
singular_name = "reinforced glass sheet"
|
||||||
|
icon_state = "sheet-rglass"
|
||||||
|
|
||||||
|
matter = list("metal" = 1875,"glass" = 3750)
|
||||||
|
origin_tech = "materials=2"
|
||||||
|
|
||||||
|
created_window = /obj/structure/window/reinforced
|
||||||
|
is_reinforced = 1
|
||||||
|
construction_options = list("One Direction", "Full Window", "Windoor")
|
||||||
|
|
||||||
|
/obj/item/stack/sheet/glass/reinforced/cyborg
|
||||||
|
name = "reinforced glass"
|
||||||
|
desc = "Glass which has been reinforced with metal rods."
|
||||||
|
singular_name = "reinforced glass sheet"
|
||||||
|
icon_state = "sheet-rglass"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Phoron Glass sheets
|
* Phoron Glass sheets
|
||||||
@@ -252,9 +167,6 @@
|
|||||||
origin_tech = "materials=3;phorontech=2"
|
origin_tech = "materials=3;phorontech=2"
|
||||||
created_window = /obj/structure/window/phoronbasic
|
created_window = /obj/structure/window/phoronbasic
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/phoronglass/attack_self(mob/user as mob)
|
|
||||||
construct_window(user)
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/phoronglass/attackby(obj/item/W, mob/user)
|
/obj/item/stack/sheet/glass/phoronglass/attackby(obj/item/W, mob/user)
|
||||||
..()
|
..()
|
||||||
if( istype(W, /obj/item/stack/rods) )
|
if( istype(W, /obj/item/stack/rods) )
|
||||||
@@ -277,13 +189,11 @@
|
|||||||
*/
|
*/
|
||||||
/obj/item/stack/sheet/glass/phoronrglass
|
/obj/item/stack/sheet/glass/phoronrglass
|
||||||
name = "reinforced phoron glass"
|
name = "reinforced phoron glass"
|
||||||
desc = "Phoron glass which seems to have rods or something stuck in them."
|
desc = "Phoron glass which has been reinforced with metal rods."
|
||||||
singular_name = "reinforced phoron glass sheet"
|
singular_name = "reinforced phoron glass sheet"
|
||||||
icon_state = "sheet-phoronrglass"
|
icon_state = "sheet-phoronrglass"
|
||||||
matter = list("glass" = 7500,"metal" = 1875)
|
matter = list("glass" = 7500,"metal" = 1875)
|
||||||
|
|
||||||
origin_tech = "materials=4;phorontech=2"
|
origin_tech = "materials=4;phorontech=2"
|
||||||
created_window = /obj/structure/window/phoronreinforced
|
created_window = /obj/structure/window/phoronreinforced
|
||||||
|
is_reinforced = 1
|
||||||
/obj/item/stack/sheet/glass/phoronrglass/attack_self(mob/user as mob)
|
|
||||||
construct_window(user)
|
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ obj/structure/door_assembly
|
|||||||
if(do_after(user, 40))
|
if(do_after(user, 40))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
user << "\blue You welded the glass panel out!"
|
user << "\blue You welded the glass panel out!"
|
||||||
new /obj/item/stack/sheet/rglass(src.loc)
|
new /obj/item/stack/sheet/glass/reinforced(src.loc)
|
||||||
glass = 0
|
glass = 0
|
||||||
else if(!anchored)
|
else if(!anchored)
|
||||||
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
||||||
@@ -239,7 +239,7 @@ obj/structure/door_assembly
|
|||||||
var/obj/item/stack/sheet/S = W
|
var/obj/item/stack/sheet/S = W
|
||||||
if (S)
|
if (S)
|
||||||
if (S.get_amount() >= 1)
|
if (S.get_amount() >= 1)
|
||||||
if(istype(S, /obj/item/stack/sheet/rglass))
|
if(istype(S, /obj/item/stack/sheet/glass/reinforced))
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
||||||
user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.")
|
user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.")
|
||||||
if(do_after(user, 40) && !glass)
|
if(do_after(user, 40) && !glass)
|
||||||
|
|||||||
@@ -85,8 +85,8 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
//window placing begin
|
//window placing begin
|
||||||
else if(istype(W,/obj/item/stack/sheet/rglass) || istype(W,/obj/item/stack/sheet/glass))
|
else if(istype(W,/obj/item/stack/sheet/glass))
|
||||||
var/obj/item/stack/sheet/ST = W
|
var/obj/item/stack/sheet/glass/ST = W
|
||||||
var/dir_to_set = 1
|
var/dir_to_set = 1
|
||||||
if(loc == user.loc)
|
if(loc == user.loc)
|
||||||
dir_to_set = user.dir
|
dir_to_set = user.dir
|
||||||
@@ -115,16 +115,10 @@
|
|||||||
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
|
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
|
||||||
user << "<span class='notice'>There is already a window facing this way there.</span>"
|
user << "<span class='notice'>There is already a window facing this way there.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
var/wtype = ST.created_window
|
||||||
if (ST.use(1))
|
if (ST.use(1))
|
||||||
var/obj/structure/window/WD
|
var/obj/structure/window/WD = new wtype(loc, dir_to_set, 1)
|
||||||
if(istype(W, /obj/item/stack/sheet/rglass))
|
|
||||||
WD = new/obj/structure/window/reinforced(loc) //reinforced window
|
|
||||||
else
|
|
||||||
WD = new/obj/structure/window/basic(loc) //normal window
|
|
||||||
WD.dir = dir_to_set
|
|
||||||
WD.ini_dir = dir_to_set
|
|
||||||
WD.anchored = 0
|
|
||||||
WD.state = 0
|
|
||||||
user << "<span class='notice'>You place the [WD] on [src].</span>"
|
user << "<span class='notice'>You place the [WD] on [src].</span>"
|
||||||
WD.update_icon()
|
WD.update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ obj/structure/windoor_assembly
|
|||||||
density = 0
|
density = 0
|
||||||
dir = NORTH
|
dir = NORTH
|
||||||
|
|
||||||
var/ini_dir
|
|
||||||
var/obj/item/weapon/airlock_electronics/electronics = null
|
var/obj/item/weapon/airlock_electronics/electronics = null
|
||||||
|
|
||||||
//Vars to help with the icon's name
|
//Vars to help with the icon's name
|
||||||
@@ -26,9 +25,17 @@ obj/structure/windoor_assembly
|
|||||||
var/secure = "" //Whether or not this creates a secure windoor
|
var/secure = "" //Whether or not this creates a secure windoor
|
||||||
var/state = "01" //How far the door assembly has progressed in terms of sprites
|
var/state = "01" //How far the door assembly has progressed in terms of sprites
|
||||||
|
|
||||||
obj/structure/windoor_assembly/New(dir=NORTH)
|
obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0)
|
||||||
..()
|
..()
|
||||||
src.ini_dir = src.dir
|
if(constructed)
|
||||||
|
state = "01"
|
||||||
|
anchored = 0
|
||||||
|
switch(start_dir)
|
||||||
|
if(NORTH, SOUTH, EAST, WEST)
|
||||||
|
dir = start_dir
|
||||||
|
else //If the user is facing northeast. northwest, southeast, southwest or north, default to north
|
||||||
|
dir = NORTH
|
||||||
|
|
||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
|
|
||||||
obj/structure/windoor_assembly/Del()
|
obj/structure/windoor_assembly/Del()
|
||||||
@@ -70,7 +77,7 @@ obj/structure/windoor_assembly/Del()
|
|||||||
if(do_after(user, 40))
|
if(do_after(user, 40))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
user << "\blue You dissasembled the windoor assembly!"
|
user << "\blue You dissasembled the windoor assembly!"
|
||||||
new /obj/item/stack/sheet/rglass(get_turf(src), 5)
|
new /obj/item/stack/sheet/glass/reinforced(get_turf(src), 5)
|
||||||
if(secure)
|
if(secure)
|
||||||
new /obj/item/stack/rods(get_turf(src), 4)
|
new /obj/item/stack/rods(get_turf(src), 4)
|
||||||
del(src)
|
del(src)
|
||||||
@@ -270,7 +277,6 @@ obj/structure/windoor_assembly/Del()
|
|||||||
if(src.state != "01")
|
if(src.state != "01")
|
||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
|
|
||||||
src.ini_dir = src.dir
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
// var/silicate = 0 // number of units of silicate
|
// var/silicate = 0 // number of units of silicate
|
||||||
// var/icon/silicateIcon = null // the silicated icon
|
// var/icon/silicateIcon = null // the silicated icon
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/window/proc/take_damage(var/damage = 0, var/sound_effect = 1)
|
/obj/structure/window/proc/take_damage(var/damage = 0, var/sound_effect = 1)
|
||||||
var/initialhealth = src.health
|
var/initialhealth = src.health
|
||||||
src.health = max(0, src.health - damage)
|
src.health = max(0, src.health - damage)
|
||||||
@@ -85,11 +84,16 @@
|
|||||||
/obj/structure/window/meteorhit()
|
/obj/structure/window/meteorhit()
|
||||||
shatter()
|
shatter()
|
||||||
|
|
||||||
|
//TODO: Make full windows a separate type of window.
|
||||||
|
//Once a full window, it will always be a full window, so there's no point
|
||||||
|
//having the same type for both.
|
||||||
|
/obj/structure/window/proc/is_full_window()
|
||||||
|
return (dir == SOUTHWEST || dir == SOUTHEAST || dir == NORTHWEST || dir == NORTHEAST)
|
||||||
|
|
||||||
/obj/structure/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
/obj/structure/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
||||||
if(istype(mover) && mover.checkpass(PASSGLASS))
|
if(istype(mover) && mover.checkpass(PASSGLASS))
|
||||||
return 1
|
return 1
|
||||||
if(dir == SOUTHWEST || dir == SOUTHEAST || dir == NORTHWEST || dir == NORTHEAST)
|
if(is_full_window())
|
||||||
return 0 //full tile window, you can't move into it!
|
return 0 //full tile window, you can't move into it!
|
||||||
if(get_dir(loc, target) == dir)
|
if(get_dir(loc, target) == dir)
|
||||||
return !density
|
return !density
|
||||||
@@ -245,7 +249,6 @@
|
|||||||
dir = turn(dir, 90)
|
dir = turn(dir, 90)
|
||||||
// updateSilicate()
|
// updateSilicate()
|
||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
ini_dir = dir
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -262,7 +265,6 @@
|
|||||||
dir = turn(dir, 270)
|
dir = turn(dir, 270)
|
||||||
// updateSilicate()
|
// updateSilicate()
|
||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
ini_dir = dir
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -282,10 +284,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/window/New(Loc,re=0)
|
/obj/structure/window/New(Loc, start_dir=null, constructed=0)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
// if(re) reinf = re
|
//player-constructed windows
|
||||||
|
if (constructed)
|
||||||
|
anchored = 0
|
||||||
|
|
||||||
|
if (start_dir)
|
||||||
|
dir = start_dir
|
||||||
|
|
||||||
health = maxhealth
|
health = maxhealth
|
||||||
|
|
||||||
@@ -294,8 +301,6 @@
|
|||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
update_nearby_icons()
|
update_nearby_icons()
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/window/Del()
|
/obj/structure/window/Del()
|
||||||
density = 0
|
density = 0
|
||||||
@@ -305,6 +310,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/structure/window/Move()
|
/obj/structure/window/Move()
|
||||||
|
var/ini_dir = dir
|
||||||
update_nearby_tiles(need_rebuild=1)
|
update_nearby_tiles(need_rebuild=1)
|
||||||
..()
|
..()
|
||||||
dir = ini_dir
|
dir = ini_dir
|
||||||
@@ -406,7 +412,14 @@
|
|||||||
basestate = "rwindow"
|
basestate = "rwindow"
|
||||||
maxhealth = 40
|
maxhealth = 40
|
||||||
reinf = 1
|
reinf = 1
|
||||||
glasstype = /obj/item/stack/sheet/rglass
|
glasstype = /obj/item/stack/sheet/glass/reinforced
|
||||||
|
|
||||||
|
/obj/structure/window/New(Loc, constructed=0)
|
||||||
|
..()
|
||||||
|
|
||||||
|
//player-constructed windows
|
||||||
|
if (constructed)
|
||||||
|
state = 0
|
||||||
|
|
||||||
/obj/structure/window/reinforced/tinted
|
/obj/structure/window/reinforced/tinted
|
||||||
name = "tinted window"
|
name = "tinted window"
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ var/global/floorIsLava = 0
|
|||||||
I.rank = "N/A"
|
I.rank = "N/A"
|
||||||
update_file = 1
|
update_file = 1
|
||||||
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
||||||
if(I.author == usr.key || I.author == "Adminbot")
|
if(I.author == usr.key || I.author == "Adminbot" || ishost(usr))
|
||||||
dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
|
dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
|
||||||
dat += "<br><br>"
|
dat += "<br><br>"
|
||||||
if(update_file) info << infos
|
if(update_file) info << infos
|
||||||
@@ -1141,9 +1141,25 @@ var/global/floorIsLava = 0
|
|||||||
if(2)
|
if(2)
|
||||||
var/ref_mob = "\ref[M]"
|
var/ref_mob = "\ref[M]"
|
||||||
return "<b>[key_name(C, link, name, highlight_special)](<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>)</b>"
|
return "<b>[key_name(C, link, name, highlight_special)](<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>)</b>"
|
||||||
|
if(3)
|
||||||
|
var/ref_mob = "\ref[M]"
|
||||||
|
return "<b>[key_name(C, link, name, highlight_special)](<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>)(<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>)</b>"
|
||||||
|
|
||||||
|
|
||||||
|
/proc/ishost(whom)
|
||||||
|
if(!whom)
|
||||||
|
return 0
|
||||||
|
var/client/C
|
||||||
|
var/mob/M
|
||||||
|
if(istype(whom, /client))
|
||||||
|
C = whom
|
||||||
|
if(istype(whom, /mob))
|
||||||
|
M = whom
|
||||||
|
C = M.client
|
||||||
|
if(R_HOST & C.holder.rights)
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//ALL DONE
|
//ALL DONE
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
|
|||||||
if("stealth") rights |= R_STEALTH
|
if("stealth") rights |= R_STEALTH
|
||||||
if("rejuv","rejuvinate") rights |= R_REJUVINATE
|
if("rejuv","rejuvinate") rights |= R_REJUVINATE
|
||||||
if("varedit") rights |= R_VAREDIT
|
if("varedit") rights |= R_VAREDIT
|
||||||
if("everything","host","all") rights |= R_HOST
|
if("everything","host","all") rights |= (R_HOST | R_BUILDMODE | R_ADMIN | R_BAN | R_FUN | R_SERVER | R_DEBUG | R_PERMISSIONS | R_POSSESS | R_STEALTH | R_REJUVINATE | R_VAREDIT | R_SOUNDS | R_SPAWN | R_MOD| R_MENTOR)
|
||||||
if("sound","sounds") rights |= R_SOUNDS
|
if("sound","sounds") rights |= R_SOUNDS
|
||||||
if("spawn","create") rights |= R_SPAWN
|
if("spawn","create") rights |= R_SPAWN
|
||||||
if("mod") rights |= R_MOD
|
if("mod") rights |= R_MOD
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE!
|
//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE!
|
||||||
var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as")
|
var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as")
|
||||||
|
|
||||||
/client/verb/adminhelp(msg as text)
|
/client/verb/adminhelp()
|
||||||
set category = "Admin"
|
set category = "Admin"
|
||||||
set name = "Adminhelp"
|
set name = "Adminhelp"
|
||||||
|
|
||||||
@@ -15,8 +15,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
|||||||
if(prefs.muted & MUTE_ADMINHELP)
|
if(prefs.muted & MUTE_ADMINHELP)
|
||||||
src << "<font color='red'>Error: Admin-PM: You cannot send adminhelps (Muted).</font>"
|
src << "<font color='red'>Error: Admin-PM: You cannot send adminhelps (Muted).</font>"
|
||||||
return
|
return
|
||||||
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
|
||||||
return
|
|
||||||
|
|
||||||
adminhelped = 1 //Determines if they get the message to reply by clicking the name.
|
adminhelped = 1 //Determines if they get the message to reply by clicking the name.
|
||||||
|
|
||||||
@@ -26,6 +25,17 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
|||||||
src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps
|
src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps
|
||||||
src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps//Go to hell
|
src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps//Go to hell
|
||||||
**/
|
**/
|
||||||
|
var/msg
|
||||||
|
var/list/type = list ("Gameplay/Roleplay question", "Rule/Gameplay issue", "Bug report")
|
||||||
|
var/selected_type = input("Pick a category.", "Admin Help", null, null) as null|anything in type
|
||||||
|
if(selected_type)
|
||||||
|
msg = input("Please enter your message:", "Admin Help", null, null) as text
|
||||||
|
|
||||||
|
var/selected_upper = uppertext(selected_type)
|
||||||
|
|
||||||
|
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
//clean the input msg
|
//clean the input msg
|
||||||
if(!msg) return
|
if(!msg) return
|
||||||
@@ -91,11 +101,68 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
|||||||
if(!mob) return //this doesn't happen
|
if(!mob) return //this doesn't happen
|
||||||
|
|
||||||
var/ref_mob = "\ref[mob]"
|
var/ref_mob = "\ref[mob]"
|
||||||
var/mentor_msg = "\blue <b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1, 0)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
var/mentor_msg = "\blue <b><font color=red>[selected_upper]: </font>[get_options_bar(mob, 0, 0, 1, 0)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
||||||
msg = "\blue <b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
var/dev_msg = "\blue <b><font color=red>[selected_upper]: </font>[get_options_bar(mob, 3, 0, 1, 0)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
||||||
//send this msg to all admins
|
msg = "\blue <b><font color=red>[selected_upper]: </font>[get_options_bar(mob, 2, 1, 1)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var/admin_number_afk = 0
|
var/admin_number_afk = 0
|
||||||
|
|
||||||
|
var/list/mentorholders = list()
|
||||||
|
var/list/debugholders = list()
|
||||||
|
var/list/adminholders = list()
|
||||||
for(var/client/X in admins)
|
for(var/client/X in admins)
|
||||||
|
if(R_MENTOR & X.holder.rights && !(R_ADMIN & X.holder.rights)) // we don't want to count admins twice. This list should be JUST mentors
|
||||||
|
mentorholders += X
|
||||||
|
if(X.is_afk())
|
||||||
|
admin_number_afk++
|
||||||
|
if(R_DEBUG & X.holder.rights) // Looking for anyone with +Debug which will be admins, developers, and developer mentors
|
||||||
|
debugholders += X
|
||||||
|
if(!(R_ADMIN & X.holder.rights))
|
||||||
|
if(X.is_afk())
|
||||||
|
admin_number_afk++
|
||||||
|
if(R_ADMIN & X.holder.rights) // just admins here please
|
||||||
|
adminholders += X
|
||||||
|
if(X.is_afk())
|
||||||
|
admin_number_afk++
|
||||||
|
|
||||||
|
switch(selected_type)
|
||||||
|
if("Gameplay/Roleplay question")
|
||||||
|
if(mentorholders.len)
|
||||||
|
for(var/client/X in mentorholders) // Mentors get a message without buttons and no character name
|
||||||
|
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||||
|
X << 'sound/effects/adminhelp.ogg'
|
||||||
|
X << mentor_msg
|
||||||
|
if(adminholders.len)
|
||||||
|
for(var/client/X in adminholders) // Admins get the full monty
|
||||||
|
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||||
|
X << 'sound/effects/adminhelp.ogg'
|
||||||
|
X << msg
|
||||||
|
if("Rule/Gameplay issue")
|
||||||
|
if(adminholders.len)
|
||||||
|
for(var/client/X in adminholders) // Admins of course get everything in their helps
|
||||||
|
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||||
|
X << 'sound/effects/adminhelp.ogg'
|
||||||
|
X << msg
|
||||||
|
if("Bug report")
|
||||||
|
if(debugholders.len)
|
||||||
|
for(var/client/X in debugholders)
|
||||||
|
if(R_ADMIN & X.holder.rights) // Admins get every button & special highlights in theirs
|
||||||
|
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||||
|
X << 'sound/effects/adminhelp.ogg'
|
||||||
|
X << msg
|
||||||
|
else
|
||||||
|
if (R_DEBUG & X.holder.rights) // Just devs or devmentors get non-highlighted names, but they do get JMP and VV for their bug reports.
|
||||||
|
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||||
|
X << 'sound/effects/adminhelp.ogg'
|
||||||
|
X << dev_msg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*for(var/client/X in admins)
|
||||||
if((R_ADMIN|R_MOD|R_MENTOR) & X.holder.rights)
|
if((R_ADMIN|R_MOD|R_MENTOR) & X.holder.rights)
|
||||||
if(X.is_afk())
|
if(X.is_afk())
|
||||||
admin_number_afk++
|
admin_number_afk++
|
||||||
@@ -104,19 +171,19 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
|||||||
if(X.holder.rights == R_MENTOR)
|
if(X.holder.rights == R_MENTOR)
|
||||||
X << mentor_msg // Mentors won't see coloring of names on people with special_roles (Antags, etc.)
|
X << mentor_msg // Mentors won't see coloring of names on people with special_roles (Antags, etc.)
|
||||||
else
|
else
|
||||||
X << msg
|
X << msg*/
|
||||||
|
|
||||||
//show it to the person adminhelping too
|
//show it to the person adminhelping too
|
||||||
src << "<font color='blue'>PM to-<b>Admins</b>: [original_msg]</font>"
|
src << "<font color='blue'>PM to-<b>Staff ([selected_type])</b>: [original_msg]</font>"
|
||||||
|
|
||||||
var/admin_number_present = admins.len - admin_number_afk
|
var/admin_number_present = admins.len - admin_number_afk
|
||||||
log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
|
log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
|
||||||
if(admin_number_present <= 0)
|
if(admin_number_present <= 0)
|
||||||
if(!admin_number_afk)
|
if(!admin_number_afk)
|
||||||
send2adminirc("ADMINHELP from [key_name(src)]: [html_decode(original_msg)] - !!No admins online!!")
|
send2adminirc("[selected_upper] from [key_name(src)]: [html_decode(original_msg)] - !!No admins online!!")
|
||||||
else
|
else
|
||||||
send2adminirc("ADMINHELP from [key_name(src)]: [html_decode(original_msg)] - !!All admins AFK ([admin_number_afk])!!")
|
send2adminirc("[selected_upper] from [key_name(src)]: [html_decode(original_msg)] - !!All admins AFK ([admin_number_afk])!!")
|
||||||
else
|
else
|
||||||
send2adminirc("ADMINHELP from [key_name(src)]: [html_decode(original_msg)]")
|
send2adminirc("[selected_upper] from [key_name(src)]: [html_decode(original_msg)]")
|
||||||
feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
if(!istype(C,/client))
|
if(!istype(C,/client))
|
||||||
if(holder) src << "<font color='red'>Error: Private-Message: Client not found.</font>"
|
if(holder) src << "<font color='red'>Error: Private-Message: Client not found.</font>"
|
||||||
else adminhelp(msg) //admin we are replying to left. adminhelp instead
|
else src << "<font color='red'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</font>"
|
||||||
return
|
return
|
||||||
|
|
||||||
//get message text, limit it's length.and clean/escape html
|
//get message text, limit it's length.and clean/escape html
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
if(!msg) return
|
if(!msg) return
|
||||||
if(!C)
|
if(!C)
|
||||||
if(holder) src << "<font color='red'>Error: Admin-PM: Client not found.</font>"
|
if(holder) src << "<font color='red'>Error: Admin-PM: Client not found.</font>"
|
||||||
else adminhelp(msg) //admin we are replying to has vanished, adminhelp instead
|
else src << "<font color='red'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</font>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if (src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
if (src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||||
|
|||||||
@@ -9,8 +9,12 @@
|
|||||||
|
|
||||||
log_admin("[key_name(src)] : [msg]")
|
log_admin("[key_name(src)] : [msg]")
|
||||||
|
|
||||||
|
var/color = "adminsay"
|
||||||
|
if(ishost(usr))
|
||||||
|
color = "headminsay"
|
||||||
|
|
||||||
if(check_rights(R_ADMIN,0))
|
if(check_rights(R_ADMIN,0))
|
||||||
msg = "<span class='adminsay'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, 1)]</EM> (<a href='?_src_=holder;adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
msg = "<span class='[color]'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, 1)]</EM> (<a href='?_src_=holder;adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||||
for(var/client/C in admins)
|
for(var/client/C in admins)
|
||||||
if(R_ADMIN & C.holder.rights)
|
if(R_ADMIN & C.holder.rights)
|
||||||
C << msg
|
C << msg
|
||||||
|
|||||||
@@ -20,8 +20,9 @@
|
|||||||
msg = "\blue \icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[src]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]"
|
msg = "\blue \icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[src]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]"
|
||||||
|
|
||||||
for(var/client/C in admins)
|
for(var/client/C in admins)
|
||||||
if(C.prefs.toggles & CHAT_PRAYER)
|
if(R_ADMIN & C.holder.rights)
|
||||||
C << msg
|
if(C.prefs.toggles & CHAT_PRAYER)
|
||||||
|
C << msg
|
||||||
usr << "Your prayers have been received by the gods."
|
usr << "Your prayers have been received by the gods."
|
||||||
|
|
||||||
feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
@@ -30,9 +31,13 @@
|
|||||||
/proc/Centcomm_announce(var/text , var/mob/Sender , var/iamessage)
|
/proc/Centcomm_announce(var/text , var/mob/Sender , var/iamessage)
|
||||||
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
|
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
|
||||||
msg = "\blue <b><font color=orange>CENTCOMM[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
msg = "\blue <b><font color=orange>CENTCOMM[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||||
admins << msg
|
for(var/client/C in admins)
|
||||||
|
if(R_ADMIN & C.holder.rights)
|
||||||
|
C << msg
|
||||||
|
|
||||||
/proc/Syndicate_announce(var/text , var/mob/Sender)
|
/proc/Syndicate_announce(var/text , var/mob/Sender)
|
||||||
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
|
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
|
||||||
msg = "\blue <b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
msg = "\blue <b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||||
admins << msg
|
for(var/client/C in admins)
|
||||||
|
if(R_ADMIN & C.holder.rights)
|
||||||
|
C << msg
|
||||||
|
|||||||
@@ -230,7 +230,7 @@
|
|||||||
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
||||||
continue
|
continue
|
||||||
else if(istype(S , /mob/living/silicon/ai))
|
else if(istype(S , /mob/living/silicon/ai))
|
||||||
message_start = "<i><span class='game say'>[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[src];trackname=[html_encode(speaker.name)]'><span class='name'>[speaker.name]</span></a>"
|
message_start = "<i><span class='game say'>[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[speaker];trackname=[html_encode(speaker.name)]'><span class='name'>[speaker.name]</span></a>"
|
||||||
else if (!S.binarycheck())
|
else if (!S.binarycheck())
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
@@ -499,7 +499,8 @@
|
|||||||
if (!( AM.anchored ))
|
if (!( AM.anchored ))
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -147,7 +147,8 @@
|
|||||||
if (!( AM.anchored ))
|
if (!( AM.anchored ))
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -436,7 +436,8 @@
|
|||||||
else
|
else
|
||||||
if (pulling)
|
if (pulling)
|
||||||
if (istype(pulling, /obj/structure/window))
|
if (istype(pulling, /obj/structure/window))
|
||||||
if(pulling:ini_dir == NORTHWEST || pulling:ini_dir == NORTHEAST || pulling:ini_dir == SOUTHWEST || pulling:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = pulling
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
|
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
|
||||||
stop_pulling()
|
stop_pulling()
|
||||||
if (pulling)
|
if (pulling)
|
||||||
|
|||||||
@@ -507,23 +507,6 @@ var/list/ai_verbs_default = list(
|
|||||||
src << "\red System error. Cannot locate [html_decode(href_list["trackname"])]."
|
src << "\red System error. Cannot locate [html_decode(href_list["trackname"])]."
|
||||||
return
|
return
|
||||||
|
|
||||||
else if (href_list["faketrack"])
|
|
||||||
var/mob/target = locate(href_list["track"]) in mob_list
|
|
||||||
var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
|
|
||||||
if(A && target)
|
|
||||||
|
|
||||||
A.cameraFollow = target
|
|
||||||
A << text("Now tracking [] on camera.", target.name)
|
|
||||||
if (usr.machine == null)
|
|
||||||
usr.machine = usr
|
|
||||||
|
|
||||||
while (src.cameraFollow == target)
|
|
||||||
usr << "Target is not on or near any active cameras on the station. We'll check again in 5 seconds (unless you use the cancel-camera verb)."
|
|
||||||
sleep(40)
|
|
||||||
continue
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/silicon/ai/meteorhit(obj/O as obj)
|
/mob/living/silicon/ai/meteorhit(obj/O as obj)
|
||||||
|
|||||||
@@ -594,7 +594,8 @@ var/list/robot_verbs_default = list(
|
|||||||
if (!AM.anchored)
|
if (!AM.anchored)
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -167,7 +167,7 @@
|
|||||||
stacktypes = list(
|
stacktypes = list(
|
||||||
/obj/item/stack/sheet/metal = 50,
|
/obj/item/stack/sheet/metal = 50,
|
||||||
/obj/item/stack/sheet/plasteel = 10,
|
/obj/item/stack/sheet/plasteel = 10,
|
||||||
/obj/item/stack/sheet/rglass = 50,
|
/obj/item/stack/sheet/glass/reinforced = 50,
|
||||||
/obj/item/stack/rods = 50
|
/obj/item/stack/rods = 50
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
stacktypes = list(
|
stacktypes = list(
|
||||||
/obj/item/stack/sheet/metal = 50,
|
/obj/item/stack/sheet/metal = 50,
|
||||||
/obj/item/stack/sheet/glass = 50,
|
/obj/item/stack/sheet/glass = 50,
|
||||||
/obj/item/stack/sheet/rglass = 50,
|
/obj/item/stack/sheet/glass/reinforced = 50,
|
||||||
/obj/item/stack/cable_coil = 50,
|
/obj/item/stack/cable_coil = 50,
|
||||||
/obj/item/stack/rods = 15,
|
/obj/item/stack/rods = 15,
|
||||||
/obj/item/stack/tile/plasteel = 15
|
/obj/item/stack/tile/plasteel = 15
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
M.amount = 50
|
M.amount = 50
|
||||||
src.modules += M
|
src.modules += M
|
||||||
|
|
||||||
var/obj/item/stack/sheet/rglass/cyborg/R = new /obj/item/stack/sheet/rglass/cyborg(src)
|
var/obj/item/stack/sheet/glass/reinforced/cyborg/R = new (src)
|
||||||
R.amount = 50
|
R.amount = 50
|
||||||
src.modules += R
|
src.modules += R
|
||||||
|
|
||||||
@@ -400,7 +400,7 @@
|
|||||||
stacktypes = list(
|
stacktypes = list(
|
||||||
/obj/item/stack/sheet/wood = 1,
|
/obj/item/stack/sheet/wood = 1,
|
||||||
/obj/item/stack/sheet/mineral/plastic = 1,
|
/obj/item/stack/sheet/mineral/plastic = 1,
|
||||||
/obj/item/stack/sheet/rglass = 5,
|
/obj/item/stack/sheet/glass/reinforced = 5,
|
||||||
/obj/item/stack/tile/wood = 5,
|
/obj/item/stack/tile/wood = 5,
|
||||||
/obj/item/stack/rods = 15,
|
/obj/item/stack/rods = 15,
|
||||||
/obj/item/stack/tile/plasteel = 15,
|
/obj/item/stack/tile/plasteel = 15,
|
||||||
|
|||||||
@@ -79,7 +79,8 @@
|
|||||||
if (!( AM.anchored ))
|
if (!( AM.anchored ))
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -350,7 +350,8 @@
|
|||||||
if (!( AM.anchored ))
|
if (!( AM.anchored ))
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -41,7 +41,8 @@
|
|||||||
if (!( AM.anchored ))
|
if (!( AM.anchored ))
|
||||||
var/t = get_dir(src, AM)
|
var/t = get_dir(src, AM)
|
||||||
if (istype(AM, /obj/structure/window))
|
if (istype(AM, /obj/structure/window))
|
||||||
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
|
var/obj/structure/window/W = AM
|
||||||
|
if(W.is_full_window())
|
||||||
for(var/obj/structure/window/win in get_step(AM,t))
|
for(var/obj/structure/window/win in get_step(AM,t))
|
||||||
now_pushing = 0
|
now_pushing = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ var/list/solars_list = list()
|
|||||||
S.glass_type = /obj/item/stack/sheet/glass
|
S.glass_type = /obj/item/stack/sheet/glass
|
||||||
S.anchored = 1
|
S.anchored = 1
|
||||||
S.loc = src
|
S.loc = src
|
||||||
if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass
|
if(S.glass_type == /obj/item/stack/sheet/glass/reinforced) //if the panel is in reinforced glass
|
||||||
health *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to
|
health *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
@@ -248,7 +248,7 @@ var/list/solars_list = list()
|
|||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass))
|
if(istype(W, /obj/item/stack/sheet/glass))
|
||||||
var/obj/item/stack/sheet/S = W
|
var/obj/item/stack/sheet/S = W
|
||||||
if(S.use(2))
|
if(S.use(2))
|
||||||
glass_type = W.type
|
glass_type = W.type
|
||||||
|
|||||||
@@ -235,7 +235,7 @@
|
|||||||
possible_spawns += /obj/item/stack/sheet/metal
|
possible_spawns += /obj/item/stack/sheet/metal
|
||||||
possible_spawns += /obj/item/stack/sheet/plasteel
|
possible_spawns += /obj/item/stack/sheet/plasteel
|
||||||
possible_spawns += /obj/item/stack/sheet/glass
|
possible_spawns += /obj/item/stack/sheet/glass
|
||||||
possible_spawns += /obj/item/stack/sheet/rglass
|
possible_spawns += /obj/item/stack/sheet/glass/reinforced
|
||||||
possible_spawns += /obj/item/stack/sheet/mineral/phoron
|
possible_spawns += /obj/item/stack/sheet/mineral/phoron
|
||||||
possible_spawns += /obj/item/stack/sheet/mineral/gold
|
possible_spawns += /obj/item/stack/sheet/mineral/gold
|
||||||
possible_spawns += /obj/item/stack/sheet/mineral/silver
|
possible_spawns += /obj/item/stack/sheet/mineral/silver
|
||||||
|
|||||||
@@ -633,10 +633,9 @@ var/list/liftable_structures = list(\
|
|||||||
#define R_SPAWN 4096
|
#define R_SPAWN 4096
|
||||||
#define R_MOD 8192
|
#define R_MOD 8192
|
||||||
#define R_MENTOR 16384
|
#define R_MENTOR 16384
|
||||||
|
#define R_HOST 32768
|
||||||
|
|
||||||
#define R_MAXPERMISSION 16384 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
#define R_MAXPERMISSION 32768 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
||||||
|
|
||||||
#define R_HOST 65535
|
|
||||||
|
|
||||||
//Preference toggles
|
//Preference toggles
|
||||||
#define SOUND_ADMINHELP 1
|
#define SOUND_ADMINHELP 1
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ em {font-style: normal; font-weight: bold;}
|
|||||||
.adminobserver {color: #996600; font-weight: bold;}
|
.adminobserver {color: #996600; font-weight: bold;}
|
||||||
.admin {color: #386aff; font-weight: bold;}
|
.admin {color: #386aff; font-weight: bold;}
|
||||||
.adminsay {color: #9611D4; font-weight: bold;}
|
.adminsay {color: #9611D4; font-weight: bold;}
|
||||||
|
.headminsay {color: #5A0A7F; font-weight: bold;}
|
||||||
|
|
||||||
.name { font-weight: bold;}
|
.name { font-weight: bold;}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
M.amount = 50
|
M.amount = 50
|
||||||
src.modules += M
|
src.modules += M
|
||||||
|
|
||||||
var/obj/item/stack/sheet/rglass/G = new /obj/item/stack/sheet/rglass(src)
|
var/obj/item/stack/sheet/glass/reinforced/G = new (src)
|
||||||
G.amount = 50
|
G.amount = 50
|
||||||
src.modules += G
|
src.modules += G
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ proc/check_craftlathe_recipe(var/list/param_recipe)
|
|||||||
CRAFT_ITEMS += new/datum/craftlathe_item("METAL","Metal",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/metal)
|
CRAFT_ITEMS += new/datum/craftlathe_item("METAL","Metal",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/metal)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("R METAL","Reinforced Metal",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/r_metal)
|
CRAFT_ITEMS += new/datum/craftlathe_item("R METAL","Reinforced Metal",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/r_metal)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("GLASS","Glass",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/glass)
|
CRAFT_ITEMS += new/datum/craftlathe_item("GLASS","Glass",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/glass)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("R GLASS","Reinforced Glass",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/rglass)
|
CRAFT_ITEMS += new/datum/craftlathe_item("R GLASS","Reinforced Glass",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/glass/reinforced)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("GOLD","Gold",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/gold)
|
CRAFT_ITEMS += new/datum/craftlathe_item("GOLD","Gold",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/gold)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("SILVER","Silver",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/silver)
|
CRAFT_ITEMS += new/datum/craftlathe_item("SILVER","Silver",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/silver)
|
||||||
CRAFT_ITEMS += new/datum/craftlathe_item("DIAMOND","Diamond",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/diamond)
|
CRAFT_ITEMS += new/datum/craftlathe_item("DIAMOND","Diamond",1,1,list("","","","","","","","",""),/obj/item/stack/sheet/mineral/diamond)
|
||||||
|
|||||||
2922
maps/tgstation2.dmm
2922
maps/tgstation2.dmm
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user