// package bf_ammo_stat -- бизнес-функция статистики снарядов package bf_ammo_stat import ( "strconv" "strings" . "gitp78su.ipnodns.ru/svi/kern/kc/helpers" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/types" ) // СнарядыСтат -- получает статистику снарядов func СнарядыСтат(конт ILocalCtx) { арсенал := конт.Get("арсенал") if арсенал == nil { // Может быть не построен return } фугасыНайти(конт) бронейбойкиНайти(конт) кумульНайти(конт) ремкаНайти(конт) } func ремкаНайти(конт ILocalCtx) { арсенал := конт.Get("арсенал").Val().(ИАренаАрсенал) lstArsenal := арсенал.СписПолучить() if len(lstArsenal) == 0 { арсенал.Обновить() lstArsenal = арсенал.СписПолучить() } strOut := "" isFind := false // 282 for _, стрСнаряд := range lstArsenal { if strings.Contains(стрСнаряд, ` `) { strOut = стрСнаряд isFind = true break } } Hassert(isFind, "ремкаНайти(): не найдена контрольная строка") strOut = strings.TrimPrefix(strOut, ` `) strOut = strings.TrimSuffix(strOut, ``) целФугас, err := strconv.Atoi(strOut) Hassert(err == nil, "ремкаНайти(): strOut(%v), err=\n\t%v", strOut, err) арсенал.Ремки().Уст(целФугас) } func кумульНайти(конт ILocalCtx) { арсенал := конт.Get("арсенал").Val().(ИАренаАрсенал) lstArsenal := арсенал.СписПолучить() if len(lstArsenal) == 0 { арсенал.Обновить() lstArsenal = арсенал.СписПолучить() } strOut := "" isFind := false // Кумулятивный снаряд 7340    for _, стрСнаряд := range lstArsenal { if strings.Contains(стрСнаряд, `Кумулятивный снаряд `) { strOut = стрСнаряд isFind = true break } } Hassert(isFind, "кумульНайти(): не найдена контрольная строка") strOut = strings.TrimPrefix(strOut, `Кумулятивный снаряд `) strOut = strings.TrimSuffix(strOut, `   `) целФугас, err := strconv.Atoi(strOut) Hassert(err == nil, "кумульНайти(): strOut(%v), err=\n\t%v", strOut, err) арсенал.Кумулятивы().Уст(целФугас) } func бронейбойкиНайти(конт ILocalCtx) { арсенал := конт.Get("арсенал").Val().(ИАренаАрсенал) lstArsenal := арсенал.СписПолучить() if len(lstArsenal) == 0 { арсенал.Обновить() lstArsenal = арсенал.СписПолучить() } strOut := "" isFind := false // Бронебойный снаряд 7335    for _, стрСнаряд := range lstArsenal { if strings.Contains(стрСнаряд, `Бронебойный снаряд `) { strOut = стрСнаряд isFind = true break } } Hassert(isFind, "бронейбойкиНайти(): не найдена контрольная строка") strOut = strings.TrimPrefix(strOut, `Бронебойный снаряд `) strOut = strings.TrimSuffix(strOut, `   `) целФугас, err := strconv.Atoi(strOut) Hassert(err == nil, "бронейбойкиНайти(): strOut(%v), err=\n\t%v", strOut, err) арсенал.Бронебойки().Уст(целФугас) } func фугасыНайти(конт ILocalCtx) { арсенал := конт.Get("арсенал").Val().(ИАренаАрсенал) lstArsenal := арсенал.СписПолучить() if len(lstArsenal) == 0 { арсенал.Обновить() lstArsenal = арсенал.СписПолучить() } strOut := "" isFind := false // Фугасный снаряд 7343    for _, стрФугас := range lstArsenal { if strings.Contains(стрФугас, `Фугасный снаряд `) { strOut = стрФугас isFind = true break } } Hassert(isFind, "фугасыНайти(): не найдена контрольная строка") strOut = strings.TrimPrefix(strOut, `Фугасный снаряд `) strOut = strings.TrimSuffix(strOut, `   `) целФугас, err := strconv.Atoi(strOut) Hassert(err == nil, "фугасыНайти(): strOut(%v), err=\n\t%v", strOut, err) арсенал.Фугасы().Уст(целФугас) }