mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 02:21:44 +00:00
## About The Pull Request moves all implementations (im aware of) for "Im a parent type dont spawn me please" to the datum layer to standardized behavior adds a standerized proc for filtering out "bad" items that we dont want spawning. applies to it the subtype vendor, gifts, and a new spawner and mystery box for a random gun (neither playerfacing) "port" of https://github.com/shiptest-ss13/Shiptest/pull/4621 https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa small warning: I dont have EVERY abstract type defined right now but, ive done a good enough job for now. Im tired of data entry rn ## Why It's Good For The Game standardizing behavior. Might be a micro hit to performance however having this lets us not rely on icon state to determine whether something is a parent type and makes it much easier to tell something is a parent type (could be applied further to things like admin spawning menus and things like that). need feedback on if this is actually good for the game. ## Changelog 🆑 add: Soda cans show up in the silver slime drink table. add: Examine tag for items that are not mean to show up ingame. refactor: Standardizes how gifts rule out abstract types. fix: gifts no longer check if something has an inhand, massively expanding the list of potential items. /🆑
63 lines
1.8 KiB
Plaintext
63 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'
|
|
abstract_type = /obj/effect
|
|
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, list/modifiers, list/attack_modifiers)
|
|
if(SEND_SIGNAL(weapon, COMSIG_ITEM_ATTACK_EFFECT, src, user, modifiers, attack_modifiers) & COMPONENT_NO_AFTERATTACK)
|
|
return TRUE
|
|
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(atom/singularity, current_size)
|
|
return
|
|
|
|
/obj/effect/abstract/singularity_act()
|
|
return
|
|
|
|
/obj/effect/abstract/has_gravity(turf/gravity_turf)
|
|
return FALSE
|
|
|
|
/obj/effect/dummy/singularity_pull(atom/singularity, current_size)
|
|
return
|
|
|
|
/obj/effect/dummy/singularity_act()
|
|
return
|