diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm
index cb544396dc7..dc92d466de1 100644
--- a/code/WorkInProgress/Chemistry-Tools.dm
+++ b/code/WorkInProgress/Chemistry-Tools.dm
@@ -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?"
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 3a80afd7927..61c6791b83e 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -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("You remember one thing: [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("You remember that [wordexp]", 0, 0)
/datum/game_mode/cult/send_intercept()
var/intercepttext = "Cent. Com. Update Requested staus information:
"
diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm
index 7cbc39f43c0..036a282d589 100644
--- a/code/game/magic/cultist/ritual.dm
+++ b/code/game/magic/cultist/ritual.dm
@@ -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")
diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm
index b974a7c1f5a..027a47ea2d7 100644
--- a/code/game/magic/cultist/runes.dm
+++ b/code/game/magic/cultist/runes.dm
@@ -110,8 +110,6 @@ var/list/sacrificed = list()
"\red You hear an anguished scream.")
M << "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."
M << "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."
- 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
diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi
index 0fad6f3dd9d..11dd2974d38 100644
Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 6c08a730e6d..8db8e957642 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ