Пример #1
0
        private void OnItemCollider(int index, VirusBase virus)
        {
            base.OnUnitFire(index);
            units[index].SetReady(false);
            Vector2 cDir = virus.position - units[index].position;
            Vector2 dir  = (cDir + virus.direction).normalized;

            virus.SetDirection(dir);
            Unibus.Dispatch(EventBullet.Get(EventBullet.Action.HIT, virus, damage));
            ExplosionWeaponCoverItem.Create().Reset(units[index].position, table.explosionSound);
        }
Пример #2
0
        protected override void OnHit(VirusBase virus)
        {
            base.OnHit(virus);
            if (virus.isAlive && !virus.isInvincible)
            {
                Vector2 cDir = virus.position - position;
                Vector2 dir  = (cDir + virus.direction).normalized;
                virus.SetDirection(dir);
                Unibus.Dispatch(EventBullet.Get(EventBullet.Action.HIT, virus, damage));
            }

            mHitCount--;
            if (mHitCount <= 0)
            {
                ForceRecycle();
                AudioManager.PlaySound(explosionSound);
            }
        }