Merge conflict fix

This commit is contained in:
Firecage
2016-01-27 17:38:42 +02:00
21 changed files with 181 additions and 59 deletions
+4
View File
@@ -25,6 +25,10 @@
var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate()
var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message
/obj/item/device/assembly/proc/on_attach()
/obj/item/device/assembly/proc/on_detach()
/obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved
return
-4
View File
@@ -69,10 +69,6 @@
else
bombtank.release()
/obj/item/device/onetankbomb/HasProximity(atom/movable/AM as mob|obj)
if(bombassembly)
bombassembly.HasProximity(AM)
/obj/item/device/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps
if(bombassembly)
bombassembly.Crossed(AM)
-7
View File
@@ -55,13 +55,6 @@
if(master)
master.update_icon()
/obj/item/device/assembly_holder/HasProximity(atom/movable/AM as mob|obj)
if(a_left)
a_left.HasProximity(AM)
if(a_right)
a_right.HasProximity(AM)
/obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj)
if(a_left)
a_left.Crossed(AM)
+42 -17
View File
@@ -9,6 +9,9 @@
var/scanning = 0
var/timing = 0
var/time = 10
var/sensitivity = 1
var/atom/oldloc
var/list/turfs_around = list()
/obj/item/device/assembly/prox_sensor/proc/toggle_scan()
@@ -19,12 +22,19 @@
/obj/item/device/assembly/prox_sensor/New()
..()
SSobj.processing |= src
oldloc = loc
/obj/item/device/assembly/prox_sensor/describe()
if(timing)
return "<span class='notice'>The proximity sensor is arming.</span>"
return "The proximity sensor is [scanning?"armed":"disarmed"]."
/obj/item/device/assembly/prox_sensor/on_attach(datum/wires/w)
handle_move(w.holder)
/obj/item/device/assembly/prox_sensor/on_detach(datum/wires/w)
handle_move(w.holder.loc)
/obj/item/device/assembly/prox_sensor/activate()
if(!..())
return 0//Cooldown check
@@ -35,12 +45,9 @@
/obj/item/device/assembly/prox_sensor/toggle_secure()
secured = !secured
if(secured)
SSobj.processing |= src
else
if(!secured)
scanning = 0
timing = 0
SSobj.processing.Remove(src)
update_icon()
return secured
@@ -52,7 +59,7 @@
/obj/item/device/assembly/prox_sensor/sense()
if((!secured)||(!scanning)||(cooldown > 0))
if((!secured)||(cooldown > 0))
return 0
pulse(0)
audible_message("\icon[src] *beep* *beep*", null, 3)
@@ -66,22 +73,32 @@
time--
if(time <= 0)
timing = 0
toggle_scan()
toggle_scan(1)
time = initial(time)
handle_move(get_turf(loc))
/obj/item/device/assembly/prox_sensor/dropped()
spawn(0)
sense()
if(scanning)
spawn(0)
sense()
/obj/item/device/assembly/prox_sensor/toggle_scan()
/obj/item/device/assembly/prox_sensor/toggle_scan(scan)
if(!secured)
return 0
scanning = !scanning
scanning = scan
if(scanning)
add_to_proximity_list(src, sensitivity)
else
remove_from_proximity_list(src, sensitivity)
oldloc = get_turf(loc)
update_icon()
/obj/item/device/assembly/prox_sensor/proc/sensitivity_change(value)
var/sense = min(max(sensitivity + value, 0), 5)
if(scanning)
shift_proximity(src, oldloc, sensitivity, loc, sense)
sensitivity = sense
/obj/item/device/assembly/prox_sensor/update_icon()
overlays.Cut()
@@ -96,11 +113,15 @@
holder.update_icon()
return
/obj/item/device/assembly/prox_sensor/proc/handle_move(atom/newloc)
if(scanning)
if(shift_proximity(src, oldloc, sensitivity, newloc, sensitivity))
sense()
oldloc = newloc
/obj/item/device/assembly/prox_sensor/Move()
/obj/item/device/assembly/prox_sensor/Move(newloc)
..()
sense()
return
handle_move(newloc)
/obj/item/device/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy
@@ -108,7 +129,8 @@
var/second = time % 60
var/minute = (time - second) / 60
var/dat = "<TT><B>Proximity Sensor</B>\n[(timing ? "<A href='?src=\ref[src];time=0'>Arming</A>" : "<A href='?src=\ref[src];time=1'>Not Arming</A>")] [minute]:[second]\n<A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>\n</TT>"
dat += "<BR><A href='?src=\ref[src];scanning=1'>[scanning?"Armed":"Unarmed"]</A> (Movement sensor active when armed!)"
dat += "<BR><A href='?src=\ref[src];scanning=[scanning?"0'>Armed":"1'>Unarmed"]</A> (Movement sensor active when armed!)"
dat += "<BR>Detection range: <A href='?src=\ref[src];sense=down'>-</A> [sensitivity] <A href='?src=\ref[src];sense=up'>+</A>"
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
user << browse(dat, "window=prox")
@@ -123,8 +145,11 @@
onclose(usr, "prox")
return
if(href_list["sense"])
sensitivity_change(((href_list["sense"] == "up") ? 1 : -1))
if(href_list["scanning"])
toggle_scan()
toggle_scan(text2num(href_list["scanning"]))
if(href_list["time"])
timing = text2num(href_list["time"])
+9 -1
View File
@@ -8,6 +8,8 @@
var/timing = 0
var/time = 5
var/saved_time = 5
var/loop = 0
/obj/item/device/assembly/timer/New()
@@ -47,6 +49,8 @@
cooldown = 2
spawn(10)
process_cooldown()
if(loop)
timing = 1
update_icon()
@@ -56,7 +60,7 @@
if(time <= 0)
timing = 0
timer_end()
time = initial(time)
time = saved_time
/obj/item/device/assembly/timer/update_icon()
@@ -74,6 +78,7 @@
var/second = time % 60
var/minute = (time - second) / 60
var/dat = "<TT><B>Timing Unit</B>\n[(timing ? "<A href='?src=\ref[src];time=0'>Timing</A>" : "<A href='?src=\ref[src];time=1'>Not Timing</A>")] [minute]:[second]\n<A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>\n</TT>"
dat += "<BR><BR><A href='?src=\ref[src];repeat=[(loop ? "0'>Stop repeating" : "1'>Set to repeat")]</A>"
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
var/datum/browser/popup = new(user, "timer", name)
@@ -96,11 +101,14 @@
bombers += timer_message
log_game("[key_name(usr)] activated [src] attachment for [loc]")
update_icon()
if(href_list["repeat"])
loop = text2num(href_list["repeat"])
if(href_list["tp"])
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 1), 600)
saved_time = time
if(href_list["close"])
usr << browse(null, "window=timer")
+50 -4
View File
@@ -11,20 +11,66 @@
verb_exclaim = "beeps"
var/listening = 0
var/recorded = "" //the activation message
var/mode = 1
var/global/list/modes = list("inclusive",
"exclusive",
"recognizer",
"voice sensor")
/obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans)
if(speaker == src)
return
if(listening && !radio_freq)
recorded = raw_message
listening = 0
say("Activation message is '[recorded]'.")
record_speech(speaker, raw_message)
else
if(findtextEx(raw_message, recorded))
if(check_activation(speaker, raw_message))
spawn(10)
pulse(0)
/obj/item/device/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message)
switch(mode)
if(1)
recorded = raw_message
listening = 0
say("Activation message is '[recorded]'.")
if(2)
recorded = raw_message
listening = 0
say("Activation message is '[recorded]'.")
if(3)
recorded = speaker.GetVoice()
listening = 0
say("Your voice pattern is saved.")
if(4)
if(length(raw_message))
spawn(10)
pulse(0)
/obj/item/device/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message)
. = 0
switch(mode)
if(1)
if(findtextEx(raw_message, recorded))
. = 1
if(2)
if(raw_message == recorded)
. = 1
if(3)
if(speaker.GetVoice() == recorded)
. = 1
if(4)
if(length(raw_message))
. = 1
/obj/item/device/assembly/voice/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/device/multitool))
mode %= modes.len
mode++
user << "You set [src] into a [modes[mode]] mode."
listening = 0
recorded = ""
/obj/item/device/assembly/voice/activate()
if(secured)
if(!holder)