diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index c1439e71fec..36c2dcbd8c1 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -493,3 +493,28 @@ T.apply_damage(20, HALLOSS,, armor_block, armor_soak) if(prob(75)) //75% chance to stun for 5 seconds, really only going to be 4 bcus click cooldown+animation. T.apply_effect(5, WEAKEN, armor_block) + +/obj/item/weapon/reagent_containers/glass/beaker/large/borg + var/mob/living/silicon/robot/R + var/last_robot_loc + +/obj/item/weapon/reagent_containers/glass/beaker/large/borg/Initialize() + . = ..() + R = loc.loc + RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + +/obj/item/weapon/reagent_containers/glass/beaker/large/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) + if(old_loc == R || old_loc == R.module) + last_robot_loc = old_loc + if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) + if(last_robot_loc) + forceMove(last_robot_loc) + last_robot_loc = null + else + forceMove(R) + if(loc == R) + hud_layerise() + +/obj/item/weapon/reagent_containers/glass/beaker/large/borg/Destroy() + UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + ..() diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 59728746177..ad38d91b1e6 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -278,7 +278,7 @@ pounce.bluespace = initial(pounce.bluespace) /mob/living/silicon/robot/put_in_hands(var/obj/item/W) // No hands. - W.loc = get_turf(src) + W.forceMove(get_turf(src)) return 1 /mob/living/silicon/robot/is_holding_item_of_type(typepath) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 511137caf3f..9815ea36d7c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -309,7 +309,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/device/reagent_scanner/adv(src) src.modules += new /obj/item/roller_holder(src) src.modules += new /obj/item/weapon/reagent_containers/borghypo/crisis(src) - src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large/borg(src) src.modules += new /obj/item/weapon/reagent_containers/dropper/industrial(src) src.modules += new /obj/item/weapon/reagent_containers/syringe(src) src.modules += new /obj/item/weapon/gripper/no_use/organ(src) @@ -708,7 +708,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/surgical/hemostat/cyborg(src) //Synth repair src.modules += new /obj/item/weapon/surgical/surgicaldrill/cyborg(src) //NIF repair src.modules += new /obj/item/weapon/reagent_containers/syringe(src) - src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large/borg(src) src.modules += new /obj/item/weapon/storage/part_replacer(src) src.modules += new /obj/item/weapon/shockpaddles/robot/jumper(src) src.modules += new /obj/item/weapon/melee/baton/slime/robot(src)