mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-21 15:14:17 +00:00
* Shuttle gibbing code improvements (#81726) ## About The Pull Request Adds a resistance flag, `SHUTTLE_CRUSH_PROOF`, adds it to the existing things that have it, and adds it to the immortality spectres. ## Why It's Good For The Game Gets rid of some hardcoded checks, making it easier for future code (or admins) to make things immune to shuttle crushing. Also makes it so immortality spectres are immune to being shuttle crushed, as that kinda ruins the whole "immortality" thing... ## Changelog 🆑 refactor: Improved shuttle gibbing code, adding a new resistance flag, `SHUTTLE_CRUSH_PROOF`. fix: Immortality revival spectres can no longer be crushed by shuttles. add: The ghost of Poly can no longer be shuttle-crushed, nor can anything incorporeal. /🆑 Co-authored-by: san7890 <the@ san7890.com> * Shuttle gibbing code improvements --------- Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: san7890 <the@ san7890.com>
67 lines
1.8 KiB
Plaintext
67 lines
1.8 KiB
Plaintext
|
|
//objects in /obj/effect should never be things that are attackable, use obj/structure instead.
|
|
//Effects are mostly temporary visual effects like sparks, smoke, as well as decals, etc...
|
|
/obj/effect
|
|
icon = 'icons/effects/effects.dmi'
|
|
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
|
|
move_resist = INFINITY
|
|
obj_flags = NONE
|
|
blocks_emissive = EMISSIVE_BLOCK_GENERIC
|
|
uses_integrity = FALSE
|
|
|
|
/obj/effect/attackby(obj/item/weapon, mob/user, params)
|
|
if(SEND_SIGNAL(weapon, COMSIG_ITEM_ATTACK_EFFECT, src, user, params) & COMPONENT_NO_AFTERATTACK)
|
|
return TRUE
|
|
|
|
// I'm not sure why these are snowflaked to early return but they are
|
|
if(istype(weapon, /obj/item/mop) || istype(weapon, /obj/item/soap))
|
|
return
|
|
|
|
return ..()
|
|
|
|
/obj/effect/attack_generic(mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration)
|
|
return
|
|
|
|
/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
|
return
|
|
|
|
/obj/effect/fire_act(exposed_temperature, exposed_volume)
|
|
return
|
|
|
|
/obj/effect/acid_act()
|
|
return FALSE
|
|
|
|
/obj/effect/blob_act(obj/structure/blob/B)
|
|
return
|
|
|
|
/obj/effect/attack_hulk(mob/living/carbon/human/user)
|
|
return FALSE
|
|
|
|
/obj/effect/experience_pressure_difference()
|
|
return
|
|
|
|
/obj/effect/ex_act(severity, target)
|
|
return FALSE
|
|
|
|
/obj/effect/singularity_act()
|
|
qdel(src)
|
|
|
|
///The abstract effect ignores even more effects and is often typechecked for atoms that should truly not be fucked with.
|
|
/obj/effect/abstract
|
|
resistance_flags = parent_type::resistance_flags | SHUTTLE_CRUSH_PROOF
|
|
|
|
/obj/effect/abstract/singularity_pull()
|
|
return
|
|
|
|
/obj/effect/abstract/singularity_act()
|
|
return
|
|
|
|
/obj/effect/abstract/has_gravity(turf/gravity_turf)
|
|
return FALSE
|
|
|
|
/obj/effect/dummy/singularity_pull()
|
|
return
|
|
|
|
/obj/effect/dummy/singularity_act()
|
|
return
|