|
|
|
|
@@ -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, "<span class='userdanger'>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.</span>")
|
|
|
|
|
|
|
|
|
|
/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,"<span class='userdanger'>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.</span>")
|
|
|
|
|
|
|
|
|
|
/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, "<span class='userdanger'>Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
|
|
|
|
|
to_chat(loc, "<span class='userdanger'>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.</span>")
|
|
|
|
|
|
|
|
|
|
/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,
|
|
|
|
|
|