Makes offstation roles (bar ERT) unable to be sharded (#16102)

* Makes offstation roles (bar ERT) unable to be converted / sharded

* Grammer changes

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

* either or

* Update code/game/gamemodes/cult/runes.dm

Co-authored-by: dearmochi <shenesis@gmail.com>

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
Co-authored-by: dearmochi <shenesis@gmail.com>
This commit is contained in:
Qwertytoforty
2021-05-29 21:11:06 +01:00
committed by GitHub
co-authored by SteelSlayer dearmochi
parent b4b30ae694
commit 15a2ac8f1d
2 changed files with 10 additions and 2 deletions
+6 -2
View File
@@ -366,6 +366,7 @@ structure_check() searches for nearby cultist structures required for the invoca
return
var/sacrifice_fulfilled
var/worthless = FALSE
var/datum/game_mode/gamemode = SSticker.mode
if(offering.mind)
GLOB.sacrificed += offering.mind
@@ -379,13 +380,16 @@ structure_check() searches for nearby cultist structures required for the invoca
if(sacrifice_fulfilled)
to_chat(M, "<span class='cultlarge'>\"Yes! This is the one I desire! You have done well.\"</span>")
else
if(ishuman(offering) || isrobot(offering))
if(ishuman(offering) && offering.mind.offstation_role && offering.mind.special_role != SPECIAL_ROLE_ERT) //If you try it on a ghost role, you get nothing
to_chat(M, "<span class='cultlarge'>\"This soul is of no use to either of us.\"</span>")
worthless = TRUE
else if(ishuman(offering) || isrobot(offering))
to_chat(M, "<span class='cultlarge'>\"I accept this sacrifice.\"</span>")
else
to_chat(M, "<span class='cultlarge'>\"I accept this meager sacrifice.\"</span>")
playsound(offering, 'sound/misc/demon_consume.ogg', 100, TRUE)
if((ishuman(offering) || isrobot(offering) || isbrain(offering)) && offering.mind)
if(((ishuman(offering) || isrobot(offering) || isbrain(offering)) && offering.mind) && !worthless)
var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src))
stone.invisibility = INVISIBILITY_MAXIMUM // So it's not picked up during transfer_soul()
stone.transfer_soul("FORCE", offering, user) // If it cannot be added
+4
View File
@@ -95,6 +95,10 @@
to_chat(user, "<span class='cultlarge'>\"Come now, do not capture your fellow's soul.\"</span>")
return ..()
if(M.mind.offstation_role && M.mind.special_role != SPECIAL_ROLE_ERT)
to_chat(user, "<span class='warning'>This being's soul seems worthless. Not even the stone will absorb it.</span>")
return ..()
if(optional)
if(!M.ckey)
to_chat(user, "<span class='warning'>They have no soul!</span>")