diff --git a/code/game/objects/radio/newradio.dm b/code/game/objects/radio/newradio.dm deleted file mode 100644 index fc80055b943..00000000000 --- a/code/game/objects/radio/newradio.dm +++ /dev/null @@ -1,48 +0,0 @@ -/obj/item/device/Nradio - icon = 'radio.dmi' - name = "station bounced radio" - suffix = "\[3\]" - icon_state = "walkietalkie" - item_state = "walkietalkie" - - flags = 450//FFFF what does this even mean likely conduct+onbelt+someothershit - throw_speed = 2 - throw_range = 9 - w_class = 2 - g_amt = 25 - m_amt = 75 - - var - //General things - frequency = 1459 //Default freq - broadcasting = 0 //Mike - listening = 1 //Speaker - secured = 0 //Can you see our wires - freerange = 0 // 0 - Sanitize frequencies, 1 - Full range - - datum/radio_frequency/radio_connection = null - list/datum/radio_frequency/secure_radio_connections = new - - //Internal things - obj/item/weapon/syndicate_uplink/uplink = null //If we have an uplink one of our freqs will activate it - wires = WIRE_RECEIVE | WIRE_TRANSMIT //Active wires - - list/channels = list() //see communications.dm for full list. First channes is a "default" for :h -// "Example" = FREQ_LISTENING|FREQ_BROADCASTING - - last_transmission //What is this - obj/item/device/radio/patch_link = null //What is this - - var/const - WIRE_TRANSMIT = 1 //sends a signal, like to set off a bomb or electrocute someone, or talk - WIRE_RECEIVE = 2 //we can hear things - TRANSMISSION_DELAY = 5 // only 2/second/radio antispam protection - FREQ_LISTENING = 1 - - - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) - diff --git a/code/game/objects/radio/signaler.dm b/code/game/objects/radio/signaler.dm deleted file mode 100644 index d953dcd9af4..00000000000 --- a/code/game/objects/radio/signaler.dm +++ /dev/null @@ -1,164 +0,0 @@ -/obj/item/device/radio/signaler - name = "Remote Signaling Device" - desc = "Used to remotely activate devices." - icon = 'new_assemblies.dmi' - icon_state = "signaller" - item_state = "signaler" - var/code = 30 - w_class = 1 - frequency = 1457 - var/delay = 0 - - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(isscrewdriver(W)) - b_stat = !b_stat - if(b_stat) - user.show_message("\blue The [src.name] can now be attached!") - else - user.show_message("\blue The [src.name] is ready!") - return - else - ..() - return - -/obj/item/device/radio/signaler/attack_self(mob/user as mob, flag1) - user.machine = src - interact(user,flag1) - -/obj/item/device/radio/signaler/interact(mob/user as mob, flag1) - var/t1 - if ((src.b_stat && !( flag1 ))) - t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) - else - t1 = "-------" - var/dat = {" - -Speaker: [src.listening ? "Engaged" : "Disengaged"]
-Send Signal
-Frequency/Code for signaler:
-Frequency: -- -- -[format_frequency(src.frequency)] -+ -+
- -Code: -- -- -[src.code] -+ -+
-[t1] -
"} - user << browse(dat, "window=radio") - onclose(user, "radio") - return - -/obj/item/device/radio/signaler/hear_talk() - return - -/obj/item/device/radio/signaler/send_hear() - return - - -/obj/item/device/radio/signaler/receive_signal(datum/signal/signal) - if(!signal || (signal.encryption != code)) return 0 - - if (!( src.wires & 2 )) - return - - for(var/mob/O in hearers(1, src.loc)) - O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2) - return - - -/obj/item/device/radio/signaler/proc/send_signal(message="ACTIVATE") - - if(last_transmission && world.time < (last_transmission + TRANSMISSION_DELAY)) - return - last_transmission = world.time - - if (!( src.wires & 4 )) - return - - if((usr)&&(ismob(usr))) - var/time = time2text(world.realtime,"hh:mm:ss") - lastsignalers.Add("[time] : [usr.key] used [src] @ location ([src.loc.x],[src.loc.y],[src.loc.z]) : [format_frequency(frequency)]/[code]") - - var/datum/signal/signal = new - signal.source = src - signal.encryption = code - signal.data["message"] = message - - radio_connection.post_signal(src, signal) - - return - -/obj/item/device/radio/signaler/Topic(href, href_list) - //..() - if (usr.stat) - return - if (usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) - usr.machine = src - if (href_list["freq"]) - ..() - return - else - if (href_list["code"]) - src.code += text2num(href_list["code"]) - src.code = round(src.code) - src.code = min(100, src.code) - src.code = max(1, src.code) - else - if (href_list["send"]) - spawn( 0 ) - src.send_signal("ACTIVATE") - return - else - if (href_list["listen"]) - src.listening = text2num(href_list["listen"]) - else - if (href_list["wires"]) - var/t1 = text2num(href_list["wires"]) - if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) - return - if ((!( src.b_stat ) && !( src.master ))) - return - if (t1 & 1) - if (src.wires & 1) - src.wires &= 65534 - else - src.wires |= 1 - else - if (t1 & 2) - if (src.wires & 2) - src.wires &= 65533 - else - src.wires |= 2 - else - if (t1 & 4) - if (src.wires & 4) - src.wires &= 65531 - else - src.wires |= 4 - src.add_fingerprint(usr) - if (!src.master) - if (istype(src.loc, /mob)) - attack_self(src.loc) - else - for(var/mob/M in viewers(1, src)) - if (M.client) - src.attack_self(M) - else - if (istype(src.master.loc, /mob)) - src.attack_self(src.master.loc) - else - for(var/mob/M in viewers(1, src.master)) - if (M.client) - src.attack_self(M) - else - usr << browse(null, "window=radio") - return - return \ No newline at end of file diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 27d431492b5..f3e9634cbcf 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -15,12 +15,20 @@ var code = 30 - frequency = 100 + frequency = 1457 delay = 0 airlock_wire = null + datum/radio_frequency/radio_connection proc - send_signal() + signal() + + + New() + ..() + spawn(40) + set_frequency(frequency) + return activate() @@ -30,12 +38,10 @@ process_cooldown() signal() - return 1 interact(mob/user as mob, flag1) - var/t1 = "-------" // if ((src.b_stat && !( flag1 ))) // t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) @@ -49,7 +55,7 @@ Frequency: - - - [src.frequency] + [format_frequency(src.frequency)] + +
@@ -75,10 +81,10 @@ return if (href_list["freq"]) - src.frequency += text2num(href_list["freq"]) - src.frequency = round(src.frequency) - src.frequency = min(100, src.frequency) - src.frequency = max(1, src.frequency) + var/new_frequency = (frequency + text2num(href_list["freq"])) + if(new_frequency < 1200 || new_frequency > 1600) + new_frequency = sanitize_frequency(new_frequency) + set_frequency(new_frequency) if(href_list["code"]) src.code += text2num(href_list["code"]) @@ -95,14 +101,22 @@ return - proc/signal()//will have to do for now + + signal() + var/datum/signal/signal = new + signal.source = src + signal.encryption = code + signal.data["message"] = "ACTIVATE" + radio_connection.post_signal(src, signal) + return +/* for(var/obj/item/device/assembly/signaler/S in world) if(!S) continue if(S == src) continue if((S.frequency == src.frequency) && (S.code == src.code)) spawn(0) if(S) S.pulse(0) - return 0 + return 0*/ pulse(var/radio = 0) @@ -111,4 +125,22 @@ A.pulse(src.airlock_wire) else if(holder) holder.process_activation(src, 1, 0) - return 1 \ No newline at end of file + return 1 + + + receive_signal(datum/signal/signal) + if(!signal) return 0 + if(signal.encryption != code) return 0 + if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0 + pulse(1) + + for(var/mob/O in hearers(1, src.loc)) + O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2) + return + + + proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) + return \ No newline at end of file diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 18c58e3db3a..10d847a9885 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -49,7 +49,7 @@ process() - if(timing && (time >= 0)) + if(timing && (time > 0)) time-- if(timing && time <= 0) timing = 0 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d1337ea27c2..c7a21436b65 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -14,26 +14,38 @@ /client/North() ..() + /client/South() ..() + /client/West() ..() + /client/East() ..() + /client/Northeast() - ..() + swap_hand() + return + /client/Southeast() - ..() + attack_self() + return + /client/Southwest() - ..() + toggle_throw_mode() + return + /client/Northwest() - ..() + drop_item() + return + /client/verb/swap_hand() set hidden = 1 @@ -41,6 +53,7 @@ mob:swap_hand() return + /client/verb/attack_self() set hidden = 1 var/obj/item/weapon/W = mob.equipped() @@ -48,6 +61,7 @@ W.attack_self(mob) return + /client/verb/toggle_throw_mode() set hidden = 1 if(!istype(mob, /mob/living/carbon)) return @@ -55,12 +69,14 @@ mob:toggle_throw_mode() return + /client/verb/drop_item() set hidden = 1 if(!isrobot(mob)) mob.drop_item_v() return + /client/Center() if (isobj(mob.loc)) var/obj/O = mob.loc diff --git a/interface/skin.dmf b/interface/skin.dmf index ae703f64e30..c99957268c9 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -4,20 +4,20 @@ macro "macro" command = ".center" is-disabled = false elem - name = "NORTHEAST" - command = "swap-hand" + name = "NORTHEAST+REP" + command = ".northeast" is-disabled = false elem - name = "SOUTHEAST" - command = "attack-self" + name = "SOUTHEAST+REP" + command = ".southeast" is-disabled = false elem - name = "SOUTHWEST" - command = "toggle-throw-mode" + name = "SOUTHWEST+REP" + command = ".southwest" is-disabled = false elem - name = "NORTHWEST" - command = "drop-item" + name = "NORTHWEST+REP" + command = ".northwest" is-disabled = false elem name = "CTRL+WEST" @@ -67,42 +67,6 @@ macro "macro" name = "CTRL+W" command = "attack-self" is-disabled = false - elem - name = "NUMPAD2+REP" - command = ".south" - is-disabled = false - elem - name = "NUMPAD4+REP" - command = ".west" - is-disabled = false - elem - name = "NUMPAD5+REP" - command = ".center" - is-disabled = false - elem - name = "NUMPAD6+REP" - command = ".east" - is-disabled = false - elem - name = "NUMPAD8+REP" - command = ".north" - is-disabled = false - elem - name = "MULTIPLY" - command = "swap-hand" - is-disabled = false - elem - name = "ADD" - command = "attack-self" - is-disabled = false - elem - name = "SUBTRACT" - command = "drop-item" - is-disabled = false - elem - name = "DIVIDE" - command = "toggle-throw-mode" - is-disabled = false elem name = "F1" command = "adminhelp"