/// <summary> /// Executa uma ação. /// Muda o estado do gerenciador. /// </summary> /// <param name="controller"> O controlador da máquina de estados. </param> public override void Act(StateController controller) { if (manager.active) { manager.Deactive(); } else { manager.Active(); } }
/// <summary> /// Carrega todas as skills ativas do heroi que está em seu turno no menu de skills. /// </summary> /// <param name="skills"> Lista com todas as skills do heroi. </param> public void UpdateSkillsContent(List <Skill> skills) { // Deleta todos os itens previamente alocados no content foreach (SkillElement element in skillsContent.GetComponentsInChildren <SkillElement>()) { Destroy(element.gameObject); } // Variável auxiliar para a ordenação dos itens AxisInteractableItem lastItem = null; // Passa por todas as skills da lista, adicionando as ativas no menu e as ordenando foreach (PlayerSkill skill in skills) { if (skill.active) { // Instancia um novo item e o coloca no content GameObject newSkill = Instantiate(skillObject, skillsContent); newSkill.GetComponent <SkillElement>().skill = skill; newSkill.GetComponent <Image>().sprite = skill.skillImage; // Define este script como responsável pelo item criado SkillListItem newSkillListItem = newSkill.GetComponent <SkillListItem>(); newSkillListItem.skillList = this; // Adiciona a decisão de clique no item criado ClickableItem newClickableItem = newSkill.GetComponent <ClickableItem>(); newClickableItem.BCD = clickDecision; // Adiciona a skill no item que a ativará SkillItem newSkillItem = newSkill.GetComponent <SkillItem>(); newSkillItem.skill = skill; // Ordena o item na lista AxisInteractableItem newItem = newSkill.GetComponent <AxisInteractableItem>(); if (lastItem != null) { newItem.upItem = lastItem; lastItem.downItem = newItem; } else { manager.firstItem = newItem; } lastItem = newItem; } } manager.Active(); }
/// <summary> /// Mostra detalhes da skill selecionada no menu. /// </summary> /// <param name="skill"> Skill para ser mostrada no menu. </param> public void UpdateSkillDescription(PlayerSkill skill) { // Mostra as informações básicas da skill skillNameText.text = skill.name; costText.text = skill.cost.ToString(); descriptionText.text = skill.shortDescription; elementImage.sprite = Icons.instance.elementSprites[(int)skill.attribute - 1]; targetTypeImage.sprite = Icons.instance.targetTypeSprites[(int)skill.target]; // Atualiza a lista de efeitos UpdateEffectsContent(skill.effects); effectsManager.Active(); }