コード例 #1
0
    public void Break(bool byPlayer)
    {
        // can't remove border tiles
        if (Border)
        {
            return;
        }

        if (byPlayer)
        {
            switch (Type)
            {
            case TileType.Normal:
                GameController.Inst.AddScore(Tuning.SCORE_BREAK_BLOCK);
                break;

            case TileType.Gem:
                GameController.Inst.AddScore(Tuning.SCORE_BREAK_GEM);
                break;

            case TileType.Gem2:
                GameController.Inst.AddScore(Tuning.SCORE_BREAK_GEM * 10f);
                break;

            case TileType.PowerS:
            case TileType.PowerL:
            case TileType.PowerR:
            case TileType.PowerB:
                //GameController.Inst.AddScore(Tuning.SCORE_BREAK_POWERUP);
                GameController.Inst.GivePowerup((PowerupType)(Type - TileType.PowerS + 1));
                break;
            }

            GameController.Inst.Power += Tuning.POWER_ADD_BLOCK;
        }

        GameController.Inst.PlaySoundAt(BreakSound, m_Transform.position);

        Instantiate(BreakParticles, m_Transform.position, Quaternion.identity);
        ScreenShaker.AddShake(0.12f, 0.22f);

        Destroy(gameObject);
    }
コード例 #2
0
ファイル: MineBeepBoop.cs プロジェクト: iridinite/ld40
    public void Explode(Rigidbody pushAway)
    {
        if (m_Exploded)
        {
            return;
        }
        // don't fire again
        m_Exploded = true;
        Destroy(gameObject, 0.1f);

        // shoot the player away
        if (pushAway != null)
        {
            var dir = (pushAway.transform.position - m_Transform.position).normalized;
            pushAway.AddForce(dir * Tuning.MINE_EXPLODE_FORCE, ForceMode.VelocityChange);
        }
        // pretty effects
        Instantiate(ExplosionParticles, m_Transform.position, Quaternion.identity);
        GameController.Inst.PlaySoundAt(ExplodeSound, m_Transform.position);
        ScreenShaker.AddShake(0.45f, 0.55f);
        // eraser object (removes tiles and chain-reacts mines)
        Instantiate(TileEraserPrefab, m_Transform.position, Quaternion.identity);
    }