Exemplo n.º 1
0
        public void TakeDamage(FlowUnit damagingUnit, float damage)
        {
            lock (damageLock) {
                if (isDead)
                {
                    //return;
                }

                var ev = new UnitDamaged();
                ev.damageTaken  = damage;
                ev.damagingUnit = damagingUnit;
                ev.damagedUnit  = this;

                health -= damage;

                this.Trigger <UnitDamaged>(ev);
                if (health <= 0)
                {
                    isDead = true;
                    var death = new UnitDied();
                    death.damageTaken  = damage;
                    death.damagingUnit = damagingUnit;
                    death.deadUnit     = this;
                    this.Trigger <UnitDied>(death);
                    if (destroyOnDeath)
                    {
                        FlowPool.Recycle(this.gameObject);
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void Kill(FlowUnit damagingUnit)
 {
     TakeDamage(damagingUnit, health);
 }