bf_fuel_find.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // package bf_fuel_find -- процесс поиска топлива в баке
  2. package bf_fuel_find
  3. import (
  4. "strconv"
  5. "strings"
  6. . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
  7. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  8. . "wartank/app/lev0/types"
  9. )
  10. // ТопливоНайти -- возвращает топливо бота
  11. func ТопливоНайти(конт ILocalCtx) {
  12. ангар := конт.Get("ангар").Val().(ИАренаАнгар)
  13. lstAngar := ангар.СписПолучить()
  14. var (
  15. strOut string
  16. еслиЕсть bool
  17. )
  18. for _, strFuel := range lstAngar {
  19. if strings.Contains(strFuel, `<img title="Топливо" `) {
  20. strOut = strFuel
  21. еслиЕсть = true
  22. break
  23. }
  24. }
  25. Hassert(еслиЕсть, "ТопливоНайти(): нет строки топлива")
  26. // Выделить топливо
  27. lstFuel := strings.Split(strOut, `<img title="Топливо" alt="Топливо" src="/images/icons/fuel.png?2"/> `)
  28. // Здесь бывает ошибка (когда возвращена пустая строка)
  29. Hassert(len(lstFuel) == 2, "Обновить(): при поиске строки топлива, стр=\n\t%v\n", strOut)
  30. Hassert(lstFuel[1] != "", "Обновить(): пустое значение в строке топлива, стр=\n\t%v\n", strOut)
  31. strFuel := lstFuel[1]
  32. iFuel, err := strconv.Atoi(strFuel)
  33. Hassert(err == nil, "ТопливоНайти(): топливо(%v) не число", iFuel)
  34. ангар.Топливо().Уст(iFuel)
  35. if iFuel <= 314 { // Минимальное значение "топливного склада-1" -- 315
  36. return
  37. }
  38. конт.Set("топливо", iFuel, "Топливо бота")
  39. }