[MIRROR] Robot offset unittest (#10433)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Willburd <7099514+Willburd@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-03-15 17:03:00 -07:00
committed by GitHub
parent 1000158323
commit 1ad7827d9d
14 changed files with 134 additions and 3 deletions

View File

@@ -314,28 +314,37 @@
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/service/dullahan
name = "Dullahan"
name = "Dullahan v1"
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
icon_x = 32
/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt
name = "Dullahan v2"
sprite_icon_state = "dullahanserv_alt"
pixel_x = 0
icon_x = 32
/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_decals = list("decals")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt3
name = "Dullahan v4 matcha"
sprite_icon = 'icons/mob/robot/dullahan/v3/barista.dmi'
sprite_icon_state = "dullahanbarista"
sprite_decals = list("decals")
icon_x = 64
pixel_x = -16
// Clerical
@@ -434,6 +443,7 @@
has_custom_open_sprites = FALSE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
icon_x = 32
/datum/robot_sprite/dogborg/tall/clown/dullahan
name = "Dullahan Clown"
@@ -442,6 +452,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
pixel_x = 0
icon_x = 32
/datum/robot_sprite/dogborg/clown/stoat
name = "ST-04t"
@@ -472,6 +484,8 @@
name = "MEKA Alt"
sprite_icon_state = "mekaserve_alt"
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/service/smolraptorservicesprite

View File

@@ -160,21 +160,29 @@
module_type = "Combat"
sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi'
has_vore_belly_sprites = TRUE
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/combat/tall/mmeka
name = "NIKO"
sprite_icon_state = "mmekasyndi"
has_vore_belly_sprites = TRUE
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/combat/tall/fmeka
name = "NIKA"
sprite_icon_state = "fmekasyndi"
has_vore_belly_sprites = TRUE
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/combat/tall/k4t
name = "K4T"
sprite_icon_state = "k4tsyndi"
has_vore_belly_sprites = FALSE
icon_x = 32
pixel_x = 0
//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

View File

@@ -78,6 +78,8 @@
has_dead_sprite_overlay = FALSE
has_custom_equipment_sprites = TRUE
rest_sprite_options = list("Default", "Bellyup")
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/tall/command/meka
name = "MEKA"
@@ -86,6 +88,8 @@
has_custom_open_sprites = FALSE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
/datum/robot_sprite/dogborg/tall/command/mmeka
name = "NIKO"
@@ -94,6 +98,7 @@
has_custom_open_sprites = FALSE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
/datum/robot_sprite/dogborg/tall/command/fmeka
name = "NIKA"
@@ -102,6 +107,7 @@
has_custom_open_sprites = FALSE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
/datum/robot_sprite/dogborg/command/smolraptorcommand
name = "Small Raptor"

View File

@@ -227,16 +227,22 @@
rest_sprite_options = list("Default", "Sit")
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv2
name = "Dullahan v2"
sprite_icon_state = "dullahaneng_alt"
icon_x = 32
pixel_x = 0
/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")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/engineering/cat
name = "Cat"

View File

@@ -30,6 +30,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_MELEE_SPRITE //Hammer
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/mining/gooborg/miner
name = "Gooborg - Miner"
@@ -39,6 +41,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_MELEE_SPRITE | ROBOT_HAS_GUN_SPRITE //Hammer & PKA
icon_y = 64
vis_height = 64
/// Engineering
/datum/robot_sprite/dogborg/engineering/gooborg
@@ -55,6 +59,8 @@
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_engi.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
icon_y = 64
vis_height = 64
/// Crisis
/datum/robot_sprite/dogborg/crisis/gooborg
@@ -72,6 +78,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = list("Crisis", "Surgeon")
icon_y = 64
vis_height = 64
/// Science
/datum/robot_sprite/dogborg/science/gooborg
@@ -88,6 +96,8 @@
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_sci.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
icon_y = 64
vis_height = 64
/// Security
/datum/robot_sprite/dogborg/security/gooborg
@@ -105,6 +115,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Melee is baton.
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/security/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
@@ -128,6 +140,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = list("Service", "Clerical")
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/janitor/gooborg
name = "Gooborg"
@@ -143,6 +157,8 @@
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jani.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/combat_gooborg
name = "Gooborg"
@@ -160,6 +176,8 @@
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Baton
module_type = "Combat"
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/combat_gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
@@ -180,6 +198,8 @@
sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jester.dmi'
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
icon_y = 64
vis_height = 64
//Exploration.
/datum/robot_sprite/dogborg/explo_gooborg
@@ -197,6 +217,8 @@
rest_sprite_options = list("Default", "Bellyup", "Sit")
belly_capacity_list = list("sleeper" = 2, "throat" =2)
module_type = "Exploration"
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/explo_gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
@@ -221,6 +243,8 @@
belly_capacity_list = list("sleeper" = 2, "throat" =2)
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_BLADE_SPRITE //esword
module_type = list("Combat Medic", "Mechanist", "Protector") //You get all three modules.
icon_y = 64
vis_height = 64
/datum/robot_sprite/dogborg/combat_medic/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))

View File

@@ -212,16 +212,22 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt
name = "Dullahan v2"
sprite_icon_state = "dullahanjani_alt"
icon_x = 32
pixel_x = 0
/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")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/janitor/cat
name = "Cat"

View File

@@ -149,10 +149,14 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/crisis/dullahan/crisisalt
name = "Dullahan v2"
sprite_icon_state = "dullahanmed_alt"
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/medical/dullahan/crisisalt2
name = "Dullahan medical v3"
@@ -160,6 +164,8 @@
sprite_icon = 'icons/mob/robot/dullahan/v3/medical.dmi'
sprite_icon_state = "dullahanmedical"
rest_sprite_options = list("Default", "Sit")
icon_x = 64
pixel_x = -16
// Surgeon

View File

@@ -196,16 +196,22 @@
has_custom_open_sprites = FALSE
has_eye_light_sprites = TRUE
rest_sprite_options = list("Default", "sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/dullahan/mineralt
name = "Dullahan Mining unit v2"
sprite_icon_state = "dullahanmine_alt"
icon_x = 32
pixel_x = 0
/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")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/tall/mining/dullahancarg
name = "Dullahan Cargo"
@@ -214,10 +220,14 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/dullahancarg/cargoalt
name = "Dullahan Cargo v2"
sprite_icon_state = "dullahancargo_alt"
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/mining/cat
name = "Cat - Mining"
@@ -245,6 +255,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/tall/mmekacargo
name = "NIKO - Cargo"
@@ -252,6 +264,8 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/tall/fmekacargo
name = "NIKA - Cargo"
@@ -259,6 +273,8 @@
has_eye_light_sprites = TRUE
has_sleeper_light_indicator = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/tall/k4tcargo
name = "K4T - Cargo"
@@ -266,6 +282,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/mining/tall/k4t_alt1cargo
name = "K4Talt - Cargo"
@@ -273,6 +291,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/mining/smolraptorminer
sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_min.dmi'

View File

@@ -219,17 +219,23 @@
has_eye_light_sprites = TRUE
sprite_hud_icon_state = "sci-borg"
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/science/dullahan/scialt
name = "Dullahan v2"
sprite_icon_state = "dullahansci_alt"
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/science/dullahan/scialt2
name = "Dullahan v3"
sprite_icon = 'icons/mob/robot/dullahan/v3/science.dmi'
sprite_icon_state = "dullahanscience"
sprite_decals = list("decals")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/science/cat
name = "Cat"

View File

@@ -226,10 +226,15 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/security/dullahan/secalt
name = "Dullahan v2"
sprite_icon_state = "dullahansec_alt"
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/security/dullahan/securitydully
name = "Dullahan security v3"
@@ -237,6 +242,9 @@
sprite_icon_state = "dullahansecurity"
has_vore_belly_sprites = TRUE
sprite_decals = list("decals")
icon_x = 64
pixel_x = -16
/datum/robot_sprite/dogborg/security/vale2
name = "Secborg model V-3"

View File

@@ -76,6 +76,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi
sprite_icon = 'icons/mob/robot/dullahan/v3/syndi.dmi'

View File

@@ -23,6 +23,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/datum/robot_sprite/dogborg/tall/explorer/dullahan/exploreralt
name = "Dullahan v2"
@@ -30,6 +32,8 @@
has_eye_light_sprites = TRUE
has_vore_belly_sprites = TRUE
rest_sprite_options = list("Default", "Sit")
icon_x = 32
pixel_x = 0
/* placeholder
/datum/robot_sprite/dogborg/tall/explorer

View File

@@ -10,6 +10,11 @@
if(!RS.name) // Parent type, ignore me
continue
if(!RS.sprite_icon)
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", missing sprite_icon.")
failed = TRUE
continue
var/list/checks = list(
"[ROBOT_HAS_SPEED_SPRITE]" = "-roll",
"[ROBOT_HAS_SHIELD_SPRITE]" = "-shield",
@@ -175,8 +180,24 @@
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]\".")
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", missing icon_state wreck-overlay, in dmi \"[RS.sprite_icon]\".")
failed = TRUE
// offset
var/icon/I = new(RS.sprite_icon)
if(RS.icon_x != I.Width())
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", icon_x \"[RS.icon_x]\" did not match dmi configured width \"[I.Width()]\"")
failed = TRUE
if(RS.icon_y != I.Height())
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", icon_y \"[RS.icon_y]\" did not match dmi configured height \"[I.Height()]\"")
failed = TRUE
if(RS.icon_y != RS.vis_height)
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", vis_height \"[RS.vis_height]\" did not match icon_y \"[RS.icon_y]\"")
failed = TRUE
var/legal_offset = (I.Width() - world.icon_size) / 2
if(RS.pixel_x != -legal_offset)
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", pixel_x \"[RS.pixel_x]\" did not have correct offset, should be \"[-legal_offset]\"")
failed = TRUE
qdel(I)
qdel(RS)
if(failed)
@@ -188,6 +209,6 @@
/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]\".")
log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", enabled but missing icon_state \"[check_state]\", in dmi \"[RS.sprite_icon]\".")
return TRUE
return FALSE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB