// package bf_silver_prod -- бизнес-процесс производить серебро package bf_silver_prod import ( "strconv" "strings" . "gitp78su.ipnodns.ru/svi/kern/kc/helpers" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/alias" . "wartank/app/lev0/types" ) // СереброПроизводить -- заставляет банк производить серебро func СереброПроизводить(конт ILocalCtx) { банк_ := конт.Get("арена_банк") if банк_ == nil { // Возможно ещё не построен return } получитьВсеРежимы(конт) сделатьСеребро(конт) } // Получает все режимы банка func получитьВсеРежимы(конт ILocalCtx) { банк := конт.Get("арена_банк").Val().(ИАренаБанк) var ( lstBank = банк.СписПолучить() ind int strMode string strMode1 string strMode2 string ) if len(lstBank) == 0 { банк.Обновить() lstBank = банк.СписПолучить() } { // Получить первый режим for ind, strMode = range lstBank { if strings.Contains(strMode, `Кол-во: `) { strMode1 = strMode break } } lstMode := strings.Split(strMode1, `Кол-во: `) strMode1 = lstMode[1] lstMode = strings.Split(strMode1, `
`) strMode1 = lstMode[0] iNum1, err := strconv.Atoi(strMode1) Hassert(err == nil, "получитьВсеРежимы(): ошибка в режиме-1 банка, ош=\n\t%v", err) банк.РежимРаботы1().Серебро().Уст(iNum1) // Установить время производства strTime1 := lstBank[ind+2] банк.РежимРаботы1().ВремяСделатьУст(strTime1) if iNum1 <= 2 { // Если банк слишком слабый return } } { // Получить второй режим for _ind := ind + 2; _ind < len(lstBank); _ind++ { strMode := lstBank[_ind] if strings.Contains(strMode, `Кол-во: `) { strMode2 = strMode ind = _ind break } } lstMode := strings.Split(strMode2, `Кол-во: `) strMode2 = lstMode[1] lstMode = strings.Split(strMode2, `
`) strMode2 = lstMode[0] iNum2, err := strconv.Atoi(strMode2) Hassert(err == nil, "получитьВсеРежимы(): ошибка в режиме-2 банка, ош=\n\t%v", err) банк.РежимРаботы2().Серебро().Уст(iNum2) // Установить время производства strTime2 := lstBank[ind+2] банк.РежимРаботы2().ВремяСделатьУст(strTime2) } } // Запускает в производство серебро func сделатьСеребро(конт ILocalCtx) { банк := конт.Get("арена_банк").Val().(ИАренаБанк) var ( lstBank = банк.СписПолучить() ind int strOut string strLink string еслиНайдено bool ) time1 := банк.РежимРаботы1().ВремяСделать() time2 := банк.РежимРаботы2().ВремяСделать() if time1 > time2 { time1 = time2 } for ind, strOut = range lstBank { if strings.Contains(strOut, time1) { ind += 7 strLink = lstBank[ind] еслиНайдено = true break } } if еслиНайдено && strings.Contains(strLink, `>Начать производство
`) { lstLink := strings.Split(strLink, `Начать производство`) strLink = "https://wartank.ru/production/" + lstLink[0] _, err := банк.Сеть().Get(strLink) Hassert(err == nil, "сделатьСеребро(): при выполнении GET-запроса, ош=\n\t%v", err) err = банк.ОбратВремяУст(АВремя(time1)) Hassert(err == nil, "сделатьСеребро(): при установке времени производства банка(%v), err=\n\t%v", time1, err) } }