Ejemplo n.º 1
0
 private void ClrButton_Click(object sender, EventArgs e)
 {
     Tree1.CreateGraphics().Clear(Color.White);
     Tree2.CreateGraphics().Clear(Color.White);
     Tree3.CreateGraphics().Clear(Color.White);
     Tree4.CreateGraphics().Clear(Color.White);
     points = new List <Point>();
     ed[0]  = new List <Point>();
     ed[1]  = new List <Point>();
 }
Ejemplo n.º 2
0
        private void UpdateSavedSpecs()
        {
            SavedPetTalentSpecList savedSpecs = SavedPetTalentSpec.SpecsFor(ArmoryPet.FamilyToTree[CalcOpts.PetFamily]);
            SavedPetTalentSpec     current    = null;

            updating = true;
            foreach (SavedPetTalentSpec sts in savedSpecs)
            {
                if (sts.Equals(CalcOpts.PetTalents))
                {
                    current = sts;
                    break;
                }
            }

            if (current != null)
            {
                HasCustomSpec            = false;
                SavedCombo.ItemsSource   = savedSpecs;
                SavedCombo.SelectedItem  = current;
                SaveDeleteButton.Content = "Delete";
            }
            else
            {
                PETFAMILYTREE ftree   = ArmoryPet.FamilyToTree[CalcOpts.PetFamily];
                int           treepts = (ftree == PETFAMILYTREE.Cunning  ? Tree1.Points() :
                                         (ftree == PETFAMILYTREE.Ferocity ? Tree2.Points() :
                                          (ftree == PETFAMILYTREE.Tenacity ? Tree3.Points() :
                                           Tree1.Points() + Tree2.Points() + Tree3.Points())));
                HasCustomSpec = true;
                current       = new SavedPetTalentSpec("Custom", CalcOpts.PetTalents, ftree, treepts);
                SavedPetTalentSpecList currentList = new SavedPetTalentSpecList();
                currentList.AddRange(savedSpecs);
                currentList.Add(current);
                SavedCombo.ItemsSource   = null;
                SavedCombo.ItemsSource   = currentList;
                SavedCombo.SelectedItem  = current;
                SaveDeleteButton.Content = "Save";
            }
            updating = false;
        }
Ejemplo n.º 3
0
        private void SaveDelete_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            SavedPetTalentSpec currentSpec = SavedCombo.SelectedItem as SavedPetTalentSpec;

            if (HasCustomSpec)
            {
                PETFAMILYTREE ftree   = ArmoryPet.FamilyToTree[CalcOpts.PetFamily];
                int           treepts = (ftree == PETFAMILYTREE.Cunning ? Tree1.Points() :
                                         (ftree == PETFAMILYTREE.Ferocity ? Tree2.Points() :
                                          (ftree == PETFAMILYTREE.Tenacity ? Tree3.Points() :
                                           Tree1.Points() + Tree2.Points() + Tree3.Points())));
                FormSavePetTalentSpec dialog = new FormSavePetTalentSpec(CalcOpts.PetTalents, ftree, treepts);
                dialog.Closed += new EventHandler(dialog_Closed);
                dialog.Show();
            }
            else
            {
                SavedPetTalentSpec.AllSpecs.Remove(currentSpec);
                UpdateSavedSpecs();
            }
        }
Ejemplo n.º 4
0
        public TalentTree(string talentString)
        {
            Tree1 = new();
            Tree2 = new();
            Tree3 = new();

            string[] talentSplits = talentString.Split('|');

            for (int i = 0; i < talentSplits.Length; ++i)
            {
                string talent = talentSplits[i];

                if (talent.Length < 4)
                {
                    continue;
                }

                string[] items = talent.Split(';');

                if (items.Length < 5)
                {
                    continue;
                }

                Talent t = new(items[0], int.Parse(items[1]), int.Parse(items[2]), int.Parse(items[3]), int.Parse(items[4]));

                if (items[1].Equals("1", StringComparison.OrdinalIgnoreCase))
                {
                    Tree1.Add(int.Parse(items[2]), t);
                }
                else if (items[1].Equals("2", StringComparison.OrdinalIgnoreCase))
                {
                    Tree2.Add(int.Parse(items[2]), t);
                }
                else if (items[1].Equals("3", StringComparison.OrdinalIgnoreCase))
                {
                    Tree3.Add(int.Parse(items[2]), t);
                }
            }
        }
Ejemplo n.º 5
0
 private void GenButton_Click(object sender, EventArgs e)
 {
     aT.GTree(aT.root, chance, MaxDEPTH, rnd);
     aT.GetPoints(aT.root, Tree1.Width, Tree1.Height, points, ed);
     Tree1.CreateGraphics().DrawImage(aT.Draw(Tree1.Width, Tree1.Height, points, ed), new Point(0, 0));
     bT = aT;
     Tree2.CreateGraphics().DrawImage(bT.Draw(Tree2.Width, Tree2.Height, points, ed), new Point(0, 0));
     points = new List <Point>();
     ed[0]  = new List <Point>();
     ed[1]  = new List <Point>();
     cT.GTree(cT.root, chance, MaxDEPTH, rnd);
     cT.GetPoints(cT.root, Tree1.Width, Tree1.Height, points, ed);
     Tree3.CreateGraphics().DrawImage(cT.Draw(Tree3.Width, Tree3.Height, points, ed), new Point(0, 0));
     points = new List <Point>();
     ed[0]  = new List <Point>();
     ed[1]  = new List <Point>();
     dT.GTree(dT.root, chance, MaxDEPTH, rnd);
     dT.GetPoints(dT.root, Tree1.Width, Tree1.Height, points, ed);
     Tree4.CreateGraphics().DrawImage(dT.Draw(Tree4.Width, Tree4.Height, points, ed), new Point(0, 0));
     points = new List <Point>();
     ed[0]  = new List <Point>();
     ed[1]  = new List <Point>();
 }
Ejemplo n.º 6
0
        private void Generate()
        {
            //Walls
            //for (var i = 0; i < 1; i++)
            //{
            //    var x = m_map.Random.Next(0, m_map.ZoneSize.X);
            //    var y = m_map.Random.Next(0, m_map.ZoneSize.Y);

            //    var width = m_map.Random.Next(10, 100);
            //    var height = m_map.Random.Next(10, 100);

            //    //var x = m_map.ZoneSize.X / 2 + 50;
            //    //var y = m_map.ZoneSize.Y / 2 + 50;

            //    //var width = 50;
            //    //var height = 50;

            //    var p1 = new Vector2(x, y);
            //    var p2 = new Vector2(x + width, y);
            //    var p3 = new Vector2(x + width, y + height);
            //    var p4 = new Vector2(x, y + height);

            //    Walls.Add(
            //        new Wall(
            //            new List<Segment>()
            //            {
            //                new Segment(p1, p2),
            //                new Segment(p2, p3),
            //                new Segment(p3, p4),
            //                new Segment(p4, p1)
            //            }
            //        )
            //    );
            //}

            //Trees
            for (var i = 0; i < 3; i++)
            {
                var x = m_map.Random.Next(0 + 50, m_map.ZoneSize.X - 50);
                var y = m_map.Random.Next(0 + 50, m_map.ZoneSize.Y - 50);

                var t1 = new Tree1();
                t1.SetPosition(new Vector2(x, y));
                AddTree(t1);

                y -= (int)(t1.Box.Y / 3f);

                var p1 = new Vector2(x - t1.Box.X / 6, y);
                var p2 = new Vector2(x + t1.Box.X / 6, y);
                var p3 = new Vector2(x, y - t1.Box.Y / 6);
                var p4 = new Vector2(x, y + t1.Box.Y / 6);

                Walls.Add(
                    new Wall(
                        new List <Segment>()
                {
                    new Segment(p1, p2),
                    new Segment(p3, p4)
                }
                        )
                    );

                x = m_map.Random.Next(0 + 50, m_map.ZoneSize.X - 50);
                y = m_map.Random.Next(0 + 50, m_map.ZoneSize.Y - 50);

                var t2 = new Tree2();
                t2.SetPosition(new Vector2(x, y));
                AddTree(t2);

                y -= (int)(t2.Box.Y / 3f);

                p1 = new Vector2(x - t2.Box.X / 6, y);
                p2 = new Vector2(x + t2.Box.X / 6, y);
                p3 = new Vector2(x, y - t2.Box.Y / 6);
                p4 = new Vector2(x, y + t2.Box.Y / 6);

                Walls.Add(
                    new Wall(
                        new List <Segment>()
                {
                    new Segment(p1, p2),
                    new Segment(p3, p4)
                }
                        )
                    );

                x = m_map.Random.Next(0 + 50, m_map.ZoneSize.X - 50);
                y = m_map.Random.Next(0 + 50, m_map.ZoneSize.Y - 50);

                var t3 = new Tree3();
                t3.SetPosition(new Vector2(x, y));
                AddTree(t3);

                y -= (int)(t3.Box.Y / 4f);

                p1 = new Vector2(x - t3.Box.X / 4, y);
                p2 = new Vector2(x + t3.Box.X / 4, y);
                p3 = new Vector2(x, y - t3.Box.Y / 4);
                p4 = new Vector2(x, y + t3.Box.Y / 4);

                Walls.Add(
                    new Wall(
                        new List <Segment>()
                {
                    new Segment(p1, p2),
                    new Segment(p3, p4)
                }
                        )
                    );
            }

            //Fire
            //var peX = m_map.Random.Next((int)(m_map.ZoneSize.X * 0.1f), (int)(m_map.ZoneSize.X * 0.9f));
            //var peY = m_map.Random.Next((int)(m_map.ZoneSize.Y * 0.1f), (int)(m_map.ZoneSize.Y * 0.9f));
            //ParticleEngine = new ParticleEngine(new List<Texture2D>(),
            //    new Vector2(peX, peY),
            //    new Vector2(0, 20),
            //    150,
            //    0.2f);

            var peX          = m_map.Random.Next((int)(m_map.ZoneSize.X * 0.1f), (int)(m_map.ZoneSize.X * 0.9f));
            var peY          = m_map.Random.Next((int)(m_map.ZoneSize.Y * 0.1f), (int)(m_map.ZoneSize.Y * 0.9f));
            var firePosition = new Vector2(peX, peY);

            FireCamp = new FireCamp();
            FireCamp.SetPosition(firePosition);

            //Lights
            for (var i = 0; i < 1; i++)
            {
                //var x = m_map.Random.Next(0, m_map.ZoneSize.X);
                //var y = m_map.Random.Next(0, m_map.ZoneSize.Y);
                //var x = m_map.ZoneSize.X / 2;
                //var y = m_map.ZoneSize.Y / 2;

                var radius = 200 + m_map.Random.Next(0, 10);

                Lights.Add(
                    new Light(
                        new Vector2(firePosition.X, firePosition.Y - FireCamp.Box.Y / 4),
                        radius,
                        new Color4ub(255, 255, 255, 255),
                        new Color4ub(0, 0, 0, 255))
                    );
            }

            var segments = Walls.SelectMany(x => x.Walls).ToList();

            Parallel.ForEach(segments, segment =>
            {
                foreach (var light in Lights)
                {
                    light.Cone.Add(segment.P1, segment.P2);
                }
                //m_wallRenderer.AddSegment(segment);
            });

            foreach (var light in Lights)
            {
                var points = light.Cone.GetPath();
                foreach (var point in points)
                {
                    m_lightRenderer.AddVertex(point.Point, point.Color);
                }
            }
        }
Ejemplo n.º 7
0
        private void UpdateSavedSpecs()
        {
            SavedTalentSpecList savedSpecs = SavedTalentSpec.SpecsFor(Character.Class);
            SavedTalentSpec     current    = null;

            updating = true;
            foreach (SavedTalentSpec sts in savedSpecs)
            {
                if (sts.Equals(Character.CurrentTalents))
                {
                    current = sts;
                    break;
                }
            }

            if (current != null)
            {
                HasCustomSpec            = false;
                SavedCombo.ItemsSource   = savedSpecs;
                SavedCombo.SelectedItem  = current;
                SaveDeleteButton.Content = "Delete";
            }
            else
            {
                HasCustomSpec = true;
                current       = new SavedTalentSpec("Custom", Character.CurrentTalents, Tree1.Points(), Tree2.Points(), Tree3.Points());
                SavedTalentSpecList currentList = new SavedTalentSpecList();
                currentList.AddRange(savedSpecs);
                currentList.Add(current);
                SavedCombo.ItemsSource   = null;
                SavedCombo.ItemsSource   = currentList;
                SavedCombo.SelectedItem  = current;
                SaveDeleteButton.Content = "Save";
            }
            updating = false;
        }