From 21b613c284a19c319741225dbbbbbaa12e2b6ebd Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 16:39:22 +0100 Subject: [PATCH 1/7] Badass syndie achievement --- code/datums/achievements/achievements.dm | 7 ++++++- code/modules/antagonists/traitor/datum_traitor.dm | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index cd522424614b..1143a3e0f0d7 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -4,7 +4,7 @@ var/id = 0 //Should be incremented so every achievement has a unique ID /datum/achievement/bubblegum - name = "Kick Ass and Chew Bubblegum." + name = "Kick Ass and Chew Bubblegum" desc = "Kill Bubblegum, the king of slaughter demons." //Should be improved(?) id = 1 @@ -22,3 +22,8 @@ name = "Catastrophe" desc = "Emag a Particle Accelerator" id = 4 + +/datum/achievement/badass + name = "Badass Syndie" + desc = "As a Traitor complete your objectives without buying any items" + id = 8 diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 2de67e6bfca9..91be0d5526da 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -398,6 +398,7 @@ if(TC_uses==0 && traitorwin) var/static/icon/badass = icon('icons/badass.dmi', "badass") uplink_text += "[icon2html(badass, world)]" + SSachievements.unlock_achievement(/datum/achievement/badass, owner.current.client) result += uplink_text result += objectives_text From 0e672b71d710d431a4104d5104cd5a2bd1d27120 Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 17:45:22 +0100 Subject: [PATCH 2/7] Add lead lined achievement --- code/datums/achievements/achievements.dm | 5 +++++ .../structures/crates_lockers/closets/secure/freezer.dm | 3 +++ 2 files changed, 8 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 1143a3e0f0d7..8b2a2caeb907 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -27,3 +27,8 @@ name = "Badass Syndie" desc = "As a Traitor complete your objectives without buying any items" id = 8 + +/datum/achievement/jones + name = "Lead Lined" + desc = "Survive an explosion while inside of a freezer" + id = 9 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index e33d231db5eb..8e70649f534e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -23,6 +23,9 @@ /obj/structure/closet/secure_closet/freezer/ex_act() if(!jones) jones = TRUE + for(var/mob/I in contents) + if(I.client && I.stat != DEAD) + SSachievements.unlock_achievement(/datum/achievement/jones, I.client) else ..() From 6545489f0202e2d37ccf21135199bed4ef2a5a87 Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 18:02:07 +0100 Subject: [PATCH 3/7] Add wizard win achievement --- code/datums/achievements/achievements.dm | 5 +++++ code/modules/antagonists/wizard/wizard.dm | 1 + 2 files changed, 6 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 8b2a2caeb907..c1f0fb0bcf20 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -32,3 +32,8 @@ name = "Lead Lined" desc = "Survive an explosion while inside of a freezer" id = 9 + +/datum/achievement/wizwin + name = "Scholars of the Arcane" + desc = "As a Wizard complete your objectives" + id = 10 diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index cdf68addf530..6effc95ebc15 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -304,6 +304,7 @@ if(wizardwin) parts += "The wizard was successful!" + SSachievements.unlock_achievement(/datum/achievement/wizwin, owner.current.client) //wizard wins, give achievement else parts += "The wizard has failed!" From 28dbb62ed0758befa354c65d73a414dd730a73c7 Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 18:22:37 +0100 Subject: [PATCH 4/7] Add CPR and changeling win achievements --- code/datums/achievements/achievements.dm | 15 +++++++++++++++ code/modules/antagonists/changeling/changeling.dm | 1 + code/modules/mob/living/carbon/human/human.dm | 3 +++ 3 files changed, 19 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index c1f0fb0bcf20..dec18e94a85a 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -37,3 +37,18 @@ name = "Scholars of the Arcane" desc = "As a Wizard complete your objectives" id = 10 + +/datum/achievement/cpr + name = "Breath of Life" + desc = "Perform CPR on someone" + id = 11 + +/datum/achievement/anticpr + name = "Breath of Death" + desc = "Perform CPR with someone with incompatible lungs" + id = 12 + +/datum/achievement/changelingwin + name = "The Thing" + desc = "As a Changeling, complete your objectives" + id = 13 diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 69cb5e125a31..6dee8174de05 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -568,6 +568,7 @@ if(changelingwin) parts += "The changeling was successful!" + SSachievements.unlock_achievement(/datum/achievement/changelingwin, owner.current.client) //changeling wins, give achivement else parts += "The changeling has failed." diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b20e1fa135f0..02a5e7338a0e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -643,15 +643,18 @@ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "perform_cpr", /datum/mood_event/perform_cpr) C.cpr_time = world.time log_combat(src, C, "CPRed") + SSachievements.unlock_achievement(/datum/achievement/cpr, client) // yogs start - can't CPR people with ash walker lungs whithout having them yourself if(they_breathe && they_ashlung && !we_ashlung) C.adjustOxyLoss(anticpr) C.updatehealth() to_chat(C, "You feel a breath of fresh air enter your lungs... you feel worse...") + SSachievements.unlock_achievement(/datum/achievement/anticpr, client) //you can get both achievements at the same time I guess else if(they_breathe && they_lung && we_ashlung) C.adjustOxyLoss(anticpr) C.updatehealth() to_chat(C, "You feel a breath of fresh air enter your lungs... you feel worse...") + SSachievements.unlock_achievement(/datum/achievement/anticpr, client) //yogs end else if(they_breathe && they_lung) var/suff = min(C.getOxyLoss(), 7) From 8f2d2194b67eca47ae9cc71d74897ac60c4967ab Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 18:36:54 +0100 Subject: [PATCH 5/7] Add shadowling ascending achievement --- code/datums/achievements/achievements.dm | 11 ++++++++--- .../shadowling/special_shadowling_abilities.dm | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index dec18e94a85a..bf1689768463 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -25,7 +25,7 @@ /datum/achievement/badass name = "Badass Syndie" - desc = "As a Traitor complete your objectives without buying any items" + desc = "As a traitor, complete your objectives without buying any items" id = 8 /datum/achievement/jones @@ -35,7 +35,7 @@ /datum/achievement/wizwin name = "Scholars of the Arcane" - desc = "As a Wizard complete your objectives" + desc = "As a wizard, complete your objectives" id = 10 /datum/achievement/cpr @@ -50,5 +50,10 @@ /datum/achievement/changelingwin name = "The Thing" - desc = "As a Changeling, complete your objectives" + desc = "As a changeling, complete your objectives" id = 13 + +/datum/achievement/slingascend + name = "The Dark Shadow" + desc = "As a shadowling, ascend successfully" + id = 14 diff --git a/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm b/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm index 8b3fcd1d7c0d..0fcbb44f378f 100644 --- a/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm +++ b/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm @@ -164,6 +164,7 @@ SEND_SOUND(M, sound('sound/hallucinations/veryfar_noise.ogg')) for(var/obj/machinery/power/apc/A in GLOB.apcs_list) A.overload_lighting() + SSachievements.unlock_achievement(/datum/achievement/slingascend, H.client) var/mob/A = new /mob/living/simple_animal/ascendant_shadowling(H.loc) for(var/X in H.mind.spell_list) var/obj/effect/proc_holder/spell/S = X From 70a5bf34e9769cb103364ee9debad5dc55f202de Mon Sep 17 00:00:00 2001 From: AsV9 Date: Tue, 3 Dec 2019 21:43:03 +0100 Subject: [PATCH 6/7] Add 3 more achievements, one for dying and two related to being cremated --- code/datums/achievements/achievements.dm | 19 +++++++++++++++++-- code/game/objects/structures/morgue.dm | 8 +++++++- code/modules/mob/living/carbon/human/death.dm | 3 +++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index bf1689768463..719417a6aa64 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -40,12 +40,12 @@ /datum/achievement/cpr name = "Breath of Life" - desc = "Perform CPR on someone" + desc = "Perform CPR on someone..." id = 11 /datum/achievement/anticpr name = "Breath of Death" - desc = "Perform CPR with someone with incompatible lungs" + desc = "... with incompatible lungs" id = 12 /datum/achievement/changelingwin @@ -57,3 +57,18 @@ name = "The Dark Shadow" desc = "As a shadowling, ascend successfully" id = 14 + +/datum/achievement/death + name = "Flatlined" + desc = "You died" + id = 15 + +/datum/achievement/cremated + name = "Back to Carbon" + desc = "Get cremated" + id = 16 + +/datum/achievement/cremated_alive + name = "Burn in Hell" + desc = "Get cremated... alive" + id = 17 diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index e50fa5f82d2d..b96a443887ef 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -261,8 +261,14 @@ GLOBAL_LIST_EMPTY(crematoriums) update_icon() for(var/mob/living/M in conts) - if (M.stat != DEAD) + if(M.stat != DEAD) M.emote("scream") + if(M.client) + if(M.stat != DEAD) + SSachievements.unlock_achievement(/datum/achievement/cremated_alive, M.client) //they are in body and alive, give achievement + SSachievements.unlock_achievement(/datum/achievement/cremated, M.client) //they are in body, but dead, they can have one achievement + else if(M.oobe_client) //they might be ghosted if they are dead, we'll allow it. + SSachievements.unlock_achievement(/datum/achievement/cremated, M.oobe_client) //no burning alive achievement if you are ghosted though if(user) log_combat(user, M, "cremated") else diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 3f2a47b7b821..607f176ec01e 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -47,6 +47,9 @@ var/datum/antagonist/hivemind/hive = mind.has_antag_datum(/datum/antagonist/hivemind) hive.destroy_hive() + if(client) + SSachievements.unlock_achievement(/datum/achievement/death, client) + /mob/living/carbon/human/proc/makeSkeleton() ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) set_species(/datum/species/skeleton) From c43f19e747fd172256bc1457f4976614c38988d3 Mon Sep 17 00:00:00 2001 From: AsV9 Date: Wed, 4 Dec 2019 18:50:46 +0100 Subject: [PATCH 7/7] fuck you github --- 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 a0ccb10e5897..074b916aa8ce 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -39,7 +39,7 @@ name = "Honorary Nukie" desc = "Kill yourself using the nuclear authentication disk" id = 7 - hidden = TRUE + hidden = TRUE /datum/achievement/badass name = "Badass Syndie" @@ -50,7 +50,7 @@ name = "Lead Lined" desc = "Survive an explosion while inside of a freezer" id = 9 - hidden = TRUE + hidden = TRUE /datum/achievement/wizwin name = "Scholars of the Arcane" @@ -66,7 +66,7 @@ name = "Breath of Death" desc = "... with incompatible lungs" id = 12 - hidden = TRUE + hidden = TRUE /datum/achievement/changelingwin name = "The Thing" @@ -92,4 +92,4 @@ name = "Burn in Hell" desc = "Get cremated... alive" id = 17 - hidden = TRUE \ No newline at end of file + hidden = TRUE