private void showCharacter(Goblin c) { Open(); levelUpScreen.Close(); character = c; PlayerController.FollowGoblin = c; foreach (var generatedObject in generatedObjects) { Destroy(generatedObject); } generatedObjects.Clear(); Name.text = c.name; var lvl = Goblin.GetLevel((int)c.Xp); ClassLevelText.text = "Level " + lvl + " " + ClassName(c.ClassType); ClassLevelText.GetComponent <OnValueHover>().Class = c.ClassType; //ClassLevelText.gameObject.SetActive(!c.WaitingOnClassSelection || !c.Alive()); //ClassSelectionHolder.SetActive(c.WaitingOnClassSelection && c.Alive()); levelUpButton.interactable = c.WaitingOnLevelup(); if (c.WaitingOnLevelup())//LevelUps > 0 || c.WaitingOnClassSelection) { XpTextEntry.Value.text = "LVL up"; XpTextEntry.FillImage.fillAmount = 1; levelUpButton.interactable = true; } else { XpTextEntry.Value.text = c.Xp.ToString("F0") + "\n - \n" + Goblin.LevelCaps[lvl]; XpTextEntry.FillImage.fillAmount = c.Xp / Goblin.LevelCaps[lvl]; } HealthTextEntry.Value.text = c.Health + "\n - \n" + c.HEA.GetStatMax(); HealthTextEntry.FillImage.fillAmount = c.Health / (float)c.HEA.GetStatMax(); //HealthTextEntry.ValueHover.Stat = c.HEA; ClassIcon.sprite = c.Alive() ? GameManager.GetClassImage(c.ClassType): GameManager.GetIconImage(GameManager.Icon.Dead); ClassIcon.GetComponent <OnValueHover>().Class = c.ClassType; //TODO: update current stats instead replacing foreach (var stat in c.Stats.Values) { var entry = Instantiate(StatEntry, StatEntry.transform.parent); var val = stat.GetStatMax(); entry.Name.text = stat.Type.ToString(); entry.Value.text = val.ToString(); var style = val > 3 ? FontStyles.Bold : FontStyles.Normal; var color = val > 3 ? entry.HighStatColor : val < 3 ? entry.LowStatColor : entry.Value.color; entry.Value.color = color; entry.Name.fontStyle = entry.Value.fontStyle = style; entry.gameObject.SetActive(true); entry.ValueHover.Stat = stat; generatedObjects.Add(entry.gameObject); } //TODO: update current stats instead replacing foreach (var equipment in c.Equipped.Values.Where(v => v)) { var entry = Instantiate(EquipmentInfo, EquipmentInfo.transform.parent); entry.text = equipment.EquipLocation + ": " + equipment.name; entry.gameObject.SetActive(true); var hover = entry.GetComponent <OnValueHover>(); if (hover) { hover.ShowEquipment = true; hover.Equipment = equipment; } generatedObjects.Add(entry.gameObject); } }