The armoured construct is now known as the Juggernaut. Its health was lowered and it takes massive damage from being hit with a bible. The Juggernaut has a lesser version of force wall.

Added the Wraith construct, a faster, more fragile construct which has a lesser version of Ethereal Jaunt. It too is vulnerable to bibles.

The Chaplain is now immune to blood boil, stun talismans, and cult blind/deafen

Constructs are finally creatable by using a full soulstone on an empty construct shell. The creator will be able to choose which kind of construct is created.

Cultists can get construct shells from their supply talisman

Wizards now get the spell "Artificer" which allows them to create construct shells for free when they select the soulstone belt.

Medical Borgs are now relentless to prevent them losing hold of incapacitated patients.

Added the Artificer (conjure construct shell), Phase Shift (lesser jaunt), and Shield (lesser forcewall) spells

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3054 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
kortgstation@gmail.com
2012-02-08 02:58:30 +00:00
parent d3643b021f
commit b324db9b7e
9 changed files with 243 additions and 26 deletions
+43 -1
View File
@@ -9,6 +9,7 @@
origin_tech = "bluespace=4;materials=4"
var/imprinted = "empty"
//////////////////////////////Capturing////////////////////////////////////////////////////////
attack(mob/living/carbon/human/M as mob, mob/user as mob)
@@ -75,7 +76,17 @@
src.icon_state = "soulstone"
attack_self(U)
///////////////////////////Transferring to constructs/////////////////////////////////////////////////////
/obj/structure/constructshell
name = "empty shell"
icon = 'wizard.dmi'
icon_state = "construct"
desc = "A wicked machine used by those skilled in magical arts. It is inactive"
flags = FPRINT | TABLEPASS
/obj/structure/constructshell/attackby(obj/item/O as obj, mob/user as mob)
if(istype(O, /obj/item/device/soulstone))
O.transfer_soul("CONSTRUCT",src,user)
////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
@@ -120,7 +131,7 @@
C.name = "Soul Stone: [S.name]"
S << "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs."
U << "\blue <b>Capture successful!</b>: \black [T.name]'s soul has been ripped from their body and stored within the soul stone."
S << "The soulstone has been imprinted with [S.name]'s mind, it will no longer react to other souls."
U << "The soulstone has been imprinted with [S.name]'s mind, it will no longer react to other souls."
C.imprinted = "[S.name]"
del T
if("SHADE")
@@ -142,4 +153,35 @@
C.icon_state = "soulstone2"
T << "Your soul has been recaptured by the soul stone, its arcane energies are reknitting your ethereal form"
U << "\blue <b>Capture successful!</b>: \black [T.name]'s has been recaptured and stored within the soul stone."
if("CONSTRUCT")
var/obj/structure/constructshell/T = target
var/obj/item/device/soulstone/C = src
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")
var/mob/living/simple_animal/Z
switch(construct_class)
if("Juggernaut")
Z = new /mob/living/simple_animal/constructarmoured (get_turf(T.loc))
if (A.client)
A.client.mob = Z
del(T)
Z << "<B>You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike.</B>"
Z << "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>"
Z.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall(Z)
Z.cancel_camera()
del(C)
if("Wraith")
Z = new /mob/living/simple_animal/constructwraith (get_turf(T.loc))
if (A.client)
A.client.mob = Z
del(T)
Z << "<B>You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls.</B>"
Z << "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>"
Z.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift(Z)
Z.cancel_camera()
del(C)
else
U << "\red <b>Creation failed!</b>: \black The soul stone is empty! Go kill someone!"
return
+3 -2
View File
@@ -32,7 +32,7 @@
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=14'>Staff of Change</A><BR>"
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=15'>Six Soul Stone Shards</A><BR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=15'>Six Soul Stone Shards and the spell Artificer</A><BR>"
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];spell_choice=16'>Re-memorize Spells</A><BR>"
user << browse(dat, "window=radio")
@@ -184,7 +184,8 @@
if ("15")
feedback_add_details("wizard_spell_learned","SS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
new /obj/item/weapon/storage/belt/soulstone/full(get_turf(usr))
src.temp = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying"
usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(usr)
src.temp = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot."
src.max_uses--
if (href_list["spell_choice"] == "16")
var/area/wizard_station/A = locate()
+22 -8
View File
@@ -782,6 +782,8 @@ var/list/sacrificed = list()
for(var/mob/living/carbon/C in range(7,src))
if (iscultist(C))
continue
if(C.mind && (C.mind.assigned_role == "Chaplain"))
continue
C.ear_deaf += 50
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
@@ -798,6 +800,8 @@ var/list/sacrificed = list()
for(var/mob/living/carbon/C in range(7,usr))
if (iscultist(C))
continue
if(C.mind && (C.mind.assigned_role == "Chaplain"))
continue
C.ear_deaf += 30
//talismans is weaker.
C.show_message("\red The world around you suddenly becomes quiet.", 3)
@@ -816,6 +820,8 @@ var/list/sacrificed = list()
for(var/mob/living/carbon/C in viewers(src))
if (iscultist(C))
continue
if(C.mind && (C.mind.assigned_role == "Chaplain"))
continue
C.eye_blurry += 50
C.eye_blind += 20
if(prob(5))
@@ -835,6 +841,8 @@ var/list/sacrificed = list()
for(var/mob/living/carbon/C in viewers(usr))
if (iscultist(C))
continue
if(C.mind && (C.mind.assigned_role == "Chaplain"))
continue
C.eye_blurry += 30
C.eye_blind += 10
//talismans is weaker.
@@ -862,6 +870,8 @@ var/list/sacrificed = list()
for(var/mob/living/carbon/M in viewers(usr))
if(iscultist(M))
continue
if(M.mind && (M.mind.assigned_role == "Chaplain"))
continue
M.take_overall_damage(51,51)
M << "\red Your blood boils!"
if(prob(5))
@@ -922,14 +932,18 @@ var/list/sacrificed = list()
del(src)
else ///When invoked as talisman, stun and mute the target mob.
usr.say("Dream sign ''Evil sealing talisman''!")
for(var/mob/O in viewers(T, null))
O.show_message(text("\red <B>[] invokes a talisman at []</B>", usr, T), 1)
flick("e_flash", T.flash)
if (!(T.mutations & HULK))
T.silent += 15
T.Weaken(25)
T.Stun(25)
return
if(T.mind && (T.mind.assigned_role == "Chaplain"))
for(var/mob/O in viewers(T, null))
O.show_message(text("\red <B>[] invokes a talisman at [], but they are unaffected!</B>", usr, T), 1)
else
for(var/mob/O in viewers(T, null))
O.show_message(text("\red <B>[] invokes a talisman at []</B>", usr, T), 1)
flick("e_flash", T.flash)
if (!(T.mutations & HULK))
T.silent += 15
T.Weaken(25)
T.Stun(25)
return
/////////////////////////////////////////TWENTY-FIFTH RUNE
+3
View File
@@ -73,6 +73,7 @@
dat += "<A href='?src=\ref[src];rune=runestun'>Fuu ma'jin</A> - Allows you to stun a person by attacking them with the talisman.<BR>"
dat += "<A href='?src=\ref[src];rune=armor'>Sa tatha najin</A> - Allows you to summon armoured robes and an unholy blade<BR>"
dat += "<A href='?src=\ref[src];rune=soulstone'>Kal om neth</A> - Summons a soul stone<BR>"
dat += "<A href='?src=\ref[src];rune=construct'>Da A'ig Osk</A> - Summons a construct shell for use with captured souls. It is too large to carry on your person.<BR>"
usr << browse(dat, "window=id_com;size=350x200")
return
@@ -107,6 +108,8 @@
T.imbue = "armor"
if("soulstone")
new /obj/item/device/soulstone(get_turf(usr))
if("construct")
new /obj/structure/constructshell(get_turf(usr))
src.uses--
supply()
return