Browse Source

SVI Исправления со временем

SVI 1 year ago
parent
commit
a6459267e5

+ 10 - 0
app/lev2/arena/arena_angar/arena_angar.go

@@ -7,6 +7,7 @@ import (
 	"wartank/app/lev0/cons"
 	. "wartank/app/lev0/types"
 	"wartank/app/lev1"
+	"wartank/app/lev1/down_time"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena/arena_angar/bf_angar_fuel"
 	"wartank/app/lev2/arena/arena_angar/bf_gold_find"
@@ -33,6 +34,8 @@ type АренаАнгар struct {
 
 	ресурсы  ИБотРесурсы
 	танкСтат ИТанкСтат
+
+	времяОстат ИВремяОстат
 }
 
 // НовАнгар -- возвращает новый *Angar
@@ -47,6 +50,7 @@ func НовАнгар(конт ILocalCtx) ИАренаАнгар {
 		серебро:       lev1.НовСтатПарам("серебро"),
 		золото:        lev1.НовСтатПарам("золото"),
 		топливо:       lev1.НовСтатПарам("топливо"),
+		времяОстат:    down_time.НовВремОбрат(конт, 1),
 	}
 	аренаКонф := arena.АренаКонфиг{
 		Конт_:        конт,
@@ -70,6 +74,12 @@ func (сам *АренаАнгар) Пуск() {
 	bf_gold_find.ЗолотоНайти(сам.конт)
 	bf_silver_find.СереброНайти(сам.конт)
 	bf_tank_stat.ТанкСтатПолучить(сам.конт)
+	select {
+	case <-сам.времяОстат.КаналСиг(): // Надо обновить время
+		сам.Бот().СигРабота("ангар")
+		сам.времяОстат.Уст("00:00:15")
+	default: // Ничего не делать
+	}
 }
 
 // Золото -- возвращает объект топлива в ангаре

+ 13 - 2
app/lev2/arena/arena_bank/bf_bank_prod/bf_bank_prod.go

@@ -146,8 +146,19 @@ func устТекущееВремя(конт ILocalCtx) {
 	if стр == "" {
 		return
 	}
-	стр = списБаза[инд+11]
-	стр = strings.TrimPrefix(стр, `<td><div class="value-block lh1"><span><span>`)
+	var стр1 string
+	for инд < len(списБаза) {
+		_стр := списБаза[инд]
+		if strings.HasPrefix(_стр, `<td><div class="value-block lh1"><span><span>00:`) {
+			стр1 = _стр
+			break
+		}
+		инд++
+	}
+	if стр1 == "" {
+		return
+	}
+	стр = strings.TrimPrefix(стр1, `<td><div class="value-block lh1"><span><span>`)
 	стр = strings.TrimSuffix(стр, `</span></span></div></td>`)
 	if стр == времОстат {
 		return

+ 7 - 0
app/lev2/arena/arena_base/arena_base.go

@@ -26,6 +26,7 @@ type АренаБаза struct {
 	ИАрена
 	конт      ILocalCtx
 	счётОбнов ISafeInt // Счётчик времени до обновления
+	времяОстат ИВремяОстат
 }
 
 // НовБаза -- возвращает новую базу бота
@@ -74,6 +75,12 @@ func (сам *АренаБаза) Пуск() {
 	if сам.Состояние().Получ() == cons.РежимНеСуществует {
 		сам.Состояние().Уст(cons.РежимПостроено)
 	}
+	select {
+	case <-сам.времяОстат.КаналСиг(): // Надо обновить время
+		сам.Бот().СигРабота("база")
+		сам.вре
+	default: // Ничего не делать
+	}
 }
 
 // Считает время до устаревания базы

+ 3 - 1
app/lev3/bot/bot.go

@@ -190,12 +190,14 @@ func (сам *Бот) пуск() {
 			switch арена {
 			case "банк":
 				сам.банк.Пуск()
+			case "ангар":
+				сам.ангар.Пуск()
 			default: // Непонятно что за арена требует
 				fmt.Printf("Бот.пуск() арена=%v, не обрабатывается", арена)
 			}
 			continue
 		default:
-			// сам.ангар.Пуск()
+			сам.ангар.Пуск()
 			// сам.база.Пуск()
 			// сам.шахта.Пуск()
 			// сам.арсенал.Пуск()