diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index 4b96e0ef769..e1c10062c89 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -50,6 +50,7 @@ var/worddestr = null // blood see destroy - Hide nearby runes // Hell join blood - 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 examine() if(!cultists.Find(usr)) @@ -117,8 +118,8 @@ var/worddestr = null return ajourney() if(word1 == wordblood && word2 == wordsee && word3 == wordtravel) return manifest() - /*if(word1 == wordtech && word2 == wordhell && word3 == wordjoin) - return egenerate(5000)*/ + if(word1 == wordhell && word2 == wordtech && word3 == wordjoin) + return sigil() else return fizzle() @@ -171,7 +172,13 @@ var/worddestr = null return if(word1 == wordblood && word2 == wordsee && word3 == wordtravel) icon_state = "2" - src.icon += rgb(-255, -255 , 255) + src.icon -= rgb(255, 255 , 255) + src.icon += rgb(0, 0 , 255) + return + if(word1 == wordhell && word2 == wordtech && word3 == wordjoin) + icon_state = "3" + src.icon -= rgb(255, 255 , 255) + src.icon += rgb(0, 0 , 255) return icon_state = "1" @@ -243,7 +250,7 @@ var/worddestr = null runerandom() if(user) var/r - var/list/runes = list("teleport", "tome", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "astral journey", "manifest"/*, "generate energy"*/) + var/list/runes = list("teleport", "tome", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "astral journey", "manifest", "imbue talisman") r = input("Choose a rune to scribe", "Rune Scribing") in runes switch(r) if("teleport") @@ -316,12 +323,12 @@ var/worddestr = null R.word2=wordsee R.word3=wordtravel R.check_icon() - /*if("generate energy") + if("imbue talisman") var/obj/rune/R = new /obj/rune(user.loc) - R.word1=wordtech - R.word2=wordhell + R.word1=wordhell + R.word2=wordtech R.word3=wordjoin - R.check_icon()*/ + R.check_icon() /obj/item/weapon/paperscrap name = "scrap of paper" @@ -342,4 +349,25 @@ var/worddestr = null view_scrap(usr) proc/view_scrap(var/viewer) - viewer << browse(data) \ No newline at end of file + viewer << browse(data) + +/obj/item/weapon/paper/talisman + icon_state = "papertalisman" + var/imbue = null + + attack_self(mob/user as mob) + switch(imbue) + if("newtome") + call(/obj/rune/proc/tomesummon)() + return + if("emp") + call(/obj/rune/proc/emp)() + return + if("conceal") + call(/obj/rune/proc/obscure)(2) + del(src) + return + if(imbue) + call(/obj/rune/proc/teleport)(imbue) + del(src) + return \ No newline at end of file diff --git a/code/game/magic/cultist/rune1.dm b/code/game/magic/cultist/rune1.dm index 7bed41a686b..a5644924e10 100644 --- a/code/game/magic/cultist/rune1.dm +++ b/code/game/magic/cultist/rune1.dm @@ -16,4 +16,8 @@ V.show_message("\red [usr] disappears in a flash of red light!", 3, "\red You hear a sickening crunch and sloshing of viscera.", 2) usr.loc = allrunesloc[rand(1,index)] return - return fizzle() //Use friggin manuals, Dorf, your list was of zero length. \ No newline at end of file + if(istype(src,/obj/rune)) + return fizzle() //Use friggin manuals, Dorf, your list was of zero length. + else + call(/obj/rune/proc/fizzle)() + return \ No newline at end of file diff --git a/code/game/magic/cultist/rune10.dm b/code/game/magic/cultist/rune10.dm index 84bd1a9f418..28148cc9ee1 100644 --- a/code/game/magic/cultist/rune10.dm +++ b/code/game/magic/cultist/rune10.dm @@ -5,8 +5,7 @@ usr.ghostize() usr << "\red The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this it's a great sight, being here strains your mind and body. Hurry." for (var/mob/V in viewers(src)) - if(V!=usr) - V.show_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", 3, "\red You hear only complete silence for a moment.", 2) + V.show_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", 3, "\red You hear only complete silence for a moment.", 2) for(L.ajourn=1,L.ajourn) sleep(10) if(L.key) diff --git a/code/game/magic/cultist/rune12.dm b/code/game/magic/cultist/rune12.dm new file mode 100644 index 00000000000..24b34b77afd --- /dev/null +++ b/code/game/magic/cultist/rune12.dm @@ -0,0 +1,49 @@ +/obj/rune/proc/sigil()//only hide, emp, teleport and tome runes can be imbued atm + for(var/obj/rune/R in orange(1,src)) + if(R==src) + continue + if(R.word1==wordtravel && R.word2==wordself) + 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 = "[R.word3]" + del(R) + del(src) + return + if(R.word1==wordsee && R.word2==wordblood && R.word3==wordhell) + 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 = "newtome" + del(R) + del(src) + return + if(R.word1==worddestr && R.word2==wordsee && R.word3==wordtech) + 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 = "emp" + del(R) + del(src) + return + if(R.word1==wordblood && R.word2==wordsee && R.word3==worddestr) + 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 = "conceal" + del(R) + del(src) + return + return fizzle() \ No newline at end of file diff --git a/code/game/magic/cultist/rune2.dm b/code/game/magic/cultist/rune2.dm index 7be1cc504a4..d0217457928 100644 --- a/code/game/magic/cultist/rune2.dm +++ b/code/game/magic/cultist/rune2.dm @@ -1,7 +1,7 @@ /obj/rune/proc/tomesummon() usr.say("N'ath reth sh'yro eth d'raggathnor!") for (var/mob/V in viewers(src)) - V.show_message("\red There's a flash of red light. The rune disappears, and in its place a book lies", 3, "\red You hear a pop and smell ozone.", 2) + V.show_message("\red There's a flash of red light. The [src] disappears, and in its place a book lies", 3, "\red You hear a pop and smell ozone.", 2) new /obj/item/weapon/tome(src.loc) del(src) return \ No newline at end of file diff --git a/code/game/magic/cultist/rune9.dm b/code/game/magic/cultist/rune9.dm index 6806b4f9643..417c9a51c23 100644 --- a/code/game/magic/cultist/rune9.dm +++ b/code/game/magic/cultist/rune9.dm @@ -7,4 +7,8 @@ if(S) usr.say("Kla'atu barada nikt'o!") return - return fizzle() \ No newline at end of file + if(istype(src,/obj/rune)) + return fizzle() + else + call(/obj/rune/proc/fizzle)() + return \ No newline at end of file diff --git a/goonstation.dme b/goonstation.dme index 12b0b1205cc..14358d5f274 100644 --- a/goonstation.dme +++ b/goonstation.dme @@ -373,6 +373,7 @@ #include "code\game\magic\cultist\rune1.dm" #include "code\game\magic\cultist\rune10.dm" #include "code\game\magic\cultist\rune11.dm" +#include "code\game\magic\cultist\rune12.dm" #include "code\game\magic\cultist\rune2.dm" #include "code\game\magic\cultist\rune3.dm" #include "code\game\magic\cultist\rune4.dm" diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 01f7a3b441d..a55d072d103 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ