diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index e1c10062c89..e323bae56d3 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -7,6 +7,7 @@ var/wordblood = null var/wordjoin = null var/wordtech = null var/worddestr = null +var/runedec = 0 /proc/runerandom() //randomizes word meaning var/list/runewords=list("ire","ego","nahlizet","certum","veri","jatkaa","mgar","balaq") @@ -105,7 +106,7 @@ var/worddestr = null if(word1 == wordhell && word2 == wordjoin && word3 == wordself) return tearreality() if(word1 == worddestr && word2 == wordsee && word3 == wordtech) - return emp() + return emp(src.loc,1) if(word1 == wordtravel && word2 == wordblood && word3 == wordself) return drain() if(word1 == wordsee && word2 == wordhell && word3 == wordjoin) @@ -197,10 +198,10 @@ var/worddestr = null var/C = 0 for(var/obj/rune/N in world) C++ - if (C>=26) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist + if (C>=26+runedec) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist switch(alert("The cloth of reality can't take that much of a strain. By creating another rune, you risk locally tearing reality apart, which would prove fatal to you. Do you still wish to scribe the rune?",,"Yes","No")) if("Yes") - if(prob(C*5-105)) //including the useless rune at the secret room, shouldn't count against the limit - Urist + if(prob(C*5-105-runedec*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist usr.emote("scream") user << "\red A tear momentarily appears in reality. Before it closes, you catch a glimpse of that which lies beyond. That proves to be too much for your mind." usr.gib(1) @@ -356,18 +357,16 @@ var/worddestr = null var/imbue = null attack_self(mob/user as mob) + usr.bruteloss+=20 switch(imbue) if("newtome") call(/obj/rune/proc/tomesummon)() - return if("emp") - call(/obj/rune/proc/emp)() - return + call(/obj/rune/proc/emp)(usr.loc,4) if("conceal") call(/obj/rune/proc/obscure)(2) - del(src) - return - if(imbue) - call(/obj/rune/proc/teleport)(imbue) + if("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar") + call(/obj/rune/proc/teleport)(imbue) + if(src) del(src) - return \ No newline at end of file + return \ No newline at end of file diff --git a/code/game/magic/cultist/rune1.dm b/code/game/magic/cultist/rune1.dm index a5644924e10..8d5eec16841 100644 --- a/code/game/magic/cultist/rune1.dm +++ b/code/game/magic/cultist/rune1.dm @@ -11,7 +11,10 @@ allrunesloc.len = index allrunesloc[index] = R.loc if(allrunesloc && index != 0) - usr.say("Sas'so c'arta forbici!") + if(istype(src,/obj/rune)) + usr.say("Sas'so c'arta forbici!") + else + usr.whisper("Sas'so c'arta forbici!") for (var/mob/V in viewers(src)) 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)] diff --git a/code/game/magic/cultist/rune11.dm b/code/game/magic/cultist/rune11.dm index 5e2094c7469..395617c86dd 100644 --- a/code/game/magic/cultist/rune11.dm +++ b/code/game/magic/cultist/rune11.dm @@ -1,7 +1,7 @@ /obj/rune/proc/manifest() if(usr.loc==src.loc) for(var/mob/dead/observer/O in src.loc) - usr.say("Gal'h'rfikk harfrandid mud'gib!") //H'drak v'loso, mir'kanas verbot + usr.say("Gal'h'rfikk harfrandid mud'gib!") var/mob/living/carbon/human/dummy/D = new /mob/living/carbon/human/dummy(src.loc) for (var/mob/V in viewers(D)) V.show_message("\red A shape forms in the center of the rune. A shape of... a man.", 3, "", 2) @@ -15,7 +15,10 @@ del(O) for(,usr.loc==src.loc) sleep(30) - usr.bruteloss++ + if(usr.health>-100) + usr.bruteloss++ + else + break D.gib(1) for (var/mob/V in viewers(D)) V.show_message("\red [D] explodes in a pile of gore.", 3, "\red \b SPLORCH", 2) diff --git a/code/game/magic/cultist/rune12.dm b/code/game/magic/cultist/rune12.dm index 24b34b77afd..ccab5fc8737 100644 --- a/code/game/magic/cultist/rune12.dm +++ b/code/game/magic/cultist/rune12.dm @@ -12,6 +12,7 @@ T.imbue = "[R.word3]" del(R) del(src) + usr.say("H'drak v'loso, mir'kanas verbot!") return if(R.word1==wordsee && R.word2==wordblood && R.word3==wordhell) for(var/obj/item/weapon/paper/P in src.loc) @@ -23,6 +24,7 @@ T.imbue = "newtome" del(R) del(src) + usr.say("H'drak v'loso, mir'kanas verbot!") return if(R.word1==worddestr && R.word2==wordsee && R.word3==wordtech) for(var/obj/item/weapon/paper/P in src.loc) @@ -34,6 +36,7 @@ T.imbue = "emp" del(R) del(src) + usr.say("H'drak v'loso, mir'kanas verbot!") return if(R.word1==wordblood && R.word2==wordsee && R.word3==worddestr) for(var/obj/item/weapon/paper/P in src.loc) @@ -45,5 +48,6 @@ T.imbue = "conceal" del(R) del(src) + usr.say("H'drak v'loso, mir'kanas verbot!") return return fizzle() \ No newline at end of file diff --git a/code/game/magic/cultist/rune13.dm b/code/game/magic/cultist/rune13.dm new file mode 100644 index 00000000000..049b7206ad8 --- /dev/null +++ b/code/game/magic/cultist/rune13.dm @@ -0,0 +1,10 @@ +/obj/rune/proc/mend() + usr.say("Uhrast ka'hfa heldsagen ver'lot!") + usr.bruteloss+=200 + runedec+=5 + for (var/mob/V in viewers(usr)) + V.show_message("\red [usr] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", 3, "", 2) + for(,usr.health<-100) + sleep(600) + runedec=0 + return \ No newline at end of file diff --git a/code/game/magic/cultist/rune2.dm b/code/game/magic/cultist/rune2.dm index d0217457928..b7a680d87c8 100644 --- a/code/game/magic/cultist/rune2.dm +++ b/code/game/magic/cultist/rune2.dm @@ -1,7 +1,13 @@ /obj/rune/proc/tomesummon() - usr.say("N'ath reth sh'yro eth d'raggathnor!") + if(istype(src,/obj/rune)) + usr.say("N'ath reth sh'yro eth d'raggathnor!") + else + usr.whisper("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 [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) + 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) + if(istype(src,/obj/rune)) + new /obj/item/weapon/tome(src.loc) + else + new /obj/item/weapon/tome(usr.loc) del(src) return \ No newline at end of file diff --git a/code/game/magic/cultist/rune5.dm b/code/game/magic/cultist/rune5.dm index 60f36a39724..cb0a792baf9 100644 --- a/code/game/magic/cultist/rune5.dm +++ b/code/game/magic/cultist/rune5.dm @@ -1,7 +1,10 @@ -/obj/rune/proc/emp() - usr.say("Ta'gh fara'qha fel d'amar det!") - playsound(src.loc, 'Welder2.ogg', 25, 1) - var/turf/T = get_turf(src) +/obj/rune/proc/emp(var/U,var/range_red) //range_red - var which determines by which number to reduce the default emp range, U is the source loc, needed because of talisman emps which are held in hand at the moment of using and that apparently messes things up -- Urist + if(istype(src,/obj/rune)) + usr.say("Ta'gh fara'qha fel d'amar det!") + else + usr.whisper("Ta'gh fara'qha fel d'amar det!") + playsound(U, 'Welder2.ogg', 25, 1) + var/turf/T = get_turf(U) if(T) T.hotspot_expose(700,125) @@ -16,7 +19,7 @@ spawn(20) del(pulse) - for(var/obj/item/weapon/W in range(world.view-1, T)) + for(var/obj/item/weapon/W in range(world.view-range_red, T)) if (istype(W, /obj/item/assembly/m_i_ptank) || istype(W, /obj/item/assembly/r_i_ptank) || istype(W, /obj/item/assembly/t_i_ptank)) @@ -32,7 +35,7 @@ fuckthis:ignite() - for(var/mob/living/M in viewers(world.view-1, T)) + for(var/mob/living/M in viewers(world.view-range_red, T)) if(!istype(M, /mob/living)) continue @@ -103,7 +106,7 @@ M << "\red BZZZT" - for(var/obj/machinery/A in range(world.view-1, T)) + for(var/obj/machinery/A in range(world.view-range_red, T)) A.use_power(7500) var/obj/overlay/pulse2 = new/obj/overlay ( A.loc ) diff --git a/code/game/magic/cultist/rune9.dm b/code/game/magic/cultist/rune9.dm index 417c9a51c23..064e78122cc 100644 --- a/code/game/magic/cultist/rune9.dm +++ b/code/game/magic/cultist/rune9.dm @@ -5,7 +5,10 @@ R.visibility=0 S=1 if(S) - usr.say("Kla'atu barada nikt'o!") + if(istype(src,/obj/rune)) + usr.say("Kla'atu barada nikt'o!") + else + usr.whisper("Kla'atu barada nikt'o!") return if(istype(src,/obj/rune)) return fizzle() diff --git a/goonstation.dme b/goonstation.dme index 14358d5f274..83e14429525 100644 --- a/goonstation.dme +++ b/goonstation.dme @@ -374,6 +374,7 @@ #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\rune13.dm" #include "code\game\magic\cultist\rune2.dm" #include "code\game\magic\cultist\rune3.dm" #include "code\game\magic\cultist\rune4.dm"