Ejemplo n.º 1
0
        private void  除势力ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FactionList list = new FactionList();

            for (int i = 0; i < this.dgvFactions.SelectedRows.Count; i++)
            {
                list.Add(this.Factions[this.dgvFactions.SelectedRows[i].Index]);
            }
            foreach (Faction faction in this.Scenario.Factions)
            {
                foreach (Faction faction2 in list)
                {
                    this.Scenario.DiplomaticRelations.RemoveDiplomaticRelationByFactionID(faction2.ID);
                }
            }
            foreach (Faction faction in list)
            {
                this.Scenario.Factions.RemoveFaction(faction);
            }
            foreach (Legion legion in this.Scenario.Legions.GetList())
            {
                if (legion.BelongedFaction == null)
                {
                    this.Scenario.Legions.Remove(legion);
                }
            }
            foreach (Section section in this.Scenario.Sections.GetList())
            {
                if (section.BelongedFaction == null)
                {
                    this.Scenario.Sections.Remove(section);
                }
            }
            this.RebindDataSource();
        }
Ejemplo n.º 2
0
        private void EditFactions()
        {
            FactionList list = new FactionList();

            for (int i = 0; i < this.dgvFactions.SelectedRows.Count; i++)
            {
                list.Add(this.Factions[this.dgvFactions.SelectedRows[i].Index]);
            }
            if (list.Count > 0)
            {
                frmEditFaction faction = new frmEditFaction();
                faction.Factions = list;
                faction.ShowDialog();
                this.dgvFactions.Invalidate();
            }
        }
Ejemplo n.º 3
0
        private void BtnFaction_Click(object sender, RoutedEventArgs e)
        {
            Window window = new Window();

            window.Title = "選擇事件能觸發的勢力";
            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            window.Width  = 800;
            window.Height = 600;

            Grid grid = new Grid();

            window.Content = grid;

            DataGrid  dataGrid1 = new DataGrid();
            DataTable dt2       = new DataTable();

            dt2.Columns.Add("點選", typeof(Boolean));
            dt2.Columns.Add("ID", typeof(int));
            dt2.Columns["ID"].ReadOnly = true;
            dt2.Columns.Add("名稱");
            dt2.Columns["名稱"].ReadOnly = true;
            dt2.Columns.Add("君主");
            dt2.Columns["君主"].ReadOnly = true;
            dt2.Columns.Add("建築數");
            dt2.Columns["建築數"].ReadOnly = true;
            dt2.Columns.Add("武將數");
            dt2.Columns["武將數"].ReadOnly = true;

            foreach (Faction f in scen.Factions)
            {
                DataRow dr = dt2.NewRow();
                dr["點選"]  = tempFactions.GameObjects.Contains(f);
                dr["ID"]  = f.ID;
                dr["名稱"]  = f.Name;
                dr["君主"]  = f.Leader.Name;
                dr["建築數"] = f.ArchitectureCount;
                dr["武將數"] = f.PersonCount;
                dt2.Rows.Add(dr);
            }
            dataGrid1.ItemsSource = dt2.DefaultView;

            grid.Children.Add(dataGrid1);
            dataGrid1.ColumnWidth = new DataGridLength(1, DataGridLengthUnitType.Star);

            window.Closed += Closed;
            window.ShowDialog();

            void Closed(object source, EventArgs e2)
            {
                tempFactions.Clear();
                for (int r = 0; r < dataGrid1.Items.Count; r++)
                {
                    DataRowView item = dataGrid1.Items[r] as DataRowView;
                    if (item == null)
                    {
                        continue;
                    }

                    if ((bool)item["點選"])
                    {
                        tempFactions.Add((Faction)scen.Factions.GetGameObject((int)item["ID"]));
                    }
                }

                lblFaction.Content = String.Join(" ", tempFactions.GameObjects.Select(p => p.Name));
            }
        }