public void ClearElements()
 {
     Karts.Clear();
     Array.Clear(SelectedKarts, 0, SelectedKarts.Length);
     TurnKartPaletteBlocks.Clear();
     SpinKartPaletteBlocks.Clear();
     //Tracks.Clear();
     //Array.Clear(SelectedTracks, 0, SelectedTracks.Length);
     KartGraphicsBlock = null;
     TextureHub.ClearTextureData();
 }
Esempio n. 2
0
        public static bool NewKart(string newKartName)
        {
            if (Karts.Exists(k => k.Kart.KartName == newKartName))
            {
                return(false);
            }

            Karts.Add(new KartWrapper(new KartInfo(newKartName, null, false)));
            ChompShopAlerts.UpdateKartsLoaded();
            return(true);
        }
Esempio n. 3
0
        public static void CopyKart(KartWrapper kart)
        {
            int    nameCount = 1;
            string newName   = kart.Kart.KartName;

            while (Karts.Exists(k => k.Kart.KartName == newName + nameCount.ToString()))
            {
                nameCount++;
            }
            newName += nameCount.ToString();

            KartWrapper kartWrapper = new KartWrapper(kart, newName);

            Karts.Add(kartWrapper);
            ChompShopAlerts.UpdateKartsLoaded();
        }
Esempio n. 4
0
        private static void FinishedLoadingKarts(object sender, RunWorkerCompletedEventArgs args)
        {
            if (!args.Cancelled && args.Error == null)
            {
                //Load in the karts

                List <KartWrapper> wrappers = new List <KartWrapper>();

                List <KartInfo> karts = (List <KartInfo>)args.Result;

                foreach (KartInfo kart in karts)
                {
                    //Check to see if it exists
                    if (Karts.Exists(k => k.Kart.KartName == kart.KartName))
                    {
                        DialogResult result = MessageBox.Show("Kart \"" + kart.KartName + "\" already exists. Replace previous Kart with this Kart? Unsaved changes will be lost!",
                                                              "Name Conflict", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

                        if (result == DialogResult.Cancel)
                        {
                            //quit out of loading
                            wrappers.Clear();
                            break;
                        }
                        else if (result == DialogResult.No)
                        {
                            continue;
                        }
                        else //Yes
                        {
                            //Remove the kart from the list here
                            Karts.Remove(Karts.Single(k => k.Kart.KartName == kart.KartName));
                        }
                    }

                    wrappers.Add(new KartWrapper(kart));
                }

                if (wrappers.Count > 0)
                {
                    Karts.AddRange(wrappers);
                    ChompShopAlerts.UpdateKartsLoaded();
                }
            }

            Pitstop64.Services.ProgressService.StopDialog();
        }
Esempio n. 5
0
        bool Check(Karts button, Karts CheckB)
        {
            int koldg = 0;

            if (hod == false && hp == 1)
            {
                foreach (Karts ph1 in masb)
                {
                    if ((ph1.B.FlatAppearance.BorderColor == Color.Red || ph1.B.FlatAppearance.BorderColor == Color.DarkGray || ph1.B.FlatAppearance.BorderColor == Color.Gray) && ph1.Zn == button.Zn && ph1 != button || masb.Count(ob => ob.B.FlatAppearance.BorderColor != SystemColors.ButtonFace && ob.B.FlatAppearance.BorderColor != Color.Black) == 1)
                    {
                        return(true);
                    }
                }
                foreach (Karts mh in HandK)
                {
                    if (mh.B.FlatAppearance.BorderColor == Color.Green && mh.Zn == button.Zn)
                    {
                        return(true);
                    }
                }

                return(false);
            }//Проверка правильно ли противник подкинул нам карту
            if (hod == true && hp == 0)
            {
                foreach (Karts ph in masb)
                {
                    if (ph.B.FlatAppearance.BorderColor == Color.Red)
                    {
                        if (CheckB.Mast != KozMast && ph.Zn > CheckB.Zn && ph.Mast == CheckB.Mast ||
                            CheckB.Mast != KozMast && ph.Mast == KozMast ||
                            ph.Mast == KozMast && CheckB.Mast == KozMast && CheckB.Zn < ph.Zn)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
            }//Проверка правильно ли он побил
            return(true);
        }
Esempio n. 6
0
        public static void RemoveKart(KartWrapper kart)
        {
            if (!Karts.Contains(kart))
            {
                return;
            }

            if (kart.IsModified)
            {
                //Double check that they don't mind losing their changes
                if (MessageBox.Show("Kart has unexported changes. Do you really want to remove it from Chomp Shop?", "Warning",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No)
                {
                    return;
                }
            }

            Karts.Remove(kart);

            ChompShopAlerts.RemoveKart(kart);
        }
Esempio n. 7
0
        }//Ход противника

        private void B_Click31(object sender, EventArgs e)
        {
            hp--;
            var button = (Button)sender;


            button.FlatAppearance.BorderColor = Color.Green;
            button.FlatAppearance.BorderSize  = 3;

            if (MainLabel.Text != "Какие карты вы еще подкинете?")
            {
                if (hod == true)
                {
                    CheckB = HandK.Find(bu => bu.B == button);
                }
                Boi();
            }
            else
            {
                TakeB_Func();
            }
        }//Мой ход
Esempio n. 8
0
        }//Первый ход противника

        private void B_Click32(object sender, EventArgs e)
        {
            var button = (Button)sender;

            hp++;
            button.FlatAppearance.BorderColor = Color.Red;
            button.FlatAppearance.BorderSize  = 3;
            Karts ob = null;

            foreach (Karts ph in masb)
            {
                if (ph.B == button)
                {
                    ob = ph;
                    break;
                }
            }



            if (MainLabel.Text == "Какие карты еще подкинул противник?")
            {
                hp = 1;
            }
            if (Check(ob, CheckB))
            {
                if (MainLabel.Text != "Какие карты еще подкинул противник?")
                {
                    Boi();
                }
                else
                {
                    button.FlatAppearance.BorderColor = Color.DarkRed;
                }
            }
            else
            {
                if (MainLabel.Text == "Какие карты еще подкинул противник?")
                {
                    MainLabel.Text = "Противник смухлевал(Вы можете  сказать ему об этом, или продолжить игру)";
                }
                else
                {
                    MainLabel.Text = "Противник смухлевал(Вы можете сказать ему об этом, или продолжить игру)";
                }
                NoB.Visible = false;
                foreach (Karts ph in masb)
                {
                    ph.B.Enabled = false;
                }
                SayB.Anchor = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                | AnchorStyles.Left)
                               | AnchorStyles.Right);
                SayB.Cursor    = Cursors.Hand;
                SayB.FlatStyle = FlatStyle.Flat;
                SayB.Visible   = true;
                SayB.UseVisualStyleBackColor = false;
                SayB.Text = "Сказать ему";
                Hand.Controls.Add(SayB, Hand.ColumnCount - (int)(HandK.Count * 0.7), 0);

                Hand.Controls.Add(ContB, Hand.ColumnCount - (int)(HandK.Count * 0.4), 0);
                ContB.Dock   = DockStyle.Bottom;
                ContB.Cursor = Cursors.Hand;
                ContB.UseVisualStyleBackColor = false;
                ContB.Visible   = true;
                ContB.FlatStyle = FlatStyle.Flat;
                ContB.Anchor    = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                    | AnchorStyles.Left)
                                   | AnchorStyles.Right);
                ContB.Text   = "Продолжить игру";
                SayB.Click  += SayB_Click;
                ContB.Click += ContB_Click;
            }
        }//Ход противника
Esempio n. 9
0
        public void ZaverB_Click(object sender, EventArgs e)
        {
            int kolphv = 0;

            EndF();
            if (hp == 0)
            {
                foreach (Karts ph in masb)
                {
                    if (ph.B.FlatAppearance.BorderColor == Color.Red || ph.B.FlatAppearance.BorderColor == Color.Gray || ph.B.FlatAppearance.BorderColor == Color.DarkGray)
                    {
                        ph.B.FlatAppearance.BorderColor = SystemColors.ButtonFace;
                        ph.B.Visible = false;
                        kolkp--;
                    }
                    if (ph.B.Visible == true)
                    {
                        kolphv++;//подсчет карт на столе
                    }
                }
                for (int i = 0; i < HandK.Count; i++)
                {
                    Karts mh = HandK[i];
                    if (mh.B.FlatAppearance.BorderColor == Color.Green)
                    {
                        Hand.ColumnStyles[Hand.GetColumn(mh.B)].Width = 0;
                        Hand.Controls.Remove(mh.B);
                        HandK.Remove(mh);
                        i--;
                    }
                    if (mh.B.FlatAppearance.BorderColor == Color.Blue)
                    {
                        mh.B.FlatAppearance.BorderColor = SystemColors.ButtonFace;
                    }
                }//Удаление карт из руки
                if (HandK.Count < 6)
                {
                    foreach (Karts ph in masb)
                    {
                        ph.B.Enabled = true;
                        ph.B.Click  += B_Click2;

                        ph.B.Click -= B_Click32;
                        if (ph.B.FlatAppearance.BorderColor == Color.Black)
                        {
                            ph.B.Enabled = false;
                        }
                    }
                    foreach (Karts mh in HandK)
                    {
                        mh.B.Enabled = false;
                    }
                }
                //смена хода
                else
                {
                    if (hod == true)
                    {
                        foreach (Karts mh in HandK)
                        {
                            mh.B.Enabled = false;
                        }
                        foreach (Karts ph in masb)
                        {
                            ph.B.Enabled = true;
                        }
                    }
                    else
                    {
                        foreach (Karts mh in HandK)
                        {
                            mh.B.Enabled = true;
                        }
                        foreach (Karts ph in masb)
                        {
                            ph.B.Enabled = false;
                        }
                    }
                }

                //Смена хода
                if (hod == false)
                {
                    hod = true;
                }
                else
                {
                    hod = false;
                }


                ChangeLabel();
            }
        }//Кнопка завершения хода
Esempio n. 10
0
        private void NoB_Click(object sender, EventArgs e)
        {
            int kolphv = 0;

            ZaverB.Visible = true;
            TakeB.Visible  = true;
            EndF();
            if (hod == false)
            {
                foreach (Karts ph in masb)
                {
                    if (ph.B.FlatAppearance.BorderColor == Color.DarkRed || ph.B.FlatAppearance.BorderColor == Color.Red || ph.B.FlatAppearance.BorderColor == Color.Gray || ph.B.FlatAppearance.BorderColor == Color.DarkGray)
                    {
                        ph.B.FlatAppearance.BorderColor = SystemColors.ButtonFace;
                        ph.B.Visible = false;
                        HandK.Add(new Karts());



                        Hand.ColumnCount += 1;
                        Hand.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
                        Hand.Controls.Add(HandK[HandK.Count - 1].B, HandK.Count, 1);

                        HandK[HandK.Count - 1].B.Anchor = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                                            | AnchorStyles.Left)
                                                           | AnchorStyles.Right);
                        HandK[HandK.Count - 1].B.BackColor             = Color.Transparent;
                        HandK[HandK.Count - 1].B.BackgroundImage       = ph.B.BackgroundImage;
                        HandK[HandK.Count - 1].B.BackgroundImageLayout = ImageLayout.Zoom;
                        HandK[HandK.Count - 1].B.Cursor = Cursors.Hand;
                        HandK[HandK.Count - 1].B.FlatAppearance.BorderColor        = SystemColors.ButtonFace;
                        HandK[HandK.Count - 1].B.FlatAppearance.BorderSize         = 7;
                        HandK[HandK.Count - 1].B.FlatAppearance.MouseOverBackColor = Color.Transparent;
                        HandK[HandK.Count - 1].B.FlatStyle = FlatStyle.Flat;
                        HandK[HandK.Count - 1].B.Visible   = true;
                        HandK[HandK.Count - 1].B.UseVisualStyleBackColor = false;
                        HandK[HandK.Count - 1].Zn       = ph.Zn;
                        HandK[HandK.Count - 1].Mast     = ph.Mast;
                        HandK[HandK.Count - 1].B.Click += B_Click31;
                    }
                }//Добавление карт в руку
                foreach (Karts mh in HandK)
                {
                    if (mh.B.FlatAppearance.BorderColor == Color.Blue || mh.B.FlatAppearance.BorderColor == Color.Green)
                    {
                        mh.B.FlatAppearance.BorderColor = SystemColors.ButtonFace;
                    }
                }//Убираем лишние рамки
                foreach (Karts mh in HandK)
                {
                    mh.B.Enabled = false;
                }// Выключаем руку

                foreach (Karts ph in masb)
                {
                    ph.B.Enabled = true;
                }//Включаем стол
            }
            else
            {
                foreach (Karts mh in HandK)
                {
                    if (mh.B.FlatAppearance.BorderColor == Color.Green)
                    {
                        foreach (Karts ph in masb)
                        {
                            if (ph.Zn == mh.Zn && ph.Mast == mh.Mast)
                            {
                                ph.B.Visible = true;
                                ph.B.FlatAppearance.BorderColor = Color.Black;
                                kolkp++;
                            }
                            if (ph.B.Visible == true)
                            {
                                kolphv++;
                            }
                        }
                    }
                }//Добавление карт из руки на стол
                for (int i = 0; i < HandK.Count; i++)
                {
                    Karts mh = HandK[i];
                    if (mh.B.FlatAppearance.BorderColor == Color.Green)
                    {
                        Hand.ColumnStyles[Hand.GetColumn(mh.B)].Width = 0;
                        Hand.Controls.Remove(mh.B);
                        HandK.Remove(mh);
                        i--;
                    }
                    if (mh.B.FlatAppearance.BorderColor == Color.Blue)
                    {
                        mh.B.FlatAppearance.BorderColor = SystemColors.ButtonFace;
                    }
                }//Удаление карт из руки
                foreach (Karts ph in masb)
                {
                    if (ph.B.FlatAppearance.BorderColor == Color.DarkGray || ph.B.FlatAppearance.BorderColor == Color.Red)
                    {
                        ph.B.FlatAppearance.BorderColor = Color.Black;
                    }
                }//Окраска 100-процентных карт со стола
                if (HandK.Count < 6)
                {
                    foreach (Karts ph in masb)
                    {
                        ph.B.Click -= B_Click32;
                        ph.B.Click += B_Click2;
                        if (ph.B.FlatAppearance.BorderColor == Color.Black)
                        {
                            ph.B.Enabled = false;
                        }
                        else
                        {
                            ph.B.Enabled = true;
                        }
                    }
                    foreach (Karts mh in HandK)
                    {
                        mh.B.Enabled = false;
                    }

                    if (kolphv < 12 - HandK.Count)
                    {
                        ForPB.Anchor = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                         | AnchorStyles.Left)
                                        | AnchorStyles.Right);
                        ForPB.Cursor    = Cursors.Hand;
                        ForPB.FlatStyle = FlatStyle.Flat;
                        ForPB.Visible   = true;
                        ForPB.UseVisualStyleBackColor = false;
                        ForPB.Text = "Остальные карты противнику";
                        Hand.Controls.Add(SayB, Hand.ColumnCount - (int)(HandK.Count * 0.5), 0);
                        Kozir.Click += B_Click2;
                    }//Конец игры
                }
            }
            NoB.Visible = false;
            hp          = 0;
            ChangeLabel();
        }
Esempio n. 11
0
        public FormDurK()
        {
            InitializeComponent();
            {
                masb[0] = new Karts()
                {
                    B = P6B, Mast = 'P'
                };
                masb[1] = new Karts()
                {
                    B = P7B, Mast = 'P'
                };
                masb[2] = new Karts()
                {
                    B = P8B, Mast = 'P'
                };
                masb[3] = new Karts()
                {
                    B = P9B, Mast = 'P'
                };
                masb[4] = new Karts()
                {
                    B = P10B, Mast = 'P'
                };
                masb[5] = new Karts()
                {
                    B = PVB, Mast = 'P'
                };
                masb[6] = new Karts()
                {
                    B = PDB, Mast = 'P'
                };
                masb[7] = new Karts()
                {
                    B = PKB, Mast = 'P'
                };
                masb[8] = new Karts()
                {
                    B = PTB, Mast = 'P'
                };
                //Piq
                masb[9] = new Karts()
                {
                    B = B6B, Mast = 'B'
                };
                masb[10] = new Karts()
                {
                    B = B7B, Mast = 'B'
                };
                masb[11] = new Karts()
                {
                    B = B8B, Mast = 'B'
                };
                masb[12] = new Karts()
                {
                    B = B9B, Mast = 'B'
                };
                masb[13] = new Karts()
                {
                    B = B10B, Mast = 'B'
                };
                masb[14] = new Karts()
                {
                    B = BVB, Mast = 'B'
                };
                masb[15] = new Karts()
                {
                    B = BDB, Mast = 'B'
                };
                masb[16] = new Karts()
                {
                    B = BKB, Mast = 'B'
                };
                masb[17] = new Karts()
                {
                    B = BTB, Mast = 'B'
                };
                //Bub
                masb[18] = new Karts()
                {
                    B = K6B, Mast = 'K'
                };
                masb[19] = new Karts()
                {
                    B = K7B, Mast = 'K'
                };
                masb[20] = new Karts()
                {
                    B = K8B, Mast = 'K'
                };
                masb[21] = new Karts()
                {
                    B = K9B, Mast = 'K'
                };
                masb[22] = new Karts()
                {
                    B = K10B, Mast = 'K'
                };
                masb[23] = new Karts()
                {
                    B = KVB, Mast = 'K'
                };
                masb[24] = new Karts()
                {
                    B = KDB, Mast = 'K'
                };
                masb[25] = new Karts()
                {
                    B = KKB, Mast = 'K'
                };
                masb[26] = new Karts()
                {
                    B = KTB, Mast = 'K'
                };
                //Krest
                masb[27] = new Karts()
                {
                    B = H6B, Mast = 'H'
                };
                masb[28] = new Karts()
                {
                    B = H7B, Mast = 'H'
                };
                masb[29] = new Karts()
                {
                    B = H8B, Mast = 'H'
                };
                masb[30] = new Karts()
                {
                    B = H9B, Mast = 'H'
                };
                masb[31] = new Karts()
                {
                    B = H10B, Mast = 'H'
                };
                masb[32] = new Karts()
                {
                    B = HVB, Mast = 'H'
                };
                masb[33] = new Karts()
                {
                    B = HDB, Mast = 'H'
                };
                masb[34] = new Karts()
                {
                    B = HKB, Mast = 'H'
                };
                masb[35] = new Karts()
                {
                    B = HTB, Mast = 'H'
                };
                //Heart
            }//Все карты в массив
            for (int i = 0; i < n; i++)
            {
                switch (masb[i].B.Name[1])
                {
                case 'V':
                    masb[i].Zn = 11;
                    break;

                case 'D':
                    masb[i].Zn = 12;
                    break;

                case 'K':
                    masb[i].Zn = 13;
                    break;

                case 'T':
                    masb[i].Zn = 14;
                    break;

                case '1':
                    masb[i].Zn = 10;
                    break;

                default:
                    masb[i].Zn = Convert.ToInt32(masb[i].B.Name[1]) - 48;
                    break;
                }
            }//Добавление свойств
            for (int i = 0; i < n; i++)
            {
                masb[i].B.Click += B_Click1;
            }//Выбор козыря

            FormClosing        += Programm_Closing;
            MainLabel.Text      = "Выберите козыря";
            MainLabel.ForeColor = Color.Fuchsia;

            ZaverB.Visible = false;
            TakeB.Visible  = false;
            BackB.Visible  = false;
            TakeB.Click   += TakeB_Click;
            ZaverB.Click  += ZaverB_Click;

            NoB.Click += NoB_Click;
            {
                PrB.Click += PrB_Click;
                MeB.Click += MeB_Click;
            }// Нажатие "Я" или "Противник"
        }
Esempio n. 12
0
        }//Добавление свойств для карт (масть и номер)


        private void B_Click2(object sender, EventArgs e)
        {
            Karts button = new Karts()
            {
                B = (Button)sender
            };

            button.Mast = button.B.Name[0];
            switch (button.B.Name[1])
            {
            case 'V':
                button.Zn = 11;
                break;

            case 'D':
                button.Zn = 12;
                break;

            case 'K':
                button.Zn = 13;
                break;

            case 'T':
                button.Zn = 14;
                break;

            case '1':
                button.Zn = 10;
                break;

            default:
                button.Zn = Convert.ToInt32(button.B.Name[1]) - 48;
                break;
            }//Добавление свойств
            int kolphv = 0;
            var but    = (Button)sender;

            but.Visible = false;
            foreach (Karts ph in masb)
            {
                if (ph.B.Visible == true)
                {
                    kolphv++;
                }
            }
            EndF();
            if (HandK.Count < 6)
            {
                if (HandK.Count == 0)
                {
                    Hand.ColumnStyles[Hand.ColumnCount - 1].Width = 0;
                }
                HandK.Add(new Karts());
                Hand.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
                Hand.ColumnCount += 1;
                Hand.Controls.Add(HandK[HandK.Count - 1].B, Hand.ColumnCount - 1, 1);

                HandK[HandK.Count - 1].B.Anchor = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                                    | AnchorStyles.Left)
                                                   | AnchorStyles.Right);
                HandK[HandK.Count - 1].B.BackColor             = Color.Transparent;
                HandK[HandK.Count - 1].B.BackgroundImage       = button.B.BackgroundImage;
                HandK[HandK.Count - 1].B.BackgroundImageLayout = ImageLayout.Zoom;
                HandK[HandK.Count - 1].B.Cursor = Cursors.Hand;
                HandK[HandK.Count - 1].B.FlatAppearance.BorderColor        = SystemColors.ButtonFace;
                HandK[HandK.Count - 1].B.FlatAppearance.BorderSize         = 7;
                HandK[HandK.Count - 1].B.FlatAppearance.MouseOverBackColor = Color.Transparent;
                HandK[HandK.Count - 1].B.FlatStyle = FlatStyle.Flat;
                HandK[HandK.Count - 1].B.Visible   = true;
                HandK[HandK.Count - 1].B.UseVisualStyleBackColor = false;
                HandK[HandK.Count - 1].Zn       = button.Zn;
                HandK[HandK.Count - 1].Mast     = button.Mast;
                HandK[HandK.Count - 1].B.Click += B_Click31;

                if (kolphv - kolkp == 0)
                {
                    Kozir.Enabled = true;
                }
            }//Добавление карт в руку

            HandK[HandK.Count - 1].B.Enabled = false;// Отключаем руку

            if (HandK.Count == 6)
            {
                foreach (Karts ph in masb)
                {
                    ph.B.Click  -= B_Click2;
                    ph.B.Enabled = false;
                }// Отключаем стол и убираем 2 событие
                int t = 0;
                foreach (Karts ph in masb)
                {
                    if (ph.B.Visible == true)
                    {
                        t++;
                    }
                }//Считаем сколько карт на столе

                if (l)
                {
                    kolkp = 6;
                    l     = false;
                    ChangeLabel();
                    MeB.Anchor = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                   | AnchorStyles.Left)
                                  | AnchorStyles.Right);
                    MeB.Cursor    = Cursors.Hand;
                    MeB.FlatStyle = FlatStyle.Flat;
                    MeB.Visible   = true;
                    MeB.UseVisualStyleBackColor = false;
                    MeB.Text = "Вы";
                    Hand.Controls.Add(MeB, 3, 0);

                    Hand.Controls.Add(PrB, 6, 0);
                    PrB.Dock   = DockStyle.Bottom;
                    PrB.Cursor = Cursors.Hand;
                    PrB.UseVisualStyleBackColor = false;
                    PrB.Visible   = true;
                    PrB.FlatStyle = FlatStyle.Flat;
                    PrB.Anchor    = (((AnchorStyles.Top | AnchorStyles.Bottom)
                                      | AnchorStyles.Left)
                                     | AnchorStyles.Right);
                    PrB.Text = "Противник";
                    return;
                }//Если я только набрал старотовую руку
                else
                {
                    if (hod == false)
                    {
                        foreach (Karts ph in masb)
                        {
                            ph.B.Enabled = true;
                            ph.B.Click  += B_Click32;
                        }
                    }
                    else
                    {
                        foreach (Karts mh in HandK)
                        {
                            mh.B.Enabled = true;
                        }
                        foreach (Karts ph in masb)
                        {
                            ph.B.Enabled = false;
                            ph.B.Click  += B_Click32;
                        }
                    }
                }
                if (kolkp < 6)
                {
                    if (kolphv < 6 - kolkp)
                    {
                        foreach (Karts ph in masb)
                        {
                            ph.B.FlatAppearance.BorderColor = Color.Black;
                        }
                        if (Kozir.Visible == true)
                        {
                            kolkp = 1 + kolphv;
                            foreach (Karts ph in masb)
                            {
                                if (ph.Mast == KozMast && ph.Zn == KozZn)
                                {
                                    ph.B.Visible = true;
                                    ph.B.FlatAppearance.BorderColor = Color.Black;
                                    Kozir.Visible = false;
                                }
                            }
                        }
                        else
                        {
                            kolkp = kolphv;
                        }
                    }
                    else
                    {
                        kolkp = 6;
                    }
                }
                ChangeLabel();
            } //Первый ход
        }     //Добавление карт в стартовую руку(после этого все карты отключены)
Esempio n. 13
0
        public void LoadFromXML()
        {
            //TextBank/TextReferences - Only use the offset currently being used
            //KartReference - Only use the names of the karts selected
            //MIOBlocks/TKMK00Bocks - Offsets for each one
            //Karts - Full listing of information

            //Elements should already have been cleared
            //ClearElements();

            NewElementOffset = int.Parse(_loadedXml.Attribute(NEW_ELEMENT_OFFSET).Value);

            //Before we start, load up all saved karts and tracks
            ProgressService.SetMessage("Loading Kart Resources");
            foreach (RomItem item in RomProject.Instance.Items)
            {
                //If the same name kart hasn't been loaded yet
                if (item is KartInfo && Karts.FirstOrDefault(k => k.KartName == ((KartInfo)item).KartName) == null)
                {
                    this.Karts.Add((KartInfo)item);
                }
                //else if is trackinfo
            }

            //Also the text bank is all elements, so we don't need an xml in here for it
            ProgressService.SetMessage("Loading Text Blocks");
            N64DataElement textRefEl, textBlockEl;

            if (RomProject.Instance.Files[0].HasElementExactlyAt(TextReferenceBlock.TEXT_REFERENCE_SECTION_1, out textRefEl) &&
                RomProject.Instance.Files[0].HasElementExactlyAt(TextBankBlock.TEXT_BLOCK_START, out textBlockEl))
            {
                TextReferenceBlock refBlock  = (TextReferenceBlock)textRefEl;
                TextBankBlock      bankBlock = (TextBankBlock)textBlockEl;

                TextBank = new TextBank(bankBlock, refBlock, true);
            }

            int            offset;
            int            count     = 0;
            int            fullCount = _loadedXml.Elements().Count();
            N64DataElement n64Element;

            foreach (XElement element in _loadedXml.Elements())
            {
                ProgressService.SetMessage(string.Format("Storing Special Elements {0:0.0}%", (double)count / fullCount));
                switch (element.Name.ToString())
                {
                case TURN_PALETTE_BLOCK:
                    foreach (XElement el in element.Elements())
                    {
                        offset = int.Parse(el.Value);
                        if (RomProject.Instance.Files[0].HasElementExactlyAt(offset, out n64Element))
                        {
                            int            paletteOffset = offset;
                            List <Palette> palettes      = new List <Palette>();
                            palettes.Add((Palette)n64Element);
                            paletteOffset += 0x40 * 2;

                            for (int i = 1; i < 84; i++)     //Make not hardcoded later
                            {
                                if (!RomProject.Instance.Files[0].HasElementAt(paletteOffset, out n64Element))
                                {
                                    throw new Exception();
                                }

                                palettes.Add((Palette)n64Element);
                                paletteOffset += 0x40 * 2;
                            }

                            KartPaletteBlock block = new KartPaletteBlock(offset, palettes);
                            TurnKartPaletteBlocks.Add(block);
                        }
                    }
                    break;

                case SPIN_PALETTE_BLOCK:
                    foreach (XElement el in element.Elements())
                    {
                        offset = int.Parse(el.Value);
                        if (RomProject.Instance.Files[0].HasElementExactlyAt(offset, out n64Element))
                        {
                            int            paletteOffset = offset;
                            List <Palette> palettes      = new List <Palette>();
                            palettes.Add((Palette)n64Element);
                            paletteOffset += 0x40 * 2;

                            for (int i = 1; i < 80; i++)     //Make not hardcoded later
                            {
                                if (!RomProject.Instance.Files[0].HasElementAt(paletteOffset, out n64Element))
                                {
                                    throw new Exception();
                                }

                                palettes.Add((Palette)n64Element);
                                paletteOffset += 0x40 * 2;
                            }

                            KartPaletteBlock block = new KartPaletteBlock(offset, palettes);
                            SpinKartPaletteBlocks.Add(block);
                        }
                    }
                    break;

                case KARTS_GRAPHICS_REFERENCE_BLOCK:
                    offset = int.Parse(element.Value);
                    if (RomProject.Instance.Files[0].HasElementExactlyAt(offset, out n64Element))
                    {
                        if (n64Element is KartGraphicsReferenceBlock)
                        {
                            KartGraphicsBlock = (KartGraphicsReferenceBlock)n64Element;
                            //KartReader.LoadKartGraphicDmaReferences(KartGraphicsBlock);
                        }
                    }
                    break;

                case KARTS_PORTRAITS_REFERENCE_TABLE:
                    offset = int.Parse(element.Value);
                    if (RomProject.Instance.Files[0].HasElementExactlyAt(offset, out n64Element))
                    {
                        if (n64Element is KartPortraitTable)
                        {
                            KartPortraitsTable = (KartPortraitTable)n64Element;
                            //KartReader.LoadKartPortraitDmaReferences(KartPortraitsTable);
                        }
                    }
                    break;

                case SELECTED_KARTS:
                    int kartIndex = 0;
                    foreach (XElement selKart in element.Elements())
                    {
                        KartInfo selectedKart = Karts.SingleOrDefault(k => k.KartName == selKart.Name);
                        if (selectedKart != null)
                        {
                            SelectedKarts[kartIndex] = selectedKart;
                        }
                        kartIndex++;
                    }
                    break;

                case TextureHub.TEXTURE_HUB:
                    TextureHub.LoadReferencesFromXML(element);
                    break;
                }
                count++;
            }
        }