diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 030cfe2ef4..6c0f2cfc0e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -341,6 +341,97 @@ can_be_pushed = FALSE hat_offset = 3 +/obj/item/robot_module/k9 + name = "Security K-9 Unit module" + basic_modules = list( + /obj/item/restraints/handcuffs/cable/zipties/cyborg/dog, + /obj/item/dogborg/jaws/big, + /obj/item/dogborg/pounce, + /obj/item/clothing/mask/gas/sechailer/cyborg, + /obj/item/soap/tongue, + /obj/item/device/analyzer/nose, + /obj/item/device/dogborg/sleeper/K9, + /obj/item/gun/energy/disabler/cyborg) + emag_modules = list(/obj/item/gun/energy/laser/cyborg) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security, + /obj/item/clockwork/ratvarian_spear/cyborg) + cyborg_base_icon = "k9" + moduleselect_icon = "k9" + feedback_key = "cyborg_k9" + can_be_pushed = FALSE + hat_offset = INFINITY + +/obj/item/robot_module/k9/do_transform_animation() + ..() + to_chat(loc,"While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \ + For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.") + +/obj/item/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) + ..() + var/obj/item/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/gun/energy/e_gun/advtaser/cyborg) in basic_modules + if(T) + if(T.cell.charge < T.cell.maxcharge) + var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select] + T.cell.give(S.e_cost * coeff) + T.update_icon() + else + T.charge_tick = 0 + +/obj/item/robot_module/medihound + name = "MediHound module" + basic_modules = list( + /obj/item/dogborg/jaws/small, + /obj/item/device/analyzer/nose, + /obj/item/soap/tongue, + /obj/item/device/healthanalyzer, + /obj/item/device/dogborg/sleeper, + /obj/item/twohanded/shockpaddles/hound, + /obj/item/device/sensor_device) + emag_modules = list(/obj/item/dogborg/pounce) + ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical, + /obj/item/clockwork/ratvarian_spear/cyborg) + cyborg_base_icon = "medihound" + moduleselect_icon = "medihound" + feedback_key = "cyborg_medihound" + can_be_pushed = FALSE + hat_offset = INFINITY + +/obj/item/robot_module/medihound/do_transform_animation() + ..() + to_chat(loc, "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \ + You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.") + +/obj/item/robot_module/scrubpup + name = "Janitor" + basic_modules = list( + /obj/item/device/assembly/flash/cyborg, + /obj/item/dogborg/jaws/small, + /obj/item/device/analyzer/nose, + /obj/item/soap/tongue, + /obj/item/device/lightreplacer/cyborg, + /obj/item/device/dogborg/sleeper/compactor) + emag_modules = list(/obj/item/dogborg/pounce) + ratvar_modules = list( + /obj/item/clockwork/slab/cyborg/janitor, + /obj/item/clockwork/replica_fabricator/cyborg) + cyborg_base_icon = "scrubpup" + moduleselect_icon = "scrubpup" + feedback_key = "cyborg_scrubpup" + hat_offset = INFINITY + clean_on_move = TRUE + +/obj/item/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) + ..() + var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in basic_modules + if(LR) + for(var/i in 1 to coeff) + LR.Charge(R) + +/obj/item/robot_module/scrubpup/do_transform_animation() + ..() + to_chat(loc,"As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly. People are not included under Garbage.") + + /obj/item/robot_module/security/do_transform_animation() ..() to_chat(loc, "While you have picked the security module, you still have to follow your laws, NOT Space Law. \