Ghost interaction with atmos machinery

This commit is contained in:
Markolie
2017-02-10 21:51:08 +01:00
parent 0117892f54
commit 4e0989ee0b
8 changed files with 123 additions and 88 deletions
@@ -146,15 +146,25 @@ Filter types:
/obj/machinery/atmospherics/trinary/filter/initialize()
set_frequency(frequency)
..()
/obj/machinery/atmospherics/trinary/filter/attack_ghost(mob/user)
add_fingerprint(user)
user.set_machine(src)
interact(user)
/obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE
/obj/machinery/atmospherics/trinary/filter/attack_hand(mob/user)
if(..())
return
if(!src.allowed(user))
add_fingerprint(user)
if(!allowed(user) && !user.can_admin_interact())
to_chat(user, "<span class='alert'>Access denied.</span>")
return
user.set_machine(src)
interact(user)
/obj/machinery/atmospherics/trinary/filter/interact(mob/user)
var/dat
var/current_filter_type
switch(filter_type)
@@ -184,34 +194,27 @@ Filter types:
<A href='?src=[UID()];filterset=4'>Nitrous Oxide</A><BR>
<A href='?src=[UID()];filterset=-1'>Nothing</A><BR>
<HR><B>Desirable output pressure:</B>
[src.target_pressure]kPa | <a href='?src=[UID()];set_press=1'>Change</a>
[target_pressure]kPa | <a href='?src=[UID()];set_press=1'>Change</a>
"}
var/datum/browser/popup = new(user, "atmo_filter", name, 400, 400)
popup.set_content(dat)
popup.open(0)
onclose(user, "atmo_filter")
return
/obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE
if(..())
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
add_fingerprint(usr)
if(href_list["filterset"])
src.filter_type = text2num(href_list["filterset"])
filter_type = text2num(href_list["filterset"])
if(href_list["temp"])
src.temp = null
temp = null
if(href_list["set_press"])
var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
src.target_pressure = max(0, min(4500, new_pressure))
var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num
target_pressure = max(0, min(4500, new_pressure))
if(href_list["power"])
on=!on
src.update_icon()
src.updateUsrDialog()
/*
for(var/mob/M in viewers(1, src))
if((M.client && M.machine == src))
src.attack_hand(M)
*/
return
update_icon()
updateUsrDialog()
@@ -107,14 +107,25 @@
parent3.update = 1
return 1
/obj/machinery/atmospherics/trinary/mixer/attack_ghost(mob/user)
add_fingerprint(user)
user.set_machine(src)
interact(user)
/obj/machinery/atmospherics/trinary/mixer/attack_hand(user as mob)
/obj/machinery/atmospherics/trinary/mixer/attack_hand(mob/user)
if(..())
return
src.add_fingerprint(usr)
if(!src.allowed(user))
add_fingerprint(user)
if(!allowed(user) && !user.can_admin_interact())
to_chat(user, "<span class='alert'>Access denied.</span>")
return
user.set_machine(src)
interact(user)
/obj/machinery/atmospherics/trinary/mixer/interact(mob/user)
usr.set_machine(src)
var/dat = {"<b>Power: </b><a href='?src=[UID()];power=1'>[on?"On":"Off"]</a><br>
<b>Desirable output pressure: </b>
@@ -139,7 +150,6 @@
popup.set_content(dat)
popup.open(0)
onclose(user, "atmo_mixer")
return
/obj/machinery/atmospherics/trinary/mixer/Topic(href,href_list)
if(..())
@@ -147,16 +157,16 @@
if(href_list["power"])
on = !on
if(href_list["set_press"])
var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
src.target_pressure = max(0, min(4500, new_pressure))
var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num
target_pressure = max(0, min(4500, new_pressure))
if(href_list["node1_c"])
var/value = text2num(href_list["node1_c"])
src.node1_concentration = max(0, min(1, src.node1_concentration + value))
src.node2_concentration = max(0, min(1, src.node2_concentration - value))
node1_concentration = max(0, min(1, node1_concentration + value))
node2_concentration = max(0, min(1, node2_concentration - value))
if(href_list["node2_c"])
var/value = text2num(href_list["node2_c"])
src.node2_concentration = max(0, min(1, src.node2_concentration + value))
src.node1_concentration = max(0, min(1, src.node1_concentration - value))
src.update_icon()
src.updateUsrDialog()
node2_concentration = max(0, min(1, node2_concentration + value))
node1_concentration = max(0, min(1, node1_concentration - value))
update_icon()
updateUsrDialog()
return
@@ -30,7 +30,7 @@
if(flipped)
flipstate = "m"
if(animation)
flick("tvalve[flipstate][src.state][!src.state]",src)
flick("tvalve[flipstate][state][!state]",src)
else
icon_state = "tvalve[flipstate][state]"
@@ -52,9 +52,9 @@
/obj/machinery/atmospherics/trinary/tvalve/proc/switch_side()
if(state == TVALVE_STATE_STRAIGHT)
src.go_to_side()
go_to_side()
else
src.go_straight()
go_straight()
/obj/machinery/atmospherics/trinary/tvalve/proc/go_to_side()
if(state == TVALVE_STATE_SIDE)
@@ -86,10 +86,14 @@
investigate_log("was set to straight by [usr ? key_name(usr) : "a remote signal"]", "atmos")
return 1
/obj/machinery/atmospherics/trinary/tvalve/attack_ai(mob/user as mob)
/obj/machinery/atmospherics/trinary/tvalve/attack_ai(mob/user)
return
/obj/machinery/atmospherics/trinary/tvalve/attack_ghost(mob/user)
if(user.can_advanced_admin_interact())
return attack_hand(user)
/obj/machinery/atmospherics/trinary/tvalve/attack_hand(mob/user as mob)
/obj/machinery/atmospherics/trinary/tvalve/attack_hand(mob/usermob)
add_fingerprint(usr)
update_icon(1)
sleep(10)
@@ -128,13 +132,13 @@
if(!powered())
icon_state = "tvalvenopower"
/obj/machinery/atmospherics/trinary/tvalve/digital/attack_ai(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/atmospherics/trinary/tvalve/digital/attack_ai(mob/user)
return attack_hand(user)
/obj/machinery/atmospherics/trinary/tvalve/digital/attack_hand(mob/user as mob)
/obj/machinery/atmospherics/trinary/tvalve/digital/attack_hand(mob/user)
if(!powered())
return
if(!src.allowed(user))
if(!allowed(user) && !user.can_admin_interact())
to_chat(user, "<span class='alert'>Access denied.</span>")
return
..()