Пример #1
0
    private void DigP2(ViewTile tile)
    {
        if (!_world.P2Action.CanUseAction(PlayerActionType.Dig))
        {
            return;
        }

        var tileP1 = _world.P1Plain.Tiles[(int)tile.worldPosition.x, (int)tile.worldPosition.y];
        var tileP2 = _world.P2Plain.Tiles[(int)tile.worldPosition.x, (int)tile.worldPosition.y];

        switch (tileP2.TileType)
        {
        case TileType.Mine:
            break;

        case TileType.Field:
            tileP2.Dig();
            audioSource.PlayOneShot(DigSFX);
            tileP1.Raise();
            _worldCreator.MakeMineP2(tile);
            _worldCreator.MakeMountainP1(tile);
            _world.P2Action.UseAction(PlayerActionType.Dig);
            if (tileP1.TowerActive)
            {
                tileP1.DestoryTower();
                _world.P1Resources.RemoveResource(tileP1.ResourceType);
            }

            break;

        case TileType.Mountain:
            tileP2.Dig();
            audioSource.PlayOneShot(DigSFX);
            _world.P2Action.UseAction(PlayerActionType.Dig);
            if (tileP1.TileType == TileType.Mine)
            {
                tileP1.Raise();
                if (tileP1.TowerActive)
                {
                    _world.P1Resources.RemoveResource(tileP1.ResourceType);
                }
                _worldCreator.MakePlainP1(tile);
                tile.RemoveHoleSprite();
                _worldCreator.ViewTilesMultiArrayPlayerOne[(int)tile.worldPosition.x, (int)tile.worldPosition.y].RemoveHoleSprite();
            }
            _worldCreator.MakePlainP2(tile);
            tile.RemoveMountain();

            break;

        default:
            break;
        }
    }