Просмотр исходного кода

SVI Переделка на новую архитектуру

SVI 1 год назад
Родитель
Сommit
ac736eaad0
72 измененных файлов с 181 добавлено и 455 удалено
  1. 0 0
      app/lev1/count_time.zip
  2. 0 0
      app/lev1/web_log/web_log.go
  3. 1 1
      app/lev2/arena/arena_context/arena_context.go
  4. 1 1
      app/lev2/arena/arena_net/arena_web_worker/arena_web_worker.go
  5. 3 3
      app/lev2/arena_angar/fuel_attack/fuel_attack.go
  6. 2 2
      app/lev2/arena_arsenal/arena_arsenal.go
  7. 1 1
      app/lev2/arena_bank/arena_bank.go
  8. 1 1
      app/lev2/arena_bank/bank_mode/bank_mode.go
  9. 0 24
      app/lev2/arena_battle/battle_net/battle_net.go
  10. 1 4
      app/lev2/arena_battle/battle_register/battle_register.go
  11. 2 5
      app/lev2/arena_battle/battle_wait/battle_wait.go
  12. 1 4
      app/lev2/arena_battle/battle_worker/battle_worker.go
  13. 1 1
      app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/battle_sound.go
  14. 1 8
      app/lev2/arena_battle/battle_worker/battle_worker/battle_worker.go
  15. 1 1
      app/lev2/arena_battle/battle_worker/battle_worker/battlesound/battlesound.go
  16. 1 8
      app/lev2/arena_battle/battle_worker/battleon/battleon.go
  17. 1 1
      app/lev2/arena_convoy/arena_convoy.go
  18. 3 5
      app/lev2/arena_death/battle_wait/battle_wait.go
  19. 0 25
      app/lev2/arena_death/death_net/death_net.go
  20. 2 4
      app/lev2/arena_death/death_register/death_register.go
  21. 1 1
      app/lev2/arena_death/death_worker/death_on/battle_sound/battle_sound.go
  22. 1 1
      app/lev2/arena_death/death_worker/death_on/battlesound/battlesound.go
  23. 2 4
      app/lev2/arena_death/death_worker/death_on/death_on.go
  24. 4 7
      app/lev2/arena_death/death_worker/death_worker.go
  25. 1 1
      app/lev2/arena_division/div_war/div_war.go
  26. 5 12
      app/lev2/arena_division/div_war/div_war_on/div_war_on.go
  27. 1 1
      app/lev2/arena_division/div_war/div_war_on/div_war_sound/div_war_sound.go
  28. 1 1
      app/lev2/arena_division/div_war/div_war_on/divwarsound/divwarsound.go
  29. 5 12
      app/lev2/arena_division/div_war/divwaron/divwaron.go
  30. 5 12
      app/lev2/arena_division/divwar/div_war_on/div_war_on.go
  31. 1 1
      app/lev2/arena_division/divwar/divwar.go
  32. 5 12
      app/lev2/arena_division/divwar/divwaron/divwaron.go
  33. 1 1
      app/lev2/arena_fuel_storage/arena_fuel_storage.go
  34. 1 1
      app/lev2/arena_market/arena_market.go
  35. 2 2
      app/lev2/arena_masters/arena_masters.go
  36. 1 1
      app/lev2/arena_mine/arena_mine.go
  37. 1 1
      app/lev2/arena_missions/arena_missions.go
  38. 14 17
      app/lev2/arena_polygon/arena_polygon.go
  39. 17 20
      app/lev3/bot/angar/base/arsenal/arsenal.go
  40. 12 15
      app/lev3/bot/angar/base/bank/bank.go
  41. 1 1
      app/lev3/bot/angar/base/bank/bank_mode/bank_mode.go
  42. 6 10
      app/lev3/bot/angar/base/base.go
  43. 11 14
      app/lev3/bot/angar/base/fuel/fuel.go
  44. 11 14
      app/lev3/bot/angar/base/market/market.go
  45. 18 21
      app/lev3/bot/angar/base/mine/mine.go
  46. 14 17
      app/lev3/bot/angar/base/polygon/polygon.go
  47. 0 0
      app/lev3/bot/angar/battle/battle.go
  48. 1 4
      app/lev3/bot/angar/battle/battle_worker/battle_worker.go
  49. 1 1
      app/lev3/bot/angar/battle/battle_worker/battle_worker/battle_sound/battle_sound.go
  50. 1 8
      app/lev3/bot/angar/battle/battle_worker/battle_worker/battle_worker.go
  51. 1 1
      app/lev3/bot/angar/battle/battle_worker/battle_worker/battlesound/battlesound.go
  52. 0 0
      app/lev3/bot/angar/battle/battle_worker/battle_worker/manevr/manevr.go
  53. 1 8
      app/lev3/bot/angar/battle/battle_worker/battleon/battleon.go
  54. 0 0
      app/lev3/bot/angar/death_match/battle.go
  55. 1 1
      app/lev3/bot/angar/death_match/death_worker/death_on/battle_sound/battle_sound.go
  56. 1 1
      app/lev3/bot/angar/death_match/death_worker/death_on/battlesound/battlesound.go
  57. 1 8
      app/lev3/bot/angar/death_match/death_worker/death_on/death_on.go
  58. 0 0
      app/lev3/bot/angar/death_match/death_worker/death_on/manevr/manevr.go
  59. 2 4
      app/lev3/bot/angar/death_match/death_worker/death_worker.go
  60. 1 1
      app/lev3/bot/angar/division/div_war/div_war.go
  61. 1 1
      app/lev3/bot/angar/division/div_war/div_war_on/div_war_sound/div_war_sound.go
  62. 1 1
      app/lev3/bot/angar/division/div_war/div_war_on/divwarsound/divwarsound.go
  63. 0 0
      app/lev3/bot/angar/division/div_war/div_war_on/health/health.go
  64. 0 0
      app/lev3/bot/angar/division/div_war/div_war_on/manevr/manevr.go
  65. 0 0
      app/lev3/bot/angar/division/div_war/div_war_on/shot/shot.go
  66. 1 1
      app/lev3/bot/angar/division/divwar/divwar.go
  67. 0 0
      app/lev3/bot/angar/fuel/fuel.go
  68. 0 0
      app/lev3/bot/angar/stat_convoy_fixme/stat_convoy_fixme.go
  69. 1 1
      app/lev3/bot/bot_stat/stat_resurs/stat_resurs.go
  70. 1 1
      app/lev3/bot/bot_stat/tank_stat/tank_stat.go
  71. 0 46
      app/lev3/farm_bots/bot/bot_stat/stat_resurs/stat_resurs.go
  72. 0 68
      app/lev3/farm_bots/bot/bot_stat/tank_stat/tank_stat.go

+ 0 - 0
pkg/components/count_time.zip → app/lev1/count_time.zip


+ 0 - 0
pkg/components/web_log/web_log.go → app/lev1/web_log/web_log.go


+ 1 - 1
app/lev2/arena/arena_context/arena_context.go

@@ -7,7 +7,7 @@ import (
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena/arena_context/arena_state"
 	"wartank/pkg/alias"
-	"wartank/pkg/components/web_log"
+	"wartank/app/lev1/web_log"
 	. "wartank/pkg/helpers"
 	"wartank/pkg/kernel/kernel_log"
 	. "wartank/pkg/kernel/kernel_types"

+ 1 - 1
app/lev2/arena/arena_net/arena_web_worker/arena_web_worker.go

@@ -22,7 +22,7 @@ type АренаВебВоркер struct {
 }
 
 // НовАренаВебВоркер -- возвращает сетевого клиента
-func НовАренаВебВоркер(конт ИБотКонтекст)  *АренаВебВоркер {//, ботСеть ИБотСеть)
+func НовАренаВебВоркер(конт ИБотКонтекст) *АренаВебВоркер { //, ботСеть ИБотСеть)
 	лог := kernel_log.НовЛоггер("АренаВебВоркер")
 	лог.Инфо("НовАренаВебВоркер()\n")
 	сам := &АренаВебВоркер{

+ 3 - 3
app/lev2/arena_angar/fuel_attack/fuel_attack.go

@@ -16,15 +16,15 @@ import (
 // ТопливоБой -- объект боя на топливе
 type ТопливоБой struct {
 	ИАрена
-	ангар     ИАнгар
+	ангар  ИАнгар
 	клиент ИХттпВоркер
 }
 
 // НовТопливоБой -- возвращает новый *ТопливоБойNet
 func НовТопливоБой(конт ИБотКонтекст, ангар ИАнгар) (*ТопливоБой, error) {
-		хттпВоркер:=конт.Получ("хттпВоркер").(ИХттпВоркер)
+	хттпВоркер := конт.Получ("хттпВоркер").(ИХттпВоркер)
 	сам := &ТопливоБой{
-		ангар:     ангар,
+		ангар:  ангар,
 		клиент: хттпВоркер,
 	}
 

+ 2 - 2
app/lev2/arena_arsenal/arena_arsenal.go

@@ -10,9 +10,9 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
 	"wartank/app/lev1/stat_param"
-	"wartank/pkg/components/web_log"
+	"wartank/app/lev2/arena"
+	"wartank/app/lev1/web_log"
 	"wartank/pkg/kernel/kernel_log"
 	. "wartank/pkg/kernel/kernel_types"
 )

+ 1 - 1
app/lev2/arena_bank/arena_bank.go

@@ -8,9 +8,9 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena_bank/bank_mode"
-	"wartank/app/lev1/stat_param"
 	"wartank/pkg/alias"
 )
 

+ 1 - 1
app/lev2/arena_bank/bank_mode/bank_mode.go

@@ -2,7 +2,7 @@ package bank_mode
 
 import (
 	. "wartank/app/lev0/types"
-"wartank/app/lev1/stat_param"
+	"wartank/app/lev1/stat_param"
 )
 
 /*

+ 0 - 24
app/lev2/arena_battle/battle_net/battle_net.go

@@ -1,24 +0,0 @@
-package battle_net
-
-import (
-	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena/arena_net"
-)
-
-/*
-	Автоматически воюет в сражении
-*/
-
-// BattleNet -- танкует в сражении
-type BattleNet struct {
-	ИАренаСеть
-}
-
-// NewBattleNet -- возвращает новый *BattleNet
-func NewBattleNet(конт ИБотКонтекст, battle ИСражениеСцена) *BattleNet {
-	sectionNet := arena_net.НовАренаСеть(конт, battle, "https://wartank.ru/pve")
-	сам := &BattleNet{
-		ИАренаСеть: sectionNet,
-	}
-	return сам
-}

+ 1 - 4
app/lev2/arena_battle/battle_register/battle_register.go

@@ -8,14 +8,12 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 )
 
 // СражениеРегистрация -- регистрирует танк к началу атаки
 type СхваткаРегистрация struct {
 	ИАрена
 	бот          ИБот
-	сеть         ИАренаСеть
 	счётРегистер int // Счётчик регистраций на сражение
 }
 
@@ -33,7 +31,6 @@ func НовСражениеРегистрация(конт ИБотКонтек
 		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 
@@ -51,7 +48,7 @@ func (сам *СхваткаРегистрация) Зарегистрирова
 		var стрКонтроль string //  "https://wartank.ru/pve?0-1.ILinkListener-currentOverview-apply"
 		for {
 			time.Sleep(time.Second * 1)
-			лстСражение, err := сам.сеть.Get(стрСсылка)
+			лстСражение, err := сам.Сеть().Get(стрСсылка)
 			if err != nil {
 				log.Printf("ERRO СражениеРегистрация.Зарегистрироваться(): при выполнении GET-команды на подъём в атаку, err=\n\t%v\n", err)
 			}

+ 2 - 5
app/lev2/arena_battle/battle_wait/battle_wait.go

@@ -7,15 +7,13 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/pkg/alias"
 )
 
 // СражениеОжидание -- ожидатель начала битвы
 type СхваткаОжидание struct {
 	ИАрена
-	бот  ИБот
-	сеть ИАренаСеть
+	бот ИБот
 }
 
 // НовСражениеОжидание -- возвращает новый ожидатель битвы
@@ -31,7 +29,6 @@ func НовСражениеОжидание(конт ИБотКонтекст, 
 		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 
@@ -79,7 +76,7 @@ func (сам *СхваткаОжидание) Ожидать() {
 
 // Ждёт пока время не обнулится
 func (сам *СхваткаОжидание) ждать() string {
-	сам.сеть.Обновить()
+	сам.Обновить()
 	var (
 		strOut      string
 		lstBattle   = сам.СписПолучить()

+ 1 - 4
app/lev2/arena_battle/battle_worker/battle_worker.go

@@ -5,11 +5,10 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound"
-	"wartank/app/lev1/stat_param"
 )
 
 // СражениеДействие -- исполнение битвы
@@ -17,7 +16,6 @@ type СхваткаИсполнитель struct {
 	ИАрена
 	конт ИБотКонтекст
 	бот  ИБот
-	сеть ИАренаСеть
 
 	еслиНачало ИСтатПарам
 
@@ -43,7 +41,6 @@ func НовСражениеИсполнитель(конт ИБотКонтек
 		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 

+ 1 - 1
app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/battle_sound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
-	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
 	"wartank/app/lev1/sound"
+	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
 )
 
 /*

+ 1 - 8
app/lev2/arena_battle/battle_worker/battle_worker/battle_worker.go

@@ -6,7 +6,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/health"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/manevr"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/shot"
@@ -20,7 +19,6 @@ import (
 // СражениеДействие -- непосредственно танкует в сражении
 type СражениеДействие struct {
 	ИАрена
-	сеть       ИАренаСеть
 	бот        ИБот
 	кнт        context.Context // Контекст сражения
 	фнОтменить func()          // Функция отмены сражения
@@ -48,9 +46,9 @@ func НовСражениеДействие(конт ИБотКонтекст, 
 		АренаИмя_:    "Исполнитель сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	go сам.пуск()
 	_ = ИСражениеДействие(сам)
 	return сам
@@ -84,11 +82,6 @@ func (сам *СражениеДействие) пуск() {
 	<-сам.кнт.Done()
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *СражениеДействие) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 func (сам *СражениеДействие) МанёврНадоУст() {
 	if сам.манёвр == nil {
 		return

+ 1 - 1
app/lev2/arena_battle/battle_worker/battle_worker/battlesound/battlesound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 8
app/lev2/arena_battle/battle_worker/battleon/battleon.go

@@ -6,7 +6,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/health"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/manevr"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/shot"
@@ -21,7 +20,6 @@ import (
 // СражениеДействие -- непосредственно танкует в сражении
 type СражениеДействие struct {
 	ИАрена
-	сеть       ИАренаСеть
 	бот        ИБот
 	кнт        context.Context // Контекст сражения
 	фнОтменить func()          // Функция отмены сражения
@@ -49,9 +47,9 @@ func НовСражениеДействие(конт ИЯдроКонтекст,
 		АренаИмя_:    "Исполнитель сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	go сам.пуск()
 	_ = ИСражениеДействие(сам)
 	return сам
@@ -85,11 +83,6 @@ func (сам *СражениеДействие) пуск() {
 	<-сам.кнт.Done()
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *СражениеДействие) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 func (сам *СражениеДействие) МанёврНадоУст() {
 	if сам.манёвр == nil {
 		return

+ 1 - 1
app/lev2/arena_convoy/arena_convoy.go

@@ -8,8 +8,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 )
 

+ 3 - 5
app/lev2/arena_death/battle_wait/battle_wait.go

@@ -7,7 +7,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/pkg/alias"
 	. "wartank/pkg/kernel/kernel_types"
 )
@@ -15,8 +14,7 @@ import (
 // СражениеОжидание -- ожидатель начала битвы
 type СражениеОжидание struct {
 	ИАрена
-	бот  ИБот
-	сеть ИАренаСеть
+	бот ИБот
 }
 
 // НовСражениеОжидание -- возвращает новый ожидатель битвы
@@ -29,9 +27,9 @@ func НовСражениеОжидание(конт ИЯдроКонтекст,
 		АренаИмя_:    "Ожидание сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 
@@ -80,7 +78,7 @@ func (сам *СражениеОжидание) Ожидать() {
 
 // Ждёт пока время не обнулится
 func (сам *СражениеОжидание) ждать() string {
-	сам.сеть.Обновить()
+	сам.Обновить()
 	var (
 		strOut      string
 		lstBattle   = сам.СписПолучить()

+ 0 - 25
app/lev2/arena_death/death_net/death_net.go

@@ -1,25 +0,0 @@
-package death_net
-
-import (
-	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena/arena_net"
-	. "wartank/pkg/kernel/kernel_types"
-)
-
-/*
-	Автоматически воюет в схватке
-*/
-
-// СхваткаСеть -- танкует в схватке
-type СхваткаСеть struct {
-	ИАренаСеть
-}
-
-// НовСхваткаСеть -- возвращает новый *BattleNet
-func НовСхваткаСеть(конт ИЯдроКонтекст, battle ИСражениеСцена) *СхваткаСеть {
-	sectionNet := arena_net.НовАренаСеть(конт, battle, "https://wartank.ru/dm")
-	сам := &СхваткаСеть{
-		ИАренаСеть: sectionNet,
-	}
-	return сам
-}

+ 2 - 4
app/lev2/arena_death/death_register/death_register.go

@@ -8,7 +8,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	. "wartank/pkg/kernel/kernel_types"
 )
 
@@ -16,7 +15,6 @@ import (
 type СхваткаРегистрация struct {
 	ИАрена
 	бот          ИБот
-	сеть         ИАренаСеть
 	счётРегистер int // Счётчик регистраций на сражение
 }
 
@@ -31,9 +29,9 @@ func НовСхваткаРегистрация(конт ИЯдроКонтек
 		АренаИмя_:    "Сражение",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/dm",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/dm")
 	return сам
 }
 
@@ -50,7 +48,7 @@ func (сам *СхваткаРегистрация) Зарегистрирова
 		стрКонтроль := "" // "https://wartank.ru/dm?0-1.ILinkListener-currentOverview-apply"
 		for {
 			time.Sleep(time.Second * 1)
-			лстСражение, err := сам.сеть.Get(стрСсылка)
+			лстСражение, err := сам.Сеть().Get(стрСсылка)
 			if err != nil {
 				log.Printf("ERRO СхваткаРегистрация.Зарегистрироваться(): при выполнении GET-команды на подъём в атаку, err=\n\t%v\n", err)
 			}

+ 1 - 1
app/lev2/arena_death/death_worker/death_on/battle_sound/battle_sound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 1
app/lev2/arena_death/death_worker/death_on/battlesound/battlesound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 2 - 4
app/lev2/arena_death/death_worker/death_on/death_on.go

@@ -6,12 +6,10 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_death/death_worker/death_on/health"
 	"wartank/app/lev2/arena_death/death_worker/death_on/manevr"
 	"wartank/app/lev2/arena_death/death_worker/death_on/shot"
 	"wartank/app/lev2/arena_death/death_worker/death_on/shot/is_shot"
-	. "wartank/pkg/kernel/kernel_types"
 )
 
 /*
@@ -34,7 +32,7 @@ type СхваткаДействие struct {
 }
 
 // НовСхваткаДействие -- возвращает новый *СхваткаДействие
-func НовСхваткаДействие(конт ИЯдроКонтекст, бот ИБот) *СхваткаДействие {
+func НовСхваткаДействие(конт ИБотКонтекст, бот ИБот) *СхваткаДействие {
 	// Ограничить время сражения бота
 	кнтСражение, фнОтменить := context.WithTimeout(бот.Контекст(), time.Second*305)
 	сам := &СхваткаДействие{
@@ -49,7 +47,7 @@ func НовСхваткаДействие(конт ИЯдроКонтекст, 
 		АренаИмя_:    "Исполнитель схватки",
 		СтрКонтроль_: `<title>Схватка</title>`,
 		ФнПуск_:      сам.пуск,
-		СтрУрл_: "https://wartank.ru/de",
+		СтрУрл_:      "https://wartank.ru/de",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
 	go сам.пуск()

+ 4 - 7
app/lev2/arena_death/death_worker/death_worker.go

@@ -5,20 +5,17 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_death/death_worker/death_on"
 	"wartank/app/lev2/arena_death/death_worker/death_on/battle_sound"
-	"wartank/app/lev1/stat_param"
-	. "wartank/pkg/kernel/kernel_types"
 )
 
 // СражениеДействие -- исполнение схватки
 type СхваткаИсполнитель struct {
 	ИАрена
-	конт ИЯдроКонтекст
+	конт ИБотКонтекст
 	бот  ИБот
-	сеть ИАренаСеть
 
 	еслиНачало ИСтатПарам
 
@@ -29,7 +26,7 @@ type СхваткаИсполнитель struct {
 }
 
 // НовСражениеДействие -- возвращает новый исполнитель схватки
-func НовСхваткаИсполнитель(конт ИЯдроКонтекст, bot ИБот) *СхваткаИсполнитель {
+func НовСхваткаИсполнитель(конт ИБотКонтекст, bot ИБот) *СхваткаИсполнитель {
 	сам := &СхваткаИсполнитель{
 		конт:       конт,
 		бот:        bot,
@@ -41,9 +38,9 @@ func НовСхваткаИсполнитель(конт ИЯдроКонтек
 		АренаИмя_:    "Ход сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 

+ 1 - 1
app/lev2/arena_division/div_war/div_war.go

@@ -8,11 +8,11 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena_division/div_war/div_war_net"
 	"wartank/app/lev2/arena_division/div_war/div_war_on"
 	"wartank/app/lev2/arena_division/div_war/div_war_on/div_war_sound"
-		"wartank/app/lev1/stat_param"
 	"wartank/pkg/alias"
 	. "wartank/pkg/kernel/kernel_types"
 )

+ 5 - 12
app/lev2/arena_division/div_war/div_war_on/div_war_on.go

@@ -8,10 +8,9 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/health"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/manevr"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/shot"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/health"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/manevr"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/shot"
 	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/kernel/safe_bool"
 )
@@ -24,7 +23,6 @@ import (
 type DivWarOn struct {
 	ИАрена
 	bot            ИБот
-	сеть           ИАренаСеть
 	ctxDivWar      context.Context // Контекст сражения
 	fnCancelDivWar func()          // Функция отмены сражения
 
@@ -56,9 +54,9 @@ func NewDivWarOn(конт ИЯдроКонтекст, bot ИБот) (*DivWarOn,
 		АренаИмя_:    "Сражение",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	if сам.checkEnd() {
 		return nil, fmt.Errorf("NewDivWarOn(): нет страницы для сражения")
 	}
@@ -128,11 +126,6 @@ func (сам *DivWarOn) run() {
 	}
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *DivWarOn) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 // Проверяет окончание сражения
 func (сам *DivWarOn) checkEnd() bool {
 	defer func() {
@@ -142,7 +135,7 @@ func (сам *DivWarOn) checkEnd() bool {
 		}
 	}()
 
-	сам.сеть.Обновить()
+	сам.Обновить()
 	lstDivWarOn := сам.СписПолучить()
 	for _, strOut := range lstDivWarOn {
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {

+ 1 - 1
app/lev2/arena_division/div_war/div_war_on/div_war_sound/div_war_sound.go

@@ -2,8 +2,8 @@ package div_war_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 1
app/lev2/arena_division/div_war/div_war_on/divwarsound/divwarsound.go

@@ -2,8 +2,8 @@ package div_war_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 5 - 12
app/lev2/arena_division/div_war/divwaron/divwaron.go

@@ -8,10 +8,9 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/health"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/manevr"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/shot"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/health"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/manevr"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/shot"
 	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/kernel/safe_bool"
 )
@@ -24,7 +23,6 @@ import (
 type DivWarOn struct {
 	ИАрена
 	bot            ИБот
-	сеть           ИАренаСеть
 	ctxDivWar      context.Context // Контекст сражения
 	fnCancelDivWar func()          // Функция отмены сражения
 
@@ -56,9 +54,9 @@ func NewDivWarOn(конт ИЯдроКонтекст, bot ИБот) (*DivWarOn,
 		АренаИмя_:    "Сражение",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	if сам.checkEnd() {
 		return nil, fmt.Errorf("NewDivWarOn(): нет страницы для сражения")
 	}
@@ -128,11 +126,6 @@ func (сам *DivWarOn) run() {
 	}
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *DivWarOn) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 // Проверяет окончание сражения
 func (сам *DivWarOn) checkEnd() bool {
 	defer func() {
@@ -142,7 +135,7 @@ func (сам *DivWarOn) checkEnd() bool {
 		}
 	}()
 
-	сам.сеть.Обновить()
+	сам.Обновить()
 	lstDivWarOn := сам.СписПолучить()
 	for _, strOut := range lstDivWarOn {
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {

+ 5 - 12
app/lev2/arena_division/divwar/div_war_on/div_war_on.go

@@ -8,10 +8,9 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/health"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/manevr"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/shot"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/health"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/manevr"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/shot"
 	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/kernel/safe_bool"
 )
@@ -24,7 +23,6 @@ import (
 type DivWarOn struct {
 	ИАрена
 	bot            ИБот
-	сеть           ИАренаСеть
 	ctxDivWar      context.Context // Контекст сражения
 	fnCancelDivWar func()          // Функция отмены сражения
 
@@ -56,9 +54,9 @@ func NewDivWarOn(конт ИЯдроКонтекст, bot ИБот) (*DivWarOn,
 		АренаИмя_:    "Сражение",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	if сам.checkEnd() {
 		return nil, fmt.Errorf("NewDivWarOn(): нет страницы для сражения")
 	}
@@ -128,11 +126,6 @@ func (сам *DivWarOn) run() {
 	}
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *DivWarOn) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 // Проверяет окончание сражения
 func (сам *DivWarOn) checkEnd() bool {
 	defer func() {
@@ -142,7 +135,7 @@ func (сам *DivWarOn) checkEnd() bool {
 		}
 	}()
 
-	сам.сеть.Обновить()
+	сам.Обновить()
 	lstDivWarOn := сам.СписПолучить()
 	for _, strOut := range lstDivWarOn {
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {

+ 1 - 1
app/lev2/arena_division/divwar/divwar.go

@@ -8,11 +8,11 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena_division/div_war/div_war_net"
 	"wartank/app/lev2/arena_division/div_war/div_war_on"
 	"wartank/app/lev2/arena_division/div_war/div_war_on/div_war_sound"
-	"wartank/app/lev1/stat_param"
 	"wartank/pkg/alias"
 	. "wartank/pkg/kernel/kernel_types"
 )

+ 5 - 12
app/lev2/arena_division/divwar/divwaron/divwaron.go

@@ -8,10 +8,9 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/health"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/manevr"
-	"wartank/app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/shot"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/health"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/manevr"
+	"wartank/app/lev3/bot/angar/division/div_war/div_war_on/shot"
 	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/kernel/safe_bool"
 )
@@ -24,7 +23,6 @@ import (
 type DivWarOn struct {
 	ИАрена
 	bot            ИБот
-	сеть           ИАренаСеть
 	ctxDivWar      context.Context // Контекст сражения
 	fnCancelDivWar func()          // Функция отмены сражения
 
@@ -56,9 +54,9 @@ func NewDivWarOn(конт ИЯдроКонтекст, bot ИБот) (*DivWarOn,
 		АренаИмя_:    "Сражение",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	if сам.checkEnd() {
 		return nil, fmt.Errorf("NewDivWarOn(): нет страницы для сражения")
 	}
@@ -128,11 +126,6 @@ func (сам *DivWarOn) run() {
 	}
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *DivWarOn) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 // Проверяет окончание сражения
 func (сам *DivWarOn) checkEnd() bool {
 	defer func() {
@@ -142,7 +135,7 @@ func (сам *DivWarOn) checkEnd() bool {
 		}
 	}()
 
-	сам.сеть.Обновить()
+	сам.Обновить()
 	lstDivWarOn := сам.СписПолучить()
 	for _, strOut := range lstDivWarOn {
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {

+ 1 - 1
app/lev2/arena_fuel_storage/arena_fuel_storage.go

@@ -9,8 +9,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 )
 
 // АренаСкладТоплива -- склад топлива

+ 1 - 1
app/lev2/arena_market/arena_market.go

@@ -8,8 +8,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 )
 

+ 2 - 2
app/lev2/arena_masters/arena_masters.go

@@ -21,8 +21,8 @@ import (
 // БитваМастеров -- объект битвы мастеров
 type БитваМастеров struct {
 	ИАрена
-	бот  ИБот
-	лог  ИЯдроЛог
+	бот ИБот
+	лог ИЯдроЛог
 }
 
 // НовБитваМастеров -- возвращает новый *BatMas

+ 1 - 1
app/lev2/arena_mine/arena_mine.go

@@ -9,8 +9,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 )
 

+ 1 - 1
app/lev2/arena_missions/arena_missions.go

@@ -15,7 +15,7 @@ import (
 // АренаМиссии -- забирает золотишко
 type АренаМиссии struct {
 	ИАрена
-	бот  ИБот
+	бот ИБот
 }
 
 // НовМиссии -- возвращает новый *Миссии

+ 14 - 17
app/lev2/arena_polygon/arena_polygon.go

@@ -7,9 +7,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 	"wartank/pkg/cons"
 	"wartank/pkg/kernel/kernel_log"
@@ -36,7 +35,6 @@ type АренаПолигон struct {
 	ИАрена
 	бот           ИБот
 	танкСтат      ИТанкСтат
-	сеть          ИАренаСеть
 	продуктСейчас *safe_string.БезопСтрока
 	продуктКол    *safe_int.БезопЦелое
 	уровень       *stat_param.СтатПарам
@@ -63,7 +61,6 @@ func НовПолигон(конт ИБотКонтекст, база ИБаза
 		СтрУрл_:      "https://wartank.ru/polygon",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/polygon")
 	_ = ИАренаПолигон(сам)
 	return сам
 }
@@ -157,7 +154,7 @@ func (сам *АренаПолигон) пуск() {
 
 // Построить
 func (сам *АренаПолигон) построить() bool {
-	списСтр := сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
+	списСтр := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
 	ссылка0 := "" // ссылка на постройку
 
 	{ // Поиск ссылки на покупку
@@ -175,7 +172,7 @@ func (сам *АренаПолигон) построить() bool {
 		ссылка0 = strings.TrimSuffix(ссылка0, `">`)
 		// https://wartank.ru/building-upgrade/Polygon?40-1.ILinkListener-upgradeLink-link
 		ссылка0 = "http://wartank.ru/building-upgrade/" + ссылка0
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка0)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка0)
 	}
 	ссылка1 := "" // ссылка на улучшение здания
 
@@ -194,7 +191,7 @@ func (сам *АренаПолигон) построить() bool {
 		ссылка1 = strings.TrimSuffix(ссылка1, `">`)
 		// https://wartank.ru/building-upgrade/Polygon?48-1.ILinkListener-upgradeLink-link
 		ссылка1 = "http://wartank.ru/building-upgrade/" + ссылка1
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка1)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка1)
 	}
 	ссылка2 := "" // подтверждение покупки
 	{             // Подтверждение покупки
@@ -213,7 +210,7 @@ func (сам *АренаПолигон) построить() bool {
 		// https://wartank.ru/wicket/page?52-1.ILinkListener-confirmLink
 		ссылка2 = "http://wartank.ru/wicket/" + ссылка2
 		//ссылка2="https://wartank.ru/wicket/page?25-1.ILinkListener-confirmLink"
-		_ = сам.сеть.ВебВоркер().Получ(ссылка2)
+		_ = сам.Сеть().ВебВоркер().Получ(ссылка2)
 	}
 	return true
 }
@@ -224,7 +221,7 @@ func (сам *АренаПолигон) уровеньПолучить() bool {
 		стрВых      = ""
 		еслиНайдено bool
 	)
-	lstBase := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstBase := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// <span class="green2">Полигон - 5</span><br/>
 	for _, стрВых = range lstBase {
 		if strings.Contains(стрВых, `<span class="green2">Полигон - `) {
@@ -251,7 +248,7 @@ func (сам *АренаПолигон) проверитьУскорение() b
 		strOut      = ""
 		еслиНайдено bool
 	)
-	lstBase := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstBase := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// Проверка на платное ускорение апгрейда + время
 	{ // Платное ускорение
 		if strings.Contains(strOut, `Ускорить за`) {
@@ -287,7 +284,7 @@ func (сам *АренаПолигон) проверитьУскорение() b
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 		strLink = "https://wartank.ru/" + lstLink[0]
-		lstBase, err := сам.сеть.Get(strLink)
+		lstBase, err := сам.Сеть().Get(strLink)
 		if err != nil {
 			// log._rintf("ERRO NetBank.checkArsenalForce(): при GET-запросе на бесплатном ускорении апгрейда арсенала, err=\n\t%v\n", err)
 			return false
@@ -312,7 +309,7 @@ func (сам *АренаПолигон) проверитьУскорение() b
 // Проверяет необходимость постройки полигона
 func (сам *АренаПолигон) построитьПровер() bool {
 	// https://wartank.ru/building-upgrade/Polygon
-	списПолигон := сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
+	списПолигон := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
 	стрСсылка := ""
 	еслиНайти := false
 	// <a class="simple-but border mb5" href="Polygon?66-1.ILinkListener-upgradeLink-link">
@@ -415,7 +412,7 @@ func (сам *АренаПолигон) усилениеПровер() {
 
 // Выбирает самый слабый параметр и усиливает его
 func (сам *АренаПолигон) усилениеДобавить() {
-	сам.сеть.Обновить()
+	сам.Обновить()
 	// log._rintf("Polygon.checkPolygon(): при принудительном обновлении lstPolygon, mode=%s\terr=\n\t%v\n", сам.ModeCurrent().Get(), err)
 	if err := сам.ОбратВремяУст("05"); err != nil {
 		log.Printf("Polygon.checkPolygon(): при принудительном обновлении обратного времени, время=`05`\terr=\n\t%v\n", err)
@@ -484,7 +481,7 @@ func (сам *АренаПолигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("ERRO NetPolygon.addForce(): in make request force attack, err=\n\t%v\n", err)
 			return
 		}
@@ -522,7 +519,7 @@ func (сам *АренаПолигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("NetPolygon.addForce(): in make request force armor, err=\n\t%v\n", err)
 			return
 		}
@@ -560,7 +557,7 @@ func (сам *АренаПолигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("ERRO NetPolygon.addForce(): in make request force fyne, err=\n\t%v\n", err)
 			return
 		}
@@ -595,7 +592,7 @@ func (сам *АренаПолигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("NetPolygon.addForce(): in make request force hard, err=\n\t%v\n", err)
 			return
 		}

+ 17 - 20
app/lev3/farm_bots/bot/angar/base/arsenal/arsenal.go → app/lev3/bot/angar/base/arsenal/arsenal.go

@@ -10,10 +10,9 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
-	"wartank/pkg/components/web_log"
+	"wartank/app/lev1/web_log"
 	"wartank/pkg/kernel/kernel_log"
 	. "wartank/pkg/kernel/kernel_types"
 )
@@ -32,7 +31,6 @@ type Арсенал struct {
 	лог          ИЯдроЛог
 	бот          ИБот
 	база         ИБаза
-	сеть         ИАренаСеть
 	фугас        ИСтатПарам
 	бронебойка   ИСтатПарам
 	кумулятив    ИСтатПарам
@@ -74,7 +72,6 @@ func НовАрсенал(конт ИБотКонтекст, база ИБаза
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
 	сам.вЛог = web_log.НовВебЛог(true)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/production/Armory")
 	go сам.пуск()
 	сам.вЛог.Добавить("НовАрсенал(): Арсенал создан")
 	return сам, nil
@@ -154,14 +151,14 @@ func (сам *Арсенал) пуск() {
 // Проверяет необходимость постройки
 func (сам *Арсенал) проверитьПостроить() bool {
 	сам.вЛог.Добавить("Арсенал.проверитьПостроить()\n")
-	_ = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
+	_ = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
 	return true
 }
 
 // Обновляет текущий уровень арсенала (может быть не построена)
 func (сам *Арсенал) уровеньОбновить() bool {
 	сам.вЛог.Добавить("Арсенал.уровеньОбновить()\n")
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Оружейная - 0</span><br/>
 	var (
 		еслиНайти = false
@@ -194,7 +191,7 @@ func (сам *Арсенал) уровеньОбновить() bool {
 // Строит арсенал при нулевом уровне
 func (сам *Арсенал) построить() (bool, error) {
 	сам.вЛог.Добавить("Арсенал.построить()\n")
-	списСтр := сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
+	списСтр := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
 	// <span class="green2">Арсенал - 0</span><br/>
 	var (
 		еслиНайти = false
@@ -216,7 +213,7 @@ func (сам *Арсенал) построить() (bool, error) {
 	_стр = strings.TrimSuffix(_стр, `">`)
 	ссылка := "https://wartank.ru/building-upgrade/" + _стр
 	// https://wartank.ru/building-upgrade/Armory?35-1.ILinkListener-upgradeLink-link
-	списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+	списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 	еслиНайти = false
 	// "<a class=\"simple-but border mb5\" href=\"Armory?14-1.ILinkListener-upgradeLink-link\">"
 	for _, стр = range списСтр {
@@ -244,7 +241,7 @@ func (сам *Арсенал) проапгрейдить() bool {
 	)
 	фнКупить := func() bool {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Armory")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="Armory?5-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -262,7 +259,7 @@ func (сам *Арсенал) проапгрейдить() bool {
 		// https://wartank.ru/building-upgrade/Armory?4-1.ILinkListener-upgradeLink-link
 		// <a class="simple-but border mb5" href="Armory?50-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -291,7 +288,7 @@ func (сам *Арсенал) проапгрейдить() bool {
 		_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
 		// https://wartank.ru/wicket/page?6-1.ILinkListener-confirmLink
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
@@ -350,7 +347,7 @@ func (сам *Арсенал) забрать() bool {
 		ош         error
 	)
 	time.Sleep(time.Millisecond * 100)
-	лстАрсенал, ош = сам.сеть.Get(strLink)
+	лстАрсенал, ош = сам.Сеть().Get(strLink)
 	if ош != nil {
 		log.Printf("Арсенал.забрать(): при выполнении Get-запроса? err=\n\t%v\n", ош)
 		return false
@@ -396,7 +393,7 @@ func (сам *Арсенал) Ремки() ИСтатПарам {
 // Обновляет состояние арсенала по требованию
 func (сам *Арсенал) СтатаОбновить() (err error) {
 	сам.вЛог.Добавить("Арсенал.СтатаОбновить()\n")
-	сам.сеть.Обновить()
+	сам.Обновить()
 	var (
 		strOut     string
 		lstArsenal = сам.СписПолучить()
@@ -479,7 +476,7 @@ func (сам *Арсенал) СтатаОбновить() (err error) {
 
 // Выбирает что надо делать, запускает процесс изготовления
 func (сам *Арсенал) сделать() bool {
-	сам.сеть.Обновить()
+	сам.Обновить()
 	// _mt.Println("\tArsenalNet.сделать()")
 	var (
 		ремкаКол  = сам.Ремки().Получ()
@@ -550,7 +547,7 @@ func (сам *Арсенал) сделатьБронебойки() bool {
 	lstArmor = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + lstArmor[0]
 	time.Sleep(time.Millisecond * 50)
-	if _, err := сам.сеть.Get(strLink); err != nil {
+	if _, err := сам.Сеть().Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeArmor(): in update lstArsenal,  err=\n\t%v\n", err)
 		return false
 	}
@@ -585,7 +582,7 @@ func (сам *Арсенал) сделатьКумули() bool {
 	списКумул = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + списКумул[0]
 	time.Sleep(time.Millisecond * 50)
-	if _, err := сам.сеть.Get(strLink); err != nil {
+	if _, err := сам.Сеть().Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeКумуль(): in make product arsenal кумуль , err=\n\t%v\n", err)
 		return false
 	}
@@ -621,7 +618,7 @@ func (сам *Арсенал) сделатьФугасы() bool {
 	списКумул = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + списКумул[0]
 	time.Sleep(time.Millisecond * 50)
-	if _, err := сам.сеть.Get(strLink); err != nil {
+	if _, err := сам.Сеть().Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeФугас(): in make request arsenal product, err=\n\t%v\n", err)
 		return false
 	}
@@ -638,7 +635,7 @@ func (сам *Арсенал) сделатьРемку() bool {
 		еслиНайдено bool
 		инд         int
 	)
-	lstArsenal := сам.сеть.ВебВоркер().Получ("https://wartank.ru/production/Armory")
+	lstArsenal := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/production/Armory")
 	// <span class="green2">Ремкомплект</span><br/>
 	for инд, стрВых = range lstArsenal {
 		if strings.Contains(стрВых, `<span class="green2">Ремкомплект</span><br/>`) {
@@ -660,7 +657,7 @@ func (сам *Арсенал) сделатьРемку() bool {
 	// https://wartank.ru/production/Armory?37-1.ILinkListener-productions-3-production-startProduceLink
 	ссылка := "https://wartank.ru/production/" + _ссылка
 	time.Sleep(time.Millisecond * 50)
-	_ = сам.сеть.ВебВоркер().Получ(ссылка)
+	_ = сам.Сеть().ВебВоркер().Получ(ссылка)
 	сам.АренаСостояние().СостояниеУст(стрРемки)
 	return true
 }

+ 12 - 15
app/lev3/farm_bots/bot/angar/base/bank/bank.go → app/lev3/bot/angar/base/bank/bank.go

@@ -8,10 +8,9 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_bank/bank_mode"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
 	"wartank/pkg/alias"
 )
 
@@ -22,7 +21,6 @@ import (
 // Банк -- объект банка на базе
 type Банк struct {
 	ИАрена
-	сеть       ИАренаСеть
 	сереброБот ИСтатПарам
 	режим1     *bank_mode.BankMode // 1 режим работы на выбор
 	режим2     *bank_mode.BankMode // 2 режим работы на выбор
@@ -44,7 +42,6 @@ func НовБанк(конт ИБотКонтекст, база ИБаза) (*Б
 		СтрУрл_:      "https://wartank.ru/production/Bank",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/production/Bank")
 	return сам, nil
 }
 
@@ -57,7 +54,7 @@ func (сам *Банк) Пуск() error {
 
 // UpdateLst -- принудительно обновляет состояние банка
 func (сам *Банк) UpdateLst() {
-	сам.сеть.Обновить()
+	сам.Обновить()
 }
 
 // запускает банк в опрос
@@ -74,7 +71,7 @@ func (сам *Банк) пуск() {
 			time.Sleep(time.Minute * 25)
 			return
 		}
-		сам.сеть.Обновить()
+		сам.Обновить()
 
 		if ош := сам.получитьВсеРежимы(); ош != nil {
 			log.Printf("ERRO Банк.пуск(): при получении списка режимов банка, err=\n\t%v\n", ош)
@@ -96,7 +93,7 @@ func (сам *Банк) проверитьУскорить() bool {
 		стрСсылка   = ""
 		еслиНайдено = false
 	)
-	списБанк := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	списБанк := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// <td style="width:50%;padding-left:1px;"><a class="simple-but border" href="buildings?1-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-freeBoostLink"><span><span>Ускорение</span></span></a>
 	for _, стрСсылка = range списБанк {
 		if strings.Contains(стрСсылка, `.ILinkListener-buildings-1-building-rootBlock-actionPanel-freeBoostLink`) {
@@ -110,7 +107,7 @@ func (сам *Банк) проверитьУскорить() bool {
 	_ссылка := strings.TrimPrefix(стрСсылка, `<td style="width:50%;padding-left:1px;"><a class="simple-but border" href="`)
 	_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Ускорение</span></span></a>`)
 	ссылка := "https://wartank.ru/" + _ссылка
-	_ = сам.сеть.ВебВоркер().Получ(ссылка)
+	_ = сам.Сеть().ВебВоркер().Получ(ссылка)
 	return true
 }
 
@@ -120,7 +117,7 @@ func (сам *Банк) забрать() {
 		strOut      string
 		еслиНайдено bool
 	)
-	списБанк := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	списБанк := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// <a class="simple-but border" href="buildings?0-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink"><span><span>Забрать</span></span></a>
 	for _, strOut = range списБанк {
 		if strings.Contains(strOut, `.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink`) {
@@ -135,7 +132,7 @@ func (сам *Банк) забрать() {
 	_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Забрать</span></span></a>`)
 	// https://wartank.ru/buildings?3-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink
 	ссылка := "https://wartank.ru/" + _ссылка
-	_ = сам.сеть.ВебВоркер().Получ(ссылка)
+	_ = сам.Сеть().ВебВоркер().Получ(ссылка)
 }
 
 // Проверяет необходимость постройки полигона
@@ -144,7 +141,7 @@ func (сам *Банк) построитьУлучшить() bool {
 
 	{ // Зайти на страницу постройки
 		// https://wartank.ru/building-upgrade/Bank
-		списБанк = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Bank")
+		списБанк = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Bank")
 		стрСсылка := ""
 		еслиНайти := false
 		// <a class="simple-but border mb5" href="Bank?192-1.ILinkListener-upgradeLink-link">
@@ -161,7 +158,7 @@ func (сам *Банк) построитьУлучшить() bool {
 		_ссылка = strings.TrimSuffix(_ссылка, `">`)
 		ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
 		// https://wartank.ru/building-upgrade/Bank?162-1.ILinkListener-upgradeLink-link
-		списБанк = сам.сеть.ВебВоркер().Получ(ссылка)
+		списБанк = сам.Сеть().ВебВоркер().Получ(ссылка)
 	}
 	{ // Заказать постройку
 		// https://wartank.ru/building-upgrade/Bank
@@ -179,7 +176,7 @@ func (сам *Банк) построитьУлучшить() bool {
 			_ссылка = strings.TrimSuffix(_ссылка, `">`)
 			ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
 			// https://wartank.ru/building-upgrade/Bank?162-1.ILinkListener-upgradeLink-link
-			списБанк = сам.сеть.ВебВоркер().Получ(ссылка)
+			списБанк = сам.Сеть().ВебВоркер().Получ(ссылка)
 		}
 	}
 	{ // подтверждение постройки
@@ -199,7 +196,7 @@ func (сам *Банк) построитьУлучшить() bool {
 		_ссылка = strings.TrimSuffix(_ссылка, "\"><span><span>да, подтверждаю</span></span></a>")
 		ссылка := "https://wartank.ru/" + _ссылка
 		// https://wartank.ru/wicket/page?135-1.ILinkListener-confirmLink
-		_ = сам.сеть.ВебВоркер().Получ(ссылка)
+		_ = сам.Сеть().ВебВоркер().Получ(ссылка)
 	}
 	log.Printf("Банк.построитьПровер(): построен успешно\n")
 	return true
@@ -247,7 +244,7 @@ func (сам *Банк) сделатьСеребро() (alias.МилСек, erro
 		strLink = lstLink[1]
 		lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 		strLink = "https://wartank.ru/production/" + lstLink[0]
-		lstBank, err := сам.сеть.Get(strLink)
+		lstBank, err := сам.Сеть().Get(strLink)
 		if err != nil {
 			return 0, fmt.Errorf("BankNet.makeProduct(): при выполнении GET-запроса начать производство, err=%w", err)
 		}

+ 1 - 1
app/lev3/farm_bots/bot/angar/base/bank/bank_mode/bank_mode.go → app/lev3/bot/angar/base/bank/bank_mode/bank_mode.go

@@ -2,7 +2,7 @@ package bank_mode
 
 import (
 	. "wartank/app/lev0/types"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
+	"wartank/app/lev1/stat_param"
 )
 
 /*

+ 6 - 10
app/lev3/farm_bots/bot/angar/base/base.go → app/lev3/bot/angar/base/base.go

@@ -11,10 +11,9 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_arsenal"
 	"wartank/app/lev2/arena_bank"
-	"wartank/app/lev2/arena_base/arena_fuel_storage"
+	"wartank/app/lev2/arena_fuel_storage"
 	"wartank/app/lev2/arena_laborator"
 	"wartank/app/lev2/arena_market"
 	"wartank/app/lev2/arena_mine"
@@ -36,7 +35,6 @@ const (
 type База struct {
 	ИАрена
 	бот          ИБот
-	сеть         ИАренаСеть
 	арсенал      ИАренаАрсенал
 	банк         *arena_bank.АренаБанк
 	полигон      *arena_polygon.АренаПолигон
@@ -62,8 +60,6 @@ func НовБаза(конт ИБотКонтекст, ангар ИАнгар)
 		СтрУрл_:      "https://wartank.ru/buildings",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	strUrl := "https://wartank.ru/buildings"
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, strUrl)
 	var ош error
 	{ // Arsenal
 		сам.арсенал, ош = arena_arsenal.НовАрсенал(конт, сам)
@@ -114,7 +110,7 @@ func (сам *База) Пуск() {
 func (сам *База) пуск() {
 	фнЦикл := func() {
 		defer time.Sleep(time.Minute * 2)
-		сам.сеть.Обновить()
+		сам.Обновить()
 		сам.проверитьПолигонУсиление()              // Проверить усиление полигона
 		if err := сам.проверитьБанк(); err != nil { // Проверка режимов банка
 			log.Printf("ERRO Base.Run(): при проверке банка, err=\n\t%v\n", err)
@@ -540,7 +536,7 @@ func (сам *База) проверитьАрсеналУскорение() {
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 		strLink = "https://wartank.ru/" + lstLink[0]
-		lstBase, err := сам.сеть.Get(strLink)
+		lstBase, err := сам.Сеть().Get(strLink)
 		if err != nil {
 			// log._rintf("ERRO NetBank.checkArsenalForce(): при GET-запросе на бесплатном ускорении апгрейда арсенала, err=\n\t%v\n", err)
 			return
@@ -712,7 +708,7 @@ func (сам *База) checkBankForce() {
 			strLink := lstLink[1]
 			lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 			strLink = "https://wartank.ru/" + lstLink[0]
-			lstBase, err := сам.сеть.Get(strLink)
+			lstBase, err := сам.Сеть().Get(strLink)
 			if err != nil {
 				// log._rintf("ERRO NetBank.checkBankForce(): при GET-запросе на бесплатном ускорении апгрейда банка, err=\n\t%v\n", err)
 				return
@@ -775,7 +771,7 @@ func (сам *База) шахтаАпгрейдФорсаж() {
 			strLink := lstLink[1]
 			lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 			strLink = "https://wartank.ru/" + lstLink[0]
-			lstBase, err := сам.сеть.Get(strLink)
+			lstBase, err := сам.Сеть().Get(strLink)
 			if err != nil {
 				// log._rintf("ERRO NetBank.checkMineForce(): при GET-запросе на бесплатном ускорении апгрейда шахты, err=\n\t%v\n", err)
 				return
@@ -854,7 +850,7 @@ func (сам *База) проверитьПолигонУсиление() {
 			strLink := lstLink[1]
 			lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 			strLink = "https://wartank.ru/" + lstLink[0]
-			lstBase, err := сам.сеть.Get(strLink)
+			lstBase, err := сам.Сеть().Get(strLink)
 			if err != nil {
 				// log._rintf("ERRO NetBank.checkPolygonForce(): при GET-запросе на бесплатном ускорении апгрейда полигона, err=\n\t%v\n", err)
 				return

+ 11 - 14
app/lev3/farm_bots/bot/angar/base/fuel/fuel.go → app/lev3/bot/angar/base/fuel/fuel.go

@@ -9,15 +9,13 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 )
 
 // СкладТоплива -- склад топлива
 type СкладТоплива struct {
 	ИАрена
-	сеть         ИАренаСеть
 	бот          ИБот
 	база         ИБаза
 	топливо      ИСтатПарам
@@ -43,10 +41,9 @@ func НовСкладТоплива(конт ИБотКонтекст, база
 		АренаИмя_:    "Склад_топлива",
 		СтрКонтроль_: `<span class="green2">Склад топлива - `,
 		ФнПуск_:      сам.пуск,
-		СтрУрл_:      "https://wartank.ru/angar",
+		СтрУрл_:      "https://wartank.ru/fuelStore",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/fuelStore")
 	_ = ИАренаТопливо(сам)
 	return сам, nil
 }
@@ -83,7 +80,7 @@ func (сам *СкладТоплива) количествоПолучить() {
 		strOut      string
 		еслиНайдено bool
 	)
-	lstMine := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstMine := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	/*
 		<img class="ico vm" src="/images/icons/fuel.png?2" alt="Топливо" title="Топливо"> 720
 	*/
@@ -107,7 +104,7 @@ func (сам *СкладТоплива) количествоПолучить() {
 
 // Проверяет ускорение строительства
 func (сам *СкладТоплива) ускорениеПровер() {
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Склад топлива -
 	var (
 		еслиНайти = false
@@ -126,7 +123,7 @@ func (сам *СкладТоплива) ускорениеПровер() {
 
 // Обновляет текущий уровень шахты (может быть не построена)
 func (сам *СкладТоплива) уровеньОбновить() bool {
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Склад топлива -
 	var (
 		еслиНайти = false
@@ -177,7 +174,7 @@ func (сам *СкладТоплива) проапгрейдить() bool {
 	)
 	фнКупить := func() bool {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="FuelStorage?5-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -194,7 +191,7 @@ func (сам *СкладТоплива) проапгрейдить() bool {
 		// https://wartank.ru/building-upgrade/FuelStorage?4-1.ILinkListener-upgradeLink-link
 		// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -222,7 +219,7 @@ func (сам *СкладТоплива) проапгрейдить() bool {
 		_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
 		// https://wartank.ru/wicket/page?6-1.ILinkListener-confirmLink
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
@@ -260,7 +257,7 @@ func (сам *СкладТоплива) построить() bool {
 	)
 	фнКупить := func() bool {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="FuelStorage?71-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -278,7 +275,7 @@ func (сам *СкладТоплива) построить() bool {
 		// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
 		// https://wartank.ru/building-upgrade/FuelStorage?72-1.ILinkListener-upgradeLink-link
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -307,7 +304,7 @@ func (сам *СкладТоплива) построить() bool {
 		// https://wartank.ru/wicket/page?4-1.ILinkListener-confirmLink
 		// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {

+ 11 - 14
app/lev3/farm_bots/bot/angar/base/market/market.go → app/lev3/bot/angar/base/market/market.go

@@ -8,9 +8,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 )
 
@@ -18,7 +17,6 @@ import (
 type Рынок struct {
 	ИАрена
 	бот     ИБот
-	сеть    ИАренаСеть
 	уровень ИСтатПарам
 }
 
@@ -36,7 +34,6 @@ func НовРынок(конт ИБотКонтекст, база ИБаза) *
 		СтрУрл_:      "https://wartank.ru/market",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/market")
 	return сам
 }
 
@@ -70,7 +67,7 @@ func (сам *Рынок) пуск() {
 
 // Проверяет ускорение строительства
 func (сам *Рынок) ускорениеПровер() {
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Склад топлива -
 	var (
 		еслиНайти = false
@@ -89,7 +86,7 @@ func (сам *Рынок) ускорениеПровер() {
 
 // Обновляет текущий уровень рынка (может быть не построен)
 func (сам *Рынок) уровеньОбновить() bool {
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Рынок -
 	var (
 		еслиНайти = false
@@ -141,7 +138,7 @@ func (сам *Рынок) построить() bool {
 	)
 	фнКупить := func() bool {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Market")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Market")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="Market?19-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -158,7 +155,7 @@ func (сам *Рынок) построить() bool {
 		// https://wartank.ru/building-upgrade/Market?18-1.ILinkListener-upgradeLink-link
 		// <a class="simple-but border mb5" href="Market?19-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -186,7 +183,7 @@ func (сам *Рынок) построить() bool {
 		_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
 		// https://wartank.ru/wicket/page?20-1.ILinkListener-confirmLink
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
@@ -221,7 +218,7 @@ func (сам *Рынок) проапгрейдить() bool {
 	)
 	фнКупить := func() bool {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Market")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Market")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="Market?5-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -238,7 +235,7 @@ func (сам *Рынок) проапгрейдить() bool {
 		// https://wartank.ru/building-upgrade/Market?4-1.ILinkListener-upgradeLink-link
 		// <a class="simple-but border mb5" href="Market?50-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -266,7 +263,7 @@ func (сам *Рынок) проапгрейдить() bool {
 		_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
 		// https://wartank.ru/wicket/page?6-1.ILinkListener-confirmLink
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
@@ -301,7 +298,7 @@ func (сам *Рынок) проверОжидание() {
 	)
 	// countDown := сам.CountDown().Get()
 	фнЕслиСеребро := func() bool { // Найти счётчик цены серебра
-		сам.сеть.Обновить()
+		сам.Обновить()
 		еслиНайдено := false
 		lstMarket := сам.СписПолучить()
 		for _, strOut = range lstMarket {
@@ -398,7 +395,7 @@ func (сам *Рынок) купитьЗолото() bool {
 	strLink := lstLink[1]
 	lstLink = strings.Split(strLink, `"><span><span>Получить `)
 	strLink = "https://wartank.ru/" + lstLink[0]
-	lstMarket, err := сам.сеть.Get(strLink)
+	lstMarket, err := сам.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Market.buyGold(): при выполнении GET-команды на покупку золота, err=\n\t%v\n", err)
 		return true

+ 18 - 21
app/lev3/farm_bots/bot/angar/base/mine/mine.go → app/lev3/bot/angar/base/mine/mine.go

@@ -9,16 +9,14 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 )
 
 // Шахта -- объект шахты на базе
 type Шахта struct {
 	ИАрена
-	сеть         ИАренаСеть
 	лог          ИВебЛог
 	бот          ИБот
 	база         ИБаза
@@ -58,7 +56,6 @@ func НовШахта(конт ИБотКонтекст, база ИБаза) (
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
 	сам.лог = сам.ВебЛог()
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/production/Mine")
 	go сам.пуск()
 	сам.лог.ОтклВывод()
 	сам.лог.Добавить("Шахта.НовШахта(): бот=%q\n", сам.бот.Имя())
@@ -140,7 +137,7 @@ func (сам *Шахта) количествоПолучить() (bool, error) {
 		еслиНайдено bool
 		режим       string
 	)
-	lstMine := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstMine := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	/*
 		Режим (руда-1):
 		<td class="vam"><div class="nwr pr5 gray1"><img class="rico vm" src="/images/icons/ore.png?2" alt="ore"/>&nbsp;1</div></td>
@@ -251,7 +248,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
 		strOut      string
 		еслиНайдено bool
 	)
-	списШахта := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	списШахта := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// <a class="simple-but border" href="buildings?35-1.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink"><span><span>Забрать</span></span></a>
 	for _, strOut = range списШахта {
 		if strings.Contains(strOut, `.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink`) {
@@ -267,7 +264,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
 	_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Забрать</span></span></a>`)
 	ссылка := "https://wartank.ru/" + _ссылка
 	// http://wartank.ru/buildings?5-1.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink
-	lstBase1 := сам.сеть.ВебВоркер().Получ(ссылка)
+	lstBase1 := сам.Сеть().ВебВоркер().Получ(ссылка)
 	if err := сам.СтрОбновить(lstBase1); err != nil {
 		сам.лог.Добавить("Шахта.шахтаЗабрать(): при обновлении lstMine, err=\n\t%v\n", err)
 		return false
@@ -279,7 +276,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
 // Проверяет ускорение строительства FIXME: не работает
 func (сам *Шахта) ускорениеПровер() {
 	сам.лог.Добавить("")
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Шахта - 0</span><br/>
 	var (
 		еслиНайти bool
@@ -306,7 +303,7 @@ func (сам *Шахта) Уровень() ИСтатПарам {
 // Обновляет текущий уровень шахты (может быть не построена)
 func (сам *Шахта) уровеньОбновить() bool {
 	сам.лог.Добавить("Шахта.уровеньОбновить()\n")
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	// <span class="green2">Шахта - 0</span><br/>
 	var (
 		еслиНайти = false
@@ -342,7 +339,7 @@ func (сам *Шахта) построить() bool {
 		еслиНайти = false
 		стр       = ""
 	)
-	списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
+	списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
 	for _, стр = range списСтр {
 		if strings.Contains(стр, `href="building-upgrade/Mine"><span><span>Построить</span></span>`) {
 			еслиНайти = true
@@ -357,7 +354,7 @@ func (сам *Шахта) построить() bool {
 	_стр := strings.TrimPrefix(стр, `<td style="width:50%;padding-left:1px;"><a class="simple-but border mb5" href="`)
 	_стр = strings.TrimSuffix(_стр, `"><span><span>Построить</span></span></a></td>`)
 	ссылка := "https://wartank.ru/" + _стр
-	списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+	списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 	еслиНайти = false
 	// "<a class=\"simple-but border mb5\" href=\"Mine?14-1.ILinkListener-upgradeLink-link\">"
 	for _, стр = range списСтр {
@@ -374,7 +371,7 @@ func (сам *Шахта) построить() bool {
 	_стр = strings.TrimSuffix(_стр, "\">")
 	// http://wartank.ru/building-upgrade/Mine?16-1.ILinkListener-upgradeLink-link
 	ссылка = "https://wartank.ru/building-upgrade/" + _стр
-	_ = сам.сеть.ВебВоркер().Получ(ссылка)
+	_ = сам.Сеть().ВебВоркер().Получ(ссылка)
 	return true
 }
 
@@ -388,7 +385,7 @@ func (сам *Шахта) проапгрейдить() bool {
 	)
 	фнКупить := func() (bool, error) {
 		defer time.Sleep(time.Millisecond * 1000)
-		списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Mine")
+		списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Mine")
 		for _, стр = range списСтр {
 			// <a class="simple-but border mb5" href="Mine?5-1.ILinkListener-upgradeLink-link">
 			if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
@@ -406,7 +403,7 @@ func (сам *Шахта) проапгрейдить() bool {
 		// https://wartank.ru/building-upgrade/Mine?4-1.ILinkListener-upgradeLink-link
 		// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
 		ссылка := "https://wartank.ru/building-upgrade/" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
@@ -435,7 +432,7 @@ func (сам *Шахта) проапгрейдить() bool {
 		_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
 		// https://wartank.ru/wicket/page?6-1.ILinkListener-confirmLink
 		ссылка := "https://wartank.ru" + _стр
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
 		// Проверить, что постройка состоялась
 		for _, стр := range списСтр {
 			if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
@@ -470,7 +467,7 @@ func (сам *Шахта) проапгрейдить() bool {
 
 // Сделать -- вызывается с базы, если она обнаружила, что пора сделать продукцию
 func (сам *Шахта) Сделать() {
-	сам.сеть.Обновить()
+	сам.Обновить()
 	if err := сам.выбратьМеталл(); err != nil {
 		сам.лог.Добавить("ERRO Шахта.Сделать(): при выборе продукции, err=\n\t%v\n", err)
 		return
@@ -598,7 +595,7 @@ func (сам *Шахта) выбратьМеталл() error {
 // Создаёт руду
 func (сам *Шахта) рудаСделать() bool {
 	time.Sleep(time.Millisecond * 55)
-	lstMine, err := сам.сеть.Get("https://wartank.ru/production/Mine")
+	lstMine, err := сам.Сеть().Get("https://wartank.ru/production/Mine")
 	if err != nil {
 		// log._rintf("ERRO Шахта.сделатьРуду(): при GET-команде 'начать производство руды', err=\n\t%v\n", err)
 		return false
@@ -633,7 +630,7 @@ func (сам *Шахта) рудаСделать() bool {
 	strLink = "https://wartank.ru/production/" + _link
 	// https://wartank.ru/production/Mine?19-1.ILinkListener-productions-0-production-startProduceLink
 	time.Sleep(time.Millisecond * 55)
-	lstMine, err = сам.сеть.Get(strLink)
+	lstMine, err = сам.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Шахта.сделатьРуду(): при GET-команде 'начать производство руды', err=\n\t%v\n", err)
 		return false
@@ -694,7 +691,7 @@ func (сам *Шахта) железоСделать() bool {
 	lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + lstLink[0]
 	// https://wartank.ru/production/Mine?4-1.ILinkListener-productions-1-production-startProduceLink
-	lstMine, err := сам.сеть.Get(strLink)
+	lstMine, err := сам.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO MineNet.makeFerrum(): при GET-команде 'начать производство железа', err=\n\t%v\n", err)
 		return false
@@ -753,7 +750,7 @@ func (сам *Шахта) стальСделать() bool {
 	lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + lstLink[0]
 	time.Sleep(time.Millisecond * 55)
-	lstMine, err := сам.сеть.Get(strLink)
+	lstMine, err := сам.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO MineNet.makeSteel(): при GET-команде 'начать производство стали', err=\n\t%v\n", err)
 		return false
@@ -812,7 +809,7 @@ func (сам *Шахта) свинецСделать() bool {
 	lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "https://wartank.ru/production/" + lstLink[0]
 	time.Sleep(time.Millisecond * 55)
-	lstMine, err := сам.сеть.Get(strLink)
+	lstMine, err := сам.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Шахта.сделатьСвинец(): при GET-команде 'начать производство стали', err=\n\t%v\n", err)
 		return false

+ 14 - 17
app/lev3/farm_bots/bot/angar/base/polygon/polygon.go → app/lev3/bot/angar/base/polygon/polygon.go

@@ -7,9 +7,8 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev1/stat_param"
+	"wartank/app/lev2/arena"
 	"wartank/pkg/alias"
 	"wartank/pkg/cons"
 	"wartank/pkg/kernel/kernel_log"
@@ -36,7 +35,6 @@ type Полигон struct {
 	ИАрена
 	бот           ИБот
 	танкСтат      ИТанкСтат
-	сеть          ИАренаСеть
 	продуктСейчас *safe_string.БезопСтрока
 	продуктКол    *safe_int.БезопЦелое
 	уровень       *stat_param.СтатПарам
@@ -63,7 +61,6 @@ func НовПолигон(конт ИБотКонтекст, база ИБаза
 		СтрУрл_:      "https://wartank.ru/polygon",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/polygon")
 	_ = ИАренаПолигон(сам)
 	return сам
 }
@@ -157,7 +154,7 @@ func (сам *Полигон) пуск() {
 
 // Построить
 func (сам *Полигон) построить() bool {
-	списСтр := сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
+	списСтр := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
 	ссылка0 := "" // ссылка на постройку
 
 	{ // Поиск ссылки на покупку
@@ -175,7 +172,7 @@ func (сам *Полигон) построить() bool {
 		ссылка0 = strings.TrimSuffix(ссылка0, `">`)
 		// https://wartank.ru/building-upgrade/Polygon?40-1.ILinkListener-upgradeLink-link
 		ссылка0 = "http://wartank.ru/building-upgrade/" + ссылка0
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка0)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка0)
 	}
 	ссылка1 := "" // ссылка на улучшение здания
 
@@ -194,7 +191,7 @@ func (сам *Полигон) построить() bool {
 		ссылка1 = strings.TrimSuffix(ссылка1, `">`)
 		// https://wartank.ru/building-upgrade/Polygon?48-1.ILinkListener-upgradeLink-link
 		ссылка1 = "http://wartank.ru/building-upgrade/" + ссылка1
-		списСтр = сам.сеть.ВебВоркер().Получ(ссылка1)
+		списСтр = сам.Сеть().ВебВоркер().Получ(ссылка1)
 	}
 	ссылка2 := "" // подтверждение покупки
 	{             // Подтверждение покупки
@@ -213,7 +210,7 @@ func (сам *Полигон) построить() bool {
 		// https://wartank.ru/wicket/page?52-1.ILinkListener-confirmLink
 		ссылка2 = "http://wartank.ru/wicket/" + ссылка2
 		//ссылка2="https://wartank.ru/wicket/page?25-1.ILinkListener-confirmLink"
-		_ = сам.сеть.ВебВоркер().Получ(ссылка2)
+		_ = сам.Сеть().ВебВоркер().Получ(ссылка2)
 	}
 	return true
 }
@@ -224,7 +221,7 @@ func (сам *Полигон) уровеньПолучить() bool {
 		стрВых      = ""
 		еслиНайдено bool
 	)
-	lstBase := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstBase := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// <span class="green2">Полигон - 5</span><br/>
 	for _, стрВых = range lstBase {
 		if strings.Contains(стрВых, `<span class="green2">Полигон - `) {
@@ -251,7 +248,7 @@ func (сам *Полигон) проверитьУскорение() bool {
 		strOut      = ""
 		еслиНайдено bool
 	)
-	lstBase := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
+	lstBase := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
 	// Проверка на платное ускорение апгрейда + время
 	{ // Платное ускорение
 		if strings.Contains(strOut, `Ускорить за`) {
@@ -287,7 +284,7 @@ func (сам *Полигон) проверитьУскорение() bool {
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
 		strLink = "https://wartank.ru/" + lstLink[0]
-		lstBase, err := сам.сеть.Get(strLink)
+		lstBase, err := сам.Сеть().Get(strLink)
 		if err != nil {
 			// log._rintf("ERRO NetBank.checkArsenalForce(): при GET-запросе на бесплатном ускорении апгрейда арсенала, err=\n\t%v\n", err)
 			return false
@@ -312,7 +309,7 @@ func (сам *Полигон) проверитьУскорение() bool {
 // Проверяет необходимость постройки полигона
 func (сам *Полигон) построитьПровер() bool {
 	// https://wartank.ru/building-upgrade/Polygon
-	списПолигон := сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
+	списПолигон := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Polygon")
 	стрСсылка := ""
 	еслиНайти := false
 	// <a class="simple-but border mb5" href="Polygon?66-1.ILinkListener-upgradeLink-link">
@@ -415,7 +412,7 @@ func (сам *Полигон) усилениеПровер() {
 
 // Выбирает самый слабый параметр и усиливает его
 func (сам *Полигон) усилениеДобавить() {
-	сам.сеть.Обновить()
+	сам.Сеть().Обновить()
 	// log._rintf("Polygon.checkPolygon(): при принудительном обновлении lstPolygon, mode=%s\terr=\n\t%v\n", сам.ModeCurrent().Get(), err)
 	if err := сам.ОбратВремяУст("05"); err != nil {
 		log.Printf("Polygon.checkPolygon(): при принудительном обновлении обратного времени, время=`05`\terr=\n\t%v\n", err)
@@ -484,7 +481,7 @@ func (сам *Полигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("ERRO NetPolygon.addForce(): in make request force attack, err=\n\t%v\n", err)
 			return
 		}
@@ -522,7 +519,7 @@ func (сам *Полигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("NetPolygon.addForce(): in make request force armor, err=\n\t%v\n", err)
 			return
 		}
@@ -560,7 +557,7 @@ func (сам *Полигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("ERRO NetPolygon.addForce(): in make request force fyne, err=\n\t%v\n", err)
 			return
 		}
@@ -595,7 +592,7 @@ func (сам *Полигон) усилениеДобавить() {
 		strOut = lstLink[1]
 		lstLink = strings.Split(strOut, `"><span><span>Получить бесплатно</span></span></a>`)
 		strLink := "https://wartank.ru/" + lstLink[0]
-		if _, err := сам.сеть.Get(strLink); err != nil {
+		if _, err := сам.Сеть().Get(strLink); err != nil {
 			// log._rintf("NetPolygon.addForce(): in make request force hard, err=\n\t%v\n", err)
 			return
 		}

+ 0 - 0
app/lev3/farm_bots/bot/angar/battle/battle.go → app/lev3/bot/angar/battle/battle.go


+ 1 - 4
app/lev3/farm_bots/bot/angar/battle/battle_worker/battle_worker.go → app/lev3/bot/angar/battle/battle_worker/battle_worker.go

@@ -5,11 +5,10 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound"
-	"wartank/app/lev1/stat_param"
 )
 
 // СражениеДействие -- исполнение битвы
@@ -17,7 +16,6 @@ type СхваткаИсполнитель struct {
 	ИАрена
 	конт ИБотКонтекст
 	бот  ИБот
-	сеть ИАренаСеть
 
 	еслиНачало ИСтатПарам
 
@@ -43,7 +41,6 @@ func НовСражениеИсполнитель(конт ИБотКонтек
 		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 

+ 1 - 1
app/lev3/farm_bots/bot/angar/battle/battle_worker/battle_worker/battle_sound/battle_sound.go → app/lev3/bot/angar/battle/battle_worker/battle_worker/battle_sound/battle_sound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 8
app/lev3/farm_bots/bot/angar/battle/battle_worker/battle_worker/battle_worker.go → app/lev3/bot/angar/battle/battle_worker/battle_worker/battle_worker.go

@@ -6,7 +6,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/health"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/manevr"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/shot"
@@ -20,7 +19,6 @@ import (
 // СражениеДействие -- непосредственно танкует в сражении
 type СражениеДействие struct {
 	ИАрена
-	сеть       ИАренаСеть
 	бот        ИБот
 	кнт        context.Context // Контекст сражения
 	фнОтменить func()          // Функция отмены сражения
@@ -48,9 +46,9 @@ func НовСражениеДействие(конт ИБотКонтекст, 
 		АренаИмя_:    "Исполнитель сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	go сам.пуск()
 	_ = ИСражениеДействие(сам)
 	return сам
@@ -84,11 +82,6 @@ func (сам *СражениеДействие) пуск() {
 	<-сам.кнт.Done()
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *СражениеДействие) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 func (сам *СражениеДействие) МанёврНадоУст() {
 	if сам.манёвр == nil {
 		return

+ 1 - 1
app/lev3/farm_bots/bot/angar/death_match/death_worker/death_on/battlesound/battlesound.go → app/lev3/bot/angar/battle/battle_worker/battle_worker/battlesound/battlesound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 0 - 0
app/lev3/farm_bots/bot/angar/battle/battle_worker/battle_worker/manevr/manevr.go → app/lev3/bot/angar/battle/battle_worker/battle_worker/manevr/manevr.go


+ 1 - 8
app/lev3/farm_bots/bot/angar/battle/battle_worker/battleon/battleon.go → app/lev3/bot/angar/battle/battle_worker/battleon/battleon.go

@@ -6,7 +6,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/health"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/manevr"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/shot"
@@ -21,7 +20,6 @@ import (
 // СражениеДействие -- непосредственно танкует в сражении
 type СражениеДействие struct {
 	ИАрена
-	сеть       ИАренаСеть
 	бот        ИБот
 	кнт        context.Context // Контекст сражения
 	фнОтменить func()          // Функция отмены сражения
@@ -49,9 +47,9 @@ func НовСражениеДействие(конт ИЯдроКонтекст,
 		АренаИмя_:    "Исполнитель сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	go сам.пуск()
 	_ = ИСражениеДействие(сам)
 	return сам
@@ -85,11 +83,6 @@ func (сам *СражениеДействие) пуск() {
 	<-сам.кнт.Done()
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *СражениеДействие) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 func (сам *СражениеДействие) МанёврНадоУст() {
 	if сам.манёвр == nil {
 		return

+ 0 - 0
app/lev3/farm_bots/bot/angar/death_match/battle.go → app/lev3/bot/angar/death_match/battle.go


+ 1 - 1
app/lev3/farm_bots/bot/angar/death_match/death_worker/death_on/battle_sound/battle_sound.go → app/lev3/bot/angar/death_match/death_worker/death_on/battle_sound/battle_sound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 1
app/lev3/farm_bots/bot/angar/battle/battle_worker/battle_worker/battlesound/battlesound.go → app/lev3/bot/angar/death_match/death_worker/death_on/battlesound/battlesound.go

@@ -2,8 +2,8 @@ package battle_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 8
app/lev3/farm_bots/bot/angar/death_match/death_worker/death_on/death_on.go → app/lev3/bot/angar/death_match/death_worker/death_on/death_on.go

@@ -6,7 +6,6 @@ import (
 
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_death/death_worker/death_on/health"
 	"wartank/app/lev2/arena_death/death_worker/death_on/manevr"
 	"wartank/app/lev2/arena_death/death_worker/death_on/shot"
@@ -21,7 +20,6 @@ import (
 // СхваткаДействие -- непосредственно танкует в сражении
 type СхваткаДействие struct {
 	ИАрена
-	сеть       ИАренаСеть
 	бот        ИБот
 	кнт        context.Context // Контекст сражения
 	фнОтменить func()          // Функция отмены сражения
@@ -49,9 +47,9 @@ func НовСхваткаДействие(конт ИЯдроКонтекст, 
 		АренаИмя_:    "Исполнитель схватки",
 		СтрКонтроль_: `<title>Схватка</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/de",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/de")
 	go сам.пуск()
 	return сам
 }
@@ -84,11 +82,6 @@ func (сам *СхваткаДействие) пуск() {
 	<-сам.кнт.Done()
 }
 
-// Сеть -- возвращает сетевой компонент секции
-func (сам *СхваткаДействие) Сеть() ИАренаСеть {
-	return сам.сеть
-}
-
 func (сам *СхваткаДействие) МанёврНадоУст() {
 	if сам.манёвр == nil {
 		return

+ 0 - 0
app/lev3/farm_bots/bot/angar/death_match/death_worker/death_on/manevr/manevr.go → app/lev3/bot/angar/death_match/death_worker/death_on/manevr/manevr.go


+ 2 - 4
app/lev3/farm_bots/bot/angar/death_match/death_worker/death_worker.go → app/lev3/bot/angar/death_match/death_worker/death_worker.go

@@ -5,11 +5,10 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
-	"wartank/app/lev2/arena/arena_net"
 	"wartank/app/lev2/arena_death/death_worker/death_on"
 	"wartank/app/lev2/arena_death/death_worker/death_on/battle_sound"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
 	. "wartank/pkg/kernel/kernel_types"
 )
 
@@ -18,7 +17,6 @@ type СхваткаИсполнитель struct {
 	ИАрена
 	конт ИЯдроКонтекст
 	бот  ИБот
-	сеть ИАренаСеть
 
 	еслиНачало ИСтатПарам
 
@@ -41,9 +39,9 @@ func НовСхваткаИсполнитель(конт ИЯдроКонтек
 		АренаИмя_:    "Ход сражения",
 		СтрКонтроль_: `<title>Сражения</title>`,
 		ФнПуск_:      сам.пуск,
+		СтрУрл_:      "https://wartank.ru/pve",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
-	сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/pve")
 	return сам
 }
 

+ 1 - 1
app/lev3/farm_bots/bot/angar/division/div_war/div_war.go → app/lev3/bot/angar/division/div_war/div_war.go

@@ -8,11 +8,11 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena_division/div_war/div_war_net"
 	"wartank/app/lev2/arena_division/div_war/div_war_on"
 	"wartank/app/lev2/arena_division/div_war/div_war_on/div_war_sound"
-	"wartank/app/lev1/stat_param"
 	"wartank/pkg/alias"
 	. "wartank/pkg/kernel/kernel_types"
 )

+ 1 - 1
app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/div_war_sound/div_war_sound.go → app/lev3/bot/angar/division/div_war/div_war_on/div_war_sound/div_war_sound.go

@@ -2,8 +2,8 @@ package div_war_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 1 - 1
app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/divwarsound/divwarsound.go → app/lev3/bot/angar/division/div_war/div_war_on/divwarsound/divwarsound.go

@@ -2,8 +2,8 @@ package div_war_sound
 
 import (
 	"time"
+	"wartank/app/lev1/sound"
 	"wartank/app/lev2/arena_battle/battle_worker/battle_worker/battle_sound/is_sound_play"
-		"wartank/app/lev1/sound"
 )
 
 /*

+ 0 - 0
app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/health/health.go → app/lev3/bot/angar/division/div_war/div_war_on/health/health.go


+ 0 - 0
app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/manevr/manevr.go → app/lev3/bot/angar/division/div_war/div_war_on/manevr/manevr.go


+ 0 - 0
app/lev3/farm_bots/bot/angar/division/div_war/div_war_on/shot/shot.go → app/lev3/bot/angar/division/div_war/div_war_on/shot/shot.go


+ 1 - 1
app/lev3/farm_bots/bot/angar/division/divwar/divwar.go → app/lev3/bot/angar/division/divwar/divwar.go

@@ -8,11 +8,11 @@ import (
 	"time"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena"
 	"wartank/app/lev2/arena_division/div_war/div_war_net"
 	"wartank/app/lev2/arena_division/div_war/div_war_on"
 	"wartank/app/lev2/arena_division/div_war/div_war_on/div_war_sound"
-	"wartank/app/lev1/stat_param"
 	"wartank/pkg/alias"
 	. "wartank/pkg/kernel/kernel_types"
 )

+ 0 - 0
app/lev3/farm_bots/bot/angar/fuel/fuel.go → app/lev3/bot/angar/fuel/fuel.go


+ 0 - 0
app/lev3/farm_bots/bot/angar/stat_convoy_fixme/stat_convoy_fixme.go → app/lev3/bot/angar/stat_convoy_fixme/stat_convoy_fixme.go


+ 1 - 1
app/lev3/bot/bot_stat/stat_resurs/stat_resurs.go

@@ -5,8 +5,8 @@ import (
 	"fmt"
 
 	. "wartank/app/lev0/types"
+	"wartank/app/lev1/stat_param"
 	"wartank/app/lev2/arena_angar/fuel"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
 )
 
 // СтатРесурсы -- статистика ресурсов

+ 1 - 1
app/lev3/bot/bot_stat/tank_stat/tank_stat.go

@@ -3,7 +3,7 @@ package tank_stat
 
 import (
 	. "wartank/app/lev0/types"
-	"wartank/app/lev3/bot/bot_stat/stat_param"
+	"wartank/app/lev1/stat_param"
 )
 
 // ТанкСтат -- статические параметры танка

+ 0 - 46
app/lev3/farm_bots/bot/bot_stat/stat_resurs/stat_resurs.go

@@ -1,46 +0,0 @@
-// package stat_resurs -- статистика ресурсов
-package stat_resurs
-
-import (
-	"fmt"
-
-	. "wartank/app/lev0/types"
-	"wartank/app/lev2/arena_angar/fuel"
-	"wartank/app/lev1/stat_param"
-)
-
-// СтатРесурсы -- статистика ресурсов
-type СтатРесурсы struct {
-	золото       ИСтатПарам
-	сереброВсего ИСтатПарам
-	топливо      *fuel.Топливо
-}
-
-// НовСтатРесурсы -- новая статистика ресурсов
-func НовСтатРесурсы(конт ИБотКонтекст, ангар ИАнгар) *СтатРесурсы {
-	сам := &СтатРесурсы{
-		золото:       stat_param.НовСтатПарам("золото"),
-		сереброВсего: stat_param.НовСтатПарам("серебро всего"),
-	}
-	var ош error
-	сам.топливо, ош = fuel.НовТопливо(конт, ангар)
-	if ош != nil {
-		panic(fmt.Errorf("НовСтатРесурсы(): in make *Missions, err=\n\t%w", ош))
-	}
-	return сам
-}
-
-// Топливо -- возвращает топливо
-func (сам *СтатРесурсы) Топливо() *fuel.Топливо {
-	return сам.топливо
-}
-
-// СереброВсего -- возвращает общее количество серебро
-func (сам *СтатРесурсы) СереброВсего() ИСтатПарам {
-	return сам.сереброВсего
-}
-
-// Золото -- возвращает количество золотых ресурсов
-func (сам *СтатРесурсы) Золото() ИСтатПарам {
-	return сам.золото
-}

+ 0 - 68
app/lev3/farm_bots/bot/bot_stat/tank_stat/tank_stat.go

@@ -1,68 +0,0 @@
-// package tank_stat -- статистика бота
-package tank_stat
-
-import (
-	. "wartank/app/lev0/types"
-	"wartank/app/lev1/stat_param"
-)
-
-// ТанкСтат -- статические параметры танка
-type ТанкСтат struct {
-	конт      ИБотКонтекст
-	атака     ИСтатПарам
-	точность  ИСтатПарам
-	прочность ИСтатПарам
-	броня     ИСтатПарам
-	power     ИСтатПарам // Танковая мощь (может не совпадать по сумме, если есть усиление)
-	усиление  ИСтатПарам
-}
-
-// НовТанкСтат -- возвращает новый *TankStat
-func НовТанкСтат(конт ИБотКонтекст) *ТанкСтат {
-	сам := &ТанкСтат{
-		конт:      конт,
-		атака:     stat_param.НовСтатПарам("атака"),
-		точность:  stat_param.НовСтатПарам("точность"),
-		прочность: stat_param.НовСтатПарам("прочность"),
-		броня:     stat_param.НовСтатПарам("броня"),
-		power:     stat_param.НовСтатПарам("мощь"),
-		усиление:  stat_param.НовСтатПарам("усиление"),
-	}
-	return сам
-}
-
-// Атака -- возвращает объект силы атаки
-func (сам *ТанкСтат) Атака() ИСтатПарам {
-	return сам.атака
-}
-
-// Прочность -- возвращает объект прочности танка
-func (сам *ТанкСтат) Прочность() ИСтатПарам {
-	return сам.броня
-}
-
-// Точность -- возвращает объект точности танка
-func (сам *ТанкСтат) Точность() ИСтатПарам {
-	return сам.точность
-}
-
-// Броня -- возвращает объект брони танка
-func (сам *ТанкСтат) Броня() ИСтатПарам {
-	return сам.прочность
-}
-
-// Мощь -- возвращает объект мощи танка
-func (сам *ТанкСтат) Мощь() ИСтатПарам {
-	return сам.power
-}
-
-// Форсаж -- возвращает объект форсированного параметра
-func (сам *ТанкСтат) Форсаж() ИСтатПарам {
-	return сам.усиление
-}
-
-// Форсаж -- возвращает объект форсированного параметра
-func (сам *ТанкСтат) ФорсажОбнов(парам string, знач int) {
-	сам.усиление = stat_param.НовСтатПарам("усиление")
-	сам.усиление.Уст(знач)
-}