diff --git a/code/defines/obj/radio.dm b/code/defines/obj/radio.dm
index 86341743c93..e69de29bb2d 100644
--- a/code/defines/obj/radio.dm
+++ b/code/defines/obj/radio.dm
@@ -1,185 +0,0 @@
-/obj/item/device/radio
- icon = 'radio.dmi'
- name = "station bounced radio"
- suffix = "\[3\]"
- icon_state = "walkietalkie"
- item_state = "walkietalkie"
- var
- last_transmission
- frequency = 1459 //common chat
- traitor_frequency = 0 //tune to frequency to unlock traitor supplies
- obj/item/device/radio/patch_link = null
- obj/item/weapon/syndicate_uplink/traitorradio = null
- wires = WIRE_SIGNAL | WIRE_RECEIVE | WIRE_TRANSMIT
- b_stat = 0
- broadcasting = 0
- listening = 1
- freerange = 0 // 0 - Sanitize frequencies, 1 - Full range
- list/channels = list() //see communications.dm for full list. First channes is a "default" for :h
-// "Example" = FREQ_LISTENING|FREQ_BROADCASTING
- flags = 450
- throw_speed = 2
- throw_range = 9
- w_class = 2
- g_amt = 25
- m_amt = 75
- var/const
- WIRE_SIGNAL = 1 //sends a signal, like to set off a bomb or electrocute someone
- WIRE_RECEIVE = 2
- WIRE_TRANSMIT = 4
- TRANSMISSION_DELAY = 5 // only 2/second/radio
- FREQ_LISTENING = 1
- //FREQ_BROADCASTING = 2
-
-/obj/item/device/radio/beacon
- name = "Tracking Beacon"
- desc = "A beacon used by a teleporter."
- icon_state = "beacon"
- item_state = "signaler"
- var/code = "electronic"
- origin_tech = "bluespace=1"
-
-/obj/item/device/radio/courtroom_beacon
- name = "Tracking Beacon"
- desc = "A more useless beacon in the courtroom."
- icon_state = "beacon"
- item_state = "signaler"
- var/code = "electronic"
-
-/obj/item/device/radio/intercom
- name = "Station Intercom (Radio)"
- desc = "Talk through this."
- icon_state = "intercom"
- anchored = 1
- var/number = 0
- var/anyai = 1
- var/mob/living/silicon/ai/ai = list()
-
-/obj/item/device/radio/headset
- name = "Radio Headset"
- desc = "An intercom that fits over the head."
- icon_state = "headset"
- item_state = "headset"
- g_amt = 0
- m_amt = 75
- var
- protective_temperature = 0
- translate_binary = 0
- translate_hive = 0
-
-/obj/item/device/radio/headset/traitor
- translate_binary = 1
- channels = list("Syndicate" = 1)
- origin_tech = "syndicate=3"
-
-/obj/item/device/radio/headset/headset_sec // -- TLE
- name = "Security Radio Headset"
- desc = "This is used by your elite security force. To access the security channel, use :s."
- icon_state = "sec_headset"
- item_state = "headset"
- channels = list("Security" = 1)
-
-/obj/item/device/radio/headset/headset_eng // -- TLE
- name = "Engineering Radio Headset"
- desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. "
- icon_state = "eng_headset"
- item_state = "headset"
- channels = list("Engineering" = 1)
-
-/obj/item/device/radio/headset/headset_rob // -- DH
- name = "Robotics Radio Headset"
- desc = "Made specifically for the roboticists who cannot decide between departments. To access the engineering channel, use :e. For research, use :n."
- icon_state = "rob_headset"
- item_state = "headset"
- channels = list("Engineering" = 1, "Science" = 1)
-
-/obj/item/device/radio/headset/headset_med // -- TLE
- name = "Medical Radio Headset"
- desc = "A headset for the trained staff of the medbay. To access the medical channel, use :m."
- icon_state = "med_headset"
- item_state = "headset"
- channels = list("Medical" = 1)
-
-/obj/item/device/radio/headset/headset_sci // -- Bar
- name = "Science Radio Headset"
- desc = "A sciency headset. Like usual. To access the science channel, use :n."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Science" = 1)
-
-/obj/item/device/radio/headset/headset_medsci // -- Micro
- name = "Medical Research Radio Headset"
- desc = "A headset that is a result of the mating between medical and science. To access the medical channel, use :m. For science, use :n."
- icon_state = "med_headset"
- item_state = "headset"
- channels = list("Medical" = 1, "Science" = 1)
-
-/obj/item/device/radio/headset/headset_com // -- TLE
- name = "Command Radio Headset"
- desc = "A headset with a commanding channel. To access the command channel, use :c."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Command" = 1)
-
-/obj/item/device/radio/headset/heads/captain // -- Bar
- name = "Captain's Headset"
- desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Command" = 1, "Science" = 0, "Medical" = 0, "Security" = 1, "Engineering" = 0, "Mining" = 0, "Cargo" = 0)
-
-/obj/item/device/radio/headset/heads/rd // -- Bar
- name = "Research Director's Headset"
- desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Science" = 1, "Command" = 1)
-
-/obj/item/device/radio/headset/heads/hos // -- Bar
- name = "Head of Security's Headset"
- desc = "The headset of the man who protects your worthless lifes. To access the security channel, use :s. For command, use :c."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Security" = 1, "Command" = 1)
-
-/obj/item/device/radio/headset/heads/ce // -- Bar
- name = "Chief Engineer's Headset"
- desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Engineering" = 1, "Command" = 1)
-
-/obj/item/device/radio/headset/heads/cmo // -- Bar
- name = "Chief Medical Officer's Headset"
- desc = "The headset of the highly trained medical chief. To access the medical channel, use :m. For command, use :c."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Medical" = 1, "Command" = 1)
-
-/obj/item/device/radio/headset/heads/hop // -- rastaf0
- name = "Head of Personnel's Headset"
- desc = "The headset of the guy who will one day be captain. Channels are as follows: :c - command, :s - security, :q - cargo, :d - mining."
- icon_state = "com_headset"
- item_state = "headset"
- channels = list("Command" = 1, "Security" = 0, "Cargo" = 1, "Mining" = 0)
-
-/obj/item/device/radio/headset/headset_mine // -- rastaf0
- name = "Mining Radio Headset"
- desc = "Headset used by miners. How useless. To access the mining channel, use :d."
- icon_state = "mine_headset"
- item_state = "headset"
- channels = list("Mining" = 1)
-
-/obj/item/device/radio/headset/headset_cargo // -- rastaf0
- name = "Cargo Radio Headset"
- desc = "Headset used by the QM's slaves. To access the cargo channel, use :q."
- icon_state = "cargo_headset"
- item_state = "headset"
- channels = list("Cargo" = 1)
-
-/obj/item/device/radio/headset/heads/qm // -- rastaf0
- name = "Quartermaster's Headset"
- desc = "The headset of the man who control your toiletpaper supply. To access the cargo channel, use :q. For mining, use :d."
- icon_state = "cargo_headset"
- item_state = "headset"
- channels = list("Cargo" = 1, "Mining" = 1)
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index 9173fb3591f..fd9d33c7d53 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -87,7 +87,7 @@
if (1)
command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('outbreak5.ogg')
- autoexpand = 0//The blob now has to live on its own
+// autoexpand = 0//The blob now has to live on its own
stage = 2
// now check every minute
next_stage = world.timeofday + 600
@@ -169,17 +169,17 @@
intercepttext += "Your orders are as follows:
"
intercepttext += "1. Secure the Nuclear Authentication Disk.
"
intercepttext += "2. Detonate the Nuke located in the Station's Vault.
"
- intercepttext += "Nuclear Authentication Code: [nukecode]"
+ intercepttext += "Nuclear Authentication Code: [nukecode]
"
intercepttext += "Message ends."
for(var/obj/machinery/computer/communications/comm in world)
- if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept)
+ comm.messagetitle.Add(interceptname)
+ comm.messagetext.Add(intercepttext)
+ if(!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept)
var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc )
intercept.name = "paper- [interceptname]"
intercept.info = intercepttext
- comm.messagetitle.Add(interceptname)
- comm.messagetext.Add(intercepttext)
@@ -216,4 +216,4 @@
world << text("The AI failed to maintain the quarantine - [] were in space and [] were off-station (as far as we can tell).", numSpace, numOffStation)
log_game("AI lost at Blob mode.")
log_game("Blob mode was lost.")
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 9b5c4d23945..6f26d493a26 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -154,7 +154,7 @@
if(T.Enter(B,src))
B.loc = T
else
- for(var/atom/A in T)//This might be killing the spores
+ for(var/atom/A in T)//This might be killing the spores, it IS killing the spores
A.blob_act()
T.blob_act()
del(B)
diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/gamemodes/events/miniblob.dm
index 63f2d269ed8..d16667d8508 100644
--- a/code/game/gamemodes/events/miniblob.dm
+++ b/code/game/gamemodes/events/miniblob.dm
@@ -8,16 +8,24 @@
bl.Life()
bl.Life()
bl.Life()
+ bl.blobdebug = 1
bl.Life()
blobevent = 1
- dotheblobbaby()
+ spawn(0)
+ dotheblobbaby()
spawn(3000)
blobevent = 0
/proc/dotheblobbaby()
if (blobevent)
- for(var/obj/blob/B in world)
- if (prob (40))
+ if (blobs.len > 0)
+ for(var/i = 1 to 10)
+ sleep(-1)
+ if (blobs.len == 0)
+ break
+ var/obj/blob/B = pick(active_blobs)
+ if(B.z != 1)
+ continue
B.Life()
spawn(30)
dotheblobbaby()
\ No newline at end of file
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 783ab57999c..24606e71e83 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -204,7 +204,7 @@
as it will return null). Leaving this for you since you apparently plan to work this further. /N
*/
- if(!ticker.mode.check_win())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
+ if(!ticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
world << "Resetting in 30 seconds!"
sleep(300)
log_game("Rebooting due to nuclear detonation")
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 196cfd0c589..81d6b233f0f 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -101,30 +101,6 @@
if(!T || istype(T, /area)) return null
return T
-/obj/machinery/computer/teleporter/security/attack_hand()
- if(stat & (NOPOWER|BROKEN))
- return
-
- var/list/L = list()
- var/list/areaindex = list()
-
- for(var/obj/item/device/radio/courtroom_beacon/R in world)
- var/turf/T = find_loc(R)
- if (!T) continue
- var/tmpname = T.loc.name
- if(areaindex[tmpname])
- tmpname = "[tmpname] ([++areaindex[tmpname]])"
- else
- areaindex[tmpname] = 1
- L[tmpname] = R
-
- var/desc = input("Please select a location to lock in.", "Locking Computer") in L
- src.locked = L[desc]
- for(var/mob/O in hearers(src, null))
- O.show_message("\blue Locked In", 2)
- src.add_fingerprint(usr)
- return
-
/obj/machinery/teleport/hub/Bumped(M as mob|obj)
spawn( 0 )
if (src.icon_state == "tele1")
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index 6a8cf7ea5ef..1c474b4281e 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -103,7 +103,7 @@ Frequency:
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?
- if(!current_location||current_location.z==2)//If turf was not found or they're on z level 2.
+ if(!current_location||current_location.z==2||current_location.z>=7)//If turf was not found or they're on z level 2 or >7 which does not currently exist.
user << "The [src] is malfunctioning."
return
var/list/L = list( )
@@ -119,7 +119,8 @@ Frequency:
if(T.x>world.maxx-4 || T.x<4) continue //putting them at the edge is dumb
if(T.y>world.maxy-4 || T.y<4) continue
turfs += T
- L["None (Dangerous)"] = pick(turfs)
+ if(turfs.len)
+ L["None (Dangerous)"] = pick(turfs)
var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") in L
if ((user.equipped() != src || user.stat || user.restrained()))
return
diff --git a/code/game/objects/radio/beacon.dm b/code/game/objects/radio/beacon.dm
index ad3cead34b6..0aae0f9e698 100644
--- a/code/game/objects/radio/beacon.dm
+++ b/code/game/objects/radio/beacon.dm
@@ -1,9 +1,20 @@
+/obj/item/device/radio/beacon
+ name = "Tracking Beacon"
+ desc = "A beacon used by a teleporter."
+ icon_state = "beacon"
+ item_state = "signaler"
+ var/code = "electronic"
+ origin_tech = "bluespace=1"
+
+
/obj/item/device/radio/beacon/hear_talk()
return
+
/obj/item/device/radio/beacon/send_hear()
return null
+
/obj/item/device/radio/beacon/verb/alter_signal(t as text)
set name = "Alter Beacon's Signal"
set category = "Object"
@@ -16,7 +27,8 @@
src.add_fingerprint(usr)
return
+
/obj/item/device/radio/beacon/bacon //Probably a better way of doing this, I'm lazy.
proc/digest_delay()
spawn(600)
- del(src)
\ No newline at end of file
+ del(src)
diff --git a/code/game/objects/radio/headset.dm b/code/game/objects/radio/headset.dm
new file mode 100644
index 00000000000..401e2c68ca5
--- /dev/null
+++ b/code/game/objects/radio/headset.dm
@@ -0,0 +1,132 @@
+/obj/item/device/radio/headset
+ name = "Radio Headset"
+ desc = "An intercom that fits over the head."
+ icon_state = "headset"
+ item_state = "headset"
+ g_amt = 0
+ m_amt = 75
+ var
+ protective_temperature = 0
+ translate_binary = 0
+ translate_hive = 0
+
+/obj/item/device/radio/headset/traitor
+ translate_binary = 1
+ channels = list("Syndicate" = 1)
+ origin_tech = "syndicate=3"
+
+/obj/item/device/radio/headset/headset_sec
+ name = "Security Radio Headset"
+ desc = "This is used by your elite security force. To access the security channel, use :s."
+ icon_state = "sec_headset"
+ item_state = "headset"
+ channels = list("Security" = 1)
+
+/obj/item/device/radio/headset/headset_eng
+ name = "Engineering Radio Headset"
+ desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. "
+ icon_state = "eng_headset"
+ item_state = "headset"
+ channels = list("Engineering" = 1)
+
+/obj/item/device/radio/headset/headset_rob
+ name = "Robotics Radio Headset"
+ desc = "Made specifically for the roboticists who cannot decide between departments. To access the engineering channel, use :e. For research, use :n."
+ icon_state = "rob_headset"
+ item_state = "headset"
+ channels = list("Engineering" = 1, "Science" = 1)
+
+/obj/item/device/radio/headset/headset_med
+ name = "Medical Radio Headset"
+ desc = "A headset for the trained staff of the medbay. To access the medical channel, use :m."
+ icon_state = "med_headset"
+ item_state = "headset"
+ channels = list("Medical" = 1)
+
+/obj/item/device/radio/headset/headset_sci
+ name = "Science Radio Headset"
+ desc = "A sciency headset. Like usual. To access the science channel, use :n."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Science" = 1)
+
+/obj/item/device/radio/headset/headset_medsci
+ name = "Medical Research Radio Headset"
+ desc = "A headset that is a result of the mating between medical and science. To access the medical channel, use :m. For science, use :n."
+ icon_state = "med_headset"
+ item_state = "headset"
+ channels = list("Medical" = 1, "Science" = 1)
+
+/obj/item/device/radio/headset/headset_com
+ name = "Command Radio Headset"
+ desc = "A headset with a commanding channel. To access the command channel, use :c."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Command" = 1)
+
+/obj/item/device/radio/headset/heads/captain
+ name = "Captain's Headset"
+ desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Command" = 1, "Science" = 0, "Medical" = 0, "Security" = 1, "Engineering" = 0, "Mining" = 0, "Cargo" = 0)
+
+/obj/item/device/radio/headset/heads/rd
+ name = "Research Director's Headset"
+ desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Science" = 1, "Command" = 1)
+
+/obj/item/device/radio/headset/heads/hos
+ name = "Head of Security's Headset"
+ desc = "The headset of the man who protects your worthless lifes. To access the security channel, use :s. For command, use :c."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Security" = 1, "Command" = 1)
+
+/obj/item/device/radio/headset/heads/ce
+ name = "Chief Engineer's Headset"
+ desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Engineering" = 1, "Command" = 1)
+
+/obj/item/device/radio/headset/heads/cmo
+ name = "Chief Medical Officer's Headset"
+ desc = "The headset of the highly trained medical chief. To access the medical channel, use :m. For command, use :c."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Medical" = 1, "Command" = 1)
+
+/obj/item/device/radio/headset/heads/hop
+ name = "Head of Personnel's Headset"
+ desc = "The headset of the guy who will one day be captain. Channels are as follows: :c - command, :s - security, :q - cargo, :d - mining."
+ icon_state = "com_headset"
+ item_state = "headset"
+ channels = list("Command" = 1, "Security" = 0, "Cargo" = 1, "Mining" = 0)
+
+
+/obj/item/device/radio/headset/headset_mine
+ name = "Mining Radio Headset"
+ desc = "Headset used by miners. How useless. To access the mining channel, use :d."
+ icon_state = "mine_headset"
+ item_state = "headset"
+ channels = list("Mining" = 1)
+
+
+
+/obj/item/device/radio/headset/heads/qm
+ name = "Quartermaster's Headset"
+ desc = "The headset of the man who control your toiletpaper supply. To access the cargo channel, use :q. For mining, use :d."
+ icon_state = "cargo_headset"
+ item_state = "headset"
+ channels = list("Cargo" = 1, "Mining" = 1)
+
+
+/obj/item/device/radio/headset/headset_cargo
+ name = "Cargo Radio Headset"
+ desc = "Headset used by the QM's slaves. To access the cargo channel, use :q."
+ icon_state = "cargo_headset"
+ item_state = "headset"
+ channels = list("Cargo" = 1)
\ No newline at end of file
diff --git a/code/game/objects/radio/intercom.dm b/code/game/objects/radio/intercom.dm
index 8eb67749e0f..5253b90c3d1 100644
--- a/code/game/objects/radio/intercom.dm
+++ b/code/game/objects/radio/intercom.dm
@@ -1,39 +1,52 @@
-/obj/item/device/radio/intercom/attack_ai(mob/user as mob)
- src.add_fingerprint(user)
- spawn (0)
- attack_self(user)
+/obj/item/device/radio/intercom
+ name = "Station Intercom (Radio)"
+ desc = "Talk through this."
+ icon_state = "intercom"
+ anchored = 1
+ var/number = 0
+ var/anyai = 1
+ var/mob/living/silicon/ai/ai = list()
-/obj/item/device/radio/intercom/attack_paw(mob/user as mob)
- if ((ticker && ticker.mode.name == "monkey"))
- return src.attack_hand(user)
-/obj/item/device/radio/intercom/attack_hand(mob/user as mob)
- src.add_fingerprint(user)
- spawn (0)
- attack_self(user)
+ attack_ai(mob/user as mob)
+ src.add_fingerprint(user)
+ spawn (0)
+ attack_self(user)
-/obj/item/device/radio/intercom/send_hear()
- if (!(src.wires & WIRE_RECEIVE))
- return
- if (!src.listening)
- return
+ attack_paw(mob/user as mob)
+ if ((ticker && ticker.mode.name == "monkey"))
+ return src.attack_hand(user)
- var/turf/T = get_turf(src)
- var/list/hear = hearers(7, T)
- var/list/V
- //find mobs in lockers, cryo and intellycards
- for (var/mob/M in world)
- if (isturf(M.loc))
- continue //if M can hear us it is already was found by hearers()
- if (!M.client)
- continue //skip monkeys and leavers
- if (!V) //lasy initialisation
- V = view(7, T)
- if (get_turf(M) in V) //this slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
- hear+=M
- return hear
-/obj/item/device/radio/intercom/hear_talk(mob/M as mob, msg)
- if(!src.anyai && !(M in src.ai))
- return
- ..()
\ No newline at end of file
+ attack_hand(mob/user as mob)
+ src.add_fingerprint(user)
+ spawn (0)
+ attack_self(user)
+
+
+ send_hear()
+ if (!(src.wires & WIRE_RECEIVE))
+ return
+ if (!src.listening)
+ return
+
+ var/turf/T = get_turf(src)
+ var/list/hear = hearers(7, T)
+ var/list/V
+ //find mobs in lockers, cryo and intellycards
+ for(var/mob/M in world)
+ if (isturf(M.loc))
+ continue //if M can hear us it is already was found by hearers()
+ if (!M.client)
+ continue //skip monkeys and leavers
+ if (!V) //lasy initialisation
+ V = view(7, T)
+ if (get_turf(M) in V) //this slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
+ hear+=M
+ return hear
+
+
+ hear_talk(mob/M as mob, msg)
+ if(!src.anyai && !(M in src.ai))
+ return
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm
index e716735b2f0..2467717652f 100644
--- a/code/game/objects/radio/radio.dm
+++ b/code/game/objects/radio/radio.dm
@@ -1,3 +1,49 @@
+/obj/item/device/radio
+ icon = 'radio.dmi'
+ name = "station bounced radio"
+ suffix = "\[3\]"
+ icon_state = "walkietalkie"
+ item_state = "walkietalkie"
+ var
+ last_transmission
+ frequency = 1459 //common chat
+ traitor_frequency = 0 //tune to frequency to unlock traitor supplies
+ obj/item/device/radio/patch_link = null
+ obj/item/weapon/syndicate_uplink/traitorradio = null
+ wires = WIRE_SIGNAL | WIRE_RECEIVE | WIRE_TRANSMIT
+ b_stat = 0
+ broadcasting = 0
+ listening = 1
+ freerange = 0 // 0 - Sanitize frequencies, 1 - Full range
+ list/channels = list() //see communications.dm for full list. First channes is a "default" for :h
+// "Example" = FREQ_LISTENING|FREQ_BROADCASTING
+ flags = 450
+ throw_speed = 2
+ throw_range = 9
+ w_class = 2
+ g_amt = 25
+ m_amt = 75
+ var/const
+ WIRE_SIGNAL = 1 //sends a signal, like to set off a bomb or electrocute someone
+ WIRE_RECEIVE = 2
+ WIRE_TRANSMIT = 4
+ TRANSMISSION_DELAY = 5 // only 2/second/radio
+ FREQ_LISTENING = 1
+ //FREQ_BROADCASTING = 2
+
+
+/obj/item/device/radio
+ var
+ datum/radio_frequency/radio_connection
+ list/datum/radio_frequency/secure_radio_connections = new
+ proc
+ set_frequency(new_frequency)
+ radio_controller.remove_object(src, frequency)
+ frequency = new_frequency
+ radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
+
+
+
/obj/item/device/radio/New()
..()
if(radio_controller)
@@ -16,15 +62,6 @@
for (var/ch_name in channels)
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
-/obj/item/device/radio
- var
- datum/radio_frequency/radio_connection
- list/datum/radio_frequency/secure_radio_connections = new
- proc
- set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
- frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
/obj/item/device/radio/attack_self(mob/user as mob)
user.machine = src
@@ -62,11 +99,7 @@
/obj/item/device/radio/proc/text_sec_channel(var/chan_name, var/chan_stat)
- //var/broad = (chan_stat&FREQ_BROADCASTING)!=0
var/list = !!(chan_stat&FREQ_LISTENING)!=0
-/*
-Microphone:" [broad ? "Engaged" : "Disengaged"]"
-*/
return {"
[chan_name]
Speaker: [list ? "Engaged" : "Disengaged"]
@@ -406,8 +439,3 @@ Microphone:"
for (var/ch_name in channels)
channels[ch_name] = 0
..()
-
-/obj/item/device/radio/banana //Why is this even needed? So that it shows up as a banana in the chat log.
- name = "Banana Phone"
- icon = 'items.dmi'
- icon_state = "banana" //needs a new icon.
\ No newline at end of file
diff --git a/code/game/objects/radio/signaler.dm b/code/game/objects/radio/signaler.dm
index 464e5db8a09..d6bd6ee02a1 100644
--- a/code/game/objects/radio/signaler.dm
+++ b/code/game/objects/radio/signaler.dm
@@ -143,7 +143,7 @@ Code:
spawn(0)
holder:Process_Activation(src)
return
-// src.holder.receive_signal(signal)
+
for(var/mob/O in hearers(1, src.loc))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
diff --git a/code/modules/critters/hivebots/hivebot.dm b/code/modules/critters/hivebots/hivebot.dm
index 01cff4e0298..f120f724ba5 100644
--- a/code/modules/critters/hivebots/hivebot.dm
+++ b/code/modules/critters/hivebots/hivebot.dm
@@ -73,16 +73,20 @@
if(!src.attack)
for(var/obj/critter/C in view(src.seekrange,src))
if(istype(C, /obj/critter) && !src.atkcritter) continue
- if(istype(C, /obj/mecha) && !src.atkmech) continue
if(C.health <= 0) continue
if(istype(C, /obj/critter) && src.atkcritter)
if((istype(C, /obj/critter/hivebot) && !src.atksame) || (C == src)) continue
- src.attack = 1
- if(istype(C, /obj/mecha) && src.atkmech) src.attack = 1
- if(src.attack)
T = C
break
+ for(var/obj/mecha/M in view(src.seekrange,src))
+ if(istype(M, /obj/mecha) && !src.atkmech) continue
+ if(M.health <= 0) continue
+ if(istype(M, /obj/mecha) && src.atkmech) src.attack = 1
+ if(src.attack)
+ T = M
+ break
+
if(src.attack)
src.target = T
src.oldtarget_name = T:name
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index d987c3357c4..13dd5e09883 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -88,10 +88,10 @@
handle_regular_status_updates()
- //Stop AI using us as a camera
- src.camera.status = 1//bluh bluh ugly fix but it will work till this whole thing gets recoded
- if(src.stat)
- src.camera.status = 0
+ if(camera)
+ src.camera.status = 1//bluh bluh ugly fix but it will work till this whole thing gets recoded
+ if(src.stat)
+ src.camera.status = 0
health = 300 - (oxyloss + fireloss + bruteloss)
diff --git a/tgstation.dme b/tgstation.dme
index 2842190673c..4cd88479901 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -150,7 +150,6 @@
#define FILE_DIR "icons/turf"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
-#define FILE_DIR "maps/backup"
#define FILE_DIR "sound"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/announcer"
@@ -624,6 +623,7 @@
#include "code\game\objects\items\weapons\implants\implantpad.dm"
#include "code\game\objects\radio\beacon.dm"
#include "code\game\objects\radio\electropack.dm"
+#include "code\game\objects\radio\headset.dm"
#include "code\game\objects\radio\intercom.dm"
#include "code\game\objects\radio\radio.dm"
#include "code\game\objects\radio\signaler.dm"