|
|
@@ -1,5 +1,5 @@
|
|
|
-// package base -- база в игре
|
|
|
-package base
|
|
|
+// package arena_base -- база в игре
|
|
|
+package arena_base
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
@@ -11,13 +11,13 @@ import (
|
|
|
|
|
|
. "wartank/app/lev0/types"
|
|
|
"wartank/app/lev1/arena"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/arsenal"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/bank"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/fuel"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/labor"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/market"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/mine"
|
|
|
- "wartank/app/lev2/bot/arena_angar/base/polygon"
|
|
|
+ "wartank/app/lev1/arena_arsenal"
|
|
|
+ "wartank/app/lev1/arena_bank"
|
|
|
+ "wartank/app/lev1/arena_base/fuel"
|
|
|
+ "wartank/app/lev1/arena_laborator"
|
|
|
+ "wartank/app/lev1/arena_market"
|
|
|
+ "wartank/app/lev1/arena_mine"
|
|
|
+ "wartank/app/lev1/arena_polygon"
|
|
|
"wartank/pkg/alias"
|
|
|
"wartank/pkg/components/arena_net"
|
|
|
"wartank/pkg/cons"
|
|
|
@@ -33,25 +33,25 @@ const (
|
|
|
)
|
|
|
|
|
|
// База -- объект базы
|
|
|
-type База struct {
|
|
|
+type АренаБаза struct {
|
|
|
ИАрена
|
|
|
бот ИБот
|
|
|
сеть ИАренаСеть
|
|
|
арсенал ИАренаАрсенал
|
|
|
- банк *bank.Банк
|
|
|
- полигон *polygon.Полигон
|
|
|
+ банк *arena_bank.АренаБанк
|
|
|
+ полигон *arena_polygon.АренаПолигон
|
|
|
шахта ИАренаШахта
|
|
|
- рынок *market.Рынок
|
|
|
+ рынок *arena_market.АренаРынок
|
|
|
складТоплива *fuel.СкладТоплива
|
|
|
- лаборатория *labor.Лаборатория
|
|
|
+ лаборатория *arena_laborator.АренаЛаборатория
|
|
|
времОстат int // Сколько времени спать до опроса базы
|
|
|
блок sync.Mutex
|
|
|
}
|
|
|
|
|
|
// НовБаза -- возвращает новую базу бота
|
|
|
-func НовБаза(конт ИБотКонтекст, ангар ИАнгар) (*База, error) {
|
|
|
+func НовБаза(конт ИБотКонтекст, ангар ИАнгар) (*АренаБаза, error) {
|
|
|
log.Printf("НовБаза(): %q\n", ангар.Бот().Имя())
|
|
|
- сам := &База{
|
|
|
+ сам := &АренаБаза{
|
|
|
бот: ангар.Бот(),
|
|
|
}
|
|
|
аренаКонфиг := arena.АренаКонфиг{
|
|
|
@@ -66,28 +66,28 @@ func НовБаза(конт ИБотКонтекст, ангар ИАнгар)
|
|
|
сам.сеть = arena_net.НовАренаСеть(конт, сам, strUrl)
|
|
|
var ош error
|
|
|
{ // Arsenal
|
|
|
- сам.арсенал, ош = arsenal.НовАрсенал(конт, сам)
|
|
|
+ сам.арсенал, ош = arena_arsenal.НовАрсенал(конт, сам)
|
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("NewBase(): in create IArsenal, err=\n\t%w", ош)
|
|
|
}
|
|
|
}
|
|
|
{ // Bank
|
|
|
- сам.банк, ош = bank.НовБанк(конт, сам)
|
|
|
+ сам.банк, ош = arena_bank.НовБанк(конт, сам)
|
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("NewBase(): in create IBank, err=\n\t%w", ош)
|
|
|
}
|
|
|
}
|
|
|
{ // Mine
|
|
|
- сам.шахта, ош = mine.НовШахта(конт, сам)
|
|
|
+ сам.шахта, ош = arena_mine.НовШахта(конт, сам)
|
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("NewBase(): in create IMine, err=\n\t%w", ош)
|
|
|
}
|
|
|
}
|
|
|
- сам.рынок = market.НовРынок(конт, сам)
|
|
|
+ сам.рынок = arena_market.НовРынок(конт, сам)
|
|
|
// Polygon
|
|
|
- сам.полигон = polygon.НовПолигон(конт, сам)
|
|
|
+ сам.полигон = arena_polygon.НовПолигон(конт, сам)
|
|
|
{ // Лаборатория
|
|
|
- сам.лаборатория, ош = labor.НоваяЛаборатория(ангар.Бот())
|
|
|
+ сам.лаборатория, ош = arena_laborator.НоваяЛаборатория(ангар.Бот())
|
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("НовБаза(): при создании лаборатории, err=\n\t%w", ош)
|
|
|
}
|
|
|
@@ -102,7 +102,7 @@ func НовБаза(конт ИБотКонтекст, ангар ИАнгар)
|
|
|
}
|
|
|
|
|
|
// Запускает базу в обработку
|
|
|
-func (сам *База) Пуск() {
|
|
|
+func (сам *АренаБаза) Пуск() {
|
|
|
log.Printf("Base.Run()\n")
|
|
|
if err := сам.runComponent(); err != nil {
|
|
|
panic(fmt.Errorf("Base.Run(): run, err=\n\t%w", err))
|
|
|
@@ -111,7 +111,7 @@ func (сам *База) Пуск() {
|
|
|
}
|
|
|
|
|
|
// Собственная работа
|
|
|
-func (сам *База) пуск() {
|
|
|
+func (сам *АренаБаза) пуск() {
|
|
|
фнЦикл := func() {
|
|
|
defer time.Sleep(time.Minute * 2)
|
|
|
сам.сеть.Обновить()
|
|
|
@@ -138,7 +138,7 @@ func (сам *База) пуск() {
|
|
|
}
|
|
|
|
|
|
// Запускает компоненты
|
|
|
-func (сам *База) runComponent() error {
|
|
|
+func (сам *АренаБаза) runComponent() error {
|
|
|
log.Printf("Base.runComponent()\n")
|
|
|
сам.блок.Lock()
|
|
|
defer сам.блок.Unlock()
|
|
|
@@ -155,7 +155,7 @@ func (сам *База) runComponent() error {
|
|
|
}
|
|
|
|
|
|
// Выбирает время обновления базы по компонентам
|
|
|
-func (сам *База) setCountDown() {
|
|
|
+func (сам *АренаБаза) setCountDown() {
|
|
|
timeBase := сам.банк.ВремяОстат().String()
|
|
|
timeCount := timeBase
|
|
|
timeArsenal := сам.арсенал.ВремяОстат().String()
|
|
|
@@ -181,34 +181,34 @@ func (сам *База) setCountDown() {
|
|
|
}
|
|
|
|
|
|
// Арсенал -- возвращает объект арсенала
|
|
|
-func (сам *База) Арсенал() ИАренаАрсенал {
|
|
|
+func (сам *АренаБаза) Арсенал() ИАренаАрсенал {
|
|
|
return сам.арсенал
|
|
|
}
|
|
|
|
|
|
// Банк -- возвращает объект банка
|
|
|
-func (сам *База) Банк() ИБанк {
|
|
|
+func (сам *АренаБаза) Банк() ИБанк {
|
|
|
сам.блок.Lock()
|
|
|
defer сам.блок.Unlock()
|
|
|
return сам.банк
|
|
|
}
|
|
|
|
|
|
// Полигон -- возвращает объект полигона
|
|
|
-func (сам *База) Полигон() ИАренаПолигон {
|
|
|
+func (сам *АренаБаза) Полигон() ИАренаПолигон {
|
|
|
return сам.полигон
|
|
|
}
|
|
|
|
|
|
// Шахта -- возвращает объект шахты
|
|
|
-func (сам *База) Шахта() ИАренаШахта {
|
|
|
+func (сам *АренаБаза) Шахта() ИАренаШахта {
|
|
|
return сам.шахта
|
|
|
}
|
|
|
|
|
|
// Рынок -- возвращает объект рынка
|
|
|
-func (сам *База) Рынок() ИРынок {
|
|
|
+func (сам *АренаБаза) Рынок() ИРынок {
|
|
|
return сам.рынок
|
|
|
}
|
|
|
|
|
|
// Проверяет на забрать шахту
|
|
|
-func (сам *База) проверитьШахту() {
|
|
|
+func (сам *АренаБаза) проверитьШахту() {
|
|
|
if сам.шахта.Руда().Получ() == 0 {
|
|
|
сам.шахтаСтатаОбновить()
|
|
|
}
|
|
|
@@ -221,7 +221,7 @@ func (сам *База) проверитьШахту() {
|
|
|
}
|
|
|
|
|
|
// Проверяет время ожидания шахты
|
|
|
-func (сам *База) checkMineTime() {
|
|
|
+func (сам *АренаБаза) checkMineTime() {
|
|
|
var (
|
|
|
lstBase = сам.СписПолучить()
|
|
|
strOut string
|
|
|
@@ -255,7 +255,7 @@ func (сам *База) checkMineTime() {
|
|
|
}
|
|
|
|
|
|
// Проверка статистики шахты
|
|
|
-func (сам *База) шахтаСтатаОбновить() {
|
|
|
+func (сам *АренаБаза) шахтаСтатаОбновить() {
|
|
|
var (
|
|
|
lstMine = сам.СписПолучить()
|
|
|
strOut string
|
|
|
@@ -399,7 +399,7 @@ func (сам *База) шахтаСтатаОбновить() {
|
|
|
}
|
|
|
|
|
|
// Проверяет режимы арсенала
|
|
|
-func (сам *База) проверитьАрсенал() {
|
|
|
+func (сам *АренаБаза) проверитьАрсенал() {
|
|
|
// countTime := сам.арсенал.ВремяОпрос().Получ()
|
|
|
// if countTime > 3 {
|
|
|
// return
|
|
|
@@ -422,7 +422,7 @@ func (сам *База) проверитьАрсенал() {
|
|
|
}
|
|
|
|
|
|
// Проверяет время готовности арсенала
|
|
|
-func (сам *База) проверитьАрсеналВремя() {
|
|
|
+func (сам *АренаБаза) проверитьАрсеналВремя() {
|
|
|
var (
|
|
|
lstBase = сам.СписПолучить()
|
|
|
ind int
|
|
|
@@ -459,7 +459,7 @@ func (сам *База) проверитьАрсеналВремя() {
|
|
|
}
|
|
|
|
|
|
// Проверяет режим производства арсенала
|
|
|
-func (сам *База) проверитьАрсеналРежим() {
|
|
|
+func (сам *АренаБаза) проверитьАрсеналРежим() {
|
|
|
var (
|
|
|
strOut string
|
|
|
lstBase = сам.СписПолучить()
|
|
|
@@ -485,7 +485,7 @@ func (сам *База) проверитьАрсеналРежим() {
|
|
|
}
|
|
|
|
|
|
// Проверяет на ускорение апгрейда арсенала
|
|
|
-func (сам *База) проверитьАрсеналУскорение() {
|
|
|
+func (сам *АренаБаза) проверитьАрсеналУскорение() {
|
|
|
var (
|
|
|
ind int
|
|
|
strOut = ""
|
|
|
@@ -563,7 +563,7 @@ func (сам *База) проверитьАрсеналУскорение() {
|
|
|
}
|
|
|
|
|
|
// Проверяет режим банка
|
|
|
-func (сам *База) проверитьБанк() error {
|
|
|
+func (сам *АренаБаза) проверитьБанк() error {
|
|
|
if сам.банк.АренаСостояние().РаботаИмя() == "" {
|
|
|
сам.checkBankMode()
|
|
|
}
|
|
|
@@ -581,7 +581,7 @@ func (сам *База) проверитьБанк() error {
|
|
|
}
|
|
|
|
|
|
// Проверяет режим работы банка
|
|
|
-func (сам *База) checkBankMode() {
|
|
|
+func (сам *АренаБаза) checkBankMode() {
|
|
|
var (
|
|
|
strOut string
|
|
|
еслиНайдено bool
|
|
|
@@ -606,7 +606,7 @@ func (сам *База) checkBankMode() {
|
|
|
}
|
|
|
|
|
|
// Проверяет на время ожидания банка
|
|
|
-func (сам *База) checkBankTime() {
|
|
|
+func (сам *АренаБаза) checkBankTime() {
|
|
|
var (
|
|
|
strOut string
|
|
|
ind int
|
|
|
@@ -637,7 +637,7 @@ func (сам *База) checkBankTime() {
|
|
|
}
|
|
|
|
|
|
// Проверяет на произвести в банке
|
|
|
-func (сам *База) checkBankProduct() {
|
|
|
+func (сам *АренаБаза) checkBankProduct() {
|
|
|
var (
|
|
|
strOut string
|
|
|
ind int
|
|
|
@@ -669,7 +669,7 @@ func (сам *База) checkBankProduct() {
|
|
|
// Проверка получения серебра из банка
|
|
|
|
|
|
// Проверяет на ускорение апгрейда банка
|
|
|
-func (сам *База) checkBankForce() {
|
|
|
+func (сам *АренаБаза) checkBankForce() {
|
|
|
var (
|
|
|
ind int
|
|
|
strOut = ""
|
|
|
@@ -731,7 +731,7 @@ func (сам *База) checkBankForce() {
|
|
|
}
|
|
|
|
|
|
// Проверяет на ускорение апгрейда шахты
|
|
|
-func (сам *База) шахтаАпгрейдФорсаж() {
|
|
|
+func (сам *АренаБаза) шахтаАпгрейдФорсаж() {
|
|
|
var (
|
|
|
ind int
|
|
|
strOut = ""
|
|
|
@@ -800,7 +800,7 @@ func (сам *База) шахтаАпгрейдФорсаж() {
|
|
|
}
|
|
|
|
|
|
// Проверяет на ускорение апгрейда полигона
|
|
|
-func (сам *База) проверитьПолигонУсиление() {
|
|
|
+func (сам *АренаБаза) проверитьПолигонУсиление() {
|
|
|
var (
|
|
|
ind int
|
|
|
strOut = ""
|