void Affect(IExplosionReceiver receiver) { var receiverPosition = receiver.AffectedObjectPosition(); Vector2 direction = receiverPosition - (Vector2)transform.position; float distance = direction.magnitude; float distanceMultiplier = DistanceMultiplier(distance); Vector2 force = direction.normalized * distanceMultiplier * _force; float damage = distanceMultiplier * _damage; ExplosionEffectInfo info = new ExplosionEffectInfo(force, damage, _tag); receiver.TakeExplosionEffect(info); }
public void TakeExplosionEffect(ExplosionEffectInfo info) { _controller.ExternalVelocityAddedSignal(info.Force); }