diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 16fb8fc490b..c2ccc129e25 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -37,6 +37,7 @@ #define MEDAL_TRAM_SURFER "Tram Surfer" #define MEDAL_CULT_SHUTTLE_OMFG "WHAT JUST HAPPENED" #define MEDAL_CLICKBAIT "Clickbait" +#define MEDAL_NARSUPREME "Narsupreme" //Skill medal hub IDs #define MEDAL_LEGENDARY_MINER "Legendary Miner" diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index f95167ba42b..21281ea07a7 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -186,3 +186,9 @@ desc = "Where's my free smartphone?!?" database_id = MEDAL_CLICKBAIT icon = "bait" + +/datum/award/achievement/misc/narsupreme + name = "If Nar'Sie is so good, why isn't there a..." + desc = "Even interdimensional space deitys need a friend." + database_id = MEDAL_NARSUPREME + icon = "narsupreme" diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 3a1d7f5c762..d635901fbae 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -254,16 +254,27 @@ /datum/team/cult name = "Cult" + ///The blood mark target var/blood_target + ///Image of the blood mark target var/image/blood_target_image + ///Timer for the blood mark expiration var/blood_target_reset_timer + ///Has a vote been called for a leader? var/cult_vote_called = FALSE + ///The cult leader var/mob/living/cult_master + ///Has the mass teleport been used yet? var/reckoning_complete = FALSE + ///Has the cult risen, and gotten red eyes? var/cult_risen = FALSE + ///Has the cult asceneded, and gotten halos? var/cult_ascendent = FALSE + ///Has narsie been summoned yet? + var/narsie_summoned = FALSE + /datum/team/cult/proc/check_size() if(cult_ascendent) return diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 02de740f057..26bb1101312 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -500,11 +500,12 @@ structure_check() searches for nearby cultist structures required for the invoca icon_state = "rune_large" pixel_x = -32 //So the big ol' 96x96 sprite shows up right pixel_y = -32 - scribe_delay = 500 //how long the rune takes to create + scribe_delay = 50 SECONDS //how long the rune takes to create scribe_damage = 40.1 //how much damage you take doing it log_when_erased = TRUE no_scribe_boost = TRUE erase_time = 5 SECONDS + ///Has the rune been used already? var/used = FALSE /obj/effect/rune/narsie/Initialize(mapload, set_keyword) @@ -520,26 +521,34 @@ structure_check() searches for nearby cultist structures required for the invoca if(!is_station_level(z)) return var/mob/living/user = invokers[1] - var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult, TRUE) var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/area/place = get_area(src) if(!(place in summon_objective.summon_spots)) to_chat(user, span_cultlarge("The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!")) return if(locate(/obj/narsie) in SSpoints_of_interest.narsies) - for(var/M in invokers) - to_chat(M, span_warning("Nar'Sie is already on this plane!")) + for(var/invoker in invokers) + to_chat(invoker, span_warning("Nar'Sie is already on this plane!")) log_game("Nar'Sie rune failed - already summoned") return + //BEGIN THE SUMMONING used = TRUE + var/datum/team/cult/cult_team = user_antag.cult_team + if (cult_team.narsie_summoned) + for (var/datum/mind/cultist_mind in cult_team.members) + var/mob/living/cultist_mob = cultist_mind.current + cultist_mob.client?.give_award(/datum/award/achievement/misc/narsupreme, cultist_mob) + + cult_team.narsie_summoned = TRUE ..() sound_to_playing_players('sound/effects/dimensional_rend.ogg') - var/turf/T = get_turf(src) - sleep(40) + var/turf/rune_turf = get_turf(src) + sleep(4 SECONDS) if(src) color = RUNE_COLOR_RED - new /obj/narsie(T) //Causes Nar'Sie to spawn even if the rune has been removed + new /obj/narsie(rune_turf) //Causes Nar'Sie to spawn even if the rune has been removed //Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every three sacrifices your cult has carried out. /obj/effect/rune/raise_dead diff --git a/icons/ui_icons/achievements/achievements.dmi b/icons/ui_icons/achievements/achievements.dmi index 15ca01fdece..cc8aba33f3d 100644 Binary files a/icons/ui_icons/achievements/achievements.dmi and b/icons/ui_icons/achievements/achievements.dmi differ