Exemplo n.º 1
0
        void UiCraftListPink(PinkCharacter pink)
        {
            for (int i = 0; i < 5; i++)
            {
                picList[i].Image    = null;
                picList[i].SizeMode = PictureBoxSizeMode.StretchImage;
                picList[i].Image    = Image.FromFile(mainForm.blueList[pink.SсhemeCraft[i]].ImgUrl);

                nameList[i].Text            = mainForm.blueList[pink.SсhemeCraft[i]].Name;
                countList[i].Text           = mainForm.blueList[pink.SсhemeCraft[i]].Count.ToString();
                totalDifficultyList[i].Text = mainForm.blueList[pink.SсhemeCraft[i]].TotalDifficulty.ToString();

                if (mainForm.blueList[pink.SсhemeCraft[i]].Id == 0 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 1 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 2 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 3 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 4 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 5 ||
                    mainForm.blueList[pink.SсhemeCraft[i]].Id == 6)
                {
                    SearchList[i].Text = "";
                }
                else
                {
                    SearchList[i].Text = SearchString(mainForm.blueList[pink.SсhemeCraft[i]]);
                }
            }
        }
Exemplo n.º 2
0
        //Функции расчёта к-ва недостающих персов для крафта
        public int tmpCount(PinkCharacter pinkChamp)
        {
            //Флаг проверки наличия 1 реального перса и пропуск 1 итерации.
            //Если мы нашли 1 реального перса с к-ом больш 0, то мы минисуме его колличество и флагом в общем цикле пропускаем его 1 раз
            bool flag = false;

            //Проверка на наличие схемы крафта
            if (pinkChamp.SсhemeCraft[0] == 9999999)
            {
                return(99);
            }
            else
            {
                //Общее к-во персов в крафте
                int tmp = 5;

                //Айдишник для запоминания
                int realId = -9;//Для условности даём любое значение

                //Присваиваем всем синим персам переменную для работы
                FakeCount(0);

                //Ищем "конкретного" перса в схеме крафта
                foreach (int tmpId in pinkChamp.SсhemeCraft)
                {
                    //Ищем реального, не обобщённого перса
                    if (tmpId != 0 || tmpId != 1 || tmpId != 2 || tmpId != 3 || tmpId != 4 || tmpId != 5 || tmpId != 6)
                    {
                        //Сохраняем его Ид
                        realId = tmpId;

                        //ПРоверяем, что бы его к-во было больше 0
                        if (blueList[tmpId].FakeCount > 0)
                        {
                            //Минусуем фейковое значение САМОГО ПЕРСА
                            blueList[tmpId].FakeCount--;

                            //Минусуем фейковое значение персов этой стихии
                            switch (blueList[tmpId].Element)
                            {
                            case 0: blueList[4].FakeCount--; break;

                            case 1: blueList[5].FakeCount--; break;

                            case 2: blueList[3].FakeCount--; break;

                            case 3: blueList[0].FakeCount--; break;

                            case 4: blueList[1].FakeCount--; break;

                            case 5: blueList[2].FakeCount--; break;
                            }

                            //Минисуем общее кол всех персов
                            blueList[6].FakeCount--;

                            //Минусуем колличество недостающих персов для крафта
                            tmp--;
                            //Меняем флаг, что бы 1 раз пропустить в общем поиске
                            flag = false;
                            break;
                        }
                        else
                        {
                            //Если не нашли перса в рецепте с к-вом больше 0, то поднимаем флаг
                            flag = true;
                        }
                    }
                }

                //Общий обход рецепта
                for (int i = 0; i < 5; i++)
                {
                    //Если мы уже гнашли 1 перса и уменьшили его-кво, то пропускаем его 1 раз и опускаем фалг, что бы снова не заходить в условие
                    if (blueList[pinkChamp.SсhemeCraft[i]].Id != realId && !flag)
                    {
                        flag = true;
                        continue;
                    }

                    //Проверяем перса на обобщённость
                    if (blueList[pinkChamp.SсhemeCraft[i]].Id != 0 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 1 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 2 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 3 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 4 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 5 ||
                        blueList[pinkChamp.SсhemeCraft[i]].Id != 6)
                    {
                        //Елси реальный перс, то проверяем на его наличие у нас
                        if (blueList[pinkChamp.SсhemeCraft[i]].FakeCount > 0)
                        {
                            //Минусуем его к-во
                            blueList[pinkChamp.SсhemeCraft[i]].FakeCount--;

                            //Минусуем недостающих персов
                            tmp--;

                            //Минусуем перса по стихиям
                            switch (blueList[pinkChamp.SсhemeCraft[i]].Element)
                            {
                            case 0: blueList[4].FakeCount--; break;

                            case 1: blueList[5].FakeCount--; break;

                            case 2: blueList[3].FakeCount--; break;

                            case 3: blueList[0].FakeCount--; break;

                            case 4: blueList[1].FakeCount--; break;

                            case 5: blueList[2].FakeCount--; break;
                            }

                            //Минусуем общее к-во
                            blueList[6].FakeCount--;
                        }
                    }
                    else
                    {
                        //Если перс обобщённый

                        //Проверяем на наличие
                        if (blueList[pinkChamp.SсhemeCraft[i]].FakeCount > 0)
                        {
                            //Минусуем по стихиям
                            switch (blueList[pinkChamp.SсhemeCraft[i]].Element)
                            {
                            case 0: pinkList[4].FakeCount--; break;

                            case 1: pinkList[5].FakeCount--; break;

                            case 2: pinkList[3].FakeCount--; break;

                            case 3: pinkList[0].FakeCount--; break;

                            case 4: pinkList[1].FakeCount--; break;

                            case 5: pinkList[2].FakeCount--; break;
                            }
                            //Минусуем недостающих персов
                            tmp--;

                            //Минусуем общее к-во
                            blueList[6].FakeCount--;
                        }
                    }
                }
                return(tmp);
            }
        }