void RpcCallbackAbilityMenu(Defs.PlayerClass retrievedClass, Vector3 retrievedUsedSlots, bool[] availableAbilities, int[] equippedAbilities) { if (isLocalPlayer) { UI_CharacterMenu.i.AbilityCallbackMenu(retrievedClass, retrievedUsedSlots, availableAbilities, equippedAbilities); } }
public void RpcMenuCallbackAbilitiesInfo(int retrievedSkillpoints, int level, float xp, float xpMax, Defs.PlayerClass retrievedClass, Vector3 retrievedUsedSlots) { if (isLocalPlayer) { UI_CharacterMenu.i.MenuCallbackAbilitiesInfo(retrievedSkillpoints, level, xp, xpMax, retrievedClass, retrievedUsedSlots); } }
public void AbilityCallbackMenu(Defs.PlayerClass playerClass, Vector3 usedSlots, bool[] unavailableAbilities, int[] equippedAbilities) { //Character characterMenu.alpha = 0; //Abilities abilityMenu.alpha = 1; abilityMenu.interactable = true; abilityMenu.blocksRaycasts = true; //Class abilityMenu.transform.GetChild(0).GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>().text = playerClass.ToString(); Vector3 availableSlots = PlayerCore.PlayerClassToSlots(playerClass); int workingIndex = 0; for (int red = 0; red < availableSlots.x; red++) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.red; if (red < usedSlots.x) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.red; } workingIndex++; } for (int blue = 0; blue < availableSlots.y; blue++) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.blue; if (blue < usedSlots.y) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.blue; } workingIndex++; } for (int green = 0; green < availableSlots.z; green++) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.green; if (green < usedSlots.z) { abilityMenu.transform.GetChild(0).GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.green; } workingIndex++; } //Abilities for (int count = 0; count < unavailableAbilities.Length; count++) { Transform target = abilityMenu.transform.GetChild(0).GetChild(2).GetChild(count).GetChild(0); if (unavailableAbilities[count]) { target.GetComponent <Image>().color = new Color(1, 1, 1, 0.3f); target.GetComponent <AbilityUpgradeSlot>().canUse = false; } else { target.GetComponent <Image>().color = Color.white; target.GetComponent <AbilityUpgradeSlot>().canUse = true; } } //ActionBar for (int count = 0; count < equippedAbilities.Length; count++) { Transform target = abilityMenu.transform.GetChild(0).GetChild(4).GetChild(count); if (equippedAbilities[count] == -1) { target.GetChild(0).GetComponent <Image>().sprite = abilityDefault; } else { target.GetChild(0).GetComponent <Image>().sprite = abilitySheet.contained[equippedAbilities[count]].image; target.GetChild(1).GetComponent <Animator>().SetTrigger("Ready"); } } }
public static Vector3 PlayerClassToSlots(Defs.PlayerClass playerClass) { int redSlots = 0; int blueSlots = 0; int greenSlots = 0; //Slots switch (playerClass) { case Defs.PlayerClass.Warrior: redSlots = 3; blueSlots = 1; greenSlots = 1; break; case Defs.PlayerClass.Commander: redSlots = 1; blueSlots = 3; greenSlots = 1; break; case Defs.PlayerClass.Scout: redSlots = 1; blueSlots = 1; greenSlots = 3; break; case Defs.PlayerClass.Colonel: redSlots = 2; blueSlots = 2; greenSlots = 1; break; case Defs.PlayerClass.Monk: redSlots = 2; blueSlots = 1; greenSlots = 2; break; case Defs.PlayerClass.Herald: redSlots = 1; blueSlots = 2; greenSlots = 2; break; case Defs.PlayerClass.Knight: redSlots = 3; blueSlots = 2; greenSlots = 0; break; case Defs.PlayerClass.Assassin: redSlots = 3; blueSlots = 0; greenSlots = 2; break; case Defs.PlayerClass.Sentinel: redSlots = 2; blueSlots = 3; greenSlots = 0; break; case Defs.PlayerClass.Strategist: redSlots = 0; blueSlots = 3; greenSlots = 2; break; case Defs.PlayerClass.Patrol: redSlots = 0; blueSlots = 2; greenSlots = 3; break; case Defs.PlayerClass.Hunter: redSlots = 2; blueSlots = 0; greenSlots = 3; break; } return(new Vector3(redSlots, blueSlots, greenSlots)); }
public void MenuCallbackAbilitiesInfo(int skillpoints, int level, float xp, float xpMax, Defs.PlayerClass playerClass, Vector3 usedSlots) { //Character characterMenu.alpha = 1; characterMenu.blocksRaycasts = true; characterMenu.interactable = true; //Class menuAbilities.transform.GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>().text = playerClass.ToString(); Vector3 availableSlots = PlayerCore.PlayerClassToSlots(playerClass); int workingIndex = 0; for (int red = 0; red < availableSlots.x; red++) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.red; if (red < usedSlots.x) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.red; } workingIndex++; } for (int blue = 0; blue < availableSlots.y; blue++) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.blue; if (blue < usedSlots.y) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.blue; } workingIndex++; } for (int green = 0; green < availableSlots.z; green++) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetComponent <Image>().color = Color.green; if (green < usedSlots.z) { menuAbilities.transform.GetChild(0).GetChild(workingIndex + 1).GetChild(0).GetComponent <Image>().color = Color.green; } workingIndex++; } //Level menuAbilitiesLevelFill.fillAmount = xp / xpMax; if (level != 5) { menuAbilitiesLevelText.text = "Level " + level + " (" + Mathf.Clamp(xp, 0, xpMax).ToString("F0") + " / " + xpMax.ToString("F0") + ")"; } else { menuAbilitiesLevelText.text = "Max Level"; } //Points if (skillpoints == 0) { menuAbilitiesAP.text = "<color=#787878>0"; } else { menuAbilitiesAP.text = "<color=yellow>" + skillpoints; } //Button if (skillpoints == 0) { menuAbilitiesLearn.interactable = false; } else { menuAbilitiesLearn.interactable = true; } }