Files
Aurora.3/code/modules/spells/general/rune_write.dm
LordFowl 692e830c15 Nar-Nar and Blob Fixes (#1569)
Updates Nar'Sie to respect new Baystation flooring mechanics. No longer will ugly floor decals persist even when their base turf has been cultified.
Harvesters, and in fact all constructs, can now use cult runes. Only harvesters can write them.
Updates the "Change Construct Shell" rune available to Harvesters to actually change the construct shell. Technically it's just an armor() rune, so any cultist can change the shell of their construct. Harvester option will replace the artificer options during Hell Rising events, since a harvester is basically just an upgraded artificer.
Harvesters will cultify turf and objects in a 3x3 square whenever they use a spell, just for more A E S T H E T I C
2017-01-15 20:50:01 +02:00

199 lines
5.6 KiB
Plaintext

/spell/rune_write
name = "Scribe a Rune"
desc = "Let's you instantly manifest a working rune."
school = "evocation"
charge_max = 100
charge_type = Sp_RECHARGE
invocation_type = SpI_NONE
spell_flags = CONSTRUCT_CHECK
hud_state = "const_rune"
smoke_amt = 1
/spell/rune_write/choose_targets(mob/user = usr)
return list(user)
/spell/rune_write/cast(null, mob/user = usr)
if(!cultwords["travel"])
runerandom()
var/list/runes = list("Teleport", "Teleport Other", "Spawn a Tome", "Change Construct Type", "Convert", "EMP", "Drain Blood", "See Invisible", "Resurrect", "Hide Runes", "Reveal Runes", "Astral Journey", "Manifest a Ghost", "Imbue Talisman", "Sacrifice", "Wall", "Free Cultist", "Summon Cultist", "Deafen", "Blind", "BloodBoil", "Communicate", "Stun")
var/r = input(user, "Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
if(locate(/obj/effect/rune) in user.loc)
user << "<span class='warning'>There is already a rune in this location.</span>"
return
var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
if(istype(user.loc,/turf))
var/area/A = get_area(user)
log_and_message_admins("created \an [r] rune at \the [A.name] - [user.loc.x]-[user.loc.y]-[user.loc.z].", user)
switch(r)
if("Teleport")
if(cast_check(1))
var/beacon
if(user)
beacon = input(user, "Select the last rune", "Rune Scribing") in rnwords
R.word1=cultwords["travel"]
R.word2=cultwords["self"]
R.word3=beacon
R.check_icon()
if("Teleport Other")
if(cast_check(1))
var/beacon
if(user)
beacon = input(user, "Select the last rune", "Rune Scribing") in rnwords
R.word1=cultwords["travel"]
R.word2=cultwords["other"]
R.word3=beacon
R.check_icon()
if("Spawn a Tome")
if(cast_check(1))
R.word1=cultwords["see"]
R.word2=cultwords["blood"]
R.word3=cultwords["hell"]
R.check_icon()
if("Change Construct Type")
if(cast_check(1))
R.word1=cultwords["hell"]
R.word2=cultwords["destroy"]
R.word3=cultwords["other"]
R.check_icon()
if("Convert")
if(cast_check(1))
R.word1=cultwords["join"]
R.word2=cultwords["blood"]
R.word3=cultwords["self"]
R.check_icon()
if("EMP")
if(cast_check(1))
R.word1=cultwords["destroy"]
R.word2=cultwords["see"]
R.word3=cultwords["technology"]
R.check_icon()
if("Drain Blood")
if(cast_check(1))
R.word1=cultwords["travel"]
R.word2=cultwords["blood"]
R.word3=cultwords["self"]
R.check_icon()
if("See Invisible")
if(cast_check(1))
R.word1=cultwords["see"]
R.word2=cultwords["hell"]
R.word3=cultwords["join"]
R.check_icon()
if("Resurrect")
if(cast_check(1))
R.word1=cultwords["blood"]
R.word2=cultwords["join"]
R.word3=cultwords["hell"]
R.check_icon()
if("Hide Runes")
if(cast_check(1))
R.word1=cultwords["hide"]
R.word2=cultwords["see"]
R.word3=cultwords["blood"]
R.check_icon()
if("Astral Journey")
if(cast_check(1))
R.word1=cultwords["hell"]
R.word2=cultwords["travel"]
R.word3=cultwords["self"]
R.check_icon()
if("Manifest a Ghost")
if(cast_check(1))
R.word1=cultwords["blood"]
R.word2=cultwords["see"]
R.word3=cultwords["travel"]
R.check_icon()
if("Imbue Talisman")
if(cast_check(1))
R.word1=cultwords["hell"]
R.word2=cultwords["technology"]
R.word3=cultwords["join"]
R.check_icon()
if("Sacrifice")
if(cast_check(1))
R.word1=cultwords["hell"]
R.word2=cultwords["blood"]
R.word3=cultwords["join"]
R.check_icon()
if("Reveal Runes")
if(cast_check(1))
R.word1=cultwords["blood"]
R.word2=cultwords["see"]
R.word3=cultwords["hide"]
R.check_icon()
if("Wall")
if(cast_check(1))
R.word1=cultwords["destroy"]
R.word2=cultwords["travel"]
R.word3=cultwords["self"]
R.check_icon()
if("Freedom")
if(cast_check(1))
R.word1=cultwords["travel"]
R.word2=cultwords["technology"]
R.word3=cultwords["other"]
R.check_icon()
if("Cultsummon")
if(cast_check(1))
R.word1=cultwords["join"]
R.word2=cultwords["other"]
R.word3=cultwords["self"]
R.check_icon()
if("Deafen")
if(cast_check(1))
R.word1=cultwords["hide"]
R.word2=cultwords["other"]
R.word3=cultwords["see"]
R.check_icon()
if("Blind")
if(cast_check(1))
R.word1=cultwords["destroy"]
R.word2=cultwords["see"]
R.word3=cultwords["other"]
R.check_icon()
if("BloodBoil")
if(cast_check(1))
R.word1=cultwords["destroy"]
R.word2=cultwords["see"]
R.word3=cultwords["blood"]
R.check_icon()
if("Communicate")
if(cast_check(1))
R.word1=cultwords["self"]
R.word2=cultwords["other"]
R.word3=cultwords["technology"]
R.check_icon()
if("Stun")
if(cast_check(1))
R.word1=cultwords["join"]
R.word2=cultwords["hide"]
R.word3=cultwords["technology"]
R.check_icon()
for(var/obj/O in range(1,user))
O.cultify()
for(var/turf/T in range(1,user))
var/atom/movable/overlay/animation = new /atom/movable/overlay(T)
animation.name = "conjure"
animation.density = 0
animation.anchored = 1
animation.icon = 'icons/effects/effects.dmi'
animation.layer = 3
animation.master = T
if(istype(T,/turf/simulated/wall))
animation.icon_state = "cultwall"
flick("cultwall",animation)
else
animation.icon_state = "cultfloor"
flick("cultfloor",animation)
spawn(10)
qdel(animation)
T.cultify()
else
user << "<span class='warning'> You do not have enough space to write a proper rune.</span>"
return