public void GameInit() { curCoroutine = null; IsTestMode = false; createPos.SetActive(false); ChracterList.Clear(); PlayerDataList.Clear(); PlayerSequenceQueue.Clear(); IsGameEnd = false; CurRound = 1; Player1 = new PlayerData(0, 0, Team.PLAYER1, DeckManager.Instance.CurDeck); Player2 = new PlayerData(1, 1, Team.PLAYER2, DeckManager.Instance.CurDeck); PlayerDataList.Add(Player1); PlayerDataList.Add(Player2); PlayerDataList.Sort((x, y) => { return(x.order.CompareTo(y.order)); }); foreach (var player in PlayerDataList) { EnqueuePlayerSequenceQueue(player); } NextSequencePlayerStart(); }
public static void UpdateData(PlayerData playerData) { PlayerDataList playerDataList = HasData() ? JsonUtility.FromJson <PlayerDataList>(PlayerPrefs.GetString(PLAYER_KEY)) : new PlayerDataList(); playerDataList.UpdatePlayer(playerData); PlayerPrefs.SetString(PLAYER_KEY, JsonUtility.ToJson(playerDataList)); }
void Start() { if (PlayerPrefs.HasKey("BestScore")) { try { string json = PlayerPrefs.GetString("BestScore"); PlayerDataList dataFromFile = JsonUtility.FromJson <PlayerDataList>(json); int number = 1; string nameList = ""; string scoreList = ""; foreach (PlayerData item in dataFromFile.players) { nameList += number.ToString() + ". " + item.PlayerName + "\n"; scoreList += item.Score + "\n"; number++; } PlayersList.text = nameList; ScoreList.text = scoreList; } catch (System.Exception ex) { Debug.Log(ex.Message); Debug.Log("Miss file for upload"); } } }
public void Execute(Player player, string[] args) { var Arenas = new List <BattleArenaMap>(); var ArenaTexts = new List <string>(); ArenaTexts.Add(""); foreach (var w in RealmManager.Worlds) { var world = w.Value; if (w.Value.Name == "Battle Arena" && w.Value.Players.Count > 0 || w.Value.Name == "Free Battle Arena" && w.Value.Players.Count > 0) { Arenas.Add(w.Value as BattleArenaMap); } } if (Arenas.Count > 0) { foreach (var w in Arenas) { var ctext = "Wave " + w.Wave + " - {0} {1}"; var players = new List <string>(); var solo = 0; foreach (var p in w.Players) { players.Add(p.Value.Name); if (PlayerDataList.GetData(p.Value.Client.Account.Name).Solo) { solo++; } } if (players.Count > 0) { ArenaTexts.Add(string.Format(ctext, string.Join(", ", players.ToArray()), solo == players.Count ? " (SOLO)" : "")); } } } if (ArenaTexts.Count == 1) { ArenaTexts.Add("None"); } //player.SendInfo(string.Join("\n", ArenaTexts.ToArray())); player.Client.SendPacket(new TextBoxPacket { Title = "Current Arenas:", Message = string.Join("\n", ArenaTexts.ToArray()), Button1 = "Ok" }); }
// Start is called before the first frame update void OnEnable() { _loadButton.interactable = false; _startButton.interactable = false; if (PlayerSaveManager.HasData()) { _playerList = PlayerSaveManager.GetData(); PopulateProfiles(); } else { _playerList = new PlayerDataList(); } }
public void Execute(Player player, string[] args) { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); if (PlayerData.Solo) { PlayerData.Solo = false; player.SendInfo("Solo disabled! People can now join you!"); } else { PlayerData.Solo = true; player.SendInfo("Solo enabled! People can no longer join you!"); } }
public static void SavePlayer(PlayerData data) { if (PlayerPrefs.HasKey("BestScore")) { try { string json = PlayerPrefs.GetString("BestScore"); PlayerDataList dataFromFile = JsonUtility.FromJson <PlayerDataList>(json); dataFromFile.players.Add(data); dataFromFile.players.Sort(); if (dataFromFile.players.Count > 10) { dataFromFile.players.RemoveAt(dataFromFile.players.Count - 1); } json = JsonUtility.ToJson(dataFromFile); PlayerPrefs.SetString("BestScore", json); PlayerPrefs.Save(); } catch (Exception ex) { Debug.Log(ex.Message); Debug.Log("Miss file for saving"); } } else { //FileStream stream = new FileStream(path, FileMode.Create); List <PlayerData> list = new List <PlayerData>(); list.Add(data); PlayerDataList playerDataList = new PlayerDataList(list); string json = JsonUtility.ToJson(playerDataList); PlayerPrefs.SetString("BestScore", json); PlayerPrefs.Save(); //PlayerDataList dataFromFile = new PlayerDataList(list); //formatter.Serialize(stream, dataFromFile); //stream.Close(); } }
public void GetScore(Team team, int score) { if (IsTestMode) { return; } var findPlayer = PlayerDataList.Find(v => v.team == team); findPlayer?.GetScore(score); //전 라운드의 후공 플레이어 var pevLastPlayer = PlayerDataList .Find(v => v.order == (PlayerDataList.Count - 1)); var firstTeam = Team.NONE; var winTeam = Team.NONE; //후공 플레이어가 점수를 획득했다면 if (findPlayer != null && pevLastPlayer.index == findPlayer.index) { //역순으로 정렬 PlayerDataList.Sort((x, y) => { return(y.order.CompareTo(x.order)); }); firstTeam = PlayerDataList.First().team; //전 라운드 순서의 역순으로 인큐 for (int i = 0; i < PlayerDataList.Count; i++) { PlayerDataList[i].order = i; PlayerDataList[i].UseIndexList.Clear(); EnqueuePlayerSequenceQueue(PlayerDataList[i]); } } //후공 플레이어가 점수를 획득하지 못했다면 else { //전판 순서 그대로 정렬 PlayerDataList.Sort((x, y) => { return(x.order.CompareTo(y.order)); }); firstTeam = PlayerDataList.First().team; //전 라운드 순서로 인큐 for (int i = 0; i < PlayerDataList.Count; i++) { PlayerDataList[i].order = i; PlayerDataList[i].UseIndexList.Clear(); EnqueuePlayerSequenceQueue(PlayerDataList[i]); } } SetCameraToHousePos(); CurRound += 1; if (CurRound > ROUND_COUNT) { //게임 종료 IsGameEnd = true; winTeam = Player1.Score > Player2.Score ? Team.PLAYER1 : Team.PLAYER2; curCoroutine = StartCoroutine(NextRoundWait( (scoreUI) => scoreUI.SetWinLoseRoot(winTeam == Player1.team), () => { RemoveAllData(); None(); var selectUI = UIManager.Instance.IsUIOpened <GameMainUI>(); if (selectUI != null) { selectUI.Close(); } UIManager.Instance.Get <MainMenuUI>(); curCoroutine = null; })); } else { curCoroutine = StartCoroutine(NextRoundWait( (scoreUI) => scoreUI.SetFirstAttackRoot(firstTeam == Player1.team), () => { RemoveAllData(); NextSequencePlayerStart(); curCoroutine = null; })); } }
public void Execute(Player player, string[] args) { try { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); if (args.Length > 0) { string subcommand = args[0]; if (subcommand == "list") { string glist = "Players in your group: "; foreach (var i in PlayerData.JGroup) { if (glist != "Players in your group: ") { glist = glist + ", " + i; } else { glist = glist + i; } } player.SendInfo(glist); } else if (subcommand == "add" && args.Length > 1) { foreach (var i in PlayerData.JGroup) { if (i.Value == args[1].ToLower()) { player.SendInfo("Player already added!"); return; } } PlayerData.JGroup.TryAdd(PlayerData.JGroup.Count, args[1].ToLower()); player.SendInfo("Added " + args[1] + "!"); } else if (subcommand == "del" && args.Length > 1) { int remc = 0; foreach (var i in PlayerData.JGroup) { if (i.Value == args[1].ToLower()) { string absolutelynothingdisregardthis; player.SendInfo("Removed player " + i.Value + "!"); remc++; PlayerData.JGroup.TryRemove(i.Key, out absolutelynothingdisregardthis); } } if (remc < 1) { player.SendInfo("Player not found!"); } } } else { if (PlayerData.UsingGroup) { PlayerData.UsingGroup = false; player.SendInfo("Group-only join disabled!"); } else { PlayerData.UsingGroup = true; player.SendInfo("Group-only join enabled!"); } } } catch { player.SendInfo("Unexpected error in command!"); } }
public void Execute(Player player, string[] args) { string name = string.Join(" ", args.ToArray()).Trim(); try { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); foreach (var w in RealmManager.Worlds) { World world = w.Value; if (w.Key != 0) { foreach (var i in world.Players) { if (i.Value.Client.Account.Name.ToLower() == name.ToLower()) { GlobalPlayerData iPlayerData = PlayerDataList.GetData(i.Value.Client.Account.Name); if (!(player.Client.Account.Rank > 2)) { if (world.Name != "Vault") { if (world.Name != "Guild Hall") { TryJoin(player, iPlayerData, world, i.Value); return; } else { if ((world as GuildHall).Guild == player.Guild) { TryJoin(player, iPlayerData, world, i.Value); return; } else { player.SendInfo("Player is in " + i.Value.Guild + "'s guild hall!"); return; } } } else { if (world.Name == "Vault") { player.SendInfo("Player is in Vault!"); return; } else if (world.Name == "Guild Hall") { player.SendInfo("Player is in Guild Hall!"); return; } else { if (!iPlayerData.UsingGroup) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Name + "'s Vault", Key = Empty <byte> .Array, }); return; } else { foreach (var o in iPlayerData.JGroup) { if (o.Value == player.Client.Account.Name.ToLower()) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Name + "'s Vault", Key = Empty <byte> .Array, }); return; } } player.SendInfo("Not in " + i.Value.Client.Account.Name + "'s group!"); return; } } } } else { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Owner.Name, Key = Empty <byte> .Array, }); return; } } } } } player.SendHelp("Use /visit <playername>"); } catch { player.SendInfo("Unexpected error in command!"); } }