[MIRROR] Robot Sprite Unit test, Robot Upports, Robot Sprite Fixes [MDB IGNORE] [IDB IGNORE] (#10241)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
@@ -144,7 +144,7 @@ SUBSYSTEM_DEF(robot_sprites)
|
|||||||
// testing whitelist functionality ckey-...
|
// testing whitelist functionality ckey-...
|
||||||
if(findtext(icon, regex("ckey-")))
|
if(findtext(icon, regex("ckey-")))
|
||||||
var/list/owner = splittext(icon, "-")
|
var/list/owner = splittext(icon, "-")
|
||||||
RS.whitelist_ckey = owner[3]
|
RS.whitelist_ckey = owner[2]
|
||||||
RS.is_whitelisted = TRUE
|
RS.is_whitelisted = TRUE
|
||||||
continue
|
continue
|
||||||
// testing module types slots modules-...
|
// testing module types slots modules-...
|
||||||
@@ -153,6 +153,12 @@ SUBSYSTEM_DEF(robot_sprites)
|
|||||||
jobs -= "modules"
|
jobs -= "modules"
|
||||||
RS.module_type = jobs
|
RS.module_type = jobs
|
||||||
continue
|
continue
|
||||||
|
// special overlays that also can be used as decals, as some names have - in them, seperated by _
|
||||||
|
if(findtext(icon, regex("^decals")))
|
||||||
|
var/list/decals = splittext(icon, "_")
|
||||||
|
decals -= "decals"
|
||||||
|
RS.sprite_decals |= decals
|
||||||
|
continue
|
||||||
// Check for all the possible overlays
|
// Check for all the possible overlays
|
||||||
if(findtext(icon, regex("-roll")))
|
if(findtext(icon, regex("-roll")))
|
||||||
RS.sprite_flags |= ROBOT_HAS_SPEED_SPRITE
|
RS.sprite_flags |= ROBOT_HAS_SPEED_SPRITE
|
||||||
@@ -191,7 +197,10 @@ SUBSYSTEM_DEF(robot_sprites)
|
|||||||
RS.has_eye_light_sprites = TRUE
|
RS.has_eye_light_sprites = TRUE
|
||||||
continue
|
continue
|
||||||
if(findtext(icon, regex("-decals")))
|
if(findtext(icon, regex("-decals")))
|
||||||
RS.has_robotdecal_sprites = TRUE
|
RS.sprite_decals |= list("decals")
|
||||||
|
continue
|
||||||
|
if(findtext(icon, regex("-struggle")))
|
||||||
|
RS.has_vore_struggle_sprite = TRUE
|
||||||
continue
|
continue
|
||||||
if(findtext(icon, regex("-openpanel_w")))
|
if(findtext(icon, regex("-openpanel_w")))
|
||||||
RS.has_custom_open_sprites = TRUE
|
RS.has_custom_open_sprites = TRUE
|
||||||
|
|||||||
@@ -290,6 +290,38 @@
|
|||||||
initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white")
|
initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white")
|
||||||
rank = JOB_PATHFINDER
|
rank = JOB_PATHFINDER
|
||||||
|
|
||||||
|
/obj/item/card/id/exploration/borg
|
||||||
|
var/mob/living/silicon/robot/R
|
||||||
|
var/last_robot_loc
|
||||||
|
name = "Robot Exploration ID"
|
||||||
|
rank = JOB_EXPLORER
|
||||||
|
|
||||||
|
/obj/item/card/id/exploration/borg/Initialize()
|
||||||
|
. = ..()
|
||||||
|
if(isrobot(loc?.loc))
|
||||||
|
R = loc.loc
|
||||||
|
registered_name = R.braintype
|
||||||
|
RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc))
|
||||||
|
|
||||||
|
/obj/item/card/id/exploration/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc)
|
||||||
|
if(old_loc == R || old_loc == R.module)
|
||||||
|
last_robot_loc = old_loc
|
||||||
|
if(!istype(loc, /obj/machinery) && loc != R && loc != R.module)
|
||||||
|
if(last_robot_loc)
|
||||||
|
forceMove(last_robot_loc)
|
||||||
|
last_robot_loc = null
|
||||||
|
else
|
||||||
|
forceMove(R)
|
||||||
|
if(loc == R)
|
||||||
|
hud_layerise()
|
||||||
|
|
||||||
|
/obj/item/card/id/exploration/borg/Destroy()
|
||||||
|
if(R)
|
||||||
|
UnregisterSignal(src, COMSIG_OBSERVER_MOVED)
|
||||||
|
R = null
|
||||||
|
last_robot_loc = null
|
||||||
|
. = ..()
|
||||||
|
|
||||||
//Talon
|
//Talon
|
||||||
|
|
||||||
/obj/item/card/id/talon
|
/obj/item/card/id/talon
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/obj/item/taskmanager
|
/obj/item/taskmanager
|
||||||
name = "Task Manager"
|
name = "Task Manager"
|
||||||
desc = "A high-tech tool used to pull surplus items from offsite storage. Select a department to begin! Has a five minute cooldown between successful uses"
|
desc = "A high-tech tool used to pull surplus items from offsite storage. Select a department to begin! Has a five minute cooldown between successful uses"
|
||||||
icon = 'modular_chomp/icons/mob/dogborg_ch.dmi'
|
icon = 'icons/mob/dogborg_vr.dmi'
|
||||||
icon_state = "taskmanager"
|
icon_state = "taskmanager"
|
||||||
item_icons = list(
|
item_icons = list(
|
||||||
slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi',
|
slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi',
|
||||||
|
|||||||
@@ -127,9 +127,9 @@ var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J
|
|||||||
|
|
||||||
// Used by robots and robot preferences for regular modules.
|
// Used by robots and robot preferences for regular modules.
|
||||||
var/list/robot_module_types = list(
|
var/list/robot_module_types = list(
|
||||||
"Standard", "Engineering",/* "Surgeon",*/ "Crisis", //CHOMPedit: Combining Surgeon and Crisis.
|
"Standard", "Engineering", /* "Surgeon",*/ "Crisis", "Miner",
|
||||||
"Miner", "Janitor", "Service", "Clerical", "Security",
|
"Janitor", "Service", "Clown", "Clerical", "Security",
|
||||||
"Research"
|
"Research", "Command", "Exploration" //CHOMPedit: Enables Exploration borg.
|
||||||
)
|
)
|
||||||
// L
|
// L
|
||||||
// List of modules added during code red
|
// List of modules added during code red
|
||||||
@@ -138,8 +138,9 @@ var/list/emergency_module_types = list(
|
|||||||
)
|
)
|
||||||
// List of modules available to AI shells
|
// List of modules available to AI shells
|
||||||
var/list/shell_module_types = list(
|
var/list/shell_module_types = list(
|
||||||
"Standard", "Engineering", "Surgeon", "Crisis",
|
"Standard", "Engineering", "Surgeon", "Crisis", "Miner",
|
||||||
"Miner", "Janitor", "Service", "Clerical", "Security", "Research"
|
"Janitor", "Service", "Clown", "Clerical", "Security",
|
||||||
|
"Research", "Command", "Exploration"
|
||||||
)
|
)
|
||||||
// List of whitelisted modules
|
// List of whitelisted modules
|
||||||
var/list/whitelisted_module_types = list(
|
var/list/whitelisted_module_types = list(
|
||||||
@@ -165,10 +166,10 @@ var/static/list/scarySounds = list(
|
|||||||
'sound/machines/door/old_airlock.ogg',
|
'sound/machines/door/old_airlock.ogg',
|
||||||
'sound/effects/clownstep1.ogg',
|
'sound/effects/clownstep1.ogg',
|
||||||
'sound/effects/clownstep2.ogg',
|
'sound/effects/clownstep2.ogg',
|
||||||
'sound/voice/teppi/roar.ogg', //VOREStation Add
|
'sound/voice/teppi/roar.ogg',
|
||||||
'sound/voice/moth/scream_moth.ogg', //VOREStation Add
|
'sound/voice/moth/scream_moth.ogg',
|
||||||
'sound/voice/nya.ogg', //VOREStation Add
|
'sound/voice/nya.ogg',
|
||||||
'sound/voice/succlet_shriek.ogg' //VOREStation Add
|
'sound/voice/succlet_shriek.ogg'
|
||||||
)
|
)
|
||||||
|
|
||||||
// Bomb cap!
|
// Bomb cap!
|
||||||
|
|||||||
@@ -746,9 +746,8 @@
|
|||||||
I.plane = PLANE_LIGHTING_ABOVE
|
I.plane = PLANE_LIGHTING_ABOVE
|
||||||
add_overlay(I)
|
add_overlay(I)
|
||||||
qdel(I)
|
qdel(I)
|
||||||
// CHOMPEdit Start
|
|
||||||
if(S.blob_appearance == "dullahan")
|
if(S.blob_appearance == "dullahan")
|
||||||
icon = 'modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi'
|
icon = 'icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi'
|
||||||
vis_height = 64
|
vis_height = 64
|
||||||
var/image/I = image(icon, "[S.dullahan_overlays[1]][resting? "-rest" : (vore_fullness? "-[vore_fullness]" : null)]", pixel_x = -16)
|
var/image/I = image(icon, "[S.dullahan_overlays[1]][resting? "-rest" : (vore_fullness? "-[vore_fullness]" : null)]", pixel_x = -16)
|
||||||
I.color = S.dullahan_overlays[S.dullahan_overlays[1]]
|
I.color = S.dullahan_overlays[S.dullahan_overlays[1]]
|
||||||
@@ -797,7 +796,7 @@
|
|||||||
I.layer = MOB_LAYER
|
I.layer = MOB_LAYER
|
||||||
add_overlay(I)
|
add_overlay(I)
|
||||||
qdel(I)
|
qdel(I)
|
||||||
// CHOMPEdit End
|
//You know technically I could just put all the icons into the 128x64.dmi file and off-set them to fit..
|
||||||
if(S.blob_appearance in wide_icons)
|
if(S.blob_appearance in wide_icons)
|
||||||
icon = 'icons/mob/species/protean/protean64x32.dmi'
|
icon = 'icons/mob/species/protean/protean64x32.dmi'
|
||||||
default_pixel_x = -16
|
default_pixel_x = -16
|
||||||
|
|||||||
@@ -409,7 +409,7 @@
|
|||||||
"panther" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "panther", pixel_x = -16),
|
"panther" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "panther", pixel_x = -16),
|
||||||
"robodrgn" = image(icon = 'icons/mob/species/protean/protean128x64.dmi', icon_state = "robodrgn", pixel_x = -48),
|
"robodrgn" = image(icon = 'icons/mob/species/protean/protean128x64.dmi', icon_state = "robodrgn", pixel_x = -48),
|
||||||
"Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small"),
|
"Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small"),
|
||||||
"dullahan" = image(icon = 'modular_chomp/icons/mob/dullahanborg/dullahanicon.dmi', icon_state = "proticon")
|
"dullahan" = image(icon = 'icons/mob/robot/dullahan/v1/dullahanicon.dmi', icon_state = "proticon")
|
||||||
//CHOMPEnable End
|
//CHOMPEnable End
|
||||||
)
|
)
|
||||||
var/blobstyle = show_radial_menu(protie, protie, icon_choices, require_near = TRUE, tooltips = FALSE)
|
var/blobstyle = show_radial_menu(protie, protie, icon_choices, require_near = TRUE, tooltips = FALSE)
|
||||||
@@ -531,11 +531,10 @@
|
|||||||
S.dragon_overlays[6] = choice
|
S.dragon_overlays[6] = choice
|
||||||
S.dragon_overlays[S.dragon_overlays[6]] = new_color
|
S.dragon_overlays[S.dragon_overlays[6]] = new_color
|
||||||
S.blob_appearance = "dragon"
|
S.blob_appearance = "dragon"
|
||||||
// CHOMPEdit Start
|
if("dullahan") //START OF DULLAHAN PORT.
|
||||||
if("dullahan")
|
|
||||||
var/list/options = list("Metalshell","Eyes","Decals","Import","Export")
|
var/list/options = list("Metalshell","Eyes","Decals","Import","Export")
|
||||||
for(var/option in options)
|
for(var/option in options)
|
||||||
LAZYSET(options, option, image('modular_chomp/icons/mob/dullahanborg/dullahansigns.dmi', option))
|
LAZYSET(options, option, image('icons/mob/robot/dullahan/v1/dullahansigns.dmi', option))
|
||||||
var/choice = show_radial_menu(protie, protie, options, radius = 60)
|
var/choice = show_radial_menu(protie, protie, options, radius = 60)
|
||||||
if(!choice || QDELETED(protie) || protie.incapacitated())
|
if(!choice || QDELETED(protie) || protie.incapacitated())
|
||||||
return FALSE
|
return FALSE
|
||||||
@@ -570,7 +569,7 @@
|
|||||||
var/extraoff = "dullahanextendedoff"
|
var/extraoff = "dullahanextendedoff"
|
||||||
options = dullahanmetal_styles
|
options = dullahanmetal_styles
|
||||||
for(var/option in options)
|
for(var/option in options)
|
||||||
var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16)
|
var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16)
|
||||||
LAZYSET(options, option, I)
|
LAZYSET(options, option, I)
|
||||||
choice = show_radial_menu(protie, protie, options, radius = 90)
|
choice = show_radial_menu(protie, protie, options, radius = 90)
|
||||||
if(!choice || QDELETED(protie) || protie.incapacitated())
|
if(!choice || QDELETED(protie) || protie.incapacitated())
|
||||||
@@ -589,7 +588,7 @@
|
|||||||
if("Eyes")
|
if("Eyes")
|
||||||
options = dullahaneyes_styles
|
options = dullahaneyes_styles
|
||||||
for(var/option in options)
|
for(var/option in options)
|
||||||
var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16)
|
var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16)
|
||||||
LAZYSET(options, option, I)
|
LAZYSET(options, option, I)
|
||||||
choice = show_radial_menu(protie, protie, options, radius = 90)
|
choice = show_radial_menu(protie, protie, options, radius = 90)
|
||||||
if(!choice || QDELETED(protie) || protie.incapacitated())
|
if(!choice || QDELETED(protie) || protie.incapacitated())
|
||||||
@@ -602,7 +601,7 @@
|
|||||||
if("Decals")
|
if("Decals")
|
||||||
options = dullahandecals_styles
|
options = dullahandecals_styles
|
||||||
for(var/option in options)
|
for(var/option in options)
|
||||||
var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16)
|
var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16)
|
||||||
LAZYSET(options, option, I)
|
LAZYSET(options, option, I)
|
||||||
choice = show_radial_menu(protie, protie, options, radius = 90)
|
choice = show_radial_menu(protie, protie, options, radius = 90)
|
||||||
if(!choice || QDELETED(protie) || protie.incapacitated())
|
if(!choice || QDELETED(protie) || protie.incapacitated())
|
||||||
@@ -652,8 +651,7 @@
|
|||||||
deyescolor = S.dullahan_overlays[S.dullahan_overlays[4]]
|
deyescolor = S.dullahan_overlays[S.dullahan_overlays[4]]
|
||||||
var/output_style = jointext(list(dmetal,dmetalcolor,ddecals,ddecalscolor,deyes,deyescolor), ";")
|
var/output_style = jointext(list(dmetal,dmetalcolor,ddecals,ddecalscolor,deyes,deyescolor), ";")
|
||||||
to_chat(protie, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style"))
|
to_chat(protie, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style"))
|
||||||
S.blob_appearance = "dullahan"
|
S.blob_appearance = "dullahan" //END OF DULLAHAN PORT.
|
||||||
// CHOMPEdit End
|
|
||||||
if("Primary")
|
if("Primary")
|
||||||
var/new_color = tgui_color_picker(protie, "Pick primary color:","Protean Primary", "#FF0000")
|
var/new_color = tgui_color_picker(protie, "Pick primary color:","Protean Primary", "#FF0000")
|
||||||
if(!new_color)
|
if(!new_color)
|
||||||
|
|||||||
@@ -130,7 +130,6 @@
|
|||||||
"dragon_hornsPointy" = "#FFFFFF",
|
"dragon_hornsPointy" = "#FFFFFF",
|
||||||
"dragon_eyesNormal" = "#FFFFFF"
|
"dragon_eyesNormal" = "#FFFFFF"
|
||||||
)
|
)
|
||||||
// CHOMPEdit Start
|
|
||||||
var/list/dullahan_overlays = list(
|
var/list/dullahan_overlays = list(
|
||||||
"dullahanbody" = "#FFFFFF",
|
"dullahanbody" = "#FFFFFF",
|
||||||
"dullahanhead" = "#FFFFFF",
|
"dullahanhead" = "#FFFFFF",
|
||||||
@@ -140,7 +139,6 @@
|
|||||||
"dullahanextended" = "#FFFFFF"
|
"dullahanextended" = "#FFFFFF"
|
||||||
// loads the icons from the DMI file in that order on spawn. they are overlay 1-6.
|
// loads the icons from the DMI file in that order on spawn. they are overlay 1-6.
|
||||||
)
|
)
|
||||||
// CHOMPEdit End
|
|
||||||
var/pseudodead = 0
|
var/pseudodead = 0
|
||||||
|
|
||||||
/datum/species/protean/New()
|
/datum/species/protean/New()
|
||||||
|
|||||||
@@ -557,3 +557,166 @@
|
|||||||
if(custom_range)
|
if(custom_range)
|
||||||
range = custom_range
|
range = custom_range
|
||||||
to_chat(user, span_notice("Scanner will now look up to [range] tile(s) away."))
|
to_chat(user, span_notice("Scanner will now look up to [range] tile(s) away."))
|
||||||
|
|
||||||
|
//CHOMPEDIT Enable
|
||||||
|
/obj/item/robot_tongue/examine(user)
|
||||||
|
. = ..()
|
||||||
|
if(Adjacent(user))
|
||||||
|
if(water.energy)
|
||||||
|
. += span_notice("[src] is wet. Just like it should be.")
|
||||||
|
if(water.energy < 5)
|
||||||
|
. += span_notice("[src] is dry.")
|
||||||
|
//CHOMPEDIT Enable
|
||||||
|
|
||||||
|
/obj/item/shield_projector/line/exploborg
|
||||||
|
name = "expirmental shield projector"
|
||||||
|
description_info = "This creates a shield in a straight line perpendicular to the direction where the user was facing when it was activated. \
|
||||||
|
The shield allows projectiles to leave from inside but blocks projectiles from outside. Everything else can pass through the shield freely, \
|
||||||
|
including other people and thrown objects. The shield also cannot block certain effects which take place over an area, such as flashbangs or explosions."
|
||||||
|
shield_health = 90
|
||||||
|
max_shield_health = 90
|
||||||
|
shield_regen_amount = 25
|
||||||
|
line_length = 7 // How long the line is. Recommended to be an odd number.
|
||||||
|
offset_from_center = 2 // How far from the projector will the line's center be.
|
||||||
|
|
||||||
|
// To repair a single module
|
||||||
|
/obj/item/self_repair_system
|
||||||
|
name = "plating repair system"
|
||||||
|
desc = "A nanite control system to repair damaged armour plating and wiring while not moving. Destroyed armour can't be restored."
|
||||||
|
icon = 'icons/obj/robot_component.dmi'
|
||||||
|
icon_state = "armor"
|
||||||
|
var/repair_time = 25
|
||||||
|
var/repair_amount = 2.5
|
||||||
|
var/power_tick = 25
|
||||||
|
var/disabled_icon = "armor"
|
||||||
|
var/active_icon = "armor_broken"
|
||||||
|
var/list/target_components = list("armour")
|
||||||
|
var/repairing = FALSE
|
||||||
|
|
||||||
|
/obj/item/self_repair_system/New()
|
||||||
|
..()
|
||||||
|
flags |= NOBLUDGEON
|
||||||
|
|
||||||
|
/obj/item/self_repair_system/attack_self(mob/user)
|
||||||
|
if(repairing)
|
||||||
|
return
|
||||||
|
var/mob/living/silicon/robot/R = user
|
||||||
|
var/destroyed_components = FALSE
|
||||||
|
var/list/repairable_components = list()
|
||||||
|
for(var/target_component in target_components)
|
||||||
|
var/datum/robot_component/C = R.components[target_component]
|
||||||
|
if(!C)
|
||||||
|
continue
|
||||||
|
if(istype(C.wrapped, /obj/item/broken_device))
|
||||||
|
destroyed_components = TRUE
|
||||||
|
else if (C.brute_damage != 0 || C.electronics_damage != 0)
|
||||||
|
repairable_components += C
|
||||||
|
if(!repairable_components.len && destroyed_components)
|
||||||
|
to_chat(R, span_warning("Repair system initialization failed. Can't repair destroyed [target_components.len == 1 ? "[R.components[target_components[1]]]'s" : "component's"] plating or wiring."))
|
||||||
|
return
|
||||||
|
if(!repairable_components.len)
|
||||||
|
to_chat(R, span_warning("No brute or burn damage detected [target_components.len == 1 ? "in [R.components[target_components[1]]]" : ""]."))
|
||||||
|
return
|
||||||
|
if(destroyed_components)
|
||||||
|
to_chat(R, span_warning("WARNING! Destroyed modules detected. Those can not be repaired!"))
|
||||||
|
icon_state = active_icon
|
||||||
|
update_icon()
|
||||||
|
repairing = TRUE
|
||||||
|
for(var/datum/robot_component/C in repairable_components)
|
||||||
|
to_chat(R, span_notice("Repair system initializated. Repairing plating and wiring of [C]."))
|
||||||
|
src.self_repair(R, C, repair_time, repair_amount)
|
||||||
|
repairing = FALSE
|
||||||
|
icon_state = disabled_icon
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/self_repair_system/proc/self_repair(mob/living/silicon/robot/R, datum/robot_component/C, var/tick_delay, var/heal_per_tick)
|
||||||
|
if(!C || !R.cell)
|
||||||
|
return
|
||||||
|
if(C.brute_damage == 0 && C.electronics_damage == 0)
|
||||||
|
to_chat(R, span_notice("Repair of [C] completed."))
|
||||||
|
return
|
||||||
|
if(!R.use_direct_power(power_tick, 500)) //We don't want to drain ourselves too far down during exploration
|
||||||
|
to_chat(R, span_warning("Not enough power to initialize the repair system."))
|
||||||
|
return
|
||||||
|
if(do_after(R, tick_delay))
|
||||||
|
if(!C)
|
||||||
|
return
|
||||||
|
C.brute_damage -= min(C.brute_damage, heal_per_tick)
|
||||||
|
C.electronics_damage -= min(C.electronics_damage, heal_per_tick)
|
||||||
|
R.updatehealth()
|
||||||
|
src.self_repair(R, C, tick_delay, heal_per_tick)
|
||||||
|
|
||||||
|
// To repair multiple modules
|
||||||
|
/obj/item/self_repair_system/advanced
|
||||||
|
name = "self repair system"
|
||||||
|
desc = "A nanite control system to repair damaged components while not moving. Destroyed components can't be restored."
|
||||||
|
target_components = list("actuator", "radio", "power cell", "diagnosis unit", "camera", "comms", "armour")
|
||||||
|
power_tick = 10
|
||||||
|
repair_time = 15
|
||||||
|
repair_amount = 3
|
||||||
|
|
||||||
|
// Robot Weapons
|
||||||
|
/obj/item/gun/energy/robotic/flare
|
||||||
|
name = "flare gun"
|
||||||
|
desc = "A flare-gun"
|
||||||
|
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||||
|
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||||
|
icon = 'icons/obj/gun.dmi'
|
||||||
|
icon_state = "taser"
|
||||||
|
charge_cost = 480
|
||||||
|
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_TASER
|
||||||
|
|
||||||
|
/obj/item/gun/energy/robotic/smallmedigun
|
||||||
|
name = "borg directed restoration system"
|
||||||
|
desc = "An adapted version of the BL-3 'Phoenix, for expiremental useage in borgs."
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/borg
|
||||||
|
accept_cell_type = /obj/item/cell/device
|
||||||
|
cell_type = /obj/item/cell/device/weapon
|
||||||
|
charge_cost = 600
|
||||||
|
fire_delay = 6
|
||||||
|
force = 5
|
||||||
|
icon_state = "medbeam"
|
||||||
|
icon = 'icons/obj/gun_vr.dmi'
|
||||||
|
accuracy = 100
|
||||||
|
fire_sound = 'sound/weapons/eluger.ogg'
|
||||||
|
self_recharge = 1
|
||||||
|
use_external_power = 1
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/borg
|
||||||
|
range = 4
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/borg/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-3.75)
|
||||||
|
target.adjustFireLoss(-3.75)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/melee/robotic/blade/explotailspear
|
||||||
|
name = "energy tail"
|
||||||
|
desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp."
|
||||||
|
force = 45
|
||||||
|
armor_penetration = 25 //30 to try and make it not useless against armored mobs but not fully nullify it.
|
||||||
|
reach = 3
|
||||||
|
projectile_parry_chance = 15.
|
||||||
|
|
||||||
|
/obj/item/melee/robotic/jaws/big/explojaws
|
||||||
|
name = "explo jaws"
|
||||||
|
desc = "Highly lethal jaws for close range combat."
|
||||||
|
force = 60
|
||||||
|
armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it
|
||||||
|
projectile_parry_chance = 15
|
||||||
|
|
||||||
|
/obj/item/gun/energy/robotic/phasegun
|
||||||
|
name = "EW26 Artemis Mounted"
|
||||||
|
desc = "The RayZar EW26 Artemis, also known as the 'phase carbine', is a downsized energy-based weapon specifically designed for use against wildlife. This one has a safety interlock that prevents firing while in proximity to the facility."
|
||||||
|
description_fluff = "RayZar is Ward-Takahashi’s main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market."
|
||||||
|
icon = 'icons/obj/gun.dmi'
|
||||||
|
icon_state = "phasecarbine"
|
||||||
|
charge_cost = 160
|
||||||
|
recharge_time = 16
|
||||||
|
projectile_type = /obj/item/projectile/energy/phase
|
||||||
|
use_external_power = 1
|
||||||
|
self_recharge = 1
|
||||||
|
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_LASER
|
||||||
|
|||||||
@@ -832,19 +832,6 @@
|
|||||||
return
|
return
|
||||||
..() //CHOMPEdit End
|
..() //CHOMPEdit End
|
||||||
|
|
||||||
//CHOMPAdd START
|
|
||||||
/obj/item/dogborg/sleeper/command //Command borg belly //CHOMP addition
|
|
||||||
name = "Bluespace Filing Belly"
|
|
||||||
desc = "A mounted bluespace storage unit for carrying paperwork"
|
|
||||||
icon = 'modular_chomp/icons/mob/dogborg_ch.dmi'
|
|
||||||
icon_state = "sleeperd"
|
|
||||||
injection_chems = null
|
|
||||||
compactor = TRUE
|
|
||||||
recycles = FALSE
|
|
||||||
max_item_count = 25
|
|
||||||
medsensor = FALSE
|
|
||||||
//CHOMP addition end
|
|
||||||
|
|
||||||
/obj/item/dogborg/sleeper/compactor/brewer
|
/obj/item/dogborg/sleeper/compactor/brewer
|
||||||
name = "Brew Belly"
|
name = "Brew Belly"
|
||||||
desc = "A mounted drunk tank unit with fuel processor, for putting away particularly rowdy patrons."
|
desc = "A mounted drunk tank unit with fuel processor, for putting away particularly rowdy patrons."
|
||||||
@@ -876,13 +863,6 @@
|
|||||||
var/units = round(patient.reagents.get_reagent_amount(chem))
|
var/units = round(patient.reagents.get_reagent_amount(chem))
|
||||||
to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them.
|
to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them.
|
||||||
|
|
||||||
/obj/item/dogborg/sleeper/compactor/honkborg
|
|
||||||
name = "Jiggles Von Hungertron"
|
|
||||||
desc = "You've heard of Giggles Von Honkerton for the back, now get ready for Jiggles Von Hungertron for the front."
|
|
||||||
icon = 'modular_chomp/icons/mob/dogborg_ch.dmi'
|
|
||||||
icon_state = "clowngut"
|
|
||||||
recycles = FALSE
|
|
||||||
|
|
||||||
//CHOMP Addition end
|
//CHOMP Addition end
|
||||||
|
|
||||||
/obj/item/dogborg/sleeper/K9/ert
|
/obj/item/dogborg/sleeper/K9/ert
|
||||||
@@ -927,4 +907,30 @@
|
|||||||
max_item_count = 35
|
max_item_count = 35
|
||||||
digest_multiplier = 3
|
digest_multiplier = 3
|
||||||
|
|
||||||
|
/obj/item/dogborg/sleeper/command //Command borg belly
|
||||||
|
name = "Bluespace Filing Belly"
|
||||||
|
desc = "A mounted bluespace storage unit for carrying paperwork"
|
||||||
|
icon_state = "sleeperd"
|
||||||
|
injection_chems = null
|
||||||
|
compactor = TRUE
|
||||||
|
recycles = FALSE
|
||||||
|
max_item_count = 25
|
||||||
|
medsensor = FALSE
|
||||||
|
|
||||||
|
/obj/item/dogborg/sleeper/compactor/honkborg
|
||||||
|
name = "Jiggles Von Hungertron"
|
||||||
|
desc = "You've heard of Giggles Von Honkerton for the back, now get ready for Jiggles Von Hungertron for the front."
|
||||||
|
icon_state = "clowngut"
|
||||||
|
recycles = FALSE
|
||||||
|
|
||||||
|
/obj/item/dogborg/sleeper/exploration
|
||||||
|
name = "Store-Belly"
|
||||||
|
desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person."
|
||||||
|
icon_state = "sleeperlost"
|
||||||
|
injection_chems = list(REAGENT_ID_INAPROVALINE) // Only to stabilize during extractions
|
||||||
|
compactor = TRUE
|
||||||
|
max_item_count = 4
|
||||||
|
medsensor = FALSE
|
||||||
|
recycles = TRUE
|
||||||
|
|
||||||
#undef SLEEPER_INJECT_COST
|
#undef SLEEPER_INJECT_COST
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
var/crisis //Admin-settable for combat module use.
|
var/crisis //Admin-settable for combat module use.
|
||||||
var/crisis_override = 0
|
var/crisis_override = 0
|
||||||
var/integrated_light_power = 6
|
var/integrated_light_power = 6
|
||||||
var/robotdecal_on = 0
|
var/list/robotdecal_on = list()
|
||||||
var/datum/wires/robot/wires
|
var/datum/wires/robot/wires
|
||||||
|
|
||||||
can_be_antagged = TRUE
|
can_be_antagged = TRUE
|
||||||
@@ -457,8 +457,29 @@
|
|||||||
/mob/living/silicon/robot/verb/toggle_robot_decals() // loads overlay UNDER lights.
|
/mob/living/silicon/robot/verb/toggle_robot_decals() // loads overlay UNDER lights.
|
||||||
set category = "Abilities.Silicon"
|
set category = "Abilities.Silicon"
|
||||||
set name = "Toggle extras"
|
set name = "Toggle extras"
|
||||||
robotdecal_on = !robotdecal_on
|
|
||||||
to_chat(src, span_filter_notice("You [robotdecal_on ? "enable" : "disable"] your extra apperances."))
|
if(!sprite_datum)
|
||||||
|
return
|
||||||
|
if(!LAZYLEN(sprite_datum.sprite_decals))
|
||||||
|
to_chat(src, span_warning("This module does not support decals."))
|
||||||
|
return
|
||||||
|
|
||||||
|
var/extra_message = "Enabled decals:\n"
|
||||||
|
for(var/decal in robotdecal_on)
|
||||||
|
extra_message += decal + "\n"
|
||||||
|
|
||||||
|
var/decal_to_toggle = tgui_input_list(src, "Please select which decal you want to toggle\n[extra_message]", "Decal Toggle", sprite_datum.sprite_decals)
|
||||||
|
if(!decal_to_toggle)
|
||||||
|
return
|
||||||
|
|
||||||
|
decal_to_toggle = lowertext(decal_to_toggle)
|
||||||
|
|
||||||
|
if(robotdecal_on.Find(decal_to_toggle))
|
||||||
|
robotdecal_on -= decal_to_toggle
|
||||||
|
to_chat(src, span_filter_notice("You disable your \"[decal_to_toggle]\" extra apperances."))
|
||||||
|
else
|
||||||
|
robotdecal_on += decal_to_toggle
|
||||||
|
to_chat(src, span_filter_notice("You enable your \"[decal_to_toggle]\" extra apperances."))
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence.
|
/mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence.
|
||||||
@@ -977,11 +998,12 @@
|
|||||||
if(eyes_overlay)
|
if(eyes_overlay)
|
||||||
add_overlay(eyes_overlay)
|
add_overlay(eyes_overlay)
|
||||||
|
|
||||||
if(robotdecal_on && sprite_datum.has_robotdecal_sprites)
|
if(robotdecal_on.len && LAZYLEN(sprite_datum.sprite_decals))
|
||||||
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
|
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
|
||||||
var/robotdecal_overlay = sprite_datum.get_robotdecal_overlay(src)
|
for(var/enabled_decal in robotdecal_on)
|
||||||
if(robotdecal_overlay)
|
var/robotdecal_overlay = sprite_datum.get_robotdecal_overlay(src, enabled_decal)
|
||||||
add_overlay(robotdecal_overlay)
|
if(robotdecal_overlay)
|
||||||
|
add_overlay(robotdecal_overlay)
|
||||||
|
|
||||||
if(lights_on && sprite_datum.has_eye_light_sprites)
|
if(lights_on && sprite_datum.has_eye_light_sprites)
|
||||||
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
|
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
|
||||||
|
|||||||
@@ -34,3 +34,29 @@
|
|||||||
if(isliving(contents))
|
if(isliving(contents))
|
||||||
vore_light_states[b_class] = 1
|
vore_light_states[b_class] = 1
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/mob/living/silicon/robot/vs_animate(var/belly_class)
|
||||||
|
if(!sprite_datum.has_vore_struggle_sprite)
|
||||||
|
return
|
||||||
|
if(belly_class == "sleeper" && sleeper_state == 0 && vore_selected.silicon_belly_overlay_preference == "Sleeper")
|
||||||
|
return
|
||||||
|
var/vs_fullness = vore_fullness_ex[belly_class]
|
||||||
|
if(resting)
|
||||||
|
cut_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class))
|
||||||
|
add_overlay("[sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)]-struggle")
|
||||||
|
else
|
||||||
|
cut_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class))
|
||||||
|
add_overlay("[sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)]-struggle")
|
||||||
|
addtimer(CALLBACK(src, PROC_REF(end_vs_animate), belly_class), 1.2 SECONDS)
|
||||||
|
|
||||||
|
/mob/living/silicon/robot/proc/end_vs_animate(var/belly_class)
|
||||||
|
var/vs_fullness = vore_fullness_ex[belly_class]
|
||||||
|
if(resting)
|
||||||
|
cut_overlay("[sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)]-struggle")
|
||||||
|
else
|
||||||
|
cut_overlay("[sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)]-struggle")
|
||||||
|
if(vs_fullness > 0)
|
||||||
|
if(resting)
|
||||||
|
add_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class))
|
||||||
|
else
|
||||||
|
add_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class))
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
//Modular honk borg
|
|
||||||
//This restructures how borg additions are done to make them sane/modular/maintainable
|
|
||||||
//Also makes it easier to make new borgs
|
|
||||||
|
|
||||||
//Add ourselves to the borg list
|
|
||||||
/hook/startup/proc/Modular_Borg_init_Honk()
|
|
||||||
robot_modules["Clown"] = /obj/item/robot_module/robot/clerical/honkborg
|
|
||||||
robot_module_types += "Clown" //Add ourselves to global
|
|
||||||
return 1
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/clerical/honkborg
|
|
||||||
name = "clown robot module"
|
|
||||||
channels = list("Service" = 1,
|
|
||||||
"Entertainment" = 1)
|
|
||||||
pto_type = PTO_CIVILIAN
|
|
||||||
can_be_pushed = 0
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/clerical/honkborg/create_equipment(var/mob/living/silicon/robot/R)
|
|
||||||
src.modules += new /obj/item/gripper/service(src)
|
|
||||||
src.modules += new /obj/item/reagent_containers/glass/bucket(src)
|
|
||||||
src.modules += new /obj/item/material/minihoe(src)
|
|
||||||
src.modules += new /obj/item/analyzer/plant_analyzer(src)
|
|
||||||
src.modules += new /obj/item/storage/bag/serviceborg(src)
|
|
||||||
src.modules += new /obj/item/robot_harvester(src)
|
|
||||||
src.modules += new /obj/item/multitool(src)
|
|
||||||
src.modules += new /obj/item/dogborg/pounce(src)
|
|
||||||
src.modules += new /obj/item/bikehorn(src)
|
|
||||||
src.modules += new /obj/item/gun/launcher/confetti_cannon/robot(src)
|
|
||||||
|
|
||||||
var/obj/item/rsf/M = new /obj/item/rsf(src)
|
|
||||||
M.stored_matter = 30
|
|
||||||
src.modules += M
|
|
||||||
|
|
||||||
src.modules += new /obj/item/reagent_containers/dropper/industrial(src)
|
|
||||||
|
|
||||||
var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src)
|
|
||||||
L.lit = 1
|
|
||||||
src.modules += L
|
|
||||||
|
|
||||||
src.modules += new /obj/item/tray/robotray(src)
|
|
||||||
src.modules += new /obj/item/reagent_containers/borghypo/service(src)
|
|
||||||
|
|
||||||
var/obj/item/dogborg/sleeper/compactor/honkborg/B = new /obj/item/dogborg/sleeper/compactor/honkborg(src)
|
|
||||||
src.modules += B
|
|
||||||
..()
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
//Modular command borg
|
|
||||||
//This restructures how borg additions are done to make them sane/modular/maintainable
|
|
||||||
//Also makes it easier to make new borgs
|
|
||||||
|
|
||||||
//Add ourselves to the borg list
|
|
||||||
/hook/startup/proc/Modular_Borg_init_Unity()
|
|
||||||
robot_modules["Command"] = /obj/item/robot_module/robot/chound //Add to module array
|
|
||||||
robot_module_types += "Command" //Add ourselves to global
|
|
||||||
return 1
|
|
||||||
|
|
||||||
//Create our list of known languages.
|
|
||||||
/obj/item/robot_module/robot/chound
|
|
||||||
languages = list(
|
|
||||||
LANGUAGE_SOL_COMMON = 1,
|
|
||||||
LANGUAGE_TRADEBAND = 1,
|
|
||||||
LANGUAGE_UNATHI = 1,
|
|
||||||
LANGUAGE_SIIK = 1,
|
|
||||||
LANGUAGE_SKRELLIAN = 1,
|
|
||||||
LANGUAGE_ROOTLOCAL = 0,
|
|
||||||
LANGUAGE_GUTTER = 0,
|
|
||||||
LANGUAGE_SCHECHI = 1,
|
|
||||||
LANGUAGE_EAL = 1,
|
|
||||||
LANGUAGE_SIGN = 0,
|
|
||||||
LANGUAGE_BIRDSONG = 1,
|
|
||||||
LANGUAGE_SAGARU = 1,
|
|
||||||
LANGUAGE_CANILUNZT = 1,
|
|
||||||
LANGUAGE_ECUREUILIAN= 1,
|
|
||||||
LANGUAGE_DAEMON = 1,
|
|
||||||
LANGUAGE_ENOCHIAN = 1,
|
|
||||||
LANGUAGE_DRUDAKAR = 1,
|
|
||||||
LANGUAGE_TAVAN = 1
|
|
||||||
)
|
|
||||||
|
|
||||||
//Build our Module
|
|
||||||
/obj/item/robot_module/robot/chound
|
|
||||||
name = "command robot module"
|
|
||||||
channels = list(
|
|
||||||
"Medical" = 1,
|
|
||||||
"Engineering" = 1,
|
|
||||||
"Security" = 1,
|
|
||||||
"Service" = 1,
|
|
||||||
"Supply" = 0,
|
|
||||||
"Science" = 1,
|
|
||||||
"Command" = 1,
|
|
||||||
"Explorer" = 0
|
|
||||||
)
|
|
||||||
pto_type = PTO_CIVILIAN
|
|
||||||
can_be_pushed = 0
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/chound/create_equipment(var/mob/living/silicon/robot/R)
|
|
||||||
src.modules += new /obj/item/pen/robopen(src)
|
|
||||||
src.modules += new /obj/item/form_printer(src)
|
|
||||||
src.modules += new /obj/item/gripper/paperwork(src)
|
|
||||||
src.modules += new /obj/item/hand_labeler(src)
|
|
||||||
src.modules += new /obj/item/stamp(src)
|
|
||||||
src.modules += new /obj/item/stamp/denied(src)
|
|
||||||
src.modules += new /obj/item/taskmanager(src)
|
|
||||||
src.emag += new /obj/item/stamp/chameleon(src)
|
|
||||||
src.emag += new /obj/item/pen/chameleon(src)
|
|
||||||
|
|
||||||
src.modules += new /obj/item/dogborg/sleeper/command(src)
|
|
||||||
src.emag += new /obj/item/dogborg/pounce(src)
|
|
||||||
..()
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
//Lets make this shit more sane-shark
|
|
||||||
//Modular Exploration borg
|
|
||||||
//This restructures how borg additions are done to make them sane/modular/maintainable
|
|
||||||
//Also makes it easier to make new borgs
|
|
||||||
//CHOMPedit: Moving this all to a modular file
|
|
||||||
/*
|
|
||||||
/hook/startup/proc/Modular_Borg_init_Exploration()
|
|
||||||
robot_modules["Exploration"] = /obj/item/robot_module/robot/exploration //add to array
|
|
||||||
robot_module_types += "Exploration" //Add to global list
|
|
||||||
return 1
|
|
||||||
|
|
||||||
//Explo doggos
|
|
||||||
/obj/item/robot_module/robot/exploration
|
|
||||||
name = "exploration robot module"
|
|
||||||
channels = list("Exploration" = 1)
|
|
||||||
languages = list(
|
|
||||||
LANGUAGE_SOL_COMMON = 1,
|
|
||||||
LANGUAGE_UNATHI = 1,
|
|
||||||
LANGUAGE_SIIK = 1,
|
|
||||||
LANGUAGE_AKHANI = 1,
|
|
||||||
LANGUAGE_SKRELLIAN = 1,
|
|
||||||
LANGUAGE_SKRELLIANFAR = 0,
|
|
||||||
LANGUAGE_ROOTLOCAL = 0,
|
|
||||||
LANGUAGE_TRADEBAND = 1,
|
|
||||||
LANGUAGE_GUTTER = 0,
|
|
||||||
LANGUAGE_SCHECHI = 1,
|
|
||||||
LANGUAGE_EAL = 1,
|
|
||||||
LANGUAGE_TERMINUS = 1,
|
|
||||||
LANGUAGE_SIGN = 0
|
|
||||||
)
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/exploration
|
|
||||||
can_be_pushed = 0
|
|
||||||
/obj/item/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R)
|
|
||||||
src.modules += new /obj/item/dogborg/sleeper/exploration(src)
|
|
||||||
src.modules += new /obj/item/gun/energy/robotic/phasegun(src)
|
|
||||||
src.modules += new /obj/item/cataloguer(src)
|
|
||||||
src.modules += new /obj/item/roller_holder(src)
|
|
||||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/flare(src)
|
|
||||||
|
|
||||||
src.emag += new /obj/item/dogborg/pounce(src)
|
|
||||||
|
|
||||||
..()
|
|
||||||
|
|
||||||
/obj/item/dogborg/sleeper/exploration //No need to inherit from the brig one, we cna direclty make a proper new one
|
|
||||||
name = "Store-Belly"
|
|
||||||
desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person."
|
|
||||||
icon_state = "sleeperlost"
|
|
||||||
injection_chems = null
|
|
||||||
stabilizer = TRUE
|
|
||||||
compactor = TRUE
|
|
||||||
max_item_count = 4
|
|
||||||
medsensor = FALSE
|
|
||||||
recycles = TRUE
|
|
||||||
|
|
||||||
/obj/item/gun/energy/taser/mounted/cyborg/flare
|
|
||||||
name = "flare gun"
|
|
||||||
desc = "A flare-gun"
|
|
||||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
|
||||||
fire_sound = 'sound/weapons/tablehit1.ogg'
|
|
||||||
*/
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
//Modular Standard borg hound edition
|
|
||||||
//This restructures how borg additions are done to make them sane/modular/maintainable
|
|
||||||
//Also makes it easier to make new borgs
|
|
||||||
|
|
||||||
//INCOMPLETE and not ready, no sprites other than tall and basically useless, also lacking a belly
|
|
||||||
|
|
||||||
//Add ourselves to the borg list
|
|
||||||
/hook/startup/proc/Modular_Borg_init_standardhound()
|
|
||||||
//robot_modules["Honk-Hound"] = /obj/item/robot_module/robot/clerical/honkborg - done in station_vr modular chomp for ordering reasons
|
|
||||||
robot_module_types += "Standard-Hound" //Add ourselves to global
|
|
||||||
return 1
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/standard/hound
|
|
||||||
name = "Standard-Hound"
|
|
||||||
sprites = list(
|
|
||||||
"MEKA" = list(SKIN_ICON_STATE = "mekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
|
||||||
"NIKO" = list(SKIN_ICON_STATE = "mmekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
|
||||||
"NIKA" = list(SKIN_ICON_STATE = "fmekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
|
||||||
"K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64)
|
|
||||||
)
|
|
||||||
|
|
||||||
can_be_pushed = 0
|
|
||||||
|
|
||||||
/obj/item/robot_module/robot/standard/hound/New(var/mob/living/silicon/robot/R)
|
|
||||||
..()
|
|
||||||
src.modules += new /obj/item/melee/baton/loaded(src)
|
|
||||||
src.modules += new /obj/item/tool/wrench/cyborg(src)
|
|
||||||
src.modules += new /obj/item/healthanalyzer(src)
|
|
||||||
src.emag += new /obj/item/melee/energy/sword(src)
|
|
||||||
|
|
||||||
var/datum/matter_synth/water = new /datum/matter_synth(500)
|
|
||||||
water.name = "Water reserves"
|
|
||||||
water.recharge_rate = 10
|
|
||||||
water.max_energy = 1000
|
|
||||||
R.water_res = water
|
|
||||||
synths += water
|
|
||||||
|
|
||||||
var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src)
|
|
||||||
T.water = water
|
|
||||||
src.modules += T
|
|
||||||
|
|
||||||
R.icon = 'modular_chomp/icons/mob/widerobot_ch.dmi'
|
|
||||||
R.wideborg_dept = 'modular_chomp/icons/mob/widerobot_ch.dmi'
|
|
||||||
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
|
||||||
R.ui_style_vr = TRUE
|
|
||||||
R.pixel_x = -16
|
|
||||||
R.old_x = -16
|
|
||||||
R.default_pixel_x = -16
|
|
||||||
R.dogborg = TRUE
|
|
||||||
R.vore_capacity = 1
|
|
||||||
R.vore_capacity_ex = list("stomach" = 1)
|
|
||||||
R.wideborg = TRUE
|
|
||||||
add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill) //CHOMPEdit TGPanel
|
|
||||||
add_verb(R,/mob/living/silicon/robot/proc/robot_mount) //CHOMPEdit TGPanel
|
|
||||||
add_verb(R,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel
|
|
||||||
add_verb(R,/mob/living/proc/shred_limb) //CHOMPEdit TGPanel
|
|
||||||
add_verb(R,/mob/living/silicon/robot/proc/rest_style) //CHOMPEdit TGPanel
|
|
||||||
..()
|
|
||||||
@@ -2,12 +2,15 @@ var/global/list/robot_modules = list(
|
|||||||
"Standard" = /obj/item/robot_module/robot/standard,
|
"Standard" = /obj/item/robot_module/robot/standard,
|
||||||
"Service" = /obj/item/robot_module/robot/clerical/butler,
|
"Service" = /obj/item/robot_module/robot/clerical/butler,
|
||||||
"Clerical" = /obj/item/robot_module/robot/clerical/general,
|
"Clerical" = /obj/item/robot_module/robot/clerical/general,
|
||||||
|
"Clown" = /obj/item/robot_module/robot/clerical/honkborg,
|
||||||
|
"Command" = /obj/item/robot_module/robot/chound,
|
||||||
"Research" = /obj/item/robot_module/robot/research,
|
"Research" = /obj/item/robot_module/robot/research,
|
||||||
"Miner" = /obj/item/robot_module/robot/miner,
|
"Miner" = /obj/item/robot_module/robot/miner,
|
||||||
"Crisis" = /obj/item/robot_module/robot/medical/crisis,
|
"Crisis" = /obj/item/robot_module/robot/medical/crisis,
|
||||||
// "Surgeon" = /obj/item/robot_module/robot/medical/surgeon, // CHOMPedit: Surgeon module removal.
|
// "Surgeon" = /obj/item/robot_module/robot/medical/surgeon, // CHOMPedit: Surgeon module removal.
|
||||||
"Security" = /obj/item/robot_module/robot/security/general,
|
"Security" = /obj/item/robot_module/robot/security/general,
|
||||||
"Combat" = /obj/item/robot_module/robot/security/combat,
|
"Combat" = /obj/item/robot_module/robot/security/combat,
|
||||||
|
"Exploration" = /obj/item/robot_module/robot/exploration,
|
||||||
"Engineering" = /obj/item/robot_module/robot/engineering,
|
"Engineering" = /obj/item/robot_module/robot/engineering,
|
||||||
"Janitor" = /obj/item/robot_module/robot/janitor,
|
"Janitor" = /obj/item/robot_module/robot/janitor,
|
||||||
"Gravekeeper" = /obj/item/robot_module/robot/gravekeeper,
|
"Gravekeeper" = /obj/item/robot_module/robot/gravekeeper,
|
||||||
@@ -252,7 +255,10 @@ var/global/list/robot_modules = list(
|
|||||||
supported_upgrades = list(/obj/item/borg/upgrade/restricted/bellycapupgrade)
|
supported_upgrades = list(/obj/item/borg/upgrade/restricted/bellycapupgrade)
|
||||||
|
|
||||||
/* CHOMPedit start: Removal of Surgeon module. *
|
/* CHOMPedit start: Removal of Surgeon module. *
|
||||||
|
//This is a constant back and forth debate. 11 years ago, the 'medical' borg was split into surgery and crisis.
|
||||||
|
//Two years ago(?), they were combined into Crisis elsewhere and the idea seems to be well appreciated.
|
||||||
|
//However, given this seems as though it will remain a hot topic for as long as SS13 exists, we are going to leave the surgeon module here in the event that we split them. Again.
|
||||||
|
//This also goes for the sprite datums. It's be a lot of work to 'clear' them of having surgery in their path just to have to split them again in 2-3 years.
|
||||||
/obj/item/robot_module/robot/medical/surgeon
|
/obj/item/robot_module/robot/medical/surgeon
|
||||||
name = "surgeon robot module"
|
name = "surgeon robot module"
|
||||||
|
|
||||||
@@ -340,7 +346,7 @@ var/global/list/robot_modules = list(
|
|||||||
src.modules += new /obj/item/gripper/no_use/organ(src)
|
src.modules += new /obj/item/gripper/no_use/organ(src)
|
||||||
src.modules += new /obj/item/gripper/medical(src)
|
src.modules += new /obj/item/gripper/medical(src)
|
||||||
src.modules += new /obj/item/shockpaddles/robot(src)
|
src.modules += new /obj/item/shockpaddles/robot(src)
|
||||||
// CHOMPedit start: Combining Surgeon and Crisis.
|
//Surgeon Modules below
|
||||||
src.modules += new /obj/item/autopsy_scanner(src)
|
src.modules += new /obj/item/autopsy_scanner(src)
|
||||||
src.modules += new /obj/item/surgical/scalpel/cyborg(src)
|
src.modules += new /obj/item/surgical/scalpel/cyborg(src)
|
||||||
src.modules += new /obj/item/surgical/hemostat/cyborg(src)
|
src.modules += new /obj/item/surgical/hemostat/cyborg(src)
|
||||||
@@ -352,26 +358,24 @@ var/global/list/robot_modules = list(
|
|||||||
src.modules += new /obj/item/surgical/circular_saw/cyborg(src)
|
src.modules += new /obj/item/surgical/circular_saw/cyborg(src)
|
||||||
src.modules += new /obj/item/surgical/surgicaldrill/cyborg(src)
|
src.modules += new /obj/item/surgical/surgicaldrill/cyborg(src)
|
||||||
src.modules += new /obj/item/surgical/bioregen/cyborg(src)
|
src.modules += new /obj/item/surgical/bioregen/cyborg(src)
|
||||||
// CHOMPedit end: Combining Surgeon and Crisis.
|
//Surgeon Modules End
|
||||||
src.modules += new /obj/item/inflatable_dispenser/robot(src)
|
src.modules += new /obj/item/inflatable_dispenser/robot(src)
|
||||||
src.modules += new /obj/item/holosign_creator/medical(src) //CHOMPAdd
|
src.modules += new /obj/item/holosign_creator/medical(src) //Re-enable after Guti's PR.
|
||||||
var/obj/item/reagent_containers/spray/PS = new /obj/item/reagent_containers/spray(src)
|
var/obj/item/reagent_containers/spray/PS = new /obj/item/reagent_containers/spray(src)
|
||||||
src.emag += PS
|
src.emag += PS
|
||||||
PS.reagents.add_reagent(REAGENT_ID_PACID, 250)
|
PS.reagents.add_reagent(REAGENT_ID_PACID, 250)
|
||||||
PS.name = "Polyacid spray"
|
PS.name = "Polyacid spray"
|
||||||
|
|
||||||
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(30000) // CHOMPedit: Increased capacity.
|
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(30000)
|
||||||
synths += medicine
|
synths += medicine
|
||||||
|
|
||||||
var/obj/item/stack/medical/advanced/clotting/C = new (src) // CHOMPedit: Clotting kit from medhound.
|
var/obj/item/stack/medical/advanced/clotting/C = new (src)
|
||||||
var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src)
|
var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src)
|
||||||
var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src)
|
var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||||
var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src)
|
var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src)
|
||||||
// CHOMPedit start: Clotting kit from medhound.
|
|
||||||
C.uses_charge = 1
|
C.uses_charge = 1
|
||||||
C.charge_costs = list(5000)
|
C.charge_costs = list(5000)
|
||||||
C.synths = list(medicine)
|
C.synths = list(medicine)
|
||||||
// CHOMPedit end: Clotting kit from medhound.
|
|
||||||
O.uses_charge = 1
|
O.uses_charge = 1
|
||||||
O.charge_costs = list(1000)
|
O.charge_costs = list(1000)
|
||||||
O.synths = list(medicine)
|
O.synths = list(medicine)
|
||||||
@@ -384,7 +388,7 @@ var/global/list/robot_modules = list(
|
|||||||
src.modules += O
|
src.modules += O
|
||||||
src.modules += B
|
src.modules += B
|
||||||
src.modules += S
|
src.modules += S
|
||||||
src.modules += C //CHOMPEdit - AND ACTUALLY ADD IT TO THE MODULES LIST
|
src.modules += C
|
||||||
|
|
||||||
src.modules += new /obj/item/dogborg/sleeper(src)
|
src.modules += new /obj/item/dogborg/sleeper(src)
|
||||||
src.emag += new /obj/item/dogborg/pounce(src) //Pounce
|
src.emag += new /obj/item/dogborg/pounce(src) //Pounce
|
||||||
@@ -697,6 +701,42 @@ var/global/list/robot_modules = list(
|
|||||||
if(PB)
|
if(PB)
|
||||||
PB.reagents.add_reagent(REAGENT_ID_BEER2, 2 * amount)
|
PB.reagents.add_reagent(REAGENT_ID_BEER2, 2 * amount)
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/clerical/honkborg
|
||||||
|
name = "clown robot module"
|
||||||
|
channels = list("Service" = 1,
|
||||||
|
"Entertainment" = 1)
|
||||||
|
pto_type = PTO_CIVILIAN
|
||||||
|
can_be_pushed = 0
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/clerical/honkborg/create_equipment(var/mob/living/silicon/robot/R)
|
||||||
|
src.modules += new /obj/item/gripper/service(src)
|
||||||
|
src.modules += new /obj/item/reagent_containers/glass/bucket(src)
|
||||||
|
src.modules += new /obj/item/material/minihoe(src)
|
||||||
|
src.modules += new /obj/item/analyzer/plant_analyzer(src)
|
||||||
|
src.modules += new /obj/item/storage/bag/serviceborg(src)
|
||||||
|
src.modules += new /obj/item/robot_harvester(src)
|
||||||
|
src.modules += new /obj/item/multitool(src)
|
||||||
|
src.modules += new /obj/item/dogborg/pounce(src)
|
||||||
|
src.modules += new /obj/item/bikehorn(src)
|
||||||
|
src.modules += new /obj/item/gun/launcher/confetti_cannon/robot(src)
|
||||||
|
|
||||||
|
var/obj/item/rsf/M = new /obj/item/rsf(src)
|
||||||
|
M.stored_matter = 30
|
||||||
|
src.modules += M
|
||||||
|
|
||||||
|
src.modules += new /obj/item/reagent_containers/dropper/industrial(src)
|
||||||
|
|
||||||
|
var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src)
|
||||||
|
L.lit = 1
|
||||||
|
src.modules += L
|
||||||
|
|
||||||
|
src.modules += new /obj/item/tray/robotray(src)
|
||||||
|
src.modules += new /obj/item/reagent_containers/borghypo/service(src)
|
||||||
|
|
||||||
|
var/obj/item/dogborg/sleeper/compactor/honkborg/B = new /obj/item/dogborg/sleeper/compactor/honkborg(src)
|
||||||
|
src.modules += B
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/item/robot_module/robot/clerical/general
|
/obj/item/robot_module/robot/clerical/general
|
||||||
name = "clerical robot module"
|
name = "clerical robot module"
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
var/has_eye_sprites = TRUE
|
var/has_eye_sprites = TRUE
|
||||||
var/has_eye_light_sprites = FALSE
|
var/has_eye_light_sprites = FALSE
|
||||||
var/has_robotdecal_sprites = FALSE
|
|
||||||
var/has_custom_open_sprites = FALSE
|
var/has_custom_open_sprites = FALSE
|
||||||
var/has_vore_belly_sprites = FALSE
|
var/has_vore_belly_sprites = FALSE
|
||||||
var/has_vore_belly_resting_sprites = FALSE
|
var/has_vore_belly_resting_sprites = FALSE
|
||||||
var/has_sleeper_light_indicator = FALSE //Moved here because there's no reason lights should be limited to just medical borgs. Or redefined every time they ARE used.
|
var/has_sleeper_light_indicator = FALSE //Moved here because there's no reason lights should be limited to just medical borgs. Or redefined every time they ARE used.
|
||||||
|
var/has_vore_struggle_sprite = FALSE
|
||||||
var/max_belly_size = 1 //If larger bellies are made, set this to the value of the largest size
|
var/max_belly_size = 1 //If larger bellies are made, set this to the value of the largest size
|
||||||
var/has_rest_sprites = FALSE
|
var/has_rest_sprites = FALSE
|
||||||
var/list/rest_sprite_options
|
var/list/rest_sprite_options
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
var/whitelist_charname
|
var/whitelist_charname
|
||||||
var/list/belly_light_list = list() // Support multiple sleepers with r/g light "sleeper"
|
var/list/belly_light_list = list() // Support multiple sleepers with r/g light "sleeper"
|
||||||
var/list/belly_capacity_list = list() //Support multiple bellies with multiple sizes, default: "sleeper" = 1
|
var/list/belly_capacity_list = list() //Support multiple bellies with multiple sizes, default: "sleeper" = 1
|
||||||
|
var/list/sprite_decals = list() // Allow extra decals
|
||||||
|
|
||||||
/// Determines if the borg has the proper flags to show an overlay.
|
/// Determines if the borg has the proper flags to show an overlay.
|
||||||
/datum/robot_sprite/proc/sprite_flag_check(var/flag_to_check)
|
/datum/robot_sprite/proc/sprite_flag_check(var/flag_to_check)
|
||||||
@@ -132,11 +133,18 @@
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/robot_sprite/proc/get_robotdecal_overlay(var/mob/living/silicon/robot/ourborg)
|
/datum/robot_sprite/proc/get_robotdecal_overlay(var/mob/living/silicon/robot/ourborg, var/type)
|
||||||
if(!(ourborg.resting && has_robotdecal_sprites))
|
if(LAZYLEN(sprite_decals))
|
||||||
return "[sprite_icon_state]-decals"
|
if(!ourborg.resting)
|
||||||
else
|
return "[sprite_icon_state]-[type]"
|
||||||
return
|
switch(ourborg.rest_style)
|
||||||
|
if("Sit")
|
||||||
|
return "[sprite_icon_state]-[type]-sit"
|
||||||
|
if("Bellyup")
|
||||||
|
return "[sprite_icon_state]-[type]-bellyup"
|
||||||
|
else
|
||||||
|
return "[sprite_icon_state]-[type]-rest"
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/proc/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
|
/datum/robot_sprite/proc/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
|
||||||
if(!(ourborg.rest_style in rest_sprite_options))
|
if(!(ourborg.rest_style in rest_sprite_options))
|
||||||
|
|||||||
@@ -42,9 +42,10 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2, "throat" =2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE
|
sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE
|
||||||
|
|
||||||
/// Engineering
|
/// Engineering
|
||||||
@@ -56,6 +57,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -71,6 +73,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -85,6 +88,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -100,6 +104,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -114,6 +119,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -128,6 +134,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2)
|
belly_capacity_list = list("sleeper" = 2)
|
||||||
@@ -228,7 +235,6 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
|
||||||
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_service.dmi'
|
sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_service.dmi'
|
||||||
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
rest_sprite_options = list("Default", "Bellyup", "Sit")
|
||||||
belly_capacity_list = list("sleeper" = 2, "throat" =2)
|
belly_capacity_list = list("sleeper" = 2, "throat" =2)
|
||||||
@@ -252,7 +258,7 @@
|
|||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_sleeper_light_indicator = FALSE
|
has_sleeper_light_indicator = FALSE
|
||||||
has_vore_belly_resting_sprites = TRUE
|
has_vore_belly_resting_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
is_whitelisted = FALSE //Putting this here as a declaration that it is NOT whitelisted.
|
is_whitelisted = FALSE //Putting this here as a declaration that it is NOT whitelisted.
|
||||||
// whitelist_ckey = "cameron653" //The owner of the character.
|
// whitelist_ckey = "cameron653" //The owner of the character.
|
||||||
// There is only one version of this borg, so it gets all the departments.
|
// There is only one version of this borg, so it gets all the departments.
|
||||||
|
|||||||
@@ -68,13 +68,15 @@
|
|||||||
sprite_icon_state = "noble"
|
sprite_icon_state = "noble"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/civilian/worm
|
/datum/robot_sprite/civilian/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-service" //CHOMPEdit
|
sprite_icon_state = "worm-service"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/civilian/uptall
|
/datum/robot_sprite/civilian/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -311,23 +313,30 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/service/dullahanv3
|
/datum/robot_sprite/dogborg/tall/service/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahanserv"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_serv.dmi'
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/service/dullahanv3/basic
|
/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt
|
||||||
name = "Dullahan service v3"
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahanserv_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt2
|
||||||
|
name = "Dullahan v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/service.dmi'
|
||||||
sprite_icon_state = "dullahanservice"
|
sprite_icon_state = "dullahanservice"
|
||||||
has_vore_belly_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
has_robotdecal_sprites = TRUE
|
|
||||||
rest_sprite_options = list("Default", "sit")
|
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/service/dullahanv3/barista
|
/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt3
|
||||||
name = "Dullahan matcha v3"
|
name = "Dullahan v4 matcha"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/barista.dmi'
|
||||||
sprite_icon_state = "dullahanbarista"
|
sprite_icon_state = "dullahanbarista"
|
||||||
has_vore_belly_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
has_robotdecal_sprites = TRUE
|
|
||||||
rest_sprite_options = list("Default", "sit")
|
|
||||||
|
|
||||||
// Clerical
|
// Clerical
|
||||||
|
|
||||||
@@ -404,3 +413,76 @@
|
|||||||
|
|
||||||
// None yet
|
// None yet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/clown
|
||||||
|
module_type = "Clown"
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/clown/vale
|
||||||
|
name = "Honkhound V2"
|
||||||
|
sprite_icon_state = "honkborg"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/clown
|
||||||
|
module_type = "Clown"
|
||||||
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/clown/k4t
|
||||||
|
name = "K4T"
|
||||||
|
sprite_icon_state = "k4tclown"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/clown/dullahan/clown
|
||||||
|
name = "Dullahan Clown"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_clown.dmi'
|
||||||
|
sprite_icon_state = "dullahanclown"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/clown/stoat
|
||||||
|
name = "ST-04t"
|
||||||
|
sprite_icon = 'icons/mob/robot/stoatborg.dmi'
|
||||||
|
sprite_icon_state = "stoatclown"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/service/valech
|
||||||
|
name = "ServicehoundV2 - Alt"
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
sprite_icon_state = "servborg"
|
||||||
|
rest_sprite_options = list("Default")
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/service/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixserv"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/service/mekaserve_alt
|
||||||
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
|
name = "MEKA Alt"
|
||||||
|
pixel_x = 0
|
||||||
|
sprite_icon_state = "mekaserve_alt"
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/service/smolraptorservicesprite
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_serv.dmi'
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/service/smolraptorservicesprite/smolraptorserv
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -49,12 +49,15 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/combat/worm
|
/datum/robot_sprite/combat/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-combat" //CHOMPEdit
|
sprite_icon_state = "worm-combat"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/combat/uptall
|
/datum/robot_sprite/combat/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -150,3 +153,59 @@
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/combat/tall
|
||||||
|
name = "MEKA"
|
||||||
|
sprite_icon_state = "mekasyndi"
|
||||||
|
module_type = "Combat"
|
||||||
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/combat/tall/mmeka
|
||||||
|
name = "NIKO"
|
||||||
|
sprite_icon_state = "mmekasyndi"
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/combat/tall/fmeka
|
||||||
|
name = "NIKA"
|
||||||
|
sprite_icon_state = "fmekasyndi"
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/combat/tall/k4t
|
||||||
|
name = "K4T"
|
||||||
|
sprite_icon_state = "k4tsyndi"
|
||||||
|
has_vore_belly_sprites = FALSE
|
||||||
|
|
||||||
|
//Using our own category wide here not to interfere with upstream in case they add wide sprites under just dogborg.
|
||||||
|
/datum/robot_sprite/dogborg/wide/combat
|
||||||
|
module_type = "Combat"
|
||||||
|
has_custom_equipment_sprites = TRUE
|
||||||
|
has_eye_sprites = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/wide/combat/blade/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||||
|
if(!has_custom_equipment_sprites)
|
||||||
|
return
|
||||||
|
|
||||||
|
..()
|
||||||
|
|
||||||
|
var/obj/item/melee/robotic/blade/CBB = locate() in module.modules
|
||||||
|
if(CBB)
|
||||||
|
CBB.name = "combat saw"
|
||||||
|
CBB.desc = "A high frequency blade attached to the end of a cyborg's tail. It appears to be extremely sharp."
|
||||||
|
var/obj/item/melee/robotic/borg_combat_shocker/BCS = locate() in module.modules
|
||||||
|
if(BCS)
|
||||||
|
BCS.name = "combat jaws"
|
||||||
|
BCS.desc = "Shockingly chompy!"
|
||||||
|
BCS.icon_state = "ertjaws"
|
||||||
|
BCS.hitsound = 'sound/weapons/bite.ogg'
|
||||||
|
BCS.attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced")
|
||||||
|
BCS.dogborg = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/wide/combat/blade
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
name = "Blade"
|
||||||
|
sprite_icon_state = "blade"
|
||||||
|
sprite_hud_icon_state = "ert"
|
||||||
|
rest_sprite_options = list()
|
||||||
|
sprite_flags = ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_DAGGER_SPRITE
|
||||||
|
|||||||
113
code/modules/mob/living/silicon/robot/sprites/command.dm
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
/obj/item/robot_module/robot/chound
|
||||||
|
languages = list(
|
||||||
|
LANGUAGE_SOL_COMMON = 1,
|
||||||
|
LANGUAGE_TRADEBAND = 1,
|
||||||
|
LANGUAGE_UNATHI = 1,
|
||||||
|
LANGUAGE_SIIK = 1,
|
||||||
|
LANGUAGE_SKRELLIAN = 1,
|
||||||
|
LANGUAGE_ROOTLOCAL = 0,
|
||||||
|
LANGUAGE_GUTTER = 0,
|
||||||
|
LANGUAGE_SCHECHI = 1,
|
||||||
|
LANGUAGE_EAL = 1,
|
||||||
|
LANGUAGE_SIGN = 0,
|
||||||
|
LANGUAGE_BIRDSONG = 1,
|
||||||
|
LANGUAGE_SAGARU = 1,
|
||||||
|
LANGUAGE_CANILUNZT = 1,
|
||||||
|
LANGUAGE_ECUREUILIAN= 1,
|
||||||
|
LANGUAGE_DAEMON = 1,
|
||||||
|
LANGUAGE_ENOCHIAN = 1,
|
||||||
|
LANGUAGE_DRUDAKAR = 1,
|
||||||
|
LANGUAGE_TAVAN = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
//Build our Module
|
||||||
|
/obj/item/robot_module/robot/chound
|
||||||
|
name = "command robot module"
|
||||||
|
channels = list(
|
||||||
|
"Medical" = 1,
|
||||||
|
"Engineering" = 1,
|
||||||
|
"Security" = 1,
|
||||||
|
"Service" = 1,
|
||||||
|
"Supply" = 0,
|
||||||
|
"Science" = 1,
|
||||||
|
"Command" = 1,
|
||||||
|
"Explorer" = 0
|
||||||
|
)
|
||||||
|
pto_type = PTO_CIVILIAN
|
||||||
|
can_be_pushed = 0
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/chound/create_equipment(var/mob/living/silicon/robot/R)
|
||||||
|
src.modules += new /obj/item/pen/robopen(src)
|
||||||
|
src.modules += new /obj/item/form_printer(src)
|
||||||
|
src.modules += new /obj/item/gripper/paperwork(src)
|
||||||
|
src.modules += new /obj/item/hand_labeler(src)
|
||||||
|
src.modules += new /obj/item/stamp(src)
|
||||||
|
src.modules += new /obj/item/stamp/denied(src)
|
||||||
|
src.modules += new /obj/item/taskmanager(src) //Needs to be ported over. //CHOMPEDIT ENABLE
|
||||||
|
src.emag += new /obj/item/stamp/chameleon(src)
|
||||||
|
src.emag += new /obj/item/pen/chameleon(src)
|
||||||
|
|
||||||
|
src.modules += new /obj/item/dogborg/sleeper/command(src)
|
||||||
|
src.emag += new /obj/item/dogborg/pounce(src)
|
||||||
|
..()
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/command
|
||||||
|
name = "Commandhound V2"
|
||||||
|
sprite_icon_state = "kcom"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
module_type = "Command"
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/command/borgi
|
||||||
|
name = "Borgi"
|
||||||
|
sprite_icon_state = "borgi"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/command
|
||||||
|
module_type = "Command"
|
||||||
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/raptor/command
|
||||||
|
module_type = "Command"
|
||||||
|
sprite_icon = 'icons/mob/robot/raptor.dmi'
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/raptor/command/raptor
|
||||||
|
name = "Raptor"
|
||||||
|
sprite_icon_state = "chraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_custom_equipment_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/command/meka
|
||||||
|
name = "MEKA"
|
||||||
|
sprite_icon_state = "mekaunity"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/command/mmeka
|
||||||
|
name = "NIKO"
|
||||||
|
sprite_icon_state = "mmekaunity"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/command/fmeka
|
||||||
|
name = "NIKA"
|
||||||
|
sprite_icon_state = "fmekaunity"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/command/smolraptorcommand
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_cc.dmi'
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
@@ -105,13 +105,16 @@
|
|||||||
sprite_icon_state = "zoomba"
|
sprite_icon_state = "zoomba"
|
||||||
has_dead_sprite = TRUE
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/engineering/worm
|
/datum/robot_sprite/engineering/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-engineering" //CHOMPEdit
|
sprite_icon_state = "worm-engineering"
|
||||||
has_custom_open_sprites = TRUE
|
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/engineering/uptall
|
/datum/robot_sprite/engineering/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -217,13 +220,38 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/engineering/dullahanv3
|
/datum/robot_sprite/dogborg/tall/engineering/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan v1"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahaneng"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_eng.dmi'
|
||||||
/datum/robot_sprite/dogborg/tall/engineering/dullahanv3/engineerdully
|
rest_sprite_options = list("Default", "Sit")
|
||||||
name = "Dullahan engineer v3"
|
has_eye_light_sprites = TRUE
|
||||||
sprite_icon_state = "dullahanengineer"
|
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
pixel_x = 0
|
||||||
rest_sprite_options = list("Default", "sit")
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv2
|
||||||
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahaneng_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv3
|
||||||
|
name = "Dullahan v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/engineer.dmi'
|
||||||
|
sprite_icon_state = "dullahanengineer"
|
||||||
|
sprite_decals = list("decals")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/engineering/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixengi"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/engineering/smolraptorengineeringsprite
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_eng.dmi'
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
sprite_hud_icon_state = "medihound"
|
sprite_hud_icon_state = "medihound"
|
||||||
|
|
||||||
/datum/robot_sprite/fluff/argonne/surgical
|
/datum/robot_sprite/fluff/argonne/surgical
|
||||||
module_type = "Surgeon"
|
module_type = "Crisis"
|
||||||
|
|
||||||
sprite_icon_state = "argonne-russ-surg"
|
sprite_icon_state = "argonne-russ-surg"
|
||||||
sprite_hud_icon_state = "medihound"
|
sprite_hud_icon_state = "medihound"
|
||||||
|
|||||||
@@ -96,11 +96,13 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/janitor/worm
|
/datum/robot_sprite/janitor/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-janitor" //CHOMPEdit
|
sprite_icon_state = "worm-janitor"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/janitor/uptall
|
/datum/robot_sprite/janitor/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -202,13 +204,48 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/janitor/dullahanv3
|
/datum/robot_sprite/dogborg/tall/janitor/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan v1"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahanjani"
|
||||||
|
module_type = "Janitor"
|
||||||
/datum/robot_sprite/dogborg/tall/janitor/dullahanv3/janitordully
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_jani.dmi'
|
||||||
name = "Dullahan janitor v3"
|
has_eye_light_sprites = TRUE
|
||||||
sprite_icon_state = "dullahanjanitor"
|
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
rest_sprite_options = list("Default", "Sit")
|
||||||
rest_sprite_options = list("Default", "sit")
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt
|
||||||
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahanjani_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt2
|
||||||
|
name = "Dullahan v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/janitor.dmi'
|
||||||
|
sprite_icon_state = "dullahanjanitor"
|
||||||
|
sprite_decals = list("decals")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/janitor/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixjani"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/smolraptorjanitorsprite
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_jani.dmi'
|
||||||
|
module_type = "Janitor"
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/janitor/possum
|
||||||
|
name = "0-P0SSm"
|
||||||
|
sprite_icon = 'icons/mob/robot/possumborg.dmi'
|
||||||
|
sprite_icon_state = "possjani"
|
||||||
|
//has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|||||||
@@ -73,13 +73,14 @@
|
|||||||
sprite_icon_state = "noble"
|
sprite_icon_state = "noble"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/medical/worm
|
/datum/robot_sprite/surgical/worm
|
||||||
name = "W02M - Crisis" //CHOMPEdit
|
name = "W02M - Surgical"
|
||||||
sprite_icon_state = "worm-crisis" //CHOMPEdit
|
sprite_icon_state = "worm-surgeon"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
// Wide/dogborg sprites
|
// Wide/dogborg sprites
|
||||||
/*
|
/*
|
||||||
@@ -140,76 +141,77 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/medical/dullahanv3
|
/datum/robot_sprite/dogborg/tall/crisis/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahanmed"
|
||||||
|
module_type = "Crisis"
|
||||||
/datum/robot_sprite/dogborg/tall/medical/dullahanv3/medicaldully
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_med.dmi'
|
||||||
name = "Dullahan medical v3"
|
has_eye_light_sprites = TRUE
|
||||||
sprite_icon_state = "dullahanmedical"
|
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
rest_sprite_options = list("Default", "Sit")
|
||||||
rest_sprite_options = list("Default", "sit")
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/crisis/dullahan/crisisalt
|
||||||
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahanmed_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/medical/dullahan/crisisalt2
|
||||||
|
name = "Dullahan medical v3"
|
||||||
|
sprite_decals = list("decals")
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/medical.dmi'
|
||||||
|
sprite_icon_state = "dullahanmedical"
|
||||||
|
|
||||||
// Surgeon
|
// Surgeon
|
||||||
|
|
||||||
// Regular sprites
|
// Regular sprites
|
||||||
|
|
||||||
/datum/robot_sprite/surgical
|
/datum/robot_sprite/surgical
|
||||||
module_type = "Surgeon"
|
module_type = "Crisis"
|
||||||
sprite_icon = 'icons/mob/robot/surgical.dmi'
|
sprite_icon = 'icons/mob/robot/surgical.dmi'
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/toiletbot
|
/datum/robot_sprite/surgical/toiletbot
|
||||||
name = "Telemachus"
|
name = "Telemachus - Surgical"
|
||||||
sprite_icon_state = "toiletbot"
|
sprite_icon_state = "toiletbot"
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/sleek
|
/datum/robot_sprite/surgical/sleek
|
||||||
name = "WTOperator"
|
name = "WTOperator - Surgical"
|
||||||
sprite_icon_state = "sleek"
|
sprite_icon_state = "sleek"
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/drone
|
/datum/robot_sprite/surgical/drone
|
||||||
name = "AG Model"
|
name = "AG Model - Surgical"
|
||||||
sprite_icon_state = "drone"
|
sprite_icon_state = "drone"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/glitterfly
|
/datum/robot_sprite/surgical/glitterfly
|
||||||
name = "Pyralis"
|
name = "Pyralis - Surgical"
|
||||||
sprite_icon_state = "glitterfly"
|
sprite_icon_state = "glitterfly"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/decapod
|
/datum/robot_sprite/surgical/decapod
|
||||||
name = "Decapod"
|
name = "Decapod - Surgical"
|
||||||
sprite_icon_state = "decapod"
|
sprite_icon_state = "decapod"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/pneuma
|
/datum/robot_sprite/surgical/pneuma
|
||||||
name = "Pneuma"
|
name = "Pneum - Surgical"
|
||||||
sprite_icon_state = "pneuma"
|
sprite_icon_state = "pneuma"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/zoomba
|
/datum/robot_sprite/surgical/zoomba
|
||||||
name = "ZOOM-BA"
|
name = "ZOOM-BA - Surgical"
|
||||||
sprite_icon_state = "zoomba"
|
sprite_icon_state = "zoomba"
|
||||||
has_dead_sprite = TRUE
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/surgical/uptall
|
/datum/robot_sprite/surgical/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid - Surgical"
|
||||||
sprite_icon_state = "uptall"
|
sprite_icon_state = "uptall"
|
||||||
|
|
||||||
// Wide/dogborg sprites
|
// Wide/dogborg sprites
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/surgical
|
/datum/robot_sprite/dogborg/surgical
|
||||||
module_type = "Surgeon"
|
module_type = "Crisis"
|
||||||
sprite_icon = 'icons/mob/robot/surgical_wide.dmi'
|
sprite_icon = 'icons/mob/robot/surgical_wide.dmi'
|
||||||
|
|
||||||
/* //Handled by the normal belly code now.
|
|
||||||
/datum/robot_sprite/dogborg/surgical/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
|
|
||||||
if(has_sleeper_light_indicator)
|
|
||||||
if(ourborg.sleeper_state == 2 && !(ourborg.vore_selected?.silicon_belly_overlay_preference == "Vorebelly")) return "[sprite_icon_state]-sleeper_g"
|
|
||||||
else return "[sprite_icon_state]-sleeper_r"
|
|
||||||
else
|
|
||||||
return ..()
|
|
||||||
*/
|
|
||||||
/datum/robot_sprite/dogborg/surgical/do_equipment_glamour(var/obj/item/robot_module/module)
|
/datum/robot_sprite/dogborg/surgical/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||||
if(!has_custom_equipment_sprites)
|
if(!has_custom_equipment_sprites)
|
||||||
return
|
return
|
||||||
@@ -232,7 +234,7 @@
|
|||||||
has_sleeper_light_indicator = TRUE
|
has_sleeper_light_indicator = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/surgical/borgi
|
/datum/robot_sprite/dogborg/surgical/borgi
|
||||||
name = "Borgi"
|
name = "Borgi - Surgical"
|
||||||
sprite_icon_state = "borgi"
|
sprite_icon_state = "borgi"
|
||||||
sprite_hud_icon_state = "medihound"
|
sprite_hud_icon_state = "medihound"
|
||||||
has_eye_sprites = FALSE
|
has_eye_sprites = FALSE
|
||||||
@@ -240,13 +242,13 @@
|
|||||||
has_dead_sprite_overlay = FALSE
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/surgical/drake
|
/datum/robot_sprite/dogborg/surgical/drake
|
||||||
name = "Drake"
|
name = "Drake - Surgical"
|
||||||
sprite_icon_state = "drake"
|
sprite_icon_state = "drake"
|
||||||
|
|
||||||
// Tall sprites
|
// Tall sprites
|
||||||
//CHOMPNote -- many of the lines in this is overriden in modular
|
//CHOMPNote -- many of the lines in this is overriden in modular
|
||||||
/datum/robot_sprite/dogborg/tall/surgical
|
/datum/robot_sprite/dogborg/tall/surgical
|
||||||
module_type = "Surgeon"
|
module_type = "Crisis"
|
||||||
sprite_icon = 'icons/mob/robot/surgical_large.dmi'
|
sprite_icon = 'icons/mob/robot/surgical_large.dmi'
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/surgical/do_equipment_glamour(var/obj/item/robot_module/module)
|
/datum/robot_sprite/dogborg/tall/surgical/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||||
@@ -264,7 +266,7 @@
|
|||||||
SP.attack_verb = list("batted", "pawed", "bopped", "whapped")
|
SP.attack_verb = list("batted", "pawed", "bopped", "whapped")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/surgical/raptor
|
/datum/robot_sprite/dogborg/tall/surgical/raptor
|
||||||
name = "Raptor V-4"
|
name = "Raptor V-4 - Surgical"
|
||||||
sprite_icon_state = "raptor"
|
sprite_icon_state = "raptor"
|
||||||
has_custom_equipment_sprites = TRUE
|
has_custom_equipment_sprites = TRUE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
@@ -279,11 +281,11 @@
|
|||||||
sprite_icon = 'icons/mob/robot/crisis.dmi'
|
sprite_icon = 'icons/mob/robot/crisis.dmi'
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/toiletbot
|
/datum/robot_sprite/crisis/toiletbot
|
||||||
name = "Telemachus"
|
name = "Telemachus - Crisis"
|
||||||
sprite_icon_state = "toiletbot"
|
sprite_icon_state = "toiletbot"
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/sleek
|
/datum/robot_sprite/crisis/sleek
|
||||||
name = "WTOperator"
|
name = "WTOperator - Crisis"
|
||||||
sprite_icon_state = "sleek"
|
sprite_icon_state = "sleek"
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/drone
|
/datum/robot_sprite/crisis/drone
|
||||||
@@ -297,27 +299,27 @@
|
|||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/glitterfly
|
/datum/robot_sprite/crisis/glitterfly
|
||||||
name = "Pyralis"
|
name = "Pyralis - Crisis"
|
||||||
sprite_icon_state = "glitterfly"
|
sprite_icon_state = "glitterfly"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/decapod
|
/datum/robot_sprite/crisis/decapod
|
||||||
name = "Decapod"
|
name = "Decapod - Crisis"
|
||||||
sprite_icon_state = "decapod"
|
sprite_icon_state = "decapod"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/pneuma
|
/datum/robot_sprite/crisis/pneuma
|
||||||
name = "Pneuma"
|
name = "Pneuma - Crisis"
|
||||||
sprite_icon_state = "pneuma"
|
sprite_icon_state = "pneuma"
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/zoomba
|
/datum/robot_sprite/crisis/zoomba
|
||||||
name = "ZOOM-BA"
|
name = "ZOOM-BA - Crisis"
|
||||||
sprite_icon_state = "zoomba"
|
sprite_icon_state = "zoomba"
|
||||||
has_dead_sprite = TRUE
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/crisis/uptall
|
/datum/robot_sprite/crisis/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid - Crisis"
|
||||||
sprite_icon_state = "uptall"
|
sprite_icon_state = "uptall"
|
||||||
|
|
||||||
// Wide/dogborg sprites
|
// Wide/dogborg sprites
|
||||||
@@ -370,7 +372,7 @@
|
|||||||
has_sleeper_light_indicator = TRUE
|
has_sleeper_light_indicator = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/crisis/borgi
|
/datum/robot_sprite/dogborg/crisis/borgi
|
||||||
name = "Borgi"
|
name = "Borgi - Crisis"
|
||||||
sprite_icon_state = "borgi"
|
sprite_icon_state = "borgi"
|
||||||
sprite_hud_icon_state = "medihound"
|
sprite_hud_icon_state = "medihound"
|
||||||
has_eye_sprites = FALSE
|
has_eye_sprites = FALSE
|
||||||
@@ -378,7 +380,7 @@
|
|||||||
has_dead_sprite_overlay = FALSE
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/crisis/drake
|
/datum/robot_sprite/dogborg/crisis/drake
|
||||||
name = "Drake"
|
name = "Drake - Crisis"
|
||||||
sprite_icon_state = "drake"
|
sprite_icon_state = "drake"
|
||||||
|
|
||||||
// Tall sprites
|
// Tall sprites
|
||||||
@@ -402,7 +404,49 @@
|
|||||||
SP.attack_verb = list("batted", "pawed", "bopped", "whapped")
|
SP.attack_verb = list("batted", "pawed", "bopped", "whapped")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/crisis/raptor
|
/datum/robot_sprite/dogborg/tall/crisis/raptor
|
||||||
name = "Raptor V-4"
|
name = "Raptor V-4 - Crisis"
|
||||||
sprite_icon_state = "raptor"
|
sprite_icon_state = "raptor"
|
||||||
has_custom_equipment_sprites = TRUE
|
has_custom_equipment_sprites = TRUE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/crisis/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixmed"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_sleeper_light_indicator = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
//Medical into Crisis type merge
|
||||||
|
/datum/robot_sprite/surgical
|
||||||
|
module_type = "Crisis"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/surgical
|
||||||
|
module_type = "Crisis"
|
||||||
|
|
||||||
|
//Added sprites
|
||||||
|
/datum/robot_sprite/dogborg/crisis/vale2
|
||||||
|
name = "Mediborg Model V-3"
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
sprite_icon_state = "vale2"
|
||||||
|
sprite_hud_icon_state = "medihound"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_sleeper_light_indicator = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/crisis/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixmed"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_sleeper_light_indicator = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/crisis/smolraptor
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_med.dmi'
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -95,11 +95,12 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/mining/worm
|
/datum/robot_sprite/mining/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-miner" //CHOMPEdit
|
sprite_icon_state = "worm-miner"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/mining/uptall
|
/datum/robot_sprite/mining/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -187,13 +188,108 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/mining/dullahanv3
|
/datum/robot_sprite/dogborg/tall/mining/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan Mining unit"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahanmine"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_mine.dmi'
|
||||||
/datum/robot_sprite/dogborg/tall/mining/dullahanv3/miningdully
|
|
||||||
name = "Dullahan mining v3"
|
|
||||||
sprite_icon_state = "dullahanmining"
|
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
has_custom_open_sprites = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
rest_sprite_options = list("Default", "sit")
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/dullahan/mineralt
|
||||||
|
name = "Dullahan Mining unit v2"
|
||||||
|
sprite_icon_state = "dullahanmine_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/dullahan/miningdully
|
||||||
|
name = "Dullahan mining v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/mining.dmi'
|
||||||
|
sprite_icon_state = "dullahanmining"
|
||||||
|
sprite_decals = list("decals")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/dullahancarg
|
||||||
|
name = "Dullahan Cargo"
|
||||||
|
sprite_icon_state = "dullahancargo"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_cargo.dmi'
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/dullahancarg/cargoalt
|
||||||
|
name = "Dullahan Cargo v2"
|
||||||
|
sprite_icon_state = "dullahancargo_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/mining/cat
|
||||||
|
name = "Cat - Mining"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixmine"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/mining/catcargo
|
||||||
|
name = "Cat - Cargo"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixcargo"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall
|
||||||
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall/mekacargo
|
||||||
|
name = "MEKA - Cargo"
|
||||||
|
sprite_icon_state = "mekacargo"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall/mmekacargo
|
||||||
|
name = "NIKO - Cargo"
|
||||||
|
sprite_icon_state = "mmekacargo"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_sleeper_light_indicator = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall/fmekacargo
|
||||||
|
name = "NIKA - Cargo"
|
||||||
|
sprite_icon_state = "fmekacargo"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_sleeper_light_indicator = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall/k4tcargo
|
||||||
|
name = "K4T - Cargo"
|
||||||
|
sprite_icon_state = "k4tcargo"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/mining/tall/k4t_alt1cargo
|
||||||
|
name = "K4Talt - Cargo"
|
||||||
|
sprite_icon_state = "k4tcargo_alt1"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/mining/smolraptorminer
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_min.dmi'
|
||||||
|
name = "Small Raptor Miner"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/mining/smolraptorcargo
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_car.dmi'
|
||||||
|
name = "Small Raptor Cargo"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -83,13 +83,15 @@
|
|||||||
name = "XI-GUS"
|
name = "XI-GUS"
|
||||||
sprite_icon_state = "spider"
|
sprite_icon_state = "spider"
|
||||||
|
|
||||||
|
|
||||||
/datum/robot_sprite/science/worm
|
/datum/robot_sprite/science/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-science" //CHOMPEdit
|
sprite_icon_state = "worm-science"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/science/uptall
|
/datum/robot_sprite/science/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -208,13 +210,42 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/science/dullahanv3
|
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
|
||||||
//named v3 to avoid conflicts with downstream
|
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/science/dullahanv3/sciencedully
|
/datum/robot_sprite/dogborg/tall/science/dullahan
|
||||||
name = "Dullahan science v3"
|
name = "Dullahan"
|
||||||
sprite_icon_state = "dullahanscience"
|
sprite_icon_state = "dullahansci"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_sci.dmi'
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
|
sprite_hud_icon_state = "sci-borg"
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/science/dullahan/scialt
|
||||||
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahansci_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/science/dullahan/scialt2
|
||||||
|
name = "Dullahan v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/science.dmi'
|
||||||
|
sprite_icon_state = "dullahanscience"
|
||||||
rest_sprite_options = list("Default", "sit")
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
sprite_decals = list("decals")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/science/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixsci"
|
||||||
|
sprite_hud_icon_state = "sci-borg"
|
||||||
|
has_vore_belly_resting_sprites = TRUE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/science/smolraptor
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_sci.dmi'
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -108,11 +108,12 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/security/worm
|
/datum/robot_sprite/security/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-security" //CHOMPEdit
|
sprite_icon_state = "worm-security"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/security/uptall
|
/datum/robot_sprite/security/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -216,13 +217,47 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/security/dullahanv3
|
/datum/robot_sprite/dogborg/tall/security/dullahan
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
name = "Dullahan"
|
||||||
//named v3 to avoid conflicts with downstream
|
sprite_icon_state = "dullahansec"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_sec.dmi'
|
||||||
|
pixel_x = 0
|
||||||
|
sprite_hud_icon_state = "k9"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/security/dullahanv3/securitydully
|
/datum/robot_sprite/dogborg/tall/security/dullahan/secalt
|
||||||
|
name = "Dullahan v2"
|
||||||
|
sprite_icon_state = "dullahansec_alt"
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/security/dullahan/securitydully
|
||||||
name = "Dullahan security v3"
|
name = "Dullahan security v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/security.dmi'
|
||||||
sprite_icon_state = "dullahansecurity"
|
sprite_icon_state = "dullahansecurity"
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
rest_sprite_options = list("Default", "sit")
|
|
||||||
|
/datum/robot_sprite/dogborg/security/vale2
|
||||||
|
name = "Secborg model V-3"
|
||||||
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi'
|
||||||
|
sprite_icon_state = "secvale"
|
||||||
|
sprite_hud_icon_state = "k9"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/security/cat
|
||||||
|
name = "Cat"
|
||||||
|
sprite_icon = 'icons/mob/robot/catborg_variant.dmi'
|
||||||
|
sprite_icon_state = "vixsec"
|
||||||
|
sprite_hud_icon_state = "k9"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/security/smolraptor
|
||||||
|
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_pk.dmi'
|
||||||
|
name = "Small Raptor"
|
||||||
|
sprite_icon_state = "smolraptor"
|
||||||
|
has_dead_sprite_overlay = FALSE
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
|||||||
@@ -100,11 +100,12 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/standard/worm
|
/datum/robot_sprite/standard/worm
|
||||||
name = "W02M"
|
name = "W02M"
|
||||||
sprite_icon_state = "worm-standard" //CHOMPEdit
|
sprite_icon_state = "worm-standard"
|
||||||
has_custom_open_sprites = TRUE
|
sprite_icon = 'icons/mob/robot/wormborg.dmi'
|
||||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
has_dead_sprite_overlay = FALSE
|
||||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
has_custom_open_sprites = FALSE
|
||||||
has_dead_sprite = TRUE //CHOMPEdit
|
has_vore_belly_sprites = TRUE
|
||||||
|
has_dead_sprite = TRUE
|
||||||
|
|
||||||
/datum/robot_sprite/standard/uptall
|
/datum/robot_sprite/standard/uptall
|
||||||
name = "Feminine Humanoid"
|
name = "Feminine Humanoid"
|
||||||
@@ -135,13 +136,72 @@
|
|||||||
module_type = "Standard"
|
module_type = "Standard"
|
||||||
//sprite_icon = 'icons/mob/robot/standard_large.dmi' NOT USED YET
|
//sprite_icon = 'icons/mob/robot/standard_large.dmi' NOT USED YET
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/standard/dullahanv3
|
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
|
||||||
//named v3 to avoid conflicts with downstream
|
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully
|
/datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully
|
||||||
name = "Dullahan standard v3"
|
name = "Dullahan standard v3"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v3/standard.dmi'
|
||||||
sprite_icon_state = "dullahanstandard"
|
sprite_icon_state = "dullahanstandard"
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
rest_sprite_options = list("Default", "sit")
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
|
||||||
|
|
||||||
|
/* //This used to be Widerobot_Standard_ch.dm. It was unticked, so it shall be put here instead.
|
||||||
|
//Modular Standard borg hound edition
|
||||||
|
//This restructures how borg additions are done to make them sane/modular/maintainable
|
||||||
|
//Also makes it easier to make new borgs
|
||||||
|
|
||||||
|
//INCOMPLETE and not ready, no sprites other than tall and basically useless, also lacking a belly
|
||||||
|
|
||||||
|
//Add ourselves to the borg list
|
||||||
|
/hook/startup/proc/Modular_Borg_init_standardhound()
|
||||||
|
//robot_modules["Honk-Hound"] = /obj/item/robot_module/robot/clerical/honkborg - done in station_vr modular chomp for ordering reasons
|
||||||
|
robot_module_types += "Standard-Hound" //Add ourselves to global
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/standard/hound
|
||||||
|
name = "Standard-Hound"
|
||||||
|
sprites = list(
|
||||||
|
"MEKA" = list(SKIN_ICON_STATE = "mekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
||||||
|
"NIKO" = list(SKIN_ICON_STATE = "mmekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
||||||
|
"NIKA" = list(SKIN_ICON_STATE = "fmekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64),
|
||||||
|
"K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
can_be_pushed = 0
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/standard/hound/New(var/mob/living/silicon/robot/R)
|
||||||
|
..()
|
||||||
|
src.modules += new /obj/item/melee/baton/loaded(src)
|
||||||
|
src.modules += new /obj/item/tool/wrench/cyborg(src)
|
||||||
|
src.modules += new /obj/item/healthanalyzer(src)
|
||||||
|
src.emag += new /obj/item/melee/energy/sword(src)
|
||||||
|
|
||||||
|
var/datum/matter_synth/water = new /datum/matter_synth(500)
|
||||||
|
water.name = "Water reserves"
|
||||||
|
water.recharge_rate = 10
|
||||||
|
water.max_energy = 1000
|
||||||
|
R.water_res = water
|
||||||
|
synths += water
|
||||||
|
|
||||||
|
var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src)
|
||||||
|
T.water = water
|
||||||
|
src.modules += T
|
||||||
|
|
||||||
|
R.icon = 'modular_chomp/icons/mob/widerobot_ch.dmi'
|
||||||
|
R.wideborg_dept = 'modular_chomp/icons/mob/widerobot_ch.dmi'
|
||||||
|
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
||||||
|
R.ui_style_vr = TRUE
|
||||||
|
R.pixel_x = -16
|
||||||
|
R.old_x = -16
|
||||||
|
R.default_pixel_x = -16
|
||||||
|
R.dogborg = TRUE
|
||||||
|
R.vore_capacity = 1
|
||||||
|
R.vore_capacity_ex = list("stomach" = 1)
|
||||||
|
R.wideborg = TRUE
|
||||||
|
add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill)
|
||||||
|
add_verb(R,/mob/living/silicon/robot/proc/robot_mount)
|
||||||
|
add_verb(R,/mob/living/proc/toggle_rider_reins)
|
||||||
|
add_verb(R,/mob/living/proc/shred_limb)
|
||||||
|
add_verb(R,/mob/living/silicon/robot/proc/rest_style)
|
||||||
|
..()
|
||||||
|
*/
|
||||||
|
|||||||
@@ -69,14 +69,23 @@
|
|||||||
has_vore_belly_sprites = FALSE
|
has_vore_belly_sprites = FALSE
|
||||||
rest_sprite_options = list("Default", "Bellyup")
|
rest_sprite_options = list("Default", "Bellyup")
|
||||||
|
|
||||||
|
/datum/robot_sprite/dogborg/tall/combat_medic/dullahancombatmedic
|
||||||
|
name = "Dullahan Combat Medic"
|
||||||
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_syndie.dmi'
|
||||||
|
sprite_icon_state = "dullahansyndi"
|
||||||
|
has_eye_light_sprites = TRUE
|
||||||
|
has_vore_belly_sprites = TRUE
|
||||||
|
rest_sprite_options = list("Default", "Sit")
|
||||||
|
pixel_x = 0
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi
|
/datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
sprite_icon = 'icons/mob/robot/dullahan/v3/syndi.dmi'
|
||||||
sprite_icon_state = "dullahansyndi"
|
sprite_icon_state = "dullahansyndi"
|
||||||
name = "Dullahan syndie v3"
|
name = "Dullahan syndie v3"
|
||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
rest_sprite_options = list("Default", "sit")
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
|
||||||
// Protector
|
// Protector
|
||||||
@@ -168,13 +177,13 @@
|
|||||||
sprite_hud_icon_state = "malf"
|
sprite_hud_icon_state = "malf"
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/mechanist/dullahanv3mech
|
/datum/robot_sprite/dogborg/tall/mechanist/dullahanv3mech
|
||||||
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
|
sprite_icon = 'icons/mob/robot/dullahan/v3/mechanist.dmi'
|
||||||
sprite_icon_state = "dullahanmechanist"
|
sprite_icon_state = "dullahanmechanist"
|
||||||
name = "Dullahan mechanist v3"
|
name = "Dullahan mechanist v3"
|
||||||
has_eye_light_sprites = TRUE
|
has_eye_light_sprites = TRUE
|
||||||
has_custom_open_sprites = TRUE
|
has_custom_open_sprites = TRUE
|
||||||
has_vore_belly_sprites = TRUE
|
has_vore_belly_sprites = TRUE
|
||||||
has_robotdecal_sprites = TRUE
|
sprite_decals = list("decals")
|
||||||
rest_sprite_options = list("Default", "sit")
|
rest_sprite_options = list("Default", "sit")
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/mechanist/syndimechraptor
|
/datum/robot_sprite/dogborg/tall/mechanist/syndimechraptor
|
||||||
|
|||||||
180
code/modules/mob/living/silicon/robot/subtypes/boozeborg.dm
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
//Attempted unify style implementation of boozeborgs. To lower peoples needed code diving to both understand this module and make new ones.
|
||||||
|
//Dropping my usual _unify for _ch this time. Commenting it here for github search.
|
||||||
|
|
||||||
|
// code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm //tag so it shows up in gitsearch
|
||||||
|
|
||||||
|
/*
|
||||||
|
What Borgs are available is sadly handled in the above file in the proc
|
||||||
|
|
||||||
|
/hook/startup/proc/robot_modules_vr()
|
||||||
|
robot_modules["Medihound"] = /obj/item/robot_module/robot/medihound
|
||||||
|
robot_modules["K9"] = /obj/item/robot_module/robot/knine
|
||||||
|
robot_modules["ERT"] = /obj/item/robot_module/robot/ert
|
||||||
|
robot_modules["Janihound"] = /obj/item/robot_module/robot/scrubpup
|
||||||
|
robot_modules["Sci-borg"] = /obj/item/robot_module/robot/science
|
||||||
|
robot_modules["Pupdozer"] = /obj/item/robot_module/robot/engiedog
|
||||||
|
return 1
|
||||||
|
*/
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/booze
|
||||||
|
name = "BoozeHound robot module"
|
||||||
|
channels = list("Service" = 1)
|
||||||
|
languages = list(
|
||||||
|
LANGUAGE_SOL_COMMON = 1,
|
||||||
|
LANGUAGE_UNATHI = 1,
|
||||||
|
LANGUAGE_SIIK = 1,
|
||||||
|
LANGUAGE_AKHANI = 1,
|
||||||
|
LANGUAGE_SKRELLIAN = 1,
|
||||||
|
LANGUAGE_SKRELLIANFAR = 0,
|
||||||
|
LANGUAGE_ROOTLOCAL = 0,
|
||||||
|
LANGUAGE_TRADEBAND = 1,
|
||||||
|
LANGUAGE_GUTTER = 0,
|
||||||
|
LANGUAGE_SCHECHI = 1,
|
||||||
|
LANGUAGE_EAL = 1,
|
||||||
|
LANGUAGE_TERMINUS = 1,
|
||||||
|
LANGUAGE_SIGN = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/booze
|
||||||
|
sprites = list(
|
||||||
|
"Beer Buddy" = "boozeborg",
|
||||||
|
"Brilliant Blue" = "boozeborg(blue)",
|
||||||
|
"Caffine Dispenser" = "boozeborg(coffee)",
|
||||||
|
"Gamer Juice Maker" = "boozeborg(green)",
|
||||||
|
"Liqour Licker" = "boozeborg(orange)",
|
||||||
|
"The Grapist" = "boozeborg(purple)",
|
||||||
|
"Vampire's Aid" = "boozeborg(red)",
|
||||||
|
"Vodka Komrade" = "boozeborg(vodka)"
|
||||||
|
)
|
||||||
|
/obj/item/robot_module/robot/booze/New(var/mob/living/silicon/robot/R)
|
||||||
|
src.modules += new /obj/item/gripper/service(src)
|
||||||
|
//src.modules += new /obj/item/reagent_containers/glass/bucket(src)
|
||||||
|
//src.modules += new /obj/item/material/minihoe(src)
|
||||||
|
//src.modules += new /obj/item/analyzer/plant_analyzer(src)
|
||||||
|
//src.modules += new /obj/item/storage/bag/plants(src)
|
||||||
|
//src.modules += new /obj/item/robot_harvester(src)
|
||||||
|
src.modules += new /obj/item/material/knife(src)
|
||||||
|
src.modules += new /obj/item/material/kitchen/rollingpin(src)
|
||||||
|
src.modules += new /obj/item/multitool(src) //to freeze trays
|
||||||
|
src.modules += new /obj/item/dogborg/jaws/small(src)
|
||||||
|
src.modules += new /obj/item/dogborg/boop_module(src)
|
||||||
|
src.modules += new /obj/item/dogborg/sleeper/compactor/brewer(src)
|
||||||
|
src.modules += new /obj/item/reagent_containers/glass/beaker(src)//For holding the ALCOHOL
|
||||||
|
src.emag = new /obj/item/dogborg/pounce(src)
|
||||||
|
add_verb(R,/mob/living/silicon/robot/proc/reskin_booze)
|
||||||
|
|
||||||
|
var/obj/item/rsf/M = new /obj/item/rsf(src)
|
||||||
|
M.stored_matter = 30
|
||||||
|
src.modules += M
|
||||||
|
|
||||||
|
src.modules += new /obj/item/reagent_containers/dropper/industrial(src)
|
||||||
|
|
||||||
|
/* Remembered this causes the dogs to catch on fire lol.
|
||||||
|
var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src)
|
||||||
|
L.lit = 1
|
||||||
|
src.modules += L
|
||||||
|
*/
|
||||||
|
|
||||||
|
var/datum/matter_synth/water = new /datum/matter_synth()
|
||||||
|
water.name = "Water reserves"
|
||||||
|
water.recharge_rate = 0.1 // Recharging water for plants - hehe drooly borg
|
||||||
|
water.max_energy = 1000
|
||||||
|
water.energy = 0
|
||||||
|
R.water_res = water
|
||||||
|
synths += water
|
||||||
|
|
||||||
|
var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src)
|
||||||
|
T.water = water
|
||||||
|
src.modules += T
|
||||||
|
|
||||||
|
|
||||||
|
src.modules += new /obj/item/tray/robotray(src)
|
||||||
|
src.modules += new /obj/item/reagent_containers/borghypo/service/booze(src)
|
||||||
|
src.emag = new /obj/item/reagent_containers/food/drinks/bottle/small/beer(src)
|
||||||
|
|
||||||
|
var/datum/reagents/N = new/datum/reagents(50)
|
||||||
|
src.emag.reagents = N
|
||||||
|
N.my_atom = src.emag
|
||||||
|
N.add_reagent("beer2", 50)
|
||||||
|
src.emag.name = "Mickey Finn's Special Brew"
|
||||||
|
|
||||||
|
R.can_buckle = 1
|
||||||
|
R.icon = 'icons/mob/widerobot_colors_ch.dmi'
|
||||||
|
R.wideborg_dept = 'icons/mob/widerobot_colors_ch.dmi'
|
||||||
|
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
||||||
|
R.ui_style_vr = TRUE
|
||||||
|
R.pixel_x = -16
|
||||||
|
R.old_x = -16
|
||||||
|
R.default_pixel_x = -16
|
||||||
|
R.dogborg = TRUE
|
||||||
|
R.vore_capacity = 1
|
||||||
|
R.vore_capacity_ex = list("stomach" = 1)
|
||||||
|
R.wideborg = TRUE
|
||||||
|
add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill) //TGPanel
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/robot_module/robot/booze/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
|
||||||
|
var/obj/item/reagent_containers/food/condiment/enzyme/E = locate() in src.modules
|
||||||
|
E.reagents.add_reagent("enzyme", 2 * amount)
|
||||||
|
if(src.emag)
|
||||||
|
var/obj/item/reagent_containers/food/drinks/bottle/small/beer/B = src.emag
|
||||||
|
B.reagents.add_reagent("beer2", 2 * amount)
|
||||||
|
|
||||||
|
//BORGHYPO
|
||||||
|
/obj/item/reagent_containers/borghypo/service/booze
|
||||||
|
name = "cyborg drink synthesizer"
|
||||||
|
desc = "A portable drink dispencer."
|
||||||
|
icon = 'icons/obj/drinks.dmi'
|
||||||
|
icon_state = "shaker"
|
||||||
|
charge_cost = 20
|
||||||
|
recharge_time = 3
|
||||||
|
volume = 120
|
||||||
|
possible_transfer_amounts = list(1 ,5, 10, 20, 30)
|
||||||
|
|
||||||
|
//Resking proc for boozos
|
||||||
|
|
||||||
|
/mob/living/silicon/robot/proc/reskin_booze()
|
||||||
|
set name = "Change Drink Color"
|
||||||
|
set category = "Abilities.Silicon" //TGPanel
|
||||||
|
set desc = "Choose the color of drink displayed inside you."
|
||||||
|
|
||||||
|
var/mob/M = usr
|
||||||
|
var/list/options = list()
|
||||||
|
options["Beer"] = "Beer Buddy"
|
||||||
|
options["Curacao"] = "Brilliant Blue"
|
||||||
|
options["Coffee"] = "Caffine Dispenser"
|
||||||
|
options["Space Mountain Wind"] = "Gamer Juice Maker"
|
||||||
|
options["Whiskey Soda"] = "Liqour Licker"
|
||||||
|
options["Grape Soda"] = "The Grapist"
|
||||||
|
options["Demon's Blood"] = "Vampire's Aid"
|
||||||
|
options["Slav Vodka"] = "Vodka Komrade"
|
||||||
|
var/choice = input(M,"Choose your drink!") in options
|
||||||
|
if(src && choice && !M.stat && in_range(M,src))
|
||||||
|
icontype = options[choice]
|
||||||
|
var/active_sound = 'sound/effects/bubbles.ogg'
|
||||||
|
playsound(src.loc, "[active_sound]", 100, 0, 4)
|
||||||
|
M << "Your Tank now displays [choice]. Drink up and enjoy!"
|
||||||
|
updateicon()
|
||||||
|
return 1
|
||||||
|
|
||||||
|
//SLEEPER "Brewer"
|
||||||
|
/obj/item/dogborg/sleeper/compactor/brewer //Boozehound gut.
|
||||||
|
name = "Brew Belly"
|
||||||
|
desc = "A mounted drunk tank unit with fuel processor."
|
||||||
|
icon_state = "brewer"
|
||||||
|
injection_chems = list(REAGENT_ID_VODKA,REAGENT_ID_BEER,REAGENT_ID_GIN) //Injected alcohol is 3 times as strong
|
||||||
|
max_item_count = 1
|
||||||
|
|
||||||
|
/obj/item/dogborg/sleeper/compactor/brewer/inject_chem(mob/user, chem)
|
||||||
|
if(patient && patient.reagents)
|
||||||
|
if(chem in injection_chems + REAGENT_ID_INAPROVALINE)
|
||||||
|
if(hound.cell.charge < 200) //This is so borgs don't kill themselves with it.
|
||||||
|
to_chat(hound, span_notice("You don't have enough power to synthesize fluids."))
|
||||||
|
return
|
||||||
|
else if(patient.reagents.get_reagent_amount(chem) + 10 >= 50) //Preventing people from accidentally killing themselves by trying to inject too many chemicals!
|
||||||
|
to_chat(hound, span_notice("Your stomach is currently too full of fluids to secrete more fluids of this kind."))
|
||||||
|
else if(patient.reagents.get_reagent_amount(chem) + 10 <= 50) //No overdoses for you
|
||||||
|
patient.reagents.add_reagent(chem, inject_amount)
|
||||||
|
drain(100) //-100 charge per injection
|
||||||
|
var/units = round(patient.reagents.get_reagent_amount(chem))
|
||||||
|
to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them.
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
|
/* //Uncomment the exploration modules in code\global.dm
|
||||||
/hook/startup/proc/Modular_Borg_init_Exploration()
|
/hook/startup/proc/Modular_Borg_init_Exploration()
|
||||||
robot_modules["Exploration"] = /obj/item/robot_module/robot/exploration //add to array
|
robot_modules["Exploration"] = /obj/item/robot_module/robot/exploration //add to array
|
||||||
robot_module_types += "Exploration" //Add to global list
|
robot_module_types += "Exploration" //Add to global list
|
||||||
return 1
|
return 1
|
||||||
|
*/
|
||||||
//Explo doggos
|
//Explo doggos
|
||||||
/obj/item/robot_module/robot/exploration
|
/obj/item/robot_module/robot/exploration
|
||||||
name = "exploration robot module"
|
name = "exploration robot module"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/datum/robot_sprite/dogborg/explorer
|
/datum/robot_sprite/dogborg/explorer
|
||||||
module_type = "Exploration"
|
module_type = "Exploration"
|
||||||
sprite_icon = 'modular_chomp/icons/mob/widerobot_exp_ch.dmi'
|
sprite_icon = 'icons/mob/robot/widerobot/widerobot_exp.dmi'
|
||||||
sprite_hud_icon_state = "platform"
|
sprite_hud_icon_state = "platform"
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/explorer/vale2
|
/datum/robot_sprite/dogborg/explorer/vale2
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/explorer/dullahan
|
/datum/robot_sprite/dogborg/tall/explorer/dullahan
|
||||||
module_type = "Exploration"
|
module_type = "Exploration"
|
||||||
sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_explorer.dmi'
|
sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_explorer.dmi'
|
||||||
pixel_x = 0
|
pixel_x = 0
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/tall/explorer/dullahan/explorer
|
/datum/robot_sprite/dogborg/tall/explorer/dullahan/explorer
|
||||||
@@ -35,12 +35,12 @@
|
|||||||
/* placeholder
|
/* placeholder
|
||||||
/datum/robot_sprite/dogborg/tall/explorer
|
/datum/robot_sprite/dogborg/tall/explorer
|
||||||
module_type = "Exploration"
|
module_type = "Exploration"
|
||||||
sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi'
|
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
|
||||||
pixel_x = 0
|
pixel_x = 0
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/raptor/explorer
|
/datum/robot_sprite/dogborg/raptor/explorer
|
||||||
module_type = "Exploration"
|
module_type = "Exploration"
|
||||||
sprite_icon = 'modular_chomp/icons/mob/raptorborg/raptor_ch.dmi'
|
sprite_icon = 'icons/mob/robot/raptor.dmi'
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/raptor/explorer/raptor
|
/datum/robot_sprite/dogborg/raptor/explorer/raptor
|
||||||
name = "Raptor"
|
name = "Raptor"
|
||||||
@@ -70,6 +70,10 @@
|
|||||||
name = "Party Cannon"
|
name = "Party Cannon"
|
||||||
desc = "Confetti, pies, banana peels, chaos!"
|
desc = "Confetti, pies, banana peels, chaos!"
|
||||||
|
|
||||||
|
/obj/item/gun/launcher/confetti_cannon/robot
|
||||||
|
name = "Party Cannon"
|
||||||
|
desc = "Confetti, pies, banana peels, chaos!"
|
||||||
|
|
||||||
/obj/item/gun/launcher/confetti_cannon/robot/pump(mob/user)
|
/obj/item/gun/launcher/confetti_cannon/robot/pump(mob/user)
|
||||||
playsound(user, 'sound/weapons/shotgunpump.ogg', 60, 1)
|
playsound(user, 'sound/weapons/shotgunpump.ogg', 60, 1)
|
||||||
if(!chambered)
|
if(!chambered)
|
||||||
|
|||||||
189
code/unit_tests/robot_tests.dm
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
/datum/unit_test/all_robot_sprites_must_be_valid
|
||||||
|
name = "ROBOTS: Robot sprites must be valid"
|
||||||
|
var/signal_failed = FALSE
|
||||||
|
|
||||||
|
/datum/unit_test/all_robot_sprites_must_be_valid/start_test()
|
||||||
|
var/failed = 0
|
||||||
|
|
||||||
|
for(var/sprite in subtypesof(/datum/robot_sprite))
|
||||||
|
var/datum/robot_sprite/RS = new sprite()
|
||||||
|
if(!RS.name) // Parent type, ignore me
|
||||||
|
continue
|
||||||
|
|
||||||
|
var/list/checks = list(
|
||||||
|
"[ROBOT_HAS_SPEED_SPRITE]" = "-roll",
|
||||||
|
"[ROBOT_HAS_SHIELD_SPRITE]" = "-shield",
|
||||||
|
"[ROBOT_HAS_SHIELD_SPEED_SPRITE]" = "-speed_shield",
|
||||||
|
"[ROBOT_HAS_MELEE_SPRITE]" = "-melee",
|
||||||
|
"[ROBOT_HAS_DAGGER_SPRITE]" = "-dagger",
|
||||||
|
"[ROBOT_HAS_BLADE_SPRITE]" = "-blade",
|
||||||
|
"[ROBOT_HAS_GUN_SPRITE]" = "-gun",
|
||||||
|
"[ROBOT_HAS_LASER_SPRITE]" = "-laser",
|
||||||
|
"[ROBOT_HAS_TASER_SPRITE]" = "-taser",
|
||||||
|
"[ROBOT_HAS_DISABLER_SPRITE]" = "-disabler"
|
||||||
|
)
|
||||||
|
for(var/C in checks)
|
||||||
|
if(RS.sprite_flag_check(text2num(C)))
|
||||||
|
if(check_state(RS,checks[C]))
|
||||||
|
failed = TRUE
|
||||||
|
// eyes, lights, markings
|
||||||
|
if(RS.has_eye_sprites)
|
||||||
|
if(check_state(RS,"-eyes"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_eye_light_sprites)
|
||||||
|
if(check_state(RS,"-lights"))
|
||||||
|
failed = TRUE
|
||||||
|
if(LAZYLEN(RS.sprite_decals))
|
||||||
|
for(var/decal in RS.sprite_decals)
|
||||||
|
if(check_state(RS,"-[decal]"))
|
||||||
|
failed = TRUE
|
||||||
|
// Control panel
|
||||||
|
if(RS.has_custom_open_sprites)
|
||||||
|
if(check_state(RS,"-openpanel_nc"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-openpanel_c"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-openpanel_w"))
|
||||||
|
failed = TRUE
|
||||||
|
// Bellies
|
||||||
|
if(RS.has_vore_belly_sprites && !RS.belly_capacity_list)
|
||||||
|
if(RS.has_sleeper_light_indicator)
|
||||||
|
// belly r/g light
|
||||||
|
if(check_state(RS,"-sleeper-r"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-sleeper-g"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-sleeper-r-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-sleeper-g-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
// struggling
|
||||||
|
if(RS.has_vore_struggle_sprite)
|
||||||
|
if(check_state(RS,"-sleeper-r-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-sleeper-g-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-sleeper-r-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-sleeper-g-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
else
|
||||||
|
// belly
|
||||||
|
if(check_state(RS,"-sleeper"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-sleeper-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
// struggling
|
||||||
|
if(RS.has_vore_struggle_sprite)
|
||||||
|
if(check_state(RS,"-sleeper-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-sleeper-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
else if (RS.belly_capacity_list)
|
||||||
|
for(var/belly in RS.belly_capacity_list)
|
||||||
|
for(var/num = 1 to RS.belly_capacity_list[belly])
|
||||||
|
// big belly
|
||||||
|
if(check_state(RS,"-[belly]-[num]"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-[belly]-[num]-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
// struggling
|
||||||
|
if(RS.has_vore_struggle_sprite)
|
||||||
|
if(check_state(RS,"-[belly]-[num]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-[belly]-[num]-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.belly_light_list)
|
||||||
|
for(var/belly in RS.belly_light_list)
|
||||||
|
for(var/num = 1 to RS.belly_light_list[belly])
|
||||||
|
// multi belly r/g light
|
||||||
|
if(check_state(RS,"-[belly]-[num]-r"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-[belly]-[num]-g"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-[belly]-[num]-r-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-[belly]-[num]-g-[rest_style]"))
|
||||||
|
failed = TRUE
|
||||||
|
// struggling
|
||||||
|
if(RS.has_vore_struggle_sprite)
|
||||||
|
if(check_state(RS,"-[belly]-[num]-r-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-[belly]-[num]-g-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_vore_belly_resting_sprites)
|
||||||
|
for(var/rest_style in RS.rest_sprite_options)
|
||||||
|
rest_style = lowertext(rest_style)
|
||||||
|
if(rest_style == "Default")
|
||||||
|
rest_style = "rest"
|
||||||
|
if(check_state(RS,"-[belly]-[num]-r-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
if(check_state(RS,"-[belly]-[num]-g-[rest_style]-struggle"))
|
||||||
|
failed = TRUE
|
||||||
|
// reseting
|
||||||
|
if(RS.rest_sprite_options in list("Sit"))
|
||||||
|
if(check_state(RS,"-sit"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.rest_sprite_options in list("Default"))
|
||||||
|
if(check_state(RS,"-rest"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.rest_sprite_options in list("Bellyup"))
|
||||||
|
if(check_state(RS,"-bellyup"))
|
||||||
|
failed = TRUE
|
||||||
|
// death
|
||||||
|
if(RS.has_dead_sprite)
|
||||||
|
if(check_state(RS,"-wreck"))
|
||||||
|
failed = TRUE
|
||||||
|
if(RS.has_dead_sprite_overlay) // Only one per dmi
|
||||||
|
if(!("wreck-overlay" in cached_icon_states(RS.sprite_icon)))
|
||||||
|
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", had wreck-overlay state enabled, but was missing icon_state wreck-overlay, in dmi \"[RS.sprite_icon]\".")
|
||||||
|
failed = TRUE
|
||||||
|
qdel(RS)
|
||||||
|
|
||||||
|
if(failed)
|
||||||
|
fail("One or more /datum/robot_sprite items had invalid flags or icons")
|
||||||
|
else
|
||||||
|
pass("All /datum/robot_sprite are valid.")
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/datum/unit_test/all_robot_sprites_must_be_valid/proc/check_state(var/datum/robot_sprite/RS,var/append)
|
||||||
|
var/check_state = "[RS.sprite_icon_state][append]"
|
||||||
|
if(!(check_state in cached_icon_states(RS.sprite_icon)))
|
||||||
|
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", had [append] state enabled, but was missing icon_state \"[check_state]\", in dmi \"[RS.sprite_icon]\".")
|
||||||
|
return TRUE
|
||||||
|
return FALSE
|
||||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 342 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
BIN
icons/mob/robot/dullahan/v1/dullahan_mine.dmi
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 296 B |
|
Before Width: | Height: | Size: 428 B After Width: | Height: | Size: 428 B |
BIN
icons/mob/robot/dullahan/v3/barista.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/coffee.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/command.dmi
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
icons/mob/robot/dullahan/v3/engineer.dmi
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
icons/mob/robot/dullahan/v3/janitor.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/mechanist.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/medical.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/mining.dmi
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
icons/mob/robot/dullahan/v3/miscinnfo/dullahan assets.dmi
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
BIN
icons/mob/robot/dullahan/v3/ninja.dmi
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
icons/mob/robot/dullahan/v3/science.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/security.dmi
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
icons/mob/robot/dullahan/v3/service.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/standard.dmi
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
icons/mob/robot/dullahan/v3/syndi.dmi
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 318 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 40 KiB |
BIN
icons/mob/robot/possumborg.dmi
Normal file
|
After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |