Merge pull request #1792 from Markolie/nano

NanoUI pod tracker/exosuit console, uplink fix
This commit is contained in:
TheDZD
2015-08-20 11:50:14 -04:00
10 changed files with 266 additions and 149 deletions
+1 -1
View File
@@ -1337,7 +1337,7 @@
"azK" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"azL" = (/turf/simulated/wall,/area/mimeoffice)
"azM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/spray/waterflower,/turf/simulated/floor/wood,/area/mimeoffice)
"azN" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/paper_bin,/obj/item/toy/crayon/mime,/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/wood,/area/mimeoffice)
"azN" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/paper_bin,/obj/item/toy/crayon/mime,/turf/simulated/floor/wood,/area/mimeoffice)
"azO" = (/obj/machinery/camera{c_tag = "Magistrate's Office"; dir = 4; network = list("SS13")},/turf/simulated/floor/carpet,/area/magistrateoffice)
"azP" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/magistrateoffice)
"azQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/magistrateoffice)
+20 -22
View File
@@ -141,7 +141,7 @@ var/list/uplink_items = list()
/datum/uplink_item/jobspecific/syndidonk
name = "Syndicate Donk Pockets"
desc = "A box of highly specialized donk pockets with a number of regenerative and stimulating chemicals inside of them; the box comes equipped with a self-heating mechanism."
desc = "A box of highly specialized Donk pockets with a number of regenerative and stimulating chemicals inside of them; the box comes equipped with a self-heating mechanism."
reference = "SDP"
item = /obj/item/weapon/storage/box/syndidonkpockets
cost = 2
@@ -162,7 +162,7 @@ var/list/uplink_items = list()
/datum/uplink_item/jobspecific/rad_laser
name = "Radiation Laser"
desc = "A radiation laser concealed inside of a Health Analyser, After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!"
desc = "A radiation laser concealed inside of a Health Analyser. After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!"
reference = "RL"
item = /obj/item/device/rad_laser
cost = 6
@@ -270,7 +270,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/car
name = "C-90gl Compact Assault Rifle"
desc = "A fully-loaded Zashchita Industriya toploading bullpup assault rifle that uses 30-round 5.45x39mm magazines with a togglable underslung 40mm grenade launcher."
desc = "A fully-loaded Zashchita Industriya toploading bullpup assault rifle that uses 30-round 5.45x39mm magazines with a toggleable underslung 40mm grenade launcher."
reference = "AR"
item = /obj/item/weapon/gun/projectile/automatic/c90gl
cost = 18
@@ -297,7 +297,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/flamethrower
name = "Flamethrower"
desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution."
desc = "A flamethrower, fuelled by a portion of highly flammable bio-toxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution."
reference = "FT"
item = /obj/item/weapon/flamethrower/full/tank
cost = 11
@@ -306,7 +306,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/sword
name = "Energy Sword"
desc = "The esword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise."
desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise."
reference = "ES"
item = /obj/item/weapon/melee/energy/sword
cost = 8
@@ -329,7 +329,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/tabungrenades
name = "Tabun Gas Grenades"
desc = "A box of four (4) grenades filled with tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintaind with team to avoid accidental gassings."
desc = "A box of four (4) grenades filled with Tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
reference = "TGG"
item = /obj/item/weapon/storage/box/syndie_kit/tabun
cost = 15
@@ -345,7 +345,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/syndicate_minibomb
name = "Syndicate Minibomb"
desc = "The Minibomb is a grenade with a five-second fuse."
desc = "The minibomb is a grenade with a five-second fuse."
reference = "SMB"
item = /obj/item/weapon/grenade/syndieminibomb
cost = 6
@@ -362,7 +362,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/mauler
name = "Mauler Exosuit"
desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targetting, thrust vectoring, and deployable smoke."
desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targeting, thrust vectoring, and deployable smoke."
reference = "ME"
item = /obj/mecha/combat/marauder/mauler/loaded
cost = 140
@@ -453,8 +453,8 @@ var/list/uplink_items = list()
gamemodes = list("nuclear emergency")
/datum/uplink_item/ammo/machinegun
name = "Box Magazine - 7.62×51mm"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses."
name = "Box Magazine - 7.62x51mm"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machine gun. By the time you need to use this, you'll already be on a pile of corpses."
reference = "762"
item = /obj/item/ammo_box/magazine/m762
cost = 12
@@ -489,8 +489,6 @@ var/list/uplink_items = list()
item = /obj/item/weapon/cartridge/syndicate
cost = 6
// Commented out until a fix can be found, currently doesn't work with the PDA NanoUI and people keep wasting Telecrystals on it. -- Dave
/datum/uplink_item/stealthy_weapons/silencer
name = "Universal Suppressor"
desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the shots of the weapon for increased stealth and superior ambushing capability."
@@ -528,7 +526,7 @@ var/list/uplink_items = list()
/datum/uplink_item/stealthy_tools/chameleon_stamp
name = "Chameleon Stamp"
desc = "A stamp that can be activated to imitate an official Nanotrasen Stamp. The disguised stamp will work exactly like the real stamp and will allow you to forge false documents to gain access or equipment; \
desc = "A stamp that can be activated to imitate an official Nanotrasen Stamp. The disguised stamp will work exactly like the real stamp and will allow you to forge false documents to gain access or equipment; \
it can also be used in a washing machine to forge clothing."
reference = "CHST"
item = /obj/item/weapon/stamp/chameleon
@@ -551,14 +549,14 @@ var/list/uplink_items = list()
/datum/uplink_item/stealthy_tools/voice_changer
name = "Voice Changer"
desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognizable."
desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognisable."
reference = "VC"
item = /obj/item/clothing/mask/gas/voice
cost = 5
/datum/uplink_item/stealthy_tools/chameleon_proj
name = "Chameleon-Projector"
desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and rojectiles pass over them."
desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and projectiles pass over them."
reference = "CP"
item = /obj/item/device/chameleon
cost = 7
@@ -594,7 +592,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/emag
name = "Cryptographic Sequencer"
desc = "The emag is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms."
desc = "The cryptographic sequencer, also known as an emag, is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms."
reference = "EMAG"
item = /obj/item/weapon/card/emag
cost = 6
@@ -609,7 +607,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/medkit
name = "Syndicate Combat Medic Kit"
desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical hud for quick identification of injured comrades, \
desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical HUD for quick identification of injured comrades, \
and other medical supplies helpful for a medical field operative."
reference = "SCMK"
item = /obj/item/weapon/storage/firstaid/tactical
@@ -632,8 +630,8 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/hardsuit
name = "Blood-red Hardsuit"
desc = "The feared suit of a syndicate nuclear agent. Features slightly better armoring. When the helmet is deployed your identity will be protected. Toggling the suit into combat mode \
will allow you all the mobility of a loose fitting uniform without sacrificing armoring. Additionally the suit is collapsible, small enough to fit within a backpack. \
desc = "The feared suit of a syndicate nuclear agent. Features slightly better armor. When the helmet is deployed your identity will be protected. Toggling the suit into combat mode \
will allow you all the mobility of a loose fitting uniform without sacrificing armor. Additionally the suit is collapsible, small enough to fit within a backpack. \
Nanotrasen crewmembers are trained to report red space suit sightings, these suits in particular are known to drive employees into a panic."
reference = "BRHS"
item = /obj/item/weapon/storage/box/syndie_kit/hardsuit
@@ -641,7 +639,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/thermal
name = "Thermal Imaging Glasses"
desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks."
desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infra-red light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks."
reference = "THIG"
item = /obj/item/clothing/glasses/thermal/syndi
cost = 6
@@ -680,7 +678,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/plastic_explosives
name = "Composition C-4"
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect a signaler to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect a signaller to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
reference = "C4"
item = /obj/item/weapon/c4
cost = 1
@@ -762,7 +760,7 @@ var/list/uplink_items = list()
/datum/uplink_item/implants/uplink
name = "Uplink Implant"
desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their posessions have been stripped from them makes this implant excellent for escaping confinement."
desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
reference = "UI"
item = /obj/item/weapon/implanter/uplink
cost = 14
@@ -5,39 +5,43 @@
icon_screen = "rdcomp"
light_color = LIGHT_COLOR_PURPLE
req_access = list(access_robotics)
circuit = "/obj/item/weapon/circuitboard/pod_locater"
circuit = /obj/item/weapon/circuitboard/pod_locater
/obj/machinery/computer/podtracker/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/podtracker/attack_hand(var/mob/user as mob)
if(..())
return
user.set_machine(src)
var/dat = "<html><head><title>[src.name]</title><style>h3 {margin: 0px; padding: 0px;}</style></head><body>"
dat += "<h3>Pod beacons data</h3>"
return attack_hand(user)
/obj/machinery/computer/podtracker/attack_hand(user as mob)
ui_interact(user)
/obj/machinery/computer/podtracker/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
var/list/pods[0]
for(var/obj/item/device/spacepod_equipment/misc/tracker/TR in world)
var/obj/spacepod/myPod = TR.my_atom
var/enabled = TR.enabled
if(myPod && enabled)
dat += {"<hr>[capitalize(myPod.name)]</br>
<b>&nbsp;Pod SPS X:</b> [myPod.x]</br>
<b>&nbsp;Pod SPS Y:</b> [myPod.y]</br>
<b>&nbsp;Pod SPS Z:</b> [myPod.z]</br>"}
var/podname = capitalize(sanitize(myPod.name))
var/occupant = "None"
var/occupant2 = "None"
if(myPod.occupant)
dat += {"<b>&nbsp;Pod Pilot:</b> [myPod.occupant.name]</br>"}
occupant = myPod.occupant.name
if(myPod.occupant2)
dat += {"<b>&nbsp;Pod Passenger:</b> [myPod.occupant2.name]</br>"}
occupant2 = myPod.occupant2.name
pods.Add(list(list("pod" = "\ref[myPod]", "name" = podname, "occupant" = occupant, "occupant2" = occupant2, "x" = myPod.x, "y" = myPod.y, "z" = myPod.z)))
data["pods"] = pods
dat += "<A href='?src=\ref[src];refresh=1'>(Refresh)</A><BR>"
dat += "</body></html>"
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
if (!ui)
ui = new(user, src, ui_key, "pod_tracking.tmpl", "Pod Tracking Console", 400, 500)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/computer/podtracker/Topic(href, href_list)
if(..())
return
src.updateUsrDialog()
return
return 1
if(href_list["refresh"])
nanomanager.update_uis(src)
+99 -89
View File
@@ -5,64 +5,66 @@
icon_screen = "mecha"
light_color = LIGHT_COLOR_FADEDPURPLE
req_access = list(access_robotics)
circuit = "/obj/item/weapon/circuitboard/mecha_control"
circuit = /obj/item/weapon/circuitboard/mecha_control
var/list/located = list()
var/screen = 0
var/stored_data
attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/mecha/attack_ai(var/mob/user as mob)
return attack_hand(user)
attack_hand(var/mob/user as mob)
if(..())
return
user.set_machine(src)
var/dat = "<html><head><title>[src.name]</title><style>h3 {margin: 0px; padding: 0px;}</style></head><body>"
if(screen == 0)
dat += "<h3>Tracking beacons data</h3>"
for(var/obj/item/mecha_parts/mecha_tracking/TR in world)
var/answer = TR.get_mecha_info()
if(answer)
dat += {"<hr>[answer]<br/>
<a href='?src=\ref[src];send_message=\ref[TR]'>Send message</a><br/>
<a href='?src=\ref[src];get_log=\ref[TR]'>Show exosuit log</a> | <a style='color: #f00;' href='?src=\ref[src];shock=\ref[TR]'>(EMP pulse)</a><br>"}
/obj/machinery/computer/mecha/attack_hand(var/mob/user as mob)
ui_interact(user)
/obj/machinery/computer/mecha/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
data["screen"] = screen
if(screen == 0)
var/list/mechas[0]
for(var/obj/item/mecha_parts/mecha_tracking/TR in world)
var/answer = TR.get_mecha_info()
if(answer)
mechas[++mechas.len] = answer
data["mechas"] = mechas
if(screen == 1)
data["log"] = stored_data
if(screen==1)
dat += "<h3>Log contents</h3>"
dat += "<a href='?src=\ref[src];return=1'>Return</a><hr>"
dat += "[stored_data]"
dat += "<A href='?src=\ref[src];refresh=1'>(Refresh)</A><BR>"
dat += "</body></html>"
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
Topic(href, href_list)
if(..())
return
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
if(href_list["send_message"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message")
var/message = strip_html_simple(input(usr,"Input message","Transmit message") as text)
var/obj/mecha/M = MT.in_mecha()
if(trim(message) && M)
M.occupant_message(message)
return
if(href_list["shock"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("shock")
MT.shock()
if(href_list["get_log"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("get_log")
stored_data = MT.get_mecha_log()
screen = 1
if(href_list["return"])
screen = 0
src.updateUsrDialog()
return
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "exosuit_control.tmpl", "Exosuit Control Console", 420, 500)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/computer/mecha/Topic(href, href_list)
if(..())
return 1
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
if(href_list["send_message"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message")
var/message = strip_html_simple(input(usr,"Input message","Transmit message") as text)
if(!trim(message) || ..())
return 1
var/obj/mecha/M = MT.in_mecha()
if(M)
M.occupant_message(message)
if(href_list["shock"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("shock")
MT.shock()
if(href_list["get_log"])
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("get_log")
stored_data = MT.get_mecha_log()
screen = 1
if(href_list["return"])
screen = 0
nanomanager.update_uis(src)
return
/obj/item/mecha_parts/mecha_tracking
name = "Exosuit tracking beacon"
@@ -73,49 +75,57 @@
construction_time = 50
construction_cost = list("metal"=500)
proc/get_mecha_info()
if(!in_mecha())
return 0
var/obj/mecha/M = src.loc
var/cell_charge = M.get_charge()
var/answer = {"<b>Name:</b> [M.name]<br>
<b>Integrity:</b> [M.health/initial(M.health)*100]%<br>
<b>Cell charge:</b> [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]<br>
<b>Airtank:</b> [M.return_pressure()]kPa<br>
<b>Pilot:</b> [M.occupant||"None"]<br>
<b>Location:</b> [get_area(M)||"Unknown"]<br>
<b>Active equipment:</b> [M.selected||"None"]"}
if(istype(M, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/RM = M
answer += "<b>Used cargo space:</b> [RM.cargo.len/RM.cargo_capacity*100]%<br>"
return answer
emp_act()
qdel(src)
return
ex_act()
qdel(src)
return
proc/in_mecha()
if(istype(src.loc, /obj/mecha))
return src.loc
/obj/item/mecha_parts/mecha_tracking/proc/get_mecha_info()
if(!in_mecha())
return 0
var/obj/mecha/M = src.loc
var/list/answer[0]
answer["reference"] = "\ref[src]"
answer["name"] = sanitize(replacetext(M.name,"\"","'")) // Double apostrophes break JSON
if(M.cell)
answer["cell"] = 1
answer["cell_capacity"] = M.cell.maxcharge
answer["cell_current"] = M.get_charge()
answer["cell_percentage"] = round(M.cell.percent())
else
answer["cell"] = 0
answer["integrity"] = M.health/initial(M.health)*100
answer["airtank"] = M.return_pressure()
answer["pilot"] = "[M.occupant||"None"]"
var/area/area = get_area(M)
answer["location"] = "[sanitize(area.name)||"Unknown"]"
answer["equipment"] = "[M.selected||"None"]"
if(istype(M, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/RM = M
answer["hascargo"] = 1
answer["cargo"] = RM.cargo.len/RM.cargo_capacity*100
return answer
proc/shock()
var/obj/mecha/M = in_mecha()
if(M)
M.emp_act(2)
qdel(src)
/obj/item/mecha_parts/mecha_tracking/emp_act()
qdel(src)
return
proc/get_mecha_log()
if(!src.in_mecha())
return 0
var/obj/mecha/M = src.loc
return M.get_log_html()
/obj/item/mecha_parts/mecha_tracking/ex_act()
qdel(src)
return
/obj/item/mecha_parts/mecha_tracking/proc/in_mecha()
if(istype(src.loc, /obj/mecha))
return src.loc
return 0
/obj/item/mecha_parts/mecha_tracking/proc/shock()
var/obj/mecha/M = in_mecha()
if(M)
M.emp_act(2)
qdel(src)
/obj/item/mecha_parts/mecha_tracking/proc/get_mecha_log()
if(!src.in_mecha())
return 0
var/obj/mecha/M = src.loc
return M.get_log_html()
/obj/item/weapon/storage/box/mechabeacons
name = "Exosuit Tracking Beacons"
+2 -6
View File
@@ -50,10 +50,10 @@ var/list/world_uplinks = list()
job = user.mind.assigned_role
var/dat = "<B>[src.welcome]</B><BR>"
dat += "Tele-Crystals left: [src.uses]<BR>"
dat += "Telecrystals left: [src.uses]<BR>"
dat += "<HR>"
dat += "<B>Request item:</B><BR>"
dat += "<I>Each item costs a number of tele-crystals as indicated by the number following their name.</I><br>"
dat += "<I>Each item costs a number of telecrystals as indicated by the number following their name.</I><br>"
var/category_items = 1
for(var/category in ItemsCategory)
@@ -262,10 +262,6 @@ var/list/world_uplinks = list()
for(var/datum/data/record/L in data_core.general)
if(L.fields["id"] == id)
nanoui_data["exploit"] = list() // Setting this to equal L.fields passes it's variables that are lists as reference instead of value.
// We trade off being able to automatically add shit for more control over what gets passed to json
// and if it's sanitized for html.
nanoui_data["exploit"]["nanoui_exploit_record"] = html_encode(L.fields["exploit_record"]) // Change stuff into html
nanoui_data["exploit"]["nanoui_exploit_record"] = replacetext(nanoui_data["exploit"]["nanoui_exploit_record"], "\n", "<br>") // change line breaks into <br>
nanoui_data["exploit"]["name"] = html_encode(L.fields["name"])
nanoui_data["exploit"]["sex"] = html_encode(L.fields["sex"])
nanoui_data["exploit"]["age"] = html_encode(L.fields["age"])
+1 -2
View File
@@ -676,11 +676,10 @@ var/list/mechtoys = list(
supply_controller.points -= P.cost
supply_controller.shoppinglist += O
temp = "Thanks for your order.<BR>"
temp += "<BR><A href='?src=\ref[src];viewrequests=1'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
else
temp = "Not enough supply points.<BR>"
temp += "<BR><A href='?src=\ref[src];viewrequests=1'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
break
temp += "<BR><A href='?src=\ref[src];viewrequests=1'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
else if (href_list["vieworders"])
temp = "Current approved orders: <BR><BR>"
+81
View File
@@ -0,0 +1,81 @@
<!--
Title: Exosuit Control Console
Used In File(s): \code\game\mecha\mecha_control_console.dm
-->
{{if data.screen == 0}}
{{for data.mechas}}
<hr>
<div class='item'>
<h2>{{:value.name}}</h2>
<h3>Information</h3>
<div class="itemLabel">
Pilot:
</div>
<div class="itemContent">
{{:value.pilot}}
</div>
<div class="itemLabel">
Integrity:
</div>
<div class="itemContent">
<span class="{{if value.integrity >= 75}}good{{else value.integrity >= 25}}average{{else}}bad{{/if}}">{{:value.integrity}}%</span>
</div>
<div class="itemLabel">
Location:
</div>
<div class="itemContent">
{{:value.location}}
</div>
<div class="itemLabel">
Airtank:
</div>
<div class="itemContent">
{{:value.airtank}}kPa
</div>
<div class="itemLabel">
Active Equipment:
</div>
<div class="itemContent">
{{:value.equipment}}
</div>
{{if value.hascargo}}
<div class="itemLabel">
Cargo Used:
</div>
<div class="itemContent">
{{:value.cargo}}%
</div>
{{/if}}
<h3>Power Cell</h3>
{{if value.cell}}
<span class="itemLabel">
Rating:
</span>
<span class="itemContent">
{{:value.cell_capacity}}
</span>
{{:helper.displayBar(value.cell_percentage, 0, 100, (value.cell_percentage >= 50) ? 'good' : (value.cell_percentage >= 25) ? 'average' : 'bad')}}
<b> {{:value.cell_percentage}}%</b>
{{else}}
<b><i>Not Installed</i></b>
{{:helper.displayBar(100, 0, 100, 'bad')}}
{{/if}}
<h3>Actions</h3>
{{:helper.link('Send Message', 'mail-closed', {'send_message' : value.reference})}}
{{:helper.link('Exosuit Log', 'search', {'get_log' : value.reference})}}
{{:helper.link('EMP Pulse', 'alert', {'shock' : value.reference}, null, 'redButton')}}
</div>
{{empty}}
<div class='item'>
<h3>No mecha trackers were found.</h3>
</div>
{{/for}}
{{else}}
<div style="margin-bottom: 10px;" class="item">
{{:helper.link('Return', 'close', {'return' : 1})}}
</div>
{{:data.log}}
{{/if}}
+33
View File
@@ -0,0 +1,33 @@
<!--
Title: Pod Tracking Console
Used In File(s): \code\game\machinery\computer\pod_tracking_console.dm
-->
<style>
h3 {
padding-top: 0;
}
.refresh {
position: absolute;
right: 6px;
top: 50px;
}
</style>
<div class="refresh">{{:helper.link('Refresh', 'refresh', {'refresh' : 1})}}</div>
<h2>Pods</h2>
{{for data.pods}}
<hr>
<div class="item">
<h3>{{:value.name}}</h3>
<div class="itemLabel">Pilot</div>
<div class="itemContent">{{:value.occupant}}</div>
<div class="itemLabel">Passenger</div>
<div class="itemContent">{{:value.occupant2}}</div>
<div class="itemLabel">Coordinates</div>
<div class="itemContent">{{:value.x}}, {{:value.y}}, {{:value.z}}</div>
</div>
{{empty}}
<div class='item'>
<h3>No pod trackers were found.</h3>
</div>
{{/for}}
+1 -2
View File
@@ -64,11 +64,10 @@
{{:value.cell_capacity}}
</span>
{{:helper.displayBar(value.cell_percentage, 0, 100, (value.cell_percentage >= 50) ? 'good' : (value.cell_percentage >= 25) ? 'average' : 'bad')}}
<b> {{:value.cell_percentage}} %</b>
<b> {{:value.cell_percentage}}%</b>
{{else}}
<b><i>Not Installed</i></b>
{{:helper.displayBar(100, 0, 100, 'bad')}}
<b> N/A %</b>
{{/if}}
<h3>Actions</h3>
{{if value.status == "Operational"}}
+1 -4
View File
@@ -12,7 +12,7 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
</div>
<div class="itemContent">
{{:helper.link('Request Items', 'gear', {'menu' : 0}, null, 'fixedLeftWider')}}
{{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'gear', {'descriptions' : 1}, null, 'fixedLeftWider')}}
{{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'gear', {'descriptions' : 1}, data.menu == 0 ? '' : 'disabled', 'fixedLeftWider')}}
{{:helper.link('Exploitable Information', 'gear', {'menu' : 1}, null, 'fixedLeftWider')}}
{{:helper.link('Return', 'arrowreturn-1-w', {'return' : 1}, null, 'fixedLeft')}}
{{:helper.link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}}
@@ -80,9 +80,6 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
<span class="good">Age: </span> <span class="average">{{:data.exploit.age}} </span><br>
<span class="good">Rank: </span> <span class="average">{{:data.exploit.rank}} </span><br>
<span class="good">Fingerprint: </span> <span class="average">{{:data.exploit.fingerprint}} </span><br>
<br>Acquired Information:<br>
<span class="good">Notes:<br> </span> <span class="average">{{:data.exploit.nanoui_exploit_record}}</span><br><br>
{{else}}
<span class="bad">
No exploitative information acquired!