コード例 #1
0
    List <string> CreateInvalidTileList(string startingTileCode = "", ClientController.PlayerState specificRole = ClientController.PlayerState.Unassigned)
    {
        List <string> list = new List <string>();

        if (!string.IsNullOrEmpty(startingTileCode))
        {
            list.Add(startingTileCode);
        }

        foreach (string key in mapTiles.Keys)
        {
            switch (GetTileType(key))
            {
            case PossibleTypes.HumanDorm:
            case PossibleTypes.AlienNest:
                list.Add(key);
                break;

            case PossibleTypes.EscapePod:
                if (specificRole != ClientController.PlayerState.Human)
                {
                    list.Add(key);
                }
                break;
            }
        }

        return(list);
    }
コード例 #2
0
    public void GlowPossibleMovements(string tileCode, int movement, ClientController.PlayerState role)
    {
        List <TileData> movementsList = PossibleMovements(tileCode, movement, role);

        foreach (TileData data in movementsList)
        {
            GlowTile(data.tileCode, glowMovementPrefab, glowMovementTilesAggregator);
        }
    }
コード例 #3
0
    List <TileData> PossibleMovements(string startingTile, int movement, ClientController.PlayerState role)
    {
        List <TileData> movementsList = new List <TileData>();

        List <string> invalidTileList = CreateInvalidTileList(startingTile, role);

        PropagateMovement(movementsList, startingTile, startingTile, movement, invalidTileList);

        return(movementsList);
    }
コード例 #4
0
    public PlayerTurnData(PutPlayRequestData lastPutPlay, ClientController.PlayerState role)
    {
        this.lastPlay       = lastPutPlay;
        this.playedThisTurn = false;
        this.role           = role;
        playingRole         = role;

        int colorToGet = nextUiColor;

        IncrementeNextUIColor();
        _uiColor = (UIColors)colorToGet;
    }
コード例 #5
0
    protected override void GetResultsCommand(UdpNetworkDriver driver, NetworkConnection connection, DataStreamReader strm)
    {
        GetResultsResponseData responseReceived = new GetResultsResponseData(strm);

        ClientController.PlayerState playerState = (ClientController.PlayerState)responseReceived.playerState;
        PlayerTurnData.UIColors      playerColor = (PlayerTurnData.UIColors)responseReceived.playerColor;

        TimeLogger.Log("CLIENT {0} - {3} - response - GetResults ({1} at {2})",
                       ((ClientCommunication)owner).ClientId, playerState, responseReceived.playerPosition, playerColor);

        GetResultsEvent?.Invoke(playerState, responseReceived.playerPosition, playerColor);
    }
コード例 #6
0
    ///////////////////////////////
    /////////////////// Public API
    public void SetRole(ClientController.PlayerState role)
    {
        currentRole = role;

        RoleData data;

        if (!roles.TryGetValue(role, out data))
        {
            throw new System.Exception(string.Format("Role {0} is not a valid player game role", role));
        }

        _UIicon.sprite    = data.icon;
        _UIrole.text      = data.roleText;
        _UIobjective.text = data.objectiveText;
    }
コード例 #7
0
    public TileData GetSpawnPointTileData(ClientController.PlayerState state)
    {
        TileData data;

        switch (state)
        {
        case ClientController.PlayerState.Alien: {}
            mapTiles.TryGetValue(alienNestCode, out data);
            return(data);

        case ClientController.PlayerState.Human:
            mapTiles.TryGetValue(humanDormCode, out data);
            return(data);

        default:
            throw new System.Exception(string.Format("Tile {0} has no spawn point", (ClientController.PlayerState)state));
        }
    }
コード例 #8
0
 public void GlowPossibleMovements(string tileCode, int movement, ClientController.PlayerState role)
 {
     _boardManager.GlowPossibleMovements(tileCode, movement, role);
 }
コード例 #9
0
 void GetResultsEventCallback(ClientController.PlayerState playerState, Vector2Int playerPosition, PlayerTurnData.UIColors playerColor)
 {
     GetResultsEvent?.Invoke(playerState, playerPosition, playerColor);
 }
コード例 #10
0
 /// <summary>
 /// This constructor is for WRAPPING the data to make a request
 /// </summary> 
 public GetResultsResponseData(int playerId, int playerColor, ClientController.PlayerState playerState, Vector2Int playerPosition){
     this.playerId = playerId;
     this.playerColor = playerColor;
     this.playerState = (int) playerState;
     this.playerPosition = playerPosition;
 }
コード例 #11
0
 // CLIENT - Role UI /////////////////////////
 public void SetPlayerRole(ClientController.PlayerState role)
 {
     roleUI.SetRole(role);
 }