소스 검색

d02 Исправления под опрос базы

SVI 2 년 전
부모
커밋
9378399f42
2개의 변경된 파일28개의 추가작업 그리고 30개의 파일을 삭제
  1. 0 2
      pkg/types/ibase.go
  2. 28 28
      server/serv_bots/warbot/angar/base/base.go

+ 0 - 2
pkg/types/ibase.go

@@ -15,8 +15,6 @@ type IBase interface {
 	Polygon() IPolygon
 	// Mine -- возвращает объект шахты
 	Mine() IMine
-	// Battle -- сражение
-	Battle() IBattle
 	// Market -- возвращает рынок
 	Market() IMarket
 }

+ 28 - 28
server/serv_bots/warbot/angar/base/base.go

@@ -37,7 +37,6 @@ type Base struct {
 	bank      *bank.Bank
 	polygon   *polygon.Polygon
 	mine      *mine.Mine
-	battle    types.IBattle
 	market    *market.Market
 	timeSleep int // Сколько времени спать до опроса базы
 	block     sync.Mutex
@@ -95,35 +94,39 @@ func NewBase(angar types.IAngar) (*Base, error) {
 // Запускает базу в обработку
 func (sf *Base) Run() error {
 	log.Printf("Base.Run()\n")
-	if err := sf.run(); err != nil {
+	if err := sf.runComponent(); err != nil {
 		return fmt.Errorf("Base.Run(): run, err=\n\t%w", err)
 	}
-	go func() {
-		for {
-			select {
-			case <-sf.Ctx().Done():
-				sf.CountDown().Stop()
-			case <-sf.CountDown().ChanSig():
-				if err := sf.net.UpdateLst("Base.run()"); err != nil { // Обновить состояние базы
-					log.Printf("ERRO Base.Run(): при обновлении базы, err=\n\t%v\n", err)
-				}
-				sf.checkPolygonForce()
-				if err := sf.checkBank(); err != nil { // Проверка режимов банка
-					log.Printf("ERRO Base.Run(): при проверке банка, err=\n\t%v\n", err)
-				}
-				sf.checkArsenal()
-				sf.checkMine() // Проверка шахты
-				sf.setCountDown()
-				time.Sleep(time.Second * time.Duration(sf.timeSleep))
-				// sf.CountDown().Set(45)
+	go sf.run()
+	return nil
+}
+
+// Собственная работа
+func (sf *Base) run() {
+	for {
+		select {
+		case <-sf.Ctx().Done():
+			sf.CountDown().Stop()
+			return
+		case <-sf.CountDown().ChanSig():
+			if err := sf.net.UpdateLst("Base.run()"); err != nil { // Обновить состояние базы
+				log.Printf("ERRO Base.Run(): при обновлении базы, err=\n\t%v\n", err)
 			}
+			sf.checkPolygonForce()                 // Проверить усиление полигона
+			if err := sf.checkBank(); err != nil { // Проверка режимов банка
+				log.Printf("ERRO Base.Run(): при проверке банка, err=\n\t%v\n", err)
+			}
+			sf.checkArsenal() // Проверка арсенала
+			sf.checkMine()    // Проверка шахты
+			sf.setCountDown() // Установка счётчика времени
+			time.Sleep(time.Second * time.Duration(sf.timeSleep))
+			// sf.CountDown().Set(45)
 		}
-	}()
-	return nil
+	}
 }
 
 // Запускает компоненты
-func (sf *Base) run() error {
+func (sf *Base) runComponent() error {
 	log.Printf("Base.run()\n")
 	sf.block.Lock()
 	defer sf.block.Unlock()
@@ -145,6 +148,7 @@ func (sf *Base) run() error {
 	return nil
 }
 
+// Выбирает время обновления базы по компонентам
 func (sf *Base) setCountDown() {
 	timeBase := sf.bank.CountDown().Get()
 	timeCount := timeBase
@@ -163,6 +167,7 @@ func (sf *Base) setCountDown() {
 	if timeCount > (600) {
 		sf.timeSleep = 600
 	}
+	sf.SetCountDown(timeCount)
 }
 
 // Arsenal -- возвращает объект арсенала
@@ -187,11 +192,6 @@ func (sf *Base) Mine() types.IMine {
 	return sf.mine
 }
 
-// Battle -- возвращает объект сражения
-func (sf *Base) Battle() types.IBattle {
-	return sf.battle
-}
-
 // Market -- возвращает объект рынка
 func (sf *Base) Market() types.IMarket {
 	return sf.market