Signed-off-by: Cael Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael Aislinn
2012-05-17 15:34:30 +10:00
parent 339ca37138
commit c4bb3e2481
10 changed files with 3872 additions and 3850 deletions
+6
View File
@@ -161,9 +161,12 @@
#define FILE_DIR "code/WorkInProgress"
#define FILE_DIR "code/WorkInProgress/Apples"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/BirdMan"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jumper"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/tajara_sprites"
#define FILE_DIR "code/WorkInProgress/Chinsky"
#define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/Mini"
@@ -199,6 +202,7 @@
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/backup"
#define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
@@ -1139,6 +1143,8 @@
#include "code\WorkInProgress\AI_Visibility.dm"
#include "code\WorkInProgress\buildmode.dm"
#include "code\WorkInProgress\explosion_particles.dm"
#include "code\WorkInProgress\Cael_Aislinn\BirdMan\bird_transformation.dm"
#include "code\WorkInProgress\Cael_Aislinn\BirdMan\birdman.dm"
#include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm"
#include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm"
#include "code\WorkInProgress\Cael_Aislinn\Rust\core_monitor.dm"
+1
View File
@@ -25,6 +25,7 @@ obj/machinery/atmospherics
process()
build_network()
..()
proc
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
@@ -3,7 +3,7 @@
real_name = "tajaran"
voice_name = "tajaran"
icon = 'tajaran.dmi'
icon_state = "m-none"
icon_state = "m_none"
var/list/tajspeak_letters = list("~","*","-")
//
universal_speak = 1 //hacky fix until someone can figure out how to make them only understand humans
+1 -4
View File
@@ -123,15 +123,12 @@
icon_state = "security_det"
/obj/machinery/computer/lockdown
/*
name = "Lockdown Control"
desc = "Used to control blast doors."
icon_state = "lockdown"
circuit = "/obj/item/weapon/circuitboard/lockdown"
var/connectedDoorIds[0]
var/department = ""
var/connected_doors[0][0]
*/
var/department
/obj/machinery/computer/crew
name = "Crew monitoring computer"
+69 -47
View File
@@ -1,15 +1,17 @@
//this computer displays status and remotely activates multiple shutters / blast doors
//might even make it able to lock / electrify area doors, later
//todo: lock / electrify specified area doors? might be a bit gamebreaking
/obj/machinery/computer/lockdown
name = "Lockdown Control"
//for reference
/*name = "Lockdown Control"
desc = "Used to control blast doors."
icon_state = "lockdown"
circuit = "/obj/item/weapon/circuitboard/lockdown"
var/connectedDoorIds[0][0]
var/department = ""
var/connected_doors[0][0]
///obj/machinery/door/poddoor
var/connected_doors[0][0]
var/department*/
New()
..()
@@ -17,40 +19,40 @@
//only load blast doors for map-defined departments for the moment
switch(department)
if("Engineering")
connectedDoorIds.Add("Engineering Primary Access")
connectedDoorIds.Add("Engineering Secondary Access")
connectedDoorIds.Add("Fore Maintenance Access")
connectedDoorIds.Add("Aft Maintenance Access")
connectedDoorIds.Add("Particle Accelerator Rad Shielding")
connectedDoorIds.Add("Foreward Emitter Array Rad Shielding")
connectedDoorIds.Add("Aftward Emitter Array Rad Shielding")
connectedDoorIds.Add("Starboard Observation Rad Shielding")
connectedDoorIds.Add("Atmospheric Storage Rad Shielding")
connectedDoorIds.Add("Construction Storage Rad Shielding")
connectedDoorIds.Add("Engineering Secure Storage")
if("RustEngineering-Antiqua")
connectedDoorIds.Add("Port vessel entry")
connectedDoorIds.Add("Starboard vessel entry")
connectedDoorIds.Add("Central aft shell access")
connectedDoorIds.Add("Port aft shell access")
connectedDoorIds.Add("Starboard aft shell access")
//Antiqua SinguloEngineering
connected_doors.Add("Engineering Primary Access")
connected_doors.Add("Engineering Secondary Access")
connected_doors.Add("Fore Maintenance Access")
connected_doors.Add("Aft Maintenance Access")
connected_doors.Add("Particle Accelerator Rad Shielding")
connected_doors.Add("Foreward Emitter Array Rad Shielding")
connected_doors.Add("Aftward Emitter Array Rad Shielding")
connected_doors.Add("Starboard Observation Rad Shielding")
connected_doors.Add("Atmospheric Storage Rad Shielding")
connected_doors.Add("Construction Storage Rad Shielding")
connected_doors.Add("Engineering Secure Storage")
//Antiqua RustEngineering
connected_doors.Add("Port vessel entry")
connected_doors.Add("Starboard vessel entry")
connected_doors.Add("Central aft shell access")
connected_doors.Add("Port aft shell access")
connected_doors.Add("Starboard aft shell access")
if("Medbay")
connectedDoorIds.Add("Genetics Outer Shutters")
connectedDoorIds.Add("Genetics Inner Shutters")
connectedDoorIds.Add("Chemistry Outer Shutters")
connectedDoorIds.Add("Observation Shutters")
connectedDoorIds.Add("Patient Room 1 Shutters")
connectedDoorIds.Add("Patient Room 2 Shutters")
connectedDoorIds.Add("Patient Room 3 Shutters")
//Exodus Medbay
connected_doors.Add("Genetics Outer Shutters")
connected_doors.Add("Genetics Inner Shutters")
connected_doors.Add("Chemistry Outer Shutters")
connected_doors.Add("Observation Shutters")
connected_doors.Add("Patient Room 1 Shutters")
connected_doors.Add("Patient Room 2 Shutters")
connected_doors.Add("Patient Room 3 Shutters")
//loop through the world, grabbing all the relevant doors
spawn(1)
for(var/networkId in connectedDoorIds)
//world << "\blue Creating [networkId]"
for(var/obj/machinery/door/poddoor/D in world)
if(D.id == networkId)
connected_doors.Add(D)
//world << "\blue Added [D]"
for(var/obj/machinery/door/poddoor/D in world)
if(D.lockdownNetwork in connected_doors)
var/list/L = connected_doors[D.lockdownNetwork]
L.Add(D)
attack_ai(mob/user)
attack_hand(user)
@@ -95,20 +97,36 @@
return
if( href_list["close_all"] )
for(var/obj/machinery/door/poddoor/D in connected_doors)
if(D.id == href_list["netId"])
if(!D.density)
spawn(0)
D.close()
if(href_list["networkTag"] == "all")
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.doorTag == href_list["doorTag"])
if(!D.density)
spawn(0)
D.close()
else if(href_list["networkTag"] in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
if(D.doorTag == href_list["doorTag"])
if(!D.density)
spawn(0)
D.close()
src.updateDialog()
return
if( href_list["open_all"] )
for(var/obj/machinery/door/poddoor/D in connected_doors)
if(D.id == href_list["netId"])
if(D.density)
spawn(0)
D.open()
if(href_list["networkTag"] == "all")
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.doorTag == href_list["doorTag"])
if(D.density)
spawn(0)
D.open()
else if(href_list["networkTag"] in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
if(D.doorTag == href_list["doorTag"])
if(D.density)
spawn(0)
D.open()
src.updateDialog()
return
@@ -126,12 +144,16 @@
var/t = "<B>Lockdown Control</B><BR>"
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
t += "<table border=1>"
for(var/curNetId in connectedDoorIds)
for(var/curNetId in connected_doors)
var/list/L = connected_doors[curNetId]
if(L.len == 0)
continue
t += "<tr>"
t += "<td><b>" + curNetId + "<b></td>"
t += "<td><b><a href='?src=\ref[src];open_all=1;netId=[curNetId]'>Open All</a> / <a href='?src=\ref[src];close_all=0;netId=[curNetId]'>Close All</a></b></td>"
t += "<td><b><a href='?src=\ref[src];open_all=1;networkTag=[curNetId]'>Open All</a> / <a href='?src=\ref[src];close_all=1;networkTag=[curNetId]'>Close All</a></b></td>"
t += "</tr>"
for(var/obj/machinery/door/poddoor/D in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
if(D.id == curNetId )
t += "<tr>"
t += "<td> [D.networkTag]</td>"
@@ -143,4 +165,4 @@
t += "</table>"
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
user << browse(t, "window=lockdown;size=500x800")
onclose(user, "lockdown")
onclose(user, "lockdown")
+3 -2
View File
@@ -3,6 +3,8 @@
desc = "A type of powerful blast door."
icon = 'rapid_pdoor.dmi'
icon_state = "pdoor1"
var/lockdownNetwork
var/doorTag
var/id = 1.0
var/networkTag = ""
@@ -45,7 +47,7 @@
if(operating == 1) //emag again
src.operating = 0
if(autoclose)
spawn(150)
spawn(50)
autoclose()
return 1
@@ -64,7 +66,6 @@
src.operating = 0
return
/obj/machinery/door/poddoor/two_tile_hor/open()
if (src.operating == 1) //doors can still open when emag-disabled
return
+4 -2
View File
@@ -199,6 +199,7 @@
verbs += /proc/possess
verbs += /proc/release
verbs += /client/proc/make_tajaran
verbs += /client/proc/make_birdman
verbs += /client/proc/admin_deny_shuttle
verbs += /client/proc/cmd_admin_christmas
verbs += /client/proc/editappear
@@ -454,6 +455,7 @@
verbs -= /client/proc/kill_airgroup
verbs -= /client/proc/debug_master_controller
verbs -= /client/proc/make_tajaran
verbs -= /client/proc/make_birdman
verbs -= /client/proc/admin_deny_shuttle
verbs -= /client/proc/cmd_admin_christmas
verbs -= /client/proc/editappear
@@ -891,8 +893,8 @@
switch(alert("You sure you wish to edit this mob's appearance?",,"Yes","No"))
if("No")
return
if(istype(M,/mob/living/carbon/human/tajaran))
usr << "\red Tajarans do not have an editable appearance... yet!"
if(istype(M,/mob/living/carbon/human/tajaran) || istype(M,/mob/living/carbon/human/birdman))
usr << "\red Humanoid aliens do not have an editable appearance... yet!"
else
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
if(new_facial)
+225 -248
View File
@@ -1,3 +1,5 @@
// the inlet stage of the gas turbine electricity generator
/obj/machinery/compressor
name = "compressor"
desc = "The compressor stage of a gas turbine generator."
@@ -12,7 +14,62 @@
var/rpm = 0
var/rpmtarget = 0
var/capacity = 1e6
var/comp_id = 0
var/comp_id = "turbine_gens"
New()
..()
gas_contained = new
inturf = get_step(src, dir)
spawn(5)
turbine = locate() in get_step(src, get_dir(inturf, src))
if(!turbine)
stat |= BROKEN
Topic(href, href_list)
if(..())
return
if( href_list["view"] )
usr.client.eye = src
src.add_fingerprint(usr)
src.updateUsrDialog()
#define COMPFRICTION 5e5
#define COMPSTARTERLOAD 2800
process()
if(!starter)
return
overlays = null
if(stat & BROKEN)
return
if(!turbine)
stat |= BROKEN
return
rpm = 0.9* rpm + 0.1 * rpmtarget
var/datum/gas_mixture/environment = inturf.return_air()
var/transfer_moles = environment.total_moles/10
//var/transfer_moles = rpm/10000*capacity
var/datum/gas_mixture/removed = inturf.remove_air(transfer_moles)
gas_contained.merge(removed)
rpm = max(0, rpm - (rpm*rpm)/COMPFRICTION)
if(starter && !(stat & NOPOWER))
use_power(2800)
if(rpm<1000)
rpmtarget = 1000
else
if(rpm<1000)
rpmtarget = 0
if(rpm>50000)
overlays += image('pipes.dmi', "comp-o4", FLY_LAYER)
else if(rpm>10000)
overlays += image('pipes.dmi', "comp-o3", FLY_LAYER)
else if(rpm>2000)
overlays += image('pipes.dmi', "comp-o2", FLY_LAYER)
else if(rpm>500)
overlays += image('pipes.dmi', "comp-o1", FLY_LAYER)
//TODO: DEFERRED
/obj/machinery/power/turbine
name = "gas turbine generator"
@@ -26,6 +83,108 @@
var/turf/simulated/outturf
var/lastgen
New()
..()
outturf = get_step(src, dir)
spawn(5)
compressor = locate() in get_step(src, get_dir(outturf, src))
if(!compressor)
stat |= BROKEN
#define TURBPRES 9000000
#define TURBGENQ 20000
#define TURBGENG 0.8
process()
overlays = null
if(stat & BROKEN)
return
if(!compressor)
stat |= BROKEN
return
if(!compressor.starter)
return
lastgen = ((compressor.rpm / TURBGENQ)**TURBGENG) *TURBGENQ
add_avail(lastgen)
var/newrpm = ((compressor.gas_contained.temperature) * compressor.gas_contained.total_moles)/4
newrpm = max(0, newrpm)
if(!compressor.starter || newrpm > 1000)
compressor.rpmtarget = newrpm
if(compressor.gas_contained.total_moles>0)
var/oamount = min(compressor.gas_contained.total_moles, (compressor.rpm+100)/35000*compressor.capacity)
var/datum/gas_mixture/removed = compressor.gas_contained.remove(oamount)
outturf.assume_air(removed)
if(lastgen > 100)
overlays += image('pipes.dmi', "turb-o", FLY_LAYER)
for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.interact(M)
AutoUpdateAI(src)
attack_ai(mob/user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
attack_hand(mob/user)
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
proc/interact(mob/user)
if ( (get_dist(src, user) > 1 ) || (stat & (NOPOWER|BROKEN)) && (!istype(user, /mob/living/silicon/ai)) )
user.machine = null
user << browse(null, "window=turbine")
return
user.machine = src
var/t = "<TT><B>Gas Turbine Generator</B><HR>"
t += "Generated power : [round(lastgen)] W<BR>"
t += "Turbine: [round(compressor.rpm)] RPM<BR>"
t += "Starter: [ compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]"
t += "<HR>"
t += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A>"
user << browse(t, "window=turbine")
onclose(user, "turbine")
return
Topic(href, href_list)
..()
if(stat & BROKEN)
return
if (usr.stat || usr.restrained() )
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
if(!istype(usr, /mob/living/silicon/ai))
usr << "\red You don't have the dexterity to do this!"
return
if (( usr.machine==src && ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
if( href_list["close"] )
usr << browse(null, "window=turbine")
usr.machine = null
return
else if( href_list["str"] )
compressor.starter = !compressor.starter
spawn(0)
for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.interact(M)
else
usr << browse(null, "window=turbine")
usr.machine = null
return
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/obj/machinery/computer/turbine_computer
name = "Gas turbine control computer"
desc = "A computer to remotely control a gas turbine"
@@ -33,210 +192,22 @@
icon_state = "airtunnel0e"
anchored = 1
density = 1
var/obj/machinery/compressor/compressor
var/list/obj/machinery/compressor/compressors
var/list/obj/machinery/door/poddoor/doors
var/id = 0
var/door_status = 0
var/vent_network = "turbine_gens"
// the inlet stage of the gas turbine electricity generator
/obj/machinery/compressor/New()
..()
gas_contained = new
inturf = get_step(src, dir)
spawn(5)
turbine = locate() in get_step(src, get_dir(inturf, src))
if(!turbine)
stat |= BROKEN
#define COMPFRICTION 5e5
#define COMPSTARTERLOAD 2800
/obj/machinery/compressor/process()
if(!starter)
return
overlays = null
if(stat & BROKEN)
return
if(!turbine)
stat |= BROKEN
return
rpm = 0.9* rpm + 0.1 * rpmtarget
var/datum/gas_mixture/environment = inturf.return_air()
var/transfer_moles = environment.total_moles/10
//var/transfer_moles = rpm/10000*capacity
var/datum/gas_mixture/removed = inturf.remove_air(transfer_moles)
gas_contained.merge(removed)
rpm = max(0, rpm - (rpm*rpm)/COMPFRICTION)
if(starter && !(stat & NOPOWER))
use_power(2800)
if(rpm<1000)
rpmtarget = 1000
else
if(rpm<1000)
rpmtarget = 0
if(rpm>50000)
overlays += image('pipes.dmi', "comp-o4", FLY_LAYER)
else if(rpm>10000)
overlays += image('pipes.dmi', "comp-o3", FLY_LAYER)
else if(rpm>2000)
overlays += image('pipes.dmi', "comp-o2", FLY_LAYER)
else if(rpm>500)
overlays += image('pipes.dmi', "comp-o1", FLY_LAYER)
//TODO: DEFERRED
/obj/machinery/power/turbine/New()
..()
outturf = get_step(src, dir)
spawn(5)
compressor = locate() in get_step(src, get_dir(outturf, src))
if(!compressor)
stat |= BROKEN
#define TURBPRES 9000000
#define TURBGENQ 20000
#define TURBGENG 0.8
/obj/machinery/power/turbine/process()
overlays = null
if(stat & BROKEN)
return
if(!compressor)
stat |= BROKEN
return
if(!compressor.starter)
return
lastgen = ((compressor.rpm / TURBGENQ)**TURBGENG) *TURBGENQ
add_avail(lastgen)
var/newrpm = ((compressor.gas_contained.temperature) * compressor.gas_contained.total_moles)/4
newrpm = max(0, newrpm)
if(!compressor.starter || newrpm > 1000)
compressor.rpmtarget = newrpm
if(compressor.gas_contained.total_moles>0)
var/oamount = min(compressor.gas_contained.total_moles, (compressor.rpm+100)/35000*compressor.capacity)
var/datum/gas_mixture/removed = compressor.gas_contained.remove(oamount)
outturf.assume_air(removed)
if(lastgen > 100)
overlays += image('pipes.dmi', "turb-o", FLY_LAYER)
for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.interact(M)
AutoUpdateAI(src)
/obj/machinery/power/turbine/attack_ai(mob/user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
/obj/machinery/power/turbine/attack_hand(mob/user)
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
/obj/machinery/power/turbine/proc/interact(mob/user)
if ( (get_dist(src, user) > 1 ) || (stat & (NOPOWER|BROKEN)) && (!istype(user, /mob/living/silicon/ai)) )
user.machine = null
user << browse(null, "window=turbine")
return
user.machine = src
var/t = "<TT><B>Gas Turbine Generator</B><HR><PRE>"
t += "Generated power : [round(lastgen)] W<BR><BR>"
t += "Turbine: [round(compressor.rpm)] RPM<BR>"
t += "Starter: [ compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]"
t += "</PRE><HR><A href='?src=\ref[src];close=1'>Close</A>"
t += "</TT>"
user << browse(t, "window=turbine")
onclose(user, "turbine")
return
/obj/machinery/power/turbine/Topic(href, href_list)
..()
if(stat & BROKEN)
return
if (usr.stat || usr.restrained() )
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
if(!istype(usr, /mob/living/silicon/ai))
usr << "\red You don't have the dexterity to do this!"
return
if (( usr.machine==src && ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
if( href_list["close"] )
usr << browse(null, "window=turbine")
usr.machine = null
return
else if( href_list["str"] )
compressor.starter = !compressor.starter
spawn(0)
for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.interact(M)
else
usr << browse(null, "window=turbine")
usr.machine = null
return
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/obj/machinery/computer/turbine_computer/New()
..()
spawn(5)
for(var/obj/machinery/compressor/C in world)
if(id == C.comp_id)
compressor = C
doors = new /list()
for(var/obj/machinery/door/poddoor/P in world)
if(P.id == id)
doors += P
New()
..()
compressors = new/list()
spawn(5)
for(var/obj/machinery/compressor/C in world)
if(src.vent_network == C.comp_id)
compressors.Add(C)
for(var/obj/machinery/door/poddoor/D in world)
if(src.vent_network == D.networkTag)
doors.Add(D)
/*
/obj/machinery/computer/turbine_computer/attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
@@ -269,60 +240,66 @@
else
src.attack_hand(user)
return
*/
/obj/machinery/computer/turbine_computer/attack_hand(var/mob/user as mob)
user.machine = src
var/dat
if(src.compressor)
dat += {"<BR><B>Gas turbine remote control system</B><HR>
\nTurbine status: [ src.compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]
\n<BR>
\nTurbine speed: [src.compressor.rpm]rpm<BR>
\nPower currently being generated: [src.compressor.turbine.lastgen]W<BR>
\nInternal gas temperature: [src.compressor.gas_contained.temperature]K<BR>
\nVent doors: [ src.door_status ? "<A href='?src=\ref[src];doors=1'>Closed</A> <B>Open</B>" : "<B>Closed</B> <A href='?src=\ref[src];doors=1'>Open</A>"]
\n</PRE><HR><A href='?src=\ref[src];view=1'>View</A>
\n</PRE><HR><A href='?src=\ref[src];close=1'>Close</A>
\n<BR>
\n"}
else
dat += "\red<B>No compatible attached compressor found."
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
/obj/machinery/computer/turbine_computer/Topic(href, href_list)
if(..())
attack_hand(var/mob/user as mob)
interact()
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
proc/interact()
if ( (get_dist(src, usr) > 1 ) || (stat & (NOPOWER|BROKEN)) && (!istype(usr, /mob/living/silicon/ai)) )
usr.machine = null
usr << browse(null, "window=turbinecomp")
return
usr.machine = src
if( href_list["view"] )
usr.client.eye = src.compressor
else if( href_list["str"] )
src.compressor.starter = !src.compressor.starter
else if (href_list["doors"])
var/dat = "<TT><B>Gas turbine remote control system</B><HR>"
if(src.doors.len)
var/closed = 0
for(var/obj/machinery/door/poddoor/D in src.doors)
if (door_status == 0)
spawn( 0 )
D.open()
door_status = 1
else
spawn( 0 )
D.close()
door_status = 0
if(D.density)
closed = 1
dat += "Connected vent status: <font color=blue>[closed ? "<b>Closed</b> <a href='?src=\ref[src];opendoors=1'>\[Open\]</a>" : "<b>Open</b> <a href='?src=\ref[src];closedoors=1'>\[Close\]</a>"]</font>"
else
dat += "<font color=red><b>No vents connected.</b></font>"
if(src.compressors.len)
for(var/obj/machinery/compressor/C in compressors)
dat += "Turbine status: [C.starter ? "<A href='?src=\ref[C];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[C];str=1'>On</A>"]<BR>"
dat += "Turbine speed: [C.rpm]rpm<BR>"
dat += "Power currently being generated: [C.turbine.lastgen]W<BR>"
dat += "Internal gas temperature: [C.gas_contained.temperature]K<BR>"
dat += "<A href='?src=\ref[src];view=1'>View</A><BR>"
dat += "<HR>"
else
dat += "\red<B>No compatible attached compressors found."
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A><BR>"
usr << browse(dat, "window=turbinecomp;size=400x500")
onclose(usr, "turbinecomp")
Topic(href, href_list)
if(..())
return
if (href_list["opendoors"])
for(var/obj/machinery/door/poddoor/D in src.doors)
spawn(0)
D.open()
if (href_list["closedoors"])
for(var/obj/machinery/door/poddoor/D in src.doors)
spawn(0)
D.close()
else if( href_list["close"] )
usr << browse(null, "window=computer")
usr << browse(null, "window=turbinecomp")
usr.machine = null
return
src.add_fingerprint(usr)
src.updateUsrDialog()
return
src.updateUsrDialog()
return
/obj/machinery/computer/turbine_computer/process()
src.updateDialog()
return
process()
src.updateDialog()
return
+1
View File
@@ -2,6 +2,7 @@ abi79 - Game Master
arcalane - Game Admin
bobbehluvspropane - Game Admin
cacophony - Game Admin
caelaislinn - Game Master
cajoes - Game Admin
cib - Game Master
compactninja - Game Master
+3561 -3546
View File
File diff suppressed because it is too large Load Diff