From f2cea5739e75b5806cd276387e2ea28d4abde55e Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 15:07:26 -0600 Subject: [PATCH 01/24] Adds Greentext achievement --- code/datums/achievements/achievements.dm | 8 ++++++++ code/modules/antagonists/_common/antag_datum.dm | 1 + 2 files changed, 9 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index b3d2d2c3e213..b1c38250e29f 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -131,3 +131,11 @@ name = "Duke of Ducats" desc = "As the QM, have a million cargo credits by the end of the round" //Cargoking-junior id = 22 + +// The achievements that are basically just "greentext as this sort of antag" + +/datum/achievement/greentext + name = "Green Text" + desc = "As an Antagonist achieve your first green text" + id = 23 + diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 4b862b512487..e360c8e18376 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -142,6 +142,7 @@ GLOBAL_LIST_EMPTY(antagonists) if(objectives.len == 0 || objectives_complete) report += "The [name] was successful!" + unlock_achievement(datum/achievement/greentext,owner.current) else report += "The [name] has failed!" From c784b0bd1a7ecca01a033d0541fc226cd9abb38d Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 15:07:46 -0600 Subject: [PATCH 02/24] Adds clockwork greentext achievements --- code/datums/achievements/achievements.dm | 10 ++++++++++ code/modules/antagonists/clockcult/clockcult.dm | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index b1c38250e29f..434f13013b81 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -139,3 +139,13 @@ desc = "As an Antagonist achieve your first green text" id = 23 +/datum/achievement/greentext/ratvar + name = "Clock Work" + desc = "As a Servant of Ratvar summon Ratvar" + id = 24 + +/datum/achievement/greentext/ratvar/eminence + name = "Clock Work" + desc = "As the Eminence, summon Ratvar" + id = 25 + diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index 57297bdc7337..b7ff3697e9c3 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -213,6 +213,10 @@ if(check_clockwork_victory()) parts += "Ratvar's servants defended the Ark until its activation!" + for(var/mind in SSticker.mode.servants_of_ratvar) + var/datum/mind/M = mind + unlock_achievement(datum/achievement/greentext/ratvar,M.current) + unlock_achievement(datum/achievement/greentext/ratvar/eminence,eminence.current) else parts += "The Ark was destroyed! Ratvar will rust away for all eternity!" parts += " " From 94a3ce73883d4c2b52f45f8e67db8c61b6ceeeba Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 16:25:41 -0600 Subject: [PATCH 03/24] Minor abductor win condition optimization saves 50 microseconds, I promise --- code/modules/antagonists/abductor/abductor.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index f11ca41b9388..edb187e860c3 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -146,6 +146,7 @@ for(var/datum/objective/O in objectives) if(!O.check_completion()) won = FALSE + break if(won) result += "[name] team fulfilled its mission!" else From 682a0ef5eb99eae51a833523de0291795751808e Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 16:28:06 -0600 Subject: [PATCH 04/24] Adds Cult greentext achievements --- code/datums/achievements/achievements.dm | 10 ++++++++++ code/modules/antagonists/cult/cult.dm | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 434f13013b81..3faa6388525e 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -149,3 +149,13 @@ desc = "As the Eminence, summon Ratvar" id = 25 +/datum/achievement/greentext/narsie + name = "Blood Rites" + desc = "As a member of Blood Cult summon Nar-Sie" + id = 26 + +/datum/achievement/greentext/narsie/master + name = "Master of Blood" + desc = "As a Cult Master, summon Nar-Sie" + id = 27 + diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index f21389261f62..24af1f445d89 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -380,6 +380,11 @@ if(check_cult_victory()) parts += "The cult has succeeded! Nar-sie has snuffed out another torch in the void!" + for(var/mind in members) + var/datum/mind/M = mind + unlock_achievement(datum/achievement/greentext/narsie,M.current) + if(M.has_antag_datum(datum/antagonist/cult/master)) + unlock_achievement(datum/achievement/greentext/narsie/master,M.current) else parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" From e4f2e783b4d695e5280f6bfe957c4c85567954a8 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 16:42:50 -0600 Subject: [PATCH 05/24] Adds Rev & RevHead greentext achievemetns --- code/datums/achievements/achievements.dm | 9 +++++++++ code/modules/antagonists/revolution/revolution.dm | 13 +++++++++++++ 2 files changed, 22 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 3faa6388525e..8637f6e25153 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -159,3 +159,12 @@ desc = "As a Cult Master, summon Nar-Sie" id = 27 +/datum/achievement/greentext/revolution + name = "Down with Nanotrasen" + desc = "As a Revolutionary, complete your objectives" + id = 28 + +/datum/achievement/greentext/revolution/head + name = "Viva la Revolution!" + desc = "As a Head Revolutionary, complete your objectives" + id = 29 diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index dc2b6cfd1731..f3a3d0bc52d1 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -303,6 +303,12 @@ addtimer(CALLBACK(src,.proc/update_heads),HEAD_UPDATE_PERIOD,TIMER_UNIQUE) +/datum/team/revolution/proc/check_victory() + for(var/datum/objective/O in objectives) + if(!O.check_completion()) + return FALSE + return TRUE + /datum/team/revolution/roundend_report() if(!members.len) return @@ -326,6 +332,13 @@ var/list/targets = list() var/list/datum/mind/headrevs = get_antag_minds(/datum/antagonist/rev/head) var/list/datum/mind/revs = get_antag_minds(/datum/antagonist/rev,TRUE) + if(check_victory()) + for(var/H in revs) + var/datum/mind/M = H + unlock_achievement(/datum/achievement/greentext/revolution,M.current) + if(M.has_antag_datum(/datum/antagonist/rev/head)) + unlock_achievement(/datum/achievement/greentext/revolution/head,M.current) + if(headrevs.len) var/list/headrev_part = list() headrev_part += "The head revolutionaries were:" From e831e7a54931017bdf2c00557298544ed135ca84 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 16:49:00 -0600 Subject: [PATCH 06/24] Adds Blob greentext achievement --- code/datums/achievements/achievements.dm | 5 +++++ code/modules/antagonists/blob/blob.dm | 2 ++ 2 files changed, 7 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 8637f6e25153..e90ccb0f3f9d 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -168,3 +168,8 @@ name = "Viva la Revolution!" desc = "As a Head Revolutionary, complete your objectives" id = 29 + +/datum/achievement/greentext/blob + name = "Grey Goo" + desc = "As a Blob complete your objectives" + id = 32 diff --git a/code/modules/antagonists/blob/blob.dm b/code/modules/antagonists/blob/blob.dm index 3d6db983dc42..813b45d3c4ed 100644 --- a/code/modules/antagonists/blob/blob.dm +++ b/code/modules/antagonists/blob/blob.dm @@ -16,6 +16,8 @@ if(!overmind.victory_in_progress) //if it won this doesn't really matter var/point_report = "
[owner.name] took over [overmind.max_count] tiles at the height of its growth." return basic_report+point_report + else + unlock_achievement(/datum/achievement/greentext/blob,overmind.client) return basic_report /datum/antagonist/blob/greet() From cf754f3b1472a07f0820e997cef791074920ea83 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 16:52:06 -0600 Subject: [PATCH 07/24] Makes all greentext achievements implicitly reward the generic one --- code/controllers/subsystem/achievements.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/subsystem/achievements.dm b/code/controllers/subsystem/achievements.dm index fcbae35b3515..f9f3cd2dedb8 100644 --- a/code/controllers/subsystem/achievements.dm +++ b/code/controllers/subsystem/achievements.dm @@ -52,6 +52,8 @@ SUBSYSTEM_DEF(achievements) if(!achievement) log_sql("Achievement [achievementPath] not found in list of achievements when trying to unlock for [C.ckey]") return FALSE + if(istype(achievement,/datum/achievement/greentext) && achievementPath != /datum/achievement/greentext) + unlock_achievement(/datum/achievement/greentext,C) // Oooh, a little bit recursive! if(!has_achievement(achievementPath, C)) var/datum/DBQuery/medalQuery = SSdbcore.NewQuery("INSERT INTO [format_table_name("earned_achievements")] (ckey, id) VALUES ('[C.ckey]', '[achievement.id]')") medalQuery.Execute() From 274d696aef3c6f8280066ee431a8eac57b912163 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 18:47:39 -0600 Subject: [PATCH 08/24] Makes several existant greentext achievements of type :achievement/greentext --- code/datums/achievements/achievements.dm | 6 +++--- code/modules/antagonists/changeling/changeling.dm | 2 +- code/modules/antagonists/wizard/wizard.dm | 2 +- .../antagonists/shadowling/special_shadowling_abilities.dm | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index e90ccb0f3f9d..19b9cc17ea27 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -52,7 +52,7 @@ id = 9 hidden = TRUE -/datum/achievement/wizwin +/datum/achievement/greentext/wizwin name = "Scholars of the Arcane" desc = "As a wizard, complete your objectives" id = 10 @@ -68,12 +68,12 @@ id = 12 hidden = TRUE -/datum/achievement/changelingwin +/datum/achievement/greentext/changelingwin name = "The Thing" desc = "As a changeling, complete your objectives" id = 13 -/datum/achievement/slingascend +/datum/achievement/greentext/slingascend name = "The Dark Shadow" desc = "As a shadowling, ascend successfully" id = 14 diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 6bfe77a78901..f4b51889c221 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -575,7 +575,7 @@ if(changelingwin) parts += "The changeling was successful!" - SSachievements.unlock_achievement(/datum/achievement/changelingwin, owner.current.client) //changeling wins, give achivement + SSachievements.unlock_achievement(/datum/achievement/greentext/changelingwin, owner.current.client) //changeling wins, give achivement else parts += "The changeling has failed." diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 6effc95ebc15..c050d382c661 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -304,7 +304,7 @@ if(wizardwin) parts += "The wizard was successful!" - SSachievements.unlock_achievement(/datum/achievement/wizwin, owner.current.client) //wizard wins, give achievement + SSachievements.unlock_achievement(/datum/achievement/greentext/wizwin, owner.current.client) //wizard wins, give achievement else parts += "The wizard has failed!" diff --git a/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm b/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm index 0fcbb44f378f..0de60f91815f 100644 --- a/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm +++ b/yogstation/code/modules/antagonists/shadowling/special_shadowling_abilities.dm @@ -164,7 +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) + SSachievements.unlock_achievement(/datum/achievement/greentext/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 c7d483656613e7fba8d421dd80556ef0e8697449 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 18:49:58 -0600 Subject: [PATCH 09/24] Adds clown-op greentext achievement, makes nukewin a greentext achievement --- code/datums/achievements/achievements.dm | 8 +++++++- code/modules/antagonists/nukeop/nukeop.dm | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 19b9cc17ea27..b3369a971aea 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -30,7 +30,7 @@ desc = "As a member of the Crew, deal a Humiliating defeat to Nuclear Team" id = 5 -/datum/achievement/nukewin +/datum/achievement/greentext/nukewin name = "Delta Alert" desc = "As a Nuclear Operative, score a Major or Minor Victory" id = 6 @@ -173,3 +173,9 @@ name = "Grey Goo" desc = "As a Blob complete your objectives" id = 32 + +/datum/achievement/greentext/clownop + name = "\"You wouldn't get it\"" + desc = "As a Clown Operative score a Major or Minor Victory" + id = 33 +//end-greentext diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 13c1702a3d35..6dcd2122ec38 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -380,8 +380,12 @@ 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) + var/datum/mind/M = H.mind + if(M && M.has_antag_datum(/datum/antagonist/nukeop)) + if(M.has_antag_datum(/datum/antagonist/nukeop/clownop) || M.has_antag_datum(/datum/antagonist/nukeop/leader/clownop)) + SSachievements.unlock_achievement(/datum/achievement/greentext/clownop, H.client) + else + SSachievements.unlock_achievement(/datum/achievement/greentext/nukewin, H.client) /datum/team/nuclear/antag_listing_name() From a7b7df6fff9cbc34bb52885c25f5ce512a65f5c2 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 18:55:39 -0600 Subject: [PATCH 10/24] Adds var for antag datums to mark which greentext achievement to give --- code/modules/antagonists/_common/antag_datum.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index e360c8e18376..2bce4da368c5 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -20,6 +20,7 @@ GLOBAL_LIST_EMPTY(antagonists) var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind var/antagpanel_category = "Uncategorized" //Antagpanel will display these together, REQUIRED var/show_name_in_check_antagonists = FALSE //Will append antagonist name in admin listings - use for categories that share more than one antag type + var/datum/achievement/greentext/greentext_achieve // The achievement received for greentexting as this antag type. Not all antag types use this to distribute their achievements. /datum/antagonist/New() GLOB.antagonists += src @@ -143,6 +144,8 @@ GLOBAL_LIST_EMPTY(antagonists) if(objectives.len == 0 || objectives_complete) report += "The [name] was successful!" unlock_achievement(datum/achievement/greentext,owner.current) + if(istype(greentext_achieve)) + unlock_achievement(greentext_achieve,owner.current) else report += "The [name] has failed!" From 6b1194f69baca605d8d603e97f8917c301d371d6 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 18:57:36 -0600 Subject: [PATCH 11/24] Adds EAA and IAA greentext achievements via greentext_achieve --- code/datums/achievements/achievements.dm | 10 ++++++++++ .../antagonists/traitor/IAA/internal_affairs.dm | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index b3369a971aea..3a2ed4d69143 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -178,4 +178,14 @@ name = "\"You wouldn't get it\"" desc = "As a Clown Operative score a Major or Minor Victory" id = 33 + +/datum/achievement/greentext/internal + name = "Triple Cross" + desc = "As an Internal Affairs Agent, complete your objectives" + id = 34 + +/datum/achievement/greentext/external + name = "Quadruple Cross" + desc = "As an External Affairs Agent, complete your objectives" + id = 35 //end-greentext diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index 32f4370d0fab..c35e97abcda4 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -12,7 +12,7 @@ var/syndicate = FALSE var/last_man_standing = FALSE var/list/datum/mind/targets_stolen - + greentext_achieve = /datum/achievement/greentext/internal /datum/antagonist/traitor/internal_affairs/proc/give_pinpointer() if(owner && owner.current) @@ -234,6 +234,7 @@ special_role = TRAITOR_AGENT_ROLE syndicate = TRUE forge_single_objective() + greentext_achieve = /datum/achievement/greentext/external /datum/antagonist/traitor/internal_affairs/forge_traitor_objectives() forge_iaa_objectives() From 907202e259a7fbf2f6dcbf01d97dd2a8e7c669fd Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 19:05:20 -0600 Subject: [PATCH 12/24] Adds achievement for wizard... losing *shrug --- code/datums/achievements/achievements.dm | 9 +++++++++ code/modules/antagonists/wizard/wizard.dm | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 3a2ed4d69143..5c8e74ffe69e 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -189,3 +189,12 @@ desc = "As an External Affairs Agent, complete your objectives" id = 35 //end-greentext + +//start-redtext + +/datum/achievement/redtext/winlost + name = "Arcane Failure" + desc = "As a Wizard, fail your objectives." + id = 36 + +//end-redtext diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index c050d382c661..7ae2d0a14f78 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -307,7 +307,7 @@ SSachievements.unlock_achievement(/datum/achievement/greentext/wizwin, owner.current.client) //wizard wins, give achievement else parts += "The wizard has failed!" - + SSachievements.unlock_achievement(/datum/achievement/redtext/winlost, owner.current.client) //wizard loses, still give achievement lol if(owner.spell_list.len>0) parts += "[owner.name] used the following spells: " var/list/spell_names = list() From 69b58ecc898b7e47e5804a7a1ebf47cadcebdef3 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 19:09:53 -0600 Subject: [PATCH 13/24] Adds greentext achievement for gangs --- code/datums/achievements/achievements.dm | 10 ++++++++++ yogstation/code/modules/antagonists/gang/gang.dm | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 5c8e74ffe69e..5cbfc03ffb14 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -169,6 +169,16 @@ desc = "As a Head Revolutionary, complete your objectives" id = 29 +/datum/achievement/greentext/gang + name = "Turf War" + desc = "As a Gang Member, take over the station" + id = 30 + +/datum/achievement/greentext/gang/leader + name = "\"I have built my organization upon fear.\"" + desc = "As a Gang Leader, take over the station" + id = 31 + /datum/achievement/greentext/blob name = "Grey Goo" desc = "As a Blob complete your objectives" diff --git a/yogstation/code/modules/antagonists/gang/gang.dm b/yogstation/code/modules/antagonists/gang/gang.dm index 777af61dd83d..2f1575000002 100644 --- a/yogstation/code/modules/antagonists/gang/gang.dm +++ b/yogstation/code/modules/antagonists/gang/gang.dm @@ -331,6 +331,10 @@ report += "[name]:" if(winner) report += "The [name] gang was successful!" + for(var/datum/mind/M in leaders) + unlock_achievement(/datum/achievement/greentext/gangleader,M.current) + for(var/datum/mind/M in members) // Leaders are included in this too + unlock_achievement(/datum/achievement/greentext/gang,M.current) // and so get the lower achievement, too else report += "The [name] gang has failed!" From 2f3ceb1b0cb37f5ad7d2d75c2e10f1bc9bb550ca Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 19:16:31 -0600 Subject: [PATCH 14/24] Makes wizard loss achievement hidden --- code/datums/achievements/achievements.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 5cbfc03ffb14..9abe2c6e094c 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -206,5 +206,5 @@ name = "Arcane Failure" desc = "As a Wizard, fail your objectives." id = 36 - + hidden = TRUE //end-redtext From b7accd87f2b3764a2acc9bf3aaba84c08492f0e1 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 19:35:18 -0600 Subject: [PATCH 15/24] Fixes compiletimes in the new greentext achievements --- code/datums/achievements/achievements.dm | 2 +- code/modules/antagonists/_common/antag_datum.dm | 4 ++-- code/modules/antagonists/blob/blob.dm | 2 +- code/modules/antagonists/clockcult/clockcult.dm | 4 ++-- code/modules/antagonists/cult/cult.dm | 6 +++--- code/modules/antagonists/revolution/revolution.dm | 4 ++-- yogstation/code/modules/antagonists/gang/gang.dm | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 9abe2c6e094c..b9364a3ec4b7 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -174,7 +174,7 @@ desc = "As a Gang Member, take over the station" id = 30 -/datum/achievement/greentext/gang/leader +/datum/achievement/greentext/gangleader name = "\"I have built my organization upon fear.\"" desc = "As a Gang Leader, take over the station" id = 31 diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 2bce4da368c5..fcfe76bd3eec 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -143,9 +143,9 @@ GLOBAL_LIST_EMPTY(antagonists) if(objectives.len == 0 || objectives_complete) report += "The [name] was successful!" - unlock_achievement(datum/achievement/greentext,owner.current) + SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current) if(istype(greentext_achieve)) - unlock_achievement(greentext_achieve,owner.current) + SSachievements.unlock_achievement(greentext_achieve,owner.current) else report += "The [name] has failed!" diff --git a/code/modules/antagonists/blob/blob.dm b/code/modules/antagonists/blob/blob.dm index 813b45d3c4ed..f878e1bf7715 100644 --- a/code/modules/antagonists/blob/blob.dm +++ b/code/modules/antagonists/blob/blob.dm @@ -17,7 +17,7 @@ var/point_report = "
[owner.name] took over [overmind.max_count] tiles at the height of its growth." return basic_report+point_report else - unlock_achievement(/datum/achievement/greentext/blob,overmind.client) + SSachievements.unlock_achievement(/datum/achievement/greentext/blob,overmind.client) return basic_report /datum/antagonist/blob/greet() diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index b7ff3697e9c3..39180e69f848 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -215,8 +215,8 @@ parts += "Ratvar's servants defended the Ark until its activation!" for(var/mind in SSticker.mode.servants_of_ratvar) var/datum/mind/M = mind - unlock_achievement(datum/achievement/greentext/ratvar,M.current) - unlock_achievement(datum/achievement/greentext/ratvar/eminence,eminence.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar/eminence,eminence.current) else parts += "The Ark was destroyed! Ratvar will rust away for all eternity!" parts += " " diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 24af1f445d89..7b8a61b12410 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -382,9 +382,9 @@ parts += "The cult has succeeded! Nar-sie has snuffed out another torch in the void!" for(var/mind in members) var/datum/mind/M = mind - unlock_achievement(datum/achievement/greentext/narsie,M.current) - if(M.has_antag_datum(datum/antagonist/cult/master)) - unlock_achievement(datum/achievement/greentext/narsie/master,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/narsie,M.current) + if(M.has_antag_datum(/datum/antagonist/cult/master)) + SSachievements.unlock_achievement(/datum/achievement/greentext/narsie/master,M.current) else parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index f3a3d0bc52d1..cf5675530ef5 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -335,9 +335,9 @@ if(check_victory()) for(var/H in revs) var/datum/mind/M = H - unlock_achievement(/datum/achievement/greentext/revolution,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/revolution,M.current) if(M.has_antag_datum(/datum/antagonist/rev/head)) - unlock_achievement(/datum/achievement/greentext/revolution/head,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/revolution/head,M.current) if(headrevs.len) var/list/headrev_part = list() diff --git a/yogstation/code/modules/antagonists/gang/gang.dm b/yogstation/code/modules/antagonists/gang/gang.dm index 2f1575000002..b10e74b47034 100644 --- a/yogstation/code/modules/antagonists/gang/gang.dm +++ b/yogstation/code/modules/antagonists/gang/gang.dm @@ -332,9 +332,9 @@ if(winner) report += "The [name] gang was successful!" for(var/datum/mind/M in leaders) - unlock_achievement(/datum/achievement/greentext/gangleader,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/gangleader,M.current) for(var/datum/mind/M in members) // Leaders are included in this too - unlock_achievement(/datum/achievement/greentext/gang,M.current) // and so get the lower achievement, too + SSachievements.unlock_achievement(/datum/achievement/greentext/gang,M.current) // and so get the lower achievement, too else report += "The [name] gang has failed!" From fe11b78dae716f2c24daf1a780646390c5b9556c Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 20:15:35 -0600 Subject: [PATCH 16/24] Adds greentext_achieve functionality to traitor antag types --- code/modules/antagonists/traitor/datum_traitor.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 252f5e62bafc..b41146508561 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -421,6 +421,9 @@ if(traitorwin) result += "The [special_role_text] was successful!" + SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current) + if(istype(greentext_achieve)) + SSachievements.unlock_achievement(greentext_achieve,owner.current) else result += "The [special_role_text] has failed!" SEND_SOUND(owner.current, 'sound/ambience/ambifailure.ogg') From 0358b9f6540c76b969adf271ca4222e60c50f4c5 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 20:50:00 -0600 Subject: [PATCH 17/24] Fixes all antags getting "Delta Alert" achievement upon greentext --- code/controllers/subsystem/achievements.dm | 2 +- code/datums/achievements/achievements.dm | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/achievements.dm b/code/controllers/subsystem/achievements.dm index f9f3cd2dedb8..2119f9c2e20c 100644 --- a/code/controllers/subsystem/achievements.dm +++ b/code/controllers/subsystem/achievements.dm @@ -92,6 +92,6 @@ SUBSYSTEM_DEF(achievements) /datum/controller/subsystem/achievements/proc/get_achievement(achievementPath) for(var/datum/achievement/i in achievements) - if(istype(i, achievementPath)) + if(i.type == achievementPath) // Can't use istype() here since it needs to be the EXACT correct type. return i return FALSE diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index b9364a3ec4b7..f113b7929f78 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -201,10 +201,14 @@ //end-greentext //start-redtext +/datum/achievement/redtext + name = "Mission Failed, We'll Get'em Next Time" + desc = "As an antagonist, fail your objectives." + id = 36 /datum/achievement/redtext/winlost name = "Arcane Failure" desc = "As a Wizard, fail your objectives." - id = 36 + id = 37 hidden = TRUE //end-redtext From 17e3e61c22346274d17e474adc1dd877af9c0143 Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Thu, 16 Jan 2020 21:20:09 -0600 Subject: [PATCH 18/24] Adds achievement for greentexting as Sentient Disease Don't ID increment at home, kids, the moment this goes like you can't pull this shit --- code/datums/achievements/achievements.dm | 9 +++++++-- code/modules/antagonists/disease/disease_datum.dm | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index f113b7929f78..8c424c6d2b59 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -198,17 +198,22 @@ name = "Quadruple Cross" desc = "As an External Affairs Agent, complete your objectives" id = 35 + +/datum/achievement/greentext/disease + name = "Space Aids" + desc = "As Sentient Disease, survive and complete your objectives" + id = 36 //end-greentext //start-redtext /datum/achievement/redtext name = "Mission Failed, We'll Get'em Next Time" desc = "As an antagonist, fail your objectives." - id = 36 + id = 37 /datum/achievement/redtext/winlost name = "Arcane Failure" desc = "As a Wizard, fail your objectives." - id = 37 + id = 38 hidden = TRUE //end-redtext diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm index 1aef9ceba6db..f55b5c8d9b79 100644 --- a/code/modules/antagonists/disease/disease_datum.dm +++ b/code/modules/antagonists/disease/disease_datum.dm @@ -57,6 +57,8 @@ if(win) result += "The [special_role_text] was successful!" + if(istype(owner.current, /mob/camera/disease)) + SSachievements.unlock_achievement(/datum/achievement/greentext/disease,owner.current.client) else result += "The [special_role_text] has failed!" From 30638527c49e42a6e7367f3ce2c4d6e0a2e9b20e Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 02:25:03 -0600 Subject: [PATCH 19/24] Adds greentext achievement for pirates --- code/datums/achievements/achievements.dm | 9 +++++++-- code/modules/antagonists/pirate/pirate.dm | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 8c424c6d2b59..0a8d1beda76a 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -203,17 +203,22 @@ name = "Space Aids" desc = "As Sentient Disease, survive and complete your objectives" id = 36 + +/datum/achievement/greentext/pirate + name = "Yaaaahr!" + desc = "As member of the Pirate crew, collect sufficient bounty from the crew" + id = 37 //end-greentext //start-redtext /datum/achievement/redtext name = "Mission Failed, We'll Get'em Next Time" desc = "As an antagonist, fail your objectives." - id = 37 + id = 38 /datum/achievement/redtext/winlost name = "Arcane Failure" desc = "As a Wizard, fail your objectives." - id = 38 + id = 39 hidden = TRUE //end-redtext diff --git a/code/modules/antagonists/pirate/pirate.dm b/code/modules/antagonists/pirate/pirate.dm index 754da76e10ac..c3d3acc1bcaa 100644 --- a/code/modules/antagonists/pirate/pirate.dm +++ b/code/modules/antagonists/pirate/pirate.dm @@ -101,6 +101,8 @@ if(L.check_completion() && !all_dead) parts += "The pirate crew was successful!" + for(var/datum/mind/M in members) + SSachievements.unlock_achievement(/datum/achievement/greentext/pirate,M.current.client) else parts += "The pirate crew has failed." From 1b6f404a9b71e972d9f99e953fde317400a0f09e Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 02:25:51 -0600 Subject: [PATCH 20/24] Fixes runtime in greentext achievements due to not passing client arg --- code/modules/antagonists/_common/antag_datum.dm | 3 ++- code/modules/antagonists/clockcult/clockcult.dm | 4 ++-- code/modules/antagonists/cult/cult.dm | 4 ++-- code/modules/antagonists/revolution/revolution.dm | 4 ++-- code/modules/antagonists/traitor/datum_traitor.dm | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index fcfe76bd3eec..1733ba5ea9c5 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -143,9 +143,10 @@ GLOBAL_LIST_EMPTY(antagonists) if(objectives.len == 0 || objectives_complete) report += "The [name] was successful!" - SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current) if(istype(greentext_achieve)) SSachievements.unlock_achievement(greentext_achieve,owner.current) + else // The above still does award the generic greentext achievement, just implicitly. + SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current.client) else report += "The [name] has failed!" diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index 39180e69f848..ac6b374fbf5d 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -215,8 +215,8 @@ parts += "Ratvar's servants defended the Ark until its activation!" for(var/mind in SSticker.mode.servants_of_ratvar) var/datum/mind/M = mind - SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar,M.current) - SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar/eminence,eminence.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar,M.current.client) + SSachievements.unlock_achievement(/datum/achievement/greentext/ratvar/eminence,eminence.current.client) else parts += "The Ark was destroyed! Ratvar will rust away for all eternity!" parts += " " diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 7b8a61b12410..2f142663e41b 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -382,9 +382,9 @@ parts += "The cult has succeeded! Nar-sie has snuffed out another torch in the void!" for(var/mind in members) var/datum/mind/M = mind - SSachievements.unlock_achievement(/datum/achievement/greentext/narsie,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/narsie,M.current.client) if(M.has_antag_datum(/datum/antagonist/cult/master)) - SSachievements.unlock_achievement(/datum/achievement/greentext/narsie/master,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/narsie/master,M.current.client) else parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index cf5675530ef5..ccd4895b3478 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -335,9 +335,9 @@ if(check_victory()) for(var/H in revs) var/datum/mind/M = H - SSachievements.unlock_achievement(/datum/achievement/greentext/revolution,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/revolution,M.current.client) if(M.has_antag_datum(/datum/antagonist/rev/head)) - SSachievements.unlock_achievement(/datum/achievement/greentext/revolution/head,M.current) + SSachievements.unlock_achievement(/datum/achievement/greentext/revolution/head,M.current.client) if(headrevs.len) var/list/headrev_part = list() diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index b41146508561..d1079c96fe71 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -421,7 +421,7 @@ if(traitorwin) result += "The [special_role_text] was successful!" - SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current) + SSachievements.unlock_achievement(/datum/achievement/greentext,owner.current.client) if(istype(greentext_achieve)) SSachievements.unlock_achievement(greentext_achieve,owner.current) else From 1f49b27c756da5f6b2f684b259ee4625c4ec0eea Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 02:47:19 -0600 Subject: [PATCH 21/24] Adds greentext achievements for Revenants and Vampires --- code/datums/achievements/achievements.dm | 15 +++++++++++++-- .../antagonists/revenant/revenant_antag.dm | 1 + yogstation/code/datums/antagonists/vampire.dm | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 0a8d1beda76a..7b8da9be78fe 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -208,17 +208,28 @@ name = "Yaaaahr!" desc = "As member of the Pirate crew, collect sufficient bounty from the crew" id = 37 + +/datum/achievement/greentext/vampire + name = "Count de Ville" + desc = "As a Vampire, complete your objectives" + id = 38 + +/datum/achievement/greentext/revenant + name = "From The Shadows" + desc = "As a Revenant, complete your objectives" + id = 39 + //end-greentext //start-redtext /datum/achievement/redtext name = "Mission Failed, We'll Get'em Next Time" desc = "As an antagonist, fail your objectives." - id = 38 + id = 40 /datum/achievement/redtext/winlost name = "Arcane Failure" desc = "As a Wizard, fail your objectives." - id = 39 + id = 41 hidden = TRUE //end-redtext diff --git a/code/modules/antagonists/revenant/revenant_antag.dm b/code/modules/antagonists/revenant/revenant_antag.dm index 8d99edf26ec6..f5b5aeb8ac1b 100644 --- a/code/modules/antagonists/revenant/revenant_antag.dm +++ b/code/modules/antagonists/revenant/revenant_antag.dm @@ -2,6 +2,7 @@ name = "Revenant" show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE + greentext_achieve = /datum/achievement/greentext/revenant /datum/antagonist/revenant/greet() owner.announce_objectives() diff --git a/yogstation/code/datums/antagonists/vampire.dm b/yogstation/code/datums/antagonists/vampire.dm index 89f637d9dc3b..997e53a15a8e 100644 --- a/yogstation/code/datums/antagonists/vampire.dm +++ b/yogstation/code/datums/antagonists/vampire.dm @@ -341,6 +341,7 @@ if(vampwin) result += "The vampire was successful!" + SSachievements.unlock_achievement(/datum/achievement/greentext/vampire, owner.current.client) else result += "The vampire has failed!" SEND_SOUND(owner.current, 'sound/ambience/ambifailure.ogg') From d0386a78e5d36b050765ee00d64999d97080bd4c Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 03:10:06 -0600 Subject: [PATCH 22/24] Adds offset defines to achievements.dm, for tidyness sake --- code/datums/achievements/achievements.dm | 64 +++++++++++++----------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index 7b8da9be78fe..e863327a8ae4 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -1,3 +1,7 @@ +//OFFSETS - Used so that each general like "group" of achievements can be added to w/o fucking up the whole incremental pattern we got going on. +//DO NOT MAKE OFFSET VALUES THAT ARE GREATER THAN 2^15 OR LESS THAN 128. +#define GREENTEXT 256 // An offset for new greentext-related achievements, to keep the incremental pattern. + /datum/achievement var/name = "achievement" var/desc = "Please make an issue on github, including this achievement's name and how you got it." @@ -132,104 +136,106 @@ desc = "As the QM, have a million cargo credits by the end of the round" //Cargoking-junior id = 22 +//start-redtext +/datum/achievement/redtext + name = "Mission Failed, We'll Get'em Next Time" + desc = "As an antagonist, fail your objectives." + id = 23 + +/datum/achievement/redtext/winlost + name = "Arcane Failure" + desc = "As a Wizard, fail your objectives." + id = 24 + hidden = TRUE +//end-redtext + // The achievements that are basically just "greentext as this sort of antag" /datum/achievement/greentext name = "Green Text" desc = "As an Antagonist achieve your first green text" - id = 23 + id = GREENTEXT + 1 /datum/achievement/greentext/ratvar name = "Clock Work" desc = "As a Servant of Ratvar summon Ratvar" - id = 24 + id = GREENTEXT + 2 /datum/achievement/greentext/ratvar/eminence name = "Clock Work" desc = "As the Eminence, summon Ratvar" - id = 25 + id = GREENTEXT + 3 /datum/achievement/greentext/narsie name = "Blood Rites" desc = "As a member of Blood Cult summon Nar-Sie" - id = 26 + id = GREENTEXT + 4 /datum/achievement/greentext/narsie/master name = "Master of Blood" desc = "As a Cult Master, summon Nar-Sie" - id = 27 + id = GREENTEXT + 5 /datum/achievement/greentext/revolution name = "Down with Nanotrasen" desc = "As a Revolutionary, complete your objectives" - id = 28 + id = GREENTEXT + 6 /datum/achievement/greentext/revolution/head name = "Viva la Revolution!" desc = "As a Head Revolutionary, complete your objectives" - id = 29 + id = GREENTEXT + 7 /datum/achievement/greentext/gang name = "Turf War" desc = "As a Gang Member, take over the station" - id = 30 + id = GREENTEXT + 8 /datum/achievement/greentext/gangleader name = "\"I have built my organization upon fear.\"" desc = "As a Gang Leader, take over the station" - id = 31 + id = GREENTEXT + 9 /datum/achievement/greentext/blob name = "Grey Goo" desc = "As a Blob complete your objectives" - id = 32 + id = GREENTEXT + 10 /datum/achievement/greentext/clownop name = "\"You wouldn't get it\"" desc = "As a Clown Operative score a Major or Minor Victory" - id = 33 + id = GREENTEXT + 11 /datum/achievement/greentext/internal name = "Triple Cross" desc = "As an Internal Affairs Agent, complete your objectives" - id = 34 + id = GREENTEXT + 12 /datum/achievement/greentext/external name = "Quadruple Cross" desc = "As an External Affairs Agent, complete your objectives" - id = 35 + id = GREENTEXT + 13 /datum/achievement/greentext/disease name = "Space Aids" desc = "As Sentient Disease, survive and complete your objectives" - id = 36 + id = GREENTEXT + 14 /datum/achievement/greentext/pirate name = "Yaaaahr!" desc = "As member of the Pirate crew, collect sufficient bounty from the crew" - id = 37 + id = GREENTEXT + 15 /datum/achievement/greentext/vampire name = "Count de Ville" desc = "As a Vampire, complete your objectives" - id = 38 + id = GREENTEXT + 16 /datum/achievement/greentext/revenant name = "From The Shadows" desc = "As a Revenant, complete your objectives" - id = 39 + id = GREENTEXT + 17 //end-greentext -//start-redtext -/datum/achievement/redtext - name = "Mission Failed, We'll Get'em Next Time" - desc = "As an antagonist, fail your objectives." - id = 40 - -/datum/achievement/redtext/winlost - name = "Arcane Failure" - desc = "As a Wizard, fail your objectives." - id = 41 - hidden = TRUE -//end-redtext +#undef GREENTEXT \ No newline at end of file From 41dec61bc618da263cc9b2f7c86013773cca57bd Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 03:13:22 -0600 Subject: [PATCH 23/24] Adds an offset define for redtexts too, just in case --- code/datums/achievements/achievements.dm | 28 +++++++++++++----------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index e863327a8ae4..b4b2102fef7b 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -1,6 +1,8 @@ //OFFSETS - Used so that each general like "group" of achievements can be added to w/o fucking up the whole incremental pattern we got going on. //DO NOT MAKE OFFSET VALUES THAT ARE GREATER THAN 2^15 OR LESS THAN 128. +//TO BE HONEST THIS OFFSET DOESN'T EVEN NEED TO BE POWER OF TWO, THOUGH. #define GREENTEXT 256 // An offset for new greentext-related achievements, to keep the incremental pattern. +#define REDTEXT 512 // Offset for redtexts. /datum/achievement var/name = "achievement" @@ -136,19 +138,6 @@ desc = "As the QM, have a million cargo credits by the end of the round" //Cargoking-junior id = 22 -//start-redtext -/datum/achievement/redtext - name = "Mission Failed, We'll Get'em Next Time" - desc = "As an antagonist, fail your objectives." - id = 23 - -/datum/achievement/redtext/winlost - name = "Arcane Failure" - desc = "As a Wizard, fail your objectives." - id = 24 - hidden = TRUE -//end-redtext - // The achievements that are basically just "greentext as this sort of antag" /datum/achievement/greentext @@ -238,4 +227,17 @@ //end-greentext +//start-redtext +/datum/achievement/redtext + name = "Mission Failed, We'll Get'em Next Time" + desc = "As an antagonist, fail your objectives." + id = REDTEXT + 1 + +/datum/achievement/redtext/winlost + name = "Arcane Failure" + desc = "As a Wizard, fail your objectives." + id = REDTEXT + 2 + hidden = TRUE +//end-redtext + #undef GREENTEXT \ No newline at end of file From 58a03d09ba5870c188171e6eeb57ef451c3ad21d Mon Sep 17 00:00:00 2001 From: Gary Lafortune Date: Fri, 17 Jan 2020 03:18:56 -0600 Subject: [PATCH 24/24] #undef REDTEXT --- code/datums/achievements/achievements.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/achievements/achievements.dm b/code/datums/achievements/achievements.dm index b4b2102fef7b..26b13ea155ef 100644 --- a/code/datums/achievements/achievements.dm +++ b/code/datums/achievements/achievements.dm @@ -240,4 +240,5 @@ hidden = TRUE //end-redtext -#undef GREENTEXT \ No newline at end of file +#undef GREENTEXT +#undef REDTEXT