Files
Bubberstation/code/modules/awaymissions/mission_code/murderdome.dm
necromanceranne 6fb59f6aa9 [MDB Ignore] Removes the strange 4 second density delay that security barricades have after spawning. Refactors barricade item interaction code. (#91918)
## About The Pull Request

Removes the quite weird 4 second density delay from security barriers.
That's kind of what the grenade timer is for.

Refactors barricade interactions to use tool acts and
item_interaction(), rather than attackby. Also makes it so that wooden
barricades don't....delete themselves and spawn a new one instead when
repaired?

## Why It's Good For The Game

> Security Barrier

I think this was potentially depreciated code that was grandfathered
forward in new forms. Very few places seem to explain WHY it has that
but I think that might have been how barrier grenades used to spawn in
their barrier from the grenade itself. Totally inexplicable really.

> Refactors

This codes old as hell, some of it nearly a decade.

## Changelog
🆑
qol: Security barrier grenades no longer have an arbitrary 4 second
delay on becoming tangible.
refactor: Barricades now use tool act and item interactions, and behave
sanely. Looking at you wooden barricade.
/🆑
2025-07-09 14:20:29 +12:00

46 lines
1.7 KiB
Plaintext

/obj/structure/window/reinforced/fulltile/indestructible
name = "robust window"
move_resist = MOVE_FORCE_OVERPOWERING
flags_1 = PREVENT_CLICK_UNDER_1
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/structure/grille/indestructible
desc = "A STRONG framework of hardened plasteel rods, that you cannot possibly get through. If you were an engineer you would be drooling over its construction right now."
move_resist = MOVE_FORCE_OVERPOWERING
obj_flags = CONDUCTS_ELECTRICITY
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/structure/grille/indestructible/screwdriver_act(mob/living/user, obj/item/tool)
return NONE
/obj/structure/grille/indestructible/wirecutter_act(mob/living/user, obj/item/tool)
return NONE
/obj/effect/spawner/structure/window/reinforced/indestructible
spawn_list = list(/obj/structure/grille/indestructible, /obj/structure/window/reinforced/fulltile/indestructible)
/obj/structure/barricade/security/murderdome
name = "respawnable barrier"
desc = "A barrier. Provides cover in firefights."
/obj/structure/barricade/security/murderdome/make_debris()
new /obj/effect/murderdome/dead_barricade(get_turf(src))
/obj/effect/murderdome/dead_barricade
name = "dead barrier"
desc = "It provided cover in fire fights. And now it's gone."
icon = 'icons/obj/structures.dmi'
icon_state = "barrier0"
alpha = 100
/obj/effect/murderdome/dead_barricade/Initialize(mapload)
. = ..()
addtimer(CALLBACK(src, PROC_REF(respawn)), 3 MINUTES)
/obj/effect/murderdome/dead_barricade/proc/respawn()
if(!QDELETED(src))
new /obj/structure/barricade/security/murderdome(get_turf(src))
qdel(src)