Bluespace artillery computer update, accounts database computer update, ghost machinery interaction update

This commit is contained in:
Markolie
2015-08-14 06:26:40 +02:00
parent eea1921897
commit 5e95ae82b4
23 changed files with 228 additions and 175 deletions
+54 -54
View File
@@ -1,15 +1,59 @@
/obj/machinery/artillerycontrol
var/reload = 180
/obj/machinery/computer/artillerycontrol
name = "bluespace artillery control"
icon_state = "control_boxp1"
icon = 'icons/obj/machines/particle_accelerator.dmi'
density = 1
anchored = 1
icon_screen = "accelerator"
icon_keyboard = "accelerator_key"
icon_state = "computer_wires"
req_access = list(access_cent_commander)
var/last_fire = 0
var/reload_cooldown = 180 // 3 minute cooldown
light_color = LIGHT_COLOR_LIGHTBLUE
/obj/machinery/artillerycontrol/process()
if(src.reload<180)
src.reload++
/obj/machinery/computer/artillerycontrol/attack_ai(user as mob)
user << "<span class='warning'>Access denied.</span>"
return
/obj/machinery/computer/artillerycontrol/attack_hand(user as mob)
ui_interact(user)
/obj/machinery/computer/artillerycontrol/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
var/time_to_wait = round(reload_cooldown - ((world.time / 10) - last_fire), 1)
var/mins = round(time_to_wait / 60)
var/seconds = time_to_wait - (60*mins)
data["reloadtime_mins"] = mins
data["reloadtime_secs"] = (seconds < 10) ? "0[seconds]" : seconds
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "bluespace_artillery.tmpl", "Bluespace Control", 400, 260)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/computer/artillerycontrol/Topic(href, href_list)
if(..())
return 1
var/A
A = input("Area to jump bombard", "Open Fire", A) in teleportlocs
var/area/thearea = teleportlocs[A]
if(..() || !istype(thearea))
return
var/delta = (world.time / 10) - last_fire
if(reload_cooldown > delta)
return 1
command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.")
message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
L+=T
var/loc = pick(L)
explosion(loc,2,5,11)
last_fire = world.time / 10
/obj/structure/artilleryplaceholder
name = "artillery"
@@ -19,47 +63,3 @@
/obj/structure/artilleryplaceholder/decorative
density = 0
/obj/machinery/artillerycontrol/attack_hand(mob/user as mob)
user.set_machine(src)
var/dat = "<B>Bluespace Artillery Control:</B><BR>"
dat += "Locked on<BR>"
dat += "<B>Charge progress: [reload]/180:</B><BR>"
dat += "<A href='byond://?src=\ref[src];fire=1'>Open Fire</A><BR>"
dat += "Deployment of weapon authorized by <br>Nanotrasen Naval Command<br><br>Remember, friendly fire is grounds for termination of your contract and life.<HR>"
user << browse(dat, "window=scroll")
onclose(user, "scroll")
return
/obj/machinery/artillerycontrol/Topic(href, href_list)
..()
if (usr.stat || usr.restrained())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
var/A
A = input("Area to jump bombard", "Open Fire", A) in teleportlocs
var/area/thearea = teleportlocs[A]
if (usr.stat || usr.restrained()) return
if(src.reload < 180) return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.")
message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
L+=T
var/loc = pick(L)
explosion(loc,2,5,11)
reload = 0
/*mob/proc/openfire()
var/A
A = input("Area to jump bombard", "Open Fire", A) in teleportlocs
var/area/thearea = teleportlocs[A]
command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.")
spawn(30)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
L+=T
var/loc = pick(L)
explosion(loc,2,5,11)*/