From a40b911ce521ff9c08143e118ce2df091091c8eb Mon Sep 17 00:00:00 2001 From: Erthilo Date: Sun, 6 May 2012 18:32:39 +0100 Subject: [PATCH] TG: Shades, Juggernauts, Wraiths, Artificers all now have minds. If a cultist builds a construct, that construct will be a cultist. This means they can see cultists finally (and will probably count for the escape objective, so that might need changing numbers wise) Fixed some typos in the cult runes (godamnit Urist) and the blind rune can no longer be made into a talisman, cause a handheld, instant, AoE blind that lasts 20 seconds with no counter is retarded. Revision: r3507 Author: kortgstation --- code/game/gamemodes/wizard/soulstone.dm | 37 +++++++++++++++++--- code/game/magic/cultist/runes.dm | 6 ++-- code/modules/mob/simple_animal/constructs.dm | 28 ++++++++++++--- code/modules/mob/simple_animal/shade.dm | 8 ++++- 4 files changed, 67 insertions(+), 12 deletions(-) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index a26ea8a691..8ace91fde7 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -163,12 +163,21 @@ var/mob/living/simple_animal/shade/A = locate() in C if(A) var/construct_class = alert(U, "Please choose which type of construct you wish to create.",,"Juggernaut","Wraith","Artificer") - var/mob/living/simple_animal/Z switch(construct_class) if("Juggernaut") - Z = new /mob/living/simple_animal/constructarmoured (get_turf(T.loc)) + var/mob/living/simple_animal/constructarmoured/Z = new /mob/living/simple_animal/constructarmoured (get_turf(T.loc)) if (A.client) A.client.mob = Z + Z.mind_initialize(Z) + if(iscultist(U)) + if (ticker.mode.name == "cult") + ticker.mode:add_cultist(Z.mind) + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) + else + ticker.mode.cult+=Z.mind + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) del(T) Z << "You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike." Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." @@ -177,9 +186,19 @@ del(C) if("Wraith") - Z = new /mob/living/simple_animal/constructwraith (get_turf(T.loc)) + var/mob/living/simple_animal/constructwraith/Z = new /mob/living/simple_animal/constructwraith (get_turf(T.loc)) if (A.client) A.client.mob = Z + Z.mind_initialize(Z) + if(iscultist(U)) + if (ticker.mode.name == "cult") + ticker.mode:add_cultist(Z.mind) + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) + else + ticker.mode.cult+=Z.mind + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) del(T) Z << "You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls." Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." @@ -188,9 +207,19 @@ del(C) if("Artificer") - Z = new /mob/living/simple_animal/constructbuilder (get_turf(T.loc)) + var/mob/living/simple_animal/constructbuilder/Z = new /mob/living/simple_animal/constructbuilder (get_turf(T.loc)) if (A.client) A.client.mob = Z + Z.mind_initialize(Z) + if(iscultist(U)) + if (ticker.mode.name == "cult") + ticker.mode:add_cultist(Z.mind) + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) + else + ticker.mode.cult+=Z.mind + Z.mind.special_role = "Cultist" + ticker.mode.update_cult_icons_added(Z.mind) del(T) Z << "You are playing an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, repair allied constructs (by clicking on them), and even create new constructs" Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index 14b7a63bd9..5120e38bed 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -488,11 +488,11 @@ var/list/sacrificed = list() T.imbue = "deafen" imbued_from = R break - if(R.word1==worddestr && R.word2==wordsee && R.word3==wordother) //blind + /*if(R.word1==worddestr && R.word2==wordsee && R.word3==wordother) //blind T = new(src.loc) T.imbue = "blind" imbued_from = R - break + break*/ if(R.word1==wordself && R.word2==wordother && R.word3==wordtech) //communicat T = new(src.loc) T.imbue = "communicate" @@ -521,7 +521,7 @@ var/list/sacrificed = list() user.take_overall_damage(200, 0) runedec+=10 user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \ - "\red In the last moment of your humbly life, you feel as fabric of reality mends... with your blood.", \ + "\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ "\red You hear faint rustle.") for(,user.stat==2) sleep(600) diff --git a/code/modules/mob/simple_animal/constructs.dm b/code/modules/mob/simple_animal/constructs.dm index e698f4b474..7f9e41af6e 100644 --- a/code/modules/mob/simple_animal/constructs.dm +++ b/code/modules/mob/simple_animal/constructs.dm @@ -3,6 +3,8 @@ /mob/living/simple_animal/constructarmoured name = "Juggernaut" + real_name = "Juggernaut" + original_name = "Juggernaut" desc = "A possessed suit of armour driven by the will of the restless dead" icon = 'mob.dmi' icon_state = "armour" @@ -113,8 +115,6 @@ health -= damage - - /mob/living/simple_animal/constructarmoured/examine() set src in oview() @@ -131,12 +131,20 @@ usr << msg return +/mob/living/simple_animal/constructarmoured/proc/mind_initialize(mob/G) + mind = new + mind.current = src + mind.assigned_role = "Juggernaut" + mind.key = G.key + ////////////////////////Wraith///////////////////////////////////////////// /mob/living/simple_animal/constructwraith name = "Wraith" + real_name = "Wraith" + original_name = "Wraith" desc = "A wicked bladed shell contraption piloted by a bound spirit" icon = 'mob.dmi' icon_state = "floating" @@ -255,12 +263,18 @@ usr << msg return - +/mob/living/simple_animal/constructwraith/proc/mind_initialize(mob/G) + mind = new + mind.current = src + mind.assigned_role = "Wraith" + mind.key = G.key /////////////////////////////Artificer///////////////////////// /mob/living/simple_animal/constructbuilder name = "Artificer" + real_name = "Artificer" + original_name = "Artificer" desc = "A bulbous construct dedicated to building and maintaining The Cult of Nar-Sie's armies" icon = 'mob.dmi' icon_state = "artificer" @@ -328,4 +342,10 @@ msg += "*---------*" usr << msg - return \ No newline at end of file + return + +/mob/living/simple_animal/constructbuilder/proc/mind_initialize(mob/G) + mind = new + mind.current = src + mind.assigned_role = "Artificer" + mind.key = G.key \ No newline at end of file diff --git a/code/modules/mob/simple_animal/shade.dm b/code/modules/mob/simple_animal/shade.dm index 34034a63df..3edff7159a 100644 --- a/code/modules/mob/simple_animal/shade.dm +++ b/code/modules/mob/simple_animal/shade.dm @@ -50,4 +50,10 @@ for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) M.show_message("\red [user] gently taps [src] with the [O]. ") - return \ No newline at end of file + return + +/mob/living/simple_animal/shade/proc/mind_initialize(mob/G) + mind = new + mind.current = src + mind.assigned_role = "Shade" + mind.key = G.key \ No newline at end of file