Exemplo n.º 1
0
    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);
 }