diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 0b395761605..737d5a4c6bc 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -196,7 +196,7 @@ /obj/item/weapon/tome/proc/finale_runes_ok(mob/living/user, obj/effect/rune/rune_to_scribe) var/datum/game_mode/cult/cult_mode = ticker.mode if(GAMEMODE_IS_CULT) - if(!canbypass == 1)//not an admin-tome, check things + if(!canbypass)//not an admin-tome, check things if(!cult_mode.narsie_condition_cleared) to_chat(user, "There is still more to do before unleashing [cult_mode.cultdat.entity_name] power!") return 0 @@ -210,14 +210,14 @@ to_chat(user, "[cult_mode.cultdat.entity_name]'s power does not wish to be unleashed!") return 0 var/confirm_final = alert(user, "This is the FINAL step to summon your dietys power, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for [cult_mode.cultdat.entity_name]!", "No") - if(confirm_final == "No") + if(confirm_final == "No" || confirm_final == null) to_chat(user, "You decide to prepare further before scribing the rune.") return 0 else return 1 else//the game mode is not cult..but we ARE a cultist...ALL ON THE ADMINBUS var/confirm_final = alert(user, "This is the FINAL step to summon your dietys power, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for [cult_mode.cultdat.entity_name]!", "No") - if(confirm_final == "No") + if(confirm_final == "No" || confirm_final == null) to_chat(user, "You decide to prepare further before scribing the rune.") return 0 else diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 50294159fd4..01baa948b32 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -475,36 +475,35 @@ var/list/teleport_runes = list() if(used) return var/mob/living/user = invokers[1] - if(GAMEMODE_IS_CULT) - var/datum/game_mode/cult/cult_mode = ticker.mode - if(!is_station_level(user.z)) - message_admins("[user.real_name]([user.ckey]) tried to summon an eldritch horror off station") - for(var/M in invokers) - var/mob/living/L = M - to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") - if(L.reagents) - L.reagents.add_reagent("hell_water", 10) - L.Weaken(7) - L.Stun(7) - fail_invoke() - log_game("Summon Nar-Sie rune failed - off station Z level") - return - if(!cult_mode.eldergod) - for(var/M in invokers) - to_chat(M, "[ticker.mode.cultdat.entity_name] is already on this plane!") - log_game("Summon god rune failed - already summoned") - return - //BEGIN THE SUMMONING - used = 1 - color = rgb(255, 0, 0) - ..() - world << 'sound/effects/dimensional_rend.ogg' - to_chat(world, "The veil... is... TORN!!!--") - icon_state = "rune_large_distorted" - var/turf/T = get_turf(src) - sleep(40) - new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed - cult_mode.eldergod = 0 + var/datum/game_mode/cult/cult_mode = ticker.mode + if(!is_station_level(user.z)) + message_admins("[user.real_name]([user.ckey]) tried to summon an eldritch horror off station") + for(var/M in invokers) + var/mob/living/L = M + to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") + if(L.reagents) + L.reagents.add_reagent("hell_water", 10) + L.Weaken(7) + L.Stun(7) + fail_invoke() + log_game("Summon Nar-Sie rune failed - off station Z level") + return + if(!cult_mode.eldergod) + for(var/M in invokers) + to_chat(M, "[ticker.mode.cultdat.entity_name] is already on this plane!") + log_game("Summon god rune failed - already summoned") + return + //BEGIN THE SUMMONING + used = 1 + color = rgb(255, 0, 0) + ..() + world << 'sound/effects/dimensional_rend.ogg' + to_chat(world, "The veil... is... TORN!!!--") + icon_state = "rune_large_distorted" + var/turf/T = get_turf(src) + sleep(40) + new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed + cult_mode.eldergod = 0 /obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal. if((istype(I, /obj/item/weapon/tome) && iscultist(user))) @@ -564,56 +563,55 @@ var/list/teleport_runes = list() if(used) return var/mob/living/user = invokers[1] - if(GAMEMODE_IS_CULT) - var/datum/game_mode/cult/cult_mode = ticker.mode - if(!(CULT_SLAUGHTER in cult_mode.objectives)) - message_admins("[usr.real_name]([user.ckey]) tried to summon demons when the objective was wrong") - for(var/M in invokers) - var/mob/living/L = M - to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") - if(L.reagents) - L.reagents.add_reagent("hell_water", 10) - L.Weaken(7) - L.Stun(7) - fail_invoke() - log_game("Summon Demons rune failed - improper objective") + var/datum/game_mode/cult/cult_mode = ticker.mode + if(!(CULT_SLAUGHTER in cult_mode.objectives)) + message_admins("[usr.real_name]([user.ckey]) tried to summon demons when the objective was wrong") + for(var/M in invokers) + var/mob/living/L = M + to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") + if(L.reagents) + L.reagents.add_reagent("hell_water", 10) + L.Weaken(7) + L.Stun(7) + fail_invoke() + log_game("Summon Demons rune failed - improper objective") + return + if(!is_station_level(user.z)) + message_admins("[user.real_name]([user.ckey]) tried to summon demons off station") + for(var/M in invokers) + var/mob/living/L = M + to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") + if(L.reagents) + L.reagents.add_reagent("hell_water", 10) + L.Weaken(7) + L.Stun(7) + fail_invoke() + log_game("Summon demons rune failed - off station Z level") + return + if(cult_mode.demons_summoned) + for(var/M in invokers) + to_chat(M, "Demons are already on this plane!") + log_game("Summon Demons rune failed - already summoned") return - if(!is_station_level(user.z)) - message_admins("[user.real_name]([user.ckey]) tried to summon demons off station") - for(var/M in invokers) - var/mob/living/L = M - to_chat(L, "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"") - if(L.reagents) - L.reagents.add_reagent("hell_water", 10) - L.Weaken(7) - L.Stun(7) - fail_invoke() - log_game("Summon demons rune failed - off station Z level") - return - if(cult_mode.demons_summoned) - for(var/M in invokers) - to_chat(M, "Demons are already on this plane!") - log_game("Summon Demons rune failed - already summoned") - return - //BEGIN THE SLAUGHTER - used = 1 - for(var/mob/living/M in range(1,src)) - if(iscultist(M)) - M.say("TOK-LYR RQA-NAP SHA-NEX!!") - world << 'sound/effects/dimensional_rend.ogg' - to_chat(world, "A hellish cacaphony bombards from all around as something awful tears through the world...") - icon_state = "rune_large_distorted" - sleep(55) - to_chat(world, "\"LIBREATE TE EX INFERIS!\"")//Fethas note:I COULDN'T HELP IT OKAY?! - visible_message("[src] melts away into blood, and three horrific figures emerge from within!") - var/turf/T = get_turf(src) - new /mob/living/simple_animal/slaughter/cult(T) - new /mob/living/simple_animal/slaughter/cult(T, pick(NORTH, EAST, SOUTH, WEST)) - new /mob/living/simple_animal/slaughter/cult(T, pick(NORTHEAST, SOUTHEAST, NORTHWEST, SOUTHWEST)) - cult_mode.demons_summoned = 1 - shuttle_master.emergency.request(null, 0.5,null) - cult_mode.third_phase() - qdel(src) + //BEGIN THE SLAUGHTER + used = 1 + for(var/mob/living/M in range(1,src)) + if(iscultist(M)) + M.say("TOK-LYR RQA-NAP SHA-NEX!!") + world << 'sound/effects/dimensional_rend.ogg' + to_chat(world, "A hellish cacaphony bombards from all around as something awful tears through the world...") + icon_state = "rune_large_distorted" + sleep(55) + to_chat(world, "\"LIBREATE TE EX INFERIS!\"")//Fethas note:I COULDN'T HELP IT OKAY?! + visible_message("[src] melts away into blood, and three horrific figures emerge from within!") + var/turf/T = get_turf(src) + new /mob/living/simple_animal/slaughter/cult(T) + new /mob/living/simple_animal/slaughter/cult(T, pick(NORTH, EAST, SOUTH, WEST)) + new /mob/living/simple_animal/slaughter/cult(T, pick(NORTHEAST, SOUTHEAST, NORTHWEST, SOUTHWEST)) + cult_mode.demons_summoned = 1 + shuttle_master.emergency.request(null, 0.5,null) + cult_mode.third_phase() + qdel(src) //Rite of Resurrection: Requires two corpses. Revives one and gibs the other. diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index c52b54e6f7b..4893aa9395e 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -46,7 +46,6 @@ ///Checks to see if the game can be setup and ran with the current number of players or whatnot. /datum/game_mode/proc/can_start() var/playerC = 0 - cultdat = setupcult() for(var/mob/new_player/player in player_list) if((player.client)&&(player.ready)) playerC++ @@ -63,6 +62,7 @@ ///pre_setup() ///Attempts to select players for special roles the mode might have. /datum/game_mode/proc/pre_setup() + cultdat = setupcult() return 1 diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 3bfb4e2fd4e..61abe7bf39e 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -152,6 +152,10 @@ /proc/setupcult() var/random_cult = pick(all_cults) var/picked_cult = new random_cult() //this seems redundent as fuck + log_startup_progress("Summoning eldritch horrors...") if(!picked_cult)//shouldn't happen BUT JUST TO BE SURE LET US KNOW - warning(" Failed to select a cult datum, Shank a coder!") + log_startup_progress(" Failed to select a cult datum, Shank a coder!") + else + log_startup_progress(" [picked_cult] has risen!") + //todo:add adminonly datum var, check for said var here... return picked_cult \ No newline at end of file diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0e0067eafe9..2a29e23db73 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -390,6 +390,12 @@ go_out() ..(severity) +/obj/machinery/sleeper/narsie_act() + go_out() + new /obj/effect/gibspawner/generic(get_turf(loc)) //I REPLACE YOUR TECHNOLOGY WITH FLESH! + qdel(src) + + // ??? // This looks cool, although mildly broken, should it be included again? /obj/machinery/sleeper/alter_health(mob/living/M as mob) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 538e389c083..f7b793b6033 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -193,6 +193,11 @@ A.blob_act() qdel(src) +/obj/machinery/bodyscanner/narsie_act() + go_out() + new /obj/effect/gibspawner/generic(get_turf(loc)) //I REPLACE YOUR TECHNOLOGY WITH FLESH! + qdel(src) + /obj/machinery/bodyscanner/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise if(M.environment_smash) M.do_attack_animation(src) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 0b078a74ec8..4a5b8bb5718 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -451,6 +451,12 @@ add_fingerprint(usr) return +/obj/machinery/bodyscanner/narsie_act() + go_out() + new /obj/effect/gibspawner/generic(get_turf(loc)) //I REPLACE YOUR TECHNOLOGY WITH FLESH! + color = "red"//force the icon to red + light_color = LIGHT_COLOR_RED + /obj/machinery/atmospherics/unary/cryo_cell/verb/move_inside() set name = "Move Inside" set category = "Object" diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 0a582221551..eabe8f13ad7 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -328,8 +328,8 @@ else if(is_sacrifice_target(occupant.mind)) var/datum/game_mode/cult/cult_mode = ticker.mode O.owner.objectives -= O + to_chat(O.owner.current, "Our god's chosen gift has gone past our reach, we have a new goal...Objectives Updated!") qdel(O) - to_chat(O.owner.current, "Our gods chosen gift has gone passed our reach, we have a new goal..Objectives Updated!") cult_mode.pick_objective() else if(O.target && istype(O.target,/datum/mind)) if(O.target == occupant.mind)