mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-14 08:35:39 +01:00
Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into dev
This commit is contained in:
+2
-1
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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]."
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user