🎁 Pickups — Effects¶
Folder: Runtime/Systems/Pickups/Effects
This folder contains the concrete runtime implementations of pickup effects.
Each effect is a ScriptableObject deriving from PickupEffect and defines the behaviour executed when the pipeline reaches OnApply(...).
🎯 Purpose¶
The Effects layer provides the runtime behaviours executed by the pickup system.
It is responsible for:
- implementing concrete
PickupEffecttypes - providing reusable built-in behaviours
- demonstrating standard effect authoring patterns
This folder does not include:
- the effect pipeline
- decorator construction
- definition authoring
- scene interaction logic
- authority resolution
📦 Folder Overview¶
This folder provides:
- concrete effect implementations
- payload logic executed after pipeline validation
- compatibility with decorators and cooldowns
🧩 What Lives Here¶
Built-in effects include:
AnimatorTriggerEffectCompositeEffectShieldEffectTeleportEffectVfxBurstEffect
🧠 Usage Guidance¶
Effect Execution¶
Effects are executed through the pickup pipeline.
Typical flow:
- definition creates a core effect
- decorators wrap the effect
- effect is invoked through the runner or standard path
- base validation and cooldown checks are applied
OnApply(...)executes the effect logic
Null-Damageable Support¶
Effects that operate on the context object may implement:
IEffectAllowsNullDamageable
This allows execution without an IDamageable.
Effects that do not implement this marker require a valid target.
Composite Execution¶
CompositeEffect executes multiple child effects in sequence.
- each child runs independently
- each child enforces its own validation and cooldown rules
🧪 Diagnostics¶
Effect behaviour depends on:
- provided context object
- available components (Animator, Rigidbody, etc.)
- configuration values set on the effect
Effects may perform no action when required data or components are missing.
⚠️ Important Notes¶
- effects define behaviour, not execution policy
- cooldown and validation rules are handled by the base pipeline
- decorator wrapping is applied externally by the factory
- context and targeting are provided by the caller
🚫 Not for Production Use¶
This folder does not provide:
- pipeline control or execution rules
- scene trigger systems
- authority or networking logic
It defines effect payloads only.
🔗 Related Documentation¶
- Core
- Definitions
- Decorators
- Abstractions
- UnityIntegration