Пример #1
0
        private async void BindData()
        {
            string json = await FlowerHelper.GetFlowerAll();

            List <MyFlower> list = JsonConvert.DeserializeObject <List <MyFlower> >(json);

            GlobalTool.FlowerAll = list;
        }
Пример #2
0
        public ParentCard(MyFlower[] parent)
        {
            List <MyFlower> Flowers = FlowerHelper.GetFlowerPart(parent[0].GetFlowerType());

            foreach (var f in Flowers)
            {
                if (f.A1 == parent[0].A1 && f.A2 == parent[0].A2 && f.A3 == parent[0].A3 && f.A4 == parent[0].A4)
                {
                    FlowerLeft = f;
                }
                if (f.A1 == parent[1].A1 && f.A2 == parent[1].A2 && f.A3 == parent[1].A3 && f.A4 == parent[1].A4)
                {
                    FlowerRight = f;
                }
            }
        }
Пример #3
0
        /*********
        ** Public methods
        *********/
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides simplified APIs for writing mods.</param>
        public override void Entry(IModHelper helper)
        {
            ModConfig config = this.Helper.ReadConfig <ModConfig>();

            Multiplayer multiplayer = typeof(Game1).GetField("multiplayer", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null) as Multiplayer;

            FlowerHelper flowerHelper = new FlowerHelper(multiplayer, config.LocalOnly);

            flowerers = new List <IToolFlowerer> {
                new Swipe(flowerHelper),
                new Swing(flowerHelper),
                new Stab(flowerHelper),
                new Defense(flowerHelper),
                new Watering(flowerHelper),
                new TimingCast(flowerHelper)
            };

            explosionCreator = new Explosion(flowerHelper);
            slingshotCreator = new Slingshot(flowerHelper);

            helper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked;
        }
Пример #4
0
        private void ComboBoxChoose_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox cb = sender as ComboBox;

            GlobalTool.SelectedFlower = (FlowerType)cb.SelectedIndex + 1;

            GlobalTool.ListColorDic = new List <MyFlower>();
            GlobalTool.ListColorDic = FlowerHelper.GetFlowerPart(GlobalTool.SelectedFlower);

            GlobalTool.ListColor     = new List <string>();
            GlobalTool.ListColorName = new List <string>();
            GlobalTool.ListColor.Add("");
            GlobalTool.ListColorName.Add("无");
            foreach (var a in GlobalTool.ListColorDic)
            {
                if (!GlobalTool.ListColor.Contains(a.Color) && a.Color != "Unknown")
                {
                    GlobalTool.ListColor.Add(a.Color);
                    MyColor mc = (MyColor)Enum.Parse(typeof(MyColor), a.Color);
                    GlobalTool.ListColorName.Add(FlowerHelper.ColorNameShow[mc]);
                }
            }
        }
Пример #5
0
        public MyColor GetColor()
        {
            var ml = FlowerHelper.GetFlowerPart(type);

            for (int i = 0; i < ml.Count; i++)
            {
                if ((Gene)a4 != Gene.Unknown)
                {
                    if (a1 == Convert.ToInt32(ml[i].A1) && a2 == Convert.ToInt32(ml[i].A2) && a3 == Convert.ToInt32(ml[i].A3) && a4 == Convert.ToInt32(ml[i].A4))
                    {
                        return((MyColor)Enum.Parse(typeof(MyColor), ml[i].Color));
                    }
                }
                else
                {
                    if (a1 == Convert.ToInt32(ml[i].A1) && a2 == Convert.ToInt32(ml[i].A2) && a3 == Convert.ToInt32(ml[i].A3))
                    {
                        return((MyColor)Enum.Parse(typeof(MyColor), ml[i].Color));
                    }
                }
            }
            return(MyColor.Unknown);
        }
Пример #6
0
        private void B_Click()
        {
            switch (GlobalTool.ButtonNameZajiao)
            {
            case "ButtonSearch":
            {
                List <MyFlower> ParentL = new List <MyFlower>();
                List <MyFlower> ParentR = new List <MyFlower>();

                if (GlobalTool.BoolColorL == true)
                {        //按颜色L
                    if (GlobalTool.IndexColorL == 0)
                    {
                        GlobalTool.OpenDialogButton(this, "没有选择颜色");
                        return;
                    }
                    foreach (var everyflower in SelectedColorDicL)
                    {
                        ParentL.Add(everyflower);
                    }
                }
                if (GlobalTool.BoolColorR == true)
                {        //按颜色R
                    if (GlobalTool.IndexColorR == 0)
                    {
                        GlobalTool.OpenDialogButton(this, "没有选择颜色");
                        return;
                    }
                    foreach (var everyflower in SelectedColorDicR)
                    {
                        ParentR.Add(everyflower);
                    }
                }
                if (GlobalTool.BoolGeneL == true)
                {        //按基因型L
                    Gene     a1 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1L);
                    Gene     a2 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2L);
                    Gene     a3 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3L);
                    Gene     a4 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4L);
                    MyFlower f  = new MyFlower(SelectedFlower, a1, a2, a3, a4);
                    foreach (var i in f.GetIntArray())
                    {
                        if (i == 0)
                        {
                            GlobalTool.OpenDialogButton(this, "没有选择基因型");
                            return;
                        }
                    }
                    foreach (var a in ListColorDic)
                    {
                        if (f.GetGeneName() == a.GetGeneName())
                        {
                            ParentL.Add(a);
                        }
                    }
                }
                if (GlobalTool.BoolGeneR == true)
                {        //按基因型R
                    Gene     a1 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1R);
                    Gene     a2 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2R);
                    Gene     a3 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3R);
                    Gene     a4 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4R);
                    MyFlower f  = new MyFlower(SelectedFlower, a1, a2, a3, a4);
                    foreach (var i in f.GetIntArray())
                    {
                        if (i == 0)
                        {
                            GlobalTool.OpenDialogButton(this, "没有选择基因型");
                            return;
                        }
                    }
                    foreach (var a in ListColorDic)
                    {
                        if (f.GetGeneName() == a.GetGeneName())
                        {
                            ParentR.Add(a);
                        }
                    }
                }
                if (GlobalTool.BoolSeedL == true)
                {        //按种子L
                    int index = GlobalTool.IndexSeedL;
                    if (index == 0)
                    {
                        GlobalTool.OpenDialogButton(this, "没有选择种子");
                        return;
                    }
                    ParentL.Add(ListSeed[index - 1]);
                }
                if (GlobalTool.BoolSeedR == true)
                {        //按种子L
                    int index = GlobalTool.IndexSeedR;
                    if (index == 0)
                    {
                        GlobalTool.OpenDialogButton(this, "没有选择种子");
                        return;
                    }
                    ParentR.Add(ListSeed[index - 1]);
                }

                ObservableCollection <ChildCard> result = new ObservableCollection <ChildCard>();
                foreach (var L in ParentL)
                {
                    foreach (var R in ParentR)
                    {
                        var children = FlowerHelper.GetOurChildren(L, R);
                        foreach (var child in children)
                        {
                            var  childcard = new ChildCard(L, R, child, FlowerHelper.GetProbability(L, R, child));
                            bool isinList  = false;
                            foreach (var a in result)
                            {
                                if (
                                    (
                                        childcard.Gene == a.Gene &&
                                        childcard.GeneP1 == a.GeneP1 &&
                                        childcard.GeneP2 == a.GeneP2
                                    )
                                    ||
                                    (
                                        childcard.Gene == a.Gene &&
                                        childcard.GeneP2 == a.GeneP1 &&
                                        childcard.GeneP1 == a.GeneP2
                                    )
                                    )
                                {
                                    isinList = true;
                                }
                            }
                            if (!isinList)
                            {
                                result.Add(childcard);
                            }
                        }
                    }
                }
                Action <IEnumerable> updateAction = new Action <IEnumerable>(ShowData);
                this.Dispatcher.BeginInvoke(updateAction, result);
            }
            break;
            }
        }
Пример #7
0
        private void GroupChanged(object sender, SelectionChangedEventArgs e)
        {
            GlobalTool.ChangeZajiaoComboBox(sender);

            ComboBox cb = sender as ComboBox;

            string senderName = cb.Name;

            switch (senderName)
            {
            case "ComboBoxChoose":
            {
                SelectedFlower = (FlowerType)cb.SelectedIndex + 1;

                TextBlockTypeL.Text = FlowerHelper.FlowerNameShow[SelectedFlower];
                TextBlockTypeR.Text = TextBlockTypeL.Text;

                ListColorDic = new List <MyFlower>();
                ListColorDic = FlowerHelper.GetFlowerPart(SelectedFlower);

                ListColor     = new List <string>();
                ListColorName = new List <string>();
                ListColor.Add("");
                ListColorName.Add("无");
                foreach (var a in ListColorDic)
                {
                    if (!ListColor.Contains(a.Color) && a.Color != "Unknown")
                    {
                        ListColor.Add(a.Color);
                        MyColor mc = (MyColor)Enum.Parse(typeof(MyColor), a.Color);
                        ListColorName.Add(FlowerHelper.ColorNameShow[mc]);
                    }
                }

                ComboBoxColorL.SelectionChanged -= GroupChanged;
                ComboBoxColorR.SelectionChanged -= GroupChanged;
                ComboBoxColorL.ItemsSource       = ListColorName;
                ComboBoxColorR.ItemsSource       = ListColorName;
                ComboBoxColorL.SelectedIndex     = 0;
                ComboBoxColorR.SelectedIndex     = 0;
                ComboBoxColorL.SelectionChanged += GroupChanged;
                ComboBoxColorR.SelectionChanged += GroupChanged;
                ComboBoxColorL.SelectedIndex     = 1;
                ComboBoxColorR.SelectedIndex     = 1;

                CheckBoxColorL.IsChecked = true;
                CheckBoxColorR.IsChecked = true;

                //需要在选定花朵之后绑定种子
                BindSeed();
            }
            break;

            case "ComboBoxColorL":
            {
                if (cb.SelectedIndex == 0)
                {
                    return;
                }

                SelectedColorL = (MyColor)Enum.Parse(typeof(MyColor), ListColor[cb.SelectedIndex]);

                TextBlockColorL.Text       = FlowerHelper.ColorNameShow[SelectedColorL];
                TextBlockColorL.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[SelectedColorL]);
                ImageFlowerL.Source        = new BitmapImage(new Uri("/Assets/" + SelectedFlower.ToString() + SelectedColorL.ToString() + ".png", UriKind.Relative));

                string s = "";
                SelectedColorDicL = new List <MyFlower>();
                foreach (var a in ListColorDic)
                {
                    if (a.Color == ListColor[cb.SelectedIndex])
                    {
                        SelectedColorDicL.Add(a);
                        string n = a.GetGeneName();
                        if (!s.Contains(n))
                        {
                            s += n + " ";
                        }
                    }
                }
                TextBlockGeneL.Text = s;
            }
            break;

            case "ComboBoxColorR":
            {
                if (cb.SelectedIndex == 0)
                {
                    return;
                }

                SelectedColorR = (MyColor)Enum.Parse(typeof(MyColor), ListColor[cb.SelectedIndex]);

                TextBlockColorR.Text       = FlowerHelper.ColorNameShow[SelectedColorR];
                TextBlockColorR.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[SelectedColorR]);
                ImageFlowerR.Source        = new BitmapImage(new Uri("/Assets/" + SelectedFlower.ToString() + SelectedColorR.ToString() + ".png", UriKind.Relative));

                string s = "";
                SelectedColorDicR = new List <MyFlower>();
                foreach (var a in ListColorDic)
                {
                    if (a.Color == ListColor[cb.SelectedIndex])
                    {
                        SelectedColorDicR.Add(a);
                        string n = a.GetGeneName();
                        if (!s.Contains(n))
                        {
                            s += n + " ";
                        }
                    }
                }
                TextBlockGeneR.Text = s;
            }
            break;

            case "ComboBoxA1L":
            case "ComboBoxA2L":
            case "ComboBoxA3L":
            case "ComboBoxA4L":
            {
                if (CheckBoxGeneL.IsChecked == false)
                {
                    return;
                }

                int a1  = ComboBoxA1L.SelectedIndex;
                int a2  = ComboBoxA2L.SelectedIndex;
                int a3  = ComboBoxA3L.SelectedIndex;
                int a4  = ComboBoxA4L.SelectedIndex;
                int aa1 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA1L.SelectedItem.ToString());
                int aa2 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA2L.SelectedItem.ToString());
                int aa3 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA3L.SelectedItem.ToString());
                int aa4 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA4L.SelectedItem.ToString());

                if (
                    (a1 > 0 && a2 > 0 && a3 > 0 && SelectedFlower != FlowerType.Roses)
                    ||
                    (a1 > 0 && a2 > 0 && a3 > 0 && a4 > 0)
                    )
                {
                    MyFlower cd = new MyFlower();
                    foreach (var a in ListColorDic)
                    {
                        if (SelectedFlower == FlowerType.Roses)
                        {
                            if (a.A1 == aa1.ToString() && a.A2 == aa2.ToString() && a.A3 == aa3.ToString() && a.A4 == aa4.ToString())
                            {
                                cd = a;
                                break;
                            }
                        }
                        else
                        {
                            if (a.A1 == aa1.ToString() && a.A2 == aa2.ToString() && a.A3 == aa3.ToString())
                            {
                                cd = a;
                                break;
                            }
                        }
                    }
                    TextBlockGeneL.Text        = cd.GetGeneName();
                    TextBlockColorL.Text       = FlowerHelper.ColorNameShow[cd.GetColor()];
                    TextBlockColorL.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[cd.GetColor()]);

                    string path = cd.GetImagePath();
                    ImageFlowerL.Source = new BitmapImage(new Uri(path, UriKind.Relative));
                }
            }
            break;

            case "ComboBoxA1R":
            case "ComboBoxA2R":
            case "ComboBoxA3R":
            case "ComboBoxA4R":
            {
                if (CheckBoxGeneR.IsChecked == false)
                {
                    return;
                }

                int a1  = ComboBoxA1R.SelectedIndex;
                int a2  = ComboBoxA2R.SelectedIndex;
                int a3  = ComboBoxA3R.SelectedIndex;
                int a4  = ComboBoxA4R.SelectedIndex;
                int aa1 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA1R.SelectedItem.ToString());
                int aa2 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA2R.SelectedItem.ToString());
                int aa3 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA3R.SelectedItem.ToString());
                int aa4 = (int)(Gene)Enum.Parse(typeof(Gene), ComboBoxA4R.SelectedItem.ToString());

                if (
                    (a1 > 0 && a2 > 0 && a3 > 0 && SelectedFlower != FlowerType.Roses)
                    ||
                    (a1 > 0 && a2 > 0 && a3 > 0 && a4 > 0)
                    )
                {
                    MyFlower cd = new MyFlower();
                    foreach (var a in ListColorDic)
                    {
                        if (SelectedFlower == FlowerType.Roses)
                        {
                            if (a.A1 == aa1.ToString() && a.A2 == aa2.ToString() && a.A3 == aa3.ToString() && a.A4 == aa4.ToString())
                            {
                                cd = a;
                                break;
                            }
                        }
                        else
                        {
                            if (a.A1 == aa1.ToString() && a.A2 == aa2.ToString() && a.A3 == aa3.ToString())
                            {
                                cd = a;
                                break;
                            }
                        }
                    }
                    TextBlockGeneR.Text        = cd.GetGeneName();
                    TextBlockColorR.Text       = FlowerHelper.ColorNameShow[cd.GetColor()];
                    TextBlockColorR.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[cd.GetColor()]);

                    string path = cd.GetImagePath();
                    ImageFlowerR.Source = new BitmapImage(new Uri(path, UriKind.Relative));
                }
            }
            break;

            case "ComboBoxSeedL":
            {
                if (cb.SelectedIndex == 0)
                {
                    return;
                }
                int index = cb.SelectedIndex - 1;
                TextBlockGeneL.Text        = ListSeed[index].GetGeneName();
                TextBlockColorL.Text       = FlowerHelper.ColorNameShow[ListSeed[index].GetColor()];
                TextBlockColorL.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[ListSeed[index].GetColor()]);
                string path = ListSeed[index].GetImagePath();
                ImageFlowerL.Source = new BitmapImage(new Uri(path, UriKind.Relative));
            }
            break;

            case "ComboBoxSeedR":
            {
                if (cb.SelectedIndex == 0)
                {
                    return;
                }
                int index = cb.SelectedIndex - 1;
                TextBlockGeneR.Text        = ListSeed[index].GetGeneName();
                TextBlockColorR.Text       = FlowerHelper.ColorNameShow[ListSeed[index].GetColor()];
                TextBlockColorR.Foreground = new SolidColorBrush(FlowerHelper.ColorShow[ListSeed[index].GetColor()]);
                string path = ListSeed[index].GetImagePath();
                ImageFlowerR.Source = new BitmapImage(new Uri(path, UriKind.Relative));
            }
            break;
            }
        }
Пример #8
0
 public Explosion(FlowerHelper helper) : base(helper)
 {
 }
Пример #9
0
        private void B_Click()
        {
            switch (GlobalTool.ButtonNameParent)
            {
            case "ButtonSearch":
            {
                ObservableCollection <ParentCard> reCard = new ObservableCollection <ParentCard>();

                if (GlobalTool.BoolColor == true)
                {        //按颜色查父本
                    if (GlobalTool.IndexColor == 0)
                    {
                        GlobalTool.OpenDialogButton(_syncContextTaskScheduler, "没有选择颜色");
                        return;
                    }
                    if (SelectedColorDic == null || SelectedColorDic.Count == 0)
                    {
                        return;
                    }

                    foreach (var everyflower in SelectedColorDic)
                    {
                        var parent = FlowerHelper.GetMyParent(everyflower);
                        foreach (var a in parent)
                        {
                            var  aa       = new ParentCard(a);
                            bool inResult = false;
                            foreach (var b in reCard)
                            {
                                if (b.TextGeneLeft == aa.TextGeneLeft && b.TextGeneRight == aa.TextGeneRight)
                                {
                                    inResult = true;
                                }
                            }
                            if (!inResult)
                            {
                                reCard.Add(aa);
                            }
                        }
                    }
                }
                if (GlobalTool.BoolGene == true)
                {        //按基因型查父本
                    Gene     a1 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1);
                    Gene     a2 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2);
                    Gene     a3 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3);
                    Gene     a4 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4);
                    MyFlower f  = new MyFlower(SelectedFlower, a1, a2, a3, a4);
                    var      re = FlowerHelper.GetMyParent(f);

                    foreach (var a in re)
                    {
                        reCard.Add(new ParentCard(a));
                    }
                }

                Task.Factory.StartNew(() => ShowData(reCard),
                                      new CancellationTokenSource().Token, TaskCreationOptions.None, _syncContextTaskScheduler).Wait();
            }
            break;
            }
        }
Пример #10
0
 public Slingshot(FlowerHelper helper) : base(helper)
 {
 }
Пример #11
0
 public BaseCreator(FlowerHelper helper)
 {
     this.helper = helper;
 }
Пример #12
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            if (GlobalTool.NaviViewMain.SelectedItem != GlobalTool.NaviItemZajiao)
            {
                return;
            }

            List <MyFlower> ParentL = new List <MyFlower>();
            List <MyFlower> ParentR = new List <MyFlower>();

            if (GlobalTool.BoolColorL == true)
            {//按颜色L
                if (GlobalTool.IndexColorL == 0)
                {
                    GlobalTool.TipSearch.IsOpen = true;
                    return;
                }
                foreach (var everyflower in SelectedColorDicL)
                {
                    ParentL.Add(everyflower);
                }
            }
            if (GlobalTool.BoolColorR == true)
            {//按颜色R
                if (GlobalTool.IndexColorR == 0)
                {
                    GlobalTool.TipSearch.IsOpen = true;
                    return;
                }
                foreach (var everyflower in SelectedColorDicR)
                {
                    ParentR.Add(everyflower);
                }
            }
            if (GlobalTool.BoolGeneL == true)
            {//按基因型L
                Gene     a1 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1L);
                Gene     a2 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2L);
                Gene     a3 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3L);
                Gene     a4 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4L);
                MyFlower f  = new MyFlower(GlobalTool.SelectedFlower, a1, a2, a3, a4);
                foreach (var i in f.GetIntArray())
                {
                    if (i == 0)
                    {
                        GlobalTool.TipSearch.IsOpen = true;
                        return;
                    }
                }
                foreach (var a in GlobalTool.ListColorDic)
                {
                    if (f.GetGeneName() == a.GetGeneName())
                    {
                        ParentL.Add(a);
                    }
                }
            }
            if (GlobalTool.BoolGeneR == true)
            {//按基因型R
                Gene     a1 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1R);
                Gene     a2 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2R);
                Gene     a3 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3R);
                Gene     a4 = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4R);
                MyFlower f  = new MyFlower(GlobalTool.SelectedFlower, a1, a2, a3, a4);
                foreach (var i in f.GetIntArray())
                {
                    if (i == 0)
                    {
                        GlobalTool.TipSearch.IsOpen = true;
                        return;
                    }
                }
                foreach (var a in GlobalTool.ListColorDic)
                {
                    if (f.GetGeneName() == a.GetGeneName())
                    {
                        ParentR.Add(a);
                    }
                }
            }
            if (GlobalTool.BoolSeedL == true)
            {//按种子L
                int index = GlobalTool.IndexSeedL;
                if (index == 0)
                {
                    GlobalTool.TipSearch.IsOpen = true;
                    return;
                }
                ParentL.Add(ListSeed[index - 1]);
            }
            if (GlobalTool.BoolSeedR == true)
            {//按种子R
                int index = GlobalTool.IndexSeedR;
                if (index == 0)
                {
                    GlobalTool.TipSearch.IsOpen = true;
                    return;
                }
                ParentR.Add(ListSeed[index - 1]);
            }

            GlobalTool.ShowProgress();
            await Task.Factory.StartNew(() =>
            {
                ObservableCollection <ChildCard> result = new ObservableCollection <ChildCard>();
                foreach (var L in ParentL)
                {
                    foreach (var R in ParentR)
                    {
                        var children = FlowerHelper.GetOurChildren(L, R);
                        foreach (var child in children)
                        {
                            var childcard = new ChildCard(L, R, child, FlowerHelper.GetProbability(L, R, child));
                            bool isinList = false;
                            foreach (var a in result)
                            {
                                if (
                                    (
                                        childcard.Gene == a.Gene &&
                                        childcard.GeneP1 == a.GeneP1 &&
                                        childcard.GeneP2 == a.GeneP2
                                    )
                                    ||
                                    (
                                        childcard.Gene == a.Gene &&
                                        childcard.GeneP2 == a.GeneP1 &&
                                        childcard.GeneP1 == a.GeneP2
                                    )
                                    )
                                {
                                    isinList = true;
                                }
                            }
                            if (!isinList)
                            {
                                result.Add(childcard);
                            }
                        }
                    }
                }
                Sync.Post((o) =>
                {
                    GlobalTool.CloseProgress();
                    var r = o as ObservableCollection <ChildCard>;
                    ListViewChildren.ItemsSource = r;
                }, result);
            });
        }
Пример #13
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (GlobalTool.NaviViewMain.SelectedItem != GlobalTool.NaviItemParent)
            {
                return;
            }

            ObservableCollection <ParentCard> reCard = new ObservableCollection <ParentCard>();

            GlobalTool.ShowProgress();
            Task.Factory.StartNew(() =>
            {
                if (GlobalTool.BoolColor == true)
                {//按颜色查父本
                    if (GlobalTool.IndexColor == 0)
                    {
                        GlobalTool.TipSearch.IsOpen = true;
                        return;
                    }
                    if (SelectedColorDic == null || SelectedColorDic.Count == 0)
                    {
                        return;
                    }

                    foreach (var everyflower in SelectedColorDic)
                    {
                        var parent = FlowerHelper.GetMyParent(everyflower);
                        foreach (var a in parent)
                        {
                            var aa        = new ParentCard(a);
                            bool inResult = false;
                            foreach (var b in reCard)
                            {
                                if (b.TextGeneLeft == aa.TextGeneLeft && b.TextGeneRight == aa.TextGeneRight)
                                {
                                    inResult = true;
                                }
                            }
                            if (!inResult)
                            {
                                reCard.Add(aa);
                            }
                        }
                    }
                }
                if (GlobalTool.BoolGene == true)
                {//按基因型查父本
                    Gene a1    = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA1);
                    Gene a2    = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA2);
                    Gene a3    = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA3);
                    Gene a4    = (Gene)Enum.Parse(typeof(Gene), GlobalTool.ItemA4);
                    MyFlower f = new MyFlower(GlobalTool.SelectedFlower, a1, a2, a3, a4);
                    var re     = FlowerHelper.GetMyParent(f);

                    foreach (var a in re)
                    {
                        reCard.Add(new ParentCard(a));
                    }
                }

                Sync.Post((o) =>
                {
                    GlobalTool.CloseProgress();
                    var r = o as ObservableCollection <ParentCard>;
                    ListViewParent.ItemsSource = r;
                }, reCard);
            });
        }