| 12345678910111213141516171819202122232425262728293031 |
- using UnityEngine;
- public abstract class BallEffectBase : MonoBehaviour
- {
- [SerializeField] protected BallEffectDefinition definition;
- public BallEffectDefinition Definition => definition;
- public virtual void SetDefinition(BallEffectDefinition newDefinition)
- {
- definition = newDefinition;
- }
- // Called after the ball is launched from the paddle.
- public virtual void OnBallLaunched(BallScript ball) { }
- // Called when a ball is reset by the DeathZone.
- public virtual void OnBallReset(BallScript ball) { }
- // Movement hook called every FixedUpdate while the ball is launched.
- public virtual void ModifyVelocity(BallScript ball, ref Vector2 velocity, float deltaTime) { }
- // Damage hook: receives current damage, returns modified damage.
- public virtual float ModifyBlockDamage(BallScript ball, blockScript block, Collision2D collision, float currentDamage)
- {
- return currentDamage;
- }
- // Called after a block hit has been processed.
- public virtual void OnHitBlock(BallScript ball, blockScript block, Collision2D collision) { }
- }
|