New rune: reveal runes. Opposite to "conceal", reveals all hidden runes in large radius. Possible to imbue into a talisman. Words are same as conceal rune, but in reversed order.

Chaplain can now hit floor with his bible to reveal hidden runes in small radius around him.
Tweaks to cultist game mode:
Words that arent commonly used are never revealed to cultists on game start.
Game aborts if there are less than 3 possible cultist players (used to need at least 1, and it sucked because of not enough word knowledge.
Small bug fixes and more flavour/explanation text for some runes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@559 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
KFFFF00
2010-12-07 06:10:53 +00:00
parent d67a84e595
commit 8d8a0e2aec
7 changed files with 58 additions and 18 deletions
+5 -13
View File
@@ -34,17 +34,13 @@
cultists_possible = get_possible_cultists()
var/cultists_number = 0
if(!cultists_possible)
if(cultists_possible.len < 3)
world << "<B> \red Not enough players for cult game mode. Restarting world in 5 seconds."
sleep(50)
world.Reboot()
return
if(cultists_possible.len >= 3)
cultists_number = 3
else
cultists_number = cultists_possible.len
cultists_number = 3
while(cultists_number > 0)
cult += pick(cultists_possible)
cultists_possible -= cult
@@ -105,7 +101,7 @@
cult_mob << "You have a talisman in your backpack, one that will help you start the cult on this station. Use it well and remember - there are others."
if(!wordtravel)
runerandom()
var/word=pick("1","2","3","4","5","6","7","8")
var/word=pick("1","2","3","4","5","6")
var/wordexp
switch(word)
if("1")
@@ -117,12 +113,8 @@
if("4")
wordexp = "[wordhell] is Hell..."
if("5")
wordexp = "[worddestr] is destroy..."
if("6")
wordexp = "[wordtech] is technology..."
if("7")
wordexp = "[wordself] is self..."
if("8")
if("6")
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)
@@ -257,7 +249,7 @@
for(var/mob/living/carbon/human/player in world)
if(player.mind)
var/role = player.mind.assigned_role
if(role in list("Captain", "Head of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Security Officer", "Detective", "AI", "Chaplain"))
if(role in list("Captain", "Head of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Security Officer", "Detective", "AI", "Chaplain", "Warden", "Chief Medical Officer"))
ucs += player.mind
return ucs
+15
View File
@@ -49,6 +49,7 @@ var/runedec = 0
// see Hell join - See invisible
// blood join Hell - Raise dead
// blood see destroy - Hide nearby runes
// destroy see blood - Reveal nearby runes
// Hell travel self - Leave your body and ghost around
// blood see travel - Manifest a ghost into a mortal body
// Hell tech join - Imbue a rune into a talisman
@@ -124,6 +125,8 @@ var/runedec = 0
return talisman()
if(word1 == wordhell && word2 == wordblood && word3 == wordjoin)
return sacrifice()
if(word1 == worddestr && word2 == wordsee && word3 == wordblood)
return revealrunes(src)
else
return fizzle()
@@ -184,6 +187,10 @@ var/runedec = 0
if(word1 == wordhell && word2 == wordblood && word3 == wordjoin)
icon_state = "[rand(1,6)]"
src.icon += rgb(255, 255, 255)
if(word1 == worddestr && word2 == wordsee && word3 == wordblood)
icon_state = "4"
src.icon += rgb(255, 255, 255)
return
icon_state="[rand(1,6)]" //random shape and color for dummy runes
src.icon -= rgb(255,255,255)
@@ -347,6 +354,12 @@ var/runedec = 0
R.word2=wordblood
R.word3=wordjoin
R.check_icon()
if("revealrunes")
var/obj/rune/R = new /obj/rune(user.loc)
R.word1=worddestr
R.word2=wordsee
R.word3=wordblood
R.check_icon()
/obj/item/weapon/paperscrap
name = "scrap of paper"
@@ -383,6 +396,8 @@ var/runedec = 0
call(/obj/rune/proc/emp)(usr.loc,4)
if("conceal")
call(/obj/rune/proc/obscure)(2)
if("revealrunes")
call(/obj/rune/proc/revealrunes)(src)
if("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar")
call(/obj/rune/proc/teleport)(imbue)
if("communicate")
+22
View File
@@ -11,6 +11,8 @@
var/obj/item/weapon/paper/talisman/T = new /obj/item/weapon/paper/talisman(src.loc)
T.imbue = "[R.word3]"
T.info = "[R.word3]"
for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
del(R)
del(src)
usr.say("H'drak v'loso, mir'kanas verbot!")
@@ -23,6 +25,8 @@
del(P)
var/obj/item/weapon/paper/talisman/T = new /obj/item/weapon/paper/talisman(src.loc)
T.imbue = "newtome"
for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
del(R)
del(src)
usr.say("H'drak v'loso, mir'kanas verbot!")
@@ -35,6 +39,8 @@
del(P)
var/obj/item/weapon/paper/talisman/T = new /obj/item/weapon/paper/talisman(src.loc)
T.imbue = "emp"
for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
del(R)
del(src)
usr.say("H'drak v'loso, mir'kanas verbot!")
@@ -47,6 +53,22 @@
del(P)
var/obj/item/weapon/paper/talisman/T = new /obj/item/weapon/paper/talisman(src.loc)
T.imbue = "conceal"
for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
del(R)
del(src)
usr.say("H'drak v'loso, mir'kanas verbot!")
return
if(R.word1==worddestr && R.word2==wordsee && R.word3==wordblood)
for(var/obj/item/weapon/paper/P in src.loc)
if(P.info)
usr << "\red The blank is tainted. It is unsuitable."
return
del(P)
var/obj/item/weapon/paper/talisman/T = new /obj/item/weapon/paper/talisman(src.loc)
T.imbue = "revealrunes"
for (var/mob/V in viewers(src))
V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3)
del(R)
del(src)
usr.say("H'drak v'loso, mir'kanas verbot!")
+1
View File
@@ -5,6 +5,7 @@
for(var/mob/living/carbon/D in R.loc)
if(D.health>=-100)
var/bdrain = rand(1,25)
D << "\red You feel wakened."
D.bruteloss += bdrain
drain += bdrain
if(!drain)
+8
View File
@@ -7,8 +7,16 @@
if(S)
if(istype(src,/obj/rune))
usr.say("Kla'atu barada nikt'o!")
for (var/mob/V in viewers(src))
V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3)
del(src)
else
usr.whisper("Kla'atu barada nikt'o!")
usr << "\red Your talisman turns into gray dust, veiling the surrounding runes."
for (var/mob/V in viewers(src))
if(V!=usr)
V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3)
return
if(istype(src,/obj/rune))
return fizzle()
+6
View File
@@ -68,6 +68,12 @@
playsound(src.loc, "punch", 25, 1, -1)
return
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob)
if (istype(A, /turf/simulated/floor))
user << "\blue You hit the floor with the bible."
if(user.mind && (user.mind.assigned_role == "Chaplain"))
call(/obj/rune/proc/revealrunes)(src)
/obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (src.contents.len >= 7)