Fixes issue 1040. Ability to give mechs all access and remove DNA locks from mechs and more.

(the fix is shitty, but then, so is mech code)
Fixes issue 1043. Safe structure allows users to teleport any item in the game to them

Increases the firefighter heat resistance to 4500.
Removes firefighter.dm, as it was entirely commented out. Firefighters are in ripley.dm.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4968 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2012-10-27 14:51:30 +00:00
parent 99ca48dd2f
commit bc933cc10b
4 changed files with 34 additions and 35 deletions

View File

@@ -1436,14 +1436,16 @@
/obj/mecha/Topic(href, href_list) /obj/mecha/Topic(href, href_list)
..() ..()
if(href_list["update_content"]) if(href_list["update_content"])
if(usr != src.occupant) return
send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part()) send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part())
return return
if(href_list["close"]) if(href_list["close"])
return return
if(usr.stat>0) if(usr.stat > 0)
return return
var/datum/topic_input/filter = new /datum/topic_input(href,href_list) var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
if(href_list["select_equip"]) if(href_list["select_equip"])
if(usr != src.occupant) return
var/obj/item/mecha_parts/mecha_equipment/equip = filter.getObj("select_equip") var/obj/item/mecha_parts/mecha_equipment/equip = filter.getObj("select_equip")
if(equip) if(equip)
src.selected = equip src.selected = equip
@@ -1451,24 +1453,30 @@
src.visible_message("[src] raises [equip]") src.visible_message("[src] raises [equip]")
send_byjax(src.occupant,"exosuit.browser","eq_list",src.get_equipment_list()) send_byjax(src.occupant,"exosuit.browser","eq_list",src.get_equipment_list())
return return
if (href_list["eject"]) if(href_list["eject"])
if(usr != src.occupant) return
src.eject() src.eject()
return return
if(href_list["toggle_lights"]) if(href_list["toggle_lights"])
if(usr != src.occupant) return
src.toggle_lights() src.toggle_lights()
return return
if(href_list["toggle_airtank"]) if(href_list["toggle_airtank"])
if(usr != src.occupant) return
src.toggle_internal_tank() src.toggle_internal_tank()
return return
if(href_list["rmictoggle"]) if(href_list["rmictoggle"])
if(usr != src.occupant) return
radio.broadcasting = !radio.broadcasting radio.broadcasting = !radio.broadcasting
send_byjax(src.occupant,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged")) send_byjax(src.occupant,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged"))
return return
if(href_list["rspktoggle"]) if(href_list["rspktoggle"])
if(usr != src.occupant) return
radio.listening = !radio.listening radio.listening = !radio.listening
send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged")) send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged"))
return return
if(href_list["rfreq"]) if(href_list["rfreq"])
if(usr != src.occupant) return
var/new_frequency = (radio.frequency + filter.getNum("rfreq")) var/new_frequency = (radio.frequency + filter.getNum("rfreq"))
if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600)) if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600))
new_frequency = sanitize_frequency(new_frequency) new_frequency = sanitize_frequency(new_frequency)
@@ -1476,16 +1484,20 @@
send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]") send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]")
return return
if(href_list["port_disconnect"]) if(href_list["port_disconnect"])
if(usr != src.occupant) return
src.disconnect_from_port() src.disconnect_from_port()
return return
if (href_list["port_connect"]) if (href_list["port_connect"])
if(usr != src.occupant) return
src.connect_to_port() src.connect_to_port()
return return
if (href_list["view_log"]) if (href_list["view_log"])
if(usr != src.occupant) return
src.occupant << browse(src.get_log_html(), "window=exosuit_log") src.occupant << browse(src.get_log_html(), "window=exosuit_log")
onclose(occupant, "exosuit_log") onclose(occupant, "exosuit_log")
return return
if (href_list["change_name"]) if (href_list["change_name"])
if(usr != src.occupant) return
var/newname = strip_html_simple(input(occupant,"Choose new exosuit name","Rename exosuit",initial(name)) as text) var/newname = strip_html_simple(input(occupant,"Choose new exosuit name","Rename exosuit",initial(name)) as text)
if(newname && trim(newname)) if(newname && trim(newname))
name = newname name = newname
@@ -1493,10 +1505,12 @@
alert(occupant, "nope.avi") alert(occupant, "nope.avi")
return return
if (href_list["toggle_id_upload"]) if (href_list["toggle_id_upload"])
if(usr != src.occupant) return
add_req_access = !add_req_access add_req_access = !add_req_access
send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel") send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel")
return return
if(href_list["toggle_maint_access"]) if(href_list["toggle_maint_access"])
if(usr != src.occupant) return
if(state) if(state)
occupant_message("<font color='red'>Maintenance protocols in effect</font>") occupant_message("<font color='red'>Maintenance protocols in effect</font>")
return return
@@ -1504,9 +1518,11 @@
send_byjax(src.occupant,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols") send_byjax(src.occupant,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols")
return return
if(href_list["req_access"] && add_req_access) if(href_list["req_access"] && add_req_access)
if(!in_range(src, usr)) return
output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
return return
if(href_list["maint_access"] && maint_access) if(href_list["maint_access"] && maint_access)
if(!in_range(src, usr)) return
var/mob/user = filter.getMob("user") var/mob/user = filter.getMob("user")
if(user) if(user)
if(state==0) if(state==0)
@@ -1518,33 +1534,40 @@
output_maintenance_dialog(filter.getObj("id_card"),user) output_maintenance_dialog(filter.getObj("id_card"),user)
return return
if(href_list["set_internal_tank_valve"] && state >=1) if(href_list["set_internal_tank_valve"] && state >=1)
if(!in_range(src, usr)) return
var/mob/user = filter.getMob("user") var/mob/user = filter.getMob("user")
if(user) if(user)
var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num
if(new_pressure) if(new_pressure)
internal_tank_valve = new_pressure internal_tank_valve = new_pressure
user << "The internal pressure valve has been set to [internal_tank_valve]kPa." user << "The internal pressure valve has been set to [internal_tank_valve]kPa."
if (href_list["add_req_access"] && add_req_access) if(href_list["add_req_access"] && add_req_access && filter.getObj("id_card"))
if(!in_range(src, usr)) return
operation_req_access += filter.getNum("add_req_access") operation_req_access += filter.getNum("add_req_access")
output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
return return
if (href_list["del_req_access"] && add_req_access) if(href_list["del_req_access"] && add_req_access && filter.getObj("id_card"))
if(!in_range(src, usr)) return
operation_req_access -= filter.getNum("del_req_access") operation_req_access -= filter.getNum("del_req_access")
output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
return return
if (href_list["finish_req_access"]) if(href_list["finish_req_access"])
if(!in_range(src, usr)) return
add_req_access = 0 add_req_access = 0
var/mob/user = filter.getMob("user") var/mob/user = filter.getMob("user")
user << browse(null,"window=exosuit_add_access") user << browse(null,"window=exosuit_add_access")
return return
if(href_list["dna_lock"]) if(href_list["dna_lock"])
if(usr != src.occupant) return
if(src.occupant) if(src.occupant)
src.dna = src.occupant.dna.unique_enzymes src.dna = src.occupant.dna.unique_enzymes
src.occupant_message("You feel a prick as the needle takes your DNA sample.") src.occupant_message("You feel a prick as the needle takes your DNA sample.")
return return
if(href_list["reset_dna"]) if(href_list["reset_dna"])
if(usr != src.occupant) return
src.dna = null src.dna = null
if(href_list["repair_int_control_lost"]) if(href_list["repair_int_control_lost"])
if(usr != src.occupant) return
src.occupant_message("Recalibrating coordination system.") src.occupant_message("Recalibrating coordination system.")
src.log_message("Recalibration of coordination system started.") src.log_message("Recalibration of coordination system started.")
var/T = src.loc var/T = src.loc

View File

@@ -1,25 +0,0 @@
/*/obj/mecha/working/firefighter
desc = "Standart APLU chassis was refitted with additional thermal protection and cistern."
name = "Ripley-on-Fire"
icon_state = "ripley"
step_in = 6
max_temperature = 6000
health = 250
internal_damage_threshold = 40
wreckage = /obj/effect/decal/mecha_wreckage/ripley
infra_luminosity = 5
/obj/mecha/working/firefighter/New()
..()
// tools += new /datum/mecha_tool/uni_interface(src)
tools += new /datum/mecha_tool/extinguisher(src)
tools += new /datum/mecha_tool/drill(src)
for(var/g_type in typesof(/datum/mecha_tool/gimmick))
if(g_type!=/datum/mecha_tool/gimmick)
tools += new g_type(src)
selected_tool = tools[1]
return
*/

View File

@@ -19,7 +19,7 @@
desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." desc = "Standart APLU chassis was refitted with additional thermal protection and cistern."
name = "APLU \"Firefighter\"" name = "APLU \"Firefighter\""
icon_state = "firefighter" icon_state = "firefighter"
max_temperature = 2500 max_temperature = 4500
health = 250 health = 250
lights_power = 8 lights_power = 8
damage_absorption = list("fire"=0.5,"bullet"=0.8,"bomb"=0.5) damage_absorption = list("fire"=0.5,"bullet"=0.8,"bomb"=0.5)

View File

@@ -135,7 +135,8 @@ FLOOR SAFES
if(href_list["retrieve"]) if(href_list["retrieve"])
user << browse("", "window=safe") // Close the menu user << browse("", "window=safe") // Close the menu
var/obj/item/P = locate(href_list["retrieve"]) var/obj/item/P = locate(href_list["retrieve"]) in src
if(open)
if(P && in_range(src, user)) if(P && in_range(src, user))
user.put_in_hands(P) user.put_in_hands(P)
updateUsrDialog() updateUsrDialog()