diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index b610eb50cc1..acf77ed73e1 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -19,6 +19,11 @@ #define MEDAL_SELFOUCH "Hands???" #define MEDAL_SANDMAN "Mister Sandman" #define MEDAL_CLEANBOSS "Cleanboss" +#define MEDAL_RULE8 "Rule 8" +#define MEDAL_LONGSHIFT "longshift" + +//Skill medal hub IDs +#define MEDAL_LEGENDARY_MINER "Legendary Miner" //Boss medals diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 9132a378d32..e173231ffdf 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -188,10 +188,16 @@ cb.InvokeAsync() LAZYCLEARLIST(round_end_events) + var/speed_round = FALSE + if(world.time - SSticker.round_start_time <= 300 SECONDS) + speed_round = TRUE + for(var/client/C in GLOB.clients) if(!C.credits) C.RollCredits() C.playtitlemusic(40) + if(speed_round) + C.give_award(/datum/award/achievement/misc/speed_round, C.mob) var/popcount = gather_roundend_feedback() display_report(popcount) diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index d50c6a37203..1c0cc0ad9ee 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -1,75 +1,90 @@ /datum/award/achievement/boss category = "Bosses" + icon = "baseboss" /datum/award/achievement/boss/tendril_exterminator name = "Tendril Exterminator" desc = "Watch your step" database_id = BOSS_MEDAL_TENDRIL + icon = "tendril" /datum/award/achievement/boss/boss_killer name = "Boss Killer" desc = "You've come a long ways from asking how to switch hands." database_id = "Boss Killer" + icon = "firstboss" /datum/award/achievement/boss/blood_miner_kill name = "Blood-drunk Miner Killer" desc = "I guess he couldn't handle his drink that well." database_id = BOSS_MEDAL_MINER + icon = "miner" /datum/award/achievement/boss/bubblegum_kill name = "Bubblegum Killer" desc = "I guess he wasn't made of candy after all" database_id = BOSS_MEDAL_BUBBLEGUM + icon = "bbgum" -/datum/award/achievement/boss/colussus_kill - name = "Colussus Killer" +/datum/award/achievement/boss/colossus_kill + name = "Colossus Killer" desc = "The bigger they are... the better the loot" database_id = BOSS_MEDAL_COLOSSUS + icon = "colossus" /datum/award/achievement/boss/drake_kill name = "Drake Killer" desc = "Now I can wear Rune Platebodies!" database_id = BOSS_MEDAL_DRAKE + icon = "drake" /datum/award/achievement/boss/hierophant_kill name = "Hierophant Killer" desc = "Hierophant, but not triumphant." database_id = BOSS_MEDAL_HIEROPHANT + icon = "hierophant" /datum/award/achievement/boss/legion_kill name = "Legion Killer" desc = "We were many..now we are none." database_id = BOSS_MEDAL_LEGION + icon = "legion" /datum/award/achievement/boss/swarmer_beacon_kill name = "Swarm Beacon Killer" desc = "GET THEM OFF OF ME!" database_id = BOSS_MEDAL_SWARMERS + icon = "swarmer" /datum/award/achievement/boss/blood_miner_crusher name = "Blood-drunk Miner Crusher" desc = "I guess he couldn't handle his drink that well." database_id = BOSS_MEDAL_MINER_CRUSHER + icon = "miner" /datum/award/achievement/boss/bubblegum_crusher name = "Bubblegum Crusher" desc = "I guess he wasn't made of candy after all" database_id = BOSS_MEDAL_BUBBLEGUM_CRUSHER + icon = "bbgum" -/datum/award/achievement/boss/colussus_crusher - name = "Colussus Crusher" +/datum/award/achievement/boss/colossus_crusher + name = "Colossus Crusher" desc = "The bigger they are... the better the loot" database_id = BOSS_MEDAL_COLOSSUS_CRUSHER + icon = "colossus" /datum/award/achievement/boss/drake_crusher name = "Drake Crusher" desc = "Now I can wear Rune Platebodies!" database_id = BOSS_MEDAL_DRAKE_CRUSHER + icon = "drake" /datum/award/achievement/boss/hierophant_crusher name = "Hierophant Crusher" desc = "Hierophant, but not triumphant." database_id = BOSS_MEDAL_HIEROPHANT_CRUSHER + icon = "hierophant" /datum/award/achievement/boss/legion_crusher name = "Legion Crusher" diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index a4f65925d27..3d3fe61a9f0 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -1,41 +1,49 @@ /datum/award/achievement/misc category = "Misc" + icon = "basemisc" /datum/award/achievement/misc/meteor_examine name = "Your Life Before Your Eyes" desc = "Take a close look at hurtling space debris" database_id = MEDAL_METEOR + icon = "meteors" /datum/award/achievement/misc/pulse name = "Jackpot" desc = "Win a pulse rifle from an arcade machine" database_id = MEDAL_PULSE + icon = "jackpot" /datum/award/achievement/misc/time_waste name = "Time waster" desc = "Speak no evil, hear no evil, see just errors" database_id = MEDAL_TIMEWASTE + icon = "timewaste" /datum/award/achievement/misc/feat_of_strength name = "Feat of Strength" desc = "If the rod is immovable, is it passing you or are you passing it?" database_id = MEDAL_RODSUPLEX + icon = "featofstrength" /datum/award/achievement/misc/round_and_full name = "Round and Full" desc = "Well at least you aren't down the river, I hear they eat people there." database_id = MEDAL_CLOWNCARKING + icon = "clownking" /datum/award/achievement/misc/the_best_driver name = "The Best Driver" desc = "100 honks later" database_id = MEDAL_THANKSALOT + icon = "clownthanks" /datum/award/achievement/misc/helbitaljanken name = "Helbitaljanken" desc = "You janked hard" database_id = MEDAL_HELBITALJANKEN - + icon = "helbital" + /datum/award/achievement/misc/getting_an_upgrade name = "Getting an upgrade" desc = "Make your first unique material item!" @@ -75,3 +83,15 @@ name = "One Lean, Mean, Cleaning Machine" desc = "How does it feel to know that your workplace values a mop bucket on wheels more than you?" // i can do better than this give me time database_id = MEDAL_CLEANBOSS + +/datum/award/achievement/misc/rule8 + name = "Rule 8" + desc = "Call an admin this is ILLEGAL!!" + database_id = MEDAL_RULE8 + icon = "rule8" + +/datum/award/achievement/misc/speed_round + name = "Long shift" + desc = "Well, that didn't take long." + database_id = MEDAL_LONGSHIFT + icon = "longshift" diff --git a/code/datums/achievements/skill_achievements.dm b/code/datums/achievements/skill_achievements.dm new file mode 100644 index 00000000000..7da936c61f4 --- /dev/null +++ b/code/datums/achievements/skill_achievements.dm @@ -0,0 +1,10 @@ +/datum/award/achievement/skill + category = "Skills" + icon = "baseskill" + +/datum/award/achievement/skill/legendary_miner + name = "Legendary miner" + desc = "No mere rock can stop me!" + database_id = MEDAL_LEGENDARY_MINER + icon = "mining" + diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 15a91627886..dbdddf4eade 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -216,6 +216,7 @@ else if(Kisser.partner == src && !plush_child) //the one advancing does not take ownership of the child and we have a one child policy in the toyshop user.visible_message("[user] is going to break [Kisser] and [src] by bashing them like that.", "[Kisser] passionately embraces [src] in your hands. Look away you perv!") + user.client.give_award(/datum/award/achievement/misc/rule8, user) if(plop(Kisser)) user.visible_message("Something drops at the feet of [user].", "The miracle of oh god did that just come out of [src]?!") diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 590bc2a6f44..9edef593c18 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -558,6 +558,7 @@ if(!(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_MASTER)) return drop_ores() + H.client.give_award(/datum/award/achievement/skill/legendary_miner, H) var/flags = NONE if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index ebfc2b62519..68911fa5af3 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -600,7 +600,27 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/spritesheet/simple/achievements name ="achievements" assets = list( - "default" = 'icons/UI_Icons/Achievements/default.png' + "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', + "mining" = 'icons/UI_Icons/Achievements/Skills/mining.png', ) /datum/asset/spritesheet/simple/pills diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index a6239093dfe..1bdaea6b59d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -45,8 +45,8 @@ Difficulty: Very Hard pixel_x = -32 del_on_death = TRUE gps_name = "Angelic Signal" - achievement_type = /datum/award/achievement/boss/colussus_kill - crusher_achievement_type = /datum/award/achievement/boss/colussus_crusher + achievement_type = /datum/award/achievement/boss/colossus_kill + crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher score_achievement_type = /datum/award/score/colussus_score crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) loot = list(/obj/structure/closet/crate/necropolis/colossus) diff --git a/icons/UI_Icons/Achievements/Boss/bbgum.png b/icons/UI_Icons/Achievements/Boss/bbgum.png new file mode 100644 index 00000000000..a0962fb1ced Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/bbgum.png differ diff --git a/icons/UI_Icons/Achievements/Boss/colossus.png b/icons/UI_Icons/Achievements/Boss/colossus.png new file mode 100644 index 00000000000..f544084786d Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/colossus.png differ diff --git a/icons/UI_Icons/Achievements/Boss/drake.png b/icons/UI_Icons/Achievements/Boss/drake.png new file mode 100644 index 00000000000..19ecc5ae941 Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/drake.png differ diff --git a/icons/UI_Icons/Achievements/Boss/hierophant.png b/icons/UI_Icons/Achievements/Boss/hierophant.png new file mode 100644 index 00000000000..a8f2e6a45ed Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/hierophant.png differ diff --git a/icons/UI_Icons/Achievements/Boss/legion.png b/icons/UI_Icons/Achievements/Boss/legion.png new file mode 100644 index 00000000000..dc9470a8a97 Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/legion.png differ diff --git a/icons/UI_Icons/Achievements/Boss/miner.png b/icons/UI_Icons/Achievements/Boss/miner.png new file mode 100644 index 00000000000..5164dcfb10b Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/miner.png differ diff --git a/icons/UI_Icons/Achievements/Boss/swarmer.png b/icons/UI_Icons/Achievements/Boss/swarmer.png new file mode 100644 index 00000000000..bcc017af32d Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/swarmer.png differ diff --git a/icons/UI_Icons/Achievements/Boss/tendril.png b/icons/UI_Icons/Achievements/Boss/tendril.png new file mode 100644 index 00000000000..3b6b908d3eb Binary files /dev/null and b/icons/UI_Icons/Achievements/Boss/tendril.png differ diff --git a/icons/UI_Icons/Achievements/Misc/clownking.png b/icons/UI_Icons/Achievements/Misc/clownking.png new file mode 100644 index 00000000000..7260c34dcdd Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/clownking.png differ diff --git a/icons/UI_Icons/Achievements/Misc/clownthanks.png b/icons/UI_Icons/Achievements/Misc/clownthanks.png new file mode 100644 index 00000000000..214a4e0a74d Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/clownthanks.png differ diff --git a/icons/UI_Icons/Achievements/Misc/featofstrength.png b/icons/UI_Icons/Achievements/Misc/featofstrength.png new file mode 100644 index 00000000000..5cfc5240bd1 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/featofstrength.png differ diff --git a/icons/UI_Icons/Achievements/Misc/helbital.png b/icons/UI_Icons/Achievements/Misc/helbital.png new file mode 100644 index 00000000000..10b5efdd5e6 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/helbital.png differ diff --git a/icons/UI_Icons/Achievements/Misc/jackpot.png b/icons/UI_Icons/Achievements/Misc/jackpot.png new file mode 100644 index 00000000000..e171c5cb7c9 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/jackpot.png differ diff --git a/icons/UI_Icons/Achievements/Misc/longshift.png b/icons/UI_Icons/Achievements/Misc/longshift.png new file mode 100644 index 00000000000..5f511e21fd5 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/longshift.png differ diff --git a/icons/UI_Icons/Achievements/Misc/meteors.png b/icons/UI_Icons/Achievements/Misc/meteors.png new file mode 100644 index 00000000000..5e6d4bc9bd7 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/meteors.png differ diff --git a/icons/UI_Icons/Achievements/Misc/rule8.png b/icons/UI_Icons/Achievements/Misc/rule8.png new file mode 100644 index 00000000000..2bc518d5ab5 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/rule8.png differ diff --git a/icons/UI_Icons/Achievements/Misc/timewaste.png b/icons/UI_Icons/Achievements/Misc/timewaste.png new file mode 100644 index 00000000000..24d23025fb0 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/timewaste.png differ diff --git a/icons/UI_Icons/Achievements/Misc/upgrade.png b/icons/UI_Icons/Achievements/Misc/upgrade.png new file mode 100644 index 00000000000..e73bb512eb1 Binary files /dev/null and b/icons/UI_Icons/Achievements/Misc/upgrade.png differ diff --git a/icons/UI_Icons/Achievements/Skills/mining.png b/icons/UI_Icons/Achievements/Skills/mining.png new file mode 100644 index 00000000000..7d87d135b43 Binary files /dev/null and b/icons/UI_Icons/Achievements/Skills/mining.png differ diff --git a/icons/UI_Icons/Achievements/baseboss.png b/icons/UI_Icons/Achievements/baseboss.png new file mode 100644 index 00000000000..df2227b391d Binary files /dev/null and b/icons/UI_Icons/Achievements/baseboss.png differ diff --git a/icons/UI_Icons/Achievements/basemisc.png b/icons/UI_Icons/Achievements/basemisc.png new file mode 100644 index 00000000000..1346d1c001d Binary files /dev/null and b/icons/UI_Icons/Achievements/basemisc.png differ diff --git a/icons/UI_Icons/Achievements/baseskill.png b/icons/UI_Icons/Achievements/baseskill.png new file mode 100644 index 00000000000..de6ff8a2e5f Binary files /dev/null and b/icons/UI_Icons/Achievements/baseskill.png differ diff --git a/icons/UI_Icons/Achievements/default.png b/icons/UI_Icons/Achievements/default.png index 0572262dfb8..852298aa0c5 100644 Binary files a/icons/UI_Icons/Achievements/default.png and b/icons/UI_Icons/Achievements/default.png differ diff --git a/tgstation.dme b/tgstation.dme index 2f943989c6b..4d6d21e0d1f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -351,6 +351,7 @@ #include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_scores.dm" #include "code\datums\achievements\misc_achievements.dm" +#include "code\datums\achievements\skill_achievements.dm" #include "code\datums\actions\beam_rifle.dm" #include "code\datums\actions\ninja.dm" #include "code\datums\atmosphere\_atmosphere.dm"