[MIRROR] Adds Gooborgs & Toggleable Stomach Glowing for Borgs (#10418)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-03-14 17:43:00 -07:00
committed by GitHub
parent 4a4293a9e4
commit 2cd485cbba
50 changed files with 546 additions and 92 deletions
+44 -11
View File
@@ -27,6 +27,7 @@
var/crisis_override = 0
var/integrated_light_power = 6
var/list/robotdecal_on = list()
var/glowy_enabled = FALSE
var/datum/wires/robot/wires
can_be_antagged = TRUE
@@ -455,8 +456,8 @@
update_icon()
/mob/living/silicon/robot/verb/toggle_robot_decals() // loads overlay UNDER lights.
set category = "Abilities.Silicon"
set name = "Toggle extras"
set category = "Abilities.Settings"
set name = "Toggle Extra Decals"
if(!sprite_datum)
return
@@ -482,6 +483,17 @@
to_chat(src, span_filter_notice("You enable your \"[decal_to_toggle]\" extra apperances."))
update_icon()
/mob/living/silicon/robot/verb/toggle_glowy_stomach()
set category = "Abilities.Settings"
set name = "Toggle Glowing Stomach & Accents"
glowy_enabled = !glowy_enabled
if(glowy_enabled)
to_chat(src, span_filter_notice("Your stomach will now glow and any naturally glowing accents you have will now appear!"))
else
to_chat(src, span_filter_notice("Your stomach will no longer glow, and any naturally glowing accents you have will be hidden!"))
update_icon()
/mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence.
set category = "Abilities.Silicon"
set name = "Emit Sparks"
@@ -967,31 +979,52 @@
pixel_x = sprite_datum.pixel_x
old_x = sprite_datum.pixel_x
//Want to know how to make an overlay appear in darkness? Look at the below. Add a mutable and then emissive overlay.
//These get applied first and foremost, as things will get applied overtop of them.
//Only borgs that have specialty glow sprites get this.
if(sprite_datum.has_glow_sprites && glowy_enabled)
add_overlay(mutable_appearance(sprite_datum.sprite_icon, sprite_datum.get_glow_overlay(src)))
add_overlay(emissive_appearance(sprite_datum.sprite_icon, sprite_datum.get_glow_overlay(src)))
if(stat == CONSCIOUS)
update_fullness()
for(var/belly_class in vore_fullness_ex)
reset_belly_lights(belly_class)
var/vs_fullness = vore_fullness_ex[belly_class]
if(belly_class == "sleeper" && sleeper_state == 0 && vore_selected.silicon_belly_overlay_preference == "Sleeper") continue
if(belly_class == "sleeper" && sleeper_state != 0 && !(vs_fullness + 1 > vore_capacity_ex[belly_class]))
if(vore_selected.silicon_belly_overlay_preference == "Sleeper")
vs_fullness = vore_capacity_ex[belly_class]
else if(vore_selected.silicon_belly_overlay_preference == "Both")
vs_fullness += 1
if(belly_class == "sleeper")
if(sleeper_state == 0 && vore_selected.silicon_belly_overlay_preference == "Sleeper") continue
if(sleeper_state != 0 && !(vs_fullness + 1 > vore_capacity_ex[belly_class]))
if(vore_selected.silicon_belly_overlay_preference == "Sleeper")
vs_fullness = vore_capacity_ex[belly_class]
else if(vore_selected.silicon_belly_overlay_preference == "Both")
vs_fullness += 1
if(!vs_fullness > 0) continue
if(resting)
if(!sprite_datum.has_vore_belly_resting_sprites)
continue
add_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class))
//If we have glowy stomach sprites.
if(glowy_enabled)
var/mutable_appearance/MA = mutable_appearance(sprite_datum.sprite_icon, sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class))
MA.appearance_flags = KEEP_APART
add_overlay(MA)
add_overlay(emissive_appearance(sprite_datum.sprite_icon, sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)))
else
add_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class))
else
update_belly_lights(belly_class)
add_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class))
//If we have glowy stomach sprites.
if(glowy_enabled)
var/mutable_appearance/MA = mutable_appearance(sprite_datum.sprite_icon, sprite_datum.get_belly_overlay(src, vs_fullness, belly_class))
MA.appearance_flags = KEEP_APART
add_overlay(MA)
add_overlay(emissive_appearance(sprite_datum.sprite_icon, sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)))
else
add_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class))
sprite_datum.handle_extra_icon_updates(src) // Various equipment-based sprites go here.
if(resting && sprite_datum.has_rest_sprites)
icon_state = sprite_datum.get_rest_sprite(src)
if(sprite_datum.has_eye_sprites)
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
var/eyes_overlay = sprite_datum.get_eyes_overlay(src)
@@ -9,7 +9,7 @@
/obj/item/robot_module/robot/lost/create_equipment(var/mob/living/silicon/robot/robot)
..()
// Sec
src.modules += new /obj/item/melee/baton/shocker/robot(src)
src.modules += new /obj/item/melee/robotic/baton/shocker(src)
src.modules += new /obj/item/handcuffs/cyborg(src)
src.modules += new /obj/item/borg/combat/shield(src)
@@ -48,7 +48,7 @@
/obj/item/robot_module/robot/gravekeeper/create_equipment(var/mob/living/silicon/robot/robot)
..()
// For fending off animals and looters
src.modules += new /obj/item/melee/baton/shocker/robot(src)
src.modules += new /obj/item/melee/robotic/baton/shocker(src)
src.modules += new /obj/item/borg/combat/shield(src)
// For repairing gravemarkers
@@ -435,7 +435,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/floor_painter(src)
src.modules += new /obj/item/rms(src)
src.modules += new /obj/item/inflatable_dispenser/robot(src)
src.emag += new /obj/item/melee/baton/robot/arm(src)
src.emag += new /obj/item/melee/robotic/baton/arm(src)
src.modules += new /obj/item/rcd/electric/mounted/borg(src)
src.modules += new /obj/item/pickaxe/plasmacutter/borg(src)
src.modules += new /obj/item/gripper/no_use/loader(src)
@@ -528,7 +528,7 @@ var/global/list/robot_modules = list(
/obj/item/robot_module/robot/security/general/create_equipment(var/mob/living/silicon/robot/robot)
..()
src.modules += new /obj/item/handcuffs/cyborg(src)
src.modules += new /obj/item/melee/baton/robot(src)
src.modules += new /obj/item/melee/robotic/baton(src)
src.modules += new /obj/item/gun/energy/robotic/taser(src)
src.modules += new /obj/item/taperoll/police(src)
src.modules += new /obj/item/reagent_containers/spray/pepper(src)
@@ -807,7 +807,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/reagent_containers/glass/beaker/large/borg(src)
src.modules += new /obj/item/storage/part_replacer(src)
src.modules += new /obj/item/shockpaddles/robot/jumper(src)
src.modules += new /obj/item/melee/baton/slime/robot(src)
src.modules += new /obj/item/melee/robotic/baton/slime(src)
src.modules += new /obj/item/gun/energy/robotic/taser/xeno(src)
src.modules += new /obj/item/xenoarch_multi_tool(src)
src.modules += new /obj/item/pickaxe/excavationdrill(src)
@@ -11,7 +11,7 @@
src.modules += new /obj/item/rcd/electric/mounted/borg/swarm(src)
src.modules += new /obj/item/flash/robot(src)
src.modules += new /obj/item/handcuffs/cable/tape/cyborg(src)
src.modules += new /obj/item/melee/baton/robot(src)
src.modules += new /obj/item/melee/robotic/baton(src)
src.modules += new /obj/item/gun/energy/robotic/taser/swarm(src)
src.modules += new /obj/item/matter_decompiler/swarm(src)
@@ -26,7 +26,7 @@
/obj/item/robot_module/drone/swarm/melee/create_equipment(var/mob/living/silicon/robot/robot)
..()
src.modules += new /obj/item/melee/energy/sword/ionic_rapier/lance(src)
src.modules += new /obj/item/melee/robotic/blade/ionic/lance(src)
//Swarm Disabler Module
/obj/item/gun/energy/taser/mounted/cyborg/swarm
@@ -24,7 +24,7 @@
/obj/item/robot_module/robot/syndicate/create_equipment(var/mob/living/silicon/robot/robot)
..()
src.modules += new /obj/item/pinpointer/shuttle/merc(src)
src.modules += new /obj/item/melee/energy/sword(src)
src.modules += new /obj/item/melee/robotic/blade(src)
var/datum/matter_synth/cloth = new /datum/matter_synth/cloth(40000)
synths += cloth
@@ -55,7 +55,7 @@
src.modules += new /obj/item/shield_projector/rectangle/weak(src)
src.modules += new /obj/item/gun/energy/robotic/laser/dakkalaser(src)
src.modules += new /obj/item/handcuffs/cyborg(src)
src.modules += new /obj/item/melee/baton/robot(src)
src.modules += new /obj/item/melee/robotic/baton(src)
src.modules += new /obj/item/dogborg/sleeper/K9/syndie(src)
src.modules += new /obj/item/dogborg/pounce(src)
@@ -75,7 +75,7 @@
src.modules += new /obj/item/multitool/ai_detector(src)
src.modules += new /obj/item/pickaxe/plasmacutter(src)
src.modules += new /obj/item/rcd/electric/mounted/borg/lesser(src) // Can't eat rwalls to prevent AI core cheese.
src.modules += new /obj/item/melee/energy/sword/ionic_rapier(src)
src.modules += new /obj/item/melee/robotic/blade/ionic(src)
// FBP repair.
src.modules += new /obj/item/robotanalyzer(src)
@@ -22,6 +22,7 @@
var/has_dead_sprite_overlay = FALSE
var/has_extra_customization = FALSE
var/has_custom_equipment_sprites = FALSE
var/has_glow_sprites = FALSE
var/vis_height = 32
var/pixel_x = 0
var/icon_x = 32
@@ -87,6 +88,14 @@
if(sprite_flag_check(ROBOT_HAS_DISABLER_SPRITE) && gun.gun_flag_check(COUNTS_AS_ROBOT_DISABLER))
ourborg.add_overlay("[sprite_icon_state]-disabler")
continue
//These are outliers that don't fit the normal sprite flags. These should not be expanded unless absolutely neccessary.
if(ourborg.activated_module_type_list(list(/obj/item/pickaxe)))
for(var/thing_to_check in ourborg.get_active_modules()) //We look at our active modules. Let's peep!
if(istype(thing_to_check, /obj/item/pickaxe))
var/obj/item/pickaxe/melee = thing_to_check
if(sprite_flag_check(ROBOT_HAS_MELEE_SPRITE) && melee.weapon_flag_check(COUNTS_AS_ROBOTIC_MELEE))
ourborg.add_overlay("[sprite_icon_state]-melee")
continue
/datum/robot_sprite/proc/get_belly_overlay(var/mob/living/silicon/robot/ourborg, var/size = 1, var/b_class)
//Size
@@ -121,6 +130,11 @@
else
return "[get_belly_overlay(ourborg, size, b_class)]-rest"
/datum/robot_sprite/proc/get_glow_overlay(var/mob/living/silicon/robot/ourborg)
if(!ourborg.resting)
return "[sprite_icon_state]-glow"
return "[get_rest_sprite(ourborg.rest_style)]-glow"
/datum/robot_sprite/proc/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.resting && has_rest_sprites))
return "[sprite_icon_state]-eyes"
@@ -43,6 +43,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -58,6 +59,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -74,6 +76,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -89,6 +92,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -105,6 +109,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -120,6 +125,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -135,6 +141,7 @@
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2)
@@ -162,6 +169,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_cargo.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -176,6 +184,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_engineering.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -190,6 +199,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_medical.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -206,6 +216,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_science.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -220,6 +231,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_security.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -235,6 +247,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_service.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -249,6 +262,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_combatmed.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
@@ -272,6 +286,7 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_glow_sprites = TRUE
sprite_decals = list("decals")
is_whitelisted = FALSE //Putting this here as a declaration that it is NOT whitelisted.
// whitelist_ckey = "cameron653" //The owner of the character.
@@ -0,0 +1,229 @@
/// EXAMPLE.
/*
/datum/robot_sprite/dogborg/DEPARTMENT/gooborg
name = "Gooborg - DEPARTMENTL"
sprite_icon_state = "engi"
sprite_hud_icon_state = "engi"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/XXXX.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = list("Standard", "Engineering", "Crisis", "Miner", "Janitor", "Service", "Clerical", "Security", "Research") //Select whichever ones they apply to.
*/
/// Cargo
/datum/robot_sprite/dogborg/mining/gooborg
name = "Gooborg - Cargo"
sprite_icon_state = "base"
//sprite_hud_icon_state = "catgo"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_cargo.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_MELEE_SPRITE //Hammer
/datum/robot_sprite/dogborg/mining/gooborg/miner
name = "Gooborg - Miner"
sprite_icon_state = "base"
//sprite_hud_icon_state = "catgo"
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_miner.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_MELEE_SPRITE | ROBOT_HAS_GUN_SPRITE //Hammer & PKA
/// Engineering
/datum/robot_sprite/dogborg/engineering/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "engi"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_engi.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
/// Crisis
/datum/robot_sprite/dogborg/crisis/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "meowdical"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_med.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = list("Crisis", "Surgeon")
/// Science
/datum/robot_sprite/dogborg/science/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "sci"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_sci.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
/// Security
/datum/robot_sprite/dogborg/security/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "sec"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_sec.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Melee is baton.
/datum/robot_sprite/dogborg/security/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
return
else
return ..()
/// Service
/datum/robot_sprite/dogborg/service/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "service"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_service.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = list("Service", "Clerical")
/datum/robot_sprite/dogborg/janitor/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "service"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jani.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
/datum/robot_sprite/dogborg/combat_gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "malf"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_peacekeeper.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Baton
module_type = "Combat"
/datum/robot_sprite/dogborg/combat_gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
return
return ..()
/datum/robot_sprite/dogborg/clown/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "syndicat"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jester.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
//Exploration.
/datum/robot_sprite/dogborg/explo_gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "syndicat"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/custom/gooborg_ninja.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = "Exploration"
/datum/robot_sprite/dogborg/explo_gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
return
else
return ..()
//Syndicate
/datum/robot_sprite/dogborg/combat_medic/gooborg
name = "Gooborg"
sprite_icon_state = "base"
//sprite_hud_icon_state = "malf"
has_eye_sprites = TRUE
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = FALSE
has_vore_belly_resting_sprites = TRUE
has_vore_struggle_sprite = TRUE
has_dead_sprite_overlay = FALSE
has_glow_sprites = TRUE
sprite_icon = 'icons/mob/robot/gooborgs/custom/gooborg_syndi.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_BLADE_SPRITE //esword
module_type = list("Combat Medic", "Mechanist", "Protector") //You get all three modules.
/datum/robot_sprite/dogborg/combat_medic/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
return
else
return ..()
@@ -135,7 +135,7 @@ What Borgs are available is sadly handled in the above file in the proc
/mob/living/silicon/robot/proc/reskin_booze()
set name = "Change Drink Color"
set category = "Abilities.Silicon" //TGPanel
set category = "Abilities.Settings"
set desc = "Choose the color of drink displayed inside you."
var/mob/M = usr