void setCharacterSheet(NetworkGamePlayerDND player) { stats = player.playerStats; statsMain = new int[] { int.Parse(stats[0]), int.Parse(stats[1]), int.Parse(stats[2]), int.Parse(stats[3]), int.Parse(stats[4]), int.Parse(stats[5]) }; proficiency = (int)Mathf.Ceil((float.Parse(stats[10]) / 4) + 1); characterName = PlayerCanvasObject.Find("Character_Sheet").Find("Character_Name").GetChild(0).gameObject; Transform mainStats = PlayerCanvasObject.Find("Character_Sheet").Find("Stat_PanelHolder"); Transform currentStats = PlayerCanvasObject.Find("Character_Sheet").Find("CurrentStat_PanelHolder"); Transform savingThrows = PlayerCanvasObject.Find("Character_Sheet").Find("SavingThrow_Panel"); Transform abilities = PlayerCanvasObject.Find("Character_Sheet").Find("Ability_Panel"); this.GetComponent <DNDCombatUnit>().movementSpeed = int.Parse(stats[8]) / 5; this.GetComponent <DNDCombatUnit>().maxSpeed = int.Parse(stats[8]) / 5; //Set charactersheet data characterName.GetComponent <TextMeshProUGUI>().SetText(player.GetDisplayName()); int counter = 0; foreach (Transform child in mainStats) { child.GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>().SetText(stats[counter]); child.GetChild(2).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(int.Parse(stats[counter]))); savingThrows.GetChild(counter).GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(int.Parse(stats[counter]))); counter++; } foreach (Transform child in currentStats) { child.GetChild(0).GetComponent <TextMeshProUGUI>().SetText(stats[counter]); counter++; if (counter == 9) { break; } } foreach (Transform child in abilities) { //Dont need one for "2" as there are no abilities that coincide with constitution if (child.name.StartsWith("0")) { child.GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(statsMain[0])); } else if (child.name.StartsWith("1")) { child.GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(statsMain[1])); } else if (child.name.StartsWith("3")) { child.GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(statsMain[3])); } else if (child.name.StartsWith("4")) { child.GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(statsMain[4])); } else if (child.name.StartsWith("5")) { child.GetChild(1).GetComponent <TextMeshProUGUI>().SetText(Utils.getModifier(statsMain[5])); } } }
public void SpawnPlayer(NetworkConnection conn) { //coords of current spawnPoint (from nextIndex counter) Transform listSpawnPoint = spawnPoints.ElementAtOrDefault(nextIndex); //if null, return if (listSpawnPoint == null) { return; } //Determine who the host is NetworkGamePlayerDND player = null; foreach (var gamer in networkManager.GamePlayers) { if (gamer.IsLeader) { player = gamer; break; } } //If conn is the HOST client spawn Host prefab, else spawn player prefab if (conn == player.connectionToClient) { //instantiate host prefab at 0,0,0 and then tie it to the host's client connection var playerInstance = Instantiate(hostPrefab, Vector3.zero, Quaternion.identity); playerInstance.name = "Host"; NetworkServer.Spawn(playerInstance, conn); } else { //instantiate player prefab at current spawnpoint location and then tie it to client connection var playerInstance = Instantiate(playerPrefab, spawnPoints[nextIndex].position, spawnPoints[nextIndex].rotation); string playerName = null; foreach (var gamer in networkManager.GamePlayers) { if (conn == gamer.connectionToClient) { playerName = gamer.GetDisplayName(); foreach (var sprite in allSprites) { if (gamer.icon == sprite.name) { playerInstance.GetComponent <SpriteRenderer>().sprite = sprite; break; } } } } playerInstance.transform.localScale = new Vector3(pathfinding.GetGrid().GetCellSize() / 5, pathfinding.GetGrid().GetCellSize() / 5, 1); NetworkServer.Spawn(playerInstance, conn); RpcUpdatePlayer(playerInstance, playerInstance.GetComponent <SpriteRenderer>().sprite.name, playerName); //increment counter nextIndex++; } }