示例#1
0
        private static void LoadUserPermissions()
        {
            if (!File.Exists(_filePathUserPermissions))
            {
                return;
            }

            try
            {
                var doc = XDocument.Load(_filePathUserPermissions);

                foreach (var element in doc.Elements("Permissions").Elements())
                {
                    string userName = element.Attribute("name").Value;
                    string roleName = element.Attribute("role").Value;

                    Role role = Settings.Roles[roleName] ?? Role.Default;

                    var player = PlayerDescriptor.Load(userName);

                    if (player != null)
                    {
                        player.Role = role;
                        player.Save(Constants.FILEPATH_ACCOUNTS + player.Name + ".acc");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error loading user permissions!");
            }
        }
示例#2
0
        public void TestNewPlayer()
        {
            PlayerDescriptor descriptor = new PlayerDescriptor("test", "test");

            Player player = new Player(descriptor, new TestPlayerConnection());

            Assert.IsTrue(player != null);
        }
示例#3
0
    // DELEGATES
    //==========


    void OnSeatGranted(PlayerDescriptor playerInfo)
    {
        Debug.Log("seat was granted");
        // set player name in display field
        playerNameField.GetComponent <InputField>().text = playerInfo.playerName;

        // switch to game view
        GameObject.Find(GlobalObjects.GameViewManagerObject).SendMessage("HideInfoView");
    }
示例#4
0
 private static void ArenaSetup_LoadFromFile(On.ArenaSetup.orig_LoadFromFile orig, ArenaSetup self)
 {
     orig(self);
     try
     {
         arenaCharacter[self] = PlayerDescriptor.FromString(File.ReadAllText(arenaSettingsPath));
     } catch (Exception e)
     {
         Debug.LogException(new FormatException("Invalid arena settings format. This error is not fatal.", e));
         arenaCharacter.Unset(self);
     }
 }
示例#5
0
    public void RequestSeat(PlayerDescriptor seatInfo)
    {
        Debug.Log("RequestSeat" + seatInfo.ToString());

        JSONObject seatRequest = new JSONObject();

        seatRequest.AddField("type", "SeatRequested");
        seatRequest.AddField("player", seatInfo.playerGuid);

        // send websocket connection ID
        // so server can associate the connection ID with the player ID
        seatRequest.AddField("connection", websocketClient.connectionID);

        websocketClient.SendToTabletop(seatRequest);
    }
示例#6
0
                public PlayerButton(PlayerSelector owner, PlayerDescriptor player, Vector2 pos) : base(owner.menu, owner, pos, new Vector2(height, height))
                {
                    this.player = player;

                    back         = new RoundedRect(menu, this, new Vector2(), size, true);
                    back.addSize = new Vector2(-2f, -2f);
                    subObjects.Add(back);

                    icon = new CreatureSymbol(MultiplayerUnlocks.SymbolDataForSandboxUnlock(MultiplayerUnlocks.SandboxUnlockID.Slugcat), Container);
                    icon.Show(false);
                    icon.showFlash = 0f;
                    icon.showFlash = 0f;
                    icon.myColor   = player.Color;

                    name         = new FLabel("font", player.name);
                    name.anchorX = 0f;
                    name.anchorY = 0.5f;
                    Container.AddChild(name);

                    // Don't animate when first showing the screen
                    snap = true;
                }
示例#7
0
    void CreateSeatButton(PlayerDescriptor seatInfo, Transform SeatsListPanel, float xOffset, float yOffset)
    {
        Debug.Log(string.Format("creating seat: {0} {1} {2}", xOffset, yOffset, seatInfo.playerName));
        GameObject availableSeat = Instantiate(availableSeatEntryPrefab) as GameObject;

        availableSeat.transform.SetParent(SeatsListPanel);
        availableSeat.transform.GetComponent <RectTransform>().localPosition = new Vector2(xOffset, yOffset);

        availableSeat.transform.Find(seatNameObject).GetComponent <Text>().text = seatInfo.playerName;
        availableSeat.transform.Find(seatButtonObject).GetComponent <Button>().onClick.AddListener(
            () =>
        {
            HHManager.instance.SendMessage("RequestSeatForPlayer", seatInfo);

            // hide seat panel list
            availableSeatsView.SetActive(false);

            //TODO show request loading

            // the rest of this UI flow will be resolved once the server responds
            // with granting or denying seat request
        }
            );
    }
示例#8
0
        public override ActionDescriptor Play(bool mustCoup)
        {
            var r = new Random();

            if (mustCoup || (Coins >= 7 && r.Next(2) == 1))
            {
                var firstOrDefault =
                    _players.Where(x => x.Index != Index)
                    .OrderByDescending(x => x.Coins)
                    .FirstOrDefault(x => x.LostCard1 == Card.None || x.LostCard2 == Card.None);
                if (firstOrDefault != null)
                {
                    return(new CoupDEtatDescriptor(firstOrDefault.Index));
                }
            }
            else
            {
                if (Card1 == Card.Duke || Card2 == Card.Duke)
                {
                    return(new CollectTaxesDescriptor());
                }
                if ((Card1 == Card.Captain || Card2 == Card.Captain) && r.Next(3) > 2)
                {
                    var firstOrDefault =
                        _players.Where(x => x.Index != Index)
                        .OrderByDescending(x => x.Coins)
                        .FirstOrDefault(x => x.LostCard1 == Card.None || x.LostCard2 == Card.None);
                    if (
                        firstOrDefault != null)
                    {
                        return(new ExtortionDescriptor(firstOrDefault.Index));
                    }
                }
                else if ((Card1 == Card.Assassin || Card2 == Card.Assassin && Coins >= 3))
                {
                    var firstOrDefault =
                        _players.Where(x => x.Index != Index)
                        .OrderByDescending(x => x.Coins)
                        .FirstOrDefault(x => x.LostCard1 == Card.None || x.LostCard2 == Card.None);
                    if (firstOrDefault != null)
                    {
                        return(new AssassinateDescription(firstOrDefault.Index));
                    }
                }
                else if (r.Next(3) == 1)
                {
                    return(new ForeignAidDescriptor());
                }
                else if (r.Next(5) == 1)
                {
                    return(new ExchangeDescriptor());
                }
                else if (r.Next(4) == 1)
                {
                    PlayerDescriptor firstOrDefault =
                        _players.Where(x => x.Index != Index)
                        .OrderByDescending(x => x.Coins)
                        .FirstOrDefault(x => x.LostCard1 == Card.None || x.LostCard2 == Card.None);
                    if (firstOrDefault != null)
                    {
                        return(new InvestigateDescriptor(firstOrDefault.Index));
                    }
                }
                else
                {
                    return(new IncomeDescriptor());
                }
            }

            throw new NotImplementedException();
        }
示例#9
0
 public void UpdatePlayerInfo(PlayerDescriptor playerInfo)
 {
     playerName.GetComponent <Text>().text = playerInfo.playerName;
 }