BallEffectBase.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using UnityEngine;
  2. public abstract class BallEffectBase : MonoBehaviour
  3. {
  4. [SerializeField] protected BallEffectDefinition definition;
  5. public BallEffectDefinition Definition => definition;
  6. public virtual void SetDefinition(BallEffectDefinition newDefinition)
  7. {
  8. definition = newDefinition;
  9. }
  10. // Called after the ball is launched from the paddle.
  11. public virtual void OnBallLaunched(BallScript ball) { }
  12. // Called when a ball is reset by the DeathZone.
  13. public virtual void OnBallReset(BallScript ball) { }
  14. // Movement hook called every FixedUpdate while the ball is launched.
  15. public virtual void ModifyVelocity(BallScript ball, ref Vector2 velocity, float deltaTime) { }
  16. // Damage hook: receives current damage, returns modified damage.
  17. public virtual float ModifyBlockDamage(BallScript ball, blockScript block, Collision2D collision, float currentDamage)
  18. {
  19. return currentDamage;
  20. }
  21. // Called after a block hit has been processed.
  22. public virtual void OnHitBlock(BallScript ball, blockScript block, Collision2D collision) { }
  23. }