Example #1
0
		public static SkillTree ParseSkillTree(string filepath) {
			SkillTree tree = new SkillTree();

			SkillTreeJob job = null;
			SkillTreeJobSkill skill = null;
			using (XmlReader xml = XmlReader.Create(filepath)) {
				while (xml.Read() == true) {
					if (xml.NodeType != XmlNodeType.Element) {
						continue;
					}
					string name = xml.Name;

					if (name == "Job") {
						if (job != null) {
							if (skill != null) {
								job.Add(skill.ID, skill);
								skill = null;
							}

							tree.Add(job.ID, job);
							job = null;
						}

						job = new SkillTreeJob {
							ID = int.Parse(xml.GetAttribute("ID"))
						};
					} else if (name == "Skill") {
						if (skill != null) {
							job.Add(skill.ID, skill);
							skill = null;
						}

						skill = new SkillTreeJobSkill {
							ID = int.Parse(xml.GetAttribute("ID")),
							MaxLevel = int.Parse(xml.GetAttribute("Max")),
							JobLevel = int.Parse(xml.GetAttribute("MinLv"))
						};
					} else if (name == "Require") {
						SkillTreeJobSkillRequirement r = new SkillTreeJobSkillRequirement {
							ID = int.Parse(xml.GetAttribute("ID")),
							Level = int.Parse(xml.GetAttribute("Level"))
						};
						skill.Add(r.ID, r);
					}

				} // while

				// Add last skill to last job
				if (job != null && skill != null) {
					job.Add(skill.ID, skill);
				}
				// Add last job to tree
				if (job != null) {
					tree.Add(job.ID, job);
				}
			} // using


			return tree;
		}
Example #2
0
    //AudioSource audio;
    void Start()
    {
        player = GameObject.FindWithTag ("Player");

        skill = player.GetComponent<SkillTree >();

        Destroy(gameObject, 2f);
    }
Example #3
0
    void Start()
    {
        player = this.gameObject;

        stat = player.GetComponent<StatCollectionClass >();

        skill = player.GetComponent<SkillTree >();

        quest = player.GetComponent<All_Quests> ();

        item = player.GetComponent<ItemGUI>();
    }
Example #4
0
    void Start()
    {
        player = this.gameObject;

        stat = player.GetComponent<StatCollectionClass >();

        skill = player.GetComponent<SkillTree >();

        quest = player.GetComponent<All_Quests> ();

        ps = player.GetComponent<PlayerStateGUI>();

        up = player.GetComponent<ItemUpgrade> ();
    }
        /// <summary>
        /// Constructs a new SettingsViewModel that operates on the given skill tree.
        /// </summary>
        /// <param name="tree">The skill tree to operate on. (not null)</param>
        /// <param name="dialogCoordinator"></param>
        public SettingsViewModel(SkillTree tree, ISettingsDialogCoordinator dialogCoordinator)
        {
            Tree = tree;
            _dialogCoordinator = dialogCoordinator;

            SelectedTabIndex = new LeafSetting <int>(nameof(SelectedTabIndex), 0);

            Action <GeneratorTabViewModel> runCallback = async g => await RunAsync(g);

            Tabs = new ObservableCollection <GeneratorTabViewModel>
            {
                new SteinerTabViewModel(Tree, _dialogCoordinator, this, runCallback),
                new AdvancedTabViewModel(Tree, _dialogCoordinator, this, runCallback),
                new AutomatedTabViewModel(Tree, _dialogCoordinator, this, runCallback)
            };
            SubSettings = new ISetting[] { SelectedTabIndex }.Union(Tabs).ToArray();
        }
Example #6
0
    public static SkillTree CreateSupportTree()
    {
        SkillTree tree = new SkillTree();

        tree.levelList[0].skillList.Add(SkillData.instance.universalSkillList[Commands.FirstAid]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.Medicine]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.Revive]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.AccuracyBuff]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.DefenceBuff]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.AllyActionBoost]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.Motivate]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.HealArea]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.AbsorbShield]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.Distraction]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.GroupBuff]);
        return(tree);
    }
Example #7
0
    public static SkillTree CreateDefenseTree()
    {
        SkillTree tree = new SkillTree();

        tree.levelList[0].skillList.Add(SkillData.instance.universalSkillList[Commands.Defend]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.Counter]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.Recover]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.Push]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.Taunt]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.Stun]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.ShieldAlly]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.SmokeBomb]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.NapalmBarricade]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.NuclearBlood]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.Angst]);
        return(tree);
    }
Example #8
0
    public static SkillTree CreateOffenseTree()
    {
        SkillTree tree = new SkillTree();

        tree.levelList[0].skillList.Add(SkillData.instance.universalSkillList[Commands.AllOrNothing]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.SureHit]);
        tree.levelList[1].skillList.Add(SkillData.instance.universalSkillList[Commands.AllAroundAttack]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.Storm]);
        tree.levelList[2].skillList.Add(SkillData.instance.universalSkillList[Commands.Grenade]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.FinishingAttack]);
        tree.levelList[3].skillList.Add(SkillData.instance.universalSkillList[Commands.AimedAttack]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.BattleShout]);
        tree.levelList[4].skillList.Add(SkillData.instance.universalSkillList[Commands.TripleAttack]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.ActionBoost]);
        tree.levelList[5].skillList.Add(SkillData.instance.universalSkillList[Commands.Lifesteal]);
        return(tree);
    }
Example #9
0
        public void PersistSkillTree()
        {
            ResponseCache.Clear();
            SkillTree skillTree = EveApi.GetSkillTree();

            ResponseCache.Save("ResponseCache.xml");
            ResponseCache.Clear();
            ResponseCache.Load("ResponseCache.xml");
            SkillTree cached = EveApi.GetSkillTree();

            Assert.AreEqual(skillTree.CachedUntilLocal, cached.CachedUntilLocal);

            // Skill Groups
            for (int i = 0; i < skillTree.SkillGroups.Length; i++)
            {
                Assert.AreEqual(skillTree.SkillGroups[i].GroupName, cached.SkillGroups[i].GroupName);
                Assert.AreEqual(skillTree.SkillGroups[i].GroupId, cached.SkillGroups[i].GroupId);
            }

            // Skills
            for (int i = 0; i < skillTree.Skills.Length; i++)
            {
                SkillTree.Skill skill  = skillTree.Skills[i];
                SkillTree.Skill cskill = cached.Skills[i];

                Assert.AreEqual(skill.TypeName, cskill.TypeName);
                Assert.AreEqual(skill.GroupId, cskill.GroupId);
                Assert.AreEqual(skill.TypeId, cskill.TypeId);
                Assert.AreEqual(skill.Description, cskill.Description);
                Assert.AreEqual(skill.Rank, cskill.Rank);
                Assert.AreEqual(skill.PrimaryAttribute, cskill.PrimaryAttribute);
                Assert.AreEqual(skill.SecondaryAttribute, cskill.SecondaryAttribute);

                for (int j = 0; j < skill.RequiredSkills.Length; j++)
                {
                    Assert.AreEqual(skill.RequiredSkills[j].TypeId, cskill.RequiredSkills[j].TypeId);
                    Assert.AreEqual(skill.RequiredSkills[j].SkillLevel, cskill.RequiredSkills[j].SkillLevel);
                }

                for (int j = 0; j < skill.SkillBonuses.Length; j++)
                {
                    Assert.AreEqual(skill.SkillBonuses[j].BonusType, cskill.SkillBonuses[j].BonusType);
                    Assert.AreEqual(skill.SkillBonuses[j].BonusType, cskill.SkillBonuses[j].BonusType);
                }
            }
        }
Example #10
0
        public OptimizerControllerWindow(SkillTree tree, HashSet <ushort> targetNodes, HashSet <ushort> nodesToOmit = null)
        {
            InitializeComponent();
            this.tree        = tree;
            steinerSolver    = new SteinerSolver(tree);
            this.targetNodes = targetNodes;
            this.nodesToOmit = nodesToOmit;

            initializationWorker.DoWork             += initializationWorker_DoWork;
            initializationWorker.RunWorkerCompleted += initializationWorker_RunWorkerCompleted;

            solutionWorker.DoWork                    += solutionWorker_DoWork;
            solutionWorker.ProgressChanged           += solutionWorker_ProgressChanged;
            solutionWorker.RunWorkerCompleted        += solutionWorker_RunWorkerCompleted;
            solutionWorker.WorkerReportsProgress      = true;
            solutionWorker.WorkerSupportsCancellation = true;
        }
 // Start is called before the first frame update
 void Start()
 {
     anim.SetBool("isDying", false);
     stats            = (Stats)GameObject.Find("Stats").GetComponent("Stats");
     skillTree        = (SkillTree)GameObject.Find("SkillTree").GetComponent("SkillTree");
     rb               = GetComponent <Rigidbody>();
     initialPosition  = transform.position;
     minPosition      = new Vector3(initialPosition.x - maxMovementRange, initialPosition.y, initialPosition.z);
     maxPosition      = new Vector3(initialPosition.x + maxMovementRange, initialPosition.y, initialPosition.z);
     damageController = this.GetComponent <DamageController>();
     targetPlayer     = GameObject.FindGameObjectWithTag("Player").GetComponent <Transform>();
     InvokeRepeating(nameof(EnableAttack), 0f, 3f);
     if (summonedUnit && summoner != null)
     {
         summoner.enemiesAlive += summonValor;
     }
 }
    public SkillTree GetSkillTree(string skillTreeName)
    {
        SkillTree foundSkillTree = null;
        int       index          = 0;

        do
        {
            SkillTree temp = m_skillTrees[index];
            if (temp.GetSkillTreeName() == skillTreeName)
            {
                foundSkillTree = temp;
            }
            ++index;
        } while (foundSkillTree == null && index < m_skillTrees.Count - 1);

        return(foundSkillTree);
    }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            //RenderTarget2D target = new RenderTarget2D(GraphicsDevice, 1024, 576);
            //GraphicsDevice.SetRenderTarget(target);
            Text.loadContent(Content);
            Button.LoadContent(Content);
            MainMenu.loadContent(Content);
            MenuBoss.LoadContent(Content);
            //UpgradeMenu.loadContent(Content);

            PartyManager.Init();
            Resources.Init();
            SkillTree.LoadContent(Content);
            //SkillTree.Init();


            Character.load_content(Content);
            AnimatedEffect.LoadContent(Content);
            Status.LoadContent(Content);
            BattleManager.LoadContent(Content);
            SkillTree.LoadContent(Content);
            UpgradeMenu.loadContent(Content);
            LairManager.loadContent(Content);

            Menu_Song                   = Content.Load <SoundEffect>("Sounds/Epic_Loop");
            Menu_Song_Instance          = Menu_Song.CreateInstance();
            Menu_Song_Instance.IsLooped = true;
            Menu_Song_Instance.Volume   = .1f;

            Battle_Song                   = Content.Load <SoundEffect>("Sounds/VGameTune");
            Battle_Song_Instance          = Battle_Song.CreateInstance();
            Battle_Song_Instance.IsLooped = true;
            Battle_Song_Instance.Volume   = .1f;

            Main_Song                   = Content.Load <SoundEffect>("Sounds/LingeringChip");
            Main_Song_Instance          = Main_Song.CreateInstance();
            Main_Song_Instance.IsLooped = true;
            Main_Song_Instance.Volume   = .3f;
            //both songs have no duration

            EndGameText = new Text("And So,\n\nThrough much perserverence\nand a low interest mortgage\nour boss was finally\n\nLeft Alone.",
                                   new Vector2(300, 200), Text.fonts["6809Chargen-24"], Color.Cyan);
        }
	// Use this for initialization
	void Start () {
		skillTreeHandler = this;
		if(!loadSkillsFromDisk()) {
			skilltree = new SkillTree();
		} else {
			skilltree = GameSave.current.skilltree;
		}
		/*for(int a=0;a!=transform.childCount;++a) {
			SkillButton button = transform.GetChild(a).GetComponent<SkillButton>();
			for(int b=0;b!=skilltree.skillLevel;++b) {
				if(skilltree.skills[b].skillType == button.skillType) {
					button.skillCount = skilltree.skills[b].skillCount;
					button.LoadedClick();
					break;
				}
			}
		}*/
	}
Example #15
0
    /// <summary>
    /// Generates a simple text output containing the total XP and
    /// level for each skill in the given skilltree
    /// </summary>
    /// <param name="skilltree"></param>
    /// <returns></returns>
    private string GenerateSkillTreeText(SkillTree skilltree)
    {
        //Init empty string for skill tree
        string st = "";

        //Iterate each skill
        foreach (Skills skill in MiscUtils.GetValues <Skills>())
        {
            //Get the relevent Skill object from the skill tree
            Skill curSkill = skilltree.GetSkill(skill);
            //Create skill information
            st += "<b>" + curSkill.Name + "</b>\n";
            st += "    Current XP: " + curSkill.GetXP() + "\n";
            st += "    Current Level: " + curSkill.GetLevel() + "\n\n";
        }

        return(st);
    }
Example #16
0
    // Update is called once per frame
    void Update()
    {
        if (ability != null)           //TODO probably move for performance
        {
            tooltipAbility.SetAbility(ability);
        }

        if (skillTree == null)
        {
            foreach (SkillTree tree in SkillTree.all)
            {
                if (tree.ability == ability)
                {
                    skillTree = tree;
                }
            }
        }
    }
Example #17
0
        public async Task GetPointCountTest()
        {
            var build     = _builds.FindByName("PoeplannerWitchOccultistAscendant");
            var targetUrl = build.GetAlternativeUrl("pathofexileWindowed");

            // Need instance created in current thread for a WPF UI logic
            SkillTree.ClearAssets();
            SkillTree tree = await SkillTree.CreateAsync(_persistentData);

            tree.LoadFromUrl(targetUrl);

            var deserializer = _tree.BuildConverter.GetUrlDeserializer(targetUrl);

            var points = tree.GetPointCount();
            var count  = points["NormalUsed"] + points["AscendancyUsed"] + points["ScionAscendancyChoices"];

            Assert.AreEqual(count, deserializer.GetPointsCount(true));
        }
        /// <summary>
        /// Constructs a new SettingsViewModel that operates on the given skill tree.
        /// </summary>
        /// <param name="tree">The skill tree to operate on. (not null)</param>
        /// <param name="persistentData"></param>
        /// <param name="dialogCoordinator"></param>
        /// <param name="dialogContext">The context used for <paramref name="dialogCoordinator"/>.</param>
        public SettingsViewModel(SkillTree tree, IPersistentData persistentData, ISettingsDialogCoordinator dialogCoordinator, object dialogContext)
        {
            Tree = tree;
            _dialogCoordinator = dialogCoordinator;
            _dialogContext     = dialogContext;

            SelectedTabIndex = new LeafSetting <int>(nameof(SelectedTabIndex), 0);

            async void RunCallback(GeneratorTabViewModel g) => await RunAsync(g);

            Tabs = new ObservableCollection <GeneratorTabViewModel>
            {
                new SteinerTabViewModel(Tree, _dialogCoordinator, _dialogContext, RunCallback),
                new AdvancedTabViewModel(Tree, persistentData, _dialogCoordinator, _dialogContext, RunCallback),
                new AutomatedTabViewModel(Tree, _dialogCoordinator, _dialogContext, RunCallback)
            };
            SubSettings = new ISetting[] { SelectedTabIndex }.Union(Tabs).ToArray();
        }
Example #19
0
    public SkillTree GetTree(SkillType sT)
    {
        SkillTree result = null;

        switch (sT)
        {
        case SkillType.Illusion: result = IllusionTree; break;

        case SkillType.Conjuration: result = ConjurationTree; break;

        case SkillType.Destruction: result = DestructionTree; break;

        case SkillType.Restoration: result = RestorationTree; break;

        case SkillType.Alteration: result = AlterationTree; break;

        case SkillType.Enchanting: result = EnchantingTree; break;

        case SkillType.Smithing: result = SmithingTree; break;

        case SkillType.HeavyArmor: result = HeavyArmorTree; break;

        case SkillType.Block: result = BlockTree; break;

        case SkillType.Twohanded: result = TwohandedTree; break;

        case SkillType.Onehanded: result = OnehandedTree; break;

        case SkillType.Marksman: result = MarksmanTree; break;

        case SkillType.LightArmor: result = LightArmorTree; break;

        case SkillType.Sneak: result = SneakTree; break;

        case SkillType.Lockpicking: result = LockpickingTree; break;

        case SkillType.Pickpocket: result = PickpocketTree; break;

        case SkillType.Speechcraft: result = SpeechcraftTree; break;

        case SkillType.Alchemy: result = AlchemyTree; break;
        }
        return(result);
    }
Example #20
0
    private static void InitTrees()
    {
        //Create all possible skill trees//
        trees = new SkillTree[CharacterData.NumClasses * 3];
        nodes = new SkillNode[skills.Length];

        //Warrior Skill Trees//
        //Skill Tree names not final//
        trees[0] = new SkillTree(0, CharacterData.warrior, "Knight");
        //Add Skills//

        //Barbarian is my scapegoat for testing//
        trees[1] = new SkillTree(1, CharacterData.warrior, "Barbarian");
        nodes[0] = new SkillNode(1, null, 1, skills[0]);
        nodes[1] = new SkillNode(2, new int[] { 0 }, 5, skills[1]);
        nodes[2] = new SkillNode(3, new int[] { 1 }, 10, skills[2]);

        trees[1].AddSkills(new int[] { 0, 1, 2 });

        trees[2] = new SkillTree(2, CharacterData.warrior, "Spellsword");
        //Add Skills//


        //Wizard Skill Trees//
        trees[3] = new SkillTree(3, CharacterData.wizard, "Battlemage");
        //Add Skills//

        trees[4] = new SkillTree(4, CharacterData.wizard, "Archmage");
        //Add Skills//

        trees[5] = new SkillTree(5, CharacterData.wizard, "Sorcerer");
        //Add Skills//


        //Thief Skill Trees//
        trees[6] = new SkillTree(6, CharacterData.thief, "Assassin");
        //Add Skills//

        trees[7] = new SkillTree(7, CharacterData.thief, "Bandit");
        //Add Skills//

        trees[8] = new SkillTree(8, CharacterData.thief, "Ninja");
        //Add Skills//
    }
Example #21
0
        public async Task SaveToUrlTest()
        {
            var build     = _builds.FindByName("PoeplannerWitchOccultistAscendant");
            var targetUrl = build.GetAlternativeUrl("pathofexileWindowed");

            string expectedUrl = targetUrl.Split('/').LastOrDefault();

            // Need instance created in current thread for a WPF UI logic
            SkillTree.ClearAssets();
            SkillTree tree = await SkillTree.CreateAsync(_persistentData);

            tree.LoadFromUrl(targetUrl);

            var actualUrl = tree.Serializer.ToUrl().Split('/').LastOrDefault();

            Assert.AreEqual(expectedUrl, actualUrl);

            SkillTree.ClearAssets();
        }
Example #22
0
        public async Task SaveToUrlNoAscendancyPointsTest()
        {
            var build     = _builds.FindByName("PathofexilWitchOccultist");
            var targetUrl = build.DefaultUrl;

            string expectedSegment = targetUrl.Split('/').LastOrDefault();

            // Need new instance created in current thread for a WPF UI logic
            SkillTree.ClearAssets();
            SkillTree tree = await SkillTree.CreateAsync(_persistentData);

            tree.LoadFromUrl(targetUrl);

            var actualSegment = tree.Serializer.ToUrl().Split('/').LastOrDefault();

            Assert.AreEqual(expectedSegment, actualSegment);

            SkillTree.ClearAssets();
        }
Example #23
0
 private void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Debug.LogError("Duplicate " + this.GetType().Name);
         Destroy(gameObject);
     }
     upgrades = content.GetComponentsInChildren <UpgradeInstance>().ToList();
     rims     = new List <Image>();
     InitializeUpgrades();
     upgrades[1].SetCanBeApplied(true);
     upgrades[3].SetCanBeApplied(true);
     upgrades[5].SetCanBeApplied(true);
     gameObject.SetActive(false);
 }
        private void SkillList_Click(object sender, EventArgs e)
        {
            newToolStripMenuItem4.HideDropDown();
            try
            {
                // Make sure that if the class was changed, the new skill list is loaded
                if (lastClass != CurrentWSG.Class)
                {
                    DoSkillList();
                }

                // Look up the name of the selected skill from its display text
                string skillName = SkillsAllXml.XmlReadAssociatedValue("Name", "SkillName", (string)SkillList.SelectedItem);
                if (skillName == "")
                {
                    skillName = (string)SkillList.SelectedItem;
                }

                // If the skill is already in the tree, just select it and do nothing
                TreeNodeAdv skillNode = SkillTree.FindFirstNodeByTag(skillName, false);
                if (skillNode != null)
                {
                    SkillTree.SelectedNode = skillNode;
                    return;
                }

                // Add enough room for the new skill in each of the skill arrays
                CurrentWSG.NumberOfSkills = CurrentWSG.NumberOfSkills + 1;
                Util.ResizeArrayLarger(ref CurrentWSG.SkillNames, CurrentWSG.NumberOfSkills);
                Util.ResizeArrayLarger(ref CurrentWSG.LevelOfSkills, CurrentWSG.NumberOfSkills);
                Util.ResizeArrayLarger(ref CurrentWSG.ExpOfSkills, CurrentWSG.NumberOfSkills);
                Util.ResizeArrayLarger(ref CurrentWSG.InUse, CurrentWSG.NumberOfSkills);

                // Set the data for the new skill.
                int index = CurrentWSG.NumberOfSkills - 1;
                CurrentWSG.InUse[index]         = -1;
                CurrentWSG.LevelOfSkills[index] = 0;
                CurrentWSG.ExpOfSkills[index]   = 01;
                CurrentWSG.SkillNames[CurrentWSG.NumberOfSkills - 1] = skillName;
                DoSkillTree();
            }
            catch { MessageBox.Show("Could not add new Skill."); }
        }
Example #25
0
    public void SaveSkillTree()
    {
        // We fill with as many skills as nodes we have
        SkillTree skillTree = new SkillTree();

        skillTree.skilltree = new Skill[_skillTree.Length];
        for (int i = 0; i < _skillTree.Length; ++i)
        {
            _skills.TryGetValue(_skillTree[i].id_Skill, out _skillInspected);
            if (_skillInspected != null)
            {
                skillTree.skilltree[i] = _skillInspected;
            }
        }

        string json = JsonUtility.ToJson(skillTree);

        PlayerPrefs.SetString("SkillTree", json);
    }
Example #26
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>())
            {
                player.GetComponent <SpecialisedAbilityList>().SpecialiseIfThereIsAFreeSlot(openSKillTree.ability);
                // play a sound
                UISounds.playSound(UISounds.UISoundLabel.Specialise);
            }
            uiBase.closeSkillTrees();
            openSKillTree.open();
            uiBase.closeSpecialisationSelection();
        }
    }
Example #27
0
        public static void ClassInitialize(TestContext testContext)
        {
            if (ItemDB.IsEmpty())
            {
                ItemDB.Load("Data/ItemDB/GemList.xml", true);
            }
            _persistentData = new BarePersistentData {
                CurrentBuild = new PoEBuild()
            };
            _persistentData.EquipmentData = EquipmentData.CreateAsync(_persistentData.Options).Result;

            _builds = TestBuildUrlLoader.LoadFromXmlFile("../../TestBuilds/BuildUrls.xml");
            _builds.AddRange(TestBuildUrlLoader.LoadFromXmlFile("../../TestBuilds/EmptyBuildUrls.xml"));

            // This initialization requires a lot of time, so it is reasonable to reuse one instance if possible.
            // However, as some tests may change tree state this field should be used only for methods,
            // that does not depend on a tree instance.
            _tree = SkillTree.CreateAsync(_persistentData).Result;
        }
Example #28
0
    void onLoadCharacter(NetworkMessage msg)
    {
        PlayerInfo m         = msg.ReadMessage <PlayerInfo>();
        GameObject playerObj = ClientScene.FindLocalObject(m.id);
        Player     player    = playerObj.GetComponent <Player>();

        List <Skill> skillsToVerifyFromServer = new List <Skill>();

        for (int i = 2; i < m.skillProperties.Length; i += 3)
        {
            Skill tempSkill = new Skill();
            tempSkill.id            = m.skillProperties[i - 2]; //skillId
            tempSkill.currentPoints = m.skillProperties[i - 1]; //currentPoints
            tempSkill.maxPoints     = m.skillProperties[i];     //maxPoints
            this.player.skillsToVerifyWithFromServer.Add(tempSkill);
        }
        skillTree = Instantiate(skillTreePrefab).GetComponent <SkillTree> ();
        skillTree.initilize(player);
    }
Example #29
0
    public void AssignCharactersToUnlockToLevels()
    {
        GameObject skillTreesParent = FindObjectOfType <CanvasSkillTreesContainer>().gameObject;

        for (int i = 0; i < skillTreesParent.transform.childCount; i++)
        {
            SkillTree tempSkillTree = skillTreesParent.transform.GetChild(i).GetComponent <SkillTree>();

            if (tempSkillTree.characterId == idCharacter)
            {
                skillTreePrefab = tempSkillTree.gameObject;
            }
        }

        //Hacer reaparecer el modelo
        HideShowMeshCharacterData(true);

        InitializeCharacterToUnlocks();
    }
 // called when a specialised skill is changed
 public void checkIfAbilityChanged(int abilitySlotChanged)
 {
     if (abilitySlotChanged == abilityNumber && list.abilities.Count > abilityNumber)
     {
         if (list.abilities[abilityNumber] != null)
         {
             ability     = list.abilities[abilityNumber];
             icon.sprite = ability.abilitySprite;
             findSkillTree();
             locked = false;
         }
         else
         {
             ability     = null;
             icon.sprite = openSlotSprite;
             skillTree   = null;
         }
     }
 }
    public void loadTree(string treeID, int unspentPoints, int unspentAxisPoints, List <StringIntPair> nodesTaken)
    {
        // open the relevant parts of the ui
        UIBase uiBase = UIBase.instance;

        uiBase.openSkills();
        uiBase.openPassiveTree(true);
        // get a list of the saved node IDs for iterating through later
        List <string>            savedNodeIDs = new List <string>();
        Dictionary <string, int> nodeIDsToPositionInNodesTaken = new Dictionary <string, int>();

        for (int i = 0; i < nodesTaken.Count; i++)
        {
            savedNodeIDs.Add(nodesTaken[i].key);
            nodeIDsToPositionInNodesTaken.Add(nodesTaken[i].key, i);
        }
        // find the correct tree
        foreach (Tree tree in FindObjectsOfType <Tree>())
        {
            if (tree.treeID == treeID)
            {
                tree.unspentPoints     = unspentPoints;
                tree.unspentAxisPoints = unspentAxisPoints;
                SkillTree skillTree = tree as SkillTree;
                if (skillTree)
                {
                    skillTree.open();
                }
                foreach (SkillTreeNode node in tree.nodeList)
                {
                    if (savedNodeIDs.Contains(node.nodeID))
                    {
                        node.pointsAllocated = nodesTaken[nodeIDsToPositionInNodesTaken[node.nodeID]].value;
                        node.updateText();
                    }
                }
                tree.updateMutator();
            }
        }
        uiBase.closeSkillTrees();
        uiBase.closeSkills();
        uiBase.closePassiveTree();
    }
        public SkillTree Returnable()
        {
            if (TB_Name == null)
            {
                MessageBox.Show($"Skill tree requires a name", "Error, No name given", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }
            var tmp = TBL_Skilltree.DataSource as DataTable;

            Output = new SkillTree()
            {
                Name = TB_Name.Text, Desc = TB_Desc.Text, Red = TB_Red.Text, Green = TB_Green.Text, Blue = TB_Blue.Text, Alpha = TB_Alhpa.Text
            };
            Output.Skills = new List <Tuple <int, CustomSkill> >();
            foreach (DataRow item in tmp.Rows)
            {
                Output.Skills.Add(new Tuple <int, CustomSkill>(int.Parse(item.ItemArray[0].ToString()), item.ItemArray[1] as CustomSkill));
            }
            return(Output);
        }
Example #33
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        if (!MasterPlayerData.instance.checkSeenHint(HintIds.SkillTree))
        {
            Elementalist.instance.sayEasyHappy(Hints.getHintFrom(HintIds.SkillTree));
            Elementalist.instance.sayEasyHappy(Hints.getHintFrom(HintIds.SkillTreeSuggest) + getTopEssenceCountBiome());
            MasterPlayerData.instance.seenHint(HintIds.SkillTree);
        }

        skillExplanationPanel.gameObject.SetActive(false);
    }
        /// <summary>
        /// Instantiates a new ControllerViewModel.
        /// </summary>
        /// <param name="solver">The (not null) solver this object should run.</param>
        /// <param name="generatorName">The name suffix shown as DisplayName as 'Skill tree generator - {generatorName}'</param>
        /// <param name="tree">SkillTree to operate on (not null)</param>
        public ControllerViewModel(ISolver solver, string generatorName, SkillTree tree)
        {
            if (solver == null)
            {
                throw new ArgumentNullException("solver");
            }
            if (tree == null)
            {
                throw new ArgumentNullException("tree");
            }

            _solver     = solver;
            DisplayName = L10n.Message("Skill tree generator") + " - " + generatorName;
            _tree       = tree;

            _progress = new Progress <Tuple <int, IEnumerable <ushort> > >(tuple => ReportProgress(tuple.Item1, tuple.Item2));
            _reportStopwatch.Start();

            RequestClose += (sender, args) => CancelClose();
        }
Example #35
0
    public SkillsData(SkillTree s)
    {
        skill_points = s.total_skill_points;

        List <Skill> skills = s.GetSkillList();
        int          max_id = 0;

        foreach (Skill skill in skills)
        {
            if (skill.id > max_id)
            {
                max_id = skill.id;
            }
        }
        skill_levels = new int[max_id + 1];
        for (int i = 0; i < skills.Count; i++)
        {
            skill_levels[skills[i].id] = skills[i].level;
        }
    }
Example #36
0
    void initSkillTrees()
    {
        //Order is important
        SkillTree assaultSkill = new SkillTree();
        SkillTree defenderSkill = new SkillTree();
        SkillTree medicSkill = new SkillTree();

        skillTrees = new List<SkillTree>();
        skillTrees.Add(assaultSkill);
        skillTrees.Add(defenderSkill);
        skillTrees.Add(medicSkill);
        SetPassiveInfo();
    }
Example #37
0
File: Class.cs Project: VicBoss/KR
 public Class(string name, string description, SkillTree skillTree)
 {
     this.name = name;
     this.description = description;
     this.skillTree = skillTree;
 }
Example #38
0
 /// <summary>
 ///  A new instance of the SteinerSolver optimizer that still needs to be
 ///  initialized.
 /// </summary>
 /// <param name="tree">The skill tree in which to optimize.</param>
 public SteinerSolver(SkillTree tree)
 {
     this.tree = tree;
 }
Example #39
0
	public GameSave() {
		characterLevel = 0;
		skilltree = new SkillTree();
	}
	bool loadSkillsFromDisk() {
		if(SaveLoad.Load()) {
			Debug.Log("loaded");
			GameSave save = GameSave.current;
			skilltree = save.skilltree;
			putSkillsAfterLoad();
			return true;
		}
		return false;
	}
Example #41
0
    // Use this for initialization
    void Start()
    {
        CreateQuests ();

        //find out all GUI we need to handle
        player = GameObject.FindWithTag ("Player");

        psg = player.GetComponent<PlayerStateGUI> ();

        skill = player.GetComponent<SkillTree> ();

        item = player.GetComponent<ItemGUI> ();

        Q1Script = this.gameObject.GetComponent<Quest1>();
        Q2Script = this.gameObject.GetComponent<Quest2>();
        Q3Script = this.gameObject.GetComponent<Quest3>();
        Q4Script = this.gameObject.GetComponent<Quest4>();

        R = GameObject.Find ("Arrow").GetComponent<RotateTo>();
    }
Example #42
0
    // Use this for initialization
    void Start()
    {
        CreateQuests ();

        //find out all GUI we need to handle
        player = GameObject.FindWithTag ("Player");

        psg = player.GetComponent<PlayerStateGUI> ();

        skill = player.GetComponent<SkillTree> ();
    }
Example #43
0
 public void ActivateSkill(SkillTree skillTree)
 {
     this.skillTree = skillTree;
     gameObject.SetActive(true);
 }