Beispiel #1
0
    private void AddWindowDamage(int damage, MetaDataNode data, Vector3Int cellPos, Vector3 bulletHitTarget)
    {
        data.AddDamage(damage);
        if (data.GetDamage >= 20 && data.GetDamage < 50 && data.WindowDmgType != "crack01")
        {
            tileChangeManager.ChangeTile("crack01", cellPos, TileChangeLayer.WindowDamage);
            data.WindowDmgType = "crack01";
        }

        if (data.GetDamage >= 50 && data.GetDamage < 75 && data.WindowDmgType != "crack02")
        {
            tileChangeManager.ChangeTile("crack02", cellPos, TileChangeLayer.WindowDamage);
            data.WindowDmgType = "crack02";
        }

        if (data.GetDamage >= 75 && data.GetDamage < 100 && data.WindowDmgType != "crack03")
        {
            tileChangeManager.ChangeTile("crack03", cellPos, TileChangeLayer.WindowDamage);
            data.WindowDmgType = "crack03";
        }

        if (data.GetDamage >= 100 && data.WindowDmgType != "broken")
        {
            tileChangeManager.RemoveTile(cellPos, TileChangeLayer.Window);

            //Spawn 3 glass shards with different sprites:
            SpawnGlassShards(bulletHitTarget);

            //Play the breaking window sfx:
            PlaySoundMessage.SendToAll("GlassBreak0" + Random.Range(1, 4).ToString(), bulletHitTarget, 1f);

            data.WindowDmgType = "broken";
            data.ResetDamage();
        }
    }
Beispiel #2
0
    private void AddGrillDamage(int damage, MetaDataNode data, Vector3Int cellPos, Vector3 bulletHitTarget)
    {
        data.AddDamage(damage);

        //Make grills a little bit weaker (set to 60 hp):
        if (data.GetDamage >= 60)
        {
            tileChangeManager.RemoveTile(cellPos, TileChangeLayer.Grill);
            tileChangeManager.ChangeTile("GrillDestroyed", cellPos, TileChangeLayer.BrokenGrill);

            PlaySoundMessage.SendToAll("GrillHit", bulletHitTarget, 1f);

            //Spawn rods:
            SpawnRods(bulletHitTarget);

            data.ResetDamage();
        }
    }