From 8d8a0e2aec08d948b8575a247bb7b14d9778d7e7 Mon Sep 17 00:00:00 2001 From: KFFFF00 Date: Tue, 7 Dec 2010 06:10:53 +0000 Subject: [PATCH] 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 --- code/game/gamemodes/cult/cult.dm | 18 +++++------------- code/game/magic/cultist/ritual.dm | 15 +++++++++++++++ code/game/magic/cultist/rune12.dm | 22 ++++++++++++++++++++++ code/game/magic/cultist/rune6.dm | 1 + code/game/magic/cultist/rune9.dm | 8 ++++++++ code/game/objects/storage/bible.dm | 6 ++++++ goonstation.dme | 6 +----- 7 files changed, 58 insertions(+), 18 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 51b170ca86..a9b5b15824 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -34,17 +34,13 @@ cultists_possible = get_possible_cultists() var/cultists_number = 0 - if(!cultists_possible) + if(cultists_possible.len < 3) world << " \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("You remember one thing: [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 diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index a000d96d64..0d05fc30d1 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -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") diff --git a/code/game/magic/cultist/rune12.dm b/code/game/magic/cultist/rune12.dm index c129bac722..9341340837 100644 --- a/code/game/magic/cultist/rune12.dm +++ b/code/game/magic/cultist/rune12.dm @@ -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!") diff --git a/code/game/magic/cultist/rune6.dm b/code/game/magic/cultist/rune6.dm index 84d3bda90e..e7dfaf75c9 100644 --- a/code/game/magic/cultist/rune6.dm +++ b/code/game/magic/cultist/rune6.dm @@ -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) diff --git a/code/game/magic/cultist/rune9.dm b/code/game/magic/cultist/rune9.dm index 064e78122c..257ca71f94 100644 --- a/code/game/magic/cultist/rune9.dm +++ b/code/game/magic/cultist/rune9.dm @@ -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() diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index 5ef051aaaa..200c08a7e2 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -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) diff --git a/goonstation.dme b/goonstation.dme index 3059d5cdbc..910c85a4c5 100644 --- a/goonstation.dme +++ b/goonstation.dme @@ -127,11 +127,6 @@ #define FILE_DIR "sound/spells" #define FILE_DIR "sound/voice" #define FILE_DIR "sound/weapons" -#define FILE_DIR "SS13 Hosting" -#define FILE_DIR "SS13 Hosting/SSadmindickery files" -#define FILE_DIR "SS13 Hosting/SSadmindickery files/maps" -#define FILE_DIR "SS13 Hosting/SSadmindickery files/maps/backup" -#define FILE_DIR "SS13 Hosting/Thunderdome" // END_FILE_DIR // BEGIN_PREFERENCES @@ -407,6 +402,7 @@ #include "code\game\magic\cultist\rune13.dm" #include "code\game\magic\cultist\rune14.dm" #include "code\game\magic\cultist\rune15.dm" +#include "code\game\magic\cultist\rune16.dm" #include "code\game\magic\cultist\rune2.dm" #include "code\game\magic\cultist\rune3.dm" #include "code\game\magic\cultist\rune4.dm"