コード例 #1
0
    public void TakeDamage(bool powerHit)
    {
        // Takes away hitpoints
        if (powerHit)
        {
            this.hitPoints -= 2;
        }
        else
        {
            this.hitPoints -= 1;
        }

        if (this.hitPoints <= 0 || powerHit)
        {
            this.hit = false;
            // This destroys any given brick.
            BrickManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);

            OnBrickDestroy();
            SpawnDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            // Initialize the tracker and mark the given brick as `hit`
            this.timeTracker = 0.0f;
            this.hit         = true;
        }
    }
コード例 #2
0
ファイル: Brick.cs プロジェクト: Meonaar/Arkanoid
 private void CollisionLogic(Ball ball)
 {
     this.hitPoints--;
     if (this.hitPoints <= 0)
     {
         BrickManager.Instance.RemainingBricks.Remove(this);
         OnBrickDestruction?.Invoke(this);
         SpawnDestroyEffect();
         Destroy(this.gameObject);
     }
     else
     {
         sr.sprite = BrickManager.Instance.Sprites[this.hitPoints - 1];
     }
 }
コード例 #3
0
ファイル: Brick.cs プロジェクト: Carmine12328/Arkanoid
    private void ApplyCollisionLogic(Ball ball)
    {
        this.hitpoint--;

        if (this.hitpoint <= 0)
        {
            OnBrickDestruction?.Invoke(this);
            SpawnDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = BricksManager.Instance.Sprites[this.hitpoint - 1];
        }
    }
コード例 #4
0
    private void ApplyCollisionLogic(BallHandler ball)
    {
        this.Hitpoints--;

        if (this.Hitpoints <= 0)
        {
            BricksManager.Instance.remainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            SpawnDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            this.spriteRenderer.sprite = BricksManager.Instance.sprites[this.Hitpoints - 1];
        }
    }
コード例 #5
0
ファイル: Brick.cs プロジェクト: Reiner6/BrickBreaker
    private void TakeDamage(bool instantKill) // This method name was BallCollisionLogic
    {
        this.HitPoints--;

        if (this.HitPoints <= 0 || instantKill)
        {
            BricksManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            OnBrickDestroy();
            SpawnDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = BricksManager.Instance.Sprites[this.HitPoints - 1];
        }
    }
コード例 #6
0
ファイル: Brick.cs プロジェクト: nevruzoglu/Blaster
    private void TakeDamage(bool instantKill)
    {
        this.Hitpoints--;

        if (this.Hitpoints <= 0 || instantKill)
        {
            BricksManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            OnBrickDestroyBuffSpawn();
            SpawnDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = BricksManager.Instance.Sprites[this.Hitpoints - 1];
        }
    }
コード例 #7
0
    private void ApplyCollisionLogic(Ball ball)
    {
        this.Hitpoints--;

        if (this.Hitpoints <= 0)
        {
            BricksManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            OnBrickDestroy();
            SpawnDestroyEffect(); //particle system trigger
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = BricksManager.Instance.Sprites[this.Hitpoints - 1];//sprite change
        }
    }
コード例 #8
0
ファイル: Brick.cs プロジェクト: chhelsingh/Ball-Breakout
    private void ApplyCollisionLogic(Ball ball)
    {
        this.HitPoints--;

        if (this.HitPoints <= 0 || (ball != null && ball.isLightningBall))
        {
            BrickManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            OnBrickDestroy();
            SpawanDestroyEffect();
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = BrickManager.Instance.Sprites[this.HitPoints - 1];
        }
    }
コード例 #9
0
 private void ApplyCollisionLogic(Ball ball)
 {
     this.HitPoints--;
     if (this.HitPoints <= 0)
     {
         // Removing all the bricks from Remainig bricks collection
         BricksManager.Instance.RemainingBricks.Remove(this);
         OnBrickDestruction?.Invoke(this);
         // playing sound brickhit
         SoundManager.PlaySound("brickhit");
         SpawnDestroyEffect();
         Destroy(this.gameObject);
     }
     else
     {
         // chnage the sprite
         this.sr.sprite = BricksManager.Instance.Sprites[this.HitPoints - 1];
     }
 }
コード例 #10
0
    private void TakeDamage(Ball ball)
    {
        hitPoints--;
        if (hitPoints <= 0)
        {
            //TODO: Destroy Effect

            OnBrickDestruction?.Invoke(this);
            _rayfireRigid.Demolish();
            ball.GetComponent <RayfireBomb>().Explode(0);
            foreach (var rayfireRigid in _rayfireRigid.fragments)
            {
                rayfireRigid.gameObject.GetComponent <MeshCollider>().enabled = false;
            }
        }
        else
        {
            //TODO: Damaged brick effect and graphics
        }
    }
コード例 #11
0
ファイル: Brick.cs プロジェクト: U3DC/BrickBreaker
    private void BallCollisionLogic(Ball theBall)
    {
        this.HitPoints--;

        if (this.HitPoints <= 0 || theBall.isFireball)
        {
            LevelManager.Instance.RemainingBricks.Remove(this);
            OnBrickDestruction?.Invoke(this);
            OnBrickDestroy();

            // Spawn Particle effect and destroy it after 4 seconds
            GameObject newEffect = Instantiate(DestroyEffect.gameObject,
                                               new Vector3(this.gameObject.transform.position.x, this.gameObject.transform.position.y, this.gameObject.transform.position.z - 0.2f), Quaternion.identity) as GameObject;
            ParticleSystem ps = newEffect.GetComponent <ParticleSystem>();
            ps.startColor = this.sr.color;
            Destroy(newEffect, DestroyEffect.startLifetime);
            Destroy(this.gameObject);
        }
        else
        {
            this.sr.sprite = this.levelManager.Sprites[this.HitPoints - 1];
        }
    }