modules
This commit is contained in:
@@ -104,7 +104,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
pass_flags = PASSTABLE
|
||||
density = FALSE
|
||||
opacity = 0
|
||||
base_action = /datum/action/spell_action/spell
|
||||
|
||||
var/school = "evocation" //not relevant at now, but may be important later if there are changes to how spells work. the ones I used for now will probably be changed... maybe spell presets? lacking flexibility but with some other benefit?
|
||||
|
||||
@@ -151,6 +150,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
|
||||
action_icon = 'icons/mob/actions/actions_spells.dmi'
|
||||
action_icon_state = "spell_default"
|
||||
action_background_icon_state = "bg_spell"
|
||||
base_action = /datum/action/spell_action/spell
|
||||
|
||||
/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
desc = "This spell reaches into Nar-Sie's realm, summoning one of the legendary fragments across time and space."
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 3000
|
||||
charge_max = 2400
|
||||
clothes_req = 0
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
@@ -95,30 +95,26 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult
|
||||
cult_req = 1
|
||||
charge_max = 4000
|
||||
charge_max = 3600
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult
|
||||
summon_type = list(/obj/item/device/soulstone/anybody)
|
||||
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall
|
||||
/obj/effect/proc_holder/spell/targeted/forcewall/cult
|
||||
name = "Shield"
|
||||
desc = "This spell creates a temporary forcefield to shield yourself and allies from incoming fire."
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
charge_max = 400
|
||||
clothes_req = FALSE
|
||||
invocation = "none"
|
||||
invocation_type = "none"
|
||||
range = 0
|
||||
summon_type = list(/obj/effect/forcefield/cult)
|
||||
summon_lifespan = 200
|
||||
wall_type = /obj/effect/forcefield/cult
|
||||
action_icon = 'icons/mob/actions/actions_cult.dmi'
|
||||
action_icon_state = "cultforcewall"
|
||||
action_background_icon_state = "bg_demon"
|
||||
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift
|
||||
name = "Phase Shift"
|
||||
desc = "This spell allows you to pass through walls."
|
||||
@@ -279,4 +275,38 @@
|
||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem
|
||||
charge_max = 800
|
||||
jaunt_in_type = /obj/effect/temp_visual/dir_setting/cult/phase
|
||||
jaunt_out_type = /obj/effect/temp_visual/dir_setting/cult/phase/out
|
||||
jaunt_out_type = /obj/effect/temp_visual/dir_setting/cult/phase/out
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/dumbfire/juggernaut
|
||||
name = "Gauntlet Echo"
|
||||
desc = "Channels energy into your gauntlet - firing its essence forward in a slow-moving but devastating blow."
|
||||
proj_icon_state = "cursehand0"
|
||||
proj_name = "Shadowfist"
|
||||
proj_type = "/obj/effect/proc_holder/spell/targeted/inflict_handler/juggernaut" //IMPORTANT use only subtypes of this
|
||||
proj_lifespan = 15
|
||||
proj_step_delay = 7
|
||||
charge_max = 350
|
||||
clothes_req = FALSE
|
||||
action_icon = 'icons/mob/actions/actions_cult.dmi'
|
||||
action_icon_state = "cultfist"
|
||||
action_background_icon_state = "bg_demon"
|
||||
sound = 'sound/weapons/resonator_blast.ogg'
|
||||
proj_trigger_range = 0
|
||||
ignore_factions = list("cult")
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/inflict_handler/juggernaut
|
||||
name = "Gauntlet Echo"
|
||||
amt_dam_brute = 30
|
||||
amt_knockdown = 50
|
||||
sound = 'sound/weapons/punch3.ogg'
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/inflict_handler/juggernaut/cast(list/targets,mob/user = usr)
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T, 'sound/weapons/resonator_blast.ogg', 100, FALSE)
|
||||
new /obj/effect/temp_visual/cult/sac(T)
|
||||
for(var/obj/O in range(src,1))
|
||||
if(O.density && !istype(O, /obj/structure/destructible/cult))
|
||||
O.take_damage(90, BRUTE, "gauntlet echo", 0)
|
||||
new /obj/effect/temp_visual/cult/turf/floor
|
||||
..()
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
var/proj_lifespan = 100 //in deciseconds * proj_step_delay
|
||||
var/proj_step_delay = 1 //lower = faster
|
||||
var/list/ignore_factions = list() //Faction types that will be ignored
|
||||
|
||||
/obj/effect/proc_holder/spell/dumbfire/choose_targets(mob/user = usr)
|
||||
|
||||
@@ -74,8 +75,18 @@
|
||||
|
||||
var/mob/living/L = locate(/mob/living) in range(projectile, proj_trigger_range) - user
|
||||
if(L && L.stat != DEAD)
|
||||
projectile.cast(L.loc,user=user)
|
||||
break
|
||||
if(!ignore_factions.len)
|
||||
projectile.cast(L.loc,user=user)
|
||||
break
|
||||
else
|
||||
var/faction_check = FALSE
|
||||
for(var/faction in L.faction)
|
||||
if(ignore_factions.Find(faction))
|
||||
faction_check = TRUE
|
||||
break
|
||||
if(!faction_check)
|
||||
projectile.cast(L.loc,user=user)
|
||||
break
|
||||
|
||||
if(proj_trail && projectile)
|
||||
proj_trail(projectile)
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner)
|
||||
. = ..()
|
||||
wizard = summoner
|
||||
QDEL_IN(src, 300)
|
||||
|
||||
/obj/effect/forcefield/wizard/CanPass(atom/movable/mover, turf/target)
|
||||
if(mover == wizard)
|
||||
|
||||
Reference in New Issue
Block a user