예제 #1
0
    private void InitData()
    {
        CheckUser();

        string loginName = Session["userID"].ToString();

        Users user = new Users();

        user.LoadData(loginName);
        //LabelTree.Text = "ÄúºÃ:" + user.UserName + "<hr>";

        string sql = "Select * from ReportTreeMenu Where [Duty] in (";

        foreach (string duty in user.Duties)
        {
            sql += SQLString.GetQuotedString(duty) + ",";
        }
        sql += "'#')";

        DataBase  db = new DataBase();
        DataTable dt = db.GetDataTable(sql);

        Tree2 tree = new Tree2("------------ Kypera Report Lists ------------");

        LabelTree.Text += tree.CreateTree2(dt);
    }
예제 #2
0
        public void TestForAdd3()
        {
            Tree2 tree = new Tree2(10);

            tree.AddChild(new Node(9));
            tree.AddChild(new Node(9));
            Assert.AreEqual(2, tree.CntOfNodes);
        }
예제 #3
0
        public void TestForFind1()
        {
            Tree2 tree = new Tree2(10);
            bool  check = false, isright = false;
            Node  a = tree.FindNode(100, ref check, ref isright);

            Assert.AreEqual(false, check);
        }
예제 #4
0
        public void TestInt()
        {
            const string hexBuffer = "A1636167650C";

            Tree2 tree = Helper.Read <Tree2>(hexBuffer);

            Assert.NotNull(tree);
            Assert.Equal(12, tree._age);
        }
예제 #5
0
        public void ReadReadOnlyFieldWithCborContructor()
        {
            const string hexBuffer = "A1646E616D6563666F6F";

            Tree2 tree = Helper.Read <Tree2>(hexBuffer);

            Assert.NotNull(tree);
            Assert.Equal("foo", tree._name);
        }
예제 #6
0
        public void TestForFind2()
        {
            Tree2 tree = new Tree2(10);

            tree.AddChild(new Node(9));
            bool check = false, isright = false;
            Node a = tree.FindNode(9, ref check, ref isright);

            Assert.AreEqual(true, check);
        }
예제 #7
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>();
 }
        public void TestByAttribute()
        {
            const string hexBuffer = "A2636167650C646E616D6563666F6F";

            Tree2 tree = Helper.Read <Tree2>(hexBuffer);

            Assert.NotNull(tree);
            Assert.Equal(12, tree.GetAge());
            Assert.Equal("foo", tree.GetName());
        }
예제 #9
0
        public void TestForAdd2()
        {
            Node  a    = new Node(9);
            Node  b    = new Node(11);
            Tree2 tree = new Tree2(10);

            tree.AddChild(a);
            tree.AddChild(b);
            Assert.AreEqual(a, tree.root.left);
            Assert.AreEqual(b, tree.root.right);
        }
예제 #10
0
 protected void Tree2_NodeCheck(object sender, FineUI.TreeCheckEventArgs e)
 {
     if (e.Checked)
     {
         Tree2.CheckAllNodes(e.Node.Nodes);
     }
     else
     {
         Tree2.UncheckAllNodes(e.Node.Nodes);
     }
 }
예제 #11
0
        protected override int Descendant(int i, int index, int branch)
        {
            int modulo  = Tree1.Count(i);
            int index1  = index % modulo;
            int index2  = index / modulo;
            int branch1 = branch % 3;
            int branch2 = branch / 3;

            modulo = Tree1.Count(i + 1);
            return(Tree1.Descendant(i, index1, branch1) +
                   Tree2.Descendant(i, index2, branch2) * modulo);
        }
예제 #12
0
        protected override double Probability(int i, int index, int branch)
        {
            int    modulo  = Tree1.Count(i);
            int    index1  = index % modulo;
            int    index2  = index / modulo;
            int    branch1 = branch % 3;
            int    branch2 = branch / 3;
            double prob1   = Tree1.Probability(i, index1, branch1);
            double prob2   = Tree2.Probability(i, index2, branch2);

            return(prob1 * prob2 + _rho * _m[branch1, branch2] / 36.0);
        }
예제 #13
0
        public void TestForRemove()
        {
            Tree2 tree = new Tree2(10);
            Node  a    = new Node(9);
            Node  b    = new Node(50);
            Node  c    = new Node(100);

            tree.AddChild(a);
            tree.AddChild(b);
            tree.AddChild(c);
            Assert.AreEqual(c, b.right);
            tree.RemoveNode(100);
            Assert.AreEqual(null, b.right);
        }
예제 #14
0
        public void TestForAdd1()
        {
            Node  a;
            Tree2 tree = new Tree2(10);

            tree.AddChild(new Node(9));
            bool check = false, isright = false;

            a = tree.FindNode(100, ref check, ref isright);
            Assert.AreEqual(false, check);

            tree.AddChild(new Node(100));
            a = tree.FindNode(100, ref check, ref isright);
            Assert.AreEqual(true, check);
        }
예제 #15
0
        public void TestForFindMaxAndMin1()
        {
            Tree2 tree = new Tree2(10);

            tree.AddChild(new Node(10));
            tree.AddChild(new Node(9));
            tree.AddChild(new Node(7));
            tree.AddChild(new Node(1));
            tree.AddChild(new Node(12));
            tree.AddChild(new Node(11));
            tree.AddChild(new Node(15));
            Node max = tree.FindMaxFrom(tree.root);
            Node min = tree.FindMinFrom(tree.root);

            Assert.AreEqual(1, min.value);
            Assert.AreEqual(15, max.value);
        }
예제 #16
0
 private void LoadData(string sId)
 {
     if (!string.IsNullOrEmpty(sId))
     {
         StringBuilder   sb       = new StringBuilder();
         Entity.RoleMenu rolemenu = DAL.RoleMenu.GetRoleMenu(sId);
         txt_RoleName.Text    = rolemenu.role.RoleName;
         txt_Description.Text = rolemenu.role.Description;
         foreach (Entity.Menu menu in rolemenu.menuList)
         {
             int             menuID = menu.ID;
             FineUI.TreeNode tn     = Tree2.FindNode(menuID.ToString());
             tn.Checked = true;
             sb.Append(menuID.ToString() + ",");
         }
         old = sb.ToString().Substring(0, sb.Length - 1);
     }
 }
예제 #17
0
        private void CheckTree2()
        {
            if (GridUser.SelectedRowIndex < 0)
            {
                return;
            }
            Tree2.UncheckAllNodes(Tree2.Nodes);

            strUserGuid = GridUser.DataKeys[GridUser.SelectedRowIndex][0].ToString();
            List <Entity.Menu> menus = DAL.User.GetMenu(strUserGuid);

            foreach (Entity.Menu menu in menus)
            {
                int             menuID = menu.ID;
                FineUI.TreeNode tn     = Tree2.FindNode(menuID.ToString());
                tn.Checked = true;
            }
        }
예제 #18
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;
        }
예제 #19
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();
            }
        }
예제 #20
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);
                }
            }
        }
예제 #21
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>();
 }
예제 #22
0
        protected void btn_save_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(sGuid))
            {
                //Add
                Entity.RoleMenu roleMenu = new Entity.RoleMenu();
                roleMenu.role.RoleName    = txt_RoleName.Text;
                roleMenu.role.Description = txt_Description.Text;
                string[] checkmenus = Tree2.GetCheckedNodeIDs();
                foreach (string checkID in checkmenus)
                {
                    Entity.Menu menu = new Entity.Menu();
                    menu.ID = int.Parse(checkID.ToString());
                    roleMenu.menuList.Add(menu);
                }

                int success = DAL.RoleMenu.AddRoleMenu(roleMenu);
                if (success == 1)
                {
                    Alert.ShowInTop(" 保存成功!", MessageBoxIcon.Information);
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                }
                else
                {
                    Alert.ShowInTop("保存失败!", MessageBoxIcon.Warning);
                }
            }
            else
            {
                //Update
                Entity.RoleMenu roleMenu = new Entity.RoleMenu();
                roleMenu.role.ID          = int.Parse(sGuid);
                roleMenu.role.RoleName    = txt_RoleName.Text;
                roleMenu.role.Description = txt_Description.Text;
                string[] checkmenus = Tree2.GetCheckedNodeIDs();

                int[] check = new int[checkmenus.Length];
                for (int i = 0; i < checkmenus.Length; i++)
                {
                    check[i] = int.Parse(checkmenus[i]);
                }



                StringBuilder   sb       = new StringBuilder();
                Entity.RoleMenu rolemenu = DAL.RoleMenu.GetRoleMenu(sGuid);
                txt_RoleName.Text    = rolemenu.role.RoleName;
                txt_Description.Text = rolemenu.role.Description;
                foreach (Entity.Menu menu in rolemenu.menuList)
                {
                    int             menuID = menu.ID;
                    FineUI.TreeNode tn     = Tree2.FindNode(menuID.ToString());
                    tn.Checked = true;
                    sb.Append(menuID.ToString() + ",");
                }
                old = sb.ToString().Substring(0, sb.Length - 1);
                string[] oldIds = old.Split(',');
                int[]    oldid  = new int[oldIds.Length];
                for (int s = 0; s < oldIds.Length; s++)
                {
                    oldid[s] = int.Parse(oldIds[s]);
                }

                List <int> Checked = new List <int>();
                for (int i = 0; i < checkmenus.Length; i++)
                {
                    Checked.Add(int.Parse(checkmenus[i]));
                }
                List <int> OldID = new List <int>();
                for (int i = 0; i < oldIds.Length; i++)
                {
                    OldID.Add(int.Parse(oldIds[i]));
                }
                List <int> Delete = ListHelper.ExceptList(OldID, Checked);
                List <int> Add    = ListHelper.ExceptList(Checked, OldID);
                foreach (int a in Delete)
                {
                    roleMenu.Delete.Add(a.ToString());
                }
                foreach (int b in Add)
                {
                    roleMenu.NewAdd.Add(b.ToString());
                }
                //var c = oldid.Intersect(check);
                //var d = oldid.Except(check);
                //var f = check.Except(oldid);
                //foreach (var q in d)
                //{
                //    roleMenu.Delete.Add(q.ToString());
                //}
                //foreach (var w in f)
                //{
                //    roleMenu.NewAdd.Add(w.ToString());
                //}
                int success = DAL.RoleMenu.UpdateRoleMenu(roleMenu);
                if (success == 1)
                {
                    Alert.ShowInTop(" 修改成功!", MessageBoxIcon.Information);
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                }
                else
                {
                    Alert.ShowInTop("修改失败!", MessageBoxIcon.Warning);
                }
            }
        }
예제 #23
0
        protected void LinkButton5_Click(object sender, EventArgs e)
        {
            //-----------------ver panel editar------------------
            bool si = false;

            foreach (GridViewRow row in GridView6.Rows)
            {
                CheckBox chk_Seleccionar = (CheckBox)row.FindControl("check");
                if (chk_Seleccionar.Checked)
                {
                    si = true;
                }
            }
            if (si == true)
            {
                Tree2.ExpandAll();
                Peditar.Width  = 478;
                Peditar.Height = 390;
                string dia1 = "", habi = "", hi = "", hf = "";
                foreach (GridViewRow row in GridView6.Rows)
                {
                    CheckBox    chk_Seleccionar  = (CheckBox)row.FindControl("check");
                    HiddenField hd_Seleccionafol = (HiddenField)row.FindControl("checkFol");
                    if (chk_Seleccionar.Checked)
                    {
                        idres = hd_Seleccionafol.Value;
                        BD.Conectar();
                        BD.CrearComando("select * from grupos where idGrupo=@id");
                        BD.AsignarParametroCadena("@id", idres);
                        DbDataReader DR = BD.EjecutarConsulta();
                        if (DR.Read())
                        {
                            TeditNom.Text = DR[1].ToString();
                            TeditDes.Text = DR[3].ToString();
                            if (DR[2].ToString() == "si")
                            {
                                Checedit.Checked = true;
                            }
                            else
                            {
                                Checedit.Checked = false;
                            }

                            foreach (TreeNode nod in Tree2.Nodes)
                            {
                                foreach (TreeNode nod2 in nod.ChildNodes)
                                {
                                    if (!(DR[4].ToString().IndexOf(nod2.Value) < 0))
                                    {
                                        nod2.Checked = true;
                                    }
                                    //if (!(DR[4].ToString().IndexOf("CompFis") < 0) || !(DR[4].ToString().IndexOf("Interfaz") < 0) || !(DR[4].ToString().IndexOf("AdmUsuarios") < 0)
                                    //    || !(DR[4].ToString().IndexOf("AdmProveedores") < 0) || !(DR[4].ToString().IndexOf("AdmReceptores") < 0)
                                    //    || !(DR[4].ToString().IndexOf("AdmConfiguracion") < 0))
                                    //{
                                    //    nod2.Selected = true;
                                    //}

                                    foreach (TreeNode nod3 in nod2.ChildNodes)
                                    {
                                        if (!(DR[4].ToString().IndexOf(nod3.Value) < 0))
                                        {
                                            nod3.Checked = true;
                                        }
                                        //if (!(DR[4].ToString().IndexOf("GrupUs") < 0) || !(DR[4].ToString().IndexOf("SolicReg") < 0 )
                                        //    || !(DR[4].ToString().IndexOf("CodigosIVA") < 0 ) || !(DR[4].ToString().IndexOf("Dias") < 0 )
                                        //    || !(DR[4].ToString().IndexOf("Monedas") < 0 ) || !(DR[4].ToString().IndexOf("TipoProv") < 0 ))
                                        //{
                                        //    nod3.Selected = true;
                                        //}
                                        foreach (TreeNode nod4 in nod3.ChildNodes)
                                        {
                                            if (!(DR[4].ToString().IndexOf(nod4.Value) < 0))
                                            {
                                                nod4.Checked = true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        BD.Desconectar();
                        Peditar.Visible = true;
                    }
                }
            }
            else
            {
                Session["estNot"]  = false;
                Session["msjNoti"] = "DEBES SELECIONAR UN GRUPO";
                Session["estPan"]  = true;
            }
        }
예제 #24
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;
        }
예제 #25
0
 public override int Count(int i)
 {
     return(Tree1.Count(i) * Tree2.Count(i));
 }
예제 #26
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);
                }
            }
        }