Exemplo n.º 1
0
    public void EnablePlayerPick(TradingViewController.OnPlayerSelect callback)
    {
        var gameController = GetComponent <GameController>();
        var localplayer    = gameController.GetPlayers(out var otherPlayers);

        tradingViewController.EnableClosability(false);
        tradingViewController.EnablePlayerSelect(otherPlayers, callback);
    }
Exemplo n.º 2
0
    public void OnSelected(GameController controller)
    {
        int newTileId = tileController.tile.id;

        controller.GetLocalPlayer().MoveThief(newTileId);

        foreach (var tile in controller.mapController.GetAllTileControllers())
        {
            tile.SetSelectable(false);
        }

        TradingViewController.OnPlayerSelect onPlayerSelect = (State.Player player) => {
            var from = player.resources;
            if (from.IsEmpty())
            {
                // Stealing from player with no resources...
                controller.GetLocalPlayer().CannotStealResources(player.name);
                return;
            }
            controller.GetLocalPlayer().StealResourceFromPlayer(player);
            controller.GetLocalPlayer().SetState(PlayerController.State.None);
        };

        var locationsToStealFrom = tileController.tile.locations.Where(location => location.type != State.LocationType.Available && !PhotonNetwork.LocalPlayer.UserId.Equals(location.occupiedBy));

        if (locationsToStealFrom.Count() != 0)
        {
            if (locationsToStealFrom.Count() == 1)
            {
                // Only one player to steal from
                // Init card choosing ui? or just select a random card
                // eks. 'The thief stole 1 *insert resource* from *player name*'
                // #1 Find player with id
                // #2 call OnPlayerSelect callback with player
                var playerId = locationsToStealFrom.First().occupiedBy;
                var onlyPlayerToStealFrom = controller.GetPlayerById(playerId);
                if (onlyPlayerToStealFrom != null)
                {
                    onPlayerSelect(onlyPlayerToStealFrom);
                }
            }
            else
            {
                // More than one player to steal from, must select one
                // open ui to pick player and continue with same ui/resource text from player count 1
                controller.uiController.EnablePlayerPick(onPlayerSelect);
            }
        }
    }