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)