diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e34284e3ed8..d94f1481dc0 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -527,3 +527,5 @@ GLOBAL_LIST_INIT(pda_styles, sort_list(list(MONO, VT, ORBITRON, SHARE))) /// Emoji icon set #define EMOJI_SET 'modular_skyrat/master_files/icons/emoji.dmi' // SKYRAT EDIT +/// Achievements icon set +#define ACHIEVEMENTS_SET 'icons/ui_icons/achievements/achievements.dmi' diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm index 22296b90f52..f1f3dc7079d 100644 --- a/code/datums/achievements/_awards.dm +++ b/code/datums/achievements/_awards.dm @@ -2,8 +2,9 @@ ///Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees) var/name var/desc = "You did it." - ///Found in ui_icons/achievements + ///The icon state for this award. The icon file is found in ui_icons/achievements. var/icon = "default" + var/category = "Normal" ///What ID do we use in db, limited to 32 characters @@ -68,6 +69,7 @@ ///Achievements are one-off awards for usually doing cool things. /datum/award/achievement desc = "Achievement for epic people" + icon = "" // This should warn contributors that do not declare an icon when contributing new achievements. /datum/award/achievement/get_metadata_row() . = ..() diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index 6625bbb4394..f58f25664f3 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -1,6 +1,5 @@ /datum/award/achievement/boss category = "Bosses" - icon = "baseboss" /datum/award/achievement/boss/tendril_exterminator name = "Tendril Exterminator" @@ -24,6 +23,7 @@ name = "Demonic-Frost Miner Killer" desc = "Definitely harder than the Blood-Drunk Miner." database_id = BOSS_MEDAL_FROSTMINER + icon = "frostminer" /datum/award/achievement/boss/bubblegum_kill name = "Bubblegum Killer" @@ -65,6 +65,7 @@ name = "Wendigo Killer" desc = "You've now ruined years of mythical storytelling." database_id = BOSS_MEDAL_WENDIGO + icon = "wendigo" /datum/award/achievement/boss/blood_miner_crusher name = "Blood-Drunk Miner Crusher" @@ -76,6 +77,7 @@ name = "Demonic-Frost Miner Crusher" desc = "Definitely harder than the Blood-Drunk Miner." database_id = BOSS_MEDAL_FROSTMINER_CRUSHER + icon = "frostminer" /datum/award/achievement/boss/bubblegum_crusher name = "Bubblegum Crusher" @@ -105,16 +107,19 @@ name = "Legion Crusher" desc = "We were many... now we are none." database_id = BOSS_MEDAL_LEGION_CRUSHER + icon = "legion" /datum/award/achievement/boss/swarmer_beacon_crusher name = "Swarm Beacon Crusher" desc = "GET THEM OFF OF ME!" database_id = BOSS_MEDAL_SWARMERS_CRUSHER + icon = "swarmer" /datum/award/achievement/boss/wendigo_crusher name = "Wendigo Crusher" desc = "You've now ruined years of mythical storytelling." database_id = BOSS_MEDAL_WENDIGO_CRUSHER + icon = "wendigo" //should be removed soon /datum/award/achievement/boss/king_goat_kill diff --git a/code/datums/achievements/job_achievements.dm b/code/datums/achievements/job_achievements.dm index 13a68462edd..2bcc1ff91ce 100644 --- a/code/datums/achievements/job_achievements.dm +++ b/code/datums/achievements/job_achievements.dm @@ -1,7 +1,6 @@ /datum/award/achievement/jobs category = "Jobs" - icon = "basemisc" //chemistry @@ -17,18 +16,18 @@ name = "Centcom Grade: Shitty Service" desc = "Well, you at least tried. How about trying harder?" database_id = MEDAL_BAD_SERVICE - icon = "chem_tut" + icon = "service_bad" /datum/award/achievement/jobs/service_okay name = "Centcom Grade: Acceptable Service" desc = "Well, it'll do! You and your department did just fine." database_id = MEDAL_OKAY_SERVICE - icon = "chem_tut" + icon = "service_okay" /datum/award/achievement/jobs/service_good name = "Centcom Grade: Exemplary Service" desc = "Centcom is very impressed with your department!" database_id = MEDAL_GOOD_SERVICE - icon = "chem_tut" + icon = "service_good" //civilian achievies! while not recognized by the code, it is recognized by our hearts diff --git a/code/datums/achievements/mafia_achievements.dm b/code/datums/achievements/mafia_achievements.dm index fbe34863979..da70fb11e87 100644 --- a/code/datums/achievements/mafia_achievements.dm +++ b/code/datums/achievements/mafia_achievements.dm @@ -1,6 +1,5 @@ /datum/award/achievement/mafia category = "Mafia" - icon = "basemafia" ///ALL THE ACHIEVEMENTS FOR WINNING A ROUND AS A ROLE/// diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index c354d7923c6..f5e17a35126 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -1,6 +1,6 @@ /datum/award/achievement/misc category = "Misc" - icon = "basemisc" + icon = "basemisc" //for those achievements that still need an actual icon, later. /datum/award/achievement/misc/meteor_examine name = "Your Life Before Your Eyes" @@ -48,11 +48,13 @@ name = "Getting an upgrade" desc = "Make your first unique material item!" database_id = MEDAL_MATERIALCRAFT + icon = "upgrade" /datum/award/achievement/misc/rocket_holdup name = "Disk, Please!" desc = "Is the man currently pointing a loaded rocket launcher at your head point blank really dumb enough to pull the trigger? Do you really want to find out?" database_id = MEDAL_DISKPLEASE + icon = "rocket_holdup" /datum/award/achievement/misc/gamer name = "My Watchlist Status is Not Important" @@ -111,6 +113,7 @@ name = "HA, GOTTEM" desc = "Made you look!" database_id = MEDAL_GOTTEM + icon = "gottem" /datum/award/achievement/misc/ascension name = "Ascension" @@ -122,7 +125,7 @@ name = "Frenching" desc = "Just a taste, for science!" database_id = MEDAL_FRENCHING - icon = "frenching" + icon = "frenchingthebubble" /datum/award/achievement/misc/ash_ascension name = "Nightwatcher's Eyes" diff --git a/code/datums/achievements/skill_achievements.dm b/code/datums/achievements/skill_achievements.dm index 7da936c61f4..128b35a6a4e 100644 --- a/code/datums/achievements/skill_achievements.dm +++ b/code/datums/achievements/skill_achievements.dm @@ -1,6 +1,5 @@ /datum/award/achievement/skill category = "Skills" - icon = "baseskill" /datum/award/achievement/skill/legendary_miner name = "Legendary miner" diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index c61e2cc678e..532a6216392 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -207,40 +207,10 @@ /datum/asset/spritesheet/simple/achievements name ="achievements" - assets = list( - "default" = 'icons/ui_icons/achievements/default.png', - "basemisc" = 'icons/ui_icons/achievements/basemisc.png', - "baseboss" = 'icons/ui_icons/achievements/baseboss.png', - "baseskill" = 'icons/ui_icons/achievements/baseskill.png', - "bbgum" = 'icons/ui_icons/achievements/boss/bbgum.png', - "colossus" = 'icons/ui_icons/achievements/boss/colossus.png', - "hierophant" = 'icons/ui_icons/achievements/boss/hierophant.png', - "legion" = 'icons/ui_icons/achievements/boss/legion.png', - "miner" = 'icons/ui_icons/achievements/boss/miner.png', - "swarmer" = 'icons/ui_icons/achievements/boss/swarmer.png', - "tendril" = 'icons/ui_icons/achievements/boss/tendril.png', - "featofstrength" = 'icons/ui_icons/achievements/misc/featofstrength.png', - "helbital" = 'icons/ui_icons/achievements/misc/helbital.png', - "jackpot" = 'icons/ui_icons/achievements/misc/jackpot.png', - "meteors" = 'icons/ui_icons/achievements/misc/meteors.png', - "timewaste" = 'icons/ui_icons/achievements/misc/timewaste.png', - "upgrade" = 'icons/ui_icons/achievements/misc/upgrade.png', - "clownking" = 'icons/ui_icons/achievements/misc/clownking.png', - "clownthanks" = 'icons/ui_icons/achievements/misc/clownthanks.png', - "rule8" = 'icons/ui_icons/achievements/misc/rule8.png', - "snail" = 'icons/ui_icons/achievements/misc/snail.png', - "ascension" = 'icons/ui_icons/achievements/misc/ascension.png', - "ashascend" = 'icons/ui_icons/achievements/misc/ashascend.png', - "fleshascend" = 'icons/ui_icons/achievements/misc/fleshascend.png', - "rustascend" = 'icons/ui_icons/achievements/misc/rustascend.png', - "voidascend" = 'icons/ui_icons/achievements/misc/voidascend.png', - "mining" = 'icons/ui_icons/achievements/skills/mining.png', - "changeling" = 'icons/ui_icons/achievements/mafia/mafia.png', - "chaplain" = 'icons/ui_icons/achievements/mafia/town.png', - "clown" = 'icons/ui_icons/achievements/mafia/neutral.png', - "basemafia" ='icons/ui_icons/achievements/basemafia.png', - "frenching" = 'icons/ui_icons/achievements/misc/frenchingthebubble.png' - ) + +/datum/asset/spritesheet/simple/achievements/register() + InsertAll("", ACHIEVEMENTS_SET) + return ..() /datum/asset/spritesheet/simple/pills name = "pills" diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index b40fb5cfeae..77f968de405 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -43,6 +43,7 @@ /// A trait source when adding traits through unit tests #define TRAIT_SOURCE_UNIT_TESTS "unit_tests" +#include "achievements.dm" #include "anchored_mobs.dm" #include "bespoke_id.dm" #include "binary_insert.dm" diff --git a/code/modules/unit_tests/achievements.dm b/code/modules/unit_tests/achievements.dm new file mode 100644 index 00000000000..7f7d6c16316 --- /dev/null +++ b/code/modules/unit_tests/achievements.dm @@ -0,0 +1,11 @@ +///Checks that all achievements have an existing icon state in the achievements icon file. +/datum/unit_test/achievements + +/datum/unit_test/achievements/Run() + var/award_icons = icon_states(ACHIEVEMENTS_SET) + for(var/datum/award/award as anything in subtypesof(/datum/award)) + if(!initial(award.name)) //Skip abstract achievements types + continue + var/init_icon = initial(award.icon) + if(!init_icon || !(init_icon in award_icons)) + Fail("Award [initial(award.name)] has an unexistent icon: \"[init_icon || "null"]\"") diff --git a/icons/ui_icons/achievements/achievements.dmi b/icons/ui_icons/achievements/achievements.dmi new file mode 100644 index 00000000000..9e063fa9252 Binary files /dev/null and b/icons/ui_icons/achievements/achievements.dmi differ diff --git a/icons/ui_icons/achievements/baseboss.png b/icons/ui_icons/achievements/baseboss.png deleted file mode 100644 index 0829acb0220..00000000000 Binary files a/icons/ui_icons/achievements/baseboss.png and /dev/null differ diff --git a/icons/ui_icons/achievements/basemafia.png b/icons/ui_icons/achievements/basemafia.png deleted file mode 100644 index 59b4db673ac..00000000000 Binary files a/icons/ui_icons/achievements/basemafia.png and /dev/null differ diff --git a/icons/ui_icons/achievements/basemisc.png b/icons/ui_icons/achievements/basemisc.png deleted file mode 100644 index c1a9f8fed64..00000000000 Binary files a/icons/ui_icons/achievements/basemisc.png and /dev/null differ diff --git a/icons/ui_icons/achievements/baseskill.png b/icons/ui_icons/achievements/baseskill.png deleted file mode 100644 index 6508aa08f6c..00000000000 Binary files a/icons/ui_icons/achievements/baseskill.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/bbgum.png b/icons/ui_icons/achievements/boss/bbgum.png deleted file mode 100644 index cbe4b507bf8..00000000000 Binary files a/icons/ui_icons/achievements/boss/bbgum.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/colossus.png b/icons/ui_icons/achievements/boss/colossus.png deleted file mode 100644 index 26ec9bb634b..00000000000 Binary files a/icons/ui_icons/achievements/boss/colossus.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/drake.png b/icons/ui_icons/achievements/boss/drake.png deleted file mode 100644 index b64488bb3cc..00000000000 Binary files a/icons/ui_icons/achievements/boss/drake.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/hierophant.png b/icons/ui_icons/achievements/boss/hierophant.png deleted file mode 100644 index 430e26cfbe8..00000000000 Binary files a/icons/ui_icons/achievements/boss/hierophant.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/legion.png b/icons/ui_icons/achievements/boss/legion.png deleted file mode 100644 index 08fa7103a16..00000000000 Binary files a/icons/ui_icons/achievements/boss/legion.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/miner.png b/icons/ui_icons/achievements/boss/miner.png deleted file mode 100644 index df1c6fef339..00000000000 Binary files a/icons/ui_icons/achievements/boss/miner.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/swarmer.png b/icons/ui_icons/achievements/boss/swarmer.png deleted file mode 100644 index 9c57a0f72c7..00000000000 Binary files a/icons/ui_icons/achievements/boss/swarmer.png and /dev/null differ diff --git a/icons/ui_icons/achievements/boss/tendril.png b/icons/ui_icons/achievements/boss/tendril.png deleted file mode 100644 index e3da93c2364..00000000000 Binary files a/icons/ui_icons/achievements/boss/tendril.png and /dev/null differ diff --git a/icons/ui_icons/achievements/default.png b/icons/ui_icons/achievements/default.png deleted file mode 100644 index abbe679b4da..00000000000 Binary files a/icons/ui_icons/achievements/default.png and /dev/null differ diff --git a/icons/ui_icons/achievements/mafia/hated.png b/icons/ui_icons/achievements/mafia/hated.png deleted file mode 100644 index 395e1e6311f..00000000000 Binary files a/icons/ui_icons/achievements/mafia/hated.png and /dev/null differ diff --git a/icons/ui_icons/achievements/mafia/mafia.png b/icons/ui_icons/achievements/mafia/mafia.png deleted file mode 100644 index d6da6b4b096..00000000000 Binary files a/icons/ui_icons/achievements/mafia/mafia.png and /dev/null differ diff --git a/icons/ui_icons/achievements/mafia/neutral.png b/icons/ui_icons/achievements/mafia/neutral.png deleted file mode 100644 index e31159ac4b9..00000000000 Binary files a/icons/ui_icons/achievements/mafia/neutral.png and /dev/null differ diff --git a/icons/ui_icons/achievements/mafia/town.png b/icons/ui_icons/achievements/mafia/town.png deleted file mode 100644 index 4ba7613a6ac..00000000000 Binary files a/icons/ui_icons/achievements/mafia/town.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/ascension.png b/icons/ui_icons/achievements/misc/ascension.png deleted file mode 100644 index 72db12f1df8..00000000000 Binary files a/icons/ui_icons/achievements/misc/ascension.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/ashascend.png b/icons/ui_icons/achievements/misc/ashascend.png deleted file mode 100644 index 5aafd69e22d..00000000000 Binary files a/icons/ui_icons/achievements/misc/ashascend.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/cayenne_disk.png b/icons/ui_icons/achievements/misc/cayenne_disk.png deleted file mode 100644 index 8be9e759f1e..00000000000 Binary files a/icons/ui_icons/achievements/misc/cayenne_disk.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/chem_tut.png b/icons/ui_icons/achievements/misc/chem_tut.png deleted file mode 100644 index b91e9f4611e..00000000000 Binary files a/icons/ui_icons/achievements/misc/chem_tut.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/clownking.png b/icons/ui_icons/achievements/misc/clownking.png deleted file mode 100644 index 1b1090edaa4..00000000000 Binary files a/icons/ui_icons/achievements/misc/clownking.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/clownthanks.png b/icons/ui_icons/achievements/misc/clownthanks.png deleted file mode 100644 index f902a463a5b..00000000000 Binary files a/icons/ui_icons/achievements/misc/clownthanks.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/cult_shuttle_omfg.png b/icons/ui_icons/achievements/misc/cult_shuttle_omfg.png deleted file mode 100644 index 561dbb1054b..00000000000 Binary files a/icons/ui_icons/achievements/misc/cult_shuttle_omfg.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/featofstrength.png b/icons/ui_icons/achievements/misc/featofstrength.png deleted file mode 100644 index 69aa47b316c..00000000000 Binary files a/icons/ui_icons/achievements/misc/featofstrength.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/fleshascend.png b/icons/ui_icons/achievements/misc/fleshascend.png deleted file mode 100644 index 72b8c121ba1..00000000000 Binary files a/icons/ui_icons/achievements/misc/fleshascend.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/frenchingthebubble.png b/icons/ui_icons/achievements/misc/frenchingthebubble.png deleted file mode 100644 index 9c9a4c2ec00..00000000000 Binary files a/icons/ui_icons/achievements/misc/frenchingthebubble.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/helbital.png b/icons/ui_icons/achievements/misc/helbital.png deleted file mode 100644 index 57780de6b42..00000000000 Binary files a/icons/ui_icons/achievements/misc/helbital.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/hotdamn.png b/icons/ui_icons/achievements/misc/hotdamn.png deleted file mode 100644 index 6e9253bb191..00000000000 Binary files a/icons/ui_icons/achievements/misc/hotdamn.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/jackpot.png b/icons/ui_icons/achievements/misc/jackpot.png deleted file mode 100644 index 198331e3929..00000000000 Binary files a/icons/ui_icons/achievements/misc/jackpot.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/longshift.png b/icons/ui_icons/achievements/misc/longshift.png deleted file mode 100644 index 8f103429995..00000000000 Binary files a/icons/ui_icons/achievements/misc/longshift.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/meteors.png b/icons/ui_icons/achievements/misc/meteors.png deleted file mode 100644 index 4647f2557ea..00000000000 Binary files a/icons/ui_icons/achievements/misc/meteors.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/rule8.png b/icons/ui_icons/achievements/misc/rule8.png deleted file mode 100644 index 4d5c7b1bc97..00000000000 Binary files a/icons/ui_icons/achievements/misc/rule8.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/rustascend.png b/icons/ui_icons/achievements/misc/rustascend.png deleted file mode 100644 index 7a385b02557..00000000000 Binary files a/icons/ui_icons/achievements/misc/rustascend.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/snail.png b/icons/ui_icons/achievements/misc/snail.png deleted file mode 100644 index 5812edae5f0..00000000000 Binary files a/icons/ui_icons/achievements/misc/snail.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/timewaste.png b/icons/ui_icons/achievements/misc/timewaste.png deleted file mode 100644 index 6ab21f00d45..00000000000 Binary files a/icons/ui_icons/achievements/misc/timewaste.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/toolbox_soul.png b/icons/ui_icons/achievements/misc/toolbox_soul.png deleted file mode 100644 index cc582479a9c..00000000000 Binary files a/icons/ui_icons/achievements/misc/toolbox_soul.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/tram_surfer.png b/icons/ui_icons/achievements/misc/tram_surfer.png deleted file mode 100644 index b9cc313b098..00000000000 Binary files a/icons/ui_icons/achievements/misc/tram_surfer.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/upgrade.png b/icons/ui_icons/achievements/misc/upgrade.png deleted file mode 100644 index 46441eb3772..00000000000 Binary files a/icons/ui_icons/achievements/misc/upgrade.png and /dev/null differ diff --git a/icons/ui_icons/achievements/misc/voidascend.png b/icons/ui_icons/achievements/misc/voidascend.png deleted file mode 100644 index 3d5e23e12f2..00000000000 Binary files a/icons/ui_icons/achievements/misc/voidascend.png and /dev/null differ diff --git a/icons/ui_icons/achievements/skills/mining.png b/icons/ui_icons/achievements/skills/mining.png deleted file mode 100644 index 78e8fa8e533..00000000000 Binary files a/icons/ui_icons/achievements/skills/mining.png and /dev/null differ