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]]); } } }
//Функции расчёта к-ва недостающих персов для крафта 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); } }