mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 15:08:02 +01:00
Added a spacesuit to syndie PDA summoning.
Further work on cultism. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@263 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -666,6 +666,10 @@
|
||||
name = "Control Room"
|
||||
icon_state = "bridge"
|
||||
|
||||
/area/derelict/secret
|
||||
name = "Secret Room"
|
||||
icon_state = "library"
|
||||
|
||||
/area/derelict/bridge/access
|
||||
name = "Control Room Access"
|
||||
icon_state = "auxstorage"
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
var/stuttering = null
|
||||
var/real_name = null
|
||||
var/blinded = null
|
||||
var/bhunger = 0
|
||||
var/rejuv = null
|
||||
var/druggy = 0
|
||||
var/confused = 0
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
var/list/cultists = list()
|
||||
|
||||
|
||||
/obj/rune
|
||||
anchored = 1
|
||||
icon = 'magic.dmi'
|
||||
icon_state = "1"
|
||||
|
||||
|
||||
var
|
||||
word1
|
||||
word2
|
||||
word3
|
||||
|
||||
// ire - travel
|
||||
// ego - self
|
||||
// nahlizet - see
|
||||
// certum - Hell
|
||||
// veri - blood
|
||||
// jatkaa - join
|
||||
// mgar - technology
|
||||
// balaq - destroy
|
||||
|
||||
|
||||
// ire ego [word] - Teleport to [rune with word destination matching] (works in pairs)
|
||||
// nahlizet veri certum - Create a new tome
|
||||
// jatkaa veri ego - Incorporate person over the rune into the group
|
||||
// certum jatkaa ego - Summon TERROR
|
||||
// balaq nahlizet mgar - EMP rune
|
||||
// ire veri ego - Drain blood
|
||||
// nahlizet certum jatkaa - See invisible
|
||||
// veri jatkaa certum - Raise dead
|
||||
|
||||
examine()
|
||||
set src in usr
|
||||
if(!cultists.Find(usr))
|
||||
src.desc = text("A strange collection of symbols drawn in blood.")
|
||||
else
|
||||
src.desc = "A spell circle drawn in blood. It reads: <i>[word1] [word2] [word3]</i>."
|
||||
..()
|
||||
return
|
||||
|
||||
attackby(I as obj, user as mob)
|
||||
if(istype(I, /obj/item/weapon/tome) && cultists.Find(user))
|
||||
user << "You retrace your steps, carefully undoing the lines of the rune."
|
||||
del(src)
|
||||
return
|
||||
else if(istype(I, /obj/item/weapon/storage/bible) && usr.mind && (usr.mind.assigned_role == "Chaplain"))
|
||||
user << "\blue You banish the vile magic with the blessing of God!"
|
||||
del(src)
|
||||
return
|
||||
return
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
if(!cultists.Find(user))
|
||||
user << "You can't mouth the arcane scratchings without fumbling over them."
|
||||
return
|
||||
if(!word1 || !word2 || !word3 || prob(usr.brainloss))
|
||||
return fizzle()
|
||||
|
||||
if(word1 == "ire" && word2 == "ego")
|
||||
return teleport(src.word3)
|
||||
if(word1 == "nahlizet" && word2 == "veri" && word3 == "certum")
|
||||
return tomesummon()
|
||||
/*
|
||||
if(word1 == "ire" && word2 == "certum" && word3 == "jatkaa")
|
||||
var/list/temprunes = list()
|
||||
var/list/runes = list()
|
||||
for(var/obj/rune/R in world)
|
||||
if(istype(R, /obj/rune))
|
||||
if(R.word1 == "ire" && R.word2 == "certum" && R.word3 == "jatkaa")
|
||||
runes.Add(R)
|
||||
var/atom/a = get_turf_loc(R)
|
||||
temprunes.Add(a.loc)
|
||||
var/chosen = input("Scry which rune?", "Scrying") in temprunes
|
||||
if(!chosen)
|
||||
return fizzle()
|
||||
var/selection_position = temprunes.Find(chosen)
|
||||
var/obj/rune/chosenrune = runes[selection_position]
|
||||
user.client.eye = chosenrune
|
||||
user:current = chosenrune
|
||||
user.reset_view(chosenrune)
|
||||
*/
|
||||
if(word1 == "jatkaa" && word2 == "veri" && word3 == "ego")
|
||||
return convert()
|
||||
if(word1 == "certum" && word2 == "jatkaa" && word3 == "ego")
|
||||
return tearreality()
|
||||
if(word1 == "balaq" && word2 == "nahlizet" && word3 == "mgar")
|
||||
return emp()
|
||||
if(word1 == "ire" && word2 == "veri" && word3 == "ego")
|
||||
return drain()
|
||||
if(word1 == "nahlizet" && word2 == "certum" && word3 == "jatkaa")
|
||||
return seer()
|
||||
if(word1 == "veri" && word2 == "jatkaa" && word3 == "certum")
|
||||
return raise()
|
||||
else
|
||||
return fizzle()
|
||||
|
||||
|
||||
proc
|
||||
fizzle()
|
||||
usr.say(pick("B'ADMINES SP'WNIN SH'T","IC'IN O'OC","RO'SHA'M I'SA GRI'FF'N ME'AI","TOX'IN'S O'NM FI'RAH","IA BL'AME TOX'IN'S","FIR'A NON'AN RE'SONA","A'OI I'RS ROUA'GE","LE'OAN JU'STA SP'A'C Z'EE SH'EF","IA PT'WOBEA'RD, IA A'DMI'NEH'LP"))
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2)
|
||||
return
|
||||
|
||||
check_icon()
|
||||
if(word1 == "ire" && word2 == "ego")
|
||||
icon_state = "2"
|
||||
return
|
||||
if(word1 == "jatkaa" && word2 == "veri" && word3 == "ego")
|
||||
icon_state = "3"
|
||||
return
|
||||
if(word1 == "certum" && word2 == "jatkaa" && word3 == "ego")
|
||||
icon_state = "3"
|
||||
src.icon += rgb(100, 0 , 150)
|
||||
return
|
||||
if(word1 == "nahlizet" && word2 == "ire" && word3 == "certum")
|
||||
icon_state = "2"
|
||||
src.icon += rgb(0, 50 , 0)
|
||||
return
|
||||
icon_state = "1"
|
||||
|
||||
|
||||
/obj/item/weapon/tome
|
||||
name = "arcane tome"
|
||||
icon_state ="tome"
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
if(cultists.Find(user))
|
||||
var/C = 0
|
||||
for(var/obj/rune/N in world)
|
||||
C++
|
||||
if (C>=25)
|
||||
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-100))
|
||||
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)
|
||||
return
|
||||
if("No")
|
||||
return
|
||||
else
|
||||
if(alert("Scribe a rune?",,"Yes","No")=="No")
|
||||
return
|
||||
var/list/words = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar")
|
||||
var/w1
|
||||
var/w2
|
||||
var/w3
|
||||
if(usr)
|
||||
w1 = input("Write your first rune:", "Rune Scribing") in words
|
||||
if(usr)
|
||||
w2 = input("Write your second rune:", "Rune Scribing") in words
|
||||
if(usr)
|
||||
w3 = input("Write your third rune:", "Rune Scribing") in words
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("\red [user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "\red You hear chanting.", 2)
|
||||
user << "\red You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world."
|
||||
user.bruteloss += 1
|
||||
if(do_after(user, 50))
|
||||
var/obj/rune/R = new /obj/rune(user.loc)
|
||||
user << "\red You finish drawing the arcane markings of the Geometer."
|
||||
R.word1 = w1
|
||||
R.word2 = w2
|
||||
R.word3 = w3
|
||||
R.check_icon()
|
||||
return
|
||||
else
|
||||
user << "The book seems full of illegible scribbles. Is this a joke?"
|
||||
return
|
||||
|
||||
examine()
|
||||
set src in usr
|
||||
if(!cultists.Find(usr))
|
||||
usr << "An old, dusty tome with frayed edges and a sinister looking cover."
|
||||
else
|
||||
usr << "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though."
|
||||
|
||||
|
||||
/obj/item/weapon/paperscrap
|
||||
name = "scrap of paper"
|
||||
icon_state = "scrap"
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
w_class = 1.0
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
var
|
||||
data
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
view_scrap(user)
|
||||
|
||||
examine()
|
||||
set src in usr
|
||||
view_scrap(usr)
|
||||
|
||||
proc/view_scrap(var/viewer)
|
||||
viewer << browse(data)
|
||||
@@ -0,0 +1,48 @@
|
||||
/obj/rune/proc/teleport(var/key)
|
||||
for(var/obj/rune/R in world)
|
||||
if(R == src)
|
||||
continue
|
||||
if(R.word3 == key && R.word1 == src.word1 && R.word2 == src.word2)
|
||||
usr.say("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 = R.loc
|
||||
return
|
||||
return fizzle()
|
||||
|
||||
/* var/allrunes[]
|
||||
var/index = 0
|
||||
for(var/obj/rune/R in world)
|
||||
if(R == src)
|
||||
continue
|
||||
if(R.word3 == key && R.word1 == src.word1 && R.word2 == src.word2)
|
||||
allrunes[index] = R.loc
|
||||
index++
|
||||
if(allrunes)
|
||||
usr.say("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 = allrunes[rand(allrunes.len)]
|
||||
return
|
||||
return fizzle()*/ //Doesn't work for some raisin
|
||||
|
||||
/* var/list/allrunesx
|
||||
var/list/allrunesy
|
||||
var/tempnum
|
||||
var/count = 0
|
||||
for(var/obj/rune/R in world)
|
||||
if(R == src)
|
||||
continue
|
||||
if(R.word3 == key && R.word1 == src.word1 && R.word2 == src.word2)
|
||||
allrunesx += R.x
|
||||
allrunesy += R.y
|
||||
count++
|
||||
if(allrunesx && allrunesy)
|
||||
usr.say("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)
|
||||
tempnum = rand(1,count)
|
||||
usr.x = allrunesx[tempnum]
|
||||
usr.y = allrunesy[tempnum]
|
||||
return
|
||||
return fizzle()*/
|
||||
@@ -0,0 +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)
|
||||
new /obj/item/weapon/tome(src.loc)
|
||||
del(src)
|
||||
return
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/rune/proc/convert()
|
||||
usr.say("Mah'weyh pleggh at e'ntrath!")
|
||||
for(var/mob/living/carbon/human/M in src.loc)
|
||||
if(cultists.Find(M))
|
||||
return fizzle()
|
||||
else
|
||||
cultists.Add(M)
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("\red [M] writhes in pain as the markings below him glow a bloody red.", 3, "\red You hear an anguished scream.", 2)
|
||||
M << "<font color=\"purple\"><b><i>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</b></i></font>"
|
||||
M<< "<font color=\"purple\"><b><i>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</b></i></font>"
|
||||
return
|
||||
@@ -0,0 +1,17 @@
|
||||
/obj/rune/proc/tearreality()
|
||||
usr.say("Tok-lyr rqa'nap g'lt-ulotf!")
|
||||
var/cultist_count = 0
|
||||
for(var/mob/M in orange(1,src))
|
||||
if(cultists.Find(M))
|
||||
cultist_count += 1
|
||||
if(cultist_count >= 6)
|
||||
var/obj/machinery/the_singularity/S = new /obj/machinery/the_singularity/(src.loc)
|
||||
S.icon = 'magic_terror.dmi'
|
||||
S.name = "Tear in the Fabric of Reality"
|
||||
S.desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees."
|
||||
S.pixel_x = -89
|
||||
S.pixel_y = -85
|
||||
message_admins("<h1><font color=\"purple\"><b><u>[key_name_admin(usr)] has summoned a Tear in the Fabric of Reality!", 1)
|
||||
return
|
||||
else
|
||||
return fizzle()
|
||||
@@ -0,0 +1,185 @@
|
||||
/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)
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
|
||||
var/rune = src // detaching the proc - in theory
|
||||
src = null
|
||||
|
||||
var/obj/overlay/pulse = new/obj/overlay ( T )
|
||||
pulse.icon = 'effects.dmi'
|
||||
pulse.icon_state = "emppulse"
|
||||
pulse.name = "emp pulse"
|
||||
pulse.anchored = 1
|
||||
spawn(20)
|
||||
del(pulse)
|
||||
|
||||
for(var/obj/item/weapon/W in range(world.view-1, 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))
|
||||
|
||||
var/fuckthis
|
||||
if(istype(W:part1,/obj/item/weapon/tank/plasma))
|
||||
fuckthis = W:part1
|
||||
fuckthis:ignite()
|
||||
if(istype(W:part2,/obj/item/weapon/tank/plasma))
|
||||
fuckthis = W:part2
|
||||
fuckthis:ignite()
|
||||
if(istype(W:part3,/obj/item/weapon/tank/plasma))
|
||||
fuckthis = W:part3
|
||||
fuckthis:ignite()
|
||||
|
||||
|
||||
for(var/mob/living/M in viewers(world.view-1, T))
|
||||
|
||||
if(!istype(M, /mob/living)) continue
|
||||
|
||||
if (istype(M, /mob/living/silicon))
|
||||
M.fireloss += 25
|
||||
flick("noise", M:flash)
|
||||
M << "\red <B>*BZZZT*</B>"
|
||||
M << "\red Warning: Electromagnetic pulse detected."
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if (prob(30))
|
||||
switch(pick(1,2,3)) //Add Random laws.
|
||||
if(1)
|
||||
M:cancel_camera()
|
||||
if(2)
|
||||
M:lockdown()
|
||||
if(3)
|
||||
M:ai_call_shuttle()
|
||||
continue
|
||||
|
||||
|
||||
M << "\red <B>Your equipment malfunctions.</B>" //Yeah, i realise that this WILL
|
||||
//show if theyre not carrying anything
|
||||
//that is affected. lazy.
|
||||
if (locate(/obj/item/weapon/cloaking_device, M))
|
||||
for(var/obj/item/weapon/cloaking_device/S in M)
|
||||
S.active = 0
|
||||
S.icon_state = "shield0"
|
||||
|
||||
if (locate(/obj/item/weapon/gun/energy, M))
|
||||
for(var/obj/item/weapon/gun/energy/G in M)
|
||||
G.charges = 0
|
||||
G.update_icon()
|
||||
|
||||
if ((istype(M, /mob/living/carbon/human)) && (istype(M:glasses, /obj/item/clothing/glasses/thermal)))
|
||||
M << "\red <B>Your thermals malfunction.</B>"
|
||||
M.eye_blind = 3
|
||||
M.eye_blurry = 5
|
||||
M.disabilities |= 1
|
||||
spawn(100)
|
||||
M.disabilities &= ~1
|
||||
|
||||
if (locate(/obj/item/device/radio, M))
|
||||
for(var/obj/item/device/radio/R in M) //Add something for the intercoms.
|
||||
R.broadcasting = 0
|
||||
R.listening = 0
|
||||
|
||||
if (locate(/obj/item/device/flash, M))
|
||||
for(var/obj/item/device/flash/F in M) //Add something for the intercoms.
|
||||
F.attack_self()
|
||||
|
||||
if (locate(/obj/item/weapon/baton, M))
|
||||
for(var/obj/item/weapon/baton/B in M) //Add something for the intercoms.
|
||||
B.charges = 0
|
||||
|
||||
if(locate(/obj/item/clothing/under/chameleon, M))
|
||||
for(var/obj/item/clothing/under/chameleon/C in M) //Add something for the intercoms.
|
||||
M << "\red <B>Your jumpsuit malfunctions</B>"
|
||||
C.name = "psychedelic"
|
||||
C.desc = "Groovy!"
|
||||
C.icon_state = "psyche"
|
||||
C.color = "psyche"
|
||||
spawn(200)
|
||||
C.name = "Black Jumpsuit"
|
||||
C.icon_state = "bl_suit"
|
||||
C.color = "black"
|
||||
C.desc = null
|
||||
|
||||
M << "\red <B>BZZZT</B>"
|
||||
|
||||
|
||||
for(var/obj/machinery/A in range(world.view-1, T))
|
||||
A.use_power(7500)
|
||||
|
||||
var/obj/overlay/pulse2 = new/obj/overlay ( A.loc )
|
||||
pulse2.icon = 'effects.dmi'
|
||||
pulse2.icon_state = "empdisable"
|
||||
pulse2.name = "emp sparks"
|
||||
pulse2.anchored = 1
|
||||
pulse2.dir = pick(cardinal)
|
||||
|
||||
spawn(10)
|
||||
del(pulse2)
|
||||
|
||||
if(istype(A, /obj/machinery/turret))
|
||||
A:enabled = 0
|
||||
A:lasers = 0
|
||||
A:power_change()
|
||||
|
||||
if(istype(A, /obj/machinery/computer) && prob(20))
|
||||
A:set_broken()
|
||||
|
||||
if(istype(A, /obj/machinery/firealarm) && prob(50))
|
||||
A:alarm()
|
||||
|
||||
if(istype(A, /obj/machinery/power/smes))
|
||||
A:online = 0
|
||||
A:charging = 0
|
||||
A:output = 0
|
||||
A:charge -= 1e6
|
||||
if (A:charge < 0)
|
||||
A:charge = 0
|
||||
spawn(100)
|
||||
A:output = initial(A:output)
|
||||
A:charging = initial(A:charging)
|
||||
A:online = initial(A:online)
|
||||
|
||||
if(istype(A, /obj/machinery/door))
|
||||
if(prob(20) && (istype(A,/obj/machinery/door/airlock) || istype(A,/obj/machinery/door/window)) )
|
||||
A:open()
|
||||
if(prob(40))
|
||||
if(A:secondsElectrified != 0) continue
|
||||
A:secondsElectrified = -1
|
||||
spawn(300)
|
||||
A:secondsElectrified = 0
|
||||
|
||||
if(istype(A, /obj/machinery/power/apc))
|
||||
if(A:cell)
|
||||
A:cell:charge -= 1000
|
||||
if (A:cell:charge < 0)
|
||||
A:cell:charge = 0
|
||||
A:lighting = 0
|
||||
A:equipment = 0
|
||||
A:environ = 0
|
||||
spawn(600)
|
||||
A:equipment = 3
|
||||
A:environ = 3
|
||||
|
||||
if(istype(A, /obj/machinery/camera))
|
||||
A.icon_state = "cameraemp"
|
||||
A:network = null //Not the best way but it will do. I think.
|
||||
spawn(900)
|
||||
A:network = initial(A:network)
|
||||
A:icon_state = initial(A:icon_state)
|
||||
for(var/mob/living/silicon/ai/O in world)
|
||||
if (O.current == A)
|
||||
O.cancel_camera()
|
||||
O << "Your connection to the camera has been lost."
|
||||
for(var/mob/O in world)
|
||||
if (istype(O.machine, /obj/machinery/computer/security))
|
||||
var/obj/machinery/computer/security/S = O.machine
|
||||
if (S.current == A)
|
||||
O.machine = null
|
||||
S.current = null
|
||||
O.reset_view(null)
|
||||
O << "The screen bursts into static."
|
||||
|
||||
if(istype(A, /obj/machinery/clonepod))
|
||||
A:malfunction()
|
||||
del(rune)
|
||||
return
|
||||
@@ -0,0 +1,25 @@
|
||||
/obj/rune/proc/drain()
|
||||
var/drain = 0
|
||||
for(var/obj/rune/R in world)
|
||||
for(var/mob/living/carbon/D in R.loc)
|
||||
if(D.health>=-100)
|
||||
var/bdrain = rand(1,25)
|
||||
D.bruteloss += bdrain
|
||||
drain += bdrain
|
||||
if(!drain)
|
||||
return fizzle()
|
||||
usr.say ("Yu'gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!")
|
||||
usr << "\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered."
|
||||
for (var/mob/V in viewers(src))
|
||||
if(V!=usr)
|
||||
V.show_message("\red Blood flows from the rune into [usr]!", 3, "\red You hear a liquid flowing.", 2)
|
||||
if(usr.bhunger)
|
||||
usr.bhunger -= 2*drain
|
||||
if(drain>=50)
|
||||
usr << "\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within."
|
||||
usr.bhunger += drain
|
||||
for (,usr.bhunger,usr.bhunger--)
|
||||
sleep(50)
|
||||
usr.bruteloss += 3
|
||||
usr.bruteloss -= drain
|
||||
return
|
||||
@@ -0,0 +1,5 @@
|
||||
/obj/rune/proc/seer()
|
||||
usr.say("Rash'tla sektath mal'zua. Zasan therium vivira. Itonis al'ra matum!")
|
||||
usr << "\red The world beyond opens to your eyes."
|
||||
usr.see_invisible = 15
|
||||
return
|
||||
@@ -0,0 +1,46 @@
|
||||
/obj/rune/proc/raise()
|
||||
usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!")
|
||||
for(var/mob/living/carbon/human/M in src.loc)
|
||||
if(M.health<=-100)
|
||||
for(var/obj/rune/R in world)
|
||||
for(var/mob/living/carbon/human/N in R.loc)
|
||||
if(N.health>-100 && M.client)
|
||||
for(var/mob/dead/observer/O in src.loc)
|
||||
if(M.key)
|
||||
usr << "\red The body still has some earthly ties. It must sever them, if only for them to grow again later."
|
||||
return
|
||||
M.key=O.key
|
||||
del(O)
|
||||
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/A in H.organs)
|
||||
var/datum/organ/external/affecting = null
|
||||
if(!H.organs[A]) continue
|
||||
affecting = H.organs[A]
|
||||
if(!istype(affecting, /datum/organ/external)) continue
|
||||
affecting.heal_damage(1000, 1000) //fixes getting hit after ingestion, killing you when game updates organ health
|
||||
H.UpdateDamageIcon()
|
||||
M.fireloss = 0
|
||||
M.toxloss = 0
|
||||
M.bruteloss = 0
|
||||
M.oxyloss = 0
|
||||
M.paralysis = 0
|
||||
M.stunned = 0
|
||||
M.weakened = 0
|
||||
M.radiation = 0
|
||||
M.health = 100
|
||||
M.updatehealth()
|
||||
M.buckled = initial(M.buckled)
|
||||
M.handcuffed = initial(M.handcuffed)
|
||||
if (M.stat > 1)
|
||||
M.stat=0
|
||||
..() //shamelessly stolen from rejuvenate code - Urist
|
||||
|
||||
for (var/mob/V in viewers(M))
|
||||
V.show_message("\red [M]'s eyes glow with a faint red as \he stands up, slowly starting to breathe again.", 3, "\red You hear a faint, slightly familiar whisper.", 2)
|
||||
N.gib(1)
|
||||
for (var/mob/V in viewers(N))
|
||||
V.show_message("\red [N] is torn apart, a black smoke swiftly dissipating from \his remains!", 3, "\red You hear a thousand voices, all crying in pain.", 2)
|
||||
return
|
||||
return fizzle()
|
||||
@@ -1603,6 +1603,7 @@ Code:
|
||||
src.menu_message += "<A href='byond://?src=\ref[src];buy_item=bomb'>Low-Yield Bomb</A> (4)<BR>"
|
||||
src.menu_message += "<A href='byond://?src=\ref[src];buy_item=powersink'>Power Sink</A> (5)<BR>"
|
||||
src.menu_message += "<A href='byond://?src=\ref[src];buy_item=detomatix'>Detomatix Cartridge</A> (3)<BR>"
|
||||
src.menu_message += "<A href='byond://?src=\ref[src];buy_item=space'>Syndicate-made Space Suit (inludes a helmet)</A> (3)<BR>"
|
||||
src.menu_message += "<HR>"
|
||||
return
|
||||
|
||||
@@ -1693,6 +1694,11 @@ Code:
|
||||
if (src.uses >= 3)
|
||||
src.uses -= 3
|
||||
new /obj/item/weapon/cartridge/syndicate(get_turf(src.hostpda))
|
||||
if("space")
|
||||
if (src.uses >= 3)
|
||||
src.uses -= 3
|
||||
new /obj/item/clothing/suit/space/syndicate(get_turf(src.hostpda))
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(get_turf(src.hostpda))
|
||||
src.generate_menu()
|
||||
src.print_to_host(src.menu_message)
|
||||
return
|
||||
|
||||
@@ -704,7 +704,12 @@
|
||||
//see_invisible regulated by drugs themselves.
|
||||
else
|
||||
src.see_in_dark = 2
|
||||
src.see_invisible = 0
|
||||
var/seer = 0
|
||||
for(var/obj/rune/R in world)
|
||||
if(src.loc==R.loc && R.word1=="nahlizet" && R.word2=="certum" && R.word3=="jatkaa")
|
||||
seer = 1
|
||||
if(!seer)
|
||||
src.see_invisible = 0
|
||||
|
||||
if (src.sleep) src.sleep.icon_state = text("sleep[]", src.sleeping)
|
||||
if (src.rest) src.rest.icon_state = text("rest[]", src.resting)
|
||||
|
||||
Reference in New Issue
Block a user