This commit is contained in:
Whitellama
2014-08-28 18:29:05 -07:00
10 changed files with 148 additions and 142 deletions
+2 -1
View File
@@ -261,10 +261,10 @@
#include "code\game\gamemodes\revolution\revolution.dm"
#include "code\game\gamemodes\revolution\rp_revolution.dm"
#include "code\game\gamemodes\traitor\traitor.dm"
#include "code\game\gamemodes\wizard\artifact.dm"
#include "code\game\gamemodes\wizard\rightandwrong.dm"
#include "code\game\gamemodes\wizard\soulstone.dm"
#include "code\game\gamemodes\wizard\spellbook.dm"
#include "code\game\gamemodes\wizard\veilrender.dm"
#include "code\game\gamemodes\wizard\wizard.dm"
#include "code\game\jobs\access.dm"
#include "code\game\jobs\job_controller.dm"
@@ -599,6 +599,7 @@
#include "code\game\objects\structures\barsign.dm"
#include "code\game\objects\structures\bedsheet_bin.dm"
#include "code\game\objects\structures\coathanger.dm"
#include "code\game\objects\structures\curtains.dm"
#include "code\game\objects\structures\displaycase.dm"
#include "code\game\objects\structures\door_assembly.dm"
#include "code\game\objects\structures\electricchair.dm"
@@ -1,3 +1,5 @@
// Veil render //
/obj/item/weapon/veilrender
name = "veil render"
desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city."
@@ -37,3 +39,22 @@
else
user << "\red The unearthly energies that powered the blade are now dormant"
// Scrying orb //
/obj/item/weapon/scrying
name = "scrying orb"
desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means."
icon = 'icons/obj/projectiles.dmi'
icon_state = "bluespace"
throw_speed = 3
throw_range = 7
throwforce = 10
damtype = BURN
force = 10
hitsound = 'sound/items/welder2.ogg'
/obj/item/weapon/scrying/attack_self(mob/user as mob)
user << "<span class='info'>You can see... everything!</span>"
visible_message("<span class='danger'>[usr] stares into [src], their eyes glazing over.</span>")
user.ghostize(1)
return
+13
View File
@@ -55,6 +55,8 @@
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=staffanimation'>Staff of Animation</A><BR>"
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=scrying'>Scrying Orb</A><BR>"
dat += "<HR>"
if(op)
dat += "<A href='byond://?src=\ref[src];spell_choice=rememorize'>Re-memorize Spells</A><BR>"
user << browse(dat, "window=radio")
@@ -188,6 +190,17 @@
new /obj/item/weapon/gun/energy/staff/animate(get_turf(H))
temp = "An artefact that spits bolts of life-force which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines."
max_uses--
if("scrying")
feedback_add_details("wizard_spell_learned","SO") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
new /obj/item/weapon/scrying(get_turf(H))
if (!(XRAY in H.mutations))
H.mutations.Add(XRAY)
H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
H.see_in_dark = 8
H.see_invisible = SEE_INVISIBLE_LEVEL_TWO
H << "<span class='info'>The walls suddenly disappear.</span>"
temp = "You have purchased a scrying orb, and gained x-ray vision."
max_uses--
else
if(href_list["temp"])
temp = null
+50 -130
View File
@@ -1,3 +1,20 @@
var/global/list/holodeck_programs = list(
"emptycourt" = /area/holodeck/source_emptycourt, \
"boxingcourt" = /area/holodeck/source_boxingcourt, \
"basketball" = /area/holodeck/source_basketball, \
"thunderdomecourt" = /area/holodeck/source_thunderdomecourt, \
"beach" = /area/holodeck/source_beach, \
"desert" = /area/holodeck/source_desert, \
"space" = /area/holodeck/source_space, \
"picnicarea" = /area/holodeck/source_picnicarea, \
"snowfield" = /area/holodeck/source_snowfield, \
"theatre" = /area/holodeck/source_theatre, \
"meetinghall" = /area/holodeck/source_meetinghall, \
"burntest" = /area/holodeck/source_burntest, \
"wildlifecarp" = /area/holodeck/source_wildlife, \
"turnoff" = /area/holodeck/source_plating \
)
/obj/machinery/computer/HolodeckControl
name = "Holodeck Control Computer"
desc = "A computer used to control a nearby holodeck."
@@ -8,7 +25,20 @@
var/list/holographic_items = list()
var/damaged = 0
var/last_change = 0
var/list/supported_programs = list( \
"Empty Court" = "emptycourt", \
"Boxing Court"="boxingcourt", \
"Basketball Court" = "basketball", \
"Thunderdome Court" = "thunderdomecourt", \
"Beach" = "beach", \
"Desert" = "desert", \
"Space" = "space", \
"Picnic Area" = "picnicarea", \
"Snow Field" = "snowfield", \
"Theatre" = "theatre", \
"Meeting Hall" = "meetinghall" \
)
var/list/restricted_programs = list("Atmospheric Burn Simulation" = "burntest", "ildlife Simulation" = "wildlifecarp")
attack_ai(var/mob/user as mob)
return src.attack_hand(user)
@@ -23,45 +53,31 @@
user.set_machine(src)
var/dat
dat += "<B>Holodeck Control System</B><BR>"
dat += "<HR>Current Loaded Programs:<BR>"
dat += "<A href='?src=\ref[src];emptycourt=1'>((Empty Court)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];boxingcourt=1'>((Boxing Court)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];basketball=1'>((Basketball Court)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];thunderdomecourt=1'>((Thunderdome Court)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];beach=1'>((Beach)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];desert=1'>((Desert)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];space=1'>((Space)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];picnicarea=1'>((Picnic Area)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];snowfield=1'>((Snow Field)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];theatre=1'>((Theatre)</font>)</A><BR>"
dat += "<A href='?src=\ref[src];meetinghall=1'>((Meeting Hall)</font>)</A><BR>"
// dat += "<A href='?src=\ref[src];turnoff=1'>((Shutdown System)</font>)</A><BR>"
for(var/prog in supported_programs)
dat += "<A href='?src=\ref[src];program=[supported_programs[prog]]'>(([prog]))</A><BR>"
dat += "Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.<BR>"
if(emagged)
dat += "<A href='?src=\ref[src];burntest=1'>(<font color=red>Begin Atmospheric Burn Simulation</font>)</A><BR>"
dat += "Ensure the holodeck is empty before testing.<BR>"
dat += "<BR>"
dat += "<A href='?src=\ref[src];wildlifecarp=1'>(<font color=red>Begin Wildlife Simulation</font>)</A><BR>"
dat += "Ensure the holodeck is empty before testing.<BR>"
dat += "<BR>"
if(issilicon(user))
if(issilicon(user))
if(emagged)
dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=green>Re-Enable Safety Protocols?</font>)</A><BR>"
else
dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=red>Override Safety Protocols?</font>)</A><BR>"
if(emagged)
for(var/prog in restricted_programs)
dat += "<A href='?src=\ref[src];program=[restricted_programs[prog]]'>(<font color=red>Begin [prog]</font>)</A><BR>"
dat += "Ensure the holodeck is empty before testing.<BR>"
dat += "<BR>"
dat += "Safety Protocols are <font color=red> DISABLED </font><BR>"
else
if(issilicon(user))
dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=red>Override Safety Protocols?</font>)</A><BR>"
dat += "<BR>"
dat += "Safety Protocols are <font color=green> ENABLED </font><BR>"
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
@@ -71,77 +87,12 @@
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
if(href_list["emptycourt"])
target = locate(/area/holodeck/source_emptycourt)
if(target)
loadProgram(target)
else if(href_list["boxingcourt"])
target = locate(/area/holodeck/source_boxingcourt)
if(target)
loadProgram(target)
else if(href_list["basketball"])
target = locate(/area/holodeck/source_basketball)
if(target)
loadProgram(target)
else if(href_list["thunderdomecourt"])
target = locate(/area/holodeck/source_thunderdomecourt)
if(target)
loadProgram(target)
else if(href_list["beach"])
target = locate(/area/holodeck/source_beach)
if(target)
loadProgram(target)
else if(href_list["desert"])
target = locate(/area/holodeck/source_desert)
if(target)
loadProgram(target)
else if(href_list["space"])
target = locate(/area/holodeck/source_space)
if(target)
loadProgram(target)
else if(href_list["picnicarea"])
target = locate(/area/holodeck/source_picnicarea)
if(target)
loadProgram(target)
else if(href_list["snowfield"])
target = locate(/area/holodeck/source_snowfield)
if(target)
loadProgram(target)
else if(href_list["theatre"])
target = locate(/area/holodeck/source_theatre)
if(target)
loadProgram(target)
else if(href_list["meetinghall"])
target = locate(/area/holodeck/source_meetinghall)
if(target)
loadProgram(target)
else if(href_list["turnoff"])
target = locate(/area/holodeck/source_plating)
if(target)
loadProgram(target)
else if(href_list["burntest"])
if(!emagged) return
target = locate(/area/holodeck/source_burntest)
if(target)
loadProgram(target)
else if(href_list["wildlifecarp"])
if(!emagged) return
target = locate(/area/holodeck/source_wildlife)
if(target)
loadProgram(target)
if(href_list["program"])
var/prog = href_list["program"]
if(prog in holodeck_programs)
target = locate(holodeck_programs[prog])
if(target)
loadProgram(target)
else if(href_list["AIoverride"])
if(!issilicon(usr)) return
@@ -158,38 +109,7 @@
return
/obj/machinery/computer/HolodeckControl/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
//Warning, uncommenting this can have concequences. For example, deconstructing the computer may cause holographic eswords to never derez
/* if(istype(D, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)
*/
if(istype(D, /obj/item/weapon/card/emag) && !emagged)
playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
@@ -447,7 +367,7 @@
if(isrobot(user))
return
..()
/obj/structure/table/holotable/wood
+6 -4
View File
@@ -118,15 +118,17 @@
update_display(line1, line2)
return 1
if(STATUS_DISPLAY_TIME)
update_display("TIME", worldtime2text())
message1 = "TIME"
message2 = worldtime2text()
update_display(message1, message2)
return 1
return 0
/obj/machinery/status_display/examine()
set src in view()
. = ..()
switch(mode)
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME,2)
usr << "The display says:<br>\t<xmp>[message1]</xmp><br>\t<xmp>[message2]</xmp>"
if(mode != STATUS_DISPLAY_BLANK && mode != STATUS_DISPLAY_ALERT)
usr << "The display says:<br>\t[sanitize(message1)]<br>\t[sanitize(message2)]"
/obj/machinery/status_display/proc/set_message(m1, m2)
if(m1)
-6
View File
@@ -27,12 +27,6 @@
return 1
return 0
/obj/machinery/status_display/supply_display/examine()
if(mode == STATUS_DISPLAY_CUSTOM)
usr << "The display says:<br>\t<xmp>[message1]</xmp><br>\t<xmp>[message2]</xmp>"
else
..()
/obj/machinery/status_display/supply_display/receive_signal/(datum/signal/signal)
if(signal.data["command"] == "supply")
mode = STATUS_DISPLAY_CUSTOM
+37
View File
@@ -0,0 +1,37 @@
/obj/structure/curtain
icon = 'icons/obj/curtain.dmi'
name = "curtain"
icon_state = "closed"
layer = MOB_LAYER + 0.1
opacity = 1
density = 0
/obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone)
if(!P.nodamage)
visible_message("<span class='warning'>[P] tears [src] down!</span>")
del(src)
else
..(P, def_zone)
/obj/structure/curtain/attack_hand(mob/user)
playsound(get_turf(loc), "rustle", 15, 1, -5)
toggle()
..()
/obj/structure/curtain/proc/toggle()
opacity = !opacity
if(opacity)
icon_state = "closed"
layer = MOB_LAYER + 0.1
else
icon_state = "open"
layer = OBJ_LAYER
/obj/structure/curtain/black
name = "black curtain"
color = "#222222"
/obj/structure/curtain/medical
name = "plastic curtain"
color = "#B8F5E3"
alpha = 200
+1 -1
View File
@@ -31,7 +31,7 @@ atom/proc/add_fibers(mob/living/carbon/human/M)
if(prob(15*item_multiplier) && !(fibertext in suit_fibers))
suit_fibers += fibertext
if(M.gloves && (M.w_uniform.body_parts_covered & ~suit_coverage))
if(M.gloves && (M.gloves.body_parts_covered & ~suit_coverage))
fibertext = "Material from a pair of [M.gloves.name]."
if(prob(20*item_multiplier) && !(fibertext in suit_fibers))
suit_fibers += "Material from a pair of [M.gloves.name]."
+18
View File
@@ -124,6 +124,24 @@ should be listed in the changelog upon commit though. Thanks. -->
</ul>
</div>
<h3 class='author'>PsiOmegaDelta updated:</h3>
<ul class='changes bgimages16'>
<li class='rscadd'>AI can now make priority announcements.</li>
<li class='rscadd'>PDAs display the station time upon examination.</li>
<li class='rscadd'>Status displays can now also show the station time.</li>
<li class='rscadd'>Security HUDs now have improved handling of alt-titles.</li>
<li class='rscadd'>Crew record photos can now be updated through security consoles.</li>
<li class='rscadd'>pAI settings can now be configured from the character setup screen.</li>
<li class='rscadd'>Pipes can now be placed by clicking the floor, similar to power cables.</li>
<li class='rscadd'>Mechas and cargo trains can no longer enter the transfer shuttle, Odysseys with patients excepted.</li>
</ul>
<h3 class='author'>Kelenius updated:</h3>
<ul class='changes bgimages16'>
<li class='rscadd'>Wizards now use a new item: scrying orb. It grants x-ray vision upon purchase, and can be used to temporary leave your body as a ghost.</li>
</ul>
</div>
<div class='commit sansserif'>
<h2 class='date'>5 August 2014</h2>
<h3 class='author'>HarpyEagle updated:</h3>
Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B