mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Improved word attainment for Cult
mind.dm - Added a known words list to the mind datum cult.dm -**REDUCED RECOMMENDED_ENEMIES BACK DOWN TO 3** - this was one of those band aide fixes we tried ages ago, I really don't feel cult needs more than 3 starting cultists now. Power of three and all that. -Cultists get a message when grant_runeword gives them the last rune word -Remove_cultist nullifies the new cult_words mind list on deconversion (Coming Soon™) runes.dm -Convert will now try up to three times to give the converter a new word (in testing this seems plenty to get most of the words) -Sacrifice is now guarenteed to give a new word if the normal checks are passed for a word to be given -Sacrificing the sacrifice target will reward the sacrificer with up to three words, previously they got fuck all. -Upped the probablity for words to be given --Live humans will always give a word --Dead humans has been increased from 40 to 60 --Monkeys have been increased from 20 to 30
This commit is contained in:
@@ -47,6 +47,8 @@ datum/mind
|
||||
|
||||
var/has_been_rev = 0//Tracks if this mind has been a rev or not
|
||||
|
||||
var/list/cult_words = list()
|
||||
|
||||
var/datum/faction/faction //associated faction
|
||||
var/datum/changeling/changeling //changeling holder
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
protected_jobs = list()
|
||||
required_players = 15
|
||||
required_enemies = 3
|
||||
recommended_enemies = 4
|
||||
recommended_enemies = 3
|
||||
|
||||
uplink_welcome = "Nar-Sie Uplink Console:"
|
||||
uplink_uses = 10
|
||||
@@ -204,6 +204,9 @@
|
||||
wordexp = "[wordhide] is hide..."
|
||||
cult_mob << "\red [pick("You remember something from the dark teachings of your master","You hear a dark voice on the wind","Black blood oozes into your vision and forms into symbols","You catch a brief glimmer of the otherside")]... [wordexp]"
|
||||
cult_mob.mind.store_memory("<B>You remember that</B> [wordexp]", 0, 0)
|
||||
cult_mob.mind.cult_words += word
|
||||
if(cult_mob.mind.cult_words.len == allwords.len)
|
||||
cult_mob << "\green You feel enlightened, as if you have gained all the secrets of the other side."
|
||||
|
||||
|
||||
/datum/game_mode/proc/add_cultist(datum/mind/cult_mind) //BASE
|
||||
@@ -227,6 +230,7 @@
|
||||
cult -= cult_mind
|
||||
cult_mind.current << "\red <FONT size = 3><B>An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it.</B></FONT>"
|
||||
cult_mind.memory = ""
|
||||
cult_mind.cult_words = initial(cult_mind.cult_words)
|
||||
update_cult_icons_removed(cult_mind)
|
||||
cult_mind.current.attack_log += "\[[time_stamp()]\] <font color='red'>Has renounced the cult!</font>"
|
||||
if(show_message)
|
||||
|
||||
@@ -113,9 +113,21 @@ var/list/sacrificed = list()
|
||||
M.mind.special_role = "Cultist"
|
||||
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>"
|
||||
usr << "\red The Geometer of Blood is pleased to see his followers grow in numbers."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
return 1
|
||||
//picking which word to use
|
||||
if(usr.mind.cult_words.len != ticker.mode.allwords.len) // No point running if they already know everything
|
||||
var/convert_word
|
||||
for(var/i=1, i<=3, i++)
|
||||
convert_word = pick(ticker.mode.grantwords)
|
||||
if(convert_word in usr.mind.cult_words)
|
||||
if(i==3) convert_word = null //NOTE: If max loops is changed ensure this condition is changed to match /Mal
|
||||
else
|
||||
break
|
||||
if(!convert_word)
|
||||
usr << "\red This Convert was unworthy of knowledge of the other side!"
|
||||
else
|
||||
usr << "\red The Geometer of Blood is pleased to see his followers grow in numbers."
|
||||
ticker.mode:grant_runeword(usr, convert_word)
|
||||
return 1
|
||||
else
|
||||
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=\"red\"><b>And not a single fuck was given, exterminate the cult at all costs.</b></font>"
|
||||
@@ -568,25 +580,25 @@ var/list/sacrificed = list()
|
||||
else
|
||||
H.gib()
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
|
||||
usr << "\red He is pleased!"
|
||||
sac_grant_word()
|
||||
sac_grant_word()
|
||||
sac_grant_word() //Little reward for completing the objective
|
||||
else
|
||||
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)
|
||||
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."
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
||||
sac_grant_word()
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
if(prob(40))
|
||||
if(prob(60))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
@@ -598,9 +610,9 @@ var/list/sacrificed = list()
|
||||
if(H.stat !=2)
|
||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
||||
else
|
||||
if(prob(40))
|
||||
if(prob(60))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
@@ -611,20 +623,16 @@ var/list/sacrificed = list()
|
||||
else
|
||||
if(cultsinrange.len >= 3)
|
||||
if(H.stat !=2)
|
||||
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."
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice."
|
||||
sac_grant_word()
|
||||
if(isrobot(H))
|
||||
H.dust()//To prevent the MMI from remaining
|
||||
else
|
||||
H.gib()
|
||||
else
|
||||
if(prob(40))
|
||||
if(prob(60))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
@@ -636,9 +644,9 @@ var/list/sacrificed = list()
|
||||
if(H.stat !=2)
|
||||
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
|
||||
else
|
||||
if(prob(40))
|
||||
if(prob(60))
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
else
|
||||
usr << "\red The Geometer of blood accepts this sacrifice."
|
||||
usr << "\red However, a mere dead body is not enough to satisfy Him."
|
||||
@@ -652,19 +660,23 @@ var/list/sacrificed = list()
|
||||
if(cultsinrange.len >= 3)
|
||||
sacrificed += M.mind
|
||||
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
|
||||
usr << "\red He is pleased!"
|
||||
sac_grant_word()
|
||||
sac_grant_word()
|
||||
sac_grant_word() //Little reward for completing the objective
|
||||
else
|
||||
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
|
||||
continue
|
||||
else
|
||||
if(prob(20))
|
||||
if(prob(30))
|
||||
usr << "\red The Geometer of Blood accepts your meager sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
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."
|
||||
if(prob(20))
|
||||
if(prob(30))
|
||||
ticker.mode.grant_runeword(usr)
|
||||
M.gib()
|
||||
/* for(var/mob/living/carbon/alien/A)
|
||||
@@ -674,7 +686,7 @@ var/list/sacrificed = list()
|
||||
if (ticker.mode.name == "cult")
|
||||
if(prob(75))
|
||||
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
|
||||
ticker.mode:grant_runeword(usr)
|
||||
sac_grant_word()
|
||||
else
|
||||
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
|
||||
usr << "\red However, this alien is not enough to gain His favor."
|
||||
@@ -683,6 +695,14 @@ var/list/sacrificed = list()
|
||||
return
|
||||
return fizzle() */
|
||||
|
||||
sac_grant_word() //The proc that which chooses a word rewarded for a successful sacrifice, sacrifices always give a currently unknown word if the normal checks pass
|
||||
if(usr.mind.cult_words.len != ticker.mode.allwords.len) // No point running if they already know everything
|
||||
var/convert_word
|
||||
var/pick_list = ticker.mode.allwords - usr.mind.cult_words
|
||||
convert_word = pick(pick_list)
|
||||
ticker.mode:grant_runeword(usr, convert_word)
|
||||
|
||||
|
||||
/////////////////////////////////////////SIXTEENTH RUNE
|
||||
|
||||
revealrunes(var/obj/W as obj)
|
||||
|
||||
Reference in New Issue
Block a user