mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 14:39:58 +01:00
Improves wizard spell descs, booleans (#40321)
* Improves wizard spell descs, booleans * rod form desc * thanks helen * spesstime distortion desc * adds missing throw_at arg
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
var/desc = ""
|
||||
var/category = "Offensive"
|
||||
var/cost = 2
|
||||
var/refundable = 1
|
||||
var/refundable = TRUE
|
||||
var/surplus = -1 // -1 for infinite, not used by anything atm
|
||||
var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell
|
||||
var/buy_word = "Learn"
|
||||
@@ -17,17 +17,17 @@
|
||||
no_coexistance_typecache = typecacheof(no_coexistance_typecache)
|
||||
|
||||
/datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) // Specific circumstances
|
||||
if(book.uses<cost || limit == 0)
|
||||
return 0
|
||||
return FALSE
|
||||
for(var/spell in user.mind.spell_list)
|
||||
if(is_type_in_typecache(spell, no_coexistance_typecache))
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/proc/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return 1 on success
|
||||
/datum/spellbook_entry/proc/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return TRUE on success
|
||||
if(!S || QDELETED(S))
|
||||
S = new spell_type()
|
||||
//Check if we got the spell already
|
||||
@@ -35,7 +35,7 @@
|
||||
if(initial(S.name) == initial(aspell.name)) // Not using directly in case it was learned from one spellbook then upgraded in another
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
to_chat(user, "<span class='warning'>This spell cannot be improved further.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
aspell.name = initial(aspell.name)
|
||||
aspell.spell_level++
|
||||
@@ -58,22 +58,22 @@
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
to_chat(user, "<span class='notice'>This spell cannot be strengthened any further.</span>")
|
||||
SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.spell_level]"))
|
||||
return 1
|
||||
return TRUE
|
||||
//No same spell found - just learn it
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
user.mind.AddSpell(S)
|
||||
to_chat(user, "<span class='notice'>You have learned [S.name].</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
if(!refundable)
|
||||
return 0
|
||||
return FALSE
|
||||
if(!S)
|
||||
S = new spell_type()
|
||||
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
|
||||
if(initial(S.name) == initial(aspell.name))
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/spellbook/book) //return point value or -1 for failure
|
||||
var/area/wizard_station/A = GLOB.areas_by_type[/area/wizard_station]
|
||||
@@ -99,7 +99,7 @@
|
||||
dat += " Cooldown:[S.charge_max/10]"
|
||||
dat += " Cost:[cost]<br>"
|
||||
dat += "<i>[S.desc][desc]</i><br>"
|
||||
dat += "[S.clothes_req?"Needs wizard garb":"Can be cast without wizard garb"]<br>"
|
||||
dat += "[S.clothes_req?"Requires wizard garb.":"Can be cast without wizard garb."]<br>"
|
||||
return dat
|
||||
|
||||
/datum/spellbook_entry/fireball
|
||||
@@ -215,7 +215,7 @@
|
||||
spell_type = /obj/effect/proc_holder/spell/aimed/lightningbolt
|
||||
cost = 3
|
||||
|
||||
/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return 1 on success
|
||||
/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return TRUE on success
|
||||
. = ..()
|
||||
user.flags_1 |= TESLA_IGNORE_1
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
|
||||
/datum/spellbook_entry/item
|
||||
name = "Buy Item"
|
||||
refundable = 0
|
||||
refundable = FALSE
|
||||
buy_word = "Summon"
|
||||
var/item_path= null
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
new item_path(get_turf(user))
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/item/GetInfo()
|
||||
var/dat =""
|
||||
@@ -304,7 +304,7 @@
|
||||
|
||||
/datum/spellbook_entry/item/staffdoor
|
||||
name = "Staff of Door Creation"
|
||||
desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass."
|
||||
desc = "A particular staff that can mold solid walls into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass."
|
||||
item_path = /obj/item/gun/magic/staff/door
|
||||
cost = 1
|
||||
category = "Mobility"
|
||||
@@ -324,7 +324,7 @@
|
||||
|
||||
/datum/spellbook_entry/item/scryingorb
|
||||
name = "Scrying Orb"
|
||||
desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you X-ray vision."
|
||||
desc = "An incandescent orb of crackling energy. Using it will allow you to release your ghost while alive, allowing you to spy upon the station and talk to the deceased. In addition, buying it will permanently grant you X-ray vision."
|
||||
item_path = /obj/item/scrying
|
||||
category = "Defensive"
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
|
||||
/datum/spellbook_entry/item/wands
|
||||
name = "Wand Assortment"
|
||||
desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt."
|
||||
desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative with their use. Comes in a handy belt."
|
||||
item_path = /obj/item/storage/belt/wands/full
|
||||
category = "Defensive"
|
||||
|
||||
@@ -437,9 +437,9 @@
|
||||
/datum/spellbook_entry/summon
|
||||
name = "Summon Stuff"
|
||||
category = "Rituals"
|
||||
refundable = 0
|
||||
refundable = FALSE
|
||||
buy_word = "Cast"
|
||||
var/active = 0
|
||||
var/active = FALSE
|
||||
|
||||
/datum/spellbook_entry/summon/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
return ..() && !active
|
||||
@@ -477,20 +477,20 @@
|
||||
|
||||
/datum/spellbook_entry/summon/guns
|
||||
name = "Summon Guns"
|
||||
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!"
|
||||
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. There is a good chance that they will shoot each other first."
|
||||
|
||||
/datum/spellbook_entry/summon/guns/IsAvailible()
|
||||
if(!SSticker.mode) // In case spellbook is placed on map
|
||||
return 0
|
||||
return FALSE
|
||||
return !CONFIG_GET(flag/no_summon_guns)
|
||||
|
||||
/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(SUMMON_GUNS, user, 25)
|
||||
active = 1
|
||||
active = TRUE
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You have cast summon guns!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/magic
|
||||
name = "Summon Magic"
|
||||
@@ -498,16 +498,16 @@
|
||||
|
||||
/datum/spellbook_entry/summon/magic/IsAvailible()
|
||||
if(!SSticker.mode) // In case spellbook is placed on map
|
||||
return 0
|
||||
return FALSE
|
||||
return !CONFIG_GET(flag/no_summon_magic)
|
||||
|
||||
/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(SUMMON_MAGIC, user, 25)
|
||||
active = 1
|
||||
active = TRUE
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You have cast summon magic!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/events
|
||||
name = "Summon Events"
|
||||
@@ -516,7 +516,7 @@
|
||||
|
||||
/datum/spellbook_entry/summon/events/IsAvailible()
|
||||
if(!SSticker.mode) // In case spellbook is placed on map
|
||||
return 0
|
||||
return FALSE
|
||||
return !CONFIG_GET(flag/no_summon_events)
|
||||
|
||||
/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
@@ -525,7 +525,7 @@
|
||||
times++
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You have cast summon events.</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/events/GetInfo()
|
||||
. = ..()
|
||||
@@ -692,7 +692,7 @@
|
||||
if(H.stat || H.restrained())
|
||||
return
|
||||
if(!ishuman(H))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
if(H.mind.special_role == "apprentice")
|
||||
temp = "If you got caught sneaking a peek from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not."
|
||||
|
||||
@@ -109,12 +109,12 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
var/holder_var_type = "bruteloss" //only used if charge_type equals to "holder_var"
|
||||
var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used
|
||||
|
||||
var/clothes_req = 1 //see if it requires clothes
|
||||
var/cult_req = 0 //SPECIAL SNOWFLAKE clothes required for cult only spells
|
||||
var/human_req = 0 //spell can only be cast by humans
|
||||
var/nonabstract_req = 0 //spell can only be cast by mobs that are physical entities
|
||||
var/stat_allowed = 0 //see if it requires being conscious/alive, need to set to 1 for ghostpells
|
||||
var/phase_allowed = 0 // If true, the spell can be cast while phased, eg. blood crawling, ethereal jaunting
|
||||
var/clothes_req = TRUE //see if it requires clothes
|
||||
var/cult_req = FALSE //SPECIAL SNOWFLAKE clothes required for cult only spells
|
||||
var/human_req = FALSE //spell can only be cast by humans
|
||||
var/nonabstract_req = FALSE //spell can only be cast by mobs that are physical entities
|
||||
var/stat_allowed = FALSE //see if it requires being conscious/alive, need to set to 1 for ghostpells
|
||||
var/phase_allowed = FALSE // If true, the spell can be cast while phased, eg. blood crawling, ethereal jaunting
|
||||
var/invocation = "HURP DURP" //what is uttered when the wizard casts the spell
|
||||
var/invocation_emote_self = null
|
||||
var/invocation_type = "none" //can be none, whisper, emote and shout
|
||||
@@ -124,7 +124,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
var/spell_level = 0 //if a spell can be taken multiple times, this raises
|
||||
var/level_max = 4 //The max possible level_max is 4
|
||||
var/cooldown_min = 0 //This defines what spell quickened four times has as a cooldown. Make sure to set this for every spell
|
||||
var/player_lock = 1 //If it can be used by simple mobs
|
||||
var/player_lock = TRUE //If it can be used by simple mobs
|
||||
|
||||
var/overlay = 0
|
||||
var/overlay_icon = 'icons/obj/wizard.dmi'
|
||||
@@ -136,7 +136,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
var/smoke_spread = 0 //1 - harmless, 2 - harmful
|
||||
var/smoke_amt = 0 //cropped at 10
|
||||
|
||||
var/centcom_cancast = 1 //Whether or not the spell should be allowed on z2
|
||||
var/centcom_cancast = TRUE //Whether or not the spell should be allowed on z2
|
||||
|
||||
action_icon = 'icons/mob/actions/actions_spells.dmi'
|
||||
action_icon_state = "spell_default"
|
||||
@@ -518,8 +518,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
/obj/effect/proc_holder/spell/self/basic_heal //This spell exists mainly for debugging purposes, and also to show how casting works
|
||||
name = "Lesser Heal"
|
||||
desc = "Heals a small amount of brute and burn damage."
|
||||
human_req = 1
|
||||
clothes_req = 0
|
||||
human_req = TRUE
|
||||
clothes_req = FALSE
|
||||
charge_max = 100
|
||||
cooldown_min = 50
|
||||
invocation = "Victus sano!"
|
||||
|
||||
@@ -90,10 +90,10 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/lightningbolt
|
||||
name = "Lightning Bolt"
|
||||
desc = "Fire a high powered lightning bolt at your foes!"
|
||||
desc = "Fire a lightning bolt at your foes! It will jump between targets, but can't knock them down."
|
||||
school = "evocation"
|
||||
charge_max = 200
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "UN'LTD P'WAH"
|
||||
invocation_type = "shout"
|
||||
cooldown_min = 30
|
||||
@@ -108,10 +108,10 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/fireball
|
||||
name = "Fireball"
|
||||
desc = "This spell fires a fireball at a target and does not require wizard garb."
|
||||
desc = "This spell fires an explosive fireball at a target."
|
||||
school = "evocation"
|
||||
charge_max = 60
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "ONI SOMA"
|
||||
invocation_type = "shout"
|
||||
range = 20
|
||||
@@ -126,10 +126,10 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/spell_cards
|
||||
name = "Spell Cards"
|
||||
desc = "Blazing hot rapid-fire homing cards. Banish your foes with its mystical power!"
|
||||
desc = "Blazing hot rapid-fire homing cards. Send your foes to the shadow realm with their mystical power!"
|
||||
school = "evocation"
|
||||
charge_max = 50
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "Sigi'lu M'Fan 'Tasia"
|
||||
invocation_type = "shout"
|
||||
range = 40
|
||||
@@ -143,7 +143,7 @@
|
||||
var/projectile_initial_spread_amount = 30
|
||||
var/projectile_location_spread_amount = 12
|
||||
var/datum/component/lockon_aiming/lockon_component
|
||||
ranged_clickcd_override = 1
|
||||
ranged_clickcd_override = TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/spell_cards/on_activation(mob/M)
|
||||
QDEL_NULL(lockon_component)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/effect/proc_holder/spell/targeted/area_teleport
|
||||
name = "Area teleport"
|
||||
desc = "This spell teleports you to a type of area of your selection."
|
||||
nonabstract_req = 1
|
||||
nonabstract_req = TRUE
|
||||
|
||||
var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list
|
||||
var/invocation_area = 1 //if the invocation appends the selected area
|
||||
var/randomise_selection = FALSE //if it lets the usr choose the teleport loc or picks it from the list
|
||||
var/invocation_area = TRUE //if the invocation appends the selected area
|
||||
var/sound1 = 'sound/weapons/zapbang.ogg'
|
||||
var/sound2 = 'sound/weapons/zapbang.ogg'
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
var/list/L = list()
|
||||
for(var/turf/T in get_area_turfs(thearea.type))
|
||||
if(!T.density)
|
||||
var/clear = 1
|
||||
var/clear = TRUE
|
||||
for(var/obj/O in T)
|
||||
if(O.density)
|
||||
clear = 0
|
||||
clear = FALSE
|
||||
break
|
||||
if(clear)
|
||||
L+=T
|
||||
@@ -55,12 +55,12 @@
|
||||
|
||||
var/list/tempL = L
|
||||
var/attempt = null
|
||||
var/success = 0
|
||||
var/success = FALSE
|
||||
while(tempL.len)
|
||||
attempt = pick(tempL)
|
||||
target.Move(attempt)
|
||||
if(get_turf(target) == attempt)
|
||||
success = 1
|
||||
success = TRUE
|
||||
break
|
||||
else
|
||||
tempL.Remove(attempt)
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
charge_type = "recharge"
|
||||
charge_max = 150
|
||||
charge_counter = 0
|
||||
clothes_req = 0
|
||||
stat_allowed = 0
|
||||
clothes_req = FALSE
|
||||
stat_allowed = FALSE
|
||||
invocation = "KN'A FTAGHU, PUCK 'BTHNK!"
|
||||
invocation_type = "shout"
|
||||
range = 7
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
name = "Blood Crawl"
|
||||
desc = "Use pools of blood to phase out of existence."
|
||||
charge_max = 0
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
//If you couldn't cast this while phased, you'd have a problem
|
||||
phase_allowed = 1
|
||||
phase_allowed = TRUE
|
||||
selection_type = "range"
|
||||
range = 1
|
||||
cooldown_min = 0
|
||||
@@ -12,7 +12,7 @@
|
||||
action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
|
||||
action_icon_state = "bloodcrawl"
|
||||
action_background_icon_state = "bg_demon"
|
||||
var/phased = 0
|
||||
var/phased = FALSE
|
||||
|
||||
/obj/effect/proc_holder/spell/bloodcrawl/choose_targets(mob/user = usr)
|
||||
for(var/obj/effect/decal/cleanable/target in range(range, get_turf(user)))
|
||||
@@ -26,10 +26,10 @@
|
||||
if(istype(user))
|
||||
if(phased)
|
||||
if(user.phasein(target))
|
||||
phased = 0
|
||||
phased = FALSE
|
||||
else
|
||||
if(user.phaseout(target))
|
||||
phased = 1
|
||||
phased = TRUE
|
||||
start_recharge()
|
||||
return
|
||||
revert_cast()
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "DIRI CEL"
|
||||
invocation_type = "whisper"
|
||||
range = -1
|
||||
cooldown_min = 400 //50 deciseconds reduction per rank
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/charge/cast(list/targets,mob/user = usr)
|
||||
@@ -29,7 +29,7 @@
|
||||
to_chat(M, "<span class='notice'>You feel raw magic flowing through you. It feels good!</span>")
|
||||
else
|
||||
to_chat(M, "<span class='notice'>You feel very strange for a moment, but then it passes.</span>")
|
||||
burnt_out = 1
|
||||
burnt_out = TRUE
|
||||
charged_item = M
|
||||
break
|
||||
for(var/obj/item in hand_items)
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
var/summon_lifespan = 0 // 0=permanent, any other time in deciseconds
|
||||
var/summon_amt = 1 //amount of objects summoned
|
||||
var/summon_ignore_density = FALSE //if set to 1, adds dense tiles to possible spawn places
|
||||
var/summon_ignore_prev_spawn_points = 0 //if set to 1, each new object is summoned on a new spawn point
|
||||
var/summon_ignore_density = FALSE //if set to TRUE, adds dense tiles to possible spawn places
|
||||
var/summon_ignore_prev_spawn_points = TRUE //if set to TRUE, each new object is summoned on a new spawn point
|
||||
|
||||
var/list/newVars = list() //vars of the summoned objects will be replaced with those where they meet
|
||||
//should have format of list("emagged" = 1,"name" = "Wizard's Justicebot"), for example
|
||||
@@ -72,9 +72,9 @@
|
||||
name = "Summon weapon"
|
||||
desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
var/obj/item/item
|
||||
var/item_type = /obj/item/banhammer
|
||||
school = "conjuration"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
action_background_icon_state = "bg_demon"
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser/cult
|
||||
cult_req = 1
|
||||
clothes_req = TRUE
|
||||
charge_max = 2500
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 50
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 2
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 20
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 2400
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
@@ -94,7 +94,7 @@
|
||||
summon_type = list(/obj/item/soulstone)
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult
|
||||
cult_req = 1
|
||||
clothes_req = TRUE
|
||||
charge_max = 3600
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult
|
||||
@@ -121,11 +121,11 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 250
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
jaunt_duration = 50 //in deciseconds
|
||||
action_icon = 'icons/mob/actions/actions_cult.dmi'
|
||||
action_icon_state = "phaseshift"
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 400
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
proj_lifespan = 10
|
||||
@@ -158,11 +158,11 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 200
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 20 //25 deciseconds reduction per rank
|
||||
|
||||
smoke_spread = 3
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
name = "Summon Pitchfork"
|
||||
desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
item_type = /obj/item/twohanded/pitchfork/demonic
|
||||
|
||||
school = "conjuration"
|
||||
@@ -35,9 +35,9 @@
|
||||
desc = "Skip making a contract by hand, just do it by magic."
|
||||
invocation_type = "whisper"
|
||||
invocation = "Just sign on the dotted line."
|
||||
include_user = 0
|
||||
include_user = FALSE
|
||||
range = 5
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 150
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 80
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "Your very soul will catch fire!"
|
||||
invocation_type = "shout"
|
||||
range = 2
|
||||
@@ -92,15 +92,15 @@
|
||||
name = "Infernal Jaunt"
|
||||
desc = "Use hellfire to phase out of existence."
|
||||
charge_max = 200
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
selection_type = "range"
|
||||
range = -1
|
||||
cooldown_min = 0
|
||||
overlay = null
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
action_icon_state = "jaunt"
|
||||
action_background_icon_state = "bg_demon"
|
||||
phase_allowed = 1
|
||||
phase_allowed = TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr)
|
||||
if(istype(user))
|
||||
@@ -149,7 +149,7 @@
|
||||
ExtinguishMob()
|
||||
forceMove(holder)
|
||||
holder = holder
|
||||
notransform = 0
|
||||
notransform = FALSE
|
||||
fakefireextinguish()
|
||||
|
||||
/mob/living/proc/infernalphasein()
|
||||
@@ -167,17 +167,17 @@
|
||||
name = "Sin Touch"
|
||||
desc = "Subtly encourage someone to sin."
|
||||
charge_max = 1800
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
selection_type = "range"
|
||||
range = 2
|
||||
cooldown_min = 0
|
||||
overlay = null
|
||||
include_user = 0
|
||||
include_user = FALSE
|
||||
action_icon = 'icons/mob/actions/actions_cult.dmi'
|
||||
action_icon_state = "sintouch"
|
||||
action_background_icon_state = "bg_demon"
|
||||
phase_allowed = 0
|
||||
random_target = 1
|
||||
phase_allowed = FALSE
|
||||
random_target = TRUE
|
||||
random_target_priority = TARGET_RANDOM
|
||||
max_targets = 3
|
||||
invocation = "TASTE SIN AND INDULGE!!"
|
||||
@@ -204,9 +204,9 @@
|
||||
/obj/effect/proc_holder/spell/targeted/summon_dancefloor
|
||||
name = "Summon Dancefloor"
|
||||
desc = "When what a Devil really needs is funk."
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 10
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
name = "Summon wealth"
|
||||
desc = "The reward for selling your soul."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
school = "conjuration"
|
||||
charge_max = 100
|
||||
cooldown_min = 10
|
||||
@@ -30,9 +30,9 @@
|
||||
name = "Distant vision"
|
||||
desc = "The reward for selling your soul."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
charge_max = 50
|
||||
cooldown_min = 10
|
||||
action_icon = 'icons/mob/actions/actions_silicon.dmi'
|
||||
@@ -49,9 +49,9 @@
|
||||
name = "Summon Friend"
|
||||
desc = "The reward for selling your soul."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
charge_max = 50
|
||||
cooldown_min = 10
|
||||
action_icon = 'icons/mob/actions/actions_spells.dmi'
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt
|
||||
name = "Ethereal Jaunt"
|
||||
desc = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
|
||||
desc = "This spell turns your form ethereal, temporarily making you invisible and able to pass through walls."
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 300
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
cooldown_min = 100 //50 deciseconds reduction per rank
|
||||
include_user = 1
|
||||
nonabstract_req = 1
|
||||
include_user = TRUE
|
||||
nonabstract_req = TRUE
|
||||
var/jaunt_duration = 50 //in deciseconds
|
||||
var/jaunt_in_time = 5
|
||||
var/jaunt_in_type = /obj/effect/temp_visual/wizard
|
||||
@@ -66,7 +66,7 @@
|
||||
name = "water"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "nothing"
|
||||
var/reappearing = 0
|
||||
var/reappearing = FALSE
|
||||
var/movedelay = 0
|
||||
var/movespeed = 2
|
||||
density = FALSE
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
/obj/effect/proc_holder/spell/targeted/forcewall
|
||||
name = "Forcewall"
|
||||
desc = "Create a magical barrier that only you can pass through. Does not require wizard garb."
|
||||
desc = "Create a magical barrier that only you can pass through."
|
||||
school = "transmutation"
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "TARCOL MINTI ZHERI"
|
||||
invocation_type = "shout"
|
||||
sound = 'sound/magic/forcewall.ogg'
|
||||
action_icon_state = "shield"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 50 //12 deciseconds reduction per rank
|
||||
var/wall_type = /obj/effect/forcefield/wizard
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/obj/effect/proc_holder/spell/targeted/infinite_guns
|
||||
name = "Lesser Summon Guns"
|
||||
desc = "Why reload when you have infinite guns? Summons an unending stream of bolt action rifles. Requires both hands free to use. Learning this spell makes you unable to learn Arcane Barrage."
|
||||
desc = "Why reload when you have infinite guns? Summons an unending stream of bolt action rifles that deal little damage, but will knock targets down. Requires both hands free to use. Learning this spell makes you unable to learn Arcane Barrage."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 750
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
cooldown_min = 10 //Gun wizard
|
||||
action_icon_state = "bolt_action"
|
||||
var/summon_path = /obj/item/gun/ballistic/shotgun/boltaction/enchanted
|
||||
@@ -22,6 +22,6 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage
|
||||
name = "Arcane Barrage"
|
||||
desc = "Fire a torrent of arcane energy at your foes with this (powerful) spell. Requires both hands free to use. Learning this spell makes you unable to learn Lesser Summon Gun."
|
||||
desc = "Fire a torrent of arcane energy at your foes with this (powerful) spell. Deals much more damage than Lesser Summon Guns, but won't knock targets down. Requires both hands free to use. Learning this spell makes you unable to learn Lesser Summon Gun."
|
||||
action_icon_state = "arcane_barrage"
|
||||
summon_path = /obj/item/gun/ballistic/shotgun/boltaction/enchanted/arcane_barrage
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/effect/proc_holder/spell/aoe_turf/knock
|
||||
name = "Knock"
|
||||
desc = "This spell opens nearby doors and does not require wizard garb."
|
||||
desc = "This spell opens nearby doors and closets."
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "AULIE OXIN FIERA"
|
||||
invocation_type = "whisper"
|
||||
range = 3
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
becoming a lich destroys all internal organs except the brain."
|
||||
school = "necromancy"
|
||||
charge_max = 10
|
||||
clothes_req = 0
|
||||
centcom_cancast = 0
|
||||
clothes_req = FALSE
|
||||
centcom_cancast = FALSE
|
||||
invocation = "NECREM IMORTIUM!"
|
||||
invocation_type = "shout"
|
||||
range = -1
|
||||
level_max = 0 //cannot be improved
|
||||
cooldown_min = 10
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
action_icon = 'icons/mob/actions/actions_spells.dmi'
|
||||
action_icon_state = "skeleton"
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/obj/effect/proc_holder/spell/targeted/tesla
|
||||
name = "Tesla Blast"
|
||||
desc = "Blast lightning at your foes!"
|
||||
desc = "Charge up a tesla arc and release it at a random nearby target! You can move freely while it charges. The arc jumps between targets and can knock them down."
|
||||
charge_type = "recharge"
|
||||
charge_max = 300
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "UN'LTD P'WAH!"
|
||||
invocation_type = "shout"
|
||||
range = 7
|
||||
cooldown_min = 30
|
||||
selection_type = "view"
|
||||
random_target = 1
|
||||
var/ready = 0
|
||||
random_target = TRUE
|
||||
var/ready = FALSE
|
||||
var/static/mutable_appearance/halo
|
||||
var/sound/Snd // so far only way i can think of to stop a sound, thank MSO for the idea.
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/Click()
|
||||
if(!ready && cast_check())
|
||||
StartChargeup()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/proc/StartChargeup(mob/user = usr)
|
||||
ready = 1
|
||||
ready = TRUE
|
||||
to_chat(user, "<span class='notice'>You start gathering the power.</span>")
|
||||
Snd = new/sound('sound/magic/lightning_chargeup.ogg',channel = 7)
|
||||
halo = halo || mutable_appearance('icons/effects/effects.dmi', "electricity", EFFECTS_LAYER)
|
||||
@@ -37,7 +37,7 @@
|
||||
revert_cast(user, 0)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/proc/Reset(mob/user = usr)
|
||||
ready = 0
|
||||
ready = FALSE
|
||||
user.cut_overlay(halo)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/revert_cast(mob/user = usr, message = 1)
|
||||
@@ -47,7 +47,7 @@
|
||||
..()
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/cast(list/targets, mob/user = usr)
|
||||
ready = 0
|
||||
ready = FALSE
|
||||
var/mob/living/carbon/target = targets[1]
|
||||
Snd=sound(null, repeat = 0, wait = 1, channel = Snd.channel) //byond, why you suck?
|
||||
playsound(get_turf(user),Snd,50,0)// Sorry MrPerson, but the other ways just didn't do it the way i needed to work, this is the only way.
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
invocation_emote_self = "<span class='notice'>You form a wall in front of yourself.</span>"
|
||||
summon_lifespan = 300
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
range = 0
|
||||
cast_sound = null
|
||||
human_req = 1
|
||||
human_req = TRUE
|
||||
|
||||
action_icon_state = "mime"
|
||||
action_background_icon_state = "bg_mime"
|
||||
@@ -32,11 +32,11 @@
|
||||
desc = "Make or break a vow of silence."
|
||||
school = "mime"
|
||||
panel = "Mime"
|
||||
clothes_req = 0
|
||||
human_req = 1
|
||||
clothes_req = FALSE
|
||||
human_req = TRUE
|
||||
charge_max = 3000
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
action_icon_state = "mime"
|
||||
action_background_icon_state = "bg_mime"
|
||||
@@ -75,9 +75,9 @@
|
||||
invocation_emote_self = "<span class='notice'>You form a blockade in front of yourself.</span>"
|
||||
charge_max = 600
|
||||
sound = null
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
action_icon_state = "mime"
|
||||
action_background_icon_state = "bg_mime"
|
||||
@@ -98,7 +98,7 @@
|
||||
school = "mime"
|
||||
panel = "Mime"
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation_type = "emote"
|
||||
invocation_emote_self = "<span class='dangers'>You fire your finger gun!</span>"
|
||||
range = 20
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "GIN'YU CAPAN"
|
||||
invocation_type = "whisper"
|
||||
range = 1
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/proj_icon_state = "spell"
|
||||
var/proj_name = "a spell projectile"
|
||||
|
||||
var/proj_trail = 0 //if it leaves a trail
|
||||
var/proj_trail = FALSE //if it leaves a trail
|
||||
var/proj_trail_lifespan = 0 //deciseconds
|
||||
var/proj_trail_icon = 'icons/obj/wizard.dmi'
|
||||
var/proj_trail_icon_state = "trail"
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
var/proj_type = "/obj/effect/proc_holder/spell/targeted" //IMPORTANT use only subtypes of this
|
||||
|
||||
var/proj_lingering = 0 //if it lingers or disappears upon hitting an obstacle
|
||||
var/proj_homing = 1 //if it follows the target
|
||||
var/proj_insubstantial = 0 //if it can pass through dense objects or not
|
||||
var/proj_trigger_range = 0 //the range from target at which the projectile triggers cast(target)
|
||||
var/proj_lingering = FALSE //if it lingers or disappears upon hitting an obstacle
|
||||
var/proj_homing = TRUE //if it follows the target
|
||||
var/proj_insubstantial = FALSE //if it can pass through dense objects or not
|
||||
var/proj_trigger_range = FALSE //the range from target at which the projectile triggers cast(target)
|
||||
|
||||
var/proj_lifespan = 15 //in deciseconds * proj_step_delay
|
||||
var/proj_step_delay = 1 //lower = faster
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/obj/effect/proc_holder/spell/targeted/rod_form
|
||||
name = "Rod Form"
|
||||
desc = "Take on the form of an immovable rod, destroying all in your path."
|
||||
clothes_req = 1
|
||||
human_req = 0
|
||||
desc = "Take on the form of an immovable rod, destroying all in your path. Purchasing this spell multiple times will also increase the rod's damage and travel range."
|
||||
clothes_req = TRUE
|
||||
human_req = FALSE
|
||||
charge_max = 250
|
||||
cooldown_min = 100
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
invocation = "CLANG!"
|
||||
invocation_type = "shout"
|
||||
action_icon_state = "immrod"
|
||||
@@ -20,7 +20,7 @@
|
||||
W.damage_bonus += spell_level * 20 //You do more damage when you upgrade the spell
|
||||
W.start_turf = start
|
||||
M.forceMove(W)
|
||||
M.notransform = 1
|
||||
M.notransform = TRUE
|
||||
M.status_flags |= GODMODE
|
||||
|
||||
//Wizard Version of the Immovable Rod
|
||||
@@ -40,7 +40,7 @@
|
||||
/obj/effect/immovablerod/wizard/Destroy()
|
||||
if(wizard)
|
||||
wizard.status_flags &= ~GODMODE
|
||||
wizard.notransform = 0
|
||||
wizard.notransform = FALSE
|
||||
wizard.forceMove(get_turf(src))
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
desc = "This spell lets you reach into S-space and retrieve presents! Yay!"
|
||||
school = "santa"
|
||||
charge_max = 600
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "HO HO HO"
|
||||
invocation_type = "shout"
|
||||
range = 3
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
name = "Shadow Walk"
|
||||
desc = "Grants unlimited movement in darkness."
|
||||
charge_max = 0
|
||||
clothes_req = 0
|
||||
phase_allowed = 1
|
||||
clothes_req = FALSE
|
||||
phase_allowed = TRUE
|
||||
selection_type = "range"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 0
|
||||
overlay = null
|
||||
action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
|
||||
@@ -38,7 +38,7 @@
|
||||
name = "darkness"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "nothing"
|
||||
var/canmove = 1
|
||||
var/canmove = TRUE
|
||||
var/mob/living/jaunter
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/obj/effect/proc_holder/spell/targeted/shapeshift
|
||||
name = "Shapechange"
|
||||
desc = "Take on the shape of another for a time to use their natural abilities. Once you've made your choice it cannot be changed."
|
||||
clothes_req = 0
|
||||
human_req = 0
|
||||
clothes_req = FALSE
|
||||
human_req = FALSE
|
||||
charge_max = 200
|
||||
cooldown_min = 50
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
invocation = "RAC'WA NO!"
|
||||
invocation_type = "shout"
|
||||
action_icon_state = "shapeshift"
|
||||
@@ -60,8 +60,8 @@
|
||||
var/mob/living/shape = new shapeshift_type(caster.loc)
|
||||
H = new(shape,src,caster)
|
||||
|
||||
clothes_req = 0
|
||||
human_req = 0
|
||||
clothes_req = FALSE
|
||||
human_req = FALSE
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/shapeshift/proc/Restore(mob/living/shape)
|
||||
var/obj/shapeshift_holder/H = locate() in shape
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/effect/proc_holder/spell/spacetime_dist
|
||||
name = "Spacetime Distortion"
|
||||
desc = "Entangle the strings of spacetime to deny easy movement around you. The strings vibrate..."
|
||||
desc = "Entangle the strings of space-time in an area around you, randomizing the layout and making proper movement impossible. The strings vibrate..."
|
||||
charge_max = 300
|
||||
var/duration = 150
|
||||
range = 7
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
desc = "This spell can be used to recall a previously marked item to your hand from anywhere in the universe."
|
||||
school = "transmutation"
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "GAR YOK"
|
||||
invocation_type = "whisper"
|
||||
range = -1
|
||||
level_max = 0 //cannot be improved
|
||||
cooldown_min = 100
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
var/obj/marked_item
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps
|
||||
name = "The Traps!"
|
||||
desc = "Summon a number of traps to confuse and knockdown your enemies, and possibly you."
|
||||
desc = "Summon a number of traps around you. They will damage and enrage any enemies that step on them."
|
||||
|
||||
charge_max = 250
|
||||
cooldown_min = 50
|
||||
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "CAVERE INSIDIAS"
|
||||
invocation_type = "shout"
|
||||
range = 3
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
var/hand_path = /obj/item/melee/touch_attack
|
||||
var/obj/item/melee/touch_attack/attached_hand = null
|
||||
invocation_type = "none" //you scream on connecting, not summoning
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
range = -1
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/touch/proc/remove_hand(recharge = FALSE)
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 600
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
|
||||
action_icon_state = "gib"
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
|
||||
action_icon_state = "statue"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/obj/effect/proc_holder/spell/targeted/turf_teleport
|
||||
name = "Turf Teleport"
|
||||
desc = "This spell teleports the target to the turf in range."
|
||||
nonabstract_req = 1
|
||||
nonabstract_req = TRUE
|
||||
|
||||
var/inner_tele_radius = 1
|
||||
var/outer_tele_radius = 2
|
||||
|
||||
var/include_space = 0 //whether it includes space tiles in possible teleport locations
|
||||
var/include_dense = 0 //whether it includes dense tiles in possible teleport locations
|
||||
var/include_space = FALSE //whether it includes space tiles in possible teleport locations
|
||||
var/include_dense = FALSE //whether it includes dense tiles in possible teleport locations
|
||||
var/sound1 = 'sound/weapons/zapbang.ogg'
|
||||
var/sound2 = 'sound/weapons/zapbang.ogg'
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
charge_max = 1200 //variable
|
||||
cooldown_min = 0
|
||||
level_max = 1
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
action_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
action_icon_state = "voice_of_god"
|
||||
var/command
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 200
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "FORTI GY AMA"
|
||||
invocation_type = "shout"
|
||||
range = 7
|
||||
@@ -20,7 +20,7 @@
|
||||
proj_lifespan = 20
|
||||
proj_step_delay = 5
|
||||
|
||||
proj_trail = 1
|
||||
proj_trail = TRUE
|
||||
proj_trail_lifespan = 5
|
||||
proj_trail_icon_state = "magicmd"
|
||||
|
||||
@@ -37,11 +37,11 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 400
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "BIRUZ BENNAR"
|
||||
invocation_type = "shout"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
mutations = list(LASEREYES, HULK)
|
||||
duration = 300
|
||||
@@ -53,15 +53,15 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/smoke
|
||||
name = "Smoke"
|
||||
desc = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
|
||||
desc = "This spell spawns a cloud of choking smoke at your location."
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 120
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 20 //25 deciseconds reduction per rank
|
||||
|
||||
smoke_spread = 2
|
||||
@@ -76,11 +76,11 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 360
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
|
||||
smoke_spread = 1
|
||||
smoke_amt = 2
|
||||
@@ -91,11 +91,11 @@
|
||||
name = "Disable Tech"
|
||||
desc = "This spell disables all weapons, cameras and most other technology in range."
|
||||
charge_max = 400
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "NEC CANTIO"
|
||||
invocation_type = "shout"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 200 //50 deciseconds reduction per rank
|
||||
|
||||
emp_heavy = 6
|
||||
@@ -108,11 +108,11 @@
|
||||
|
||||
school = "abjuration"
|
||||
charge_max = 20
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 5 //4 deciseconds reduction per rank
|
||||
|
||||
|
||||
@@ -130,20 +130,20 @@
|
||||
name = "quickstep"
|
||||
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
cult_req = 1
|
||||
clothes_req = FALSE
|
||||
clothes_req = TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/area_teleport/teleport
|
||||
name = "Teleport"
|
||||
desc = "This spell teleports you to a type of area of your selection."
|
||||
desc = "This spell teleports you to an area of your selection."
|
||||
|
||||
school = "abjuration"
|
||||
charge_max = 600
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "SCYAR NILA"
|
||||
invocation_type = "shout"
|
||||
range = -1
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
|
||||
smoke_spread = 1
|
||||
@@ -155,7 +155,7 @@
|
||||
name = "Stop Time"
|
||||
desc = "This spell stops time for everyone except for you, allowing you to move freely while your enemies and even projectiles are frozen."
|
||||
charge_max = 500
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "TOKI WO TOMARE"
|
||||
invocation_type = "shout"
|
||||
range = 0
|
||||
@@ -171,7 +171,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 1200
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "NOUK FHUNMM SACP RISSKA"
|
||||
invocation_type = "shout"
|
||||
range = 1
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 600
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
@@ -203,7 +203,7 @@
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 1200
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "IA IA"
|
||||
invocation_type = "shout"
|
||||
summon_amt = 10
|
||||
@@ -214,11 +214,11 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/trigger/blind
|
||||
name = "Blind"
|
||||
desc = "This spell temporarily blinds a single person and does not require wizard garb."
|
||||
desc = "This spell temporarily blinds a single target."
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "STI KALY"
|
||||
invocation_type = "whisper"
|
||||
message = "<span class='notice'>Your eyes cry out in pain!</span>"
|
||||
@@ -230,7 +230,7 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult
|
||||
name = "Summon Creatures (DANGEROUS)"
|
||||
cult_req = 1
|
||||
clothes_req = TRUE
|
||||
charge_max = 5000
|
||||
summon_amt = 2
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
name = "Repulse"
|
||||
desc = "This spell throws everything around the user away."
|
||||
charge_max = 400
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
invocation = "GITTAH WEIGH"
|
||||
invocation_type = "shout"
|
||||
range = 5
|
||||
@@ -302,7 +302,7 @@
|
||||
desc = "Throw back attackers with a sweep of your tail."
|
||||
sound = 'sound/magic/tail_swing.ogg'
|
||||
charge_max = 150
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
range = 2
|
||||
cooldown_min = 150
|
||||
invocation_type = "none"
|
||||
@@ -323,12 +323,12 @@
|
||||
name = "Sacred Flame"
|
||||
desc = "Makes everyone around you more flammable, and lights yourself on fire."
|
||||
charge_max = 60
|
||||
clothes_req = 0
|
||||
clothes_req = FALSE
|
||||
invocation = "FI'RAN DADISKO"
|
||||
invocation_type = "shout"
|
||||
max_targets = 0
|
||||
range = 6
|
||||
include_user = 1
|
||||
include_user = TRUE
|
||||
selection_type = "view"
|
||||
action_icon_state = "sacredflame"
|
||||
sound = 'sound/magic/fireball.ogg'
|
||||
@@ -346,7 +346,7 @@
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket
|
||||
name = "Thrown Lightning"
|
||||
desc = "Forged from eldrich energies, a packet of pure power, known as a spell packet will appear in your hand, that when thrown will stun the target."
|
||||
clothes_req = 1
|
||||
clothes_req = TRUE
|
||||
item_type = /obj/item/spellpacket/lightningbolt
|
||||
charge_max = 10
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
|
||||
/obj/item/spellpacket/lightningbolt
|
||||
name = "\improper Lightning bolt Spell Packet"
|
||||
desc = "Some birdseed wrapped in cloth that somehow crackles with electricity."
|
||||
desc = "Some birdseed wrapped in cloth that crackles with electricity."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "snappop"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
@@ -370,7 +370,7 @@
|
||||
M.electrocute_act(80, src, illusion = 1)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/spellpacket/lightningbolt/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
/obj/item/spellpacket/lightningbolt/throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY)
|
||||
. = ..()
|
||||
if(ishuman(thrower))
|
||||
var/mob/living/carbon/human/H = thrower
|
||||
|
||||
Reference in New Issue
Block a user