diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index d00acddecf2..51820eaf5f4 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -58,6 +58,7 @@
// if(!traitors.len)
// return 0
+ ..()
return 1
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index d8f4a7a3850..74a9ac9b217 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -51,7 +51,7 @@ var/list/blob_nodes = list()
if(!infected_crew.len)
return 0
-
+ ..()
return 1
/datum/game_mode/blob/proc/get_blob_candidates()
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 805db2be393..2793198681c 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -55,6 +55,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
changeling.restricted_roles = restricted_jobs
modePlayer += changelings
changeling.special_role = SPECIAL_ROLE_CHANGELING
+ ..()
return 1
else
return 0
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 6a92052eed5..30066bb6bc9 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -99,6 +99,7 @@ var/global/list/all_cults = list()
cult += cultist
cultist.restricted_roles = restricted_jobs
cultist.special_role = SPECIAL_ROLE_CULTIST
+ ..()
return (cult.len>0)
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index edf0912c4d6..cbbe5590475 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -7,6 +7,7 @@
force = 30
throwforce = 10
sharp = 1
+ edge = 1
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
diff --git a/code/game/gamemodes/cult/cult_objectives.dm b/code/game/gamemodes/cult/cult_objectives.dm
index a84a83be688..3449e4a1c95 100644
--- a/code/game/gamemodes/cult/cult_objectives.dm
+++ b/code/game/gamemodes/cult/cult_objectives.dm
@@ -192,9 +192,6 @@
if(total < 15)
message_admins("There are [total] players, too little for the mass convert objective!")
log_admin("There are [total] players, too little for the mass convert objective!")
- else if(total > 50)
- message_admins("There are [total] players, too many for the mass convert objective!")
- log_admin("There are [total] players, too many for the mass convert objective!")
else
possible_objectives |= "convert"
convert_target = round(total / 2)
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index da0cdc79e94..25d36079625 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -36,7 +36,10 @@
canbypass = 1
/obj/item/weapon/tome/New()
- icon_state = ticker.mode.cultdat.tome_icon
+ if(!ticker)
+ icon_state = "tome"
+ else
+ icon_state = ticker.mode.cultdat.tome_icon
..()
/obj/item/weapon/tome/examine(mob/user)
@@ -151,7 +154,7 @@
text += "Talisman of Stunning
Attacking a target will knock them down for a long duration in addition to inhibiting their speech. \
Robotic lifeforms will suffer the effects of a heavy electromagnetic pulse instead.
"
- text += "Talisman of Armaments
The Talisman of Arming will equip the user with armored robes, a backpack, an eldritch longsword, an empowered bola, and a pair of boots. Any items that cannot \
+ text += "Talisman of Armaments
The Talisman of Arming will equip the user with armored robes, a backpack, an eldritch longsword, an empowered bola. Any items that cannot \
be equipped will not be summoned. Attacking a fellow cultist with it will instead equip them.
"
text += "Talisman of Horrors
The Talisman of Horror must be applied directly to the victim, it will shatter your victim's mind with visions of the endtimes that may incapitate them.
"
@@ -194,10 +197,9 @@
return 1
/obj/item/weapon/tome/proc/finale_runes_ok(mob/living/user, obj/effect/rune/rune_to_scribe)
-
- if(ticker.mode.name == "cult")
- if(!canbypass == 1)//not an admin-tome, check things
- var/datum/game_mode/cult/cult_mode = ticker.mode
+ var/datum/game_mode/cult/cult_mode = ticker.mode
+ if(GAMEMODE_IS_CULT)
+ 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,20 +212,19 @@
if(!(CULT_ELDERGOD in cult_mode.objectives) || !(CULT_SLAUGHTER in cult_mode.objectives))
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 Nar-Sie!", "No")
- if(confirm_final == "No")
- to_chat(user, "You decide to prepare further before scribing the rune.")
- return
- else
- return 1
+ 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" || 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
- if(!canbypass == 1)//not an admin-tome, check things
- 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 Nar-Sie!", "No")
- if(confirm_final == "No")
- to_chat(user, "You decide to prepare further before scribing the rune.")
- return 0
- else
- return 1
+ 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" || confirm_final == null)
+ to_chat(user, "You decide to prepare further before scribing the rune.")
+ return 0
+ else
+ return 1
/obj/item/weapon/tome/proc/scribe_rune(mob/living/user)
var/turf/runeturf = get_turf(user)
@@ -273,6 +274,8 @@
N.icon_state = "shield-cult"
N.health = 60
shields |= N
+ else
+ return//don't do shit
var/mob/living/carbon/human/H = user
var/dam_zone = pick("head", "chest", "groin", "l_arm", "l_hand", "r_arm", "r_hand", "l_leg", "l_foot", "r_leg", "r_foot")
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 63baec609b7..30661ce3c3f 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -324,6 +324,7 @@ var/list/teleport_runes = list()
/obj/effect/rune/convert/invoke(var/list/invokers)
var/list/convertees = list()
var/turf/T = get_turf(src)
+
for(var/mob/living/M in T.contents)
if(!iscultist(M) && !isloyal(M))
convertees.Add(M)
@@ -341,6 +342,7 @@ var/list/teleport_runes = list()
log_game("Convert rune failed - convertee could not be converted")
return
..()
+
new_cultist.visible_message("[new_cultist] writhes in pain as the markings below them glow a bloody red!", \
"AAAAAAAAAAAAAA-")
ticker.mode.add_cultist(new_cultist.mind, 1)
@@ -473,48 +475,47 @@ var/list/teleport_runes = list()
if(used)
return
var/mob/living/user = invokers[1]
- if(istype(ticker.mode.name, "cult"))
- var/datum/game_mode/cult/cult_mode = ticker.mode
- if(!is_station_level(user.z))
- message_admins("[key_name_admin(user)] tried to summon Nar-Sie 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 Nar-Sie 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("[key_name_admin(user)] 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)))
user.visible_message("[user.name] begins erasing the [src]...", "You begin erasing the [src]...")
if(do_after(user, 50, target = src)) //Prevents accidental erasures.
- log_game("Summon Narsie rune erased by [key_name(user)] with a tome")
+ log_game("Summon Narsie rune erased by [user.mind.key] (ckey) with a tome")
message_admins("[key_name_admin(user)] erased a Narsie rune with a tome")
..()
return
else
if(istype(I, /obj/item/weapon/nullrod)) //Begone foul magiks. You cannot hinder me.
- log_game("Summon Narsie rune erased by [key_name(user)] using a null rod")
+ log_game("Summon Narsie rune erased by [user.mind.key] (ckey) using a null rod")
message_admins("[key_name_admin(user)] erased a Narsie rune with a null rod")
..()
return
@@ -546,13 +547,13 @@ var/list/teleport_runes = list()
if((istype(I, /obj/item/weapon/tome) && iscultist(user)))
user.visible_message("[user.name] begins erasing the [src]...", "You begin erasing the [src]...")
if(do_after(user, 50, target = src)) //Prevents accidental erasures.
- log_game("Summon demon rune erased by [key_name(user)] with a tome")
+ log_game("Summon demon rune erased by [user.mind.key] (ckey) with a tome")
message_admins("[key_name_admin(user)] erased a demon rune with a tome")
..()
return
else
if(istype(I, /obj/item/weapon/nullrod)) //Begone foul magiks. You cannot hinder me.
- log_game("Summon demon rune erased by [key_name(user)] using a null rod")
+ log_game("Summon demon rune erased by [user.mind.key] (ckey) using a null rod")
message_admins("[key_name_admin(user)] erased a demon rune with a null rod")
..()
return
@@ -562,56 +563,55 @@ var/list/teleport_runes = list()
if(used)
return
var/mob/living/user = invokers[1]
- if(istype(ticker.mode.name, "cult"))
- var/datum/game_mode/cult/cult_mode = ticker.mode
- if(!(CULT_SLAUGHTER in cult_mode.objectives))
- message_admins("[key_name_admin(user)] 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("[key_name_admin(user)] 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/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm
index 1d0ac22c81c..1b7d1bee5a9 100644
--- a/code/game/gamemodes/cult/talisman.dm
+++ b/code/game/gamemodes/cult/talisman.dm
@@ -272,15 +272,14 @@
"You speak the words of the talisman, arming yourself!")
H.equip_or_collect(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), slot_wear_suit)
H.equip_or_collect(new /obj/item/weapon/storage/backpack/cultpack(user), slot_back)
- H.drop_item()
H.put_in_hands(new /obj/item/weapon/melee/cultblade(user))
H.put_in_hands(new /obj/item/weapon/restraints/legcuffs/bola/cult(user))
/obj/item/weapon/paper/talisman/armor/attack(mob/living/target, mob/living/user)
if(iscultist(user) && iscultist(target))
user.drop_item()
- invoke(target)
qdel(src)
+ invoke(target)
return
..()
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/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 70207a75598..4819ab20671 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -53,6 +53,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
for(var/datum/mind/raider in raiders)
raider.assigned_role = "MODE"
raider.special_role = SPECIAL_ROLE_RAIDER
+ ..()
return 1
/datum/game_mode/heist/pre_setup()
diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm
index 32e4b081e94..dd0abda7e31 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction.dm
@@ -42,7 +42,7 @@
for(var/i=1,i<=abductor_teams,i++)
if(!make_abductor_team(i))
return 0
-
+ ..()
return 1
/datum/game_mode/abduction/proc/make_abductor_team(team_number,preset_agent=null,preset_scientist=null)
@@ -134,7 +134,7 @@
equip_scientist(H,team_number)
greet_scientist(scientist,team_number)
update_abductor_icons_added(scientist)
-
+
return ..()
//Used for create antag buttons
@@ -341,7 +341,7 @@
else
return 0
return 0
-
+
/datum/game_mode/proc/remove_abductor(datum/mind/abductor_mind)
if(abductor_mind in abductors)
ticker.mode.abductors -= abductor_mind
@@ -351,7 +351,7 @@
to_chat(abductor_mind.current, "You have been turned into a robot! You are no longer an abductor.")
else
to_chat(abductor_mind.current, "You have been brainwashed! You are no longer an abductor.")
- ticker.mode.update_abductor_icons_added(abductor_mind)
+ ticker.mode.update_abductor_icons_added(abductor_mind)
/datum/game_mode/proc/update_abductor_icons_added(datum/mind/alien_mind)
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_ABDUCTOR]
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 13219b46e10..aff2ff5ccb6 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -55,6 +55,7 @@ proc/issyndicate(mob/living/M as mob)
/datum/game_mode/nuclear/pre_setup()
+ ..()
return 1
/datum/game_mode/proc/remove_operative(datum/mind/operative_mind)
@@ -68,8 +69,8 @@ proc/issyndicate(mob/living/M as mob)
to_chat(operative_mind.current, "You have been turned into a robot! You are no longer a Syndicate operative.")
else
to_chat(operative_mind.current, "You have been brainwashed! You are no longer a Syndicate operative.")
- ticker.mode.update_synd_icons_removed(operative_mind)
-
+ ticker.mode.update_synd_icons_removed(operative_mind)
+
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
@@ -161,8 +162,8 @@ proc/issyndicate(mob/living/M as mob)
head_organ.b_hair = color2B(hair_c)
M.change_eye_color(color2R(eye_c), color2G(eye_c), color2B(eye_c))
M.s_tone = skin_tone
- head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
- head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
+ head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
+ head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
M.body_accessory = null
M.regenerate_icons()
M.update_body()
diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm
index bf8a106109a..bf9b481de3c 100644
--- a/code/game/gamemodes/shadowling/shadowling.dm
+++ b/code/game/gamemodes/shadowling/shadowling.dm
@@ -97,6 +97,7 @@ Made by Xhuis
shadow.special_role = SPECIAL_ROLE_SHADOWLING
shadow.restricted_roles = restricted_jobs
shadowlings--
+ ..()
return 1
diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm
index 068ad772b66..b06db47f02c 100644
--- a/code/game/gamemodes/vampire/traitor_vamp.dm
+++ b/code/game/gamemodes/vampire/traitor_vamp.dm
@@ -32,7 +32,8 @@
slaved.masters += vampire
vampire.som = slaved //we MIGT want to mindslave someone
vampire.restricted_roles = restricted_jobs
- return ..()
+ ..()
+ return 1
else
return 0
diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm
index 46bba1522dd..b9e07827474 100644
--- a/code/game/gamemodes/vampire/vampire.dm
+++ b/code/game/gamemodes/vampire/vampire.dm
@@ -59,6 +59,7 @@
slaved.masters += vampire
vampire.som = slaved //we MIGT want to mindslave someone
vampire.special_role = SPECIAL_ROLE_VAMPIRE
+ ..()
return 1
else
return 0
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index a38e7dc5541..141a19a6d90 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -38,7 +38,7 @@
/datum/game_mode/wizard/pre_setup()
for(var/datum/mind/wiz in wizards)
wiz.current.loc = pick(wizardstart)
-
+ ..()
return 1
@@ -54,7 +54,7 @@
update_wiz_icons_added(wizard)
..()
-
+
/datum/game_mode/proc/remove_wizard(datum/mind/wizard_mind)
if(wizard_mind in wizards)
ticker.mode.wizards -= wizard_mind
@@ -66,8 +66,8 @@
to_chat(wizard_mind.current, "You have been turned into a robot! You can feel your magical powers fading away...")
else
to_chat(wizard_mind.current, "You have been brainwashed! You are no longer a wizard.")
- ticker.mode.update_wiz_icons_removed(wizard_mind)
-
+ ticker.mode.update_wiz_icons_removed(wizard_mind)
+
/datum/game_mode/proc/update_wiz_icons_added(datum/mind/wiz_mind)
var/datum/atom_hud/antag/wizhud = huds[ANTAG_HUD_WIZ]
wizhud.join_hud(wiz_mind.current)
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..de5d69c2bbc 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -451,6 +451,12 @@
add_fingerprint(usr)
return
+/obj/machinery/atmospherics/unary/cryo_cell/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/rechargestation.dm b/code/game/machinery/rechargestation.dm
index ac88d755561..343841b639c 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -92,6 +92,12 @@
A.blob_act()
qdel(src)
+/obj/machinery/recharge_station/narsie_act()
+ go_out()
+ new /obj/effect/gibspawner/generic(get_turf(loc)) //I REPLACE YOUR TECHNOLOGY WITH FLESH!
+ qdel(src)
+
+
/obj/machinery/recharge_station/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/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index fa16d85a626..26344ec96f1 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -24,7 +24,7 @@ var/global/list/image/splatter_cache=list()
/obj/effect/decal/cleanable/blood/New()
..()
update_icon()
- if(ticker && ticker.mode && istype(ticker.mode.name, "cult"))
+ if(GAMEMODE_IS_CULT)
var/datum/game_mode/cult/mode_ticker = ticker.mode
var/turf/T = get_turf(src)
if(T && (is_station_level(T.z)))//F I V E T I L E S
@@ -45,7 +45,7 @@ var/global/list/image/splatter_cache=list()
dry()
/obj/effect/decal/cleanable/blood/Destroy()
- if(ticker.mode && istype(ticker.mode.name, "cult"))
+ if(GAMEMODE_IS_CULT)
var/datum/game_mode/cult/mode_ticker = ticker.mode
var/turf/T = get_turf(src)
if(T && (is_station_level(T.z)))
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index 43782f8b2ce..03b1d07b85b 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -123,6 +123,8 @@
/obj/singularity/narsie/proc/acquire(var/mob/food)
+ if(food == target)
+ return
to_chat(target, "[uppertext(ticker.mode.cultdat.entity_name)] HAS LOST INTEREST IN YOU")
target = food
if(ishuman(target))
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 4a3a484a14f..48d76f691aa 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/paradise.dme b/paradise.dme
index b0417dc5ee5..0f96de59c40 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1613,7 +1613,6 @@
#include "code\modules\mob\living\silicon\robot\robot_damage.dm"
#include "code\modules\mob\living\silicon\robot\robot_items.dm"
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
-#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm"
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
#include "code\modules\mob\living\silicon\robot\update_status.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone.dm"