| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class StatsScript : MonoBehaviour {
- public GameObject statsNames;
- public GameObject statsValues;
- public GameObject statsLinePrefab;
- private Text[] statsTextNames;
- private Text[] statsTextValues;
- private List<StatsLine> statLines;
- GameManagerScript gms;
- private void Start() {
- statLines = new List<StatsLine>();
- gms = GameObject.Find("GameManager").GetComponent<GameManagerScript>();
- CreateStandardStats();
- }
- private void CreateStandardStats() {
- StatsLine round = CreateStatLine();
- round.SetStatName("Round");
- round.SetStatValue("1");
- round.name = "roundStat";
- StatsLine lostQuestions = CreateStatLine();
- lostQuestions.SetStatName("Questions lost");
- lostQuestions.SetStatValue("0");
- lostQuestions.name = "questionsLost";
- StatsLine playerTitle = CreateStatLine();
- playerTitle.SetStatName("Players");
- playerTitle.SetStatValue("");
- playerTitle.MakeBold();
- statLines.Add(round);
- statLines.Add(lostQuestions);
- statLines.Add(playerTitle);
- }
- private StatsLine CreateStatLine() {
- GameObject slp = Instantiate(statsLinePrefab, new Vector2(0, 0), Quaternion.identity) as GameObject;
- StatsLine statLine = slp.GetComponent<StatsLine>();
- statLine.transform.SetParent(this.transform);
- return statLine;
- }
- public void AddPlayersToStats(List<KeyValuePair<string, int>> players) {
- foreach (KeyValuePair<string,int> player in players) {
- StatsLine p = CreateStatLine();
- p.SetStatName(player.Key);
- p.SetStatValue(player.Value.ToString());
- statLines.Add(p);
- }
- }
- private void AddTextComponent(GameObject parent, string text, bool alignCenter, int index) {
- GameObject playerHeaderGameObject = new GameObject();
- playerHeaderGameObject.transform.parent = parent.transform;
- Text newTextObject = playerHeaderGameObject.AddComponent<Text>();
- newTextObject.text = text;
- newTextObject.font = (Font)Resources.GetBuiltinResource(typeof(Font), "Arial.ttf");
- newTextObject.color = new Color32(50, 50, 50, 255);
- newTextObject.resizeTextForBestFit = true;
- newTextObject.resizeTextMinSize = 10;
- newTextObject.resizeTextMaxSize = 14;
- if (index >= 0) {
- newTextObject.name = "Player" + index;
- }
- if (alignCenter) {
- newTextObject.alignment = TextAnchor.MiddleCenter;
- }
- RectTransform rectTransform = newTextObject.GetComponent<RectTransform>();
- rectTransform.sizeDelta = new Vector2(0, 15);
- rectTransform.localPosition = new Vector3(0, 0, 0);
- rectTransform.localScale = new Vector3(1, 1, 1);
- }
- public void IncreaseRoundValue() {
- foreach (Text text in statsTextValues) {
- if (text.name.Equals("Stats Value Round")) {
- Int32.TryParse(text.text, out int round);
- round++;
- text.text = round.ToString();
- gms.GetDatabase().SetRoundValue(gms.GameId, round);
- break;
- }
- }
- }
- public void SetQuestionsInAnswerLine(string playerName, int count) {
- for (int i = 0; i < statsTextNames.Length; i++) {
- if (statsTextNames[i].text.Equals(playerName)) {
- statsTextValues[i].text = count.ToString();
- }
- }
- }
- }
|