diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm
index 1ec48ba52..1741f4db2 100644
--- a/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -86,11 +86,11 @@
to_chat(user, "Your [src] is already occupied.")
return
- user.visible_message("[hound.name] is carefully inserting [target.name] into their [src].",
+ user.visible_message("[hound.name] is carefully inserting [target.name] into their [src].",
"You start placing [target] into your [src]...")
if(!patient && iscarbon(target) && !target.buckled && do_after (user, 100, target = target))
- if(!in_range(src, target))
+ if(!in_range(src, target))
return
if(patient)
return
@@ -217,7 +217,7 @@
data["occupant"]["fireLoss"] = mob_occupant.getFireLoss()
data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss()
data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN)
-
+
if(mob_occupant.reagents.reagent_list.len)
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
chemical_list += list(list("name" = R.name, "volume" = R.volume))
@@ -393,7 +393,7 @@
H.playsound_local(source, null, 45, falloff = 0, S = pred_digest)
else if(H in contents)
H.playsound_local(source, null, 65, falloff = 0, S = prey_digest)
-
+
UpdateGut(hound)
if(cleaning)
addtimer(CALLBACK(src, .proc/clean_cycle, hound), 50)
@@ -515,7 +515,7 @@
trashman.reset_perspective(src)
user.visible_message("[hound.name]'s garbage processor groans lightly as [trashman] slips inside.", "Your garbage compactor groans lightly as [trashman] slips inside.")
playsound(hound, 'sound/effects/bin_close.ogg', 80, 1)
-
+
UpdateGut(hound)
@@ -523,4 +523,11 @@
var/current_belly = ..()
if(length(contents) > 11)
current_belly = BORGBELLY_RED
- return current_belly
\ No newline at end of file
+ return current_belly
+
+
+/obj/item/dogborg/sleeper/compactor/ore//identical to janihound for moment
+ name = "ore processor"
+ desc = "A mounted compactor unit with fuel processor."
+ icon = 'icons/mob/dogborg.dmi'
+ icon_state = "compactorb"//needs its own icon
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 7b6b6edc5..adcffbc80 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -67,6 +67,12 @@
syndie = TRUE
if(keyslot.independent)
independent = TRUE
+ //Skyrat edit start
+ if(extra_channels)
+ for(var/ch_name in extra_channels)
+ if(!(ch_name in channels))
+ channels[ch_name] = extra_channels[ch_name]
+ //Skyrat edit end
for(var/ch_name in channels)
secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name])
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 1148d6692..8cb24c86e 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -200,6 +200,10 @@
INVOKE_ASYNC(RM, .proc/do_transform_animation)
SEND_SIGNAL(R, COMSIG_CYBORG_MODULE_CHANGE) //hyperstation edit
qdel(src)
+ //Skyrat change start
+ R.radio.extra_channels = RM.added_channels
+ R.radio.recalculateChannels()
+ //Skyrat change stop
return RM
/obj/item/robot_module/proc/be_transformed_to(obj/item/robot_module/old_module)
diff --git a/hyperstation/code/game/objects/items/devices/radio/radio.dm b/hyperstation/code/game/objects/items/devices/radio/radio.dm
new file mode 100644
index 000000000..67ea054ff
--- /dev/null
+++ b/hyperstation/code/game/objects/items/devices/radio/radio.dm
@@ -0,0 +1,2 @@
+/obj/item/radio
+ var/list/extra_channels = list() //Allows indivudal channels, used for borgs
diff --git a/hyperstation/code/modules/mob/living/silicon/robot/examine_vr.dm b/hyperstation/code/modules/mob/living/silicon/robot/examine_vr.dm
new file mode 100644
index 000000000..f3b04a440
--- /dev/null
+++ b/hyperstation/code/modules/mob/living/silicon/robot/examine_vr.dm
@@ -0,0 +1,8 @@
+/mob/living/silicon/robot/proc/examine_bellies_borg()
+
+ var/message = ""
+ for(var/belly in vore_organs)
+ var/obj/belly/B = belly
+ message += B.get_examine_msg()
+
+ return message
diff --git a/hyperstation/code/modules/mob/living/silicon/robot/robot.dm b/hyperstation/code/modules/mob/living/silicon/robot/robot.dm
index 4752f0c95..20c7e7679 100644
--- a/hyperstation/code/modules/mob/living/silicon/robot/robot.dm
+++ b/hyperstation/code/modules/mob/living/silicon/robot/robot.dm
@@ -1,3 +1,3 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/mob/living/silicon/robot
- var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
\ No newline at end of file
+ var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
diff --git a/hyperstation/code/modules/mob/living/silicon/robot/robot_modules.dm b/hyperstation/code/modules/mob/living/silicon/robot/robot_modules.dm
index dbef0ad93..d42f3dbeb 100644
--- a/hyperstation/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/hyperstation/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -1,11 +1,60 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
+/obj/item/robot_module
+ var/list/added_channels = list() //Borg radio stuffs
+
+//service
+/obj/item/robot_module/butler
+ added_channels = list(RADIO_CHANNEL_SERVICE = 1)
+
+/obj/item/robot_module/clown
+ added_channels = list(RADIO_CHANNEL_SERVICE = 1)
+
+/obj/item/robot_module/janitor
+ added_channels = list(RADIO_CHANNEL_SERVICE = 1)
+
+//engineering
+/obj/item/robot_module/engineering
+ added_channels = list(RADIO_CHANNEL_ENGINEERING = 1)
+
+//medical
+/obj/item/robot_module/medical
+ added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
+
+//security
+/obj/item/robot_module/peacekeeper
+ added_channels = list(RADIO_CHANNEL_SECURITY = 1)
+
+/obj/item/robot_module/security
+ added_channels = list(RADIO_CHANNEL_SECURITY = 1)
+
+//supply
+/obj/item/robot_module/miner
+ added_channels = list(RADIO_CHANNEL_SUPPLY = 1) // Probably already handled by other code when spawned with pre-set module, but whatever.
+
+//dogborgs
+/obj/item/robot_module/k9
+ added_channels = list(RADIO_CHANNEL_SECURITY = 1)
+
+/obj/item/robot_module/medihound
+ added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
+
+/obj/item/robot_module/scrubpup
+ added_channels = list(RADIO_CHANNEL_SERVICE = 1)
+
+/obj/item/robot_module/borgi
+ added_channels = list(RADIO_CHANNEL_SERVICE = 1)
+
+/obj/item/robot_module/orepup
+ added_channels = list(RADIO_CHANNEL_SUPPLY = 1)
+
+
//This proc gets called whenever a new robot module is being applied --Cyanosis
/obj/item/robot_module/proc/handle_sprite_action(mob/living/silicon/robot/R, is_huge = FALSE)
ASSERT(istype(R))
if(R.small_sprite_action)
QDEL_NULL(R.small_sprite_action)
- if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
+ if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
return
for(var/P in typesof(/datum/action/cyborg_small_sprite))
var/datum/action/cyborg_small_sprite/action = P
diff --git a/icons/mob/dogborg.dmi b/icons/mob/dogborg.dmi
index ec63120ae..3aaaa0493 100644
Binary files a/icons/mob/dogborg.dmi and b/icons/mob/dogborg.dmi differ
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
index cce251f72..39684f180 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -10,6 +10,9 @@
/mob/living/silicon/robot/modules/borgi
set_module = /obj/item/robot_module/borgi
+/mob/living/silicon/robot/modules/orepup
+ set_module = /obj/item/robot_module/orepup
+
/mob/living/silicon/robot/proc/get_cit_modules()
var/list/modulelist = list()
modulelist["MediHound"] = /obj/item/robot_module/medihound
@@ -17,6 +20,7 @@
modulelist["Security K-9"] = /obj/item/robot_module/k9
modulelist["Scrub Puppy"] = /obj/item/robot_module/scrubpup
modulelist["Borgi"] = /obj/item/robot_module/borgi
+ modulelist["Orepup"] = /obj/item/robot_module/orepup
return modulelist
/obj/item/robot_module
@@ -261,14 +265,13 @@
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
has_snowflake_deadsprite = TRUE
-/*
/obj/item/robot_module/orepup
name = "Ore Pup"
basic_modules = list(
/obj/item/storage/bag/ore/cyborg,
/obj/item/analyzer/nose,
/obj/item/storage/bag/borgdelivery,
- /obj/item/dogborg/sleeper/ore,
+ /obj/item/dogborg/sleeper/compactor/ore,
/obj/item/pickaxe/drill/cyborg,
/obj/item/shovel,
/obj/item/crowbar/cyborg,
@@ -282,20 +285,33 @@
/obj/item/clockwork/slab/cyborg/miner,
/obj/item/clockwork/weapon/ratvarian_spear,
/obj/item/borg/sight/xray/truesight_lens)
- cyborg_base_icon = "orepup"
- moduleselect_icon = "orepup"
- sleeper_overlay = "osleeper"
+ cyborg_base_icon = "blade"
+ moduleselect_icon = "miner"
+ sleeper_overlay = "bladesleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
-/obj/item/robot_module/miner/do_transform_animation()
+
+/obj/item/robot_module/orepup/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- R.cut_overlays()
- R.setDir(SOUTH)
- flick("orepup_transform", R)
- do_transform_delay()
- R.update_headlamp()
-*/
+ var/static/list/orepup_models
+ if(!orepup_models)
+ orepup_models = list(
+ "blade" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "blade"),
+ "vale" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "valemine")
+ )
+ orepup_models = sortList(orepup_models)
+ var/orepup_borg_icon = show_radial_menu(R, R , orepup_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE)
+ if(!orepup_borg_icon)
+ return
+ switch(orepup_borg_icon)
+ if("blade")
+ cyborg_base_icon = "blade"
+ if("vale")
+ cyborg_base_icon = "valemine"
+ sleeper_overlay = "valeminesleeper"
+ has_snowflake_deadsprite = TRUE
+ return ..()
/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
@@ -353,7 +369,7 @@
cyborg_base_icon = "haydeemedical"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
hat_offset = 3
-
+
if("qualified_doctor")
cyborg_base_icon = "qualified_doctor"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi
index 4ff89322d..50c29bb75 100644
Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 851d8d09d..673aeb411 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3115,6 +3115,7 @@
#include "hyperstation\code\game\objects\items\coconutcannon.dm"
#include "hyperstation\code\game\objects\items\cosmetics.dm"
#include "hyperstation\code\game\objects\items\lovedice.dm"
+#include "hyperstation\code\game\objects\items\devices\radio\radio.dm"
#include "hyperstation\code\game\objects\items\stacks\tiles\tile_types.dm"
#include "hyperstation\code\game\objects\items\storage\big_bag.dm"
#include "hyperstation\code\game\objects\structures\bench.dm"
@@ -3189,6 +3190,7 @@
#include "hyperstation\code\modules\mob\living\carbon\carbon.dm"
#include "hyperstation\code\modules\mob\living\carbon\human\cosmetic_part_handler.dm"
#include "hyperstation\code\modules\mob\living\carbon\human\species_types\ipc.dm"
+#include "hyperstation\code\modules\mob\living\silicon\robot\examine_vr.dm"
#include "hyperstation\code\modules\mob\living\silicon\robot\robot.dm"
#include "hyperstation\code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "hyperstation\code\modules\mob\living\simple_animal\friendly\chicken_types.dm"