Files
Paradise/code/game/objects/effects/forcefields.dm
Qwertytoforty 7bbebbb23f Ports Anti-magic from TG. (#27560)
* the rest of the fucking owl

* OK hands need work but otherwise good

* fuck time out fix vampire after

* temporary codersprite do not merge this lmao

* codersprite up

* pause, time out

* deploy the antimagic

* Update code/__HELPERS/trait_helpers.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

* Update code/datums/status_effects/buffs.dm

Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/gamemodes/wizard/magic_tarot.dm

Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com>

---------

Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
2025-01-02 08:36:07 +00:00

73 lines
1.7 KiB
Plaintext

/obj/effect/forcefield
desc = "A space wizard's magic wall."
name = "FORCEWALL"
icon = 'icons/effects/effects.dmi'
icon_state = "m_shield"
opacity = FALSE
density = TRUE
var/lifetime = 30 SECONDS
/obj/effect/forcefield/New()
..()
if(lifetime)
QDEL_IN(src, lifetime)
/obj/effect/forcefield/CanAtmosPass(direction)
return !density
/obj/effect/forcefield/wizard
var/mob/wizard
/// Flags for what antimagic can just ignore our forcefields
var/antimagic_flags = MAGIC_RESISTANCE
/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner)
. = ..()
wizard = summoner
/obj/effect/forcefield/wizard/CanPass(atom/movable/mover, border_dir)
if(mover == wizard)
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 FALSE
///////////Mimewalls///////////
/obj/structure/forcefield
name = "ain't supposed to see this"
desc = "file a github report if you do!"
icon = 'icons/effects/effects.dmi'
density = TRUE
anchored = TRUE
var/blocks_atmos = TRUE
/obj/structure/forcefield/Initialize(mapload)
. = ..()
if(blocks_atmos)
recalculate_atmos_connectivity()
/obj/structure/forcefield/Destroy()
if(blocks_atmos)
blocks_atmos = FALSE
recalculate_atmos_connectivity()
return ..()
/obj/structure/forcefield/CanAtmosPass(direction)
return !blocks_atmos
/obj/structure/forcefield/mime
icon = 'icons/effects/effects.dmi'
icon_state = "5"
name = "invisible wall"
alpha = 1
desc = "You have a bad feeling about this."
max_integrity = 80
/obj/effect/forcefield/mime
icon_state = null
name = "invisible blockade"
desc = "You might be here a while."
lifetime = 60 SECONDS