mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
Merge pull request #13685 from dearmochi/cultists-cant-spell
Add Rite of Spellcheck for cult
This commit is contained in:
@@ -84,8 +84,8 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
var/survivors = 0
|
||||
|
||||
/datum/game_mode/cult/announce()
|
||||
to_chat(world, "<B>The current game mode is - Cult!</B>")
|
||||
to_chat(world, "<B>Some crewmembers are attempting to start a cult!<BR>\nCultists - complete your objectives. Convert crewmembers to your cause by using the convert rune. Remember - there is no you, there is only the cult.<BR>\nPersonnel - Do not let the cult succeed in its mission. Brainwashing them with the chaplain's bible reverts them to whatever CentComm-allowed faith they had.</B>")
|
||||
to_chat(world, "<b>The current game mode is - Cult!</b>")
|
||||
to_chat(world, "<b>Some crew members are attempting to start a cult!<br>\nCultists - complete your objectives. Convert crew members to your cause by using the convert rune. Remember - there is no you, there is only the cult.<br>\nPersonnel - Do not let the cult succeed in its mission. Brainwashing them with the chaplain's bible reverts them to whatever CentComm-allowed faith they had.</b>")
|
||||
|
||||
|
||||
/datum/game_mode/cult/pre_setup()
|
||||
@@ -147,8 +147,8 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
explanation = "Free objective."
|
||||
if("eldergod")
|
||||
explanation = "Summon [SSticker.cultdat.entity_name] by invoking the 'Tear Reality' rune.<b>The summoning can only be accomplished in [english_list(GLOB.summon_spots)] - where the veil is weak enough for the ritual to begin.</b>"
|
||||
to_chat(cult_mind.current, "<B>Objective #[obj_count]</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective #[obj_count]</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective #[obj_count]</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective #[obj_count]</b>: [explanation]<br>"
|
||||
|
||||
|
||||
/datum/game_mode/proc/equip_cultist(mob/living/carbon/human/mob)
|
||||
@@ -210,7 +210,7 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
update_cult_icons_removed(cult_mind)
|
||||
if(show_message)
|
||||
for(var/mob/M in viewers(cult_mind.current))
|
||||
to_chat(M, "<FONT size = 3>[cult_mind.current] looks like [cult_mind.current.p_they()] just reverted to [cult_mind.current.p_their()] old faith!</FONT>")
|
||||
to_chat(M, "<font size=3>[cult_mind.current] looks like [cult_mind.current.p_they()] just reverted to [cult_mind.current.p_their()] old faith!</font>")
|
||||
|
||||
|
||||
/datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind)
|
||||
@@ -284,11 +284,11 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
if(!check_cult_victory())
|
||||
feedback_set_details("round_end_result","cult win - cult win")
|
||||
feedback_set("round_end_result",acolytes_survived)
|
||||
to_chat(world, "<span class='danger'> <FONT size = 3> The cult wins! It has succeeded in serving its dark masters!</FONT></span>")
|
||||
to_chat(world, "<span class='danger'> <font size=3>The cult wins! It has succeeded in serving its dark masters!</font></span>")
|
||||
else
|
||||
feedback_set_details("round_end_result","cult loss - staff stopped the cult")
|
||||
feedback_set("round_end_result",acolytes_survived)
|
||||
to_chat(world, "<span class='warning'> <FONT size = 3>The staff managed to stop the cult!</FONT></span>")
|
||||
to_chat(world, "<span class='warning'> <font size=3>The staff managed to stop the cult!</font></span>")
|
||||
|
||||
var/text = "<b>Cultists escaped:</b> [acolytes_survived]"
|
||||
|
||||
@@ -299,7 +299,7 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
switch(objectives[obj_count])
|
||||
if("survive")
|
||||
if(!check_survive())
|
||||
explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]")
|
||||
else
|
||||
explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. <font color='red'>Fail.</font>"
|
||||
@@ -307,7 +307,7 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
if("sacrifice")
|
||||
if(sacrifice_target)
|
||||
if(sacrifice_target in sacrificed)
|
||||
explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_sacrifice|SUCCESS")
|
||||
else if(sacrifice_target && sacrifice_target.current)
|
||||
explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. <font color='red'>Fail.</font>"
|
||||
@@ -317,7 +317,7 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
feedback_add_details("cult_objective","cult_sacrifice|FAIL|GIBBED")
|
||||
if("eldergod")
|
||||
if(!eldergod)
|
||||
explanation = "Summon [SSticker.cultdat.entity_name]. <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Summon [SSticker.cultdat.entity_name]. <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_narsie|SUCCESS")
|
||||
else
|
||||
explanation = "Summon [SSticker.cultdat.entity_name]. <font color='red'>Fail.</font>"
|
||||
@@ -332,45 +332,45 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
|
||||
if("convert")//convert half the crew
|
||||
if(cult.len >= convert_target)
|
||||
explanation = "Convert [convert_target] crewmembers ([cult.len] cultists at round end). <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Convert [convert_target] crew members ([cult.len] cultists at round end). <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_convertion|SUCCESS")
|
||||
else
|
||||
explanation = "Convert [convert_target] crewmembers ([cult.len] total cultists). <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Convert [convert_target] crew members ([cult.len] total cultists). <font color='red'><b>Fail.</b></font>"
|
||||
feedback_add_details("cult_objective","cult_convertion|FAIL")
|
||||
|
||||
if("bloodspill")//cover a large portion of the station in blood
|
||||
if(max_spilled_blood >= spilltarget)
|
||||
explanation = "Cover [spilltarget] tiles of the station in blood (The peak number of covered tiles was: [max_spilled_blood]). <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Cover [spilltarget] tiles of the station in blood (The peak number of covered tiles was: [max_spilled_blood]). <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_bloodspill|SUCCESS")
|
||||
else
|
||||
explanation = "Cover [spilltarget] tiles of the station in blood (The peak number of covered tiles was: [max_spilled_blood]). <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Cover [spilltarget] tiles of the station in blood (The peak number of covered tiles was: [max_spilled_blood]). <font color='red'><b>Fail.</b></font>"
|
||||
feedback_add_details("cult_objective","cult_bloodspill|FAIL")
|
||||
|
||||
if("harvest")
|
||||
if(harvested > harvest_target)
|
||||
explanation = "Offer [harvest_target] humans for [SSticker.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Offer [harvest_target] humanoids for [SSticker.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_harvest|SUCCESS")
|
||||
else
|
||||
explanation = "Offer [harvest_target] humans for [SSticker.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Offer [harvest_target] humanoids for [SSticker.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='red'><b>Fail.</b></font>"
|
||||
feedback_add_details("cult_objective","cult_harvest|FAIL")
|
||||
|
||||
if("hijack")
|
||||
if(!escaped_shuttle)
|
||||
explanation = "Do not let a single non-cultist board the Escape Shuttle. ([escaped_shuttle] escaped on the shuttle) ([escaped_pod] escaped on pods) <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Do not let a single non-cultist board the Escape Shuttle. ([escaped_shuttle] escaped on the shuttle) ([escaped_pod] escaped on pods) <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_hijack|SUCCESS")
|
||||
else
|
||||
explanation = "Do not let a single non-cultist board the Escape Shuttle. ([escaped_shuttle] escaped on the shuttle) ([escaped_pod] escaped on pods) <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Do not let a single non-cultist board the Escape Shuttle. ([escaped_shuttle] escaped on the shuttle) ([escaped_pod] escaped on pods) <font color='red'><b>Fail.</b></font>"
|
||||
feedback_add_details("cult_objective","cult_hijack|FAIL")
|
||||
|
||||
if("massacre")
|
||||
if(survivors < massacre_target)
|
||||
explanation = "Massacre the crew until less than [massacre_target] people are left on the station. ([survivors] humans left alive) <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Massacre the crew until less than [massacre_target] people are left on the station. ([survivors] humanoids left alive) <font color='green'><b>Success!</b></font>"
|
||||
feedback_add_details("cult_objective","cult_massacre|SUCCESS")
|
||||
else
|
||||
explanation = "Massacre the crew until less than [massacre_target] people are left on the station. ([survivors] humans left alive) <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Massacre the crew until less than [massacre_target] people are left on the station. ([survivors] humanoids left alive) <font color='red'><b>Fail.</b></font>"
|
||||
feedback_add_details("cult_objective","cult_massacre|FAIL")
|
||||
|
||||
text += "<br><B>Objective #[obj_count]</B>: [explanation]"
|
||||
text += "<br><b>Objective #[obj_count]</b>: [explanation]"
|
||||
|
||||
to_chat(world, text)
|
||||
..()
|
||||
@@ -379,7 +379,7 @@ GLOBAL_LIST_EMPTY(all_cults)
|
||||
|
||||
/datum/game_mode/proc/auto_declare_completion_cult()
|
||||
if(cult.len || (SSticker && GAMEMODE_IS_CULT))
|
||||
var/text = "<FONT size = 2><B>The cultists were:</B></FONT>"
|
||||
var/text = "<font size = 2><b>The cultists were:</b></font>"
|
||||
for(var/datum/mind/cultist in cult)
|
||||
|
||||
text += "<br>[cultist.key] was [cultist.name] ("
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
return
|
||||
|
||||
if((MUTE in user.mutations) || user.mind.miming) //Under vow of silence/mute?
|
||||
user.visible_message("[user] appears to whisper to themselves.","You begin to whisper to yourself.") //Make them do *something* abnormal.
|
||||
user.visible_message("[user] appears to whisper to [user.p_them()]self.","You begin to whisper to yourself.") //Make them do *something* abnormal.
|
||||
else
|
||||
user.whisper("O bidai nabora se[pick("'","`")]sma!") // Otherwise book club sayings.
|
||||
sleep(10)
|
||||
@@ -35,8 +35,8 @@
|
||||
if(!((MUTE in user.mutations) || user.mind.miming)) // If they aren't mute/miming, commence the whisperting
|
||||
user.whisper(message)
|
||||
var/my_message
|
||||
if(istype(user, /mob/living/simple_animal/slaughter/cult)) //Harbringers of the Slaughter
|
||||
my_message = "<span class='cultlarge'><b>Harbringer of the Slaughter:</b> [message]</span>"
|
||||
if(istype(user, /mob/living/simple_animal/slaughter/cult)) //Harbingers of the Slaughter
|
||||
my_message = "<span class='cultlarge'><b>Harbinger of the Slaughter:</b> [message]</span>"
|
||||
else
|
||||
my_message = "<span class='cultspeech'><b>[(ishuman(user) ? "Acolyte" : "Construct")] [user.real_name]:</b> [message]</span>"
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
/obj/item/clothing/suit/magusred
|
||||
name = "magus robes"
|
||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
||||
desc = "A set of armored robes worn by the followers of Nar-Sie."
|
||||
icon_state = "magusred"
|
||||
item_state = "magusred"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/cult_shield
|
||||
name = "empowered cultist robe"
|
||||
desc = "Empowered garb which creates a powerful shield around the user."
|
||||
desc = "An empowered garb which creates a powerful shield around the user."
|
||||
icon_state = "cult_armour"
|
||||
item_state = "cult_armour"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
/obj/item/clothing/head/hooded/cult_hoodie
|
||||
name = "empowered cultist robe"
|
||||
desc = "Empowered garb which creates a powerful shield around the user."
|
||||
desc = "An empowered garb which creates a powerful shield around the user."
|
||||
icon_state = "cult_hoodalt"
|
||||
armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 20, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
|
||||
body_parts_covered = HEAD
|
||||
@@ -213,8 +213,8 @@
|
||||
list_reagents = list("unholywater" = 40)
|
||||
|
||||
/obj/item/clothing/glasses/night/cultblind
|
||||
desc = "May the master guide you through the darkness and shield you from the light."
|
||||
name = "zealot's blindfold"
|
||||
desc = "May the master guide you through the darkness and shield you from the light."
|
||||
icon_state = "blindfold"
|
||||
item_state = "blindfold"
|
||||
see_in_dark = 8
|
||||
@@ -247,7 +247,7 @@
|
||||
to_chat(user, "<span class='notice'>We have exhausted our ability to curse the shuttle.</span>")
|
||||
return
|
||||
if(locate(/obj/singularity/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/slaughter/cult) in GLOB.mob_list)
|
||||
to_chat(user, "<span class='warning'>Nar-Sie or his avatars are already on this plane, there is no delaying the end of all things.</span>")
|
||||
to_chat(user, "<span class='warning'>Nar-Sie or her avatars are already on this plane, there is no delaying the end of all things.</span>")
|
||||
return
|
||||
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL)
|
||||
@@ -273,7 +273,7 @@
|
||||
|
||||
/obj/item/cult_shift
|
||||
name = "veil shifter"
|
||||
desc = "This relic teleports you forward a medium distance."
|
||||
desc = "This relic teleports you forward by a medium distance."
|
||||
icon = 'icons/obj/cult.dmi'
|
||||
icon_state ="shifter"
|
||||
var/uses = 4
|
||||
@@ -353,7 +353,7 @@
|
||||
|
||||
/obj/item/clothing/suit/cultrobesghost
|
||||
name = "ghostly cult robes"
|
||||
desc = "A set of ethreal armored robes worn by the undead followers of a cult."
|
||||
desc = "A set of ethereal armored robes worn by the undead followers of a cult."
|
||||
icon_state = "cultrobesalt"
|
||||
item_state = "cultrobesalt"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
explanation = "We need to sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role], for [sacrifice_target.p_their()] blood is the key that will lead our master to this realm. You will need 3 cultists around a Sacrifice rune to perform the ritual."
|
||||
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective #[current_objective]</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective #[current_objective]</b>: [explanation]<br>"
|
||||
|
||||
/datum/game_mode/cult/proc/bypass_phase()
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
if(cult_mind)
|
||||
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have completed your task, but this place requires yet more preparation!</span>")
|
||||
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective #[current_objective]</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective #[current_objective]</b>: [explanation]<br>"
|
||||
|
||||
message_admins("New Cult Objective: [new_objective]")
|
||||
log_admin("New Cult Objective: [new_objective]")
|
||||
@@ -104,8 +104,8 @@
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
if(cult_mind)
|
||||
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes suddenly feel the urge to do your best, but survive!</span>")
|
||||
to_chat(cult_mind.current, "<B>Objective Survive</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective Survive</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective Survive</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective Survive</b>: [explanation]<br>"
|
||||
|
||||
|
||||
/datum/game_mode/cult/proc/second_phase()
|
||||
@@ -117,13 +117,13 @@
|
||||
explanation = "Summon [SSticker.cultdat.entity_name] on the Station via the use of the Tear Reality rune. The veil is weak enough in [english_list(GLOB.summon_spots)] for the ritual to begin."
|
||||
else
|
||||
objectives += "slaughter"
|
||||
explanation = "Bring the Slaughter via the rune 'Bring forth the slaughter'. The veil is weak enough in [english_list(GLOB.summon_spots)] for the ritual to begin."
|
||||
explanation = "Bring the Slaughter via the rune 'Call Forth The Slaughter'. The veil is weak enough in [english_list(GLOB.summon_spots)] for the ritual to begin."
|
||||
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
if(cult_mind)
|
||||
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have succeeded in preparing the station for the ultimate ritual!</span>")
|
||||
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective #[current_objective]</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective #[current_objective]</b>: [explanation]<br>"
|
||||
|
||||
/datum/game_mode/cult/proc/third_phase()
|
||||
current_objective++
|
||||
@@ -138,16 +138,16 @@
|
||||
|
||||
switch(last_objective)
|
||||
if("harvest")
|
||||
explanation = "[SSticker.cultdat.entity_title1] hungers for their first meal of this never-ending day. Offer them [harvest_target] humans in sacrifice."
|
||||
explanation = "[SSticker.cultdat.entity_title1] hungers for their first meal of this never-ending day. Offer them [harvest_target] humanoids in sacrifice."
|
||||
if("hijack")
|
||||
explanation = "[SSticker.cultdat.entity_name] wishes for their troops to start the assault on Centcom immediately. Hijack the escape shuttle and don't let a single non-cultist board it."
|
||||
explanation = "[SSticker.cultdat.entity_name] wishes for their troops to start the assault on CentCom immediately. Hijack the escape shuttle and don't let a single non-cultist board it."
|
||||
if("massacre")
|
||||
explanation = "[SSticker.cultdat.entity_name] wants to watch you as you massacre the remaining humans on the station (until less than [massacre_target] humans are left alive)."
|
||||
explanation = "[SSticker.cultdat.entity_name] wants to watch you as you massacre the remaining crew on the station (until less than [massacre_target] humans are left alive)."
|
||||
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
if(cult_mind)
|
||||
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
|
||||
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
|
||||
to_chat(cult_mind.current, "<b>Objective #[current_objective]</b>: [explanation]")
|
||||
cult_mind.memory += "<b>Objective #[current_objective]</b>: [explanation]<br>"
|
||||
|
||||
message_admins("Last Cult Objective: [last_objective]")
|
||||
log_admin("Last Cult Objective: [last_objective]")
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
to_chat(user, "<span class='warning'>You may only dunk carbon-based creatures!</span>")
|
||||
return 0
|
||||
if(G.affecting == LAVA_PROOF)
|
||||
to_chat(user, "<span class='warning'>Is immune to the lava!</span>")
|
||||
to_chat(user, "<span class='warning'>[G.affecting] is immune to lava!</span>")
|
||||
return 0
|
||||
if(G.affecting.stat == DEAD)
|
||||
to_chat(user, "<span class='warning'>[G.affecting] is dead!</span>")
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
if(iscultist(user) || user.stat == DEAD)
|
||||
. += "<span class='cult'>The scriptures of [SSticker.cultdat.entity_title3]. Allows the scribing of runes and access to the knowledge archives of the cult of [SSticker.cultdat.entity_name].</span>"
|
||||
. += "<span class='cult'>Striking another cultist with it will purge holy water from them.</span>"
|
||||
. += "<span class='cult'>Striking a noncultist, however, will sear their flesh.</span>"
|
||||
. += "<span class='cult'>Striking a non-cultist, however, will sear their flesh.</span>"
|
||||
|
||||
/obj/item/tome/attack(mob/living/M, mob/living/user)
|
||||
if(!istype(M))
|
||||
@@ -67,8 +67,8 @@
|
||||
return
|
||||
M.take_organ_damage(0, 15) //Used to be a random between 5 and 20
|
||||
playsound(M, 'sound/weapons/sear.ogg', 50, 1)
|
||||
M.visible_message("<span class='danger'>[user] strikes [M] with the arcane tome!</span>", \
|
||||
"<span class='userdanger'>[user] strikes you with the tome, searing your flesh!</span>")
|
||||
M.visible_message("<span class='danger'>[user] strikes [M] with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] strikes you with [src], searing your flesh!</span>")
|
||||
flick("tome_attack", src)
|
||||
user.do_attack_animation(M)
|
||||
add_attack_logs(user, M, "Hit with [src]")
|
||||
@@ -133,7 +133,7 @@
|
||||
text += "<font color='red'><b>Blood Boil</b></font><br>When invoked, this rune will do a massive amount of damage to all non-cultist viewers, but it will also emit a small explosion upon invocation. \
|
||||
It requires three invokers.<br><br>"
|
||||
|
||||
text += "<font color='red'><b>Leeching</b></font><br>When invoked, this rune will transfer lifeforce from the victim to the invoker.<br><br>"
|
||||
text += "<font color='red'><b>Leeching</b></font><br>When invoked, this rune will transfer life force from the victim to the invoker.<br><br>"
|
||||
|
||||
text += "<font color='red'><b>Rite of Spectral Manifestation</b></font><br>This rune allows you to summon spirits as humanoid fighters. When invoked, a spirit above the rune will be brought to life as a human, wearing nothing, that seeks only to serve you and [SSticker.cultdat.entity_title3]. \
|
||||
However, the spirit's link to reality is fragile - you must remain on top of the rune, and you will slowly take damage. Upon stepping off the rune, all summoned spirits will dissipate, dropping their items to the ground. You may manifest \
|
||||
@@ -175,7 +175,7 @@
|
||||
|
||||
text += "<font color='red'><b>Cult Robes</b></font><br>Cult robes are heavily armored robes. These robes are produced by the Talisman of Arming.<br><br>"
|
||||
|
||||
text += "<font color='red'><b>Soulstone</b></font><br>A soulstone is a simple piece of magic, produced either via the starter talisman or by sacrificing humans. Using it on an unconscious or dead human, or on a Shade, will trap their soul in the stone, allowing its use in construct shells. \
|
||||
text += "<font color='red'><b>Soulstone</b></font><br>A soulstone is a simple piece of magic, produced either via the starter talisman or by sacrificing humans. Using it on an unconscious or dead humanoid, or on a Shade, will trap their soul in the stone, allowing its use in construct shells. \
|
||||
<br>The soul within can also be released as a Shade by using it in-hand.<br><br>"
|
||||
|
||||
text += "<font color='red'><b>Construct Shell</b></font><br>A construct shell is useless on its own, but placing a filled soulstone within it allows you to produce your choice of a <b>Wraith</b>, a <b>Juggernaut</b>, or an <b>Artificer</b>. \
|
||||
@@ -206,7 +206,7 @@
|
||||
if(GAMEMODE_IS_CULT)
|
||||
if(!canbypass)//not an admin-tome, check things
|
||||
if(!cult_mode.narsie_condition_cleared)
|
||||
to_chat(user, "<span class='warning'>There is still more to do before unleashing [SSticker.cultdat.entity_name] power!</span>")
|
||||
to_chat(user, "<span class='warning'>There is still more to do before unleashing [SSticker.cultdat.entity_name]'s' power!</span>")
|
||||
return 0
|
||||
if(!cult_mode.eldergod)
|
||||
to_chat(user, "<span class='cultlarge'>\"I am already here. There is no need to try to summon me now.\"</span>")
|
||||
@@ -220,14 +220,14 @@
|
||||
if(!(A in GLOB.summon_spots))
|
||||
to_chat(user, "<span class='cultlarge'>[SSticker.cultdat.entity_name] can only be summoned where the veil is weak - in [english_list(GLOB.summon_spots)]!</span>")
|
||||
return 0
|
||||
var/confirm_final = alert(user, "This is the FINAL step to summon your deities 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 [SSticker.cultdat.entity_name]!", "No")
|
||||
var/confirm_final = alert(user, "This is the FINAL step to summon your deity's 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 [SSticker.cultdat.entity_name]!", "No")
|
||||
if(confirm_final == "No" || confirm_final == null)
|
||||
to_chat(user, "<span class='cult'>You decide to prepare further before scribing the rune.</span>")
|
||||
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 deities 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 [SSticker.cultdat.entity_name]!", "No")
|
||||
var/confirm_final = alert(user, "This is the FINAL step to summon your deity's 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 [SSticker.cultdat.entity_name]!", "No")
|
||||
if(confirm_final == "No" || confirm_final == null)
|
||||
to_chat(user, "<span class='cult'>You decide to prepare further before scribing the rune.</span>")
|
||||
return 0
|
||||
|
||||
@@ -332,11 +332,11 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
user.forceMove(get_turf(actual_selected_rune))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(user.z != T.z)
|
||||
if(istype(H))
|
||||
if(istype(H))
|
||||
H.bleed(5)
|
||||
user.apply_damage(5, BRUTE)
|
||||
else
|
||||
if(istype(H))
|
||||
if(istype(H))
|
||||
H.bleed(rand(5,10))
|
||||
else
|
||||
fail_invoke()
|
||||
@@ -498,7 +498,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
|
||||
/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/tome) && iscultist(user)))
|
||||
user.visible_message("<span class='warning'>[user] begins erasing the [src]...</span>", "<span class='notice'>You begin erasing the [src]...</span>")
|
||||
user.visible_message("<span class='warning'>[user] begins erasing [src]...</span>", "<span class='notice'>You begin erasing [src]...</span>")
|
||||
if(do_after(user, 50, target = src)) //Prevents accidental erasures.
|
||||
log_game("Summon Narsie rune erased by [key_name(user)] with a tome")
|
||||
message_admins("[key_name_admin(user)] erased a Narsie rune with a tome")
|
||||
@@ -534,7 +534,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
|
||||
/obj/effect/rune/slaughter/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/tome) && iscultist(user)))
|
||||
user.visible_message("<span class='warning'>[user.name] begins erasing the [src]...</span>", "<span class='notice'>You begin erasing the [src]...</span>")
|
||||
user.visible_message("<span class='warning'>[user.name] begins erasing [src]...</span>", "<span class='notice'>You begin erasing [src]...</span>")
|
||||
if(do_after(user, 50, target = src)) //Prevents accidental erasures.
|
||||
log_game("Summon demon rune erased by [key_name(user)] with a tome")
|
||||
message_admins("[key_name_admin(user)] erased a demon rune with a tome")
|
||||
@@ -649,7 +649,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
mob_to_revive.Beam(mob_to_sacrifice,icon_state="sendbeam",time=20)
|
||||
sleep(20)
|
||||
if(!mob_to_sacrifice || !in_range(mob_to_sacrifice, src))
|
||||
mob_to_sacrifice.visible_message("<span class='warning'><b>[mob_to_sacrifice] disintegrates into a pile of bones</span>")
|
||||
mob_to_sacrifice.visible_message("<span class='warning'><b>[mob_to_sacrifice] disintegrates into a pile of bones.</span>")
|
||||
return
|
||||
mob_to_sacrifice.dust()
|
||||
if(!mob_to_revive || mob_to_revive.stat != DEAD)
|
||||
@@ -691,7 +691,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
if(3 to 6)
|
||||
playsound(E, 'sound/effects/EMPulse.ogg', 50, 1)
|
||||
for(var/M in invokers)
|
||||
to_chat(M, "<span class='danger'>Your hair stands on end as a shockwave eminates from the rune!</span>")
|
||||
to_chat(M, "<span class='danger'>Your hair stands on end as a shockwave emanates from the rune!</span>")
|
||||
if(7 to INFINITY)
|
||||
playsound(E, 'sound/effects/EMPulse.ogg', 100, 1)
|
||||
for(var/M in invokers)
|
||||
@@ -836,7 +836,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
return
|
||||
var/hard_summon = (cultist_to_summon.reagents && cultist_to_summon.reagents.has_reagent("holywater")) || cultist_to_summon.restrained()
|
||||
if(hard_summon && invokers.len < 3)
|
||||
to_chat(user, "<span class='cultitalic'>The summoning of [cultist_to_summon] is being blocked somehow! You need 3 chanters to counter it!</span>")
|
||||
to_chat(user, "<span class='cultitalic'>The summoning of [cultist_to_summon] is being blocked somehow! You need 3 invokers to counter it!</span>")
|
||||
fail_invoke()
|
||||
new /obj/effect/temp_visual/cult/sparks(get_turf(cultist_to_summon)) //observer warning
|
||||
log_game("Summon Cultist rune failed - holywater in target")
|
||||
@@ -982,7 +982,7 @@ GLOBAL_LIST_EMPTY(teleport_runes)
|
||||
..()
|
||||
|
||||
playsound(src, 'sound/misc/exit_blood.ogg', 50, 1)
|
||||
visible_message("<span class='warning'>A cloud of red mist forms above [src], and from within steps... a man.</span>")
|
||||
visible_message("<span class='warning'>A cloud of red mist forms above [src], and from within steps... a humanoid shape.</span>")
|
||||
to_chat(user, "<span class='cultitalic'>Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...</span>")
|
||||
var/obj/machinery/shield/N = new(get_turf(src))
|
||||
N.name = "Invoker's Shield"
|
||||
|
||||
@@ -61,17 +61,17 @@
|
||||
|
||||
/obj/item/paper/talisman/supply/invoke(mob/living/user, successfuluse = 1)
|
||||
var/dat = list()
|
||||
dat += "<B>There are [uses] bloody runes on the parchment.</B><BR>"
|
||||
dat += "Please choose the chant to be imbued into the fabric of reality.<BR>"
|
||||
dat += "<b>There are [uses] bloody runes on the parchment.</b><br>"
|
||||
dat += "Please choose the chant to be imbued into the fabric of reality.<br>"
|
||||
dat += "<HR>"
|
||||
dat += "<A href='?src=[UID()];rune=newtome'>N'ath reth sh'yro eth d'raggathnor!</A> - Summons an arcane tome, used to scribe runes and communicate with other cultists.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=metal'>Bar'tea eas!</A> - Provides 5 runed metal.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=teleport'>Sas'so c'arta forbici!</A> - Allows you to move to a selected teleportation rune.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=emp'>Ta'gh fara'qha fel d'amar det!</A> - Allows you to destroy technology in a short range.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=runestun'>Fuu ma'jin!</A> - Allows you to stun a person by attacking them with the talisman.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=veiling'>Kla'atu barada nikt'o!</A> - Two use talisman, first use makes all nearby runes invisible, second use reveals nearby hidden runes.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=soulstone'>Kal'om neth!</A> - Summons a soul stone, used to capture the spirits of dead or dying humans.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=construct'>Daa'ig osk!</A> - Summons a construct shell for use with soulstone-captured souls. It is too large to carry on your person.<BR>"
|
||||
dat += "<A href='?src=[UID()];rune=newtome'>N'ath reth sh'yro eth d'raggathnor!</A> - Summons an arcane tome, used to scribe runes and communicate with other cultists.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=metal'>Bar'tea eas!</A> - Provides 5 runed metal.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=teleport'>Sas'so c'arta forbici!</A> - Allows you to move to a selected teleportation rune.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=emp'>Ta'gh fara'qha fel d'amar det!</A> - Allows you to destroy technology in a short range.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=runestun'>Fuu ma'jin!</A> - Allows you to stun a person by attacking them with the talisman.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=veiling'>Kla'atu barada nikt'o!</A> - Two use talisman, first use makes all nearby runes invisible, second use reveals nearby hidden runes.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=soulstone'>Kal'om neth!</A> - Summons a soul stone, used to capture the spirits of dead or dying humans.<br>"
|
||||
dat += "<A href='?src=[UID()];rune=construct'>Daa'ig osk!</A> - Summons a construct shell for use with soulstone-captured souls. It is too large to carry on your person.<br>"
|
||||
var/datum/browser/popup = new(user, "talisman", "", 400, 400)
|
||||
popup.set_content(jointext(dat, ""))
|
||||
popup.open()
|
||||
@@ -290,7 +290,7 @@
|
||||
/obj/item/paper/talisman/armor/invoke(mob/living/user, successfuluse = 1)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/H = user
|
||||
user.visible_message("<span class='warning'>Otherworldly armor suddenly appears on [user]!</span>", \
|
||||
user.visible_message("<span class='warning'>Otherworldly equipment suddenly appears on [user]!</span>", \
|
||||
"<span class='cultitalic'>You speak the words of the talisman, arming yourself!</span>")
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), slot_wear_suit)
|
||||
@@ -334,14 +334,14 @@
|
||||
|
||||
/obj/item/paper/talisman/construction/attack_self(mob/living/user)
|
||||
if(iscultist(user))
|
||||
to_chat(user, "<span class='warning'>To use this talisman, place it upon a stack of metal sheets or plasteel sheets!.</span>")
|
||||
to_chat(user, "<span class='warning'>To use this talisman, place it upon a stack of metal sheets or plasteel sheets!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You see strange symbols on the paper. Are they supposed to mean something?</span>")
|
||||
|
||||
|
||||
/obj/item/paper/talisman/construction/attack(obj/M,mob/living/user)
|
||||
if(iscultist(user))
|
||||
to_chat(user, "<span class='cultitalic'>This talisman will only work on a stack of metal sheets or plasteel sheets!!</span>")
|
||||
to_chat(user, "<span class='cultitalic'>This talisman will only work on a stack of metal sheets or plasteel sheets!</span>")
|
||||
log_game("Construct talisman failed - not a valid target")
|
||||
|
||||
/obj/item/paper/talisman/construction/afterattack(obj/item/stack/sheet/target, mob/user, proximity_flag, click_parameters)
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
var/gorecooldown = 0
|
||||
var/vialspawned = FALSE
|
||||
loot = list(/obj/effect/decal/cleanable/blood/innards, /obj/effect/decal/cleanable/blood, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic, /obj/item/organ/internal/heart/demon)
|
||||
var/playstyle_string = "<B>You are the Slaughter Demon, a terrible creature from another existence. You have a single desire: To kill. \
|
||||
You may Ctrl+Click on blood pools to travel through them, appearing and dissaapearing from the station at will. \
|
||||
var/playstyle_string = "<B>You are the Slaughter Demon, a terrible creature from another existence. You have a single desire: to kill. \
|
||||
You may Ctrl+Click on blood pools to travel through them, appearing and dissapearing from the station at will. \
|
||||
Pulling a dead or critical mob while you enter a pool will pull them in with you, allowing you to feast. \
|
||||
You move quickly upon leaving a pool of blood, but the material world will soon sap your strength and leave you sluggish. </B>"
|
||||
del_on_death = 1
|
||||
@@ -111,8 +111,8 @@
|
||||
|
||||
// Cult slaughter demon
|
||||
/mob/living/simple_animal/slaughter/cult //Summoned as part of the cult objective "Bring the Slaughter"
|
||||
name = "harbringer of the slaughter"
|
||||
real_name = "harbringer of the Slaughter"
|
||||
name = "harbinger of the slaughter"
|
||||
real_name = "harbinger of the Slaughter"
|
||||
desc = "An awful creature from beyond the realms of madness."
|
||||
maxHealth = 500
|
||||
health = 500
|
||||
@@ -120,14 +120,14 @@
|
||||
melee_damage_lower = 60
|
||||
environment_smash = ENVIRONMENT_SMASH_RWALLS //Smashes through EVERYTHING - r-walls included
|
||||
faction = list("cult")
|
||||
playstyle_string = "<b><span class='userdanger'>You are a Harbringer of the Slaughter.</span> Brought forth by the servants of Nar-Sie, you have a single purpose: slaughter the heretics \
|
||||
playstyle_string = "<b><span class='userdanger'>You are a Harbinger of the Slaughter.</span> Brought forth by the servants of Nar-Sie, you have a single purpose: slaughter the heretics \
|
||||
who do not worship your master. You may use the ability 'Blood Crawl' near a pool of blood to enter it and become incorporeal. Using the ability again near a blood pool will allow you \
|
||||
to emerge from it. You are fast, powerful, and almost invincible. By dragging a dead or unconscious body into a blood pool with you, you will consume it after a time and fully regain \
|
||||
your health. You may use the Sense Victims in your Cultist tab to locate a random, living heretic.</span></b>"
|
||||
your health. You may use the ability 'Sense Victims' in your Cultist tab to locate a random, living heretic.</span></b>"
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/sense_victims
|
||||
name = "Sense Victims"
|
||||
desc = "Sense the location of heratics"
|
||||
desc = "Sense the location of heretics"
|
||||
charge_max = 0
|
||||
clothes_req = 0
|
||||
range = 20
|
||||
@@ -171,8 +171,8 @@
|
||||
var/client/C = M.client
|
||||
|
||||
S.key = C.key
|
||||
S.mind.assigned_role = "Harbringer of the Slaughter"
|
||||
S.mind.special_role = "Harbringer of the Slaughter"
|
||||
S.mind.assigned_role = "Harbinger of the Slaughter"
|
||||
S.mind.special_role = "Harbinger of the Slaughter"
|
||||
to_chat(S, playstyle_string)
|
||||
SSticker.mode.add_cultist(S.mind)
|
||||
var/obj/effect/proc_holder/spell/targeted/sense_victims/SV = new
|
||||
@@ -259,7 +259,7 @@
|
||||
|
||||
// Eating a 2nd heart. Gives the ability to drag people into blood and eat them.
|
||||
if(HAS_TRAIT(user, TRAIT_BLOODCRAWL))
|
||||
to_chat(user, "You feel diffr-<span class = 'danger'> CONSUME THEM! </span>")
|
||||
to_chat(user, "You feel differ-<span class = 'danger'> CONSUME THEM! </span>")
|
||||
ADD_TRAIT(user, TRAIT_BLOODCRAWL_EAT, "bloodcrawl_eat")
|
||||
qdel(src) // Replacing their demon heart with another demon heart is pointless, just delete this one and return.
|
||||
return TRUE
|
||||
@@ -312,7 +312,7 @@
|
||||
if(M.revive())
|
||||
M.grab_ghost(force = TRUE)
|
||||
playsound(get_turf(src), feast_sound, 50, 1, -1)
|
||||
to_chat(M, "<span class='clown'>You leave the [src]'s warm embrace, and feel ready to take on the world.</span>")
|
||||
to_chat(M, "<span class='clown'>You leave [src]'s warm embrace, and feel ready to take on the world.</span>")
|
||||
..(M)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user