Ejemplo n.º 1
0
    public void clicked()
    {
        UIBase uiBase = UIBase.instance;

        if (uiBase && uiBase.openSkillTrees.Count > 0)
        {
            SkillTree  openSkillTree = uiBase.openSkillTrees[0];
            GameObject player        = PlayerFinder.getPlayer();
            if (openSkillTree && player && player.GetComponent <SpecialisedAbilityList>())
            {
                // de-allocate all the nodes
                foreach (SkillTreeNode node in SkillTreeNode.all)
                {
                    if (node.tree == openSkillTree)
                    {
                        node.pointsAllocated = 0;
                        node.updateText();
                    }
                }
                // set unspent points to 1
                openSkillTree.unspentPoints = 1;
                // update the mutator now that the points are de-allocated
                openSkillTree.updateMutator();
                // despecialise the ability
                player.GetComponent <SpecialisedAbilityList>().DespecialiseAbility(openSkillTree.ability);
                // play a sound
                UISounds.playSound(UISounds.UISoundLabel.Despecialise);
                // update tooltip mana costs
                AbilityTooltip.updateManaCosts(openSkillTree.ability);
            }
            uiBase.closeSkillTrees();
            uiBase.closeSpecialisationSelection();
        }
    }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     tooltipAbility = gameObject.GetComponent <AbilityTooltip> ();
     player         = PlayerFinder.getPlayer();
     PlayerFinder.playerChangedEvent += ChangePlayer;
     if (player != null)
     {
         foreach (Transform child in transform)
         {
             if (child.name == "Sprite" && child.GetComponent <Image> ())
             {
                 icon        = child.GetComponent <Image> ();
                 icon.sprite = ability.abilitySprite;
             }
             else if (child.name == "Frame")
             {
             }
             else if (child.name == "Description")
             {
                 child.GetComponent <TextMeshProUGUI> ().text = ability.description;
             }
             else if (child.name == "SkillName")
             {
                 child.GetComponent <TextMeshProUGUI> ().text = ability.abilityName;
             }
             else if (child.name == "LevelRequirement")
             {
                 child.GetComponent <TextMeshProUGUI>().text = "" + levelRequirement;
             }
         }
     }
 }
Ejemplo n.º 3
0
 // Use this for initialization
 void Start()
 {
     player = PlayerFinder.getPlayer();
     PlayerFinder.playerChangedEvent += ChangePlayer;
     if (player != null)
     {
         playerMana    = player.GetComponent <BaseMana> ();
         playerCharges = player.GetComponent <ChargeManager> ();
     }
     tooltipAbility = GetComponent <AbilityTooltip> ();
     foreach (UIBarWithMaterial bar in GetComponentsInChildren <UIBarWithMaterial>())
     {
         //if (bar.name == "CooldownBar") { bar.currentFill = bar.maxFill; }
         //else
         if (bar.name == "OutOfMana")
         {
             outOfMana = bar;
         }
     }
     foreach (Image im in GetComponentsInChildren <Image>())
     {
         if (im.name == "Sprite")
         {
             icon = im;
         }
         if (im.name == "CooldownBar")
         {
             cooldownBar = im;
         }
     }
 }
Ejemplo n.º 4
0
 public void OnHoverEnter(BaseEventData baseEventData)
 {
     if (ability != null && ability.TooltipPrefab != null)
     {
         tooltip = Instantiate <AbilityTooltip>(ability.TooltipPrefab, transform);
         tooltip.SetAbility(ability);
     }
 }
Ejemplo n.º 5
0
 public void Awake()
 {
     tooltip                 = GameObject.FindGameObjectWithTag("Ability Tooltip").GetComponent <AbilityTooltip> ();
     cooldownFill            = gameObject.transform.GetChild(3).GetComponent <Image> ();
     apCost                  = gameObject.transform.GetChild(1).GetComponentInChildren <Text> ();
     abilityIcon             = gameObject.transform.GetChild(2).GetComponent <Image> ();
     cooldown                = gameObject.transform.GetChild(4).GetComponent <Text> ();
     abilityButton           = GetComponent <Button> ();
     cooldownFill.fillAmount = 0;
 }
Ejemplo n.º 6
0
    public void Clicked()
    {
        // return if the player has not specialised in this ability
        SkillTree skillTree = tree as SkillTree;

        if (skillTree)
        {
            if (!PlayerFinder.getPlayer().GetComponent <SpecialisedAbilityList>().abilities.Contains(skillTree.ability))
            {
                return;
            }
        }

        // check if there is a spare point and this is not at max points
        if ((nodeType == nodeRequirementType.axis && tree.unspentAxisPoints > 0) || (nodeType == nodeRequirementType.node && tree.unspentPoints > 0))
        {
            if (pointsAllocated < maxPoints || maxPoints < 0)
            {
                // if the requirements are met then allocate the point
                if (requirementsMet())
                {
                    pointsAllocated++;
                    if (nodeType == nodeRequirementType.node)
                    {
                        tree.unspentPoints--;
                    }
                    if (nodeType == nodeRequirementType.axis)
                    {
                        tree.unspentAxisPoints--;
                    }
                    tree.updateMutator();
                    updateText();
                    // play a sound
                    UISounds.playSound(UISounds.UISoundLabel.AllocateNode);
                    // update mana costs on tooltips
                    SkillTree st = tree as SkillTree;
                    if (st && st.ability)
                    {
                        AbilityTooltip.updateManaCosts(st.ability);
                    }
                    // update the node progression (for respeccing)
                    if (tree as CharacterTree)
                    {
                        SkillSavingManager.instance.pushToNodePogression(nodeID);
                    }
                }
            }
        }

        // save
        SkillSavingManager.instance.saveNodeData(this);
        PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>().SaveCharacterData();
    }
Ejemplo n.º 7
0
    // Use this for initialization
    void Start()
    {
        tooltipAbility = gameObject.GetComponent <AbilityTooltip> ();
        player         = PlayerFinder.getPlayer();
        PlayerFinder.playerChangedEvent += ChangePlayer;

        if (skillTree == null)
        {
            foreach (SkillTree tree in SkillTree.all)
            {
                if (tree.ability == ability)
                {
                    skillTree = tree;
                }
            }
        }

        if (player != null)
        {
            foreach (Transform child in transform)
            {
                if (child.name == "Sprite" && child.GetComponent <Image> ())
                {
                    icon        = child.GetComponent <Image> ();
                    icon.sprite = ability.abilitySprite;
                }
                else if (child.name == "Frame")
                {
                }
                else if (child.name == "Description")
                {
                    child.GetComponent <TextMeshProUGUI> ().text = ability.description;
                }
                else if (child.name == "SkillName")
                {
                    child.GetComponent <TextMeshProUGUI> ().text = ability.abilityName;
                }
                else if (child.name == "HasTree")
                {
                    hasTree = child.gameObject;
                    if (!skillTree)
                    {
                        hasTree.SetActive(false);
                    }
                }
            }
        }
    }
Ejemplo n.º 8
0
    public override void updateChargesDisplay(int abilityNumber)
    {
        float _charges = charges[abilityNumber];

        // update the charges
        containers[abilityNumber].updateCharges((int)charges[abilityNumber]);
        // update the cooldown bar
        if (_charges > 0 && _charges <= 1)
        {
            icons[abilityNumber].cooldownBar.fillAmount = 1 - _charges;
        }
        else if (icons[abilityNumber].cooldownBar)
        {
            icons[abilityNumber].cooldownBar.fillAmount = 0;
        }
        // update tooltips
        AbilityTooltip.updateAllManaCosts();
    }
Ejemplo n.º 9
0
 // Use this for initialization
 void Start()
 {
     tooltipAbility = gameObject.GetComponent <AbilityTooltip>();
     foreach (Transform child in transform)
     {
         if (child.name == "Sprite" && child.GetComponent <Image>())
         {
             icon        = child.GetComponent <Image>();
             icon.sprite = ability.abilitySprite;
         }
         else if (child.name == "Frame")
         {
         }
         else if (child.name == "SkillName")
         {
             child.GetComponent <TextMeshProUGUI>().text = ability.abilityName;
         }
     }
 }
 // Use this for initialization
 void Start()
 {
     specialisationPanelmanager = SpecialisationPanelManager.instance;
     tooltipAbility             = gameObject.GetComponent <AbilityTooltip>();
     player = PlayerFinder.getPlayer();
     PlayerFinder.playerChangedEvent += ChangePlayer;
     foreach (Transform child in transform)
     {
         if (child.name == "Sprite" && child.GetComponent <Image>())
         {
             icon        = child.GetComponent <Image>();
             icon.sprite = ability.abilitySprite;
         }
         else if (child.name == "Frame")
         {
         }
         else if (child.name == "SkillName")
         {
             child.GetComponent <TextMeshProUGUI>().text = ability.abilityName;
         }
     }
 }