diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm index 9e86cf158b..b49a1f36e7 100644 --- a/code/defines/obj/computer.dm +++ b/code/defines/obj/computer.dm @@ -71,32 +71,6 @@ var/h_b = 245.0 - -/obj/machinery/computer/pod - name = "Pod Launch Control" - desc = "A control for launching pods." - icon_state = "computer_generic" - var/id = 1.0 - var/obj/machinery/mass_driver/connected = null - var/timing = 0.0 - var/time = 30.0 - - -/obj/machinery/computer/pod/old - icon_state = "old" - name = "DoorMex Control Computer" - - -/obj/machinery/computer/pod/old/syndicate - name = "ProComp Executive IIc" - desc = "The Syndicate operate on a tight budget. Operates external airlocks." - - -/obj/machinery/computer/pod/old/swf - name = "Magix System IV" - desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" - - /obj/machinery/computer/secure_data name = "Security Records" desc = "Used to view and edit personnel's security records" diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 4db4bb8280..e78c65031b 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -290,193 +290,11 @@ Pod/Blast Doors computer locked += L -/obj/machinery/computer/pod/proc/alarm() - if(stat & (NOPOWER|BROKEN)) - return - if (!( connected )) - viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!" - return - for(var/obj/machinery/door/poddoor/M in machines) - if (M.id == id) - spawn( 0 ) - M.open() - return - sleep(20) - //connected.drive() *****RM from 40.93.3S - for(var/obj/machinery/mass_driver/M in machines) - if(M.id == id) - M.power = connected.power - M.drive() - sleep(50) - for(var/obj/machinery/door/poddoor/M in machines) - if (M.id == id) - spawn( 0 ) - M.close() - return - return -/obj/machinery/computer/pod/New() - ..() - spawn( 5 ) - for(var/obj/machinery/mass_driver/M in machines) - if (M.id == id) - connected = M - else - return - return - -/obj/machinery/computer/pod/attackby(I as obj, user as mob) - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(loc, 'Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) - new /obj/item/weapon/shard( loc ) - - //generate appropriate circuitboard. Accounts for /pod/old computer types - var/obj/item/weapon/circuitboard/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/weapon/circuitboard/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/weapon/circuitboard/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/weapon/circuitboard/pod( A ) - - for (var/obj/C in src) - C.loc = loc - M.id = id - 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( loc ) - - //generate appropriate circuitboard. Accounts for /pod/old computer types - var/obj/item/weapon/circuitboard/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/weapon/circuitboard/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/weapon/circuitboard/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/weapon/circuitboard/pod( A ) - - for (var/obj/C in src) - C.loc = loc - M.id = id - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) - else - attack_hand(user) - return - -/obj/machinery/computer/pod/attack_ai(var/mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/pod/attack_paw(var/mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/pod/attack_hand(var/mob/user as mob) - if(..()) - return - - var/dat = "Mass Driver Controls" - user.machine = src - var/d2 - if (timing) - d2 = text("Stop Time Launch", src) - else - d2 = text("Initiate Time Launch", src) - var/second = time % 60 - var/minute = (time - second) / 60 - dat += text("
\nTimer System: []\nTime Left: [][] - - + +", d2, (minute ? text("[]:", minute) : null), second, src, src, src, src) - if (connected) - var/temp = "" - var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 ) - for(var/t in L) - if (t == connected.power) - temp += text("[] ", t) - else - temp += text("[] ", src, t, t) - //Foreach goto(172) - dat += text("
\nPower Level: []
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
", temp, src, src, src) - //*****RM from 40.93.3S - else - dat += text("
\nToggle Outer Door
", src) - //***** - dat += text("

Close
", user) - user << browse(dat, "window=computer;size=400x500") - onclose(user, "computer") - return - -/obj/machinery/computer/pod/process() - ..() - if (timing) - if (time > 0) - time = round(time) - 1 - else - alarm() - time = 0 - timing = 0 - updateDialog() - return - -/obj/machinery/computer/pod/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src - if (href_list["power"]) - var/t = text2num(href_list["power"]) - t = min(max(0.25, t), 16) - if (connected) - connected.power = t - else - if (href_list["alarm"]) - alarm() - else - if (href_list["time"]) - timing = text2num(href_list["time"]) - else - if (href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 0), 120) - else - if (href_list["door"]) - if(istype(src, /obj/machinery/computer/pod/old/syndicate))//Added here so Nuke ops don't go running naked into space before moving the shuttle. - if(syndicate_station_at_station == 0) - usr << "\red You need to launch the Syndicate Shuttle via the computer terminal at the head of the ship before departing." - return - for(var/obj/machinery/door/poddoor/M in machines) - if (M.id == id) - if (M.density) - spawn( 0 ) - M.open() - return - else - spawn( 0 ) - M.close() - return - //Foreach goto(298) - add_fingerprint(usr) - updateUsrDialog() - - return /obj/machinery/mass_driver/proc/drive(amount) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm new file mode 100644 index 0000000000..51f00e6115 --- /dev/null +++ b/code/game/machinery/computer/pod.dm @@ -0,0 +1,222 @@ +/obj/machinery/computer/pod + name = "Pod Launch Control" + desc = "A control for launching pods." + icon_state = "computer_generic" + var + id = 1.0 + obj/machinery/mass_driver/connected = null + timing = 0.0 + time = 30.0 + + +/obj/machinery/computer/pod/New() + ..() + spawn( 5 ) + for(var/obj/machinery/mass_driver/M in world) + if (M.id == id) + connected = M + else + return + return + + +/obj/machinery/computer/pod/proc/alarm() + if(stat & (NOPOWER|BROKEN)) + return + + if (!( connected )) + viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!" + return + + for(var/obj/machinery/door/poddoor/M in world) + if (M.id == id) + spawn( 0 ) + M.open() + return + sleep(20) + + //connected.drive() *****RM from 40.93.3S + for(var/obj/machinery/mass_driver/M in world) + if(M.id == id) + M.power = connected.power + M.drive() + + sleep(50) + for(var/obj/machinery/door/poddoor/M in world) + if (M.id == id) + spawn( 0 ) + M.close() + return + return + + +/obj/machinery/computer/pod/attackby(I as obj, user as mob) + if(istype(I, /obj/item/weapon/screwdriver)) + playsound(loc, 'Screwdriver.ogg', 50, 1) + if(do_after(user, 20)) + if (stat & BROKEN) + user << "\blue The broken glass falls out." + var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) + new /obj/item/weapon/shard( loc ) + + //generate appropriate circuitboard. Accounts for /pod/old computer types + var/obj/item/weapon/circuitboard/pod/M = null + if(istype(src, /obj/machinery/computer/pod/old)) + M = new /obj/item/weapon/circuitboard/olddoor( A ) + if(istype(src, /obj/machinery/computer/pod/old/syndicate)) + M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) + if(istype(src, /obj/machinery/computer/pod/old/swf)) + M = new /obj/item/weapon/circuitboard/swfdoor( A ) + else //it's not an old computer. Generate standard pod circuitboard. + M = new /obj/item/weapon/circuitboard/pod( A ) + + for (var/obj/C in src) + C.loc = loc + M.id = id + 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( loc ) + + //generate appropriate circuitboard. Accounts for /pod/old computer types + var/obj/item/weapon/circuitboard/pod/M = null + if(istype(src, /obj/machinery/computer/pod/old)) + M = new /obj/item/weapon/circuitboard/olddoor( A ) + if(istype(src, /obj/machinery/computer/pod/old/syndicate)) + M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) + if(istype(src, /obj/machinery/computer/pod/old/swf)) + M = new /obj/item/weapon/circuitboard/swfdoor( A ) + else //it's not an old computer. Generate standard pod circuitboard. + M = new /obj/item/weapon/circuitboard/pod( A ) + + for (var/obj/C in src) + C.loc = loc + M.id = id + A.circuit = M + A.state = 4 + A.icon_state = "4" + A.anchored = 1 + del(src) + else + attack_hand(user) + return + + +/obj/machinery/computer/pod/attack_ai(var/mob/user as mob) + return attack_hand(user) + + +/obj/machinery/computer/pod/attack_paw(var/mob/user as mob) + return attack_hand(user) + + +/obj/machinery/computer/pod/attack_hand(var/mob/user as mob) + if(..()) + return + + var/dat = "Mass Driver Controls" + user.machine = src + var/d2 + if (timing) + d2 = text("Stop Time Launch", src) + else + d2 = text("Initiate Time Launch", src) + var/second = time % 60 + var/minute = (time - second) / 60 + dat += text("
\nTimer System: []\nTime Left: [][] - - + +", d2, (minute ? text("[]:", minute) : null), second, src, src, src, src) + if (connected) + var/temp = "" + var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 ) + for(var/t in L) + if (t == connected.power) + temp += text("[] ", t) + else + temp += text("[] ", src, t, t) + //Foreach goto(172) + dat += text("
\nPower Level: []
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
", temp, src, src, src) + //*****RM from 40.93.3S + else + dat += text("
\nToggle Outer Door
", src) + //***** + dat += text("

Close
", user) + user << browse(dat, "window=computer;size=400x500") + onclose(user, "computer") + return + + +/obj/machinery/computer/pod/process() + ..() + if (timing) + if (time > 0) + time = round(time) - 1 + else + alarm() + time = 0 + timing = 0 + updateDialog() + return + + +/obj/machinery/computer/pod/Topic(href, href_list) + if(..()) + return + if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) + usr.machine = src + if (href_list["power"]) + var/t = text2num(href_list["power"]) + t = min(max(0.25, t), 16) + if (connected) + connected.power = t + else + if (href_list["alarm"]) + alarm() + else + if (href_list["time"]) + timing = text2num(href_list["time"]) + else + if (href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 0), 120) + else + if (href_list["door"]) + if(istype(src, /obj/machinery/computer/pod/old/syndicate))//Added here so Nuke ops don't go running naked into space before moving the shuttle. + if(syndicate_station_at_station == 0) + usr << "\red You need to launch the Syndicate Shuttle via the computer terminal at the head of the ship before departing." + return + for(var/obj/machinery/door/poddoor/M in world) + if (M.id == id) + if (M.density) + spawn( 0 ) + M.open() + return + else + spawn( 0 ) + M.close() + return + //Foreach goto(298) + add_fingerprint(usr) + updateUsrDialog() + return + + + +/obj/machinery/computer/pod/old + icon_state = "old" + name = "DoorMex Control Computer" + + + +/obj/machinery/computer/pod/old/syndicate + name = "ProComp Executive IIc" + desc = "The Syndicate operate on a tight budget. Operates external airlocks." + + + +/obj/machinery/computer/pod/old/swf + name = "Magix System IV" + desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index f30c1c14f1..cf99493deb 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -264,7 +264,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. ..() if (src.closeOtherId != null) spawn (5) - for (var/obj/machinery/door/airlock/A in machines) + for (var/obj/machinery/door/airlock/A in world) if (A.closeOtherId == src.closeOtherId && A != src) src.closeOther = A break diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 2bb6477e82..9c4852d16a 100755 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -89,7 +89,6 @@ flick("[base_state]-spark", src) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(2, 1, src) s.start() src.last_spark = world.time @@ -124,12 +123,12 @@ active = 1 icon_state = "launcheract" - for(var/obj/machinery/sparker/M in machines) + for(var/obj/machinery/sparker/M in world) if (M.id == src.id) spawn( 0 ) M.ignite() - for(var/obj/machinery/igniter/M in machines) + for(var/obj/machinery/igniter/M in world) if(M.id == src.id) use_power(50) M.on = !( M.on ) diff --git a/html/changelog.html b/html/changelog.html index 0f83dae897..a6d5f93bbf 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -47,24 +47,6 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> - -
-

1st March 2012

-

TG updated:

- -
-

1st May 2012

Erthilo updated:

@@ -84,6 +66,19 @@ should be listed in the changelog upon commit though. Thanks. -->
  • New ATM sprites.
  • Changes year to 2556 on medical/security records.
  • +

    TG updated:

    +