package arena_angar
import (
. "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
. "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
"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"
"wartank/app/lev2/arena/arena_angar/bf_silver_find"
"wartank/app/lev2/arena/arena_angar/bf_tank_stat"
"wartank/app/lev3/bot/bot_stat/bot_resurs"
)
/*
Объект ангара приложения
*/
// Ангар -- ангар для танка
type АренаАнгар struct {
ИАрена
конт ILocalCtx
progress ИСтатПарам
топливо ИСтатПарам
серебро ИСтатПарам
золото ИСтатПарам
игроковОнлайн ИСтатПарам
сереброСессия ИСтатПарам
ресурсы ИБотРесурсы
танкСтат ИТанкСтат
времяОстат ИВремяОстат
}
// НовАнгар -- возвращает новый *Angar
func НовАнгар(конт ILocalCtx) ИАренаАнгар {
Hassert(конт != nil, "НовАнгар(): ILocalCtx==nil")
сам := &АренаАнгар{
конт: конт,
progress: lev1.НовСтатПарам("прогресс"),
игроковОнлайн: lev1.НовСтатПарам("онлайн"),
сереброСессия: lev1.НовСтатПарам("серебро сессия"),
танкСтат: конт.Get("танкСтат").Val().(ИТанкСтат),
серебро: lev1.НовСтатПарам("серебро"),
золото: lev1.НовСтатПарам("золото"),
топливо: lev1.НовСтатПарам("топливо"),
времяОстат: down_time.НовВремОбрат(конт, 1),
}
аренаКонф := arena.АренаКонфиг{
Конт_: конт,
АренаИмя_: "Ангар",
СтрКонтроль_: "
Ангар",
СтрУрл_: "https://wartank.ru/angar",
ВремОстат_: 1,
}
конт.Set("ангар", сам, "Объект ангара бота")
сам.ИАрена = arena.НовАрена(конт, аренаКонф)
сам.ресурсы = bot_resurs.НовБотРесурсы(конт, сам)
return сам
}
func (сам *АренаАнгар) Пуск() {
сам.ИАрена.Пуск()
if сам.Состояние().Получ() == cons.РежимНеСуществует {
сам.Состояние().Уст(cons.РежимПостроено)
}
bf_angar_fuel.ТопливоНайти(сам.конт)
bf_gold_find.ЗолотоНайти(сам.конт)
bf_silver_find.СереброНайти(сам.конт)
bf_tank_stat.ТанкСтатПолучить(сам.конт)
select {
case <-сам.времяОстат.КаналСиг(): // Надо обновить время
сам.Бот().СигРабота("ангар")
сам.времяОстат.Уст("00:00:15")
default: // Ничего не делать
}
}
// Золото -- возвращает объект топлива в ангаре
func (сам *АренаАнгар) Золото() ИСтатПарам {
return сам.золото
}
// Топливо -- возвращает объект топлива в ангаре
func (сам *АренаАнгар) Топливо() ИСтатПарам {
return сам.топливо
}
// СереброСессия -- возвращает объект серебра за текущую сессию
func (сам *АренаАнгар) СереброСессия() ИСтатПарам {
return сам.сереброСессия
}
// Серебро -- возвращает объект серебра в ангаре
func (сам *АренаАнгар) Серебро() ИСтатПарам {
return сам.серебро
}
// Прогресс -- возвращает прогресс уровня игрока
func (сам *АренаАнгар) Прогресс() ИСтатПарам {
return сам.progress
}
// ИгрокиОнлайн -- возвращает количество игроков онлайн
func (сам *АренаАнгар) ИгрокиОнлайн() ИСтатПарам {
return сам.игроковОнлайн
}