public override void createSkillTree(){ base.createSkillTree(); iceShard = addSkillTreeNode(typeof(IceShardSkill), "Ice Shard", "...", nodePositions[3], IceShardModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(lightStorm, iceShard); }
public override void createSkillTree(){ base.createSkillTree(); holyLight = addSkillTreeNode(typeof(HolyLightSkill), "Holy Light", "...", nodePositions[3], HolyLightModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(lightStorm, holyLight); }
public override void createSkillTree(){ base.createSkillTree(); monkSpirit = addSkillTreeNode(typeof(Focus), "Monk Spirit", "...", nodePositions[3], MonkSpiritModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(cleave, monkSpirit); }
public override void createSkillTree(){ base.createSkillTree(); berserkRage = addSkillTreeNode(typeof(BerserkMode), "Berserker Rage", "...", nodePositions[3], BerserkerRageModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(cleave, berserkRage); }
public override void createSkillTree(){ base.createSkillTree(); knightStance = addSkillTreeNode(typeof(KnightsHonour), "Knights Honour", "...", nodePositions[3], KnightStanceModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(cleave, knightStance); }
public override void createSkillTree(){ base.createSkillTree(); windLance = addSkillTreeNode(typeof(CycloneSkill), "Wind Lance", "...", nodePositions[3], WindLanceModel.getImage()); // order: (parent, child) setSkillTreeNodeLinks(lightStorm, windLance); }
public void addNode(string[] text, float[] values, float[] scale, Sprite sprite, int count, SkillTreeNode[] array) { SkillTreeNode temp = Instantiate(button, new Vector2(), Quaternion.identity).GetComponent <SkillTreeNode>(); array[count] = temp; temp.setValues(text, values, scale, sprite); temp.transform.SetParent(container.transform, true); }
public void saveNodeData(SkillTreeNode node) { Tree tree = node.tree; SkillTree skillTree = tree as SkillTree; CharacterData data = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>().charData; // if it's a skill tree find the correct saved skill tree and update it if (skillTree) { List <CharacterData.SavedSkillTree> skillTrees = data.savedSkillTrees; foreach (CharacterData.SavedSkillTree sst in skillTrees) { if (sst.treeID == tree.treeID) { sst.unspentPoints = tree.unspentPoints; // look for the node in the dictionary foreach (StringIntPair pair in sst.nodesTaken) { if (pair.key == node.nodeID) { pair.value = node.pointsAllocated; return; } } // if the node has not been found in the dictionary add it sst.nodesTaken.Add(new StringIntPair(node.nodeID, node.pointsAllocated)); return; } } } // if it's not a skill tree update the character tree else { // initialise the character tree data if necessary if (data.savedCharacterTree == null) { data.savedCharacterTree = new CharacterData.SavedCharacterTree(tree.treeID, tree.unspentPoints, tree.unspentAxisPoints); } else { data.savedCharacterTree.treeID = tree.treeID; data.savedCharacterTree.unspentPoints = tree.unspentPoints; data.savedCharacterTree.unspentAxisPoints = tree.unspentAxisPoints; } // look for the node in the list foreach (StringIntPair pair in data.savedCharacterTree.nodesTaken) { if (pair.key == node.nodeID) { pair.value = node.pointsAllocated; return; } } // if the node has not been found in the dictionary add it data.savedCharacterTree.nodesTaken.Add(new StringIntPair(node.nodeID, node.pointsAllocated)); return; } }
// Update is called once per frame void Update() { GetComponent <Text>().text = ""; nodeUnderMouse = getNodeUnderMouse(); if (nodeUnderMouse != null) { GetComponent <Text>().text = nodeUnderMouse.nodeDescription; } }
//this is called when we click on a skill node void SkillSelected(SkillTreeNode skill) { //Apply the skill to the player selectedSkill = skill; selectedSkillText.text = "Selected Ability:\n" + selectedSkill.GetComponentInChildren <Text>().text; if (selectedSkill.bought) { findAndReplaceSkill(); } }
//assigns the feilds of infoOut to those of infoIn's skillTreeNode script public void setSkillsInfo(Skill infoOut, GameObject infoIn) { SkillTreeNode treeNode = infoIn.GetComponent <SkillTreeNode>(); infoOut.cost = treeNode.cost; infoOut.bought = treeNode.bought; infoOut.locked = treeNode.locked; infoOut.skillType = treeNode.skillType; infoOut.Script = treeNode.skillObject; infoOut.numberOfInvests = treeNode.numberOfInvests; infoOut.maxNumberOfInvests = treeNode.maxNumberOfInvests; }
//Select a node public void selectNode(SkillTreeNode input) { selected = input; references.setAll(selected.skillName, selected.skillDescription, selected.currentLevel, selected.maxLevel, getSkillPoints(), selected.sprite); if (!references.selectIcon.activeSelf) { references.selectIcon.SetActive(true); } references.selectIcon.transform.position = selected.transform.position; }
public override void createSkillTree(){ cleave = addSkillTreeNode(typeof(Cleave), "Cleave", "...", nodePositions[0], CleaveModel.getImage()); charge = addSkillTreeNode(typeof(Charge), "Charge", "...", nodePositions[1], ChargeModel.getImage()); sweep = addSkillTreeNode(typeof(SpinAttack), "Sweep", "...", nodePositions[2], HealModel.getImage()); cleave.makeAvailable(); // order: (parent, child) setSkillTreeNodeLinks(cleave, charge); setSkillTreeNodeLinks(cleave, sweep); }
public override void createSkillTree(){ fireball = addSkillTreeNode(typeof(FireballSkill), "Fireball", "Throw a fireball", nodePositions[0], FireballModel.getImage()); lightStorm = addSkillTreeNode(typeof(LightningStormSkill), "Lightning Storm", "...", nodePositions[1], LightningModel.getImage()); cyclone = addSkillTreeNode(typeof(CycloneSkill), "Cyclone", "...", nodePositions[2], HealModel.getImage()); fireball.makeAvailable(); // order: (parent, child) setSkillTreeNodeLinks(fireball, lightStorm); setSkillTreeNodeLinks(fireball, cyclone); }
public SkillTreeNode getNearestNode(Vector3 position) { SkillTreeNode nearestNode = SkillTreeNode.all[0]; float nearestDistance = float.MaxValue; float nodeDistance = 0f; foreach (SkillTreeNode node in SkillTreeNode.all) { if (node.transform.parent == transform.parent.parent) { nodeDistance = Vector3.Distance(node.transform.position, position); if (nodeDistance < nearestDistance) { nearestNode = node; nearestDistance = nodeDistance; } } } return(nearestNode); }
// Use this for initialization public void OnTreeOpen() { // get start and end nodes Rect rect = GetComponent <RectTransform>().rect; if (startNode == null || endNode == null) { if (rect.width > rect.height) { startNode = getNearestNode(new Vector3(transform.position.x, transform.position.y, transform.position.z)); endNode = getNearestNode(new Vector3(transform.position.x + 75, transform.position.y, transform.position.z)); } else { startNode = getNearestNode(new Vector3(transform.position.x, transform.position.y - 60, transform.position.z)); endNode = getNearestNode(new Vector3(transform.position.x, transform.position.y + 35, transform.position.z)); } } // set the requirement number based on one node's requirement of the other calculateRequirement(); }
protected void unlockSkill(SkillTreeNode s){ addSkillComponent(s.skillType); // probably not important, remove if not used (both lines) //SkillNode newSkill = new SkillNode(s.GetType(), s.skillName, s.skillDesc, s.position, s.icon); //player.unlockedSkills.Add(newSkill); }
protected void onSkillNodeHover(){ foreach(SkillTreeNode node in skillTree){ if(node.position.Contains(mousePositionInSkillTree())){ target = node; Debug.Log (target.skillName + " is av: " + target.isAvailable() + " is un: " + target.isUnlocked()); } } }
protected void setSkillTreeNodeLinks(SkillTreeNode parent, SkillTreeNode child){ parent.addChild(child); child.addParent(parent); }
protected SkillTreeNode addSkillTreeNode(System.Type skill, string name, string desc, Rect pos, Texture2D img){ SkillTreeNode skillTreeNode = new SkillTreeNode(skill, name, desc, pos, img); skillTree.Add(skillTreeNode); return skillTreeNode; }
private void CreateSkillTreeChainLightning() { SkillTreeNode chain1 = new SkillTreeNode("chain1", 10, 6, (float)0.2, "20% more damage. Cost: 10xp"); // first node of the chain tree. Gives +20%dmg SkillTreeNode chain2 = new SkillTreeNode("chain2", 10, 7, 1, "plus 1 bounce. Cost: 10xp"); // father is chain1. Gives +1bounce chain2.fathers.Add(chain1.id); SkillTreeNode chain3 = new SkillTreeNode("chain3", 10, 5, (float)-0.2, "-20% to cooldown. Cost: 10xp"); // father is chain1. Gives -20%cd chain3.fathers.Add(chain1.id); SkillTreeNode chain4 = new SkillTreeNode("chain4", 10, 6, (float)0.2, "20% more damage. Cost: 10xp"); // father is chain1. Gives +20%dmg chain4.fathers.Add(chain1.id); SkillTreeNode chain5 = new SkillTreeNode("chain5", 10, 6, (float)0.2, "20% more damage. Cost: 10xp"); // father is chain2. Gives +20%dmg chain5.fathers.Add(chain2.id); SkillTreeNode chain6 = new SkillTreeNode("chain6", 20, 7, 1, "plus 1 bounce. Cost: 20xp"); // father is chain3. Gives +1bounce chain6.fathers.Add(chain3.id); SkillTreeNode chain7 = new SkillTreeNode("chain7", 10, 6, (float)0.3, "30% more damage. Cost: 10xp"); // father is chain4. Gives +30%dmg chain7.fathers.Add(chain4.id); SkillTreeNode chain8 = new SkillTreeNode("chain8", 20, 5, (float)-0.2, "-20% to cooldown. Cost: 20xp"); // father is chain5. Gives -20%cd chain8.fathers.Add(chain5.id); SkillTreeNode chain9 = new SkillTreeNode("chain9", 10, 6, (float)0.2, "20% more damage. Cost: 10xp"); // father are chain5 and chain6. Gives +20%dmg chain9.fathers.Add(chain5.id); chain9.fathers.Add(chain6.id); SkillTreeNode chain10 = new SkillTreeNode("chain10", 10, 4, 5, "adds 5 to range. Cost: 10xp"); // father are chain6 and chain7. Gives +5range chain10.fathers.Add(chain6.id); chain10.fathers.Add(chain7.id); SkillTreeNode chain11 = new SkillTreeNode("chain11", 10, 7, 1, "plus 1 bounce. Cost: 10xp"); // father is chain7. Gives +1bounce chain11.fathers.Add(chain7.id); SkillTreeNode chain12 = new SkillTreeNode("chain12", 20, 4, 10, "adds 10 to range. Cost: 20xp"); // father are chain8 and chain9. Gives +10range chain12.fathers.Add(chain8.id); chain12.fathers.Add(chain9.id); SkillTreeNode chain13 = new SkillTreeNode("chain13", 20, 5, (float)-0.2, "-20% to cooldown. Cost: 20xp"); // father is chain10. Gives -20%cd chain13.fathers.Add(chain10.id); SkillTreeNode chain14 = new SkillTreeNode("chain14", 30, 7, 2, "plus 2 bounces. Cost: 30xp"); // father is chain11. Gives +2bounces chain14.fathers.Add(chain11.id); SkillTreeNode chain15 = new SkillTreeNode("chain15", 30, 4, 10, "adds 10 to range. Cost: 30xp"); // father is chain12. Gives +10range chain15.fathers.Add(chain12.id); SkillTreeNode chain16 = new SkillTreeNode("chain16", 50, 5, (float)-0.3, "-30% to cooldown. Cost: 50xp"); // father are chain12 and chain13. Gives -30%cd chain16.fathers.Add(chain12.id); chain16.fathers.Add(chain13.id); SkillTreeNode chain17 = new SkillTreeNode("chain17", 30, 6, (float)0.5, "50% more damage. Cost: 30xp"); // father are chain13 and chain14. Gives +50%dmg chain17.fathers.Add(chain13.id); chain17.fathers.Add(chain14.id); SkillTreeNode chain18 = new SkillTreeNode("chain18", 30, 6, (float)0.4, "40% more damage. Cost: 30xp"); // father is chain15. Gives +40%dmg chain18.fathers.Add(chain15.id); SkillTreeNode chain19 = new SkillTreeNode("chain19", 40, 6, (float)1, "100% more damage. Cost: 40xp"); // father are chain16 and chain17. Gives +100%dmg chain19.fathers.Add(chain16.id); chain19.fathers.Add(chain17.id); nodes.Add(chain1.id, chain1); nodes.Add(chain2.id, chain2); nodes.Add(chain3.id, chain3); nodes.Add(chain4.id, chain4); nodes.Add(chain5.id, chain5); nodes.Add(chain6.id, chain6); nodes.Add(chain7.id, chain7); nodes.Add(chain8.id, chain8); nodes.Add(chain9.id, chain9); nodes.Add(chain10.id, chain10); nodes.Add(chain11.id, chain11); nodes.Add(chain12.id, chain12); nodes.Add(chain13.id, chain13); nodes.Add(chain14.id, chain14); nodes.Add(chain15.id, chain15); nodes.Add(chain16.id, chain16); nodes.Add(chain17.id, chain17); nodes.Add(chain18.id, chain18); nodes.Add(chain19.id, chain19); }
public void AddChild(SkillTreeNode child) { children.Add(child); }
private void CreateSkillTreePoisonPuddle() { SkillTreeNode poison1 = new SkillTreeNode("poison1", 10, 10, (float)0.2, "20% more damage. Cost: 10xp"); // first node of the poison tree. Gives +20%dmg SkillTreeNode poison2 = new SkillTreeNode("poison2", 10, 9, (float)-0.2, "-20% to cooldown. Cost: 10xp"); // father is poison1. Gives -20%cd poison2.fathers.Add(poison1.id); SkillTreeNode poison3 = new SkillTreeNode("poison3", 10, 10, (float)0.3, "30% more damage. Cost: 10xp"); // father is poison1. Gives +30%dmg poison3.fathers.Add(poison1.id); SkillTreeNode poison4 = new SkillTreeNode("poison4", 10, 8, 5, "adds 5 to range. Cost: 10xp"); // father is poison1. Gives +5range poison4.fathers.Add(poison1.id); SkillTreeNode poison5 = new SkillTreeNode("poison5", 10, 9, (float)-0.1, "-10% to cooldown. Cost: 10xp"); // father is poison2. Gives -10%cd poison5.fathers.Add(poison2.id); SkillTreeNode poison6 = new SkillTreeNode("poison6", 10, 10, (float)0.2, "20% more damage. Cost: 10xp"); // father are poison2 and poison3. Gives +20%dmg poison6.fathers.Add(poison2.id); poison6.fathers.Add(poison3.id); SkillTreeNode poison7 = new SkillTreeNode("poison7", 10, 10, (float)0.3, "30% more damage. Cost: 10xp"); // father are poison3 and poison4. Gives +30%dmg poison7.fathers.Add(poison3.id); poison7.fathers.Add(poison4.id); SkillTreeNode poison8 = new SkillTreeNode("poison8", 20, 9, (float)-0.2, "-20% to cooldown. Cost: 20xp"); // father is poison4. Gives -20%cd poison8.fathers.Add(poison4.id); SkillTreeNode poison9 = new SkillTreeNode("poison9", 10, 8, 10, "adds 10 to range. Cost: 10xp"); // father is poison5. Gives +10range poison9.fathers.Add(poison5.id); SkillTreeNode poison10 = new SkillTreeNode("poison10", 30, 9, (float)-0.2, "-20% to cooldown. Cost: 30xp"); // father is poison6. Gives -20%cd poison10.fathers.Add(poison6.id); SkillTreeNode poison11 = new SkillTreeNode("poison11", 30, 11, (float)0.5, "1.5x more time active. Cost: 30xp"); // father are poison6 and poison7. Gives +50%ToE poison11.fathers.Add(poison6.id); poison11.fathers.Add(poison7.id); SkillTreeNode poison12 = new SkillTreeNode("poison12", 10, 10, (float)0.2, "20% more damage. Cost: 10xp"); // father are poison7 and poison8. Gives +20%dmg poison12.fathers.Add(poison7.id); poison12.fathers.Add(poison8.id); SkillTreeNode poison13 = new SkillTreeNode("poison13", 20, 11, (float)0.5, "1.5x more time active. Cost: 20xp"); // father is poison8. Gives +50%ToE poison13.fathers.Add(poison8.id); SkillTreeNode poison14 = new SkillTreeNode("poison14", 30, 10, (float)0.5, "50% more damage. Cost: 30xp"); // father is poison9. Gives +50%dmg poison14.fathers.Add(poison9.id); SkillTreeNode poison15 = new SkillTreeNode("poison15", 20, 10, (float)0.3, "30% more damage. Cost: 20xp"); // father are poison10 and poison11. Gives +30%dmg poison15.fathers.Add(poison10.id); poison15.fathers.Add(poison11.id); SkillTreeNode poison16 = new SkillTreeNode("poison16", 30, 8, 10, "adds 10 to range. Cost: 30xp"); // father is poison12. Gives +10range poison16.fathers.Add(poison12.id); SkillTreeNode poison17 = new SkillTreeNode("poison17", 30, 9, (float)-0.2, "-20% to cooldown. Cost: 30xp"); // father are poison14 and poison15. Gives -20%cd poison17.fathers.Add(poison14.id); poison17.fathers.Add(poison15.id); SkillTreeNode poison18 = new SkillTreeNode("poison18", 40, 10, (float)1, "100% more damage. Cost: 40xp"); // father are poison16 and poison17. Gives +100%dmg poison18.fathers.Add(poison16.id); poison18.fathers.Add(poison17.id); nodes.Add(poison1.id, poison1); nodes.Add(poison2.id, poison2); nodes.Add(poison3.id, poison3); nodes.Add(poison4.id, poison4); nodes.Add(poison5.id, poison5); nodes.Add(poison6.id, poison6); nodes.Add(poison7.id, poison7); nodes.Add(poison8.id, poison8); nodes.Add(poison9.id, poison9); nodes.Add(poison10.id, poison10); nodes.Add(poison11.id, poison11); nodes.Add(poison12.id, poison12); nodes.Add(poison13.id, poison13); nodes.Add(poison14.id, poison14); nodes.Add(poison15.id, poison15); nodes.Add(poison16.id, poison16); nodes.Add(poison17.id, poison17); nodes.Add(poison18.id, poison18); }
private void CreateSkillTreeFireBall() { SkillTreeNode fb1 = new SkillTreeNode("fb1", 10, 2, (float)0.2, "20% more damage. Cost: 10xp"); // first node of the fireball tree. Gives +20%dmg SkillTreeNode fb2 = new SkillTreeNode("fb2", 10, 0, 10, "adds 10 to range. Cost: 10xp"); // father is fb1. Gives +5range fb2.fathers.Add(fb1.id); SkillTreeNode fb3 = new SkillTreeNode("fb3", 10, 1, (float)-0.1, "-10% to cooldown. Cost: 10xp"); // father is fb1. Gives -10%cd fb3.fathers.Add(fb1.id); SkillTreeNode fb4 = new SkillTreeNode("fb4", 10, 2, (float)0.2, "20% more damage. Cost: 10xp"); // father is fb1. Gives +20%dmg fb4.fathers.Add(fb1.id); SkillTreeNode fb5 = new SkillTreeNode("fb5", 10, 2, (float)0.2, "20% more damage. Cost: 10xp"); // father is fb2. Gives +20%dmg fb5.fathers.Add(fb2.id); SkillTreeNode fb6 = new SkillTreeNode("fb6", 10, 1, (float)-0.2, "-20% to cooldown. Cost: 10xp"); // father is fb3. Gives -20%cd fb6.fathers.Add(fb3.id); SkillTreeNode fb7 = new SkillTreeNode("fb7", 10, 2, (float)0.2, "20% more damage. Cost: 10xp"); // father is fb4. Gives +20%dmg fb7.fathers.Add(fb4.id); SkillTreeNode fb8 = new SkillTreeNode("fb8", 20, 2, (float)0.5, "50% more damage. Cost: 20xp"); // father is fb5. Gives +50%dmg fb8.fathers.Add(fb5.id); SkillTreeNode fb9 = new SkillTreeNode("fb9", 20, 0, 10, "adds 10 to range. Cost: 20xp"); // father are fb5 and fb6. Gives +5range fb9.fathers.Add(fb5.id); fb9.fathers.Add(fb6.id); SkillTreeNode fb10 = new SkillTreeNode("fb10", 20, 2, (float)0.4, "40% more damage. Cost: 20xp"); // father are fb6 and fb7. Gives +40%dmg fb10.fathers.Add(fb6.id); fb10.fathers.Add(fb7.id); SkillTreeNode fb11 = new SkillTreeNode("fb11", 20, 3, 1, "plus 1 projectile. Cost: 20xp"); // father is fb7. Gives +1projectile fb11.fathers.Add(fb7.id); SkillTreeNode fb12 = new SkillTreeNode("fb12", 30, 1, (float)-0.2, "-20% to cooldown. Cost: 30xp"); // father are fb8 and fb9. Gives -20%cd fb12.fathers.Add(fb8.id); fb12.fathers.Add(fb9.id); SkillTreeNode fb13 = new SkillTreeNode("fb13", 40, 1, (float)-0.3, "-30% to cooldown. Cost: 40xp"); // father is fb12. Gives -30%cd fb13.fathers.Add(fb12.id); SkillTreeNode fb14 = new SkillTreeNode("fb14", 20, 2, (float)0.3, "30% more damage. Cost: 20xp"); // father are fb10 and fb12. Gives +30%dmg fb14.fathers.Add(fb10.id); fb14.fathers.Add(fb12.id); SkillTreeNode fb15 = new SkillTreeNode("fb15", 30, 0, 10, "adds 10 to range. Cost: 30xp"); // father are fb10 and fb11. Gives +5range fb15.fathers.Add(fb10.id); fb15.fathers.Add(fb11.id); SkillTreeNode fb16 = new SkillTreeNode("fb16", 30, 3, 1, "plus 1 projectile. Cost: 30xp"); // father is fb11. Gives +1projectile fb16.fathers.Add(fb11.id); SkillTreeNode fb17 = new SkillTreeNode("fb17", 40, 2, (float)1, "100% more damage. Cost: 40xp"); // father is fb14. Gives +100%dmg fb17.fathers.Add(fb14.id); nodes.Add(fb1.id, fb1); nodes.Add(fb2.id, fb2); nodes.Add(fb3.id, fb3); nodes.Add(fb4.id, fb4); nodes.Add(fb5.id, fb5); nodes.Add(fb6.id, fb6); nodes.Add(fb7.id, fb7); nodes.Add(fb8.id, fb8); nodes.Add(fb9.id, fb9); nodes.Add(fb10.id, fb10); nodes.Add(fb11.id, fb11); nodes.Add(fb12.id, fb12); nodes.Add(fb13.id, fb13); nodes.Add(fb14.id, fb14); nodes.Add(fb15.id, fb15); nodes.Add(fb16.id, fb16); nodes.Add(fb17.id, fb17); }
public void addParent(SkillTreeNode s){ parents.Add(s); }
public void addChild(SkillTreeNode s){ children.Add(s); }
// Use this for initialization void Start() { thisNode = GetComponent <SkillTreeNode>(); ToolTip.SetActive(false); }