diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index be49809e53f..d6704c71cc2 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -169,6 +169,7 @@ #include "spell_mindswap.dm" #include "spell_names.dm" #include "spell_shapeshift.dm" +#include "spritesheets.dm" #include "stack_singular_name.dm" #include "stomach.dm" #include "strippable.dm" diff --git a/code/modules/unit_tests/achievements.dm b/code/modules/unit_tests/achievements.dm index 7681ca1109b..652d65898fa 100644 --- a/code/modules/unit_tests/achievements.dm +++ b/code/modules/unit_tests/achievements.dm @@ -9,3 +9,5 @@ var/init_icon = initial(award.icon) if(!init_icon || !(init_icon in award_icons)) TEST_FAIL("Award [initial(award.name)] has an unexistent icon: \"[init_icon || "null"]\"") + if(length(initial(award.database_id)) > 32) //sql schema limit + TEST_FAIL("Award [initial(award.name)] database id is is too long") diff --git a/code/modules/unit_tests/spritesheets.dm b/code/modules/unit_tests/spritesheets.dm new file mode 100644 index 00000000000..c7c16c6535e --- /dev/null +++ b/code/modules/unit_tests/spritesheets.dm @@ -0,0 +1,11 @@ +///Checks if spritesheet assets contain icon states with invalid names +/datum/unit_test/spritesheets + +/datum/unit_test/spritesheets/Run() + for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet)) + if(!initial(sheet.name)) //Ignore abstract types + continue + sheet = get_asset_datum(sheet) + for(var/sprite_name in sheet.sprites) + if(!sprite_name) + TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.") diff --git a/icons/ui_icons/achievements/achievements.dmi b/icons/ui_icons/achievements/achievements.dmi index f762370173e..9e8b97f3e28 100644 Binary files a/icons/ui_icons/achievements/achievements.dmi and b/icons/ui_icons/achievements/achievements.dmi differ