diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm
index 3c945f464e..1a3bc283d9 100644
--- a/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -134,7 +134,6 @@
var/voracious = hound ? TRUE : FALSE
var/list/targets = target && hound ? list(target) : contents
if(hound)
- hound.setClickCooldown(50)
if(!hound.client || !(hound.client.prefs.cit_toggles & MEDIHOUND_SLEEPER))
voracious = FALSE
else
@@ -447,7 +446,7 @@
if (!target.devourable)
to_chat(user, "The target registers an error code. Unable to insert into [src].")
return
- if(target)
+ if(patient)
to_chat(user,"Your [src] is already occupied.")
return
if(target.buckled)
@@ -524,3 +523,7 @@
update_gut()
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)
+
+/obj/item/dogborg/sleeper/K9/flavour
+ name = "Mobile Sleeper"
+ desc = "A mounted, underslung sleeper, intended for holding willing occupants for leisurely purposes."
\ No newline at end of file
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index d9045a7a34..6e6db2feae 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -203,7 +203,7 @@
desc = "A trash bag of holding replacement for the janiborg's standard trash bag."
icon_state = "cyborg_upgrade3"
require_module = 1
- module_type = list(/obj/item/robot_module/janitor, /obj/item/robot_module/scrubpup)
+ module_type = list(/obj/item/robot_module/butler)
/obj/item/borg/upgrade/tboh/action(mob/living/silicon/robot/R)
. = ..()
@@ -230,7 +230,7 @@
desc = "An advanced mop replacement for the janiborg's standard mop."
icon_state = "cyborg_upgrade3"
require_module = 1
- module_type = list(/obj/item/robot_module/janitor, /obj/item/robot_module/scrubpup)
+ module_type = list(/obj/item/robot_module/butler)
/obj/item/borg/upgrade/amop/action(mob/living/silicon/robot/R)
. = ..()
@@ -522,8 +522,7 @@
module_type = list(
/obj/item/robot_module/medical,
/obj/item/robot_module/syndicate_medical,
- /obj/item/robot_module/medihound,
- /obj/item/robot_module/borgi)
+ /obj/item/robot_module/medihound)
/obj/item/borg/upgrade/advhealth/action(mob/living/silicon/robot/R, user = usr)
. = ..()
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index 5e56b4180d..49fb5e416c 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -1,5 +1,5 @@
/mob/living/silicon/robot/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src], a [src.module.name]!\n"
+ var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src], a [src.module.name] unit!\n"
if(desc)
msg += "[desc]\n"
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5b670aaa42..6dcd0a8cc9 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -110,6 +110,7 @@
var/sitting = 0
var/bellyup = 0
+ var/dogborg = FALSE
/mob/living/silicon/robot/get_cell()
return cell
@@ -232,15 +233,14 @@
var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \
"Engineering" = /obj/item/robot_module/engineering, \
"Medical" = /obj/item/robot_module/medical, \
+ "Medihound" = /obj/item/robot_module/medihound, \
"Miner" = /obj/item/robot_module/miner, \
- "Janitor" = /obj/item/robot_module/janitor, \
"Service" = /obj/item/robot_module/butler)
if(!CONFIG_GET(flag/disable_peaceborg))
modulelist["Peacekeeper"] = /obj/item/robot_module/peacekeeper
if(BORG_SEC_AVAILABLE)
modulelist["Security"] = /obj/item/robot_module/security
-
- modulelist += get_cit_modules() //Citadel change - adds Citadel's borg modules.
+ modulelist["Security K-9"] = /obj/item/robot_module/k9
var/input_module = input("Please, select a module!", "Robot", null, null) as null|anything in modulelist
if(!input_module || module.type != /obj/item/robot_module)
@@ -879,9 +879,6 @@
/mob/living/silicon/robot/modules/miner
set_module = /obj/item/robot_module/miner
-/mob/living/silicon/robot/modules/janitor
- set_module = /obj/item/robot_module/janitor
-
/mob/living/silicon/robot/modules/syndicate
icon_state = "synd_sec"
faction = list(ROLE_SYNDICATE)
@@ -1256,6 +1253,20 @@
for(var/i in connected_ai.aicamera.stored)
aicamera.stored[i] = TRUE
+/mob/living/silicon/robot/lay_down()
+ ..()
+ update_canmove()
+
+/mob/living/silicon/robot/update_canmove()
+ ..()
+ if(client && stat != DEAD && dogborg == FALSE)
+ if(resting)
+ cut_overlays()
+ icon_state = "[module.cyborg_base_icon]-rest"
+ else
+ icon_state = "[module.cyborg_base_icon]"
+ update_icons()
+
/mob/living/silicon/robot/proc/rest_style()
set name = "Switch Rest Style"
set category = "Robot Commands"
@@ -1271,4 +1282,8 @@
sitting = 1
if("Belly up")
bellyup = 1
- update_icons()
\ No newline at end of file
+ update_icons()
+
+/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_stamina = 1)
+ if(istype(cell))
+ cell.charge -= amount*5
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index abd2019fba..a617432ff4 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -35,6 +35,13 @@
var/ride_allow_incapacitated = FALSE
var/allow_riding = TRUE
+ var/sleeper_overlay
+ var/icon/cyborg_icon_override
+ var/has_snowflake_deadsprite
+ var/cyborg_pixel_offset
+ var/moduleselect_alternate_icon
+ var/dogborg = FALSE
+
/obj/item/robot_module/Initialize()
. = ..()
for(var/i in basic_modules)
@@ -129,6 +136,28 @@
rebuild_modules()
return I
+//Adds flavoursome dogborg items to dogborg variants without mechanical benefits
+/obj/item/robot_module/proc/dogborg_equip()
+ if(istype(src, /obj/item/robot_module/k9) || istype(src, /obj/item/robot_module/medihound))
+ return //Bandaid fix to prevent stacking until I merge these two modules into their base types
+ var/obj/item/I = new /obj/item/analyzer/nose/flavour(src)
+ basic_modules += I
+ I = new /obj/item/soap/tongue/flavour(src)
+ basic_modules += I
+ I = new /obj/item/dogborg/sleeper/K9/flavour(src)
+ if(istype(src, /obj/item/robot_module/engineering))
+ I.icon_state = "decompiler"
+ if(istype(src, /obj/item/robot_module/security))
+ I.icon_state = "sleeperb"
+ if(istype(src, /obj/item/robot_module/medical))
+ I.icon_state = "sleeper"
+ if(istype(src, /obj/item/robot_module/butler))
+ I.icon_state = "servicer"
+ if(cyborg_base_icon == "scrubpup")
+ I.icon_state = "compactor"
+ basic_modules += I
+ rebuild_modules()
+
/obj/item/robot_module/proc/remove_module(obj/item/I, delete_after)
basic_modules -= I
modules -= I
@@ -197,6 +226,8 @@
R.update_module_innate()
RM.rebuild_modules()
INVOKE_ASYNC(RM, .proc/do_transform_animation)
+ if(RM.dogborg)
+ RM.dogborg_equip()
R.maxHealth = borghealth
R.health = min(borghealth, R.health)
qdel(src)
@@ -245,15 +276,15 @@
name = "Standard"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/reagent_containers/borghypo/epi,
/obj/item/healthanalyzer,
/obj/item/weldingtool/largetank/cyborg,
/obj/item/wrench/cyborg,
- /obj/item/crowbar/cyborg,
/obj/item/stack/sheet/metal/cyborg,
/obj/item/stack/rods/cyborg,
/obj/item/stack/tile/plasteel/cyborg,
- /obj/item/extinguisher,
/obj/item/pickaxe,
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/restraints/handcuffs/cable/zipties,
@@ -271,6 +302,8 @@
name = "Medical"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/healthanalyzer,
/obj/item/reagent_containers/borghypo,
/obj/item/reagent_containers/glass/beaker/large,
@@ -283,7 +316,6 @@
/obj/item/surgicaldrill,
/obj/item/scalpel,
/obj/item/circular_saw,
- /obj/item/extinguisher/mini,
/obj/item/roller/robo,
/obj/item/borg/cyborghug/medical,
/obj/item/stack/medical/gauze/cyborg,
@@ -299,6 +331,85 @@
can_be_pushed = FALSE
hat_offset = 3
+/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot")
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "medical"
+ if("Droid")
+ cyborg_base_icon = "medical"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ hat_offset = 4
+ if("Sleek")
+ cyborg_base_icon = "sleekmed"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Marina")
+ cyborg_base_icon = "marinamed"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Eyebot")
+ cyborg_base_icon = "eyebotmed"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Heavy")
+ cyborg_base_icon = "heavymed"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ return ..()
+
+/obj/item/robot_module/medihound
+ name = "MediHound"
+ basic_modules = list(
+ /obj/item/dogborg/jaws/small,
+ /obj/item/storage/bag/borgdelivery,
+ /obj/item/analyzer/nose,
+ /obj/item/soap/tongue,
+ /obj/item/extinguisher/mini,
+ /obj/item/healthanalyzer,
+ /obj/item/dogborg/sleeper/medihound,
+ /obj/item/roller/robo,
+ /obj/item/reagent_containers/borghypo,
+ /obj/item/twohanded/shockpaddles/cyborg/hound,
+ /obj/item/stack/medical/gauze/cyborg,
+ /obj/item/pinpointer/crew,
+ /obj/item/sensor_device)
+ emag_modules = list(/obj/item/dogborg/pounce)
+ ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical,
+ /obj/item/clockwork/weapon/ratvarian_spear)
+ cyborg_base_icon = "medihound"
+ moduleselect_icon = "medihound"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ can_be_pushed = FALSE
+ hat_offset = INFINITY
+ sleeper_overlay = "msleeper"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+
+/obj/item/robot_module/medihound/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/list/medhoundmodels = list("Default", "Dark", "Vale")
+ if(R.client && R.client.ckey in list("nezuli"))
+ medhoundmodels += "Alina"
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medhoundmodels
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "medihound"
+ if("Dark")
+ cyborg_base_icon = "medihounddark"
+ sleeper_overlay = "mdsleeper"
+ if("Vale")
+ cyborg_base_icon = "valemed"
+ sleeper_overlay = "valemedsleeper"
+ if("Alina")
+ cyborg_base_icon = "alina-med"
+ special_light_key = "alina"
+ sleeper_overlay = "alinasleeper"
+ return ..()
+
/obj/item/robot_module/engineering
name = "Engineering"
basic_modules = list(
@@ -338,10 +449,79 @@
magpulsing = TRUE
hat_offset = -4
+/obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale")
+ if(R.client && R.client.ckey in list("nezuli"))
+ engymodels += "Alina"
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "engineer"
+ if("Default - Treads")
+ cyborg_base_icon = "engi-tread"
+ special_light_key = "engineer"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Loader")
+ cyborg_base_icon = "loaderborg"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ has_snowflake_deadsprite = TRUE
+ if("Handy")
+ cyborg_base_icon = "handyeng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Sleek")
+ cyborg_base_icon = "sleekeng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Can")
+ cyborg_base_icon = "caneng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Marina")
+ cyborg_base_icon = "marinaeng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Spider")
+ cyborg_base_icon = "spidereng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Heavy")
+ cyborg_base_icon = "heavyeng"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Pup Dozer")
+ cyborg_base_icon = "pupdozer"
+ can_be_pushed = FALSE
+ hat_offset = INFINITY
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "dozersleeper"
+ if("Vale")
+ cyborg_base_icon = "valeeng"
+ can_be_pushed = FALSE
+ hat_offset = INFINITY
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "valeengsleeper"
+ if("Alina")
+ cyborg_base_icon = "alina-eng"
+ special_light_key = "alina"
+ can_be_pushed = FALSE
+ hat_offset = INFINITY
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "alinasleeper"
+ return ..()
+
/obj/item/robot_module/security
name = "Security"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/melee/baton/loaded,
/obj/item/gun/energy/disabler/cyborg,
@@ -360,6 +540,90 @@
to_chat(loc, "While you have picked the security module, you still have to follow your laws, NOT Space Law. \
For Crewsimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")
+/obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider")
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "sec"
+ if("Default - Treads")
+ cyborg_base_icon = "sec-tread"
+ special_light_key = "sec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Sleek")
+ cyborg_base_icon = "sleeksec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Marina")
+ cyborg_base_icon = "marinasec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Can")
+ cyborg_base_icon = "cansec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Spider")
+ cyborg_base_icon = "spidersec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Heavy")
+ cyborg_base_icon = "heavysec"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ return ..()
+
+/obj/item/robot_module/k9
+ name = "Security K-9 Unit"
+ basic_modules = list(
+ /obj/item/restraints/handcuffs/cable/zipties,
+ /obj/item/storage/bag/borgdelivery,
+ /obj/item/dogborg/jaws/big,
+ /obj/item/dogborg/pounce,
+ /obj/item/clothing/mask/gas/sechailer/cyborg,
+ /obj/item/soap/tongue,
+ /obj/item/analyzer/nose,
+ /obj/item/dogborg/sleeper/K9,
+ /obj/item/gun/energy/disabler/cyborg,
+ /obj/item/pinpointer/crew)
+ emag_modules = list(/obj/item/gun/energy/laser/cyborg)
+ ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security,
+ /obj/item/clockwork/weapon/ratvarian_spear)
+ cyborg_base_icon = "k9"
+ moduleselect_icon = "k9"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ can_be_pushed = FALSE
+ hat_offset = INFINITY
+ sleeper_overlay = "ksleeper"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+
+/obj/item/robot_module/k9/do_transform_animation()
+ ..()
+ to_chat(loc,"While you have picked the Security K-9 module, you still have to follow your laws, NOT Space Law. \
+ For Crewsimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")
+
+/obj/item/robot_module/k9/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/list/sechoundmodels = list("Default", "Dark", "Vale")
+ if(R.client && R.client.ckey in list("nezuli"))
+ sechoundmodels += "Alina"
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in sechoundmodels
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "k9"
+ if("Alina")
+ cyborg_base_icon = "alina-sec"
+ special_light_key = "alina"
+ sleeper_overlay = "alinasleeper"
+ if("Dark")
+ cyborg_base_icon = "k9dark"
+ sleeper_overlay = "k9darksleeper"
+ if("Vale")
+ cyborg_base_icon = "valesec"
+ sleeper_overlay = "valesecsleeper"
+ return ..()
+
/obj/item/robot_module/security/Initialize()
. = ..()
if(!CONFIG_GET(flag/weaken_secborg))
@@ -372,12 +636,13 @@
name = "Peacekeeper"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/cookiesynth,
/obj/item/harmalarm,
/obj/item/reagent_containers/borghypo/peace,
/obj/item/holosign_creator/cyborg,
/obj/item/borg/cyborghug/peacekeeper,
- /obj/item/extinguisher,
/obj/item/megaphone,
/obj/item/borg/projectile_dampen)
emag_modules = list(/obj/item/reagent_containers/borghypo/peace/hacked)
@@ -391,9 +656,31 @@
/obj/item/robot_module/peacekeeper/do_transform_animation()
..()
- to_chat(loc, "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
+ to_chat(loc, "Under ASIMOV/CREWSIMOV, you are an enforcer of the PEACE and preventer of HUMAN/CREW 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/peacekeeper/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Spider", "Borgi")
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Default")
+ cyborg_base_icon = "peace"
+ if("Spider")
+ cyborg_base_icon = "whitespider"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Borgi")
+ cyborg_base_icon = "borgi"
+ moduleselect_icon = "borgi"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ hat_offset = INFINITY
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ has_snowflake_deadsprite = TRUE
+ return ..()
+
+//Janitor module combined with Service module
+/*
/obj/item/robot_module/janitor
name = "Janitor"
basic_modules = list(
@@ -416,6 +703,7 @@
moduleselect_icon = "janitor"
hat_offset = -5
clean_on_move = TRUE
+ */
/obj/item/reagent_containers/spray/cyborg_drying
name = "drying agent spray"
@@ -426,25 +714,12 @@
name = "lube spray"
list_reagents = list("lube" = 250)
-/obj/item/robot_module/janitor/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
- ..()
- var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules
- if(LR)
- for(var/i in 1 to coeff)
- LR.Charge(R)
-
- var/obj/item/reagent_containers/spray/cyborg_drying/CD = locate(/obj/item/reagent_containers/spray/cyborg_drying) in basic_modules
- if(CD)
- CD.reagents.add_reagent("drying_agent", 5 * coeff)
-
- var/obj/item/reagent_containers/spray/cyborg_lube/CL = locate(/obj/item/reagent_containers/spray/cyborg_lube) in emag_modules
- if(CL)
- CL.reagents.add_reagent("lube", 2 * coeff)
-
/obj/item/robot_module/clown
name = "Clown"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/toy/crayon/rainbow,
/obj/item/instrument/bikehorn,
/obj/item/stamp/clown,
@@ -459,8 +734,7 @@
/obj/item/borg/cyborghug/peacekeeper,
/obj/item/borg/lollipop/clown,
/obj/item/picket_sign/cyborg,
- /obj/item/reagent_containers/borghypo/clown,
- /obj/item/extinguisher/mini)
+ /obj/item/reagent_containers/borghypo/clown)
emag_modules = list(
/obj/item/reagent_containers/borghypo/clown/hacked,
/obj/item/reagent_containers/spray/waterflower/cyborg/hacked)
@@ -476,11 +750,12 @@
name = "Service"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/reagent_containers/food/drinks/drinkingglass,
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/pen,
/obj/item/toy/crayon/spraycan/borg,
- /obj/item/extinguisher/mini,
/obj/item/hand_labeler/borg,
/obj/item/razor,
/obj/item/instrument/violin,
@@ -490,31 +765,123 @@
/obj/item/lighter,
/obj/item/storage/bag/tray,
/obj/item/reagent_containers/borghypo/borgshaker,
- /obj/item/borg/lollipop)
+ /obj/item/borg/lollipop,
+ /obj/item/screwdriver/cyborg,
+ /obj/item/stack/tile/plasteel/cyborg,
+ /obj/item/soap/nanotrasen,
+ /obj/item/storage/bag/trash/cyborg,
+ /obj/item/mop/cyborg,
+ /obj/item/lightreplacer/cyborg,
+ /obj/item/holosign_creator,
+ /obj/item/reagent_containers/spray/cyborg_drying)
emag_modules = list(/obj/item/reagent_containers/borghypo/borgshaker/hacked)
ratvar_modules = list(/obj/item/clockwork/slab/cyborg/service,
/obj/item/borg/sight/xray/truesight_lens)
moduleselect_icon = "service"
- special_light_key = "service"
hat_offset = 0
+ clean_on_move = TRUE
/obj/item/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules
+ var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules
if(O)
O.reagents.add_reagent("enzyme", 2 * coeff)
+ if(LR)
+ for(var/i in 1 to coeff)
+ LR.Charge(R)
+ var/obj/item/reagent_containers/spray/cyborg_drying/CD = locate(/obj/item/reagent_containers/spray/cyborg_drying) in basic_modules
+ if(CD)
+ CD.reagents.add_reagent("drying_agent", 5 * coeff)
+
+ var/obj/item/reagent_containers/spray/cyborg_lube/CL = locate(/obj/item/reagent_containers/spray/cyborg_lube) in emag_modules
+ if(CL)
+ CL.reagents.add_reagent("lube", 2 * coeff)
+
+/obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("(Service) Waitress", "(Service) Heavy", "(Service) Sleek", "(Service) Butler", "(Service) Tophat", "(Service) Can", "(Service) Bro", "(Service) DarkK9", "(Service) Vale", "(Service) ValeDark", "(Janitor) Default", "(Janitor) Sleek", "(Janitor) Marina", "(Janitor) Can", "(Janitor) Heavy", "(Janitor) Scrubpuppy")
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("(Service) Waitress")
+ cyborg_base_icon = "service_f"
+ special_light_key = "service"
+ if("(Service) Butler")
+ cyborg_base_icon = "service_m"
+ special_light_key = "service"
+ if("(Service) Bro")
+ cyborg_base_icon = "brobot"
+ special_light_key = "service"
+ if("(Service) Can")
+ cyborg_base_icon = "kent"
+ special_light_key = "medical"
+ hat_offset = 3
+ if("(Service) Tophat")
+ cyborg_base_icon = "tophat"
+ special_light_key = null
+ hat_offset = INFINITY //He is already wearing a hat
+ if("(Service) Sleek")
+ cyborg_base_icon = "sleekserv"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Service) Heavy")
+ cyborg_base_icon = "heavyserv"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Service) DarkK9")
+ cyborg_base_icon = "k50"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "ksleeper"
+ if("(Service) Vale")
+ cyborg_base_icon = "valeserv"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "valeservsleeper"
+ if("(Service) ValeDark")
+ cyborg_base_icon = "valeservdark"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ sleeper_overlay = "valeservsleeper"
+ if("(Janitor) Default")
+ cyborg_base_icon = "janitor"
+ if("(Janitor) Marina")
+ cyborg_base_icon = "marinajan"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Janitor) Sleek")
+ cyborg_base_icon = "sleekjan"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Janitor) Can")
+ cyborg_base_icon = "canjan"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Janitor) Heavy")
+ cyborg_base_icon = "heavyres"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("(Janitor) Scrubpuppy")
+ cyborg_base_icon = "scrubpup"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ has_snowflake_deadsprite = TRUE
+ cyborg_pixel_offset = -16
+ dogborg = TRUE
+ sleeper_overlay = "jsleeper"
+ return ..()
/obj/item/robot_module/miner
name = "Miner"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/borg/sight/meson,
/obj/item/storage/bag/ore/cyborg,
/obj/item/pickaxe/drill/cyborg,
/obj/item/shovel,
- /obj/item/crowbar/cyborg,
/obj/item/weldingtool/mini,
- /obj/item/extinguisher/mini,
/obj/item/storage/bag/sheetsnatcher/borg,
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/gun/energy/kinetic_accelerator/cyborg,
@@ -529,10 +896,44 @@
moduleselect_icon = "miner"
hat_offset = 0
+/obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module)
+ var/mob/living/silicon/robot/R = loc
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid")
+ if(!borg_icon)
+ return FALSE
+ switch(borg_icon)
+ if("Lavaland")
+ cyborg_base_icon = "miner"
+ if("Asteroid")
+ cyborg_base_icon = "minerOLD"
+ special_light_key = "miner"
+ if("Droid")
+ cyborg_base_icon = "miner"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ hat_offset = 4
+ if("Sleek")
+ cyborg_base_icon = "sleekmin"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Can")
+ cyborg_base_icon = "canmin"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Marina")
+ cyborg_base_icon = "marinamin"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Spider")
+ cyborg_base_icon = "spidermin"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ if("Heavy")
+ cyborg_base_icon = "heavymin"
+ cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
+ return ..()
+
/obj/item/robot_module/syndicate
name = "Syndicate Assault"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/melee/transforming/energy/sword/cyborg,
/obj/item/gun/energy/printer,
/obj/item/gun/ballistic/revolver/grenadelauncher/cyborg,
@@ -562,6 +963,8 @@
name = "Syndicate Medical"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
+ /obj/item/extinguisher/mini,
+ /obj/item/crowbar/cyborg,
/obj/item/reagent_containers/borghypo/syndicate,
/obj/item/twohanded/shockpaddles/syndicate,
/obj/item/healthanalyzer,
@@ -574,8 +977,6 @@
/obj/item/melee/transforming/energy/sword/cyborg/saw,
/obj/item/roller/robo,
/obj/item/card/emag,
- /obj/item/crowbar/cyborg,
- /obj/item/extinguisher/mini,
/obj/item/pinpointer/syndicate_cyborg,
/obj/item/stack/medical/gauze/cyborg,
/obj/item/gun/medbeam,
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 13520774c5..cda4978f50 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -13,6 +13,7 @@
mob_biotypes = list(MOB_ROBOTIC)
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
speech_span = SPAN_ROBOT
+ no_vore = TRUE
var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS
var/last_lawchange_announce = 0
diff --git a/icons/mob/dogborg.dmi b/icons/mob/dogborg.dmi
index ec63120ae1..856724be1f 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/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
index 99ba9ad3e2..39d1de1fa7 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
@@ -312,6 +312,42 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
target.wash_cream()
return
+//Nerfed tongue for flavour reasons (haha geddit?). Used for aux skins for regular borgs
+/obj/item/soap/tongue/flavour
+ desc = "For giving affectionate kisses."
+
+/obj/item/soap/tongue/flavour/attack_self(mob/user)
+ return
+
+/obj/item/soap/tongue/flavour/afterattack(atom/target, mob/user, proximity)
+ if(!proximity)
+ return
+ var/mob/living/silicon/robot.R = user
+ if(ishuman(target))
+ var/mob/living/L = target
+ if(status == 0 && check_zone(R.zone_selected) == "head")
+ R.visible_message("\the [R] affectionally licks \the [L]'s face!", "You affectionally lick \the [L]'s face!")
+ playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
+ return
+ else if(status == 0)
+ R.visible_message("\the [R] affectionally licks \the [L]!", "You affectionally lick \the [L]!")
+ playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
+ return
+
+//Same as above but for noses
+/obj/item/analyzer/nose/flavour/AltClick(mob/user)
+ return
+
+/obj/item/analyzer/nose/flavour/attack_self(mob/user)
+ return
+
+/obj/item/analyzer/nose/flavour/afterattack(atom/target, mob/user, proximity)
+ if(!proximity)
+ return
+ do_attack_animation(target, null, src)
+ user.visible_message("[user] [pick(attack_verb)] \the [target.name] with their nose!")
+
+
//Dogfood
/obj/item/trash/rkibble
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm
deleted file mode 100644
index de98f9685c..0000000000
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm
+++ /dev/null
@@ -1,26 +0,0 @@
-mob/living/silicon
- no_vore = TRUE
-
-/mob/living/silicon/robot
- var/dogborg = FALSE
-
-/mob/living/silicon/robot/lay_down()
- ..()
- update_canmove()
-
-/mob/living/silicon/robot/update_canmove()
- ..()
- if(client && stat != DEAD && dogborg == FALSE)
- if(resting)
- cut_overlays()
- icon_state = "[module.cyborg_base_icon]-rest"
- else
- icon_state = "[module.cyborg_base_icon]"
- update_icons()
-
-
-
-
-/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_stamina = 1)
- if(istype(cell))
- cell.charge -= amount*5
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
deleted file mode 100644
index feec79ee8b..0000000000
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ /dev/null
@@ -1,466 +0,0 @@
-/mob/living/silicon/robot/modules/medihound
- set_module = /obj/item/robot_module/medihound
-
-/mob/living/silicon/robot/modules/k9
- set_module = /obj/item/robot_module/k9
-
-/mob/living/silicon/robot/modules/scrubpup
- set_module = /obj/item/robot_module/scrubpup
-
-/mob/living/silicon/robot/modules/borgi
- set_module = /obj/item/robot_module/borgi
-
-/mob/living/silicon/robot/proc/get_cit_modules()
- var/list/modulelist = list()
- modulelist["MediHound"] = /obj/item/robot_module/medihound
- if(BORG_SEC_AVAILABLE)
- modulelist["Security K-9"] = /obj/item/robot_module/k9
- modulelist["Scrub Puppy"] = /obj/item/robot_module/scrubpup
- modulelist["Borgi"] = /obj/item/robot_module/borgi
- return modulelist
-
-/obj/item/robot_module
- var/sleeper_overlay
- var/icon/cyborg_icon_override
- var/has_snowflake_deadsprite
- var/cyborg_pixel_offset
- var/moduleselect_alternate_icon
- var/dogborg = FALSE
-
-/obj/item/robot_module/k9
- name = "Security K-9 Unit"
- basic_modules = list(
- /obj/item/restraints/handcuffs/cable/zipties,
- /obj/item/storage/bag/borgdelivery,
- /obj/item/dogborg/jaws/big,
- /obj/item/dogborg/pounce,
- /obj/item/clothing/mask/gas/sechailer/cyborg,
- /obj/item/soap/tongue,
- /obj/item/analyzer/nose,
- /obj/item/dogborg/sleeper/K9,
- /obj/item/gun/energy/disabler/cyborg,
- /obj/item/pinpointer/crew)
- emag_modules = list(/obj/item/gun/energy/laser/cyborg)
- ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security,
- /obj/item/clockwork/weapon/ratvarian_spear)
- cyborg_base_icon = "k9"
- moduleselect_icon = "k9"
- moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
- can_be_pushed = FALSE
- hat_offset = INFINITY
- sleeper_overlay = "ksleeper"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- borghealth = 80
-
-/obj/item/robot_module/k9/do_transform_animation()
- ..()
- to_chat(loc,"While you have picked the Security K-9 module, you still have to follow your laws, NOT Space Law. \
- For Crewsimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")
-
-/obj/item/robot_module/k9/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/list/sechoundmodels = list("Default", "Dark", "Vale")
- if(R.client && R.client.ckey in list("nezuli"))
- sechoundmodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in sechoundmodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "k9"
- if("Alina")
- cyborg_base_icon = "alina-sec"
- special_light_key = "alina"
- sleeper_overlay = "alinasleeper"
- if("Dark")
- cyborg_base_icon = "k9dark"
- if("Vale")
- cyborg_base_icon = "valesec"
- return ..()
-
-/obj/item/robot_module/medihound
- name = "MediHound"
- basic_modules = list(
- /obj/item/dogborg/jaws/small,
- /obj/item/storage/bag/borgdelivery,
- /obj/item/analyzer/nose,
- /obj/item/soap/tongue,
- /obj/item/extinguisher/mini,
- /obj/item/healthanalyzer,
- /obj/item/dogborg/sleeper/medihound,
- /obj/item/roller/robo,
- /obj/item/reagent_containers/borghypo,
- /obj/item/twohanded/shockpaddles/cyborg/hound,
- /obj/item/stack/medical/gauze/cyborg,
- /obj/item/pinpointer/crew,
- /obj/item/sensor_device)
- emag_modules = list(/obj/item/dogborg/pounce)
- ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical,
- /obj/item/clockwork/weapon/ratvarian_spear)
- cyborg_base_icon = "medihound"
- moduleselect_icon = "medihound"
- moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
- can_be_pushed = FALSE
- hat_offset = INFINITY
- sleeper_overlay = "msleeper"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
-
-/obj/item/robot_module/medihound/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/list/medhoundmodels = list("Default", "Dark", "Vale")
- if(R.client && R.client.ckey in list("nezuli"))
- medhoundmodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medhoundmodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "medihound"
- if("Dark")
- cyborg_base_icon = "medihounddark"
- sleeper_overlay = "mdsleeper"
- if("Vale")
- cyborg_base_icon = "valemed"
- sleeper_overlay = "valemedsleeper"
- if("Alina")
- cyborg_base_icon = "alina-med"
- special_light_key = "alina"
- sleeper_overlay = "alinasleeper"
- return ..()
-
-/obj/item/robot_module/scrubpup
- name = "Scrub Pup"
- basic_modules = list(
- /obj/item/dogborg/jaws/small,
- /obj/item/analyzer/nose,
- /obj/item/soap/tongue/scrubpup,
- /obj/item/lightreplacer/cyborg,
- /obj/item/extinguisher/mini,
- /obj/item/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 = "janitor"
- hat_offset = INFINITY
- clean_on_move = TRUE
- sleeper_overlay = "jsleeper"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- cyborg_pixel_offset = -16
- dogborg = TRUE
-
-/obj/item/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
- ..()
- var/obj/item/lightreplacer/LR = locate(/obj/item/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/borgi
- name = "Borgi"
- basic_modules = list(
- /obj/item/dogborg/jaws/small,
- /obj/item/storage/bag/borgdelivery,
- /obj/item/analyzer/nose,
- /obj/item/soap/tongue,
- /obj/item/healthanalyzer,
- /obj/item/extinguisher/mini,
- /obj/item/borg/cyborghug)
- emag_modules = list(/obj/item/dogborg/pounce)
- ratvar_modules = list(
- /obj/item/clockwork/slab/cyborg,
- /obj/item/clockwork/weapon/ratvarian_spear,
- /obj/item/clockwork/replica_fabricator/cyborg)
- cyborg_base_icon = "borgi"
- moduleselect_icon = "borgi"
- moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
- hat_offset = INFINITY
- 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/pickaxe/drill/cyborg,
- /obj/item/shovel,
- /obj/item/crowbar/cyborg,
- /obj/item/weldingtool/mini,
- /obj/item/extinguisher/mini,
- /obj/item/t_scanner/adv_mining_scanner,
- /obj/item/gun/energy/kinetic_accelerator/cyborg,
- /obj/item/gps/cyborg)
- emag_modules = list(/obj/item/dogborg/pounce)
- ratvar_modules = list(
- /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_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- cyborg_pixel_offset = -16
-
-/obj/item/robot_module/miner/do_transform_animation()
- var/mob/living/silicon/robot/R = loc
- R.cut_overlays()
- R.setDir(SOUTH)
- flick("orepup_transform", R)
- do_transform_delay()
- R.update_headlamp()
-*/
-
-/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "medical"
- if("Droid")
- cyborg_base_icon = "medical"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- hat_offset = 4
- if("Sleek")
- cyborg_base_icon = "sleekmed"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Marina")
- cyborg_base_icon = "marinamed"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Eyebot")
- cyborg_base_icon = "eyebotmed"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavymed"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
-
-/obj/item/robot_module/janitor/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/list/janimodels = list("Default", "Sleek", "Marina", "Can", "Heavy")
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in janimodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "janitor"
- if("Marina")
- cyborg_base_icon = "marinajan"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Sleek")
- cyborg_base_icon = "sleekjan"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Can")
- cyborg_base_icon = "canjan"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavyres"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
-
-/obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Spider")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "peace"
- if("Spider")
- cyborg_base_icon = "whitespider"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
-
-/obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "sec"
- if("Default - Treads")
- cyborg_base_icon = "sec-tread"
- special_light_key = "sec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Sleek")
- cyborg_base_icon = "sleeksec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Marina")
- cyborg_base_icon = "marinasec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Can")
- cyborg_base_icon = "cansec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Spider")
- cyborg_base_icon = "spidersec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavysec"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
-
-/obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Waitress", "Heavy", "Sleek", "Butler", "Tophat", "Kent", "Bro", "DarkK9", "Vale", "ValeDark")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Waitress")
- cyborg_base_icon = "service_f"
- if("Butler")
- cyborg_base_icon = "service_m"
- if("Bro")
- cyborg_base_icon = "brobot"
- if("Kent")
- cyborg_base_icon = "kent"
- special_light_key = "medical"
- hat_offset = 3
- if("Tophat")
- cyborg_base_icon = "tophat"
- special_light_key = null
- hat_offset = INFINITY //He is already wearing a hat
- if("Sleek")
- cyborg_base_icon = "sleekserv"
- special_light_key = "sleekserv"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavyserv"
- special_light_key = "heavyserv"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("DarkK9")
- cyborg_base_icon = "k50"
- special_light_key = "k50"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- if("Vale")
- cyborg_base_icon = "valeserv"
- special_light_key = "valeserv"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- if("ValeDark")
- cyborg_base_icon = "valeservdark"
- special_light_key = "valeservdark"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- return ..()
-
-/obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale")
- if(R.client && R.client.ckey in list("nezuli"))
- engymodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
- cyborg_base_icon = "engineer"
- if("Default - Treads")
- cyborg_base_icon = "engi-tread"
- special_light_key = "engineer"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Loader")
- cyborg_base_icon = "loaderborg"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- has_snowflake_deadsprite = TRUE
- if("Handy")
- cyborg_base_icon = "handyeng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Sleek")
- cyborg_base_icon = "sleekeng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Can")
- cyborg_base_icon = "caneng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Marina")
- cyborg_base_icon = "marinaeng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Spider")
- cyborg_base_icon = "spidereng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavyeng"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Pup Dozer")
- cyborg_base_icon = "pupdozer"
- can_be_pushed = FALSE
- hat_offset = INFINITY
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- if("Vale")
- cyborg_base_icon = "valeeng"
- can_be_pushed = FALSE
- hat_offset = INFINITY
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- if("Alina")
- cyborg_base_icon = "alina-eng"
- special_light_key = "alina"
- can_be_pushed = FALSE
- hat_offset = INFINITY
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
- return ..()
-
-/obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Lavaland")
- cyborg_base_icon = "miner"
- if("Asteroid")
- cyborg_base_icon = "minerOLD"
- special_light_key = "miner"
- if("Droid")
- cyborg_base_icon = "miner"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- hat_offset = 4
- if("Sleek")
- cyborg_base_icon = "sleekmin"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Can")
- cyborg_base_icon = "canmin"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Marina")
- cyborg_base_icon = "marinamin"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Spider")
- cyborg_base_icon = "spidermin"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- if("Heavy")
- cyborg_base_icon = "heavymin"
- cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi
index 19dd8dba86..e574766d70 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 a8cadd739a..03c341d97a 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3099,8 +3099,6 @@
#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\human_movement.dm"
#include "modular_citadel\code\modules\mob\living\silicon\robot\dogborg_equipment.dm"
-#include "modular_citadel\code\modules\mob\living\silicon\robot\robot.dm"
-#include "modular_citadel\code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "modular_citadel\code\modules\mob\living\silicon\robot\robot_movement.dm"
#include "modular_citadel\code\modules\projectiles\gun.dm"
#include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm"