mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
Merge pull request #1436 from caelaislinn/master
anomaly / research updates, shield generator fixes, resaerch outpost and shuttle dock added to tgstation.dm
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
|
||||
/**********************Shuttle Computer**************************/
|
||||
|
||||
//copy paste from the mining shuttle
|
||||
|
||||
var/research_shuttle_tickstomove = 10
|
||||
var/research_shuttle_moving = 0
|
||||
var/research_shuttle_location = 0 // 0 = station 13, 1 = research station
|
||||
|
||||
proc/move_research_shuttle()
|
||||
if(research_shuttle_moving) return
|
||||
research_shuttle_moving = 1
|
||||
spawn(research_shuttle_tickstomove*10)
|
||||
var/area/fromArea
|
||||
var/area/toArea
|
||||
if (research_shuttle_location == 1)
|
||||
fromArea = locate(/area/shuttle/research/outpost)
|
||||
toArea = locate(/area/shuttle/research/station)
|
||||
else
|
||||
fromArea = locate(/area/shuttle/research/station)
|
||||
toArea = locate(/area/shuttle/research/outpost)
|
||||
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in toArea)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
//var/turf/E = get_step(D, SOUTH)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
// NOTE: Commenting this out to avoid recreating mass driver glitch
|
||||
/*
|
||||
spawn(0)
|
||||
AM.throw_at(E, 1, 1)
|
||||
return
|
||||
*/
|
||||
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
for(var/mob/living/carbon/bug in toArea) // If someone somehow is still in the shuttle's docking area...
|
||||
bug.gib()
|
||||
|
||||
fromArea.move_contents_to(toArea)
|
||||
if (research_shuttle_location)
|
||||
research_shuttle_location = 0
|
||||
else
|
||||
research_shuttle_location = 1
|
||||
research_shuttle_moving = 0
|
||||
return
|
||||
|
||||
/obj/machinery/computer/research_shuttle
|
||||
name = "Research Shuttle Console"
|
||||
icon = 'computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
req_access = list(ACCESS_RESEARCH)
|
||||
circuit = "/obj/item/weapon/circuitboard/research_shuttle"
|
||||
var/hacked = 0
|
||||
var/location = 0 //0 = station, 1 = research base
|
||||
|
||||
/obj/machinery/computer/research_shuttle/attack_hand(user as mob)
|
||||
src.add_fingerprint(usr)
|
||||
var/dat
|
||||
dat = text("<center>research shuttle:<br> <b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>")
|
||||
user << browse("[dat]", "window=researchshuttle;size=200x100")
|
||||
|
||||
/obj/machinery/computer/research_shuttle/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.machine = src
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["move"])
|
||||
if(ticker.mode.name == "blob")
|
||||
if(ticker.mode:declared)
|
||||
usr << "Under directive 7-10, [station_name()] is quarantined until further notice."
|
||||
return
|
||||
|
||||
if (!research_shuttle_moving)
|
||||
usr << "\blue Shuttle recieved message and will be sent shortly."
|
||||
move_research_shuttle()
|
||||
else
|
||||
usr << "\blue Shuttle is already moving."
|
||||
|
||||
/obj/machinery/computer/research_shuttle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
var/obj/item/weapon/card/emag/E = W
|
||||
if(E.uses)
|
||||
E.uses--
|
||||
else
|
||||
return
|
||||
src.req_access = list()
|
||||
hacked = 1
|
||||
usr << "You fried the consoles ID checking system. It's now available to everyone!"
|
||||
|
||||
else if(istype(W, /obj/item/weapon/screwdriver))
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
||||
var/obj/item/weapon/circuitboard/research_shuttle/M = new /obj/item/weapon/circuitboard/research_shuttle( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
|
||||
if (src.stat & BROKEN)
|
||||
user << "\blue The broken glass falls out."
|
||||
new /obj/item/weapon/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
else
|
||||
user << "\blue You disconnect the monitor."
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
|
||||
del(src)
|
||||
@@ -0,0 +1,104 @@
|
||||
obj/machinery/gas_chromatography
|
||||
name = "Gas Chromatography Spectrometer"
|
||||
|
||||
obj/machinery/gas_chromatography/Topic(href, href_list)
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=artanalyser")
|
||||
usr.machine = null
|
||||
|
||||
updateDialog()
|
||||
|
||||
obj/machinery/gas_chromatography/attack_hand(var/mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.machine = src
|
||||
var/dat = "<B>Gas Chromatography Spectrometer</B><BR>"
|
||||
dat += "<hr>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh<BR>"
|
||||
dat += "<A href='?src=\ref[src];close=1'>Close<BR>"
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
|
||||
obj/machinery/accelerator
|
||||
name = "Accelerator Spectrometer"
|
||||
|
||||
obj/machinery/accelerator/Topic(href, href_list)
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=artanalyser")
|
||||
usr.machine = null
|
||||
|
||||
updateDialog()
|
||||
|
||||
obj/machinery/accelerator/attack_hand(var/mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.machine = src
|
||||
var/dat = "<B>Accelerator Spectrometer</B><BR>"
|
||||
dat += "<hr>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh<BR>"
|
||||
dat += "<A href='?src=\ref[src];close=1'>Close<BR>"
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
|
||||
obj/machinery/fourier_transform
|
||||
name = "Fourier Transform Spectroscope "
|
||||
|
||||
obj/machinery/fourier_transform/Topic(href, href_list)
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=artanalyser")
|
||||
usr.machine = null
|
||||
|
||||
updateDialog()
|
||||
|
||||
obj/machinery/fourier_transform/attack_hand(var/mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.machine = src
|
||||
var/dat = "<B>Fourier Transform Spectroscope</B><BR>"
|
||||
dat += "<hr>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh<BR>"
|
||||
dat += "<A href='?src=\ref[src];close=1'>Close<BR>"
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
|
||||
obj/machinery/radiometric
|
||||
name = "Radiometric Exposure Spectrometer"
|
||||
|
||||
obj/machinery/radiometric/Topic(href, href_list)
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=artanalyser")
|
||||
usr.machine = null
|
||||
|
||||
updateDialog()
|
||||
|
||||
obj/machinery/radiometric/attack_hand(var/mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.machine = src
|
||||
var/dat = "<B>Radiometric Exposure Spectrometer</B><BR>"
|
||||
dat += "<hr>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh<BR>"
|
||||
dat += "<A href='?src=\ref[src];close=1'>Close<BR>"
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
|
||||
obj/machinery/ion_mobility
|
||||
name = "Ion Mobility Spectrometer "
|
||||
|
||||
obj/machinery/ion_mobility/Topic(href, href_list)
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=artanalyser")
|
||||
usr.machine = null
|
||||
|
||||
updateDialog()
|
||||
|
||||
obj/machinery/ion_mobility/attack_hand(var/mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.machine = src
|
||||
var/dat = "<B>Ion Mobility Spectrometer</B><BR>"
|
||||
dat += "<hr>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh<BR>"
|
||||
dat += "<A href='?src=\ref[src];close=1'>Close<BR>"
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
+1
-1
@@ -228,7 +228,7 @@
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,originator))
|
||||
if(istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly))
|
||||
continue
|
||||
if(prob(10)) M << "\red Energy radiating from the [src] is making you feel numb."
|
||||
if(prob(10)) M << "\red Energy radiating from the [originator] is making you feel numb."
|
||||
if(prob(20))
|
||||
M << "\red Your body goes numb for a moment."
|
||||
M.stunned += 2
|
||||
+9
-6
@@ -16,13 +16,9 @@
|
||||
heat_transfer_coefficient = 0.02
|
||||
protective_temperature = 1000
|
||||
|
||||
/area/anomaly
|
||||
name = "Anomaly Lab"
|
||||
icon_state = "anomaly"
|
||||
|
||||
/obj/structure/noticeboard/anomaly/New()
|
||||
notices = 4
|
||||
icon_state = "nboard04"
|
||||
notices = 5
|
||||
icon_state = "nboard05"
|
||||
|
||||
//add some memos
|
||||
var/obj/item/weapon/paper/P = new()
|
||||
@@ -52,3 +48,10 @@
|
||||
P.stamped = list(/obj/item/weapon/stamp/rd)
|
||||
P.overlays = list("paper_stamped_rd")
|
||||
src.contents += P
|
||||
|
||||
P = new()
|
||||
P.name = "Reminder regarding the anomalous material suits"
|
||||
P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around the station in them unless you're field testing something, R"
|
||||
P.stamped = list(/obj/item/weapon/stamp/rd)
|
||||
P.overlays = list("paper_stamped_rd")
|
||||
src.contents += P
|
||||
Reference in New Issue
Block a user