Пример #1
0
    /// <summary>
    /// Similar to the previous signup function except for logging in, compared input data to the database data to determine if there is a match
    /// </summary>
    /// <param name="prEmail">email input</param>
    /// <param name="prPassword">password input</param>
    /// <returns>returns true or false dependant on whether the log in was successful</returns>
    public bool Login(string prEmail, string prPassword)
    {
        DataService ds = new DataService("NelsonEscapeDatabasev3.db");

        string lcPasswordHash = sha256(prPassword);

        try
        {
            TablePlayer lcPlayer = ds.Connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

            if (lcPlayer.Email == prEmail && lcPasswordHash == lcPlayer.Password)
            {
                //login succeed
                dataBetweenScenesManager.dataBetweenScenesInstance.Email = prEmail;
                ds = null;
                return(true);
            }
            else
            {
                //login failed
                ds = null;
                return(false);
            }
        }
        catch
        {
            return(false);
        }
    }
Пример #2
0
    /// <summary>
    /// Adds the current area item to the players inventory
    /// </summary>
    /// <param name="prEmail">email used to identify the player</param>
    /// <returns>returns true of false dependant on whether the command was successful or not</returns>
    public bool AddItemToInven(string prEmail)
    {
        try
        {
            //get current area from player table
            TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

            //get item id for current area
            TableAreaItem lcAreaItem = _connection.Table <TableAreaItem>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Email == lcPlayer.Email).FirstOrDefault();

            //add item to inventory
            TableInventory lcInventory = new TableInventory
            {
                ItemID = lcAreaItem.ItemID,
                Email  = prEmail
            };
            _connection.Insert(lcInventory);

            //remove from areaItem
            //moved to its own function due to db file error
            //_connection.Delete(lcAreaItem);

            return(true);
        }
        catch
        {
            return(false);
        }
    }
Пример #3
0
    /// <summary>
    /// Sets players game data to default values
    /// </summary>
    /// <param name="prEmail">email address used to identify the player</param>
    #region New Game
    public void NewGame(string prEmail)
    {
        //remove existing entries for player
        _connection.Query <TableAreaItem>(
            "delete from TableAreaItem"
            + " where TableAreaItem.Email = ?",
            dataBetweenScenesManager.dataBetweenScenesInstance.Email);

        _connection.Query <TableInventory>(
            "delete from TableInventory"
            + " where TableInventory.Email = ?",
            dataBetweenScenesManager.dataBetweenScenesInstance.Email);

        _connection.Query <TableNPC>(
            "delete from TableNPC"
            + " where TableNPC.Email = ?",
            dataBetweenScenesManager.dataBetweenScenesInstance.Email);

        _connection.Query <TableVisited>(
            "delete from TableVisited"
            + " where TableVisited.Email = ?",
            dataBetweenScenesManager.dataBetweenScenesInstance.Email);

        //pull player out
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

        //update to default values
        lcPlayer.CurrentArea = "christChurchSteps";
        lcPlayer.Health      = 10;

        //put back in
        _connection.Update(lcPlayer);

        //insert new entires for area item as default values
        TableAreaItem lcNewAreaItem1 = new TableAreaItem
        {
            ItemID   = 1,
            AreaName = "starbucks",
            Email    = prEmail
        };

        TableAreaItem lcNewAreaItem2 = new TableAreaItem
        {
            ItemID   = 2,
            AreaName = "newWorld",
            Email    = prEmail
        };

        TableNPC lcNPC = new TableNPC
        {
            Name        = "spookyboi",
            Health      = 20,
            Email       = prEmail,
            CurrentArea = "stateCinemas"
        };

        _connection.Insert(lcNewAreaItem1);
        _connection.Insert(lcNewAreaItem2);
        _connection.Insert(lcNPC);
    }
Пример #4
0
    /// <summary>
    /// Proccesses logic that discerns which map nodes are which colour in order to display visited areas & the current area
    /// </summary>
    public void UpdateMap()
    {
        var visitedList = GameManager.GameManagerInstance.GameModelInstance.DataServiceInstance.Connection.Query <TableVisited>(
            "select * from TableVisited"
            + " inner join TablePlayer"
            + " on TableVisited.Email = TablePlayer.Email "
            + " where TableVisited.Email = ?",
            GameManager.GameManagerInstance.GameModelInstance._currentPlayer._email).ToList();

        foreach (TableVisited lcVisited in visitedList)
        {
            if (lcVisited.AreaName == "christChurchSteps")
            {
                mapPanelChristChurchSteps.GetComponent <Image>().color = new Color32(50, 205, 50, 100);
            }
            else if (lcVisited.AreaName == "starbucks")
            {
                mapPanelStarbucks.GetComponent <Image>().color = new Color32(50, 205, 50, 100);
            }
            else if (lcVisited.AreaName == "NMIT")
            {
                mapPanelNMIT.GetComponent <Image>().color = new Color32(50, 205, 50, 100);
            }
            else if (lcVisited.AreaName == "newWorld")
            {
                mapPanelNewWorld.GetComponent <Image>().color = new Color32(50, 205, 50, 100);
            }
            else if (lcVisited.AreaName == "stateCinemas")
            {
                mapPanelStateCinemas.GetComponent <Image>().color = new Color32(50, 205, 50, 100);
            }
        }

        TablePlayer lcPlayer = GameManager.GameManagerInstance.GameModelInstance.DataServiceInstance.Connection.Table <TablePlayer>().
                               Where(x => x.Email == GameManager.GameManagerInstance.GameModelInstance._currentPlayer._email).FirstOrDefault();

        foreach (TableVisited lcVisited in visitedList)
        {
            if (lcPlayer.CurrentArea == "christChurchSteps")
            {
                mapPanelChristChurchSteps.GetComponent <Image>().color = new Color32(220, 20, 60, 100);
            }
            else if (lcPlayer.CurrentArea == "starbucks")
            {
                mapPanelStarbucks.GetComponent <Image>().color = new Color32(220, 20, 60, 100);
            }
            else if (lcPlayer.CurrentArea == "NMIT")
            {
                mapPanelNMIT.GetComponent <Image>().color = new Color32(220, 20, 60, 100);
            }
            else if (lcPlayer.CurrentArea == "newWorld")
            {
                mapPanelNewWorld.GetComponent <Image>().color = new Color32(220, 20, 60, 100);
            }
            else if (lcPlayer.CurrentArea == "stateCinemas")
            {
                mapPanelStateCinemas.GetComponent <Image>().color = new Color32(220, 20, 60, 100);
            }
        }
    }
Пример #5
0
        public void GivePlayerCardTest()
        {
            var players = new TablePlayer[]  {
                new TablePlayer {
                    PlayerId = 1, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 2, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 3, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 4, GameVariant = GamesVariants.Normal
                }
            };

            CardUtil.SetHandCards(players, false);
            bool[] playersHasDiamondClubCard = new bool[4];
            for (var i = 0; i < players.Length; i++)
            {
                var hasPlayerDiamondClubCard = HasDiamondClubCard(players[i].GetHandCards());
                Assert.True(players[i].HasClubsQueenOnHand == hasPlayerDiamondClubCard);
            }
        }
Пример #6
0
        public void PlayerWinnerAtVariantNormal()
        {
            var player = new TablePlayer[]  {
                new TablePlayer {
                    PlayerId = 1, HasClubsQueenOnHand = true, RoundsPoints = 40, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 2, HasClubsQueenOnHand = false, RoundsPoints = 80, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 3, HasClubsQueenOnHand = true, RoundsPoints = 40, GameVariant = GamesVariants.Normal
                },
                new TablePlayer {
                    PlayerId = 4, HasClubsQueenOnHand = false, RoundsPoints = 60, GameVariant = GamesVariants.Normal
                }
            };
            var table = new PlayTable {
                GameVariant = GamesVariants.Normal
            };

            TableUtil.SetWinners(player, table);
            Assert.False(player[0].RoundWinner);
            Assert.True(player[1].RoundWinner);
            Assert.False(player[2].RoundWinner);
            Assert.True(player[3].RoundWinner);
        }
Пример #7
0
    /// <summary>
    /// 将表数据组装为逻辑数据
    /// </summary>
    public static GC_PlayerPublicData CreatePlayer(ref Conn conn, string userName, ref TablePlayer player)
    {
        GC_PlayerPublicData playerData = new GC_PlayerPublicData();

        if (player == null)
        {
            return(playerData);
        }
        long uid = 0;

        long.TryParse(userName, out uid);
        conn.player = new Player(uid, conn);

        playerData.userName = int.Parse(player.UserName);
        playerData.name     = player.Name;
        playerData.resId    = player.ResId;
        playerData.occ      = player.Occ;
        playerData.mapId    = player.MapId;
        playerData.x        = player.X;
        playerData.y        = player.Y;
        playerData.dir      = player.Dir;

        conn.player.data       = player;
        conn.player.publicData = playerData;

        return(playerData);
    }
Пример #8
0
    /// <summary>
    /// gets the players currents area table for the area they are in
    /// </summary>
    /// <param name="prPlayer">used to correctly select the current area the player is in by using the email</param>
    /// <returns>returns the players current area table</returns>
    public string GetDirectionsPossible(Player prPlayer)
    {
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prPlayer._email).FirstOrDefault();
        TableArea   lcArea   = _connection.Table <TableArea>().Where(x => x.AreaName == lcPlayer.CurrentArea).FirstOrDefault();

        string lcDecisions = null;

        if (lcArea.North != null)
        {
            lcDecisions = lcDecisions + "\n" + "go north";
        }

        if (lcArea.South != null)
        {
            lcDecisions = lcDecisions + "\n" + "go south";
        }

        if (lcArea.East != null)
        {
            lcDecisions = lcDecisions + "\n" + "go east";
        }

        if (lcArea.West != null)
        {
            lcDecisions = lcDecisions + "\n" + "go west";
        }

        return(lcDecisions);
    }
Пример #9
0
    /// <summary>
    /// Gets the story text that is to be displayed after picking up an item
    /// </summary>
    /// <returns>returns postPickup text for the current area</returns>
    public string GetPostPickupStory(string prEmail)
    {
        //get areaname for current player area
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

        //use area name to get correct post pickup text
        TableStory lcStory = _connection.Table <TableStory>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Phase == "postPickup").FirstOrDefault();

        return(lcStory.Description);
    }
Пример #10
0
    /// <summary>
    /// Checks if the load button should be enabled by querying the databate for existing data for that player
    /// </summary>
    public void CheckForLoad()
    {
        DataService ds       = new DataService("NelsonEscapeDatabasev3.db");
        TablePlayer lcPlayer = ds.Connection.Table <TablePlayer>().Where(x => x.Email == dataBetweenScenesManager.dataBetweenScenesInstance.Email).FirstOrDefault();

        if (lcPlayer.CurrentArea != null)
        {
            ToggleButtonStates(true);
        }
        ds = null;
    }
Пример #11
0
    /// <summary>
    /// Logic processor used to obtain the correct story text for the current area that the player is inside
    /// </summary>
    /// <returns>returns the correct sotry text for the current area</returns>
    public string GetStory(string prEmail)
    {
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

        var itemInAreaCount = _connection.Query <TableAreaItem>(
            "select TableAreaItem.ItemID from TableAreaItem"
            + " inner join TablePlayer"
            + " on TableAreaItem.AreaName = TablePlayer.CurrentArea "
            + " where TableAreaItem.Email = ? and TableAreaItem.AreaName = ?",
            prEmail, lcPlayer.CurrentArea).ToList();

        if (itemInAreaCount.Count > 0)
        {
            TableVisited lcVisited = _connection.Table <TableVisited>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Email == lcPlayer.Email).FirstOrDefault();

            if (lcVisited == null)
            {
                //get first visit story & insert visited entry
                var lcNewVisited = new TableVisited
                {
                    AreaName = lcPlayer.CurrentArea,
                    Email    = prEmail
                };
                _connection.Insert(lcNewVisited);
            }
            // select pre pickup story
            TableStory lcStory = _connection.Table <TableStory>().Where(x => x.Phase == "prePickup" && x.AreaName == lcPlayer.CurrentArea).FirstOrDefault();
            return(lcStory.Description);
        }
        else
        {
            //TablePlayer lcPlayer = _connection.Table<TablePlayer>().Where(x => x.Email == firebaseManager.FirebaseManagerInstance.Email).FirstOrDefault();
            TableVisited lcVisited = _connection.Table <TableVisited>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Email == lcPlayer.Email).FirstOrDefault();
            //
            if (lcVisited == null)
            {
                //get first visit story & insert visited entry
                var lcNewVisited = new TableVisited
                {
                    AreaName = lcPlayer.CurrentArea,
                    Email    = prEmail
                };
                _connection.Insert(lcNewVisited);
                TableStory lcStory = _connection.Table <TableStory>().Where(x => x.Phase == "firstVisit" && x.AreaName == lcPlayer.CurrentArea).FirstOrDefault();
                return(lcStory.Description);
            }
            else
            {
                //get default story
                TableStory lcStory = _connection.Table <TableStory>().Where(x => x.Phase == "default" && x.AreaName == lcPlayer.CurrentArea).FirstOrDefault();
                return(lcStory.Description);
            }
        }
    }
Пример #12
0
    /// <summary>
    /// returns the current areas areaitem table
    /// </summary>
    /// <param name="prPlayer">used to select the corrent areaitem row for the current player</param>
    /// <returns>returns the players current areaitem table for the area they are in</returns>
    public bool GetAreaItem(Player prPlayer)
    {
        TablePlayer   lcPlayer   = _connection.Table <TablePlayer>().Where(x => x.Email == prPlayer._email).FirstOrDefault();
        TableAreaItem lcAreaItem = _connection.Table <TableAreaItem>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Email == prPlayer._email).FirstOrDefault();

        if (lcAreaItem == null)
        {
            return(false);
        }
        else
        {
            return(true);
        }
    }
Пример #13
0
    /// <summary>
    /// gets current npc table for the area the player is in
    /// </summary>
    /// <param name="prPlayer">used to get the correct npc table for the player</param>
    /// <returns>returns the npc table</returns>
    public bool GetNPC(Player prPlayer)
    {
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prPlayer._email).FirstOrDefault();
        TableNPC    lcNPC    = _connection.Table <TableNPC>().Where(x => x.CurrentArea == lcPlayer.CurrentArea && x.Email == prPlayer._email).FirstOrDefault();

        if (lcNPC == null)
        {
            return(false);
        }
        else
        {
            return(true);
        }
    }
 public AdditionPlayerInfoModel(TablePlayer player)
 {
     PlayerId         = player.PlayerId;
     PlayerPosition   = player.PlayerPosition;
     UserName         = player.Username;
     ShuffleRound     = player.ShuffleRound;
     NextTurn         = player.NextTurn;
     PlayedCard       = player.GetPlayedCard();
     GameVariant      = player.GameVariant;
     RoundWinner      = player.RoundWinner;
     RoundsPoints     = player.RoundsPoints;
     PlayedRoundCards = player.GetPlayedRoundCards();
     Message          = player.Message;
     DutyAnnouncement = player.DutyAnnouncement;
 }
Пример #15
0
    public override void OnRecv(ref Conn conn)
    {
        CG_Login login    = GetData <CG_Login>(structBytes);
        string   userName = login.userName;
        string   pw       = login.passWord;

        // 检测账号密码是否正确
        if (!DBPlayer.Inst.CheckPassWord(userName, pw))
        {
            // 不通过,那就先注册
            bool bSucc = DBPlayer.Inst.Register(userName, pw);
            if (!bSucc)   // 注册不成功,账号重复等
            {
                eno = -1;
                conn.Send(this);

                //eno = 0;
                //Console.WriteLine("返回创建角色:" + eno + " uid:" + userName);
                //conn.Send(this);
                return;
            }
        }
        TablePlayer player = DBPlayer.Inst.GetPlayer(userName);

        if (player == null)
        {
            // 返回选角色
            eno = 0;
            Console.WriteLine("返回创建角色:" + eno + " uid:" + userName);
            conn.Send(this);
        }
        else
        {
            // 返回角色信息,进入游戏
            eno = 1;
            Console.WriteLine("返回角色信息:" + eno + " uid:" + userName);
            playerData = CreatePlayer(ref conn, userName, ref player);
            conn.Send(this);

            Lobby map = LobbyManager.Inst.GetLobby(player.MapId);
            if (map == null)
            {
                Console.WriteLine("大厅为空:" + player.MapId);
            }
            map.AddPlayer(conn.player);
        }
    }
Пример #16
0
        public void SetAdditionWeddingPlayerWithOutFirstColorCast()
        {
            var weddingPlayer = new TablePlayer {
                GameVariant = GamesVariants.Wedding, PlayerId = 1, PlayedCard = new Card(Suits.clubs, Ranks.jack).ToString(), PlayerPosition = 1
            };
            var additionPlayer = new TablePlayer {
                GameVariant = GamesVariants.Normal, PlayerId = 2, PlayedCard = new Card(Suits.clubs, Ranks.jack).ToString(), PlayerPosition = 2
            };
            var table = new PlayTable {
                GameVariant = GamesVariants.Wedding, WeddingWithFirstColorCast = false, StitchCounter = 2, AdditionalWeddingPlayerId = -1, RoundCardsGiversPosition = 1
            };

            table.SetAdditionalWeddingPlayer(new[] { weddingPlayer, additionPlayer }, additionPlayer.PlayerId);

            Assert.Equal(additionPlayer.PlayerId, table.AdditionalWeddingPlayerId);
            Assert.Equal(GamesVariants.Wedding, table.GameVariant);
        }
Пример #17
0
    /// <summary>
    /// processes the input parameters to determine whether the signup succeeds or not
    /// also creates the database at this stage if it does not exist yet, this could be the first initialization of the program
    /// if the signup succeeds the new player is recorded in the db
    /// </summary>
    /// <param name="prEmail">email input</param>
    /// <param name="prPassword">password input</param>
    /// <returns>returns true or false dependant on whether the signup operation completed successfully</returns>
    public bool SignUp(string prEmail, string prPassword)
    {
        DataService ds = new DataService("NelsonEscapeDatabasev3.db");

        string      lcPasswordHash = sha256(prPassword);
        TablePlayer lcPlayer;

        try
        {
            lcPlayer = ds.Connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();
        }
        catch
        {
            ds.CreateDB(inpEmail.text);
            lcPlayer = ds.Connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();
        }
        if (lcPlayer == null)
        {
            try
            {
                TablePlayer lcNewPlayer = new TablePlayer
                {
                    Email    = prEmail,
                    Password = lcPasswordHash,
                };

                ds.Connection.Insert(lcNewPlayer);

                //using firebase class singleton to store email until gamemodel is instantiated later.
                //it is named after firebase but I am not using any firebase code or services.
                dataBetweenScenesManager.dataBetweenScenesInstance.Email = prEmail;
                ds = null;
                return(true);
            }
            catch
            {
                ds = null;
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }
Пример #18
0
    /// <summary>
    /// Deletes the current areaitem from the area
    /// </summary>
    /// <param name="prEmail">email used to identify the player</param>
    /// <returns>returns true of false dependant on whether the command was successful or not</returns>
    public bool DeleteAreaItem(string prEmail)
    {
        try
        {
            //get current area from player table
            TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

            //get item id for current area
            //TableAreaItem lcAreaItem = _connection.Table<TableAreaItem>().Where(x => x.AreaName == lcPlayer.CurrentArea && x.Email == lcPlayer.Email).FirstOrDefault();

            _connection.Query <TableAreaItem>(
                "delete from TableAreaItem"
                + " where TableAreaItem.Email = ? and TableAreaItem.AreaName = ?",
                prEmail, lcPlayer.CurrentArea);
            //_connection.Delete(lcAreaItem);

            return(true);
        }
        catch
        {
            return(false);
        }
    }
Пример #19
0
        public override void SetUp()
        {
            base.SetUp();

            var player3 = new TablePlayer()
            {
                Position = 3,
                UserId   = "me3",
                Cash     = 1000
            };

            _state.Invoke(new PlayerJoined
            {
                Id       = TestTableId,
                Position = player3.Position,
                UserId   = player3.UserId,
                Cash     = player3.Cash,
            });

            _state.Invoke(new GameFinished
            {
                Id      = TestTableId,
                GameId  = "game_1",
                Winners = Winners.Me1(50)
            });

            var pack = new Pack();

            _state.Invoke(new GameCreated
            {
                Id      = TestTableId,
                GameId  = "game_2",
                Cards   = pack.GetAllCards(),
                Players = _state.CopyPlayers()
            });
        }
Пример #20
0
 public PlayCard(TablePlayer tablePlayer)
 {
     Card     = tablePlayer.GetPlayedCard();
     PlayerId = tablePlayer.PlayerId;
     Position = tablePlayer.PlayerPosition;
 }
Пример #21
0
    private void Awake()
    {
        if (!"BOARD_CONFIG".TryGetValue(out Board.Config c) || c.core == null)
        {
            "BOARD_CONFIG".SetValue(new Board.Config
            {
                size = size,
            });
        }

        var config = new OfflineTurnManager.Config();
        var dict   = config.isHumanPlayer as Dictionary <int, bool>;

        foreach (var kvp in isHumanPlayer)
        {
            dict[(int)kvp.Key] = kvp.Value;
        }
        if (!online)
        {
            "TURNBASE_CONFIG".SetValue(config);
        }

        "TURNBASE_CONFIG".SetValue(new P2PTurnManager.Config
        {
            playerCount   = 2,
            maxTurnTime   = maxTurnTime,
            maxPlayerTime = maxPlayerTime
        });

        // test
        Table.current = new Table {
            chair = 2, game = MiniGame.Gomoku, localID = 0, isPlaying = true
        };

        for (int i = 0; i < 2; ++i)
        {
            // cài local
            var user = new User
            {
                id     = i,
                avatar = playerInfos[i].avatar,
                money  = playerInfos[i].money,
                name   = playerInfos[i].name,
                sex    = playerInfos[i].sex
            };

            var player = new TablePlayer
            {
                id       = i,
                betMoney = playerInfos[i].betMoney,
                table    = Table.current,
                user     = user
            };

            (Table.current.players as List <TablePlayer>).Add(player);
            if (i == 0)
            {
                Table.current.host = player;
            }
        }

        PhotonNetwork.AddCallbackTarget(this);
    }
Пример #22
0
    /// <summary>
    /// returns the current players database table
    /// </summary>
    /// <returns>returns the current players database table</returns>
    public int GetHealth(string prEmail)
    {
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

        return(lcPlayer.Health);
    }
Пример #23
0
        public virtual void SetUp()
        {
            _state = new GameTableState();
            var pack = new Pack();

            var player1 = new TablePlayer()
            {
                Position = 1,
                UserId   = "me1",
                Cash     = 1000
            };

            var player2 = new TablePlayer()
            {
                Position = 2,
                UserId   = "me2",
                Cash     = 1000
            };

            _state.Invoke(new TableCreated
            {
                Id         = TestTableId,
                BuyIn      = 1000,
                MaxPlayers = 10,
                Name       = "My new table",
                SmallBlind = 5
            });

            _state.Invoke(new PlayerJoined
            {
                Id       = TestTableId,
                Position = player1.Position,
                UserId   = player1.UserId,
                Cash     = player1.Cash,
            });

            _state.Invoke(new PlayerJoined
            {
                Id       = TestTableId,
                Position = player2.Position,
                UserId   = player2.UserId,
                Cash     = player2.Cash,
            });

            _state.Invoke(new GameCreated
            {
                Id      = TestTableId,
                GameId  = "game_1",
                Cards   = pack.GetAllCards(),
                Players = _state.CopyPlayers()
            });

            _state.Invoke(new CardsDealed
            {
                Id     = TestTableId,
                GameId = "game_1",
                Cards  = TakeCards(_state.CopyPlayers(), _state.Pack)
            });

            _state.Invoke(new DealerAssigned
            {
                Id     = TestTableId,
                GameId = "game_1",
                Dealer = new PlayerInfo
                {
                    Position = player1.Position,
                    UserId   = player1.UserId
                },
                SmallBlind = new PlayerInfo
                {
                    Position = player2.Position,
                    UserId   = player2.UserId
                },
                BigBlind = new PlayerInfo
                {
                    Position = player1.Position,
                    UserId   = player1.UserId
                }
            });

            _state.Invoke(new BidMade
            {
                Id  = TestTableId,
                Bid = new BidInfo
                {
                    UserId       = player2.UserId,
                    Position     = player2.Position,
                    Bid          = 5,
                    Amount       = 5,
                    NewCashValue = 995,
                    BidType      = BidTypeEnum.SmallBlind,
                }
            });

            _state.Invoke(new BidMade
            {
                Id  = TestTableId,
                Bid = new BidInfo
                {
                    UserId       = player1.UserId,
                    Position     = player1.Position,
                    Bid          = 10,
                    Amount       = 10,
                    NewCashValue = 990,
                    BidType      = BidTypeEnum.BigBlind,
                }
            });

            _state.Invoke(new NextPlayerTurned
            {
                Id     = TestTableId,
                GameId = "game_1",
                Player = _state.GetPlayerInfo(2)
            });
        }
Пример #24
0
        public override void SetUp()
        {
            base.SetUp();

            var player3 = new TablePlayer()
            {
                Position = 3,
                UserId   = "me3",
                Cash     = 1000
            };

            _state.Invoke(new PlayerJoined
            {
                Id       = TestTableId,
                Position = player3.Position,
                UserId   = player3.UserId,
                Cash     = player3.Cash,
            });

            _state.Invoke(new GameFinished
            {
                Id      = TestTableId,
                GameId  = "game_1",
                Winners = Winners.Me1(50)
            });

            var pack = new Pack();

            _state.Invoke(new GameCreated
            {
                Id      = TestTableId,
                GameId  = "game_2",
                Cards   = pack.GetAllCards(),
                Players = _state.CopyPlayers()
            });

            _state.Invoke(new CardsDealed
            {
                Id     = TestTableId,
                GameId = "game_2",
                Cards  = TakeCards(_state.CopyPlayers(), _state.Pack)
            });

            _state.Invoke(new DealerAssigned
            {
                Id     = TestTableId,
                GameId = "game_2",
                Dealer = new PlayerInfo
                {
                    Position = _state.Players[2].Position,
                    UserId   = _state.Players[2].UserId
                },
                SmallBlind = new PlayerInfo
                {
                    Position = _state.Players[3].Position,
                    UserId   = _state.Players[3].UserId
                },
                BigBlind = new PlayerInfo
                {
                    Position = _state.Players[1].Position,
                    UserId   = _state.Players[1].UserId,
                }
            });

            _state.Invoke(new BidMade
            {
                Id  = TestTableId,
                Bid = new BidInfo
                {
                    UserId       = _state.Players[3].UserId,
                    Position     = _state.Players[3].Position,
                    Bid          = 5,
                    Amount       = 5,
                    NewCashValue = 995,
                    BidType      = BidTypeEnum.SmallBlind,
                }
            });

            _state.Invoke(new BidMade
            {
                Id  = TestTableId,
                Bid = new BidInfo
                {
                    UserId       = _state.Players[1].UserId,
                    Position     = _state.Players[1].Position,
                    Bid          = 10,
                    Amount       = 10,
                    NewCashValue = 1030,
                    BidType      = BidTypeEnum.BigBlind,
                }
            });

            _state.Invoke(new NextPlayerTurned
            {
                Id     = TestTableId,
                GameId = "game_2",
                Player = _state.GetPlayerInfo(2)
            });
        }
Пример #25
0
    /// <summary>
    /// Attemps to move player in direction specified by parameter
    /// </summary>
    /// <param name="prDirection">Direction passed in by the command processor</param>
    /// <returns>returns true or false dependant on if the move command was successful</returns>
    public bool Move(DIRECTION prDirection, string prEmail)
    {
        //get player for current area
        TablePlayer lcPlayer = _connection.Table <TablePlayer>().Where(x => x.Email == prEmail).FirstOrDefault();

        //get area table to check for direction entry
        TableArea lcArea = _connection.Table <TableArea>().Where(x => x.AreaName == lcPlayer.CurrentArea).FirstOrDefault();

        if (prDirection == DIRECTION.North)
        {
            //return false if no north movement found
            if (lcArea.North == null)
            {
                return(false);
            }
            else
            {
                //if direction found change current area to the corresponding area in that direction
                //update in database
                //return true
                lcPlayer.CurrentArea = lcArea.North;
                _connection.Update(lcPlayer);
                return(true);
            }
        }
        else if (prDirection == DIRECTION.South)
        {
            //return false if no south movement found
            if (lcArea.South == null)
            {
                return(false);
            }
            else
            {
                //if direction found chang current area to the corresponding area in that direction
                //update in database
                //return true
                lcPlayer.CurrentArea = lcArea.South;
                _connection.Update(lcPlayer);
                return(true);
            }
        }
        else if (prDirection == DIRECTION.East)
        {
            //return false if no East movement found
            if (lcArea.East == null)
            {
                return(false);
            }
            else
            {
                //if direction found chang current area to the corresponding area in that direction
                //update in database
                //return true
                lcPlayer.CurrentArea = lcArea.East;
                _connection.Update(lcPlayer);
                return(true);
            }
        }
        else if (prDirection == DIRECTION.West)
        {
            //return false if no West movement found
            if (lcArea.West == null)
            {
                return(false);
            }
            else
            {
                //if direction found chang current area to the corresponding area in that direction
                //update in database
                //return true
                lcPlayer.CurrentArea = lcArea.West;
                _connection.Update(lcPlayer);
                return(true);
            }
        }
        else
        {
            return(false);
        }
    }
Пример #26
0
    private void UpdateMain()
    {
        if (IsStart == false)
        {
            return;
        }

        if (ManageWait.Info.IsWait == true)
        {
            return;
        }

        if (state == TitleState.Input)
        {
            if (KeyControlInformation.Info.OnKeyDownMenu(KeyType.MenuOk) ||
                (KeyControlInformation.Info.OnLeftClick() &&
                 CommonFunction.IsDoubleClick()))
            {
                if (CommonFunction.IsNull(UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject) == false &&
                    UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.name == "NameInputField")
                {
                    return;
                }

                if (CommonFunction.IsNull(ResourceInformation.SaveInfo) == false &&
                    ResourceInformation.SaveInfo.IsLoadSave == true)
                {
                    //サウンドを鳴らす
                    SoundInformation.Sound.Play(SoundInformation.SoundType.MenuOk);

                    state = TitleState.ActionSelectInit;
                }
                else
                {
                    TargetScene = "Scenes/GameSelect";
                    state       = TitleState.FadeInit;
                }
            }
        }
        else
        if (state == TitleState.ActionSelectInit)
        {
            InitialzeContent();

            state = TitleState.ActionSelect;
        }
        else
        if (state == TitleState.ActionSelect)
        {
            if (UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject == GameObject.Find("NameInputField"))
            {
                return;
            }

            //上
            if (KeyControlInformation.Info.OnMoveUp())
            {
                Selected = SelectUp(SelectedList, Selected);
            }
            //下
            else if (KeyControlInformation.Info.OnMoveDown())
            {
                Selected = SelectDown(SelectedList, Selected);
            }
            //ダンジョン決定 シーン移動
            else if (KeyControlInformation.Info.OnKeyDownMenu(KeyType.MenuOk))
            {
                if (Selected == (int)TitleSelectAction.Continue)
                {
                    TargetScene = "Scenes/rouge1";
                    state       = TitleState.FadeInitLoadSave;
                }
                else if (Selected == (int)TitleSelectAction.NewGame)
                {
                    ResourceInformation.SaveInfo = new SavePlayingInformation();
                    SaveDataInformation.RemoveSaveData();
                    TargetScene = "Scenes/GameSelect";
                    state       = TitleState.FadeInit;
                }
            }
        }
        else
        if (state == TitleState.FadeInitLoadSave)
        {
            //サウンドを鳴らす
            SoundInformation.Sound.Play(SoundInformation.SoundType.GameStart);

            string name = GameObject.Find("NameText").GetComponent <Text>().text;

            ScoreInformation.Info.PlayerName = name;

            _manageFade.PlayFadeIn(true, 0.5f);


            SavePlayingInformation save = ResourceInformation.SaveInfo;

            //保存されていたら保存データを読み込み
            if (save.IsLoadSave == true)
            {
                DungeonInformation.Info = TableDungeonMaster.GetValue(save.don);
                PlayerInformation.Info  = TablePlayer.GetValue(save.pon);

                //アイテムデータをロード
                SaveItemData[] items = SaveDataInformation.LoadItemValue();

                //アイテムデータを反映
                GameStateInformation.TempItemList = SaveItemInformation.ToListBaseItem(items);

                //セーブデータを削除
                SaveDataInformation.RemoveSaveData();
            }

            StartCoroutine(TransScene(TargetScene, 0.5f));

            state = TitleState.Fade;
        }
        else
        if (state == TitleState.FadeInit)
        {
            //サウンドを鳴らす
            SoundInformation.Sound.Play(SoundInformation.SoundType.GameStart);

            string name = GameObject.Find("NameText").GetComponent <Text>().text;

            ScoreInformation.Info.PlayerName = name;

            _manageFade.PlayFadeIn(true, 0.5f);

            StartCoroutine(TransScene(TargetScene, 0.5f));

            state = TitleState.Fade;
        }
    }
Пример #27
0
    private void StartMain()
    {
        GameObject gm = new GameObject("FloorChanger");

        _manageFade = gm.AddComponent <ManageFade>();
        _manageFade.SetupFade();
        _manageFade.Wait = 0.01f;
        _manageFade.PlayFadeOut(false);

        GameObject.Find("OnBGMCheck").GetComponent <Toggle>().isOn =
            MusicInformation.Music.IsMusicOn;

        GameObject.Find("OnSoundCheck").GetComponent <Toggle>().isOn =
            SoundInformation.Sound.IsPlay;

        GameObject.Find("OnVoiceCheck").GetComponent <Toggle>().isOn =
            VoiceInformation.Voice.IsPlay;

        if (KeyControlInformation.Info.OpMode == OperationMode.UseMouse)
        {
            GameObject.Find("UseMouse").GetComponent <Toggle>().isOn =
                true;
        }

        if (ScoreInformation.Info.PlayerNameBase != CommonConst.Message.UnityChanName && ScoreInformation.Info.PlayerNameBase != CommonConst.Message.StellaChanName)
        {
            GameObject.Find("NameInputField").GetComponent <InputField>().text = ScoreInformation.Info.PlayerNameBase;
        }
        else
        {
            GameObject.Find("NameInputField").GetComponent <InputField>().text = "";
        }

        //MusicInformation.Music.Setup(MusicInformation.MusicType.CharacterSelect);

        ScrollViewSelected         = GameObject.Find("SelectTargetScrollView");
        ScrollViewSelectedUnit     = GameObject.Find("SelectUnit");
        ScrollViewSelectedContents = GameObject.Find("SelectTargetContent");

        _keyDisp = GameObject.Find("KeyDisplayPanel");

        CharacterStatusPanel = GameObject.Find("CharacterStatusPanel");
        DungeonStatusPanel   = GameObject.Find("DungeonStatusPanel");

        ScrollViewSelectedUnit.SetActive(false);
        DungeonStatusPanel.SetActive(false);

        SelectedList = new Dictionary <long, GameObject>();

        _state = SelectTurnState.ManageStart;

        _keyDisp.SetActive(false);


        //ダンジョンデータを読み込み
        Dungeons = TableDungeonMaster.GetAllValue();
        //キャラクターデータを読み込み
        Characters = TablePlayer.GetAllValue();
        //初期選択を格納
        SelectCharacter = Characters.First().Value.ObjNo;
        InitialzeContent(Characters, SelectCharacter);

        MainThreadDispatcher.StartUpdateMicroCoroutine(TransSceneStart(1f));
    }
Пример #28
0
        public bool SetOnTable(int playerId, int tableId)
        {
            CancelWatchTable(playerId);
            var tablePlayer = GettablePlayerOfId(playerId);

            if (tablePlayer != null)
            {
                if (tablePlayer.TableId == tableId)
                {
                    return(true);
                }
                else
                {
                    SetOutTable(playerId);
                }
            }

            var tablePlayers = _context.TablePlayer.Where((tp) => tp.TableId == tableId).ToArray();

            // table has with this player mor then 5 player on the table
            if (tablePlayers.Length + 1 > 4)
            {
                return(false);
            }
            var table = _context.PlayTables.FirstOrDefault(tp => tp.Id == tableId);
            var user  = _userService.GetById(playerId);


            if (table != null && user != null)
            {
                int         tablePlayerCount = _context.TablePlayer.Count((tp) => tp.TableId == tableId);
                TablePlayer newTablePlayer   = new TablePlayer();
                newTablePlayer.TableId        = table.Id;
                newTablePlayer.PlayerPosition = GetNextFreePostionOnTable(tablePlayers);
                newTablePlayer.PlayerId       = user.Id;
                newTablePlayer.Username       = user.Username;
                _context.TablePlayer.Add(newTablePlayer);

                int changeCount = 0;
                // 4 player on table (3 and the current)
                if (tablePlayers.Length == 3)
                {
                    table.RoundCount = 0;
                    table.Status     = PlayStatus.None;
                    changeCount      = _context.SaveChanges();
                    _context.PlayTables.Update(table);
                    _context.SaveChanges();
                    StartNewRound(tableId);
                }
                else
                {
                    changeCount = _context.SaveChanges();
                    OnTableChanged(table.Id);
                }
                OnTableListChanged();
                return(changeCount > 0);
            }
            else
            {
                return(false);
            }
        }