Jelajahi Sumber

d03 Исправление под производство банка

SVI 2 tahun lalu
induk
melakukan
08018388b6

+ 10 - 12
server/serv_bots/warbot/angar/base/bank/bank.go

@@ -51,8 +51,8 @@ func НовБанк(base types.ИБаза) (*Банк, error) {
 	return sf, nil
 }
 
-// Run -- запускает банк в работу
-func (sf *Банк) Run() error {
+// Пуск -- запускает банк в работу
+func (sf *Банк) Пуск() error {
 	log.Printf("Банк.Run()\n")
 	go sf.пуск()
 	return nil
@@ -70,18 +70,16 @@ func (sf *Банк) пуск() {
 	log.Printf("Банк.пуск()\n")
 	for {
 		// <-sf.ВремяОпрос().КаналСиг()
-		if err := sf.net.UpdateLst(); err != nil {
+		if ош := sf.net.UpdateLst(); ош != nil {
 			// log._rintf("ERRO Банк.пуск():  при обновлении lstBank, err=\n\t%v\n", err)
 			continue
 		}
-		if err := sf.getAllMode(); err != nil {
-			// log._rintf("ERRO Банк.пуск(): при получении списка режимов банка, err=\n\t%v\n", err)
-			continue
+		if ош := sf.получитьВсеРежимы(); ош != nil {
+			log.Printf("ERRO Банк.пуск(): при получении списка режимов банка, err=\n\t%v\n", ош)
 		}
-		_, err := sf.makeProduct()
-		if err != nil {
-			log.Printf("ERRO Банк.пуск(): при пуске производства банка, err=\n\t%v\n", err)
-			continue
+		_, ош := sf.сделатьСеребро()
+		if ош != nil {
+			log.Printf("ERRO Банк.пуск(): при пуске производства банка, err=\n\t%v\n", ош)
 		}
 		time.Sleep(time.Minute * 1)
 	}
@@ -103,7 +101,7 @@ func (sf *Банк) СереброБот() types.ИСтатПарам {
 }
 
 // Запускает в производство серебро
-func (sf *Банк) makeProduct() (int, error) {
+func (sf *Банк) сделатьСеребро() (int, error) {
 	var (
 		lstBank = sf.СписПолучить()
 		ind     int
@@ -149,7 +147,7 @@ func (sf *Банк) makeProduct() (int, error) {
 }
 
 // Получает все режимы банка
-func (sf *Банк) getAllMode() error {
+func (sf *Банк) получитьВсеРежимы() error {
 	var (
 		lstBank  = sf.СписПолучить()
 		ind      int

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

@@ -138,7 +138,7 @@ func (sf *База) runComponent() error {
 	if err := sf.арсенал.Пуск(); err != nil {
 		return fmt.Errorf("Base.run(): in run IArsenal, err=\n\t%w", err)
 	}
-	if err := sf.банк.Run(); err != nil {
+	if err := sf.банк.Пуск(); err != nil {
 		return fmt.Errorf("Base.run(): in run IBank, err=\n\t%w", err)
 	}
 	if err := sf.шахта.Пуск(); err != nil {

+ 0 - 3
server/serv_bots/warbot/angar/battle/battle.go

@@ -71,9 +71,6 @@ func (sf *Сражение) пуск() {
 			sf.регистрация.Зарегистрироваться()
 			sf.ожидание.Ожидать()
 			sf.действие.Танковать()
-			for len(sf.ВремяОпрос().КаналСиг()) > 0 {
-				<-sf.ВремяОпрос().КаналСиг()
-			}
 			time.Sleep(time.Second * 2) // Пауза между циклами, чтобы сервер не долбить запросами
 		}
 	}

+ 6 - 6
server/serv_bots/warbot/angar/battle/battle_worker/battle_worker.go

@@ -51,15 +51,15 @@ func НовСражениеИсполнитель(bot types.ИБот) (*Сраж
 }
 
 // Танковать -- выполняет битву
-func (sf *СражениеИсполнитель) Танковать() {
-	var err error
-	sf.действие, err = battleon.НовСражениеДействие(sf.бот) // IBattleOn (онлайн)
-	if err != nil {
+func (сам *СражениеИсполнитель) Танковать() {
+	var ош error
+	сам.действие, ош = battleon.НовСражениеДействие(сам.бот) // IBattleOn (онлайн)
+	if ош != nil {
 		return
 	}
-	sf.sound.Play()
+	сам.sound.Play()
 	time.Sleep(time.Second * 10) // Задержка для звука на странице
-	<-sf.действие.Кнт().Done()
+	<-сам.действие.Кнт().Done()
 	// log._rintf("Battle.runBaton(): сражение завершено\n")
 }
 

+ 13 - 17
server/serv_bots/warbot/angar/battle/battle_worker/battleon/battleon.go

@@ -34,31 +34,27 @@ type СражениеДействие struct {
 }
 
 // НовСражениеДействие -- возвращает новый *BattleOn
-func НовСражениеДействие(bot types.ИБот) (*СражениеДействие, error) {
-	section, err := section.NewSection(bot, "Исполнитель сражения", `<title>Сражения</title>`)
-	if err != nil {
-		return nil, fmt.Errorf("НовСражениеДействие(): in create ISection, err=\n\t%w", err)
+func НовСражениеДействие(бот types.ИБот) (*СражениеДействие, error) {
+	секция, ош := section.NewSection(бот, "Исполнитель сражения", `<title>Сражения</title>`)
+	if ош != nil {
+		return nil, fmt.Errorf("НовСражениеДействие(): in create ISection, err=\n\t%w", ош)
 	}
 
-	кнтСражение, фнОтменить := context.WithTimeout(bot.Сервер().CtxApp(), time.Second*305)
+	// Ограничить время сражения бота
+	кнтСражение, фнОтменить := context.WithTimeout(бот.Кнт(), time.Second*305)
 	сам := &СражениеДействие{
-		Section:     section,
-		бот:         bot,
+		Section:     секция,
+		бот:         бот,
 		кнт:         кнтСражение,
 		фнОтменить:  фнОтменить,
-		логин:       bot.Имя(),
+		логин:       бот.Имя(),
 		еслиВыстрел: isshot.NewIsShot(),
 	}
-	сам.сеть, err = sectionnet.NewSectionNet(сам, "https://wartank.ru/pve")
-	if err != nil {
-		return nil, fmt.Errorf("NewBattleOn(): in create *SectionNet, err=\n\t%w", err)
+	сам.сеть, ош = sectionnet.NewSectionNet(сам, "https://wartank.ru/pve")
+	if ош != nil {
+		return nil, fmt.Errorf("NewBattleOn(): in create *SectionNet, err=\n\t%w", ош)
 	}
 	go сам.пуск()
-	// Ожидание завершения
-	go func() {
-		time.Sleep(time.Minute * 6)
-		сам.Отменить()
-	}()
 	_ = types.ИСражениеДействие(сам)
 	return сам, nil
 }
@@ -81,7 +77,7 @@ func (сам *СражениеДействие) пуск() {
 			// log._rintf("ERRO BattleOn.Run(): при создании здоровья танка, err=\n\t%v\n", err)
 			return
 		}
-		сам.манёвр, err = manevr.NewManevr(сам)
+		сам.манёвр, err = manevr.НовМанёвр(сам)
 		if err != nil {
 			// log._rintf("ERRO BattleOn.Run(): при создании маневра танка, err=\n\t%v\n", err)
 			return

+ 10 - 11
server/serv_bots/warbot/angar/battle/battle_worker/battleon/manevr/manevr.go

@@ -22,21 +22,21 @@ import (
 // Манёвр -- маневрирует после выстрела
 type Манёвр struct {
 	types.ИСражениеДействие                        // FIXME:
-	еслиМенёврНадо          *ismanevr.IsManevr     // Требование выполнить манёвр
+	еслиМанёврНадо          *ismanevr.IsManevr     // Требование выполнить манёвр
 	времяЖдать              *repairtime.RepairTime // Время до востановления манёвра
 	chTick                  chan int               // Тики для поиска маневра
 }
 
-// NewManevr -- возвращает новый *Manevr
-func NewManevr(сражение types.ИСражениеДействие) (*Манёвр, error) {
+// НовМанёвр -- возвращает новый *Manevr
+func НовМанёвр(действие types.ИСражениеДействие) (*Манёвр, error) {
 	{ // Предусловия
-		if сражение == nil {
-			return nil, fmt.Errorf("NewManevr(): battle is nil")
+		if действие == nil {
+			return nil, fmt.Errorf("НовМанёвр(): действие==nil")
 		}
 	}
 	sf := &Манёвр{
-		ИСражениеДействие: сражение,
-		еслиМенёврНадо:    ismanevr.NewIsManevr(),
+		ИСражениеДействие: действие,
+		еслиМанёврНадо:    ismanevr.NewIsManevr(),
 		времяЖдать:        repairtime.NewRepairTime(),
 		chTick:            make(chan int, 1),
 	}
@@ -69,7 +69,7 @@ func (sf *Манёвр) makeTick() {
 // Рабочий цикл поиска маневра (~)
 func (сам *Манёвр) пуск() {
 	for range сам.chTick {
-		if !сам.еслиМенёврНадо.Get() { // Если нет требования манёвра -- пропускаем
+		if !сам.еслиМанёврНадо.Get() { // Если нет требования манёвра -- пропускаем
 			continue
 		}
 		сам.манёвр()
@@ -95,7 +95,6 @@ func (сам *Манёвр) времяМанёврНайти() {
 	if !isFind { // Или манёвр успел восстановиться, или конец сражения
 		if strings.Contains(strOut, `<span>Маневр</span>`) {
 			_ = сам.времяЖдать.Set("0")
-			time.Sleep(time.Second * 1)
 			return
 		}
 		logrus.WithField("strOut", strOut).Warn("Манёвр.времяМанёврНайти(): ошибка в поиске времени манёвра")
@@ -160,7 +159,7 @@ func (сам *Манёвр) манёвр() {
 		}
 		// sound.Manevr()
 	}
-	сам.еслиМенёврНадо.Сброс()
+	сам.еслиМанёврНадо.Сброс()
 }
 
 // ЕслиГотов -- возвращает готовность манёвра
@@ -170,5 +169,5 @@ func (sf *Манёвр) ЕслиГотов() bool {
 
 // УстНадо -- устанавливает признак необходимости манёвра
 func (sf *Манёвр) УстНадо() {
-	sf.еслиМенёврНадо.Set()
+	sf.еслиМанёврНадо.Set()
 }