mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Merge conflict fix
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"])
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user