package arena_convoy
import (
"strings"
. "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
. "wartank/app/lev0/alias"
"wartank/app/lev0/cons"
. "wartank/app/lev0/types"
"wartank/app/lev2/arena"
"wartank/app/lev2/arena/arena_build"
"wartank/app/lev2/arena/arena_convoy/bf_glory_find"
"wartank/app/lev2/arena/arena_convoy/bf_glory_make"
"wartank/app/lev2/arena/arena_convoy/bf_glory_take"
)
/*
Объект конвоя в ангаре
*/
// АренаКонвой -- объект конвоя в ангаре
type АренаКонвой struct {
ИАренаСтроение
конт ILocalCtx
}
// НовКонвой -- возвращает новый *Convoy
func НовКонвой(конт ILocalCtx) *АренаКонвой {
сам := &АренаКонвой{
конт: конт,
}
аренаКонфиг := arena.АренаКонфиг{
Конт_: конт,
АренаИмя_: "Конвой",
СтрКонтроль_: `
Конвой`,
СтрУрл_: "https://wartank.ru/convoy",
}
сам.ИАренаСтроение = arena_build.НовАренаСтроение(конт, аренаКонфиг)
конт.Set("конвой", сам, "Арена конвоя бота")
_ = ИАренаКонвой(сам)
return сам
}
func (сам *АренаКонвой) Пуск() {
сам.ИАренаСтроение.Пуск()
if сам.Состояние().Получ() == cons.РежимНеСуществует {
сам.Состояние().Уст(cons.РежимПостроено)
}
bf_glory_find.СлаваНайти(сам.конт)
bf_glory_make.СлаваБой(сам.конт)
bf_glory_take.СлаваВзять(сам.конт)
сам.обновитьВремя()
}
// Обновляет оставшееся время конвоя
func (сам *АренаКонвой) обновитьВремя() {
// Время подходит надо обновляться
сам.Обновить()
сам.ОбратВремяУст("20")
// Найти строку с упоминанием оставшегося времени конвоя
lstConvoy := сам.СписПолучить()
var (
strLastTime string
еслиНайдено bool
isMask bool
)
for _, lastTime := range lstConvoy {
if strings.Contains(lastTime, `До следующего конвоя: `) {
strLastTime = lastTime
еслиНайдено = true
break
}
if strings.Contains(lastTime, `Полная маскировка через `) {
strLastTime = lastTime
isMask = true
break
}
//
if strings.Contains(lastTime, `ILinkListener-root-startFight`) {
return
}
if strings.Contains(lastTime, `ILinkListener-root-findEnemy`) {
return
}
//
if strings.Contains(lastTime, `ILinkListener-root-startMasking`) {
return
}
}
switch {
case еслиНайдено: // Большая пауза между конвоями
// Ждём окончания ожидания конвоя
lstTime := strings.Split(strLastTime, `До следующего конвоя: `)
strLastTime = lstTime[1]
сам.ОбратВремяУст(АВремя(strLastTime))
case isMask: // Если маскировка между конвоями
// Ждём окончания ожидания конвоя
lstTime := strings.Split(strLastTime, `Полная маскировка через `)
strLastTime = lstTime[1]
сам.ОбратВремяУст(АВремя(strLastTime))
}
}