Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions code/datums/achievements/achievements.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,18 @@
name = "Catastrophe"
desc = "Emag a Particle Accelerator"
id = 4

/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 using the nuclear authentication disk"
id = 7
1 change: 1 addition & 0 deletions code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,7 @@ This is here to make the tiles around the station mininuke change when it's arme
user.visible_message("<span class='suicide'>[user] was destroyed by the nuclear blast!</span>")
user.adjustOxyLoss(200)
user.death(0)
SSachievements.unlock_achievement(/datum/achievement/honorarynukie, user.client)

/obj/item/disk/nuclear/fake
fake = TRUE
Expand Down
14 changes: 13 additions & 1 deletion code/modules/antagonists/nukeop/nukeop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -369,9 +369,21 @@
text += "<BIG>[icon2html('icons/badass.dmi', world, "badass")]</BIG>"

parts += text

handle_achievements()
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"

/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"
Expand Down