From 03b2328a07c902df6446af339649dfb48e079335 Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 15:22:04 +0100 Subject: [PATCH 1/2] Adds 3 new achievements --- code/datums/achievements/achievements.dm | 15 +++++++++++++++ .../antagonists/nukeop/equipment/nuclearbomb.dm | 1 + code/modules/antagonists/nukeop/nukeop.dm | 14 +++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 090e58e35dd8..ef60ddd2299a 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -12,3 +12,18 @@ name = "I live again" desc = "As a roboticist, create a cyborg" id = 2 + +/datum/achievement/flukeops + name = "Reverse Card" + desc = "As a member of the Crew deal a Humiliating defeat to Nuclear Team" + id = 5 + +datum/achievement/nukewin + name = "Delta Alert" + desc = "As a Nuclear Operative score a Major or Minor Victory" + id = 6 + +datum/achievement/honorarynukie + name = "Honorary Nukie" + desc = "Kill yourself with the nuclear authentication disk" + id = 7 diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 6de3978a4798..1f781e0b5d9f 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -704,6 +704,7 @@ This is here to make the tiles around the station mininuke change when it's arme user.visible_message("[user] was destroyed by the nuclear blast!") user.adjustOxyLoss(200) user.death(0) + SSachievements.unlock_achievement(/datum/achievement/honorarynukie, user.client) /obj/item/disk/nuclear/fake fake = TRUE diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index a776dbb6aaca..13c1702a3d35 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -369,9 +369,21 @@ text += "[icon2html('icons/badass.dmi', world, "badass")]" parts += text - + handle_achievements() return "
[parts.Join("
")]
" +/datum/team/nuclear/proc/handle_achievements() + switch(get_result()) + if(NUKE_RESULT_FLUKE) + for(var/mob/living/carbon/human/H in GLOB.player_list) //if you observe, too bad + if(!is_nuclear_operative(H)) + SSachievements.unlock_achievement(/datum/achievement/flukeops, H.client) + if(NUKE_RESULT_NUKE_WIN, NUKE_RESULT_DISK_LOST) + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(is_nuclear_operative(H)) + SSachievements.unlock_achievement(/datum/achievement/nukewin, H.client) + + /datum/team/nuclear/antag_listing_name() if(syndicate_name) return "[syndicate_name] Syndicates" From 3248c6648c6311ae5a49b35df5da6cb1b9c6a5ba Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 15:34:28 +0100 Subject: [PATCH 2/2] Apply suggestions from code review Co-Authored-By: Nichlas Pihl --- code/datums/achievements/achievements.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 31512f7318b9..b50b630cf106 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -25,15 +25,15 @@ /datum/achievement/flukeops name = "Reverse Card" - desc = "As a member of the Crew deal a Humiliating defeat to Nuclear Team" + desc = "As a member of the Crew, deal a Humiliating defeat to Nuclear Team" id = 5 /datum/achievement/nukewin name = "Delta Alert" - desc = "As a Nuclear Operative score a Major or Minor Victory" + desc = "As a Nuclear Operative, score a Major or Minor Victory" id = 6 /datum/achievement/honorarynukie name = "Honorary Nukie" - desc = "Kill yourself with the nuclear authentication disk" - id = 7 \ No newline at end of file + desc = "Kill yourself using the nuclear authentication disk" + id = 7