mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 12:07:27 +01:00
Update to the cultist mode:
Some bugs fixed. Converting people doesnt give new words anymore. Sacrificing people does. You can sacrifice a living person, a dead body, an alium or a monkey. 3 cultists must chant together to sacrifice a living person, but the chances to obtain new word are higher when you sacrifice living humans. Also putting berry joice in a glass now works properly, instead of making it a "glass of...what?" Highly untested, so come revise this and try to find any problems. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1069 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -2786,6 +2786,10 @@
|
||||
icon_state = "glass_white"
|
||||
name = "Glass of soy milk"
|
||||
desc = "White and nutritious soy goodness!"
|
||||
if("berryjuice")
|
||||
icon_state = "berryjuice"
|
||||
name = "Glass berry joice"
|
||||
desc = "Berry juice. Or maybe its jam. Who cares?"
|
||||
else
|
||||
icon_state ="glass_brown"
|
||||
name = "Glass of ..what?"
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
|
||||
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
|
||||
|
||||
var/list/startwords = list("blood","join","self")
|
||||
var/list/startwords = list("blood","join","self","hell")
|
||||
//var/list/startwords = list("travel","blood","join","hell","self","see")
|
||||
var/list/allwords = list("travel","blood","join","hell","self","see")
|
||||
var/list/allwords = list("travel","self","see","hell","blood","join","tech","destroy", "other", "hear", "free", "hide")
|
||||
|
||||
var/list/objectives = list()
|
||||
|
||||
@@ -130,8 +130,20 @@
|
||||
wordexp = "[wordself] is self..."
|
||||
if("see")
|
||||
wordexp = "[wordsee] is see..."
|
||||
cult_mob << "\red You remembered one thing from the dark teachings of your master... [wordexp]"
|
||||
cult_mob.mind.store_memory("<B>You remember one thing</B>: [wordexp]", 0, 0)
|
||||
if("tech")
|
||||
wordexp = "[wordtech] is technology..."
|
||||
if("destroy")
|
||||
wordexp = "[worddestr] is destroy..."
|
||||
if("other")
|
||||
wordexp = "[wordother] is other..."
|
||||
if("hear")
|
||||
wordexp = "[wordhear] is hear..."
|
||||
if("free")
|
||||
wordexp = "[wordfree] is free..."
|
||||
if("hide")
|
||||
wordexp = "[wordhide] is hide..."
|
||||
cult_mob << "\red You remember one thing from the dark teachings of your master... [wordexp]"
|
||||
cult_mob.mind.store_memory("<B>You remember that</B> [wordexp]", 0, 0)
|
||||
|
||||
/datum/game_mode/cult/send_intercept()
|
||||
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
|
||||
|
||||
@@ -73,7 +73,7 @@ var/runedec = 0
|
||||
// blood join Hell - Raise dead
|
||||
|
||||
// hide see blood - Hide nearby runes
|
||||
// destroy hide blood - Reveal nearby runes
|
||||
// blood see hide - Reveal nearby runes - The point of this rune is that its reversed obscure rune. So you always know the words to reveal the rune once oyu have obscured it.
|
||||
|
||||
// Hell travel self - Leave your body and ghost around
|
||||
// blood see travel - Manifest a ghost into a mortal body
|
||||
@@ -144,7 +144,7 @@ var/runedec = 0
|
||||
return talisman()
|
||||
if(word1 == wordhell && word2 == wordblood && word3 == wordjoin)
|
||||
return sacrifice()
|
||||
if(word1 == worddestr && word2 == wordhide && word3 == wordblood)
|
||||
if(word1 == wordblood && word2 == wordsee && word3 == wordhide)
|
||||
return revealrunes(src)
|
||||
if(word1 == worddestr && word2 == wordtravel && word3 == wordself)
|
||||
return wall()
|
||||
@@ -223,7 +223,7 @@ var/runedec = 0
|
||||
icon_state = "[rand(1,6)]"
|
||||
src.icon += rgb(255, 255, 255)
|
||||
return
|
||||
if(word1 == worddestr && word2 == wordhide && word3 == wordblood)
|
||||
if(word1 == wordblood && word2 == wordsee && word3 == wordhide)
|
||||
icon_state = "4"
|
||||
src.icon += rgb(255, 255, 255)
|
||||
return
|
||||
@@ -455,9 +455,9 @@ var/runedec = 0
|
||||
R.loc = user.loc
|
||||
R.check_icon()
|
||||
if("reveal")
|
||||
R.word1=worddestr
|
||||
R.word2=wordhide
|
||||
R.word3=wordblood
|
||||
R.word1=wordblood
|
||||
R.word2=wordsee
|
||||
R.word3=wordhide
|
||||
R.loc = user.loc
|
||||
R.check_icon()
|
||||
if("wall")
|
||||
|
||||
@@ -110,8 +110,6 @@ var/list/sacrificed = list()
|
||||
"\red You hear an anguished scream.")
|
||||
M << "<font color=\"purple\"><b><i>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</b></i></font>"
|
||||
M << "<font color=\"purple\"><b><i>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</b></i></font>"
|
||||
if (ticker.mode.name == "cult")
|
||||
ticker.mode:grant_runeword(M)
|
||||
cultists.Add(M)
|
||||
return
|
||||
return fizzle()
|
||||
@@ -413,7 +411,7 @@ var/list/sacrificed = list()
|
||||
del(src)
|
||||
usr.say("H'drak v'loso, mir'kanas verbot!")
|
||||
return
|
||||
if(R.word1==worddestr && R.word2==wordsee && R.word3==wordblood)
|
||||
if(R.word1==wordblood && R.word2==wordsee && R.word3==wordhide)
|
||||
for(var/obj/item/weapon/paper/P in src.loc)
|
||||
if(P.info)
|
||||
usr << "\red The blank is tainted. It is unsuitable."
|
||||
@@ -496,20 +494,94 @@ var/list/sacrificed = list()
|
||||
/////////////////////////////////////////FIFTEENTH RUNE
|
||||
|
||||
sacrifice()
|
||||
var/culcount = 0
|
||||
var/list/cultsinrange = list()
|
||||
var/list/victims = list()
|
||||
for(var/mob/living/carbon/human/V in src.loc)
|
||||
if(!cultists.Find(V))
|
||||
victims.Add(V)
|
||||
for(var/mob/living/carbon/human/C in orange(1,src))
|
||||
if(cultists.Find(C))
|
||||
culcount++
|
||||
if(culcount>=3)
|
||||
for(var/mob/living/carbon/human/S in src.loc)
|
||||
if(ticker.mode.name == "cult")
|
||||
if(S == ticker.mode:sacrifice_target.current)//Iunno, check if it's a target
|
||||
sacrificed += S.mind
|
||||
S.gib(1)
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
||||
cultsinrange.Add(C)
|
||||
for(var/mob/H in victims)
|
||||
for(var/mob/K in cultsinrange)
|
||||
K.say("Barhah hra zar'garis!")
|
||||
if (ticker.mode.name == "cult")
|
||||
if(H == ticker.mode:sacrifice_target.current)
|
||||
if(cultsinrange.len >= 3)
|
||||
H.gib(1)
|
||||
sacrificed += H.mind
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
|
||||
else
|
||||
usr << "\red The Geometer of Blood does not accept this sacrifice."
|
||||
return
|
||||
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
|
||||
else
|
||||
if(cultsinrange.len >= 3)
|
||||
if(H.stat !=2)
|
||||
H.gib(1)
|
||||
if(prob(80))
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, this soul was not enough to gain His favor."
|
||||
else
|
||||
H.gib(1)
|
||||
if(prob(40))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
else
|
||||
if(H.stat !=2)
|
||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
||||
else
|
||||
H.gib(1)
|
||||
if(prob(40))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
else
|
||||
if(cultsinrange.len >= 3)
|
||||
H.gib(1)
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
||||
else
|
||||
if(H.stat !=2)
|
||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
||||
else
|
||||
H.gib(1)
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
|
||||
return
|
||||
for(var/mob/living/carbon/monkey/M in src.loc)
|
||||
for(var/mob/K in cultsinrange)
|
||||
K.say("Barhah hra zar'garis!")
|
||||
M.gib(1)
|
||||
if (ticker.mode.name == "cult")
|
||||
if(prob(20))
|
||||
usr << "\red The Geometer of Blood accepts your meager sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere monkey is not enough to satisfy Him."
|
||||
else
|
||||
usr << "\red The Geometer of Blood accepts your meager sacrifice."
|
||||
return
|
||||
for(var/mob/living/carbon/alien/A)
|
||||
for(var/mob/K in cultsinrange)
|
||||
K.say("Barhah hra zar'garis!")
|
||||
A.gib(1)
|
||||
if (ticker.mode.name == "cult")
|
||||
if(prob(75))
|
||||
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
else
|
||||
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
|
||||
usr << "\red However, this alien is not enough to gain His favor."
|
||||
else
|
||||
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
|
||||
return
|
||||
return fizzle()
|
||||
|
||||
/////////////////////////////////////////SIXTEENTH RUNE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Reference in New Issue
Block a user