/// <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();
     }
 }
Beispiel #2
0
        /// <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();
        }
Beispiel #3
0
        /// <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();
        }