mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-12 01:43:40 +00:00
## About The Pull Request In my effort to make the /icons/ folder cleaner and more intuitive instead of having to rely on recalling names of stuff and looking them up in code to find them for poor sods such as myself, plus in spurt of complusion to organize stuff, here goes. I've tracked all changes in commit descriptions. A lot still to be done, but I know these waves go over dozens of files making things slow, so went lighter on it. Destroyed useless impostor files taking up space and cleaned a stray pixel on my way. ## Why It's Good For The Game Cleaner /icons/ file means saner spriters, less time spent. Stray pixels and impostor files (ones which are copies of actually used ones elsewhere) are not good. ## Changelog 🆑 image: Cleaned a single stray pixel in a single frame of a bite telegraphing accidentaly found while re-organizing the files. /🆑
113 lines
3.3 KiB
Plaintext
113 lines
3.3 KiB
Plaintext
/obj/effect/forcefield
|
|
name = "FORCEWALL"
|
|
desc = "A space wizard's magic wall."
|
|
icon_state = "m_shield"
|
|
anchored = TRUE
|
|
opacity = FALSE
|
|
density = TRUE
|
|
can_atmos_pass = ATMOS_PASS_DENSITY
|
|
/// If set, how long the force field lasts after it's created. Set to 0 to have infinite duration forcefields.
|
|
var/initial_duration = 30 SECONDS
|
|
|
|
/obj/effect/forcefield/Initialize(mapload)
|
|
. = ..()
|
|
if(initial_duration > 0 SECONDS)
|
|
QDEL_IN(src, initial_duration)
|
|
|
|
/obj/effect/forcefield/singularity_pull()
|
|
return
|
|
|
|
/// The wizard's forcefield, summoned by forcewall
|
|
/obj/effect/forcefield/wizard
|
|
/// Flags for what antimagic can just ignore our forcefields
|
|
var/antimagic_flags = MAGIC_RESISTANCE
|
|
/// A weakref to whoever casted our forcefield.
|
|
var/datum/weakref/caster_weakref
|
|
|
|
/obj/effect/forcefield/wizard/Initialize(mapload, mob/caster, flags = MAGIC_RESISTANCE)
|
|
. = ..()
|
|
if(caster)
|
|
caster_weakref = WEAKREF(caster)
|
|
antimagic_flags = flags
|
|
|
|
/obj/effect/forcefield/wizard/CanAllowThrough(atom/movable/mover, border_dir)
|
|
if(IS_WEAKREF_OF(mover, caster_weakref))
|
|
return TRUE
|
|
if(isliving(mover))
|
|
var/mob/living/living_mover = mover
|
|
if(living_mover.can_block_magic(antimagic_flags, charge_cost = 0))
|
|
return TRUE
|
|
|
|
return ..()
|
|
|
|
/// Cult forcefields
|
|
/obj/effect/forcefield/cult
|
|
name = "glowing wall"
|
|
desc = "An unholy shield that blocks all attacks."
|
|
icon = 'icons/effects/cult.dmi'
|
|
icon_state = "cultshield"
|
|
can_atmos_pass = ATMOS_PASS_NO
|
|
initial_duration = 20 SECONDS
|
|
|
|
/// A form of the cult forcefield that lasts permanently.
|
|
/// Used on the Shuttle 667.
|
|
/obj/effect/forcefield/cult/permanent
|
|
initial_duration = 0
|
|
|
|
/// Mime forcefields (invisible walls)
|
|
|
|
/obj/effect/forcefield/mime
|
|
icon_state = "nothing"
|
|
name = "invisible wall"
|
|
desc = "You have a bad feeling about this."
|
|
alpha = 0
|
|
|
|
/obj/effect/forcefield/mime/advanced
|
|
name = "invisible blockade"
|
|
desc = "You're gonna be here awhile."
|
|
initial_duration = 1 MINUTES
|
|
|
|
/// Psyker forcefield
|
|
/obj/effect/forcefield/psychic
|
|
name = "psychic forcefield"
|
|
desc = "A wall of psychic energy powerful enough stop the motion of objects. Projectiles ricochet."
|
|
icon_state = "psychic"
|
|
can_atmos_pass = ATMOS_PASS_YES
|
|
flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD
|
|
receive_ricochet_chance_mod = INFINITY //we do ricochet a lot!
|
|
initial_duration = 10 SECONDS
|
|
|
|
/// The cosmic heretics forcefield
|
|
/obj/effect/forcefield/cosmic_field
|
|
name = "Cosmic Field"
|
|
desc = "A field that cannot be passed by people marked with a cosmic star."
|
|
icon = 'icons/effects/eldritch.dmi'
|
|
icon_state = "cosmic_carpet"
|
|
anchored = TRUE
|
|
layer = LOW_SIGIL_LAYER
|
|
density = FALSE
|
|
can_atmos_pass = ATMOS_PASS_NO
|
|
initial_duration = 30 SECONDS
|
|
/// Flags for what antimagic can just ignore our forcefields
|
|
var/antimagic_flags = MAGIC_RESISTANCE
|
|
|
|
/obj/effect/forcefield/cosmic_field/Initialize(mapload, flags = MAGIC_RESISTANCE)
|
|
. = ..()
|
|
antimagic_flags = flags
|
|
|
|
/obj/effect/forcefield/cosmic_field/CanAllowThrough(atom/movable/mover, border_dir)
|
|
if(!isliving(mover))
|
|
return ..()
|
|
var/mob/living/living_mover = mover
|
|
if(living_mover.can_block_magic(antimagic_flags, charge_cost = 0))
|
|
return ..()
|
|
if(living_mover.has_status_effect(/datum/status_effect/star_mark))
|
|
return FALSE
|
|
return ..()
|
|
|
|
/obj/effect/forcefield/cosmic_field/fast
|
|
initial_duration = 5 SECONDS
|
|
|
|
/obj/effect/forcefield/cosmic_field/extrafast
|
|
initial_duration = 2.5 SECONDS
|