コード例 #1
0
    public void ProcessInteraction(UnitModel model, Collider2D contact)
    {
        if (contact.gameObject.TryGetComponent <ProjectileView>(out ProjectileView projectileView) == true)
        {
            if (projectileView.Projectile is Bullet bullet)
            {
                model.InvokeAttacked(bullet);
                bullet.IsDead = true;
                return;
            }

            if (projectileView.Projectile is PowerUp powerUp)
            {
                PowerUpModifier.Instance.ApplyPowerUpToModel(model, powerUp);
            }
        }

        var view = contact.gameObject.GetComponentInParent <UnitView>();

        if (view != null)
        {
            // UnitHealthApplicator.ApplyHealthDelta(10);
            model.ApplyDamage(10);
        }
    }
コード例 #2
0
 private void OnAttacked(UnitModel unitModel, IAttacker attacker)
 {
     unitModel.ApplyDamage(attacker.Damage);
 }