Ver código fonte

d03 Прикручивание русского языка

SVI 2 anos atrás
pai
commit
17fe47b13d
100 arquivos alterados com 1343 adições e 1284 exclusões
  1. 1 0
      .env
  2. 2 2
      pkg/alias/alias.go
  3. 11 11
      pkg/components/section/down_time/down_time.go
  4. 14 11
      pkg/components/section/down_time/down_time_test.go
  5. 12 12
      pkg/components/section/section.go
  6. 8 8
      pkg/components/section/section_mode/section_mode.go
  7. 13 13
      pkg/components/section/zone/zone.go
  8. 6 6
      pkg/components/sectionnet/netclient/netclient.go
  9. 4 4
      pkg/components/sectionnet/netstat/netstat.go
  10. 5 5
      pkg/components/sectionnet/sectionnet.go
  11. 2 2
      pkg/components/wrag/wrag.go
  12. 16 16
      pkg/cons/cons.go
  13. 7 0
      pkg/mock/mock_zone/mock_zone.go
  14. 6 6
      pkg/mock/mockapp/mockapp.go
  15. 1 5
      pkg/mock/mockenv/mockenv.go
  16. 2 2
      pkg/store/store.go
  17. 29 29
      pkg/types/iangar.go
  18. 11 11
      pkg/types/iarsenal.go
  19. 9 9
      pkg/types/ibank.go
  20. 8 8
      pkg/types/ibankmode.go
  21. 13 13
      pkg/types/ibase.go
  22. 0 12
      pkg/types/ibattle.go
  23. 26 0
      pkg/types/ibattle_action.go
  24. 12 0
      pkg/types/ibattle_scene.go
  25. 0 26
      pkg/types/ibattleon.go
  26. 28 28
      pkg/types/ibot.go
  27. 6 6
      pkg/types/ibot_cookie.go
  28. 16 16
      pkg/types/ibot_net.go
  29. 5 5
      pkg/types/iconvoy.go
  30. 10 10
      pkg/types/icounttime.go
  31. 26 26
      pkg/types/idesktop.go
  32. 4 4
      pkg/types/idict_bot.go
  33. 31 0
      pkg/types/idiv_war_action.go
  34. 12 0
      pkg/types/idiv_war_scene.go
  35. 0 12
      pkg/types/idivwar.go
  36. 0 31
      pkg/types/idivwaron.go
  37. 4 4
      pkg/types/igui.go
  38. 3 3
      pkg/types/imarket.go
  39. 13 13
      pkg/types/imine.go
  40. 3 3
      pkg/types/imissions.go
  41. 10 10
      pkg/types/imode.go
  42. 3 3
      pkg/types/ipolygon.go
  43. 0 4
      pkg/types/iroot.go
  44. 15 0
      pkg/types/iscene.go
  45. 12 12
      pkg/types/isection.go
  46. 2 2
      pkg/types/iserv_bots.go
  47. 3 3
      pkg/types/iserver.go
  48. 8 10
      pkg/types/istatparam.go
  49. 4 4
      pkg/types/itank.go
  50. 13 13
      pkg/types/itankstat.go
  51. 10 10
      pkg/types/iweb_socket.go
  52. 7 7
      pkg/types/iwin.go
  53. 6 6
      pkg/types/iwin_base.go
  54. 0 15
      pkg/types/izone.go
  55. 4 4
      server/gui/gui.go
  56. 34 34
      server/gui/win_main/win_main.go
  57. 11 11
      server/serv_bots/dict_warbot/dict_warbot.go
  58. 5 5
      server/serv_bots/serv_bots.go
  59. 88 64
      server/serv_bots/warbot/angar/angar.go
  60. 10 10
      server/serv_bots/warbot/angar/angar_attack/angar_attack.go
  61. 2 2
      server/serv_bots/warbot/angar/angarnet/angarnet.go
  62. 87 71
      server/serv_bots/warbot/angar/base/arsenal/arsenal.go
  63. 2 2
      server/serv_bots/warbot/angar/base/arsenal/arsenalnet/arsenalnet.go
  64. 33 31
      server/serv_bots/warbot/angar/base/bank/bank.go
  65. 10 9
      server/serv_bots/warbot/angar/base/bank/bankmode/bankmode.go
  66. 1 1
      server/serv_bots/warbot/angar/base/bank/banknet/banknet.go
  67. 92 92
      server/serv_bots/warbot/angar/base/base.go
  68. 1 1
      server/serv_bots/warbot/angar/base/basenet/basenet.go
  69. 12 12
      server/serv_bots/warbot/angar/base/market/market.go
  70. 1 1
      server/serv_bots/warbot/angar/base/market/marketnet/marketnet.go
  71. 83 63
      server/serv_bots/warbot/angar/base/mine/mine.go
  72. 1 1
      server/serv_bots/warbot/angar/base/mine/minenet/minenet.go
  73. 35 35
      server/serv_bots/warbot/angar/base/polygon/polygon.go
  74. 1 1
      server/serv_bots/warbot/angar/base/polygon/polygonnet/polygonnet.go
  75. 7 7
      server/serv_bots/warbot/angar/batmas/batmas.go
  76. 2 2
      server/serv_bots/warbot/angar/batmas/batmasnet/batmasnet.go
  77. 8 8
      server/serv_bots/warbot/angar/battle/battle.go
  78. 4 4
      server/serv_bots/warbot/angar/battle/battle_register/battle_register.go
  79. 6 6
      server/serv_bots/warbot/angar/battle/battle_wait/battle_wait.go
  80. 8 8
      server/serv_bots/warbot/angar/battle/battle_worker/battle_worker.go
  81. 17 17
      server/serv_bots/warbot/angar/battle/battle_worker/battleon/battleon.go
  82. 25 25
      server/serv_bots/warbot/angar/battle/battle_worker/battleon/health/health.go
  83. 14 14
      server/serv_bots/warbot/angar/battle/battle_worker/battleon/manevr/manevr.go
  84. 20 20
      server/serv_bots/warbot/angar/battle/battle_worker/battleon/shot/shot.go
  85. 1 1
      server/serv_bots/warbot/angar/battle/battlenet/battlenet.go
  86. 28 28
      server/serv_bots/warbot/angar/convoy/convoy.go
  87. 1 1
      server/serv_bots/warbot/angar/convoy/convoynet/convoynet.go
  88. 19 19
      server/serv_bots/warbot/angar/division/divwar/divwar.go
  89. 2 2
      server/serv_bots/warbot/angar/division/divwar/divwarnet/divwarnet.go
  90. 14 14
      server/serv_bots/warbot/angar/division/divwar/divwaron/divwaron.go
  91. 30 30
      server/serv_bots/warbot/angar/division/divwar/divwaron/health/health.go
  92. 12 12
      server/serv_bots/warbot/angar/division/divwar/divwaron/manevr/manevr.go
  93. 24 24
      server/serv_bots/warbot/angar/division/divwar/divwaron/shot/shot.go
  94. 11 11
      server/serv_bots/warbot/angar/fuel/fuel.go
  95. 28 28
      server/serv_bots/warbot/angar/missions/missions.go
  96. 1 1
      server/serv_bots/warbot/angar/missions/missionsnet/missionsnet.go
  97. 20 20
      server/serv_bots/warbot/angar/netstat/netstat.go
  98. 3 3
      server/serv_bots/warbot/tank/tank.go
  99. 29 34
      server/serv_bots/warbot/tank/tankstat/static_param/static_param.go
  100. 24 24
      server/serv_bots/warbot/tank/tankstat/tankstat.go

+ 1 - 0
.env

@@ -0,0 +1 @@
+STAGE="local"

+ 2 - 2
pkg/alias/alias.go

@@ -10,5 +10,5 @@ type AMilSec int
 // ADAmage -- урон от выстрела
 type ADamage int
 
-// AWinName -- имя окно показа
-type AWinName string
+// ИмяОкно -- имя окно показа
+type ОкноИмя string

+ 11 - 11
pkg/components/section/down_time/down_time.go

@@ -21,7 +21,7 @@ const (
 
 // DownTime -- счётчик обратного времени для игровой зоны (анга, база, битва и т.п.)
 type DownTime struct {
-	zone   types.IZone
+	zone   types.ИСцена
 	val    *safeint.SafeInt     // Фактическое значение счётчика
 	parser *parsetime.ParseTime // Парсер значения
 
@@ -36,11 +36,11 @@ type DownTime struct {
 }
 
 // NewCountTime -- возвращает новый *CountTime
-func NewCountTime(zone types.IZone, val int) *DownTime {
+func NewCountTime(zone types.ИСцена, val int) *DownTime {
 	if zone == nil {
 		panic("NewCountTime(): IZone == nil")
 	}
-	ctx, fnCancel := context.WithCancel(zone.Ctx())
+	ctx, fnCancel := context.WithCancel(zone.Кнт())
 	sf := &DownTime{
 		zone:       zone,
 		val:        safeint.NewSafeInt(),
@@ -106,13 +106,13 @@ func (sf *DownTime) run() {
 	}
 }
 
-// Stop -- останавливает работу cчётчика
-func (sf *DownTime) Stop() {
+// Стоп -- останавливает работу cчётчика
+func (sf *DownTime) Стоп() {
 	sf.isWork.Reset()
 }
 
-// Get -- возвращает число оставшихся сек
-func (sf *DownTime) Get() int {
+// Получ -- возвращает число оставшихся сек
+func (sf *DownTime) Получ() int {
 	return sf.val.Get()
 }
 
@@ -164,8 +164,8 @@ func (sf *DownTime) set_val(val int) error {
 	return nil
 }
 
-// String -- возвращает строковое представление оставшихся сек
-func (sf *DownTime) String() string {
+// Стр -- возвращает строковое представление оставшихся сек
+func (sf *DownTime) Стр() string {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
 	timeNow := time.Now().UTC().Unix()
@@ -174,7 +174,7 @@ func (sf *DownTime) String() string {
 	return sf.parser.String()
 }
 
-// ChanSig -- возвращает канал чтения тиков
-func (sf *DownTime) ChanSig() <-chan int {
+// КаналСиг -- возвращает канал чтения тиков
+func (sf *DownTime) КаналСиг() <-chan int {
 	return sf.chCall
 }

+ 14 - 11
pkg/components/section/down_time/down_time_test.go

@@ -16,7 +16,7 @@ import (
 type tester struct {
 	t      *testing.T
 	app    *mockapp.MockApp
-	zone   types.IZone
+	zone   types.ИСцена
 	ct     *DownTime
 	err    error
 	isCall *safebool.SafeBool // Признак обратного вызова
@@ -24,7 +24,9 @@ type tester struct {
 
 // Обратный вызов для счётчика времени
 func (sf *tester) call() {
-	<-sf.ct.chCall
+	if sf.ct.chCall != nil {
+		<-sf.ct.chCall
+	}
 }
 
 func TestCountTime(t *testing.T) {
@@ -60,21 +62,21 @@ func (sf *tester) checkTick() {
 		time.Sleep(time.Second * 1)
 		ct.chTick <- 1
 		time.Sleep(time.Millisecond * 20)
-		if val := ct.String(); val != "00:00:08" {
+		if val := ct.Стр(); val != "00:00:08" {
 			sf.t.Errorf("checkTick(): счётчик(%v)!='00:00:08'", val)
 		}
 	}
 	{ // Проверка времени прямо сейчас
 		ct.chTick <- 1
 		time.Sleep(time.Millisecond * 20)
-		if val := ct.String(); val != "00:00:08" {
+		if val := ct.Стр(); val != "00:00:08" {
 			sf.t.Errorf("checkTick(): счётчик(%v)!='00:00:08'", val)
 		}
 	}
 	{ // Проверка обратного вызова прямо сейчас
 		strTime := time.Now().UTC().Format("15:04:05")
 		ct.parse(strTime)
-		if val := ct.String(); val != strTime {
+		if val := ct.Стр(); val != strTime {
 			sf.t.Errorf("checkTick(): счётчик(%v)!=%s", val, strTime)
 		}
 		ct.chTick <- 1
@@ -85,10 +87,10 @@ func (sf *tester) checkTick() {
 			ct.chTick <- 1
 			// Выход из функции -- и есть факт обратного вызова
 			sf.call()
-			if val := ct.Get(); val != 0 {
+			if val := ct.Получ(); val != 0 {
 				sf.t.Errorf("checkTick(): счётчик(%v)!=0", val)
 			}
-			ct.Stop()
+			ct.Стоп()
 			sf.app.CancelApp()
 			time.Sleep(time.Millisecond * 50)
 		}
@@ -163,6 +165,7 @@ func (sf *tester) setStr() {
 // Устанавливает число секунд для отсчёта
 func (sf *tester) setInt() {
 	go sf.call()
+	// sf.zone=
 	ct := NewCountTime(sf.zone, 0)
 	{ // Bad-1 Отрицательное число
 		if sf.err = ct.set_val(-1); sf.err == nil {
@@ -182,7 +185,7 @@ func (sf *tester) setInt() {
 		if ct.parser.Sec().Get() != 8 {
 			sf.t.Errorf("setInt(): GOOD-1 sec(%v)!=8", sf.ct.parser.Sec().Get())
 		}
-		if strVal := ct.String(); strVal != "00:00:08" {
+		if strVal := ct.Стр(); strVal != "00:00:08" {
 			sf.t.Errorf("setInt(): GOOD-1 strVal(%v)!='00:00:08'", strVal)
 		}
 	}
@@ -199,7 +202,7 @@ func (sf *tester) setInt() {
 		if ct.parser.Sec().Get() != 1 {
 			sf.t.Errorf("setInt(): GOOD-2 sec(%v)!=1", sf.ct.parser.Sec().Get())
 		}
-		if strVal := ct.String(); strVal != "00:02:01" {
+		if strVal := ct.Стр(); strVal != "00:02:01" {
 			sf.t.Errorf("setInt(): GOOD-2 strVal(%v)!='00:02:01'", strVal)
 		}
 	}
@@ -216,7 +219,7 @@ func (sf *tester) setInt() {
 		if ct.parser.Sec().Get() != 3 {
 			sf.t.Errorf("setInt(): GOOD-3 sec(%v)!=3", sf.ct.parser.Sec().Get())
 		}
-		if strVal := ct.String(); strVal != "02:00:03" {
+		if strVal := ct.Стр(); strVal != "02:00:03" {
 			sf.t.Errorf("setInt(): GOOD-3 strVal(%v)!='02:00:03'", strVal)
 		}
 	}
@@ -246,7 +249,7 @@ func (sf *tester) createGood1() {
 	if ct == nil {
 		sf.t.Errorf("createGood1(): countTime==nil")
 	}
-	if val := ct.Get(); val != 0 {
+	if val := ct.Получ(); val != 0 {
 		sf.t.Errorf("createGood1(): val(%v)!=0", val)
 	}
 }

+ 12 - 12
pkg/components/section/section.go

@@ -16,13 +16,13 @@ import (
 // Section -- секция игры
 type Section struct {
 	*zone.Zone
-	countDown types.ICountTime      // Обратный отсчёт до окончания работы режима
-	mode      types.IMode           // Объект режима работы
+	countDown types.ИВремяОстат     // Обратный отсчёт до окончания работы режима
+	mode      types.ИРежимРаботы    // Объект режима работы
 	lstString *lst_string.LstString // Список строк из сети для анализа секции
 }
 
 // NewSection -- возвращает новую секцию игры
-func NewSection(bot types.IBot, zoneName, strControl string) (*Section, error) {
+func NewSection(bot types.ИБот, zoneName, strControl string) (*Section, error) {
 	log.Printf("NewSection(): strControl=%q\n", strControl)
 	zone, err := zone.NewZone(bot, zoneName)
 	if err != nil {
@@ -40,16 +40,16 @@ func NewSection(bot types.IBot, zoneName, strControl string) (*Section, error) {
 	return sf, nil
 }
 
-// Update -- обновляет список строк секции по требованию
-func (sf *Section) Update(lstString []string) error {
+// СтрОбновить -- обновляет список строк секции по требованию
+func (sf *Section) СтрОбновить(lstString []string) error {
 	if err := sf.lstString.Set(lstString); err != nil {
-		return fmt.Errorf("Section.Update(): in set lstString, err=\n\t%w", err)
+		return fmt.Errorf("Section.СтрОбновить(): при установке lstString, err=\n\t%w", err)
 	}
 	return nil
 }
 
-// GetLst -- возвращает список строк секции
-func (sf *Section) GetLst() []string {
+// СписПолучить -- возвращает список строк секции
+func (sf *Section) СписПолучить() []string {
 	return sf.lstString.Get()
 }
 
@@ -74,12 +74,12 @@ func (sf *Section) ParseCountDown(sec string) error {
 	return nil
 }
 
-// CountDown -- объект оставшегося времени
-func (sf *Section) CountDown() types.ICountTime {
+// ВремяОпрос -- объект оставшегося времени
+func (sf *Section) ВремяОпрос() types.ИВремяОстат {
 	return sf.countDown
 }
 
-// ModeCurrent -- текущий режим работы
-func (sf *Section) ModeCurrent() types.IMode {
+// РежимТекущ -- текущий режим работы
+func (sf *Section) РежимТекущ() types.ИРежимРаботы {
 	return sf.mode
 }

+ 8 - 8
pkg/components/section/section_mode/section_mode.go

@@ -21,29 +21,29 @@ func NewSectionMode() *SectionMode {
 	}
 }
 
-// Set -- устанавливает режим работы
-func (sf *SectionMode) Set(val string) {
+// Уст -- устанавливает режим работы
+func (sf *SectionMode) Уст(val string) {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	sf.name = val
 }
 
-// Get -- возвращает хранимый режим работы
-func (sf *SectionMode) Get() string {
+// Получ -- возвращает хранимый режим работы
+func (sf *SectionMode) Получ() string {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
 	return sf.name
 }
 
-// Work -- возвращает хранимое имя работы
-func (sf *SectionMode) Work() string {
+// Режим -- возвращает хранимое имя работы
+func (sf *SectionMode) Режим() string {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
 	return sf.work
 }
 
-// WorkSet -- устанавливает хранимое имя работы
-func (sf *SectionMode) WorkSet(work string) {
+// РежимУст -- устанавливает хранимое имя работы
+func (sf *SectionMode) РежимУст(work string) {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	sf.work = work

+ 13 - 13
pkg/components/section/zone/zone.go

@@ -10,14 +10,14 @@ import (
 
 // Zone -- игровая зона (ангар, база, бан, битва и т.п.)
 type Zone struct {
-	bot      types.IBot // Ссылка на бота зоны
+	bot      types.ИБот // Ссылка на бота зоны
 	ctx      context.Context
 	fnCancel func()
 	name     string // Имя игровой зоны
 }
 
 // NewZone -- возвращает новую игровую зону
-func NewZone(bot types.IBot, zoneName string) (*Zone, error) {
+func NewZone(bot types.ИБот, zoneName string) (*Zone, error) {
 	{ // Предусловия
 		if bot == nil {
 			return nil, fmt.Errorf("NewZone(): IBot==nil")
@@ -26,34 +26,34 @@ func NewZone(bot types.IBot, zoneName string) (*Zone, error) {
 			return nil, fmt.Errorf("NewZone(): zoneName is empty")
 		}
 	}
-	log.Printf("NewZone(): name=%q\tzone=%q\n", bot.Name(), zoneName)
-	ctx, fnCancel := context.WithCancel(bot.Ctx())
+	log.Printf("NewZone(): name=%q\tzone=%q\n", bot.Имя(), zoneName)
+	ctx, fnCancel := context.WithCancel(bot.Кнт())
 	sf := &Zone{
 		bot:      bot,
 		name:     zoneName,
 		ctx:      ctx,
 		fnCancel: fnCancel,
 	}
-	_ = types.IZone(sf)
+	_ = types.ИСцена(sf)
 	return sf, nil
 }
 
-// Ctx -- возвращает контекст игровой зоны
-func (sf *Zone) Ctx() context.Context {
+// Кнт -- возвращает контекст игровой зоны
+func (sf *Zone) Кнт() context.Context {
 	return sf.ctx
 }
 
-// CancelZone -- отменяет контекст игровой зоны
-func (sf *Zone) CancelZone() {
+// Закончить -- отменяет контекст игровой зоны
+func (sf *Zone) Закончить() {
 	sf.fnCancel()
 }
 
-// Bot -- возвращает бота игровой зоны
-func (sf *Zone) Bot() types.IBot {
+// Бот -- возвращает бота игровой зоны
+func (sf *Zone) Бот() types.ИБот {
 	return sf.bot
 }
 
-// Name -- возвращает имя зоны
-func (sf *Zone) Name() string {
+// Имя -- возвращает имя зоны
+func (sf *Zone) Имя() string {
 	return sf.name
 }

+ 6 - 6
pkg/components/sectionnet/netclient/netclient.go

@@ -25,7 +25,7 @@ type response struct {
 
 // NetClient -- объект сетевого соединения
 type NetClient struct {
-	botNet types.IBotNet
+	botNet types.ИБотСеть
 	conn   *http.Client
 	stat   *netstat.NetStat
 	chRes  chan *response // Канал ответа от http-клиента
@@ -33,10 +33,10 @@ type NetClient struct {
 }
 
 // NewNetClient -- возвращает сетевого клиента
-func NewNetClient(botNet types.IBotNet) *NetClient {
+func NewNetClient(botNet types.ИБотСеть) *NetClient {
 	sf := &NetClient{
 		botNet: botNet,
-		conn:   botNet.Conn(),
+		conn:   botNet.Коннект(),
 		stat:   netstat.NewNetStat(botNet),
 		chRes:  make(chan *response, 2),
 	}
@@ -47,7 +47,7 @@ func NewNetClient(botNet types.IBotNet) *NetClient {
 func (sf *NetClient) Get(strLink string) (lstString []string, err error) {
 	sf.block.Lock()
 	defer sf.block.Unlock()
-	ctxCancel, fnCancel := context.WithTimeout(sf.botNet.Ctx(), time.Second*7)
+	ctxCancel, fnCancel := context.WithTimeout(sf.botNet.Кнт(), time.Second*7)
 	defer fnCancel()
 	defer func() { // Возможный перехват паники
 		if _panic := recover(); _panic != nil {
@@ -60,7 +60,7 @@ func (sf *NetClient) Get(strLink string) (lstString []string, err error) {
 	select {
 	case <-ctxCancel.Done(): // Таймаут по ожиданию
 		err = fmt.Errorf("NetClient.get(): таймаут ожидания ответа")
-		sf.botNet.CancelBotNet()
+		sf.botNet.Отмена()
 		return nil, err
 	case resp := <-sf.chRes: // Получен ответ
 		if resp.err != nil {
@@ -120,7 +120,7 @@ func (sf *NetClient) closeGetBody(strLink string, httpResp *http.Response, resp
 	defer func() {
 		if _panic := recover(); _panic != nil {
 			// log._rintf("NetClient.closeGetBody(): strLink='%v', panic=%v\n", strLink, _panic)
-			sf.botNet.CancelBotNet()
+			sf.botNet.Отмена()
 		}
 	}()
 	err := httpResp.Body.Close()

+ 4 - 4
pkg/components/sectionnet/netstat/netstat.go

@@ -14,7 +14,7 @@ import (
 
 // NetStat -- статистика сетевого соединения
 type NetStat struct {
-	botNet               types.IBotNet
+	botNet               types.ИБотСеть
 	countByteInterval    int      // Счётчик байтов в текущем интервале
 	totalByte            int      // Сколько всего байт передано
 	totalMinut           int      // Сколько всего минут работала передача
@@ -25,7 +25,7 @@ type NetStat struct {
 }
 
 // NewNetStat -- возвращает новый *NetStat
-func NewNetStat(botNet types.IBotNet) *NetStat {
+func NewNetStat(botNet types.ИБотСеть) *NetStat {
 	sf := &NetStat{
 		botNet: botNet,
 		chTick: make(chan int, 2),
@@ -40,7 +40,7 @@ func (sf *NetStat) makeTick() {
 	defer close(sf.chTick)
 	for {
 		select {
-		case <-sf.botNet.Ctx().Done():
+		case <-sf.botNet.Кнт().Done():
 			return
 		default:
 			time.Sleep(time.Second * 5 * 60)
@@ -66,7 +66,7 @@ func (sf *NetStat) run() {
 	}
 	for range sf.chTick {
 		select {
-		case <-sf.botNet.Ctx().Done():
+		case <-sf.botNet.Кнт().Done():
 			return
 		case <-sf.chTick:
 			fnCalc()

+ 5 - 5
pkg/components/sectionnet/sectionnet.go

@@ -19,13 +19,13 @@ import (
 // SectionNet -- базовый тип для сетевых секций
 type SectionNet struct {
 	client  types.INetClient
-	section types.ISection
+	section types.ИСценаСтр
 	strUrl  string
 	block   sync.Mutex
 }
 
 // NewSectionNet -- возвращает новый *SectionNet
-func NewSectionNet(section types.ISection, strUrl string) (*SectionNet, error) {
+func NewSectionNet(section types.ИСценаСтр, strUrl string) (*SectionNet, error) {
 	log.Printf("NewSectionNet(): url=%q\n", strUrl)
 	{ // Предусловия
 		if section == nil {
@@ -38,7 +38,7 @@ func NewSectionNet(section types.ISection, strUrl string) (*SectionNet, error) {
 	sf := &SectionNet{
 		section: section,
 		strUrl:  strUrl,
-		client:  section.Bot().BotNet().Net(),
+		client:  section.Бот().Сеть().КлиентСеть(),
 	}
 	return sf, nil
 }
@@ -52,12 +52,12 @@ func (sf *SectionNet) UpdateLst() (err error) {
 	defer sf.block.Unlock()
 	// FIXME: попытка разобраться, что за фигня творится
 	// time.Sleep(time.Millisecond * 500)
-	log.Printf("SectionNet.UpdateLst(): bot=%s\tsection=%v\n", sf.section.Bot().Name(), sf.section.Name())
+	log.Printf("SectionNet.UpdateLst(): bot=%s\tsection=%v\n", sf.section.Бот().Имя(), sf.section.Имя())
 	lstString, err := sf.client.Get(sf.strUrl)
 	if err != nil {
 		return fmt.Errorf("SectionNet.UpdateLst(): in make request, err=\n\t%w", err)
 	}
-	if err := sf.section.Update(lstString); err != nil {
+	if err := sf.section.СтрОбновить(lstString); err != nil {
 		return fmt.Errorf("SectionNet.UpdateLst(): in update ISection, err=\n\t%w", err)
 	}
 	return nil

+ 2 - 2
pkg/components/wrag/wrag.go

@@ -14,12 +14,12 @@ import (
 
 // Wrag -- объект врага
 type Wrag struct {
-	app    types.IServer
+	app    types.ИСервер
 	health int // здоровье вражины
 }
 
 // NewWrag -- возвращает новый объект врага
-func NewWrag(app types.IServer, lstBattle []string) *Wrag {
+func NewWrag(app types.ИСервер, lstBattle []string) *Wrag {
 	sf := &Wrag{
 		app: app,
 	}

+ 16 - 16
pkg/cons/cons.go

@@ -20,20 +20,20 @@ const (
 )
 
 const (
-	WinDefault alias.AWinName = "winDefault"
-
-	WinConfig                 alias.AWinName = "winConfig"                 // Режим конфигурирования
-	WinConfigServer           alias.AWinName = "winConfigServer"           // Режим конфигуррования сервера
-	WinConfigServerHostInput  alias.AWinName = "winConfigServerHostInput"  // Режим ввода хоста сервера
-	WinConfigServerLoginInput alias.AWinName = "winConfigServerLoginInput" // Режим ввода логина на сервер
-	WinConfigServerPassInput  alias.AWinName = "winConfigServerPassInput"  // Режим ввода пароля входа на сервер
-
-	WinServerConnect alias.AWinName = "winServerConnect" // Режим подключения к серверу
-	WinServerLogin   alias.AWinName = "winServerLogin"   // Режим логина на сервер
-
-	WinBotsMenu     alias.AWinName = "winBotsMenu"     // Режим показа меню бото-фермы
-	WinBotsAddLogin alias.AWinName = "winBotsAddLogin" // Добавление логина бота на бото-ферму
-	WinBotsAddPass  alias.AWinName = "winBotsAddPass"  // Добавление пароля бота на бото-ферму
-	WinBotsList     alias.AWinName = "winBotsLits"     // Список ботов на бото-ферме
-	WinBotShow      alias.AWinName = "winBotShow"      // Показать состояние бота
+	WinDefault alias.ОкноИмя = "winDefault"
+
+	WinConfig                 alias.ОкноИмя = "winConfig"                 // Режим конфигурирования
+	WinConfigServer           alias.ОкноИмя = "winConfigServer"           // Режим конфигуррования сервера
+	WinConfigServerHostInput  alias.ОкноИмя = "winConfigServerHostInput"  // Режим ввода хоста сервера
+	WinConfigServerLoginInput alias.ОкноИмя = "winConfigServerLoginInput" // Режим ввода логина на сервер
+	WinConfigServerPassInput  alias.ОкноИмя = "winConfigServerPassInput"  // Режим ввода пароля входа на сервер
+
+	WinServerConnect alias.ОкноИмя = "winServerConnect" // Режим подключения к серверу
+	WinServerLogin   alias.ОкноИмя = "winServerLogin"   // Режим логина на сервер
+
+	WinBotsMenu     alias.ОкноИмя = "winBotsMenu"     // Режим показа меню бото-фермы
+	WinBotsAddLogin alias.ОкноИмя = "winBotsAddLogin" // Добавление логина бота на бото-ферму
+	WinBotsAddPass  alias.ОкноИмя = "winBotsAddPass"  // Добавление пароля бота на бото-ферму
+	WinBotsList     alias.ОкноИмя = "winBotsLits"     // Список ботов на бото-ферме
+	WinBotShow      alias.ОкноИмя = "winBotShow"      // Показать состояние бота
 )

+ 7 - 0
pkg/mock/mock_zone/mock_zone.go

@@ -0,0 +1,7 @@
+// package mock_zone -- мок-область зоны игры
+package mock_zone
+
+// МокОбласть -- мок-область зоны игры
+type МокОбласть struct{
+
+}

+ 6 - 6
pkg/mock/mockapp/mockapp.go

@@ -11,7 +11,7 @@ type MockApp struct {
 	*mockkernel.MockKernel
 	fnCancel func()
 	ctx      context.Context
-	bot      types.IBot
+	bot      types.ИБот
 	store    types.IStore
 	block    *sync.RWMutex
 }
@@ -32,11 +32,11 @@ func (sf *MockApp) Store() types.IStore {
 	return sf.store
 }
 
-func (sf *MockApp) Bot() types.IBot {
+func (sf *MockApp) Bot() types.ИБот {
 	return sf.bot
 }
 
-func (sf *MockApp) Angar() types.IAngar {
+func (sf *MockApp) Angar() types.ИАнгар {
 	return nil
 }
 
@@ -44,7 +44,7 @@ func (sf *MockApp) CtxApp() context.Context {
 	return sf.ctx
 }
 
-func (sf *MockApp) Tank() types.ITank {
+func (sf *MockApp) Tank() types.ИТанк {
 	return nil
 }
 
@@ -60,7 +60,7 @@ func (sf *MockApp) Block() *sync.RWMutex {
 	return sf.block
 }
 
-func (sf *MockApp) NetClient() types.IBotNet {
+func (sf *MockApp) NetClient() types.ИБотСеть {
 	return nil
 }
 
@@ -68,6 +68,6 @@ func (sf *MockApp) ServBots() types.IServBots {
 	return nil
 }
 
-func (sf *MockApp) Gui() types.IGui {
+func (sf *MockApp) Gui() types.ИГуи {
 	return nil
 }

+ 1 - 5
pkg/mock/mockenv/mockenv.go

@@ -14,13 +14,9 @@ import (
 var (
 	vars = []string{
 		"STAGE",
-		"SERVICE_NUM",
-		"BUS_LOCAL_URL",
-		"KAFKA_URL",
-		"COMUNDA_URL",
 	}
 	path, _  = os.Getwd()
-	selfPath = `/notify_service/` // Путь к своему проекту
+	selfPath = `/wartank/` // Путь к своему проекту
 	fileEnv  = ".env"
 )
 

+ 2 - 2
pkg/store/store.go

@@ -17,13 +17,13 @@ const (
 
 // Store -- хранилище данных
 type Store struct {
-	app    types.IServer
+	app    types.ИСервер
 	db     *leveldb.DB
 	isWork *safebool.SafeBool
 }
 
 // NewStore - -возвращает новый объект хранилища
-func NewStore(app types.IServer) (*Store, error) {
+func NewStore(app types.ИСервер) (*Store, error) {
 	if app == nil {
 		return nil, fmt.Errorf("NewStore(): IApp is nil")
 	}

+ 29 - 29
pkg/types/iangar.go

@@ -4,33 +4,33 @@ package types
 	Интерфейс к ангару
 */
 
-// IAngar -- интерфейс ангара
-type IAngar interface {
-	ISection
-	// Run -- запускает ангар в работу
-	Run() error
-	// Convoy -- возвращает объект конвоя
-	Convoy() IConvoy
-	// Gold -- возвращает объект золота
-	Gold() IStatParam
-	// Fuel -- возвращает объект топлива
-	Fuel() IStatParam
-	// Level -- возвращает объект уровня игрока
-	Level() IStatParam
-	// Progress -- возвращает прогресс уровня игрока
-	Progress() IStatParam
-	// Online -- возвращает число игроков онлайн
-	Online() IStatParam
-	// SilverOnline -- возвращает заработанное серебро с момента запуска бота
-	SilverOnline() IStatParam
-	// SilverAll -- возвращает всё серебро бота
-	SilverAll() IStatParam
-	// SilverUpdate -- на основе фактического серебра -- обновляет вырабатанное серебро
-	SilverUpdate(silverFact int)
-	// Battle -- возвращает объект сражения
-	Battle() IBattle
-	// Base -- возвращает объект базы
-	Base() IBase
-	// Missions -- возвращает объект миссий
-	Missions() IMissions
+// ИАнгар -- интерфейс ангара
+type ИАнгар interface {
+	ИСценаСтр
+	// Пуск -- запускает ангар в работу
+	Пуск() error
+	// Конвой -- возвращает объект конвоя
+	Конвой() Конвой
+	// Золото -- возвращает объект золота
+	Золото() ИСтатПарам
+	// Топливо -- возвращает объект топлива
+	Топливо() ИСтатПарам
+	// Уровень -- возвращает объект уровня игрока
+	Уровень() ИСтатПарам
+	// Прогресс -- возвращает прогресс уровня игрока
+	Прогресс() ИСтатПарам
+	// ИгрокиОнлайн -- возвращает число игроков онлайн
+	ИгрокиОнлайн() ИСтатПарам
+	// СереброЗаработаноСессия -- возвращает заработанное серебро с момента запуска бота
+	СереброЗаработаноСессия() ИСтатПарам
+	// СереброВсего -- возвращает всё серебро бота
+	СереброВсего() ИСтатПарам
+	// СереброОбновить -- на основе фактического серебра -- обновляет вырабатанное серебро
+	СереброОбновить(silverFact int)
+	// Сражение -- возвращает объект сражения
+	Сражение() ИСражениеСцена
+	// База -- возвращает объект базы
+	База() ИБаза
+	// Миссии -- возвращает объект миссий
+	Миссии() ИМиссии
 }

+ 11 - 11
pkg/types/iarsenal.go

@@ -4,15 +4,15 @@ package types
 	Интерфейс к объекту арсенала
 */
 
-// IArsenal -- интерфейс к объекту арсенала
-type IArsenal interface {
-	ISection
-	// Fugas -- возвращает объект фугасов
-	Fugas() IStatParam
-	// Armor -- возвращает объект бронебойных снарядов
-	Armor() IStatParam
-	// Kumul -- возвращает объект кумулятивных снарядов
-	Kumul() IStatParam
-	// Remka -- возвращает объект ремкомплектов
-	Remka() IStatParam
+// ИАрсенал -- интерфейс к объекту арсенала
+type ИАрсенал interface {
+	ИСценаСтр
+	// Фугасы -- возвращает объект фугасов
+	Фугасы() ИСтатПарам
+	// Бронебойки -- возвращает объект бронебойных снарядов
+	Бронебойки() ИСтатПарам
+	// Кумулятивы -- возвращает объект кумулятивных снарядов
+	Кумулятивы() ИСтатПарам
+	// Ремки -- возвращает объект ремкомплектов
+	Ремки() ИСтатПарам
 }

+ 9 - 9
pkg/types/ibank.go

@@ -4,13 +4,13 @@ package types
 	Предоставляет интерфейс банка на базе
 */
 
-// IBank -- интерфейс банка на базе
-type IBank interface {
-	ISection
-	// SilverBot -- сколько серебра заработал бот
-	SilverBot() IStatParam
-	// Mode1 -- объект первого режима производства
-	Mode1() IBankMode
-	// Mode2 -- объект второго режима производства
-	Mode2() IBankMode
+// ИБанк -- интерфейс банка на базе
+type ИБанк interface {
+	ИСценаСтр
+	// СереброБот -- сколько серебра заработал бот
+	СереброБот() ИСтатПарам
+	// РежимРаботы1 -- объект первого режима производства
+	РежимРаботы1() ИБанкРежим
+	// РежимРаботы2 -- объект второго режима производства
+	РежимРаботы2() ИБанкРежим
 }

+ 8 - 8
pkg/types/ibankmode.go

@@ -4,12 +4,12 @@ package types
 	Интерфейс к объекту режима производства
 */
 
-// IBankMode -- режим производства банка
-type IBankMode interface {
-	// Silver -- количество серебра
-	Silver() IStatParam
-	// Time -- время производства
-	Time() string
-	// TimeSet -- устанавливает время производства
-	TimeSet(string)
+// ИБанкРежим -- режим производства банка
+type ИБанкРежим interface {
+	// Серебро -- количество серебра
+	Серебро() ИСтатПарам
+	// ВремяСделать -- время производства
+	ВремяСделать() string
+	// ВремяСделатьУст -- устанавливает время производства
+	ВремяСделатьУст(string)
 }

+ 13 - 13
pkg/types/ibase.go

@@ -4,17 +4,17 @@ package types
 	Интерфейс к базы игры
 */
 
-// IBase -- интерфейс к базе игры
-type IBase interface {
-	ISection
-	// Arsenal -- возвращает объект арсенала
-	Arsenal() IArsenal
-	// Bank -- возвращает объект банка
-	Bank() IBank
-	// Polygon -- возвращает объект полигона
-	Polygon() IPolygon
-	// Mine -- возвращает объект шахты
-	Mine() IMine
-	// Market -- возвращает рынок
-	Market() IMarket
+// ИБаза -- интерфейс к базе игры
+type ИБаза interface {
+	ИСценаСтр
+	// Арсенал -- возвращает объект арсенала
+	Арсенал() ИАрсенал
+	// Банк -- возвращает объект банка
+	Банк() ИБанк
+	// Полигон -- возвращает объект полигона
+	Полигон() ИПолигон
+	// Шахта -- возвращает объект шахты
+	Шахта() ИШахта
+	// Рынок -- возвращает рынок
+	Рынок() ИРынок
 }

+ 0 - 12
pkg/types/ibattle.go

@@ -1,12 +0,0 @@
-package types
-
-/*
-	Интерфейс к сражению
-*/
-
-// IBattle -- интерфейс к сражению
-type IBattle interface {
-	ISection
-	// Alarm -- возвращает признак начала битвы
-	Alarm() IStatParam
-}

+ 26 - 0
pkg/types/ibattle_action.go

@@ -0,0 +1,26 @@
+package types
+
+import (
+	"context"
+
+	"wartank/server/serv_bots/warbot/angar/battle/battle_worker/battleon/shot/isshot"
+)
+
+/*
+	Интерфейс к сражению
+*/
+
+// ИСражеиеДействие -- интерфейс к непосредственному сражению
+type ИСражеиеДействие interface {
+	ИСценаСтр
+	// Сеть -- возвращает сетевой компонент сражения
+	Сеть() ISectionNet
+	// МанёврНадоУст -- устанавливает признак необходимости манёвра
+	МанёврНадоУст()
+	// ВыстрелБлок -- признак запрета на стрельбу
+	ВыстрелБлок() *isshot.IsShot
+	// Кнт -- возвращает контекст битвы
+	Кнт() context.Context
+	// Отменить -- вызывает контекст отмены битвы
+	Отменить()
+}

+ 12 - 0
pkg/types/ibattle_scene.go

@@ -0,0 +1,12 @@
+package types
+
+/*
+	Интерфейс к сражению
+*/
+
+// ИСражениеСцена -- интерфейс к сражению
+type ИСражениеСцена interface {
+	ИСценаСтр
+	// ЕслиНачало -- возвращает признак начала битвы
+	ЕслиНачало() ИСтатПарам
+}

+ 0 - 26
pkg/types/ibattleon.go

@@ -1,26 +0,0 @@
-package types
-
-import (
-	"context"
-
-	"wartank/server/serv_bots/warbot/angar/battle/battle_worker/battleon/shot/isshot"
-)
-
-/*
-	Интерфейс к сражению
-*/
-
-// IBattleOn -- интерфейс к непосредственному сражению
-type IBattleOn interface {
-	ISection
-	// Net -- возвращает сетевой компонент сражения
-	Net() ISectionNet
-	// SetNeedManevr -- устанавливает признак необходимости манёвра
-	SetNeedManevr()
-	// Masking -- признак запрета на стрельбу
-	Masking() *isshot.IsShot
-	// Ctx -- возвращает контекст битвы
-	Ctx() context.Context
-	// CancelBattle -- вызывает контекст отмены битвы
-	CancelBattle()
-}

+ 28 - 28
pkg/types/ibot.go

@@ -2,32 +2,32 @@ package types
 
 import "context"
 
-// IBot -- серверный бот среальным состоянием
-type IBot interface {
-	// Name -- возвращает им бота
-	Name() string
-	// Pass -- возвращает пароль бота
-	Pass() string
-	// Angar -- возвращает ангар бота
-	Angar() IAngar
-	// Tank -- возврщает параметры танка
-	Tank() ITank
-	// BotNet -- возвращает объект сети
-	BotNet() IBotNet
-	// Run -- запускает бота в работу
-	Run() error
-	// SetAutoGame -- устанавливает признак автоматического начала игры
-	SetAutoGame()
-	// ResetAutoGame -- сбрасывает признак автоматического начала игры
-	ResetAutoGame()
-	// IsAutoGame -- возвращает признак автоматического начала игры
-	IsAutoGame() bool
-	// IsRun -- признак, что бот работает
-	IsRun() bool
-	// Server -- возвращает ссылку на объект сервера
-	Server() IServer
-	// Ctx -- возвращает контекст бота
-	Ctx() context.Context
-	// CancelBot -- отменяет контекст бота
-	CancelBot()
+// ИБот -- серверный бот с реальным состоянием
+type ИБот interface {
+	// Имя -- возвращает им бота
+	Имя() string
+	// Пароль -- возвращает пароль бота
+	Пароль() string
+	// Ангар -- возвращает ангар бота
+	Ангар() ИАнгар
+	// Танк -- возврщает параметры танка
+	Танк() ИТанк
+	// Сеть -- возвращает объект сети
+	Сеть() ИБотСеть
+	// Пуск -- запускает бота в работу
+	Пуск() error
+	// АвтоИграУст -- устанавливает признак автоматического начала игры
+	АвтоИграУст()
+	// АвтоИграСброс -- сбрасывает признак автоматического начала игры
+	АвтоИграСброс()
+	// АвтоИграЕсли -- возвращает признак автоматического начала игры
+	АвтоИграЕсли() bool
+	// ЕслиПуск -- признак, что бот работает
+	ЕслиПуск() bool
+	// Сервер -- возвращает ссылку на объект сервера
+	Сервер() ИСервер
+	// Кнт -- возвращает контекст бота
+	Кнт() context.Context
+	// Закончить -- отменяет контекст бота
+	Закончить()
 }

+ 6 - 6
pkg/types/ibot_cookie.go

@@ -4,10 +4,10 @@ import (
 	"net/http"
 )
 
-// IBotCookie -- куки серверного бота
-type IBotCookie interface {
-	// Set -- устанавливает куки бота
-	Set(cook []*http.Cookie) error
-	// Get -- возвращает куки бота
-	Get() []*http.Cookie
+// ИБотКуки -- куки серверного бота
+type ИБотКуки interface {
+	// Уст -- устанавливает куки бота
+	Уст(cook []*http.Cookie) error
+	// Получ -- возвращает куки бота
+	Получ() []*http.Cookie
 }

+ 16 - 16
pkg/types/ibot_net.go

@@ -11,20 +11,20 @@ import (
 	Интерфейс к сетевому клиенту
 */
 
-// IBotNet -- интерфейс к сетевому клиенту
-type IBotNet interface {
-	// IsOnline -- возвращает признак подключенности к интернету
-	IsOnline() *safebool.SafeBool
-	// Conn -- возвращает объект сетевого подключения
-	Conn() *http.Client
-	// Cookie -- возвращает объект кукисов
-	Cookie() IBotCookie
-	// Net -- возвращает сетевой клиент бота
-	Net() INetClient
-	// Ctx -- контекст сетевого клиента
-	Ctx() context.Context
-	// CancelBotNet -- вызывает отмену котекста сетевого клиента бота
-	CancelBotNet()
-	// Bot -- возвращает ссылку на бота
-	Bot() IBot
+// ИБотСеть -- интерфейс к сетевому клиенту
+type ИБотСеть interface {
+	// ЕслиОнлайн -- возвращает признак подключенности к интернету
+	ЕслиОнлайн() *safebool.SafeBool
+	// Коннект -- возвращает объект сетевого подключения
+	Коннект() *http.Client
+	// Куки -- возвращает объект кукисов
+	Куки() ИБотКуки
+	// КлиентСеть -- возвращает сетевой клиент бота
+	КлиентСеть() INetClient
+	// Кнт -- контекст сетевого клиента
+	Кнт() context.Context
+	// Отмена -- вызывает отмену котекста сетевого клиента бота
+	Отмена()
+	// Бот -- возвращает ссылку на бота
+	Бот() ИБот
 }

+ 5 - 5
pkg/types/iconvoy.go

@@ -4,9 +4,9 @@ package types
 	Объект конвоя
 */
 
-// IConvoy -- интерфейс к объекту конвоя
-type IConvoy interface {
-	ISection
-	// Glory -- возвращает объект славы конвоя
-	Glory() IStatParam
+// Конвой -- интерфейс к объекту конвоя
+type Конвой interface {
+	ИСценаСтр
+	// Слава -- возвращает объект славы конвоя
+	Слава() ИСтатПарам
 }

+ 10 - 10
pkg/types/icounttime.go

@@ -4,20 +4,20 @@ package types
 	Интерфейс к счётчику оставшегося времени
 */
 
-// ICountTime -- нтерфейс к счётчику оставшегося времени
-type ICountTime interface {
+// ИВремяОстат -- нтерфейс к счётчику оставшегося времени
+type ИВремяОстат interface {
 	// Parse -- устанавливает интервал времени
 	// Parse(string) error
 	// Set -- устанавливает интервал времени из числа секунд
 	// Set(int) error
-	// Get -- возвращает оставшееся время
-	Get() int
-	// String -- возвращает стороковое представление оставшегося времени
-	String() string
-	// Stop -- останавливает работу отсчёта
-	Stop()
-	// ChanSig -- возвращает канал тиков
-	ChanSig() <-chan int
+	// Получ -- возвращает оставшееся время
+	Получ() int
+	// Стр -- возвращает стороковое представление оставшегося времени
+	Стр() string
+	// Стоп -- останавливает работу отсчёта
+	Стоп()
+	// КаналСиг -- возвращает канал тиков
+	КаналСиг() <-chan int
 }
 
 func FakeTest() {

+ 26 - 26
pkg/types/idesktop.go

@@ -5,30 +5,30 @@ import (
 	"wartank/pkg/bot"
 )
 
-// IDesktop -- интерфейс к десктоп-приложению
-type IDesktop interface {
-	// SetWin -- устанавливает окно для показа
-	SetWin(alias.AWinName)
-	// IsConnect -- возвращает признак подключенности к серверу ботов
-	IsConnect() bool
-	// Connect -- подклячает клиента к бото-ферме
-	Connect() error
-	// IsLogin -- возвращает признак логина на сервере ботов
-	IsLogin() bool
-	// SetLogin -- устанавливает логин для входа на бото-ферму
-	SetLogin(login string)
-	// MakeLogin -- выпонляет логин на сервер
-	MakeLogin() error
-	// SetHost -- устанавливает имя хоста бото-фермы
-	SetHost(host string)
-	// SetPass -- устанавливает пароль для входа на бото-ферму
-	SetPass(password string)
-	// SetBotLogin -- устанавливает логин текущего бота
-	SetBotLogin(login string)
-	// SetBotPass -- устанавливает пароль текущего бота
-	SetBotPass(password string)
-	// LstBot -- список ботов из клиента
-	LstBot() []*bot.Bot
-	// CurrentBotStart -- запускает в работу текущего бота
-	CurrentBotStart()
+// ИДесктоп -- интерфейс к десктоп-приложению
+type ИДесктоп interface {
+	// УстОкно -- устанавливает окно для показа
+	УстОкно(alias.ОкноИмя)
+	// ЕслиПодкл -- возвращает признак подключенности к серверу ботов
+	ЕслиПодкл() bool
+	// Подключить -- подклячает клиента к бото-ферме
+	Подключить() error
+	// ЕслиЛогин -- возвращает признак логина на сервере ботов
+	ЕслиЛогин() bool
+	// ЛогинУст -- устанавливает логин для входа на бото-ферму
+	ЛогинУст(login string)
+	// ЛогинВход -- выпонляет логин на сервер
+	ЛогинВход() error
+	// ХостУст -- устанавливает имя хоста бото-фермы
+	ХостУст(host string)
+	// ПарольУст -- устанавливает пароль для входа на бото-ферму
+	ПарольУст(password string)
+	// БотЛогинУст -- устанавливает логин текущего бота
+	БотЛогинУст(login string)
+	// БотПарольУст -- устанавливает пароль текущего бота
+	БотПарольУст(password string)
+	// СписБот -- список ботов из клиента
+	СписБот() []*bot.Bot
+	// БотТекущСтарт -- запускает в работу текущего бота
+	БотТекущСтарт()
 }

+ 4 - 4
pkg/types/idict_bot.go

@@ -1,7 +1,7 @@
 package types
 
-// IDictBot -- интрефейс к словарю ботов
-type IDictBot interface {
-	// Show -- показывает словарь ботов
-	Show()
+// ИСловарьБот -- интрефейс к словарю ботов
+type ИСловарьБот interface {
+	// Показать -- показывает словарь ботов
+	Показать()
 }

+ 31 - 0
pkg/types/idiv_war_action.go

@@ -0,0 +1,31 @@
+package types
+
+import (
+	"context"
+	"wartank/pkg/components/safebool"
+)
+
+/*
+	Интерфейс к сражению
+*/
+
+// ИДивизияВойнаДействие -- интерфейс к непосредственному сражению
+type ИДивизияВойнаДействие interface {
+	ИСценаСтр
+	// Сеть -- возвращает сетевой компонент сражения
+	Сеть() ISectionNet
+	// IsEnd -- признак окончания сражения
+	// IsEnd() *isdivwar.IsDivWar
+	// Манёвр -- выполняет манёвр по требованию
+	Манёвр()
+	// Masking -- признак запрета на стрельбу
+	// Masking() *isrepair.IsRepair
+	// Ctx -- возвращает контекст битвы
+	Ctx() context.Context
+	// CancelBattle -- вызывает контекст отмены битвы
+	CancelBattle()
+	// ЕслиКонец -- признак окончания битвы дивизий
+	ЕслиКонец() *safebool.SafeBool
+	// ВыстрелБлок -- объект маскировки
+	ВыстрелБлок() *safebool.SafeBool
+}

+ 12 - 0
pkg/types/idiv_war_scene.go

@@ -0,0 +1,12 @@
+package types
+
+/*
+	Интерфейс к битве дивизиий
+*/
+
+// ИДивизияВойнаСцена -- интерфейс к битве дивизий
+type ИДивизияВойнаСцена interface {
+	ИСценаСтр
+	// Еслидёт -- возвращает признак начала битвы дивизий
+	ЕслИдёт() ИСтатПарам
+}

+ 0 - 12
pkg/types/idivwar.go

@@ -1,12 +0,0 @@
-package types
-
-/*
-	Интерфейс к битве дивизиий
-*/
-
-// IDivWar -- интерфейс к битве дивизий
-type IDivWar interface {
-	ISection
-	// Alarm -- возвращает признак начала битвы дивизий
-	Alarm() IStatParam
-}

+ 0 - 31
pkg/types/idivwaron.go

@@ -1,31 +0,0 @@
-package types
-
-import (
-	"context"
-	"wartank/pkg/components/safebool"
-)
-
-/*
-	Интерфейс к сражению
-*/
-
-// IDivWarOn -- интерфейс к непосредственному сражению
-type IDivWarOn interface {
-	ISection
-	// Net -- возвращает сетевой компонент сражения
-	Net() ISectionNet
-	// IsEnd -- признак окончания сражения
-	// IsEnd() *isdivwar.IsDivWar
-	// Manevr -- выполняет манёвр по требованию
-	Manevr()
-	// Masking -- признак запрета на стрельбу
-	// Masking() *isrepair.IsRepair
-	// Ctx -- возвращает контекст битвы
-	Ctx() context.Context
-	// CancelBattle -- вызывает контекст отмены битвы
-	CancelBattle()
-	// IsEnd -- признак окончания битвы дивизий
-	IsEnd() *safebool.SafeBool
-	// Masking -- объект маскировки
-	Masking() *safebool.SafeBool
-}

+ 4 - 4
pkg/types/igui.go

@@ -2,8 +2,8 @@ package types
 
 import "fyne.io/fyne/v2"
 
-// IGui -- интерфейс к графической подсистеме
-type IGui interface {
-	// FyneApp -- возвращает объект Fyne-приложения
-	FyneApp() fyne.App
+// ИГуи -- интерфейс к графической подсистеме
+type ИГуи interface {
+	// ФайнПрилож -- возвращает объект Fyne-приложения
+	ФайнПрилож() fyne.App
 }

+ 3 - 3
pkg/types/imarket.go

@@ -4,7 +4,7 @@ package types
 	Интерфейс к рынку
 */
 
-// IMarket -- инетерфейс к рынку
-type IMarket interface {
-	ISection
+// ИРынок -- инетерфейс к рынку
+type ИРынок interface {
+	ИСценаСтр
 }

+ 13 - 13
pkg/types/imine.go

@@ -4,17 +4,17 @@ package types
 	Интерфейс к объекту шахты
 */
 
-// IMine -- интерфейс к объекту шахты
-type IMine interface {
-	ISection
-	// Ruda -- возвращает объект руды
-	Ruda() IStatParam
-	// Ferrum -- возвращает объект железа
-	Ferrum() IStatParam
-	// Steel -- возвращает объект стали
-	Steel() IStatParam
-	// Plumbum -- возвращает объект свинца
-	Plumbum() IStatParam
-	// NumProduct -- количество производимого продукта
-	NumProduct() IStatParam
+// ИШахта -- интерфейс к объекту шахты
+type ИШахта interface {
+	ИСценаСтр
+	// Руда -- возвращает объект руды
+	Руда() ИСтатПарам
+	// Железо -- возвращает объект железа
+	Железо() ИСтатПарам
+	// Сталь -- возвращает объект стали
+	Сталь() ИСтатПарам
+	// Свинец -- возвращает объект свинца
+	Свинец() ИСтатПарам
+	// КолвоСделатьСейчас -- количество производимого продукта
+	КолвоСделатьСейчас() ИСтатПарам
 }

+ 3 - 3
pkg/types/imissions.go

@@ -4,7 +4,7 @@ package types
 	Объект миссий(сбор золы)
 */
 
-// IMissions -- интерфейс к объекту миссий
-type IMissions interface {
-	ISection
+// ИМиссии -- интерфейс к объекту миссий
+type ИМиссии interface {
+	ИСценаСтр
 }

+ 10 - 10
pkg/types/imode.go

@@ -4,14 +4,14 @@ package types
 	Режим работы секции.
 */
 
-// IMode -- интерфейс к режиму работы секции
-type IMode interface {
-	// Set -- устанавливает режим работы
-	Set(string)
-	// Get -- возвращает режим работы
-	Get() string
-	// Work -- возвращает имя текущей работы
-	Work() string
-	// WorkSet -- устанавилвае тимя текущей работы
-	WorkSet(name string)
+// ИРежимРаботы -- интерфейс к режиму работы секции
+type ИРежимРаботы interface {
+	// Уст -- устанавливает режим работы
+	Уст(string)
+	// Получ -- возвращает режим работы
+	Получ() string
+	// Режим -- возвращает имя текущей работы
+	Режим() string
+	// РежимУст -- устанавилвае тимя текущей работы
+	РежимУст(name string)
 }

+ 3 - 3
pkg/types/ipolygon.go

@@ -4,7 +4,7 @@ package types
 	Интерфейс к полигону.
 */
 
-// IPolygon -- интерфейс к полигону
-type IPolygon interface {
-	ISection
+// ИПолигон -- интерфейс к полигону
+type ИПолигон interface {
+	ИСценаСтр
 }

+ 0 - 4
pkg/types/iroot.go

@@ -1,4 +0,0 @@
-package types
-
-// IRoot -- интерфейс к объекту рута
-type IRoot interface{}

+ 15 - 0
pkg/types/iscene.go

@@ -0,0 +1,15 @@
+package types
+
+import "context"
+
+// ИСцена -- игровая сцена (ангар, база, битва и т.п.)
+type ИСцена interface {
+	// Бот -- возвращает бота игровой сцены
+	Бот() ИБот
+	// Кнт -- контекст игровой зоны
+	Кнт() context.Context
+	// Закончить -- отмена контекста игровой сцены
+	Закончить()
+	// Имя -- имя игровой сцены
+	Имя() string
+}

+ 12 - 12
pkg/types/isection.go

@@ -1,18 +1,18 @@
 package types
 
 /*
-	Базовый тип для любой секции игры
+	Базовый тип для любой сцены игры
 */
 
-// ISection -- интерфейс базового типа любой секции игры
-type ISection interface {
-	IZone
-	// Update -- обновляет строки секции
-	Update(lstString []string) error
-	// GetLst -- возвращает список строк секции
-	GetLst() []string
-	// CountDown -- объект оставшегося времени до опроса секции
-	CountDown() ICountTime
-	// ModeCurrent -- текущий режим работы
-	ModeCurrent() IMode
+// ИСценаСтр -- интерфейс базового типа любой сцены игры
+type ИСценаСтр interface {
+	ИСцена
+	// СтрОбновить -- обновляет строки сцены
+	СтрОбновить(lstString []string) error
+	// СписПолучить -- возвращает список строк сцены
+	СписПолучить() []string
+	// ВремяОпрос -- объект оставшегося времени до опроса сцены
+	ВремяОпрос() ИВремяОстат
+	// РежимТекущ -- текущий режим работы
+	РежимТекущ() ИРежимРаботы
 }

+ 2 - 2
pkg/types/iserv_bots.go

@@ -3,11 +3,11 @@ package types
 // IServBots -- словарьсерверных ботов
 type IServBots interface {
 	// Get -- возвращает бота по его имени
-	Get(name string) IBot
+	Get(name string) ИБот
 	// BotStart -- запускает бота в работу
 	BotStart(name string) error
 	// ListBot -- возвращает список ботов
-	ListBot() []IBot
+	ListBot() []ИБот
 	// NewBot -- добавляет нового бота на бото-ферму
 	NewBot(login, password string) error
 }

+ 3 - 3
pkg/types/iserver.go

@@ -4,8 +4,8 @@ package types
 	Интерфейс для приложения
 */
 
-// IServer -- интерфейс для приложения
-type IServer interface {
+// ИСервер -- интерфейс для приложения
+type ИСервер interface {
 	IKernel
 	// Store -- хранилище приложения
 	Store() IStore
@@ -14,5 +14,5 @@ type IServer interface {
 	// ServBots -- словарь имеющихся ботов
 	ServBots() IServBots
 	// Gui -- возвращает объект графики
-	Gui() IGui
+	Gui() ИГуи
 }

+ 8 - 10
pkg/types/istatparam.go

@@ -4,14 +4,12 @@ package types
 	Интерфейс к параметру
 */
 
-// IStatParam -- интерфейс к праметру
-type IStatParam interface {
-	// Val -- возвращает хранимый параметр
-	Val() int
-	// SetVal -- устанавливает хранимый параметр
-	SetVal(val int)
-	// Name -- возвращает имя параметра
-	Name() string
-	// SetName -- устанавливает имя параметра
-	SetName(name string)
+// ИСтатПарам -- интерфейс к праметру
+type ИСтатПарам interface {
+	// Получ -- возвращает хранимый параметр
+	Получ() int
+	// Уст -- устанавливает хранимый параметр
+	Уст(val int)
+	// Имя -- возвращает имя параметра
+	Имя() string
 }

+ 4 - 4
pkg/types/itank.go

@@ -4,8 +4,8 @@ package types
 	Интерфейс к состоянию танка
 */
 
-// ITank -- интерфейс к состоянию танка
-type ITank interface {
-	// TankStat -- возвращает объект статистики танка
-	TankStat() ITankStat
+// ИТанк -- интерфейс к состоянию танка
+type ИТанк interface {
+	// ТанкСтат -- возвращает объект статистики танка
+	ТанкСтат() ИТанкСтат
 }

+ 13 - 13
pkg/types/itankstat.go

@@ -4,18 +4,18 @@ package types
 	Интерфейс к параметрам танка
 */
 
-// ITankStat -- интерфейс к статистике танка
-type ITankStat interface {
-	// Attack -- возвращает силу атаки
-	Attack() IStatParam
+// ИТанкСтат -- интерфейс к статистике танка
+type ИТанкСтат interface {
+	// Броня -- возвращает силу атаки
+	Атака() ИСтатПарам
 	// Armor -- возвращает броню танка
-	Armor() IStatParam
-	// Fyne -- возвращает точность танка
-	Fyne() IStatParam
-	// Hard -- возвращает прочность танка
-	Hard() IStatParam
-	// Power -- возвращает мощность танка
-	Power() IStatParam
-	// Force -- устанавливает форсирование параметра
-	Force() IStatParam
+	Броня() ИСтатПарам
+	// Точность -- возвращает точность танка
+	Точность() ИСтатПарам
+	// Прочность -- возвращает прочность танка
+	Прочность() ИСтатПарам
+	// Мощь -- возвращает мощность танка
+	Мощь() ИСтатПарам
+	// ПарамФорсаж -- устанавливает форсирование параметра
+	ПарамФорсаж() ИСтатПарам
 }

+ 10 - 10
pkg/types/iweb_socket.go

@@ -1,13 +1,13 @@
 package types
 
-// IWebSocket -- интерфейс к постоянному веб-сокету сервера
-type IWebSocket interface {
-	// Write -- записывает топик на сервер
-	Write(topic string, dictReq map[string]string) error
-	// Read -- читает топик с сервера
-	Read(topic string) (mapResp map[string]string, err error)
-	// Call -- вызывает худалённую процедуру
-	Call(topic string, dictReq map[string]string) (mapResp map[string]string, err error)
-	// IsConnect -- возвращает признак подключенности к серверу
-	IsConnect() bool
+// ИВебСокет -- интерфейс к постоянному веб-сокету сервера
+type ИВебСокет interface {
+	// Записать -- записывает топик на сервер
+	Записать(topic string, dictReq map[string]string) error
+	// Читать -- читает топик с сервера
+	Читать(topic string) (mapResp map[string]string, err error)
+	// Вызвать -- вызывает худалённую процедуру
+	Вызвать(topic string, dictReq map[string]string) (mapResp map[string]string, err error)
+	// ЕслиПодключ -- возвращает признак подключенности к серверу
+	ЕслиПодключ() bool
 }

+ 7 - 7
pkg/types/iwin.go

@@ -4,13 +4,13 @@ package types
 	Содержит интерфейсы окон
 */
 
-// IWin -- базовый интерфейс окна
-type IWin interface {
-	// Show -- показать окно
-	Show()
+// ИОкно -- базовый интерфейс окна
+type ИОкно interface {
+	// Показать -- показать окно
+	Показать()
 }
 
-// IWinAngar -- окно ангара
-type IWinAngar interface {
-	IWin
+// ИОкноАнгар -- окно ангара
+type ИОкноАнгар interface {
+	ИОкно
 }

+ 6 - 6
pkg/types/iwin_base.go

@@ -6,12 +6,12 @@ import (
 	"wartank/pkg/alias"
 )
 
-// IWinBase -- базовое окно для терминального клиента
-type IWinBase interface {
-	// Desk -- возвращает терминальный клиент
-	Desk() IDesktop
-	// Name -- возвращает собственное имя
-	Name() alias.AWinName
+// ИОкноБаза -- базовое окно для терминального клиента
+type ИОкноБаза interface {
+	// Десктоп -- возвращает терминальный клиент
+	Десктоп() ИДесктоп
+	// Имя -- возвращает собственное имя
+	Имя() alias.ОкноИмя
 	// Init -- инициализирует окно для бабл-теа
 	Init() tea.Cmd
 }

+ 0 - 15
pkg/types/izone.go

@@ -1,15 +0,0 @@
-package types
-
-import "context"
-
-// IZone -- игровая зона (ангар, база, битва и т.п.)
-type IZone interface {
-	// Bot -- возвращает бота игровой зоны
-	Bot() IBot
-	// Ctx -- контекст игровой зоны
-	Ctx() context.Context
-	// CancelZone -- отмена контекста игровой зоны
-	CancelZone()
-	// Name -- имя игровой зоны
-	Name() string
-}

+ 4 - 4
server/gui/gui.go

@@ -14,13 +14,13 @@ import (
 
 // Gui -- интерфейс к графике бото-фермы
 type Gui struct {
-	serv    types.IServer
+	serv    types.ИСервер
 	app     fyne.App
 	winMain *win_main.WinMain
 }
 
 // NewGui -- возвращает новый гуй для бото-фермы
-func NewGui(serv types.IServer) (*Gui, error) {
+func NewGui(serv types.ИСервер) (*Gui, error) {
 	if serv == nil {
 		return nil, fmt.Errorf("NewGui(): IServer==nil")
 	}
@@ -45,7 +45,7 @@ func (sf *Gui) Run() {
 	sf.app.Run()
 }
 
-// FyneApp -- возвращает Fyne-приложение
-func (sf *Gui) FyneApp() fyne.App {
+// ФайнПрилож -- возвращает Fyne-приложение
+func (sf *Gui) ФайнПрилож() fyne.App {
 	return sf.app
 }

+ 34 - 34
server/gui/win_main/win_main.go

@@ -23,7 +23,7 @@ const (
 // WinMain -- главное окно приложения
 type WinMain struct {
 	fyne.Window
-	serv           types.IServer
+	serv           types.ИСервер
 	app            fyne.App
 	botLogin       string
 	botPass        string
@@ -61,13 +61,13 @@ type WinMain struct {
 }
 
 // NewWinMain -- возвращает новое главное окно
-func NewWinMain(serv types.IServer) (*WinMain, error) {
+func NewWinMain(serv types.ИСервер) (*WinMain, error) {
 	if serv == nil {
 		return nil, fmt.Errorf("NewWinMain(): IServer==nil")
 	}
 	sf := &WinMain{
-		Window: serv.Gui().FyneApp().NewWindow("Бото-ферма [wartank.ru]"),
-		app:    serv.Gui().FyneApp(),
+		Window: serv.Gui().ФайнПрилож().NewWindow("Бото-ферма [wartank.ru]"),
+		app:    serv.Gui().ФайнПрилож(),
 		serv:   serv,
 	}
 	green := color.NRGBA{R: 0, G: 180, B: 0, A: 255}
@@ -178,7 +178,7 @@ func NewWinMain(serv types.IServer) (*WinMain, error) {
 	{ // Получить список всех ботов
 		lstBots := sf.serv.ServBots().ListBot()
 		for _, bot := range lstBots {
-			sf.addBot(bot.Name(), bot.Pass())
+			sf.addBot(bot.Имя(), bot.Пароль())
 		}
 	}
 
@@ -230,11 +230,11 @@ func (sf *WinMain) showStat() {
 		}
 		bot := sf.serv.ServBots().Get(sf.botLogin)
 		{ // Левый фрейм статы
-			sf.lblFuel.Text = fmt.Sprint(bot.Angar().Fuel().Val())
+			sf.lblFuel.Text = fmt.Sprint(bot.Ангар().Топливо().Получ())
 			sf.lblFuel.Refresh()
-			sf.lblGold.Text = fmt.Sprint(bot.Angar().Gold().Val())
+			sf.lblGold.Text = fmt.Sprint(bot.Ангар().Золото().Получ())
 			sf.lblGold.Refresh()
-			strSilver := fmt.Sprint(bot.Angar().SilverAll().Val())
+			strSilver := fmt.Sprint(bot.Ангар().СереброВсего().Получ())
 			strSlv := ""
 			i := 0
 			for i0 := len(strSilver) - 1; i0 >= 0; i0-- {
@@ -249,58 +249,58 @@ func (sf *WinMain) showStat() {
 			}
 			sf.lblSilver.Text = strSlv
 			sf.lblSilver.Refresh()
-			sf.lblGlory.Text = fmt.Sprint(bot.Angar().Convoy().Glory().Val())
+			sf.lblGlory.Text = fmt.Sprint(bot.Ангар().Конвой().Слава().Получ())
 			sf.lblGlory.Refresh()
-			sf.lblRuda.Text = fmt.Sprint(bot.Angar().Base().Mine().Ruda().Val())
+			sf.lblRuda.Text = fmt.Sprint(bot.Ангар().База().Шахта().Руда().Получ())
 			sf.lblRuda.Refresh()
-			sf.lblFerrum.Text = fmt.Sprint(bot.Angar().Base().Mine().Ferrum().Val())
+			sf.lblFerrum.Text = fmt.Sprint(bot.Ангар().База().Шахта().Железо().Получ())
 			sf.lblFerrum.Refresh()
-			sf.lblSteel.Text = fmt.Sprint(bot.Angar().Base().Mine().Steel().Val())
+			sf.lblSteel.Text = fmt.Sprint(bot.Ангар().База().Шахта().Сталь().Получ())
 			sf.lblSteel.Refresh()
-			sf.lblPlumbum.Text = fmt.Sprint(bot.Angar().Base().Mine().Plumbum().Val())
+			sf.lblPlumbum.Text = fmt.Sprint(bot.Ангар().База().Шахта().Свинец().Получ())
 			sf.lblPlumbum.Refresh()
 		}
 		{ // Правый фрейм статы
-			sf.lblAtack.Text = fmt.Sprint(bot.Tank().TankStat().Attack().Val())
+			sf.lblAtack.Text = fmt.Sprint(bot.Танк().ТанкСтат().Атака().Получ())
 			sf.lblAtack.Refresh()
-			sf.lblArmor.Text = fmt.Sprint(bot.Tank().TankStat().Armor().Val())
+			sf.lblArmor.Text = fmt.Sprint(bot.Танк().ТанкСтат().Броня().Получ())
 			sf.lblArmor.Refresh()
-			sf.lblFyne.Text = fmt.Sprint(bot.Tank().TankStat().Fyne().Val())
+			sf.lblFyne.Text = fmt.Sprint(bot.Танк().ТанкСтат().Точность().Получ())
 			sf.lblFyne.Refresh()
-			sf.lblHard.Text = fmt.Sprint(bot.Tank().TankStat().Hard().Val())
+			sf.lblHard.Text = fmt.Sprint(bot.Танк().ТанкСтат().Прочность().Получ())
 			sf.lblHard.Refresh()
-			sf.lblPower.Text = fmt.Sprint(bot.Tank().TankStat().Power().Val())
+			sf.lblPower.Text = fmt.Sprint(bot.Танк().ТанкСтат().Мощь().Получ())
 			sf.lblPower.Refresh()
-			strForce := fmt.Sprintf("%v (+%v)", bot.Tank().TankStat().Force().Name(), bot.Tank().TankStat().Force().Val())
+			strForce := fmt.Sprintf("%v (+%v)", bot.Танк().ТанкСтат().ПарамФорсаж().Имя(), bot.Танк().ТанкСтат().ПарамФорсаж().Получ())
 			sf.lblForce.SetText(strForce)
 		}
 		{ // Вкладка базы
-			if bot.Angar().Base().Polygon() == nil {
+			if bot.Ангар().База().Полигон() == nil {
 				continue
 			}
-			polyTime := bot.Angar().Base().Polygon().CountDown().String()
+			polyTime := bot.Ангар().База().Полигон().ВремяОпрос().Стр()
 			sf.lblPolygonTime.SetText("Время: " + polyTime)
 			// polyMode := bot.Angar().Base().Polygon().ModeCurrent().Work()
-			strForce := fmt.Sprintf("%v (+%v)", bot.Tank().TankStat().Force().Name(), bot.Tank().TankStat().Force().Val())
+			strForce := fmt.Sprintf("%v (+%v)", bot.Танк().ТанкСтат().ПарамФорсаж().Имя(), bot.Танк().ТанкСтат().ПарамФорсаж().Получ())
 			sf.lblPolygonMode.SetText("Режим: " + strForce)
 
-			mineTime := bot.Angar().Base().Mine().CountDown().String()
+			mineTime := bot.Ангар().База().Шахта().ВремяОпрос().Стр()
 			sf.lblMineTime.SetText("Время: " + mineTime)
-			mineMode := bot.Angar().Base().Mine().ModeCurrent().Work()
+			mineMode := bot.Ангар().База().Шахта().РежимТекущ().Режим()
 			sf.lblMineMode.SetText("Режим: " + mineMode)
 
-			bankTime := bot.Angar().Base().Bank().CountDown().String()
+			bankTime := bot.Ангар().База().Банк().ВремяОпрос().Стр()
 			sf.lblBankTime.SetText("Время: " + bankTime)
-			bankMode := bot.Angar().Base().Bank().ModeCurrent().Work()
+			bankMode := bot.Ангар().База().Банк().РежимТекущ().Режим()
 			sf.lblBankMode.SetText("Режим: " + bankMode)
 
-			arsenalTime := bot.Angar().Base().Arsenal().CountDown().String()
+			arsenalTime := bot.Ангар().База().Арсенал().ВремяОпрос().Стр()
 			sf.lblArsenalTime.SetText("Время: " + arsenalTime)
-			arsenalMode := bot.Angar().Base().Arsenal().ModeCurrent().Work()
+			arsenalMode := bot.Ангар().База().Арсенал().РежимТекущ().Режим()
 			sf.lblArsenalMode.SetText("Режим: " + arsenalMode)
 		}
 		{ // Вкладка сражений
-			battleTime := bot.Angar().Battle().CountDown().String()
+			battleTime := bot.Ангар().Сражение().ВремяОпрос().Стр()
 			sf.lblBattleTime.SetText(battleTime)
 		}
 	}
@@ -318,9 +318,9 @@ func (sf *WinMain) clickAutoGame(isAutoGame bool) {
 	bot := sf.serv.ServBots().Get(sf.botLogin)
 	switch isAutoGame {
 	case true: // Автозапуск бота
-		bot.SetAutoGame()
+		bot.АвтоИграУст()
 	default:
-		bot.ResetAutoGame()
+		bot.АвтоИграСброс()
 	}
 }
 
@@ -384,18 +384,18 @@ func (sf *WinMain) addBot(login, pass string) {
 func (sf *WinMain) btnBotClick(login string) func() {
 	log.Println("WinMain.btnBotClick()")
 	bot := sf.serv.ServBots().Get(login)
-	_botPass := bot.Pass()
+	_botPass := bot.Пароль()
 	if _botPass == strMainPass {
 		_botPass = "Default"
 	}
 	return func() {
-		log.Printf("btnBotClick().fn(): botName=%q\tbotPass=%q\tisAuto=%v\n", login, _botPass, bot.IsAutoGame())
+		log.Printf("btnBotClick().fn(): botName=%q\tbotPass=%q\tisAuto=%v\n", login, _botPass, bot.АвтоИграЕсли())
 		// Заполнить данными вкладки своего бота
 		sf.entLogin.Text = login
 		sf.entLogin.Refresh()
 		sf.entPass.Text = _botPass
 		sf.entPass.Refresh()
-		sf.checkAutoGame.SetChecked(bot.IsAutoGame())
+		sf.checkAutoGame.SetChecked(bot.АвтоИграЕсли())
 		sf.resetStat()
 	}
 }

+ 11 - 11
server/serv_bots/dict_warbot/dict_warbot.go

@@ -17,14 +17,14 @@ const (
 
 // DictWarBot -- потокобезопасный словарь ботов
 type DictWarBot struct {
-	server types.IServer
+	server types.ИСервер
 	store  types.IStore
-	dict   map[string]types.IBot
+	dict   map[string]types.ИБот
 	block  sync.RWMutex
 }
 
 // NewDictWarBot -- возвращает новый потокобезопасный словарь ботов
-func NewDictWarBot(server types.IServer) (*DictWarBot, error) {
+func NewDictWarBot(server types.ИСервер) (*DictWarBot, error) {
 	if server == nil {
 		return nil, fmt.Errorf("NewDictWarBot(): IServer==nil")
 	}
@@ -32,7 +32,7 @@ func NewDictWarBot(server types.IServer) (*DictWarBot, error) {
 	sf := &DictWarBot{
 		server: server,
 		store:  server.Store(),
-		dict:   map[string]types.IBot{},
+		dict:   map[string]types.ИБот{},
 	}
 	if err := sf.load(); err != nil {
 		return nil, fmt.Errorf("NewDictBot(): in load list bots from store, err=%w", err)
@@ -41,8 +41,8 @@ func NewDictWarBot(server types.IServer) (*DictWarBot, error) {
 }
 
 // ListBot -- возвращает список существующих ботов
-func (sf *DictWarBot) ListBot() []types.IBot {
-	lst := make([]types.IBot, 0)
+func (sf *DictWarBot) ListBot() []types.ИБот {
+	lst := make([]types.ИБот, 0)
 	for _, bot := range sf.dict {
 		lst = append(lst, bot)
 	}
@@ -50,7 +50,7 @@ func (sf *DictWarBot) ListBot() []types.IBot {
 }
 
 // Get -- возвращает бота по имени
-func (sf *DictWarBot) Get(botName string) types.IBot {
+func (sf *DictWarBot) Get(botName string) types.ИБот {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
 	bot := sf.dict[botName]
@@ -58,13 +58,13 @@ func (sf *DictWarBot) Get(botName string) types.IBot {
 }
 
 // Add -- добавляет нового бота в словарь
-func (sf *DictWarBot) Add(bot types.IBot) {
+func (sf *DictWarBot) Add(bot types.ИБот) {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	if bot == nil {
 		return
 	}
-	sf.dict[bot.Name()] = bot
+	sf.dict[bot.Имя()] = bot
 	sf.save()
 }
 
@@ -105,8 +105,8 @@ func (sf *DictWarBot) load() error {
 		if err != nil {
 			return fmt.Errorf("ServBots.load(): in create bot %q, err=\n\t%w", name, err)
 		}
-		if bot.IsAutoGame() {
-			go bot.Run()
+		if bot.АвтоИграЕсли() {
+			go bot.Пуск()
 		}
 		sf.dict[name] = bot
 	}

+ 5 - 5
server/serv_bots/serv_bots.go

@@ -11,13 +11,13 @@ import (
 
 // ServBots -- словарь ботов на сервере
 type ServBots struct {
-	server  types.IServer
+	server  types.ИСервер
 	store   types.IStore
 	dictBot *dict_warbot.DictWarBot
 }
 
 // NewServBots -- возвращает новый словарь серверных ботов
-func NewServBots(server types.IServer) (*ServBots, error) {
+func NewServBots(server types.ИСервер) (*ServBots, error) {
 	if server == nil {
 		return nil, fmt.Errorf("NewServBots(): IServer == nil")
 	}
@@ -34,7 +34,7 @@ func NewServBots(server types.IServer) (*ServBots, error) {
 }
 
 // Get -- возвращает боевого бота по имени
-func (sf *ServBots) Get(name string) types.IBot {
+func (sf *ServBots) Get(name string) types.ИБот {
 	bot := sf.dictBot.Get(name)
 	return bot
 }
@@ -45,7 +45,7 @@ func (sf *ServBots) BotStart(name string) error {
 	if bot == nil {
 		return fmt.Errorf("ServBots.BotStart(): bot(%v) not found", name)
 	}
-	err := bot.Run()
+	err := bot.Пуск()
 	if err != nil {
 		return fmt.Errorf("ServBots.BotStart(): in run bot(%v), err=\n\t%w", name, err)
 	}
@@ -53,7 +53,7 @@ func (sf *ServBots) BotStart(name string) error {
 }
 
 // ListBot -- возвращает список существующих ботов
-func (sf *ServBots) ListBot() []types.IBot {
+func (sf *ServBots) ListBot() []types.ИБот {
 	lst := sf.dictBot.ListBot()
 	return lst
 }

+ 88 - 64
server/serv_bots/warbot/angar/angar.go

@@ -33,43 +33,67 @@ type Angar struct {
 	net     *angarnet.AngarNet
 	netKill *angar_attack.AngarAttack
 
-	bot      types.IBot
+	bot      types.ИБот
 	convoy   *convoy.Convoy
 	battle   *battle.Battle
 	batMas   *batmas.BatMas
 	base     *base.Base
 	missions *missions.Missions
 
-	gold     types.IStatParam
-	level    types.IStatParam
-	progress types.IStatParam
-	fuel     *fuel.Fuel
-	online   types.IStatParam
+	золото        types.ИСтатПарам
+	уровень       types.ИСтатПарам
+	progress      types.ИСтатПарам
+	fuel          *fuel.Fuel
+	игроковОнлайн types.ИСтатПарам
 
-	silverAll    types.IStatParam
-	silverOnline types.IStatParam
+	сереброВсего types.ИСтатПарам
+	silverOnline types.ИСтатПарам
 
 	stat  *netstat.NetStat
 	block sync.Mutex
 }
 
 // NewAngar -- возвращает новый *Angar
-func NewAngar(bot types.IBot) (*Angar, error) {
+func NewAngar(bot types.ИБот) (*Angar, error) {
 	section, err := section.NewSection(bot, "Ангар", `<title>Ангар</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewAngar(): in create ISection, err=\n\t%w", err)
 	}
 
+	золото, ош := static_param.НовСтатПарам("gold")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики золота, ош=\n\t%w", ош)
+	}
+	уровень, ош := static_param.НовСтатПарам("level")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики уровня бота, ош=\n\t%w", ош)
+	}
+	прогресс, ош := static_param.НовСтатПарам("progress")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики прогресса уровня, ош=\n\t%w", ош)
+	}
+	игроковОнлайн, ош := static_param.НовСтатПарам("online")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики игроков онлайн, ош=\n\t%w", ош)
+	}
+	сереброВсего, ош := static_param.НовСтатПарам("silver_all")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики серебра всего, ош=\n\t%w", ош)
+	}
+	сереброСессия, ош := static_param.НовСтатПарам("silver_online")
+	if ош != nil {
+		return nil, fmt.Errorf("NewAngar(): при создании статистики серебра заработанного за сессию, ош=\n\t%w", ош)
+	}
 	sf := &Angar{
-		Section:  section,
-		bot:      bot,
-		gold:     static_param.NewStaticParam("gold"),
-		level:    static_param.NewStaticParam("level"),
-		progress: static_param.NewStaticParam("progress"),
-		online:   static_param.NewStaticParam("online"),
-
-		silverAll:    static_param.NewStaticParam("silver_all"),
-		silverOnline: static_param.NewStaticParam("silver_online"),
+		Section:       section,
+		bot:           bot,
+		золото:        золото,
+		уровень:       уровень,
+		progress:      прогресс,
+		игроковОнлайн: игроковОнлайн,
+
+		сереброВсего: сереброВсего,
+		silverOnline: сереброСессия,
 	}
 	{ // Сеть
 		sf.net, err = angarnet.NewAngarNet(sf)
@@ -130,7 +154,7 @@ func NewAngar(bot types.IBot) (*Angar, error) {
 }
 
 // запускает обработку ангара
-func (sf *Angar) Run() error {
+func (sf *Angar) Пуск() error {
 	{ // Запуск компонентов
 		if err := sf.netKill.Run(); err != nil {
 			return fmt.Errorf("Angar.Run(): при пуске сетевой секции опыт за топливо, err=\n\t%w", err)
@@ -158,10 +182,10 @@ func (sf *Angar) Run() error {
 		count := 0
 		for {
 			select {
-			case <-sf.bot.Ctx().Done(): // Отмена контекста
-				sf.CountDown().Stop()
+			case <-sf.bot.Кнт().Done(): // Отмена контекста
+				sf.ВремяОпрос().Стоп()
 				return
-			case <-sf.CountDown().ChanSig(): // Метка времени
+			case <-sf.ВремяОпрос().КаналСиг(): // Метка времени
 				sf.updateResurs()
 				sf.stat.Update()
 				switch count {
@@ -172,7 +196,7 @@ func (sf *Angar) Run() error {
 					count--
 				}
 				if err := sf.Section.SetCountDown(60); err != nil {
-					sf.CancelZone()
+					sf.Закончить()
 					logrus.WithError(err).Errorln("Angar.Run(): in update ICountTime")
 					return
 				}
@@ -193,75 +217,75 @@ func (sf *Angar) updateResurs() {
 }
 
 // IMissions -- возвращает ссылку на объект миссий
-func (sf *Angar) Missions() types.IMissions {
+func (sf *Angar) Миссии() types.ИМиссии {
 	return sf.missions
 }
 
-// Battle -- возвращает объект сражения
-func (sf *Angar) Battle() types.IBattle {
+// Сражение -- возвращает объект сражения
+func (sf *Angar) Сражение() types.ИСражениеСцена {
 	return sf.battle
 }
 
-// Convoy -- возвращает объект конвоя
-func (sf *Angar) Convoy() types.IConvoy {
+// Конвой -- возвращает объект конвоя
+func (sf *Angar) Конвой() types.Конвой {
 	return sf.convoy
 }
 
-// Gold -- возвращает объект золота
-func (sf *Angar) Gold() types.IStatParam {
-	return sf.gold
+// Золото -- возвращает объект золота
+func (sf *Angar) Золото() types.ИСтатПарам {
+	return sf.золото
 }
 
-// Fuel -- возвращает объект топлива
-func (sf *Angar) Fuel() types.IStatParam {
+// Топливо -- возвращает объект топлива
+func (sf *Angar) Топливо() types.ИСтатПарам {
 	return sf.fuel.Fuel()
 }
 
-// Level -- возвращает объект уровня игрока
-func (sf *Angar) Level() types.IStatParam {
-	return sf.level
+// Уровень -- возвращает объект уровня игрока
+func (sf *Angar) Уровень() types.ИСтатПарам {
+	return sf.уровень
 }
 
-// Progress -- возвращает прогрес уровня игрока
-func (sf *Angar) Progress() types.IStatParam {
+// Прогресс -- возвращает прогрес уровня игрока
+func (sf *Angar) Прогресс() types.ИСтатПарам {
 	return sf.progress
 }
 
-// Online -- возвращает количество игроков онлайн
-func (sf *Angar) Online() types.IStatParam {
-	return sf.online
+// ИгрокиОнлайн -- возвращает количество игроков онлайн
+func (sf *Angar) ИгрокиОнлайн() types.ИСтатПарам {
+	return sf.игроковОнлайн
 }
 
-// SilverAll -- возвращает объект всего серебра в ангаре
-func (sf *Angar) SilverAll() types.IStatParam {
-	return sf.silverAll
+// СереброВсего -- возвращает объект всего серебра в ангаре
+func (sf *Angar) СереброВсего() types.ИСтатПарам {
+	return sf.сереброВсего
 }
 
-// SilverOnline -- возвращает объект серебра за сессию в ангаре
-func (sf *Angar) SilverOnline() types.IStatParam {
+// СереброЗаработаноСессия -- возвращает объект серебра за сессию в ангаре
+func (sf *Angar) СереброЗаработаноСессия() types.ИСтатПарам {
 	return sf.silverOnline
 }
 
-// SilverUpdate -- на основе фактического серебра -- обновляет вырабатанное серебро
-func (sf *Angar) SilverUpdate(silverFact int) {
-	if sf.silverAll.Val() == 0 { // Если запуск
-		sf.silverAll.SetVal(silverFact)
+// СереброОбновить -- на основе фактического серебра -- обновляет вырабатанное серебро
+func (sf *Angar) СереброОбновить(silverFact int) {
+	if sf.сереброВсего.Получ() == 0 { // Если запуск
+		sf.сереброВсего.Уст(silverFact)
 		return
 	}
-	if sf.silverAll.Val() > silverFact { // Если потрачего серебро
-		sf.silverAll.SetVal(silverFact)
+	if sf.сереброВсего.Получ() > silverFact { // Если потрачего серебро
+		sf.сереброВсего.Уст(silverFact)
 		return
 	}
-	if sf.silverAll.Val() < silverFact { // Если заработано
-		so := sf.silverOnline.Val()
-		sd := silverFact - sf.silverAll.Val()
-		sf.silverOnline.SetVal(so + sd)
+	if sf.сереброВсего.Получ() < silverFact { // Если заработано
+		so := sf.silverOnline.Получ()
+		sd := silverFact - sf.сереброВсего.Получ()
+		sf.silverOnline.Уст(so + sd)
 	}
-	sf.silverAll.SetVal(silverFact)
+	sf.сереброВсего.Уст(silverFact)
 }
 
-// Base -- возвращает базу
-func (sf *Angar) Base() types.IBase {
+// База -- возвращает базу
+func (sf *Angar) База() types.ИБаза {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	return sf.base
@@ -272,7 +296,7 @@ func (sf *Angar) checkConvoy() {
 	var (
 		strOut   string
 		isFind   bool
-		lstAngar = sf.GetLst()
+		lstAngar = sf.СписПолучить()
 	)
 	for _, strOut = range lstAngar {
 		if strings.Contains(strOut, `>Конвой</span>`) {
@@ -292,7 +316,7 @@ func (sf *Angar) checkConvoy() {
 // Ищет в теле текста ангара серебро
 func (sf *Angar) findSilver() {
 	// _mt.Println("\tAngarNet.findSilver()")
-	lstAngar := sf.GetLst()
+	lstAngar := sf.СписПолучить()
 	var strOut string
 	for _, strSilver := range lstAngar {
 		if strings.Contains(strSilver, `<img title="Серебро" `) {
@@ -308,13 +332,13 @@ func (sf *Angar) findSilver() {
 		// log._rintf("ERRO AngarNet.findSilver(): silver(%v) not number, err=\n\t%v\n", strSilver, err)
 		return
 	}
-	sf.silverAll.SetVal(iSilver)
+	sf.сереброВсего.Уст(iSilver)
 }
 
 // Ищет в теле текста ангара золото
 func (sf *Angar) findGold() {
 	var (
-		lstAngar = sf.bot.Angar().GetLst()
+		lstAngar = sf.bot.Ангар().СписПолучить()
 		strOut   string
 		isFind   bool
 	)
@@ -337,5 +361,5 @@ func (sf *Angar) findGold() {
 		// log._rintf("ERRO AngarNet.findGold(): gold(%v) not number, err=\n\t%v\n", strGold, err)
 		return
 	}
-	sf.bot.Angar().Gold().SetVal(iGold)
+	sf.bot.Ангар().Золото().Уст(iGold)
 }

+ 10 - 10
server/serv_bots/warbot/angar/angar_attack/angar_attack.go

@@ -15,11 +15,11 @@ import (
 // AngarAttack -- объект боя на топливе
 type AngarAttack struct {
 	*sectionnet.SectionNet
-	angar types.IAngar
+	angar types.ИАнгар
 }
 
 // NewAngarAttack -- возвращает новый *AngarAttackNet
-func NewAngarAttack(angar types.IAngar) (*AngarAttack, error) {
+func NewAngarAttack(angar types.ИАнгар) (*AngarAttack, error) {
 	sectionNet, err := sectionnet.NewSectionNet(angar, "http://wartank.ru/battle")
 	if err != nil {
 		return nil, fmt.Errorf("NewAngarAttack(): in create SectionNet, err=\n\t%w", err)
@@ -39,7 +39,7 @@ func (sf *AngarAttack) Run() error {
 func (sf *AngarAttack) run() {
 	for {
 		time.Sleep(time.Second * 15) // Минимальный интервал ожттдания прибавки топлива
-		fuel := sf.angar.Fuel().Val()
+		fuel := sf.angar.Топливо().Получ()
 		if fuel < 314 { // Минимальная ёмкость бака -- 315
 			continue
 		}
@@ -65,7 +65,7 @@ func (sf *AngarAttack) run() {
 func (sf *AngarAttack) makeAtack() (lstBattle []string, err error) {
 	// Получить ссылку на атаку
 	// _mt.Println("\t AngarAttack.makeAtack()")
-	lstAngar := sf.angar.GetLst()
+	lstAngar := sf.angar.СписПолучить()
 	var strOut string
 	for _, strAtack := range lstAngar {
 		if strings.Contains(strAtack, `<span>В бой!</span>`) {
@@ -82,9 +82,9 @@ func (sf *AngarAttack) makeAtack() (lstBattle []string, err error) {
 	if err != nil {
 		return nil, fmt.Errorf("AngarAttack.makeAtack(): in make GET-request to battle, err=\n\t%w", err)
 	}
-	fuel := sf.angar.Fuel().Val()
+	fuel := sf.angar.Топливо().Получ()
 	fuel -= 30
-	sf.angar.Fuel().SetVal(fuel)
+	sf.angar.Топливо().Уст(fuel)
 	return lstBattle, nil
 }
 
@@ -216,9 +216,9 @@ func (sf *AngarAttack) makeShooting(lstShoot2 []string) error {
 		if err != nil {
 			return fmt.Errorf("AngarAttack.makeShooting(): in Get-response shoot2, err=\n\t%w", err)
 		}
-		fuel := sf.angar.Fuel().Val()
+		fuel := sf.angar.Топливо().Получ()
 		fuel -= 30
-		sf.angar.Fuel().SetVal(fuel)
+		sf.angar.Топливо().Уст(fuel)
 		return nil
 	}
 	if err := fnShoot2(); err != nil {
@@ -289,9 +289,9 @@ func (sf *AngarAttack) makeShooting(lstShoot2 []string) error {
 		if _, err = sf.Get(linkShoot3); err != nil {
 			return fmt.Errorf("AngarAttack.makeShooting(): in Get-response shoot3, err=\n\t%w", err)
 		}
-		fuel := sf.angar.Fuel().Val()
+		fuel := sf.angar.Топливо().Получ()
 		fuel -= 30
-		sf.angar.Fuel().SetVal(fuel)
+		sf.angar.Топливо().Уст(fuel)
 		return nil
 	}
 	if err := fnShoot3(); err != nil {

+ 2 - 2
server/serv_bots/warbot/angar/angarnet/angarnet.go

@@ -14,11 +14,11 @@ import (
 // AngarNet -- объект сетевого ангара
 type AngarNet struct {
 	*sectionnet.SectionNet
-	angar types.IAngar
+	angar types.ИАнгар
 }
 
 // NewAngarNet -- возвращает новый *AngarNet
-func NewAngarNet(angar types.IAngar) (*AngarNet, error) {
+func NewAngarNet(angar types.ИАнгар) (*AngarNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(angar, "http://wartank.ru/angar")
 	if err != nil {
 		return nil, fmt.Errorf("NewAngarNet(): in create *SectionNet, err=\n\t%w", err)

+ 87 - 71
server/serv_bots/warbot/angar/base/arsenal/arsenal.go

@@ -15,60 +15,76 @@ import (
 	Объект арсенала на базе
 */
 
-// Arsenal -- объект арсенала на базе
-type Arsenal struct {
+// Арсенал -- объект арсенала на базе
+type Арсенал struct {
 	*section.Section
-	bot   types.IBot
-	base  types.IBase
-	net   *arsenalnet.ArsenalNet
-	fugas types.IStatParam
-	armor types.IStatParam
-	kumul types.IStatParam
-	remka types.IStatParam
+	бот        types.ИБот
+	база       types.ИБаза
+	сеть       *arsenalnet.ArsenalNet
+	фугас      types.ИСтатПарам
+	бронебойка types.ИСтатПарам
+	кумулятив  types.ИСтатПарам
+	ремка      types.ИСтатПарам
 }
 
-// NewArsenal -- возвращает новый *Arsenal
-func NewArsenal(base types.IBase) (*Arsenal, error) {
-	section, err := section.NewSection(base.Bot(), "Арсенал", `<span class="green2">Ремкомплект</span><br/>`)
+// НовАрсенал -- возвращает новый *Arsenal
+func НовАрсенал(base types.ИБаза) (*Арсенал, error) {
+	section, err := section.NewSection(base.Бот(), "Арсенал", `<span class="green2">Ремкомплект</span><br/>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewArsenal(): in create ISection, err=\n\t%w", err)
 	}
 
-	sf := &Arsenal{
-		Section: section,
-		bot:     base.Bot(),
-		base:    base,
-		fugas:   static_param.NewStaticParam("fugas"),
-		armor:   static_param.NewStaticParam("armor"),
-		kumul:   static_param.NewStaticParam("kumul"),
-		remka:   static_param.NewStaticParam("remka"),
+	фугас, ош := static_param.НовСтатПарам("fugas")
+	if ош != nil {
+		return nil, fmt.Errorf("NewArsenal(): при создании статистики фугасов, ош=\n\t%w", ош)
+	}
+	бронейбойки, ош := static_param.НовСтатПарам("armor")
+	if ош != nil {
+		return nil, fmt.Errorf("NewArsenal(): при создании статистики бронебоек, ош=\n\t%w", ош)
+	}
+	кумулятив, ош := static_param.НовСтатПарам("kumul")
+	if ош != nil {
+		return nil, fmt.Errorf("NewArsenal(): при создании статистики  кумулятивов, ош=\n\t%w", ош)
+	}
+	ремка, ош := static_param.НовСтатПарам("remka")
+	if ош != nil {
+		return nil, fmt.Errorf("NewArsenal(): при создании статистики  ремок, ош=\n\t%w", ош)
+	}
+	сам := &Арсенал{
+		Section:    section,
+		бот:        base.Бот(),
+		база:       base,
+		фугас:      фугас,
+		бронебойка: бронейбойки,
+		кумулятив:  кумулятив,
+		ремка:      ремка,
 	}
 	{ // ArsenalNet
-		sf.net, err = arsenalnet.NewArsenalNet(sf)
+		сам.сеть, err = arsenalnet.НовАрсеналСеть(сам)
 		if err != nil {
 			return nil, fmt.Errorf("NewArsenal(): in create NetArsenal, err=\n\t%w", err)
 		}
 	}
-
-	return sf, nil
+_=types.ИАрсенал(сам)
+	return сам, nil
 }
 
-func (sf *Arsenal) Run() error {
+func (сам *Арсенал) Run() error {
 
-	go sf.run()
+	go сам.run()
 	return nil
 }
 
 // запускает обработку арсенала
-func (sf *Arsenal) run() {
+func (sf *Арсенал) run() {
 	// sf.getTime()
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.бот.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
-			if sf.ModeCurrent().Get() == "upgrade" {
+		case <-sf.ВремяОпрос().КаналСиг():
+			if sf.РежимТекущ().Получ() == "upgrade" {
 				continue
 			}
 			// if err := sf.updateArsenal(); err != nil {
@@ -80,35 +96,35 @@ func (sf *Arsenal) run() {
 	}
 }
 
-// Fugas -- возвращает объект числа фугасов
-func (sf *Arsenal) Fugas() types.IStatParam {
-	return sf.fugas
+// Фугасы -- возвращает объект числа фугасов
+func (sf *Арсенал) Фугасы() types.ИСтатПарам {
+	return sf.фугас
 }
 
-// Armor -- возвращает объект бронебойных снарядов
-func (sf *Arsenal) Armor() types.IStatParam {
-	return sf.armor
+// Бронебойки -- возвращает объект бронебойных снарядов
+func (sf *Арсенал) Бронебойки() types.ИСтатПарам {
+	return sf.бронебойка
 }
 
-// Kumul -- возвращает объект бронебойных снарядов
-func (sf *Arsenal) Kumul() types.IStatParam {
-	return sf.kumul
+// Кумулятивы -- возвращает объект бронебойных снарядов
+func (sf *Арсенал) Кумулятивы() types.ИСтатПарам {
+	return sf.кумулятив
 }
 
-// Remka -- возвращает объект ремкомплектов
-func (sf *Arsenal) Remka() types.IStatParam {
-	return sf.remka
+// Ремки -- возвращает объект ремкомплектов
+func (sf *Арсенал) Ремки() types.ИСтатПарам {
+	return sf.ремка
 }
 
 // Обновляет состояние арсенала по требованию
-func (sf *Arsenal) UpdateArsenal() (err error) {
+func (sf *Арсенал) UpdateArsenal() (err error) {
 	// _mt.Println("\tArsenalNet.updateArsenal()")
-	if err := sf.net.UpdateLst(); err != nil {
+	if err := sf.сеть.UpdateLst(); err != nil {
 		return fmt.Errorf("Arsenal.UpdateArsenal(): при обновлении lstArsenal, err=%w", err)
 	}
 	var (
 		strOut     string
-		lstArsenal = sf.GetLst()
+		lstArsenal = sf.СписПолучить()
 	)
 	{ // Найти маркер фугасного снаряда
 		for _, strFugas := range lstArsenal {
@@ -125,7 +141,7 @@ func (sf *Arsenal) UpdateArsenal() (err error) {
 		if err != nil {
 			return fmt.Errorf("ArsenalNet.updateArsenal(): fugas(%v) not number, err=\n\t%w", strFugas, err)
 		}
-		sf.Fugas().SetVal(iFugas)
+		sf.Фугасы().Уст(iFugas)
 	}
 	{ // Найти маркер бронебойного снаряда
 		for _, strArmor := range lstArsenal {
@@ -142,7 +158,7 @@ func (sf *Arsenal) UpdateArsenal() (err error) {
 		if err != nil {
 			return fmt.Errorf("ArsenalNet.updateArsenal(): armor(%v) not number, err=\n\t%w", strArmor, err)
 		}
-		sf.Armor().SetVal(iArmor)
+		sf.Бронебойки().Уст(iArmor)
 	}
 	{ // Найти маркер кумулятивного снаряда
 		for _, strKumul := range lstArsenal {
@@ -159,7 +175,7 @@ func (sf *Arsenal) UpdateArsenal() (err error) {
 		if err != nil {
 			return fmt.Errorf("ArsenalNet.updateArsenal(): kumul(%v) not number, err=\n\t%w", strKumul, err)
 		}
-		sf.Kumul().SetVal(iKumul)
+		sf.Кумулятивы().Уст(iKumul)
 	}
 	{ // Найти маркер ремкомплекта
 		for ind, strRemka := range lstArsenal {
@@ -176,14 +192,14 @@ func (sf *Arsenal) UpdateArsenal() (err error) {
 		if err != nil {
 			return fmt.Errorf("ArsenalNet.updateArsenal(): remka(%v) not number, err=\n\t%w", strRemka, err)
 		}
-		sf.Remka().SetVal(iRemka)
+		sf.Ремки().Уст(iRemka)
 	}
 	return nil
 }
 
 // Выбирает что надо делать, запускает процесс изготовления
-func (sf *Arsenal) makeArsenal() {
-	err := sf.net.UpdateLst()
+func (sf *Арсенал) makeArsenal() {
+	err := sf.сеть.UpdateLst()
 	if err != nil {
 		// log._rintf("ERRO Arsenal.Run(): при обновлении lstArsenal, err=\n\t%v\n", err)
 		return
@@ -196,16 +212,16 @@ func (sf *Arsenal) makeArsenal() {
 	}
 	// _mt.Println("\tArsenalNet.makeArsenal()")
 	{ // Контроль ремки по времени суток и минимальному количеству
-		iRemka := sf.Remka().Val()
+		iRemka := sf.Ремки().Получ()
 		if iRemka < 70 {
 			fnMakeRemka()
 			return
 		}
 	}
 	{ // Контроль по числу снарядов. В равных долях без приоритетов
-		iFugas := sf.Fugas().Val()
-		iKumul := sf.Kumul().Val()
-		iArmor := sf.Armor().Val()
+		iFugas := sf.Фугасы().Получ()
+		iKumul := sf.Кумулятивы().Получ()
+		iArmor := sf.Бронебойки().Получ()
 
 		typeArmor := "fugas"
 		typeVal := iFugas
@@ -232,10 +248,10 @@ func (sf *Arsenal) makeArsenal() {
 }
 
 // Создать бронебойные
-func (sf *Arsenal) makeArmor() {
+func (sf *Арсенал) makeArmor() {
 	var (
 		strOut     string
-		lstArsenal = sf.GetLst()
+		lstArsenal = sf.СписПолучить()
 		isFind     bool
 	)
 	for ind, strArmor := range lstArsenal {
@@ -259,18 +275,18 @@ func (sf *Arsenal) makeArmor() {
 	strLink := lstArmor[1]
 	lstArmor = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "http://wartank.ru/production/" + lstArmor[0]
-	if _, err := sf.net.Get(strLink); err != nil {
+	if _, err := sf.сеть.Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeArmor(): in update lstArsenal,  err=\n\t%v\n", err)
 		return
 	}
-	sf.ModeCurrent().WorkSet("бронебойные")
+	sf.РежимТекущ().РежимУст("бронебойные")
 }
 
 // Создать кумулятивные
-func (sf *Arsenal) makeKumul() {
+func (sf *Арсенал) makeKumul() {
 	var (
 		strOut     string
-		lstArsenal = sf.GetLst()
+		lstArsenal = sf.СписПолучить()
 		isFind     bool
 		ind        int
 	)
@@ -293,17 +309,17 @@ func (sf *Arsenal) makeKumul() {
 	strLink := lstKumul[1]
 	lstKumul = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "http://wartank.ru/production/" + lstKumul[0]
-	if _, err := sf.net.Get(strLink); err != nil {
+	if _, err := sf.сеть.Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeKumul(): in make product arsenal kumul , err=\n\t%v\n", err)
 		return
 	}
-	sf.ModeCurrent().WorkSet("кумулятивы")
+	sf.РежимТекущ().РежимУст("кумулятивы")
 }
 
 // Создать фугасы
-func (sf *Arsenal) makeFugas() {
+func (sf *Арсенал) makeFugas() {
 	var (
-		lstArsenal = sf.GetLst()
+		lstArsenal = sf.СписПолучить()
 		strOut     = ""
 		isFind     bool
 		ind        int
@@ -327,21 +343,21 @@ func (sf *Arsenal) makeFugas() {
 	strLink := lstKumul[1]
 	lstKumul = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "http://wartank.ru/production/" + lstKumul[0]
-	if _, err := sf.net.Get(strLink); err != nil {
+	if _, err := sf.сеть.Get(strLink); err != nil {
 		// log._rintf("ERRO ArsenalNet.makeFugas(): in make request arsenal product, err=\n\t%v\n", err)
 		return
 	}
-	sf.ModeCurrent().WorkSet("фугасы")
+	sf.РежимТекущ().РежимУст("фугасы")
 	// log._rintf("INFO Arsenal.makeFugas()\n")
 }
 
 // Создать ремку. Выполняется если подходят условия
-func (sf *Arsenal) makeRemka() (err error) {
+func (sf *Арсенал) makeRemka() (err error) {
 	// _mt.Println("\tArsenalNet.makeRemka()")
 	var (
 		strOut     = ""
 		isFind     bool
-		lstArsenal = sf.GetLst()
+		lstArsenal = sf.СписПолучить()
 	)
 
 	for ind, strRemka := range lstArsenal {
@@ -363,9 +379,9 @@ func (sf *Arsenal) makeRemka() (err error) {
 	strLink := lstRemka[1]
 	lstRemka = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
 	strLink = "http://wartank.ru/production/Armory" + lstRemka[0]
-	if _, err = sf.net.Get(strLink); err != nil {
+	if _, err = sf.сеть.Get(strLink); err != nil {
 		return fmt.Errorf("ArsenalNet.makeRemka(): in getpagebank product, err=\n\t%w", err)
 	}
-	sf.ModeCurrent().WorkSet("ремка")
+	sf.РежимТекущ().РежимУст("ремка")
 	return nil
 }

+ 2 - 2
server/serv_bots/warbot/angar/base/arsenal/arsenalnet/arsenalnet.go

@@ -16,8 +16,8 @@ type ArsenalNet struct {
 	*sectionnet.SectionNet
 }
 
-// NewArsenalNet -- возвращает новый *ArsenalNet
-func NewArsenalNet(arsenal types.IArsenal) (*ArsenalNet, error) {
+// НовАрсеналСеть -- возвращает новый *ArsenalNet
+func НовАрсеналСеть(arsenal types.ИАрсенал) (*ArsenalNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(arsenal, "http://wartank.ru/production/Armory")
 	if err != nil {
 		return nil, fmt.Errorf("NewArsenalNet(): in create SectionNet, err=\n\t%w", err)

+ 33 - 31
server/serv_bots/warbot/angar/base/bank/bank.go

@@ -20,24 +20,26 @@ import (
 // Bank -- объект банка на базе
 type Bank struct {
 	*section.Section
-	net       *banknet.BankNet
-	silverBot types.IStatParam
-	mode1     *bankmode.BankMode // 1 режим работы на выбор
-	mode2     *bankmode.BankMode // 2 режим работы на выбор
+	net        *banknet.BankNet
+	сереброБот types.ИСтатПарам
+	mode1      *bankmode.BankMode // 1 режим работы на выбор
+	mode2      *bankmode.BankMode // 2 режим работы на выбор
 }
 
-// NewBank -- возвращает новый *Bank
-func NewBank(base types.IBase) (*Bank, error) {
-	section, err := section.NewSection(base.Bot(), "Банк", `<span class="green2">Серебро</span><br/>`)
-	if err != nil {
-		return nil, fmt.Errorf("NewBank(): in create *Section, err=\n\t%w", err)
+// НовБанк -- возвращает новый *Bank
+func НовБанк(base types.ИБаза) (*Bank, error) {
+	section, err := section.NewSection(base.Бот(), "Банк", `<span class="green2">Серебро</span><br/>`)
+
+	сереброБот, ош := static_param.НовСтатПарам("silver_bot")
+	if ош != nil {
+		return nil, fmt.Errorf("НовБанк(): при создании статы серебра бота, ош=\n\t%w", ош)
 	}
 
 	sf := &Bank{
-		Section:   section,
-		silverBot: static_param.NewStaticParam("silver_bot"),
-		mode1:     bankmode.NewBankMode(),
-		mode2:     bankmode.NewBankMode(),
+		Section:    section,
+		сереброБот: сереброБот,
+		mode1:      bankmode.NewBankMode(),
+		mode2:      bankmode.NewBankMode(),
 	}
 	sf.net, err = banknet.NewBankNet(sf)
 	if err != nil {
@@ -65,7 +67,7 @@ func (sf *Bank) run() {
 	log.Printf("Bank.run()\n")
 	sf.SetCountDown(5)
 	for {
-		<-sf.CountDown().ChanSig()
+		<-sf.ВремяОпрос().КаналСиг()
 		if err := sf.net.UpdateLst(); err != nil {
 			// log._rintf("ERRO Bank.Run():  при обновлении lstBank, err=\n\t%v\n", err)
 			continue
@@ -83,32 +85,32 @@ func (sf *Bank) run() {
 	}
 }
 
-// Mode2 -- возвращает объект режима2
-func (sf *Bank) Mode2() types.IBankMode {
+// РежимРаботы2 -- возвращает объект режима2
+func (sf *Bank) РежимРаботы2() types.ИБанкРежим {
 	return sf.mode2
 }
 
-// Mode1 -- возвращает объект режима1
-func (sf *Bank) Mode1() types.IBankMode {
+// РежимРаботы1 -- возвращает объект режима1
+func (sf *Bank) РежимРаботы1() types.ИБанкРежим {
 	return sf.mode1
 }
 
-// SilverBot -- возвращает серебро от бота
-func (sf *Bank) SilverBot() types.IStatParam {
-	return sf.silverBot
+// СереброБот -- возвращает серебро от бота
+func (sf *Bank) СереброБот() types.ИСтатПарам {
+	return sf.сереброБот
 }
 
 // Запускает в производство серебро
 func (sf *Bank) makeProduct() (int, error) {
 	var (
-		lstBank = sf.GetLst()
+		lstBank = sf.СписПолучить()
 		ind     int
 		strOut  string
 		strLink string
 		isFind  bool
 	)
-	time1 := sf.Mode1().Time()
-	time2 := sf.Mode2().Time()
+	time1 := sf.РежимРаботы1().ВремяСделать()
+	time2 := sf.РежимРаботы2().ВремяСделать()
 	if time1 > time2 {
 		time1 = time2
 	}
@@ -134,20 +136,20 @@ func (sf *Bank) makeProduct() (int, error) {
 				return 30, nil
 			}
 		}
-		if err = sf.Update(lstBank); err != nil {
+		if err = sf.СтрОбновить(lstBank); err != nil {
 			return -1, fmt.Errorf("BankNet.makeProduct(): при обновлении lstBank, err=%w", err)
 		}
 		if err := sf.ParseCountDown(time1); err != nil {
 			log.Printf("WARN Bank.makeProduct(): при установке времени производства банка(%v)\n\terr=%v\n", time1, err)
 		}
 	}
-	return sf.CountDown().Get(), nil
+	return sf.ВремяОпрос().Получ(), nil
 }
 
 // Получает все режимы банка
 func (sf *Bank) getAllMode() error {
 	var (
-		lstBank  = sf.GetLst()
+		lstBank  = sf.СписПолучить()
 		ind      int
 		strMode  string
 		strMode1 string
@@ -168,10 +170,10 @@ func (sf *Bank) getAllMode() error {
 		if err != nil {
 			return fmt.Errorf("BankNet.getAllMode(): numSilver1(%v) not number, err=\n\t%w", strMode1, err)
 		}
-		sf.Mode1().Silver().SetVal(iNum1)
+		sf.РежимРаботы1().Серебро().Уст(iNum1)
 		// Установить время производства
 		strTime1 := lstBank[ind+2]
-		sf.Mode1().TimeSet(strTime1)
+		sf.РежимРаботы1().ВремяСделатьУст(strTime1)
 		if iNum1 <= 2 { // Если банк слишком слабый
 			return nil
 		}
@@ -193,10 +195,10 @@ func (sf *Bank) getAllMode() error {
 		if err != nil {
 			return fmt.Errorf("BankNet.getAllMode(): numSilver2(%v) not number, err=\n\t%w", strMode2, err)
 		}
-		sf.Mode2().Silver().SetVal(iNum2)
+		sf.РежимРаботы2().Серебро().Уст(iNum2)
 		// Установить время производства
 		strTime2 := lstBank[ind+2]
-		sf.Mode2().TimeSet(strTime2)
+		sf.РежимРаботы2().ВремяСделатьУст(strTime2)
 	}
 	return nil
 }

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

@@ -11,28 +11,29 @@ import (
 
 // BankMode -- объект допустимого режима банка
 type BankMode struct {
-	silver    types.IStatParam
+	серебро   types.ИСтатПарам
 	timeCount string
 }
 
 // NewBankMode -- возвращает новый *BankMode
 func NewBankMode() *BankMode {
+	серебро, _ := static_param.НовСтатПарам("silver")
 	return &BankMode{
-		silver: static_param.NewStaticParam("silver"),
+		серебро: серебро,
 	}
 }
 
-// Silver -- возвращает объект серебра режима
-func (sf *BankMode) Silver() types.IStatParam {
-	return sf.silver
+// Серебро -- возвращает объект серебра режима
+func (sf *BankMode) Серебро() types.ИСтатПарам {
+	return sf.серебро
 }
 
-// Time -- возвращает временя производства режима
-func (sf *BankMode) Time() string {
+// ВремяСделать -- возвращает временя производства режима
+func (sf *BankMode) ВремяСделать() string {
 	return sf.timeCount
 }
 
-// TimeSet -- устанавливает времея производства режима
-func (sf *BankMode) TimeSet(val string) {
+// ВремяСделатьУст -- устанавливает время производства режима
+func (sf *BankMode) ВремяСделатьУст(val string) {
 	sf.timeCount = val
 }

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

@@ -18,7 +18,7 @@ type BankNet struct {
 }
 
 // NewBankNet -- возвращает новый *BankNet
-func NewBankNet(bank types.IBank) (*BankNet, error) {
+func NewBankNet(bank types.ИБанк) (*BankNet, error) {
 	log.Printf("NewBankNet()\n")
 	sectionNet, err := sectionnet.NewSectionNet(bank, "http://wartank.ru/production/Bank")
 	if err != nil {

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

@@ -33,22 +33,22 @@ const (
 type Base struct {
 	*section.Section
 	net       *basenet.BaseNet
-	arsenal   *arsenal.Arsenal
+	arsenal   *arsenal.Арсенал
 	bank      *bank.Bank
 	polygon   *polygon.Polygon
-	mine      *mine.Mine
+	mine      *mine.Шахта
 	market    *market.Market
 	timeSleep int // Сколько времени спать до опроса базы
 	block     sync.Mutex
 }
 
 // NewBase -- возвращает новую базу бота
-func NewBase(angar types.IAngar) (*Base, error) {
-	section, err := section.NewSection(angar.Bot(), "База", `<title>База</title>`)
+func NewBase(angar types.ИАнгар) (*Base, error) {
+	section, err := section.NewSection(angar.Бот(), "База", `<title>База</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewBase(): in create ISection, err=\n\t%w", err)
 	}
-	log.Printf("NewBase(): %q\n", section.Bot().Name())
+	log.Printf("NewBase(): %q\n", section.Бот().Имя())
 	sf := &Base{
 		Section: section,
 	}
@@ -59,19 +59,19 @@ func NewBase(angar types.IAngar) (*Base, error) {
 		}
 	}
 	{ // Arsenal
-		sf.arsenal, err = arsenal.NewArsenal(sf)
+		sf.arsenal, err = arsenal.НовАрсенал(sf)
 		if err != nil {
 			return nil, fmt.Errorf("NewBase(): in create IArsenal, err=\n\t%w", err)
 		}
 	}
 	{ // Bank
-		sf.bank, err = bank.NewBank(sf)
+		sf.bank, err = bank.НовБанк(sf)
 		if err != nil {
 			return nil, fmt.Errorf("NewBase(): in create IBank, err=\n\t%w", err)
 		}
 	}
 	{ // Mine
-		sf.mine, err = mine.NewMine(sf)
+		sf.mine, err = mine.НовШахта(sf)
 		if err != nil {
 			return nil, fmt.Errorf("NewBase(): in create IMine, err=\n\t%w", err)
 		}
@@ -105,10 +105,10 @@ func (sf *Base) Run() error {
 func (sf *Base) run() {
 	for {
 		select {
-		case <-sf.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
+		case <-sf.ВремяОпрос().КаналСиг():
 			if err := sf.net.UpdateLst(); err != nil { // Обновить состояние базы
 				log.Printf("ERRO Base.Run(): при обновлении базы, err=\n\t%v\n", err)
 			}
@@ -150,10 +150,10 @@ func (sf *Base) runComponent() error {
 
 // Выбирает время обновления базы по компонентам
 func (sf *Base) setCountDown() {
-	timeBase := sf.bank.CountDown().Get()
+	timeBase := sf.bank.ВремяОпрос().Получ()
 	timeCount := timeBase
-	timeArsenal := sf.arsenal.CountDown().Get()
-	timeMine := sf.mine.CountDown().Get()
+	timeArsenal := sf.arsenal.ВремяОпрос().Получ()
+	timeMine := sf.mine.ВремяОпрос().Получ()
 	if timeArsenal < timeCount {
 		timeCount = timeArsenal
 	}
@@ -170,44 +170,44 @@ func (sf *Base) setCountDown() {
 	sf.SetCountDown(timeCount)
 }
 
-// Arsenal -- возвращает объект арсенала
-func (sf *Base) Arsenal() types.IArsenal {
+// Арсенал -- возвращает объект арсенала
+func (sf *Base) Арсенал() types.ИАрсенал {
 	return sf.arsenal
 }
 
-// Bank -- возвращает объект банка
-func (sf *Base) Bank() types.IBank {
+// Банк -- возвращает объект банка
+func (sf *Base) Банк() types.ИБанк {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	return sf.bank
 }
 
-// Polygon -- возвращает объект полигона
-func (sf *Base) Polygon() types.IPolygon {
+// Полигон -- возвращает объект полигона
+func (sf *Base) Полигон() types.ИПолигон {
 	return sf.polygon
 }
 
-// Mine -- возвращает объект шахты
-func (sf *Base) Mine() types.IMine {
+// Шахта -- возвращает объект шахты
+func (sf *Base) Шахта() types.ИШахта {
 	return sf.mine
 }
 
-// Market -- возвращает объект рынка
-func (sf *Base) Market() types.IMarket {
+// Рынок -- возвращает объект рынка
+func (sf *Base) Рынок() types.ИРынок {
 	return sf.market
 }
 
 // Проверяет на забрать шахту
 func (sf *Base) checkMine() {
-	countTime := sf.mine.CountDown().Get()
+	countTime := sf.mine.ВремяОпрос().Получ()
 	if countTime > 3 {
 		return
 	}
-	if sf.mine.Ruda().Val() == 0 {
+	if sf.mine.Руда().Получ() == 0 {
 		sf.checkMineStat()
 	}
 	sf.checkMineForce() // Нужно ли ускорить апгрейд шахты
-	if sf.mine.ModeCurrent().Get() == "upgrade" {
+	if sf.mine.РежимТекущ().Получ() == "upgrade" {
 		return
 	}
 	sf.checkMineStat()
@@ -220,7 +220,7 @@ func (sf *Base) checkMine() {
 // Проверяет время ожидания шахты
 func (sf *Base) checkMineTime() {
 	var (
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 		strOut  string
 		isFind  bool
 		ind     int
@@ -255,7 +255,7 @@ func (sf *Base) checkMineGet() {
 		strOut  string
 		ind     int
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for ind, strOut = range lstBase {
 		if strings.Contains(strOut, `<span class="green2">Шахта -`) {
@@ -280,7 +280,7 @@ func (sf *Base) checkMineGet() {
 		// log._rintf("ERRO Base.checkMineGet(): при выполнении Get-запроса 'забрать', err=\n\t%v\n", err)
 		return
 	}
-	if err = sf.mine.Update(lstBase1); err != nil {
+	if err = sf.mine.СтрОбновить(lstBase1); err != nil {
 		// log._rintf("ERRO Base.checkMineGet(): при обновлении lstMine, err=\n\t%v\n", err)
 		return
 	}
@@ -290,7 +290,7 @@ func (sf *Base) checkMineGet() {
 // Проверка статистики шахты
 func (sf *Base) checkMineStat() {
 	var (
-		lstMine = sf.GetLst()
+		lstMine = sf.СписПолучить()
 		strOut  string
 		isFind  bool
 		ind     int
@@ -312,7 +312,7 @@ func (sf *Base) checkMineStat() {
 				log.Printf("ERRO Base.checkMineStat(): руда(%v) не число, err=\n\t%v\n", strRuda, err)
 				return
 			}
-			sf.mine.Ruda().SetVal(iRuda)
+			sf.mine.Руда().Уст(iRuda)
 		}
 	}
 	{ // Ищем железо
@@ -332,7 +332,7 @@ func (sf *Base) checkMineStat() {
 				log.Printf("ERRO Base.checkMineStat(): железо(%v) не число, err=\n\t%v\n", strFerrum, err)
 				return
 			}
-			sf.mine.Ferrum().SetVal(iFerrum)
+			sf.mine.Железо().Уст(iFerrum)
 		}
 	}
 	{ // Ищем сталь
@@ -352,7 +352,7 @@ func (sf *Base) checkMineStat() {
 				log.Printf("ERRO Base.checkMineStat(): сталь(%v) не число, err=\n\t%v\n", strSteel, err)
 				return
 			}
-			sf.mine.Steel().SetVal(iSteel)
+			sf.mine.Сталь().Уст(iSteel)
 		}
 	}
 	{ // Ищем свинец
@@ -372,11 +372,11 @@ func (sf *Base) checkMineStat() {
 				log.Printf("ERRO Base.checkMineStat(): свинец(%v) не число, err=\n\t%v\n", strPlumbum, err)
 				return
 			}
-			sf.mine.Plumbum().SetVal(iPlumbum)
+			sf.mine.Свинец().Уст(iPlumbum)
 		}
 	}
 	{ // Ищем время обработки и режим
-		lstBase := sf.GetLst()
+		lstBase := sf.СписПолучить()
 		for ind, strOut = range lstBase {
 			if strings.Contains(strOut, `<span class="green2">Шахта - `) {
 				isFind = true
@@ -407,19 +407,19 @@ func (sf *Base) checkMineStat() {
 			strNum := lstNum[1]
 			lstNum = strings.Split(strNum, `</div></td>`)
 			strNum = lstNum[0]
-			sf.mine.ModeCurrent().WorkSet("Железо-" + strNum)
+			sf.mine.РежимТекущ().РежимУст("Железо-" + strNum)
 		case strings.Contains(strOut, `/images/icons/ore.png`): // Руда
 			lstNum := strings.Split(strOut, `<td class="vam"><div class="nwr pr5 gray1"><img class="rico vm" src="/images/icons/ore.png?2" alt="ore"/>&nbsp;`)
 			strNum := lstNum[1]
 			lstNum = strings.Split(strNum, `</div></td>`)
 			strNum = lstNum[0]
-			sf.mine.ModeCurrent().WorkSet("Руда-" + strNum)
+			sf.mine.РежимТекущ().РежимУст("Руда-" + strNum)
 		case strings.Contains(strOut, `/images/icons/steel.png`): // Руда
 			lstNum := strings.Split(strOut, `<td class="vam"><div class="nwr pr5 gray1"><img class="rico vm" src="/images/icons/steel.png?2" alt="steel"/>&nbsp;`)
 			strNum := lstNum[1]
 			lstNum = strings.Split(strNum, `</div></td>`)
 			strNum = lstNum[0]
-			sf.mine.ModeCurrent().WorkSet("Сталь-" + strNum)
+			sf.mine.РежимТекущ().РежимУст("Сталь-" + strNum)
 		}
 	}
 }
@@ -430,7 +430,7 @@ func (sf *Base) checkMineProduct() {
 		strOut  string
 		ind     int
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for ind, strOut = range lstBase {
 		if strings.Contains(strOut, `<span class="green2">Шахта -`) {
@@ -446,13 +446,13 @@ func (sf *Base) checkMineProduct() {
 	if !strings.Contains(strOut, `"><span><span>Производство</span></span></a>`) {
 		return
 	}
-	sf.mine.NumProduct().SetVal(0)
+	sf.mine.КолвоСделатьСейчас().Уст(0)
 	sf.mine.SetCountDown(1)
 }
 
 // Проверяет режимы арсенала
 func (sf *Base) checkArsenal() {
-	countTime := sf.arsenal.CountDown().Get()
+	countTime := sf.arsenal.ВремяОпрос().Получ()
 	if countTime > 3 {
 		return
 	}
@@ -460,11 +460,11 @@ func (sf *Base) checkArsenal() {
 		// log._rintf("ERRO Base.checkArsenal(): при обновлении арсенала, err=\n\t%v\n", err)
 		return
 	}
-	if mode := sf.arsenal.ModeCurrent().Work(); mode == "" {
+	if mode := sf.arsenal.РежимТекущ().Режим(); mode == "" {
 		sf.checkArsenalMode()
 	}
 	sf.checkArsenalForce() // Нужно ли ускорить апгрейд арсенала
-	if sf.arsenal.ModeCurrent().Get() == "upgrade" {
+	if sf.arsenal.РежимТекущ().Получ() == "upgrade" {
 		return
 	}
 	sf.checkArsenalGet() // Нужно ли забрать оружие
@@ -475,7 +475,7 @@ func (sf *Base) checkArsenal() {
 // Проверяет время готовности арсенала
 func (sf *Base) checkArsenalTime() {
 	var (
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 		ind     int
 		strOut  string
 		isFind  bool
@@ -513,7 +513,7 @@ func (sf *Base) checkArsenalGet() {
 		strOut  string
 		ind     int
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for ind, strOut = range lstBase {
 		if strings.Contains(strOut, `Производит снаряды, ремкомплекты<br/>`) {
@@ -552,12 +552,12 @@ func (sf *Base) checkArsenalGet() {
 	}
 	sf.arsenal.SetCountDown(1)
 	if isFind {
-		if err = sf.arsenal.Update(lstBase); err != nil {
+		if err = sf.arsenal.СтрОбновить(lstBase); err != nil {
 			log.Printf("ERRO Base.checkArsenalGet(): при обновлении lstArsenal, err=\n\t%v\n", err)
 		}
 		return
 	}
-	if err = sf.Update(lstBase); err != nil {
+	if err = sf.СтрОбновить(lstBase); err != nil {
 		log.Printf("ERRO Base.checkArsenalGet(): при обновлении lstBase, err=\n\t%v\n", err)
 	}
 }
@@ -566,23 +566,23 @@ func (sf *Base) checkArsenalGet() {
 func (sf *Base) checkArsenalMode() {
 	var (
 		strOut  string
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for _, strOut = range lstBase {
 		if strings.Contains(strOut, `HollowCharge.png`) {
-			sf.arsenal.ModeCurrent().WorkSet("кумулятивы")
+			sf.arsenal.РежимТекущ().РежимУст("кумулятивы")
 			return
 		}
 		if strings.Contains(strOut, `ArmorPiercing.png`) {
-			sf.arsenal.ModeCurrent().WorkSet("бронебойки")
+			sf.arsenal.РежимТекущ().РежимУст("бронебойки")
 			return
 		}
 		if strings.Contains(strOut, `HighExplosive.png`) {
-			sf.arsenal.ModeCurrent().WorkSet("фугасы")
+			sf.arsenal.РежимТекущ().РежимУст("фугасы")
 			return
 		}
 		if strings.Contains(strOut, `repairkit.gif`) {
-			sf.arsenal.ModeCurrent().WorkSet("ремка")
+			sf.arsenal.РежимТекущ().РежимУст("ремка")
 			return
 		}
 	}
@@ -594,7 +594,7 @@ func (sf *Base) checkArsenalForce() {
 		ind     int
 		strOut  = ""
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	{ // Проверка на платное ускорение апгрейда + время
 		for ind, strOut = range lstBase {
@@ -614,8 +614,8 @@ func (sf *Base) checkArsenalForce() {
 				if err := sf.arsenal.SetCountDown(forceTimePay); err != nil {
 					log.Printf("WARN Base.checkArsenalForce(): при установке платного времени ускорения апгрейда арсенала(%v)\n\terr=%v\n", forceTimePay, err)
 				}
-				sf.arsenal.ModeCurrent().Set("upgrade")
-				sf.arsenal.ModeCurrent().WorkSet("апгрейд")
+				sf.arsenal.РежимТекущ().Уст("upgrade")
+				sf.arsenal.РежимТекущ().РежимУст("апгрейд")
 				return
 			}
 		}
@@ -637,7 +637,7 @@ func (sf *Base) checkArsenalForce() {
 		if !strings.Contains(strOut, `>Ускорение<`) {
 			return
 		}
-		sf.arsenal.ModeCurrent().Set("upgrade")
+		sf.arsenal.РежимТекущ().Уст("upgrade")
 		lstLink := strings.Split(strOut, `<td style="width:50%;padding-left:1px;"><a class="simple-but border" href="`)
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `"><span><span>Ускорение</span></span></a>`)
@@ -648,32 +648,32 @@ func (sf *Base) checkArsenalForce() {
 			return
 		}
 		// sound.ArsenalForce()
-		if err := sf.Update(lstBase); err != nil {
+		if err := sf.СтрОбновить(lstBase); err != nil {
 			// log._rintf("ERRO NetBank.checkArsenalForce(): при обновлении lstBase, err=\n\t%v\n", err)
 			return
 		}
-		sf.arsenal.ModeCurrent().Set("upgrade")
-		sf.arsenal.ModeCurrent().WorkSet("апгрейд")
+		sf.arsenal.РежимТекущ().Уст("upgrade")
+		sf.arsenal.РежимТекущ().РежимУст("апгрейд")
 		if err := sf.arsenal.SetCountDown(forceTimeFree); err != nil {
 			log.Printf("WARN Base.checkArsenalForce(): при установке бесплатного времени ускорения апгрейда арсенала(%v)\n\terr=%v\n", forceTimeFree, err)
 		}
 	}
 	// Все проверки прошли -- это просто работа
-	sf.arsenal.ModeCurrent().Set("work")
+	sf.arsenal.РежимТекущ().Уст("work")
 }
 
 // Проверяет режим банка
 func (sf *Base) checkBank() error {
-	if sf.bank.ModeCurrent().Work() == "" {
+	if sf.bank.РежимТекущ().Режим() == "" {
 		sf.checkBankMode()
 	}
 	sf.checkBankTime() // Проверка времени ожидания
-	countTime := sf.bank.CountDown().Get()
+	countTime := sf.bank.ВремяОпрос().Получ()
 	if countTime > 5 {
 		return nil
 	}
 	sf.checkBankForce() // Нужно ли ускорить апгрейд банка
-	if sf.bank.ModeCurrent().Get() == "upgrade" {
+	if sf.bank.РежимТекущ().Получ() == "upgrade" {
 		return nil
 	}
 	sf.checkBankTake()    // Нужно ли забрать банк
@@ -686,7 +686,7 @@ func (sf *Base) checkBankMode() {
 	var (
 		strOut  string
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for _, strOut = range lstBase {
 		if strings.Contains(strOut, `<td class="vam"><div class="nwr pr5 gray1"><img class="rico vm" src="/images/icons/silver.png?2" alt="silver"/>&nbsp;`) {
@@ -701,7 +701,7 @@ func (sf *Base) checkBankMode() {
 	strSilver := lstSilver[1]
 	lstSilver = strings.Split(strSilver, `</div></td>`)
 	strSilver = "Серебро-" + lstSilver[0]
-	sf.bank.ModeCurrent().WorkSet(strSilver)
+	sf.bank.РежимТекущ().РежимУст(strSilver)
 
 }
 
@@ -711,7 +711,7 @@ func (sf *Base) checkBankTime() {
 		strOut  string
 		ind     int
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for ind, strOut = range lstBase {
 		if strings.Contains(strOut, `Производит серебро<br/>`) {
@@ -742,7 +742,7 @@ func (sf *Base) checkBankProduct() {
 		strOut  string
 		ind     int
 		isFind  bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	for ind, strOut = range lstBase {
 		if strings.Contains(strOut, `Производит серебро<br/>`) {
@@ -768,7 +768,7 @@ func (sf *Base) checkBankTake() {
 		ind     int
 		strOut  string
 		isFind  bool
-		lstBank = sf.GetLst()
+		lstBank = sf.СписПолучить()
 		strLink string
 	)
 	for ind, strOut = range lstBank {
@@ -803,13 +803,13 @@ func (sf *Base) checkBankTake() {
 		}
 	}
 	if isFind {
-		if err := sf.bank.Update(lstBank); err != nil {
+		if err := sf.bank.СтрОбновить(lstBank); err != nil {
 			log.Printf("ERRO Base.checkBankTake(): при установке lstBank, err=\n\t%v'n", err)
 		}
 		sf.bank.SetCountDown(1)
 		return
 	}
-	if err := sf.Update(lstBank); err != nil {
+	if err := sf.СтрОбновить(lstBank); err != nil {
 		log.Printf("ERRO Base.checkBankTake(): при установке lstBase, err=\n\t%v'n", err)
 	}
 	sf.bank.SetCountDown(1)
@@ -821,7 +821,7 @@ func (sf *Base) checkBankForce() {
 		ind     int
 		strOut  = ""
 		isOut   bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	{ // Проверка на платное ускорение апгрейда
 		for ind, strOut = range lstBase {
@@ -837,8 +837,8 @@ func (sf *Base) checkBankForce() {
 			if err := sf.bank.SetCountDown(forceTimePay); err != nil {
 				log.Printf("WARN Base.checkBankForce(): при установке времени ожидания платного ускорения апгрейда банка(%v)\n\terr=%v\n", forceTimePay, err)
 			}
-			sf.bank.ModeCurrent().Set("upgrade")
-			sf.bank.ModeCurrent().WorkSet("апгрейд")
+			sf.bank.РежимТекущ().Уст("upgrade")
+			sf.bank.РежимТекущ().РежимУст("апгрейд")
 			return
 		}
 	}
@@ -864,12 +864,12 @@ func (sf *Base) checkBankForce() {
 				// log._rintf("ERRO NetBank.checkBankForce(): при GET-запросе на бесплатном ускорении апгрейда банка, err=\n\t%v\n", err)
 				return
 			}
-			if err := sf.Update(lstBase); err != nil {
+			if err := sf.СтрОбновить(lstBase); err != nil {
 				// log._rintf("ERRO NetBank.checkBankForce(): при обновлении lstBase, err=\n\t%v\n", err)
 				return
 			}
-			sf.bank.ModeCurrent().Set("upgrade")
-			sf.bank.ModeCurrent().WorkSet("апгрейд")
+			sf.bank.РежимТекущ().Уст("upgrade")
+			sf.bank.РежимТекущ().РежимУст("апгрейд")
 			if err := sf.bank.SetCountDown(forceTimeFree); err != nil {
 				log.Printf("WARN Base.checkBankForce(): при установке времени бесплатного ускорения агрейда банка(%v)\n\terr=%v\n", forceTimeFree, err)
 			}
@@ -883,7 +883,7 @@ func (sf *Base) checkMineForce() {
 		ind     int
 		strOut  = ""
 		isOut   bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
 	{ // Проверка на платное ускорение апгрейда
 		for ind, strOut = range lstBase {
@@ -896,8 +896,8 @@ func (sf *Base) checkMineForce() {
 			}
 		}
 		if isOut && strings.Contains(strOut, `Ускорить за`) {
-			sf.mine.ModeCurrent().Set("upgrade")
-			sf.mine.ModeCurrent().WorkSet("апгрейд")
+			sf.mine.РежимТекущ().Уст("upgrade")
+			sf.mine.РежимТекущ().РежимУст("апгрейд")
 			if err := sf.mine.SetCountDown(forceTimePay); err != nil {
 				log.Printf("WARN Base.checkMineForce(): при установке времени платного апгрейда шахты(%v)\n\terr=%v\n", forceTimePay, err)
 			}
@@ -925,7 +925,7 @@ func (sf *Base) checkMineForce() {
 				// log._rintf("ERRO NetBank.checkMineForce(): при GET-запросе на бесплатном ускорении апгрейда шахты, err=\n\t%v\n", err)
 				return
 			}
-			if err := sf.Update(lstBase); err != nil {
+			if err := sf.СтрОбновить(lstBase); err != nil {
 				// log._rintf("ERRO NetBank.checkMineForce(): при обновлении lstBase, err=\n\t%v\n", err)
 				return
 			}
@@ -933,13 +933,13 @@ func (sf *Base) checkMineForce() {
 				log.Printf("WARN Base.checkMineForce(): при установке времени апгрейда шахты(%v)\n\terr=%v\n", forceTimeFree, err)
 			}
 			// sound.MineForce()
-			sf.mine.ModeCurrent().Set("upgrade")
-			sf.mine.ModeCurrent().WorkSet("апгрейд")
+			sf.mine.РежимТекущ().Уст("upgrade")
+			sf.mine.РежимТекущ().РежимУст("апгрейд")
 			return
 		}
 	}
 	// Все проверки прошли -- это просто работа
-	sf.mine.ModeCurrent().Set("work")
+	sf.mine.РежимТекущ().Уст("work")
 }
 
 // Проверяет на ускорение апгрейда полигона
@@ -948,9 +948,9 @@ func (sf *Base) checkPolygonForce() {
 		ind     int
 		strOut  = ""
 		isOut   bool
-		lstBase = sf.GetLst()
+		lstBase = sf.СписПолучить()
 	)
-	countTime := sf.polygon.CountDown().Get()
+	countTime := sf.polygon.ВремяОпрос().Получ()
 	if countTime > 3 {
 		return
 	}
@@ -973,8 +973,8 @@ func (sf *Base) checkPolygonForce() {
 			// if err := sf.polygon.CountDown().Set(strTime); err != nil {
 			// 	// log._rintf("WARN Base.checkMineForce(): при установке времени апгрейда полигона(%v)\n\terr=%v\n", strTime, err)
 			// }
-			sf.polygon.ModeCurrent().Set("upgrade")
-			sf.polygon.ModeCurrent().WorkSet("апгрейд")
+			sf.polygon.РежимТекущ().Уст("upgrade")
+			sf.polygon.РежимТекущ().РежимУст("апгрейд")
 			if err := sf.polygon.SetCountDown(forceTimePay); err != nil {
 				log.Printf("WARN Base.checkPolygonForce(): при установке платного времени апгрейда полигона(%v)\n\terr=%v\n", forceTimePay, err)
 			}
@@ -1002,13 +1002,13 @@ func (sf *Base) checkPolygonForce() {
 				// log._rintf("ERRO NetBank.checkPolygonForce(): при GET-запросе на бесплатном ускорении апгрейда полигона, err=\n\t%v\n", err)
 				return
 			}
-			if err := sf.Update(lstBase); err != nil {
+			if err := sf.СтрОбновить(lstBase); err != nil {
 				// log._rintf("ERRO NetBank.checkPolygonForce(): при обновлении lstBase, err=\n\t%v\n", err)
 				return
 			}
 			// sound.MineForce()
-			sf.polygon.ModeCurrent().Set("upgrade")
-			sf.polygon.ModeCurrent().WorkSet("апгрейд")
+			sf.polygon.РежимТекущ().Уст("upgrade")
+			sf.polygon.РежимТекущ().РежимУст("апгрейд")
 			// Установить время ожидания для обновления
 			if err := sf.polygon.SetCountDown(forceTimeFree); err != nil {
 				log.Printf("WARN Base.checkPolygonForce(): при установке времени бесплатного апгрейда полигона(%v)\n\terr=%v\n", forceTimeFree, err)
@@ -1018,5 +1018,5 @@ func (sf *Base) checkPolygonForce() {
 		}
 	}
 	// Все проверки прошли -- это просто работа
-	sf.polygon.ModeCurrent().Set("work")
+	sf.polygon.РежимТекущ().Уст("work")
 }

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

@@ -18,7 +18,7 @@ type BaseNet struct {
 }
 
 // NewBaseNet -- возвращает новый *BaseNet
-func NewBaseNet(base types.IBase) (*BaseNet, error) {
+func NewBaseNet(base types.ИБаза) (*BaseNet, error) {
 	strUrl := "http://wartank.ru/buildings"
 	sectionNet, err := sectionnet.NewSectionNet(base, strUrl)
 	if err != nil {

+ 12 - 12
server/serv_bots/warbot/angar/base/market/market.go

@@ -17,19 +17,19 @@ import (
 // Market -- объект рынка
 type Market struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *marketnet.MarketNet
 }
 
 // NewMarket -- возвращает новый рынок
-func NewMarket(base types.IBase) (*Market, error) {
-	section, err := section.NewSection(base.Bot(), "Рынок", `<title>Рынок</title>`)
+func NewMarket(base types.ИБаза) (*Market, error) {
+	section, err := section.NewSection(base.Бот(), "Рынок", `<title>Рынок</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewMarket(): in create *Section, err=\n\t%w", err)
 	}
 	sf := &Market{
 		Section: section,
-		bot:     base.Bot(),
+		bot:     base.Бот(),
 	}
 	{ // Маркет
 		sf.net, err = marketnet.NewMarketNet(sf)
@@ -51,11 +51,11 @@ func (sf *Market) run() {
 	sf.SetCountDown(25)
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.bot.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
-			log.Printf("Market.run(): timeCount=%v\n", sf.CountDown().Get())
+		case <-sf.ВремяОпрос().КаналСиг():
+			log.Printf("Market.run(): timeCount=%v\n", sf.ВремяОпрос().Получ())
 			_ = sf.buyGold()
 			// Если золото не куплено -- обновить время ожидания
 			sf.checkTime()
@@ -77,7 +77,7 @@ func (sf *Market) checkTime() {
 			return false
 		}
 		isFind := false
-		lstMarket := sf.GetLst()
+		lstMarket := sf.СписПолучить()
 		for _, strOut = range lstMarket {
 			if strings.Contains(strOut, `alt="Серебро" title="Серебро"> `) {
 				isFind = true
@@ -97,7 +97,7 @@ func (sf *Market) checkTime() {
 		return false
 	}
 	fnGetCountDown := func() { // Искать счётчик времени
-		lstMarket := sf.GetLst()
+		lstMarket := sf.СписПолучить()
 		// Найти счётчик времени
 		for _, strOut = range lstMarket {
 			if strings.Contains(strOut, `Минимальная цена через `) {
@@ -127,7 +127,7 @@ func (sf *Market) buyGold() bool {
 		ind       int
 		isFind    bool
 		strOut    string
-		lstMarket = sf.GetLst()
+		lstMarket = sf.СписПолучить()
 		strSilver string
 	)
 	for ind, strOut = range lstMarket {
@@ -161,7 +161,7 @@ func (sf *Market) buyGold() bool {
 					return false
 				}
 			}
-			if err = sf.Update(lstMarket); err != nil {
+			if err = sf.СтрОбновить(lstMarket); err != nil {
 				// log._rintf("Market.buyGold(): при обновлении lstMarket, err=\n\t%v\n", err)
 				return true
 			}

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

@@ -17,7 +17,7 @@ type MarketNet struct {
 }
 
 // NewMarketNet -- возвращает новый *MarketNet
-func NewMarketNet(market types.IMarket) (*MarketNet, error) {
+func NewMarketNet(market types.ИРынок) (*MarketNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(market, "http://wartank.ru/market")
 	if err != nil {
 		return nil, fmt.Errorf("NewMarketNet(): in create *SectionNet, err=\n\t%w", err)

+ 83 - 63
server/serv_bots/warbot/angar/base/mine/mine.go

@@ -16,34 +16,54 @@ import (
 	Объект шахты на базе
 */
 
-// Mine -- объект шахты на базе
-type Mine struct {
+// Шахта -- объект шахты на базе
+type Шахта struct {
 	*section.Section
 	net        *minenet.MineNet
-	bot        types.IBot
-	base       types.IBase
-	ruda       types.IStatParam
-	ferrum     types.IStatParam
-	steel      types.IStatParam
-	plumbum    types.IStatParam
-	numProduct types.IStatParam
+	бот        types.ИБот
+	база       types.ИБаза
+	руда       types.ИСтатПарам
+	железо     types.ИСтатПарам
+	сталь      types.ИСтатПарам
+	свинец     types.ИСтатПарам
+	numProduct types.ИСтатПарам
 }
 
-// NewMine -- возвращает новый *Mine
-func NewMine(base types.IBase) (*Mine, error) {
-	section, err := section.NewSection(base.Bot(), "Шахта", `<span class="green2">Руда</span><br/>`)
+// НовШахта -- возвращает новый *Mine
+func НовШахта(база types.ИБаза) (*Шахта, error) {
+	section, err := section.NewSection(база.Бот(), "Шахта", `<span class="green2">Руда</span><br/>`)
 	if err != nil {
-		return nil, fmt.Errorf("NewMine(): in create *Section, err=\n\t%w", err)
+		return nil, fmt.Errorf("НовШахта(): in create *Section, err=\n\t%w", err)
 	}
-	sf := &Mine{
+	руда, ош := static_param.НовСтатПарам("ruda")
+	if ош != nil {
+		return nil, fmt.Errorf("НовШахта(): при создании статистики руды, ош=\n\t%w", ош)
+	}
+	железо, ош := static_param.НовСтатПарам("ferrum")
+	if ош != nil {
+		return nil, fmt.Errorf("НовШахта(): при создании статистики железа, ош=\n\t%w", ош)
+	}
+	сталь, ош := static_param.НовСтатПарам("steel")
+	if ош != nil {
+		return nil, fmt.Errorf("НовШахта(): при создании статистики стали, ош=\n\t%w", ош)
+	}
+	свинец, ош := static_param.НовСтатПарам("plumbum")
+	if ош != nil {
+		return nil, fmt.Errorf("НовШахта(): при создании статистики свинца, ош=\n\t%w", ош)
+	}
+	добычаЧисло, ош := static_param.НовСтатПарам("plumbum")
+	if ош != nil {
+		return nil, fmt.Errorf("НовШахта(): при создании статистики числа добычи, ош=\n\t%w", ош)
+	}
+	sf := &Шахта{
 		Section:    section,
-		bot:        base.Bot(),
-		base:       base,
-		ruda:       static_param.NewStaticParam("ruda"),
-		ferrum:     static_param.NewStaticParam("ferrum"),
-		steel:      static_param.NewStaticParam("steel"),
-		plumbum:    static_param.NewStaticParam("plumbum"),
-		numProduct: static_param.NewStaticParam("plumbum"),
+		бот:        база.Бот(),
+		база:       база,
+		руда:       руда,
+		железо:     железо,
+		сталь:      сталь,
+		свинец:     свинец,
+		numProduct: добычаЧисло,
 	}
 	sf.net, err = minenet.NewMineNet(sf)
 	if err != nil {
@@ -52,23 +72,23 @@ func NewMine(base types.IBase) (*Mine, error) {
 	return sf, nil
 }
 
-func (sf *Mine) Run() error {
+func (sf *Шахта) Run() error {
 	go sf.run()
 	return nil
 }
 
 // run -- запускает обработку шахты
-func (sf *Mine) run() {
+func (sf *Шахта) run() {
 	sf.SetCountDown(1)
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.бот.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
+		case <-sf.ВремяОпрос().КаналСиг():
 			log.Printf("Mine.run(): time sig")
 			sf.Section.SetCountDown(120)
-			work := sf.ModeCurrent().Work()
+			work := sf.РежимТекущ().Режим()
 			log.Printf("Mine.run(): work=%v\n", work)
 			if work == "upgrade" {
 				continue
@@ -97,36 +117,36 @@ func (sf *Mine) run() {
 	}
 }
 
-// Plumbum -- возвращает объект свинца
-func (sf *Mine) Plumbum() types.IStatParam {
-	return sf.plumbum
+// Свинец -- возвращает объект свинца
+func (sf *Шахта) Свинец() types.ИСтатПарам {
+	return sf.свинец
 }
 
-// Steel -- возвращает объект стали
-func (sf *Mine) Steel() types.IStatParam {
-	return sf.steel
+// Сталь -- возвращает объект стали
+func (sf *Шахта) Сталь() types.ИСтатПарам {
+	return sf.сталь
 }
 
-// Ferrum -- возвращает объект железа
-func (sf *Mine) Ferrum() types.IStatParam {
-	return sf.ferrum
+// Железо -- возвращает объект железа
+func (sf *Шахта) Железо() types.ИСтатПарам {
+	return sf.железо
 }
 
-// Ruda -- возвращает объект руды
-func (sf *Mine) Ruda() types.IStatParam {
-	return sf.ruda
+// Руда -- возвращает объект руды
+func (sf *Шахта) Руда() types.ИСтатПарам {
+	return sf.руда
 }
 
-// NumProduct -- возвращает количество прозводимого продукта
-func (sf *Mine) NumProduct() types.IStatParam {
+// КолвоСделатьСейчас -- возвращает количество прозводимого продукта
+func (sf *Шахта) КолвоСделатьСейчас() types.ИСтатПарам {
 	return sf.numProduct
 }
 
 // Выбирает продукцию по возможности произвести и её количеству
-func (sf *Mine) selectProduct() error {
+func (sf *Шахта) selectProduct() error {
 	var (
 		mapProduct = make(map[string]bool) // Словарь известной продукции
-		lstMine    = sf.GetLst()
+		lstMine    = sf.СписПолучить()
 	)
 
 	fnProduct := func() { // вычисляет список допустимой продукции
@@ -154,27 +174,27 @@ func (sf *Mine) selectProduct() error {
 		}
 	}
 	fnProduct()
-	sf.ModeCurrent().WorkSet("руда")
-	ruda := sf.Ruda().Val()
+	sf.РежимТекущ().РежимУст("руда")
+	ruda := sf.Руда().Получ()
 
-	ferrum := sf.Ferrum().Val()
+	ferrum := sf.Железо().Получ()
 	if mapProduct["ferrum"] {
 		if ruda >= ferrum*2 {
-			sf.ModeCurrent().WorkSet("железо")
+			sf.РежимТекущ().РежимУст("железо")
 		}
 	}
 
-	steel := sf.Steel().Val()
+	steel := sf.Сталь().Получ()
 	if mapProduct["steel"] {
 		if ferrum >= steel*2 {
-			sf.ModeCurrent().WorkSet("сталь")
+			sf.РежимТекущ().РежимУст("сталь")
 		}
 	}
 
-	plumbum := sf.Plumbum().Val()
+	plumbum := sf.Свинец().Получ()
 	if mapProduct["plumbum"] {
 		if steel > plumbum*2 {
-			sf.ModeCurrent().WorkSet("свинец")
+			sf.РежимТекущ().РежимУст("свинец")
 		}
 	}
 
@@ -182,9 +202,9 @@ func (sf *Mine) selectProduct() error {
 }
 
 // Создаёт руду
-func (sf *Mine) makeRuda() {
+func (sf *Шахта) makeRuda() {
 	var (
-		lstMine = sf.GetLst()
+		lstMine = sf.СписПолучить()
 		ind     int
 		strOut  string
 		strTime string
@@ -223,7 +243,7 @@ func (sf *Mine) makeRuda() {
 			return
 		}
 	}
-	if err = sf.Update(lstMine); err != nil {
+	if err = sf.СтрОбновить(lstMine); err != nil {
 		// log._rintf("ERRO MineNet.makeRuda(): при обновлении lstMine, err=\n\t%v\n", err)
 		return
 	}
@@ -239,13 +259,13 @@ func (sf *Mine) makeRuda() {
 		// log._rintf("ERRO MineNet.makeRuda(): кол-во(%v) не число, err=\n\t%v\n", strNum, err)
 		return
 	}
-	sf.NumProduct().SetVal(iNum)
+	sf.КолвоСделатьСейчас().Уст(iNum)
 }
 
 // Создаёт железо
-func (sf *Mine) makeFerrum() {
+func (sf *Шахта) makeFerrum() {
 	var (
-		lstMine = sf.GetLst()
+		lstMine = sf.СписПолучить()
 		ind     int
 		strOut  string
 		strTime string
@@ -283,7 +303,7 @@ func (sf *Mine) makeFerrum() {
 			return
 		}
 	}
-	if err = sf.Update(lstMine); err != nil {
+	if err = sf.СтрОбновить(lstMine); err != nil {
 		// log._rintf("ERRO MineNet.makeFerrum(): при обновлении lstMine, err=\n\t%v\n", err)
 		return
 	}
@@ -299,13 +319,13 @@ func (sf *Mine) makeFerrum() {
 		// log._rintf("ERRO MineNet.makeFerrum(): кол-во(%v) не число, err=\n\t%v\n", strNum, err)
 		return
 	}
-	sf.NumProduct().SetVal(iNum)
+	sf.КолвоСделатьСейчас().Уст(iNum)
 }
 
 // Создаёт сталь
-func (sf *Mine) makeSteel() {
+func (sf *Шахта) makeSteel() {
 	var (
-		lstMine = sf.GetLst()
+		lstMine = sf.СписПолучить()
 		ind     int
 		strOut  string
 		strTime string
@@ -343,7 +363,7 @@ func (sf *Mine) makeSteel() {
 			return
 		}
 	}
-	if err = sf.Update(lstMine); err != nil {
+	if err = sf.СтрОбновить(lstMine); err != nil {
 		// log._rintf("ERRO MineNet.makeSteel(): при обновлении lstMine, err=\n\t%v\n", err)
 		return
 	}
@@ -359,5 +379,5 @@ func (sf *Mine) makeSteel() {
 		// log._rintf("ERRO MineNet.makeSteel(): кол-во(%v) не число, err=\n\t%v\n", strNum, err)
 		return
 	}
-	sf.NumProduct().SetVal(iNum)
+	sf.КолвоСделатьСейчас().Уст(iNum)
 }

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

@@ -16,7 +16,7 @@ type MineNet struct {
 }
 
 // NewMineNet -- возвращает новый *MineNet
-func NewMineNet(mine types.IMine) (*MineNet, error) {
+func NewMineNet(mine types.ИШахта) (*MineNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(mine, "http://wartank.ru/production/Mine")
 	if err != nil {
 		return nil, fmt.Errorf("NewMineNet(): in create *SectionNet, err=\n\t%w", err)

+ 35 - 35
server/serv_bots/warbot/angar/base/polygon/polygon.go

@@ -17,21 +17,21 @@ import (
 // Polygon -- объект полигона на базе
 type Polygon struct {
 	*section.Section
-	bot      types.IBot
-	tankStat types.ITankStat
+	bot      types.ИБот
+	tankStat types.ИТанкСтат
 	net      *polygonnet.PolygonNet
 }
 
 // NewPolygon -- возвращает новый *Polygon
-func NewPolygon(base types.IBase) (*Polygon, error) {
-	section, err := section.NewSection(base.Bot(), "Полигон", `<title>Полигон</title>`)
+func NewPolygon(base types.ИБаза) (*Polygon, error) {
+	section, err := section.NewSection(base.Бот(), "Полигон", `<title>Полигон</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewPolygon(): in create *Section, err=\n\t%w", err)
 	}
 	sf := &Polygon{
 		Section:  section,
-		bot:      base.Bot(),
-		tankStat: base.Bot().Tank().TankStat(),
+		bot:      base.Бот(),
+		tankStat: base.Бот().Танк().ТанкСтат(),
 	}
 	sf.net, err = polygonnet.NewPolygonNet(sf)
 	if err != nil {
@@ -51,11 +51,11 @@ func (sf *Polygon) run() {
 	sf.SetCountDown(2)
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.bot.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
-			mode := sf.ModeCurrent().Get()
+		case <-sf.ВремяОпрос().КаналСиг():
+			mode := sf.РежимТекущ().Получ()
 			if mode == "upgrade" {
 				continue
 			}
@@ -74,7 +74,7 @@ func (sf *Polygon) updateTime() {
 		strLastTime string
 		isFind      bool
 		isSet       bool
-		lstPolygon  = sf.GetLst()
+		lstPolygon  = sf.СписПолучить()
 	)
 	defer func() {
 		if !isSet {
@@ -106,7 +106,7 @@ func (sf *Polygon) updateTime() {
 func (sf *Polygon) checkForce() {
 	var (
 		isFind     bool
-		lstPolygon = sf.GetLst()
+		lstPolygon = sf.СписПолучить()
 		ind        = 0
 		strOut     string
 	)
@@ -124,13 +124,13 @@ func (sf *Polygon) checkForce() {
 	strOut = lstPolygon[ind]
 	switch { // Вычисляем контрольную строку
 	case strings.Contains(strOut, `>улучшение точности<`):
-		sf.tankStat.Force().SetName("fyne")
+		sf.tankStat.ПарамФорсаж().SetName("fyne")
 	case strings.Contains(strOut, `>увеличение прочности<`):
-		sf.tankStat.Force().SetName("hard")
+		sf.tankStat.ПарамФорсаж().SetName("hard")
 	case strings.Contains(strOut, `>усиление брони<`):
-		sf.tankStat.Force().SetName("armor")
+		sf.tankStat.ПарамФорсаж().SetName("armor")
 	case strings.Contains(strOut, `>усиление атаки<`):
-		sf.tankStat.Force().SetName("attack")
+		sf.tankStat.ПарамФорсаж().SetName("attack")
 	}
 	// Вычислим на сколько
 	strOut = lstPolygon[ind+1]
@@ -143,7 +143,7 @@ func (sf *Polygon) checkForce() {
 		// log._rintf("NetPolygon.checkTime(): force(%v) not number, err=\n\t%v\n", strOut, err)
 		return
 	}
-	sf.tankStat.Force().SetVal(iForce)
+	sf.tankStat.ПарамФорсаж().Уст(iForce)
 }
 
 // Выбирает самый слабый параметр и усиливает его
@@ -153,15 +153,15 @@ func (sf *Polygon) addForce() {
 		sf.SetCountDown(5)
 		return
 	}
-	lstPoligon := sf.GetLst()
+	lstPoligon := sf.СписПолучить()
 	if len(lstPoligon) == 0 {
 		return
 	}
 	stat := sf.tankStat
-	iAttack := stat.Attack().Val()
-	iArmor := stat.Armor().Val()
-	iFyne := stat.Fyne().Val()
-	iHard := stat.Hard().Val()
+	iAttack := stat.Атака().Получ()
+	iArmor := stat.Броня().Получ()
+	iFyne := stat.Точность().Получ()
+	iHard := stat.Прочность().Получ()
 
 	strParam := "attack"
 	iParam := iHard
@@ -230,9 +230,9 @@ func (sf *Polygon) addForce() {
 				// log._rintf("ERRO NetPolygon.addForce(): strForceAttack(%v) not int, err=\n\t%v\n", strForce, err)
 				return
 			}
-			sf.tankStat.Force().SetVal(iForce)
-			sf.tankStat.Force().SetName("attack")
-			sf.ModeCurrent().Set("атака")
+			sf.tankStat.ПарамФорсаж().Уст(iForce)
+			sf.tankStat.ПарамФорсаж().SetName("attack")
+			sf.РежимТекущ().Уст("атака")
 		}
 	case "armor": // Усиливаем броню
 		isFind = false
@@ -269,9 +269,9 @@ func (sf *Polygon) addForce() {
 				// log._rintf("ERRO NetPolygon.addForce(): strForceArmor(%v) not int, err=\n\t%v\n", strForce, err)
 				return
 			}
-			sf.tankStat.Force().SetVal(iForce)
-			sf.tankStat.Force().SetName("armor")
-			sf.ModeCurrent().Set("броня")
+			sf.tankStat.ПарамФорсаж().Уст(iForce)
+			sf.tankStat.ПарамФорсаж().SetName("armor")
+			sf.РежимТекущ().Уст("броня")
 		}
 	case "fyne": // Усиливаем точность
 		isFind = false
@@ -308,9 +308,9 @@ func (sf *Polygon) addForce() {
 				// log._rintf("ERRO NetPolygon.addForce(): strForceFyne(%v) not int, err=\n\t%v\n", strForce, err)
 				return
 			}
-			sf.tankStat.Force().SetVal(iForce)
-			sf.tankStat.Force().SetName("fyne")
-			sf.ModeCurrent().Set("точность")
+			sf.tankStat.ПарамФорсаж().Уст(iForce)
+			sf.tankStat.ПарамФорсаж().SetName("fyne")
+			sf.РежимТекущ().Уст("точность")
 		}
 	case "hard": // Усиливаем мощность
 		isFind = false
@@ -344,12 +344,12 @@ func (sf *Polygon) addForce() {
 				// log._rintf("ERRO NetPolygon.addForce(): strForceHard(%v) not int, err=\n\t%v\n", strForce, err)
 				return
 			}
-			sf.tankStat.Force().SetVal(iForce)
-			sf.tankStat.Force().SetName("hard")
-			sf.ModeCurrent().Set("прочность")
+			sf.tankStat.ПарамФорсаж().Уст(iForce)
+			sf.tankStat.ПарамФорсаж().SetName("hard")
+			sf.РежимТекущ().Уст("прочность")
 		}
 	default: // Неизвестно что
-		sf.ModeCurrent().Set("неизвестно")
+		sf.РежимТекущ().Уст("неизвестно")
 		// log._rintf("ERRO NetPolygon.addForce(): неизвестно что это, strParam=%q", strParam)
 		return
 	}

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

@@ -17,7 +17,7 @@ type PolygonNet struct {
 }
 
 // NewPolygonNet -- возвращает новый *PolygonNet
-func NewPolygonNet(polygon types.IPolygon) (*PolygonNet, error) {
+func NewPolygonNet(polygon types.ИПолигон) (*PolygonNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(polygon, "http://wartank.ru/polygon")
 	if err != nil {
 		return nil, fmt.Errorf("NewPolygonNet(): in create *SectionNet, err=\n\t%w", err)

+ 7 - 7
server/serv_bots/warbot/angar/batmas/batmas.go

@@ -19,12 +19,12 @@ import (
 // BatMas -- объект битвы мастеров
 type BatMas struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *batmasnet.BatMasNet
 }
 
 // NetBatMas -- возвращает новый *BatMas
-func NewBatMas(bot types.IBot) (*BatMas, error) {
+func NewBatMas(bot types.ИБот) (*BatMas, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewBatMas(): IBot == nil")
 	}
@@ -54,10 +54,10 @@ func (sf *BatMas) Run() error {
 	go func() {
 		for {
 			select {
-			case <-sf.bot.Ctx().Done():
-				sf.CountDown().Stop()
+			case <-sf.bot.Кнт().Done():
+				sf.ВремяОпрос().Стоп()
 				return
-			case <-sf.CountDown().ChanSig():
+			case <-sf.ВремяОпрос().КаналСиг():
 				if !sf.goBatMas() { // Проверка на начало сражения
 					continue
 				}
@@ -75,7 +75,7 @@ func (sf *BatMas) goBatMas() bool {
 	if !sf.upBattle() {
 		return false
 	}
-	countTime := sf.CountDown().Get()
+	countTime := sf.ВремяОпрос().Получ()
 	countTime -= 5
 	if countTime > 25 {
 		if err := sf.SetCountDown(countTime); err != nil {
@@ -101,7 +101,7 @@ func (sf *BatMas) goBatMas() bool {
 func (sf *BatMas) findTimeCount() {
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 	)
 	// Обновление через: 12:02:22

+ 2 - 2
server/serv_bots/warbot/angar/batmas/batmasnet/batmasnet.go

@@ -14,11 +14,11 @@ import (
 // BatMasNet -- танкует в битве мастеров
 type BatMasNet struct {
 	*sectionnet.SectionNet
-	bot types.IBot
+	bot types.ИБот
 }
 
 // NewBatMasNet -- возвращает новый *BatMasNet
-func NewBatMasNet(bot types.IBot) (*BatMasNet, error) {
+func NewBatMasNet(bot types.ИБот) (*BatMasNet, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewBatMasNet(): IServBot == nil")
 	}

+ 8 - 8
server/serv_bots/warbot/angar/battle/battle.go

@@ -16,7 +16,7 @@ import (
 // Battle -- объект сражения
 type Battle struct {
 	*section.Section
-	bot  types.IBot
+	bot  types.ИБот
 	conn *http.Client
 
 	battleRegister *battle_register.BattleRegister // Регистратор на сражение
@@ -26,7 +26,7 @@ type Battle struct {
 }
 
 // NewBattle -- возвращает новый *Battle
-func NewBattle(bot types.IBot) (*Battle, error) {
+func NewBattle(bot types.ИБот) (*Battle, error) {
 	section, err := section.NewSection(bot, "Группа сражения", `<span>до начала `)
 	if err != nil {
 		return nil, fmt.Errorf("NewBattle(): in create *Section, err=\n\t%w", err)
@@ -35,7 +35,7 @@ func NewBattle(bot types.IBot) (*Battle, error) {
 	sf := &Battle{
 		Section: section,
 		bot:     bot,
-		conn:    bot.BotNet().Conn(),
+		conn:    bot.Сеть().Коннект(),
 	}
 	{
 		sf.battleRegister, err = battle_register.NewBattleRegister(bot)
@@ -65,21 +65,21 @@ func (sf *Battle) run() {
 	// sf.CountDown().SetInt(2)
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
+		case <-sf.bot.Кнт().Done():
 			return
 		default:
 			sf.battleRegister.Register()
 			sf.battleWaiter.Wait()
 			sf.battleWorker.Work()
-			for len(sf.CountDown().ChanSig()) > 0 {
-				<-sf.CountDown().ChanSig()
+			for len(sf.ВремяОпрос().КаналСиг()) > 0 {
+				<-sf.ВремяОпрос().КаналСиг()
 			}
 			time.Sleep(time.Second * 2) // Пауза между циклами, чтобы сервер не долбить запросами
 		}
 	}
 }
 
-// Alarm -- возвращает признак начала сражения (для браузера)
-func (sf *Battle) Alarm() types.IStatParam {
+// ЕслиНачало -- возвращает признак начала сражения (для браузера)
+func (sf *Battle) ЕслиНачало() types.ИСтатПарам {
 	return sf.battleWorker.Alarm()
 }

+ 4 - 4
server/serv_bots/warbot/angar/battle/battle_register/battle_register.go

@@ -14,12 +14,12 @@ import (
 // BattleRegister -- регистрирует танк к началу атаки
 type BattleRegister struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *sectionnet.SectionNet
 }
 
 // NewBattleRegister -- возвращает новый ожидатель битвы
-func NewBattleRegister(bot types.IBot) (*BattleRegister, error) {
+func NewBattleRegister(bot types.ИБот) (*BattleRegister, error) {
 	section, err := section.NewSection(bot, "Сражение", `<title>Сражения</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewBattleRegister(): in create ISection, err=\n\t%w", err)
@@ -42,7 +42,7 @@ func (sf *BattleRegister) Register() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 	)
 	for _, strOut = range lstBattle {
@@ -68,7 +68,7 @@ func (sf *BattleRegister) Register() {
 		// log._rintf("ERRO BattleRegister.Register(): при выполнении GET-команды на подъём в атаку, err=\n\t%v\n", err)
 		return
 	}
-	if err = sf.Update(lstBattle); err != nil {
+	if err = sf.СтрОбновить(lstBattle); err != nil {
 		log.Printf("BattleRegister.Register(): при обновлении lstBattle, err=\n\t%v\n", err)
 	}
 	// log._rintf("INFO BattleRegister.Register(): регистрация прошла успешно\n")

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

@@ -15,12 +15,12 @@ import (
 // BattleWait -- ожидатель начала битвы
 type BattleWait struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *sectionnet.SectionNet
 }
 
 // NewBattleWait -- возвращает новый ожидатель битвы
-func NewBattleWait(bot types.IBot) (*BattleWait, error) {
+func NewBattleWait(bot types.ИБот) (*BattleWait, error) {
 	section, err := section.NewSection(bot, "Ожидание сражения", `<title>Сражения</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewBattleWait(): in create ISection, err=\n\t%w", err)
@@ -44,7 +44,7 @@ func (sf *BattleWait) Wait() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 	)
 	for _, strOut = range lstBattle {
@@ -73,14 +73,14 @@ func (sf *BattleWait) Wait() {
 	}
 	// Зайти в цикложидания сражения
 	for {
-		countTime := sf.CountDown().Get()
+		countTime := sf.ВремяОпрос().Получ()
 		if countTime > 0 {
 			time.Sleep(time.Millisecond * 500)
 			// log.Printf("BattleWait.Wait(): countTime=%v\n", sf.CountDown().String())
 			continue
 		}
-		for len(sf.CountDown().ChanSig()) > 0 {
-			<-sf.CountDown().ChanSig()
+		for len(sf.ВремяОпрос().КаналСиг()) > 0 {
+			<-sf.ВремяОпрос().КаналСиг()
 		}
 		return
 	}

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

@@ -16,10 +16,10 @@ import (
 // BattleWorker -- исполнение битвы
 type BattleWorker struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *sectionnet.SectionNet
 
-	alarm types.IStatParam
+	alarm types.ИСтатПарам
 
 	// Непосредственное сражение
 	baton *battleon.BattleOn
@@ -28,7 +28,7 @@ type BattleWorker struct {
 }
 
 // NewBattleWorker -- возвращает новый исполнитель битвы
-func NewBattleWorker(bot types.IBot) (*BattleWorker, error) {
+func NewBattleWorker(bot types.ИБот) (*BattleWorker, error) {
 	section, err := section.NewSection(bot, "Ход сражения", `<title>Сражения</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewBattleWorker(): in create *Section, err=\n\t%w", err)
@@ -36,7 +36,7 @@ func NewBattleWorker(bot types.IBot) (*BattleWorker, error) {
 	sf := &BattleWorker{
 		Section: section,
 		bot:     bot,
-		alarm:   static_param.NewStaticParam("alarm"),
+		alarm:   static_param.НовСтатПарам("alarm"),
 		sound:   battlesound.NewBattleSound(),
 	}
 	sf.net, err = sectionnet.NewSectionNet(sf, "http://wartank.ru/pve")
@@ -53,18 +53,18 @@ func (sf *BattleWorker) Work() {
 	if err != nil {
 		return
 	}
-	sf.alarm.SetVal(1)
+	sf.alarm.Уст(1)
 	sf.sound.Play()
 	time.Sleep(time.Second * 10) // Задержка для звука на странице
-	sf.alarm.SetVal(0)
+	sf.alarm.Уст(0)
 	// Ожидание завершения
-	<-sf.baton.Ctx().Done()
+	<-sf.baton.Кнт().Done()
 	sf.baton = nil
 	sf.SetCountDown(2)
 	// log._rintf("Battle.runBaton(): сражение завершено\n")
 }
 
 // Alarm -- возвращает признак начала сражения (для браузера)
-func (sf *BattleWorker) Alarm() types.IStatParam {
+func (sf *BattleWorker) Alarm() types.ИСтатПарам {
 	return sf.alarm
 }

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

@@ -23,7 +23,7 @@ import (
 type BattleOn struct {
 	*section.Section
 	net            *sectionnet.SectionNet
-	bot            types.IBot
+	bot            types.ИБот
 	ctxBattle      context.Context // Контекст сражения
 	fnCancelBattle func()          // Функция отмены сражения
 
@@ -36,19 +36,19 @@ type BattleOn struct {
 }
 
 // NewBattleOn -- возвращает новый *BattleOn
-func NewBattleOn(bot types.IBot) (*BattleOn, error) {
+func NewBattleOn(bot types.ИБот) (*BattleOn, error) {
 	section, err := section.NewSection(bot, "Исполнитель сражения", `<title>Сражения</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewBattleOn(): in create ISection, err=\n\t%w", err)
 	}
 
-	ctxBattle, fnCancelBattle := context.WithTimeout(bot.Server().CtxApp(), time.Second*305)
+	ctxBattle, fnCancelBattle := context.WithTimeout(bot.Сервер().CtxApp(), time.Second*305)
 	sf := &BattleOn{
 		Section:        section,
 		bot:            bot,
 		ctxBattle:      ctxBattle,
 		fnCancelBattle: fnCancelBattle,
-		login:          bot.Name(),
+		login:          bot.Имя(),
 		isShot:         isshot.NewIsShot(),
 		chTick:         make(chan int, 2),
 	}
@@ -68,7 +68,7 @@ func (sf *BattleOn) makeTick() {
 	}()
 	for {
 		select {
-		case <-sf.bot.Ctx().Done(): // Отмена контекста приложения
+		case <-sf.bot.Кнт().Done(): // Отмена контекста приложения
 			sf.fnCancelBattle()
 			return
 		case <-sf.ctxBattle.Done(): // Битва закончилась
@@ -109,9 +109,9 @@ func (sf *BattleOn) run() {
 	}
 	for { // Рабочий цикл сражения
 		select {
-		case <-sf.bot.Ctx().Done(): // Прерывание работы от бота
+		case <-sf.bot.Кнт().Done(): // Прерывание работы от бота
 			return
-		case <-sf.CountDown().ChanSig(): // Вышло время (сигнал от секции)
+		case <-sf.ВремяОпрос().КаналСиг(): // Вышло время (сигнал от секции)
 			return
 		case <-sf.ctxBattle.Done():
 			return
@@ -121,8 +121,8 @@ func (sf *BattleOn) run() {
 	}
 }
 
-// Net -- возвращает сетевой компонент секции
-func (sf *BattleOn) Net() types.ISectionNet {
+// Сеть -- возвращает сетевой компонент секции
+func (sf *BattleOn) Сеть() types.ISectionNet {
 	return sf.net
 }
 
@@ -139,7 +139,7 @@ func (sf *BattleOn) checkEnd() {
 		fnPrintEnd()
 		return
 	}
-	lstBattleOn := sf.GetLst()
+	lstBattleOn := sf.СписПолучить()
 	for _, strOut := range lstBattleOn { // Сражение ещё идёт
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {
 			return
@@ -149,24 +149,24 @@ func (sf *BattleOn) checkEnd() {
 	fnPrintEnd()
 }
 
-func (sf *BattleOn) SetNeedManevr() {
+func (sf *BattleOn) МанёврНадоУст() {
 	if sf.manevr == nil {
 		return
 	}
 	sf.manevr.SetNeed()
 }
 
-// Masking -- признак запрета стрельбы при слабом здоровье
-func (sf *BattleOn) Masking() *isshot.IsShot {
+// ВыстрелБлок -- признак запрета стрельбы при слабом здоровье
+func (sf *BattleOn) ВыстрелБлок() *isshot.IsShot {
 	return sf.isShot
 }
 
-// Ctx -- возвращает контекст отмены сражения
-func (sf *BattleOn) Ctx() context.Context {
+// Кнт -- возвращает контекст отмены сражения
+func (sf *BattleOn) Кнт() context.Context {
 	return sf.ctxBattle
 }
 
-// CancelBattle - -вызов функции отмены контекста сражения
-func (sf *BattleOn) CancelBattle() {
+// Отменить -- вызов функции отмены контекста сражения
+func (sf *BattleOn) Отменить() {
 	sf.fnCancelBattle()
 }

+ 25 - 25
server/serv_bots/warbot/angar/battle/battle_worker/battleon/health/health.go

@@ -21,7 +21,7 @@ import (
 
 // Health -- контроль здоровья танка
 type Health struct {
-	types.IBattleOn
+	types.ИСражеиеДействие
 	temp       *healthtime.HealthTime // Изменяемое здоровье танка
 	full       *healthtime.HealthTime // Полное здоровье танка
 	isRepair   *isrepair.IsRepair     // Необходимость восстановления
@@ -32,7 +32,7 @@ type Health struct {
 }
 
 // NewHealth -- возвращает новый *Health
-func NewHealth(battle types.IBattleOn, login string) (*Health, error) {
+func NewHealth(battle types.ИСражеиеДействие, login string) (*Health, error) {
 	{ // Предусловия
 		if battle == nil {
 			return nil, fmt.Errorf("NewHealth(): battle is nil")
@@ -42,13 +42,13 @@ func NewHealth(battle types.IBattleOn, login string) (*Health, error) {
 		}
 	}
 	sf := &Health{
-		IBattleOn:  battle,
-		temp:       healthtime.NewHealthTime(),
-		full:       healthtime.NewHealthTime(),
-		isRepair:   isrepair.NewIsRepair(),
-		repairTime: repairtime.NewRepairTime(),
-		login:      login,
-		chTick:     make(chan int, 2),
+		ИСражеиеДействие: battle,
+		temp:             healthtime.NewHealthTime(),
+		full:             healthtime.NewHealthTime(),
+		isRepair:         isrepair.NewIsRepair(),
+		repairTime:       repairtime.NewRepairTime(),
+		login:            login,
+		chTick:           make(chan int, 2),
 	}
 	go sf.makeTik()
 	go sf.run()
@@ -59,13 +59,13 @@ func NewHealth(battle types.IBattleOn, login string) (*Health, error) {
 func (sf *Health) makeTik() {
 	defer func() {
 		close(sf.chTick)
-		sf.CancelBattle()
+		sf.Отменить()
 		// log._rintf("Health.makeTick(): сражение завершёно\n")
 	}()
 	countLow := 0
 	for {
 		select {
-		case <-sf.Ctx().Done():
+		case <-sf.Кнт().Done():
 			return
 		default:
 			if sf.IsDeath() {
@@ -94,7 +94,7 @@ func (sf *Health) run() {
 			log.Printf("Health.run(): при попытке найти здоровье, err=\n\t%v\n", err)
 		}
 		sf.findRepairTime()
-		if sf.Masking().Get() {
+		if sf.ВыстрелБлок().Get() {
 			if !sf.isRepair.Get() {
 				continue
 			}
@@ -110,7 +110,7 @@ func (sf *Health) Full() int {
 
 // IsDeath -- возвращает признак мертвичины танка
 func (sf *Health) IsDeath() bool {
-	lstBattle := sf.GetLst()
+	lstBattle := sf.СписПолучить()
 	for _, strOut := range lstBattle {
 		if strings.Contains(strOut, `>Ваш танк подбит.`) {
 			// log._rintf("INFO Health.repair(): танк подбит\n")
@@ -137,7 +137,7 @@ func (sf *Health) findRepairTime() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 		ind       int
 	)
@@ -177,7 +177,7 @@ func (sf *Health) findRepairTime() {
 func (sf *Health) repair() {
 	var (
 		strOut       string
-		lstBattleOn  = sf.GetLst()
+		lstBattleOn  = sf.СписПолучить()
 		isFindRepair bool
 		ind          int
 	)
@@ -199,13 +199,13 @@ func (sf *Health) repair() {
 	strLink := lstLink[1]
 	lstLink = strings.Split(strLink, `" class="simple-but blue"><span><span>Ремкомплект</span></span></a>`)
 	strLink = "http://wartank.ru/" + lstLink[0]
-	lstBattleOn, err := sf.Net().Get(strLink)
+	lstBattleOn, err := sf.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Health.repair(): при выполнении GET-команды ремонта, err=\n\t%v\n", err)
 		time.Sleep(time.Second * 1)
 		return
 	}
-	if err = sf.Update(lstBattleOn); err != nil {
+	if err = sf.СтрОбновить(lstBattleOn); err != nil {
 		// log._rintf("ERRO Health.repair(): при обновлении lstBattle, err=\n\t%v\n", err)
 		time.Sleep(time.Second * 1)
 		return
@@ -221,10 +221,10 @@ func (sf *Health) findHealth() error {
 		ind       int
 		strOut    string
 		isFind    bool
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 	)
 	if len(lstBattle) == 0 { // Принудительно обновим сражение
-		if err := sf.Net().UpdateLst(); err != nil {
+		if err := sf.Сеть().UpdateLst(); err != nil {
 			time.Sleep(time.Second * 1)
 			return fmt.Errorf("Health.findHealth(): пустой lsBattleOn, err=\n\t%w", err)
 		}
@@ -268,7 +268,7 @@ func (sf *Health) setHealth(val int) {
 		sf.full.Set(val)
 		sf.temp.Set(val)
 		sf.deltaOld = 0
-		sf.Masking().Reset()
+		sf.ВыстрелБлок().Reset()
 		sf.isRepair.Reset()
 		return
 	}
@@ -285,20 +285,20 @@ func (sf *Health) setHealth(val int) {
 	switch {
 	case val == 0:
 		sf.temp.Set(0)
-		sf.CancelBattle()
+		sf.Отменить()
 		return
 	case val <= 500: // Запретить стрельбу
-		sf.Masking().Set() // Установить запрет стрельбы пока слабое здоровье
+		sf.ВыстрелБлок().Set() // Установить запрет стрельбы пока слабое здоровье
 		sf.isRepair.Set()
 		// log._rintf("WARN Health.setHealth(): низкий уровень здоровья(%v)\n", val)
-		sf.SetNeedManevr()
+		sf.МанёврНадоУст()
 	case val > 500: // Разрешить стрельбы
-		sf.Masking().Reset()
+		sf.ВыстрелБлок().Reset()
 		sf.isRepair.Reset()
 		if delta > sf.full.Get()*4/10 { // Проверить на критичность падения здоровья на 40%
 			// log._rintf("WARN Health.setHealth(): большая разовая потеря здоровья(%v)\n", delta)
 			sf.isRepair.Set()
-			sf.SetNeedManevr()
+			sf.МанёврНадоУст()
 			return
 		}
 	}

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

@@ -21,24 +21,24 @@ import (
 
 // Manevr -- маневрирует после выстрела
 type Manevr struct {
-	types.IBattleOn                        // FIXME:
-	isNeedManevr    *ismanevr.IsManevr     // Требование выполнить манёвр
-	manevrTime      *repairtime.RepairTime // Время до востановления манёвра
-	chTick          chan int               // Тики для поиска маневра
+	types.ИСражеиеДействие                        // FIXME:
+	isNeedManevr           *ismanevr.IsManevr     // Требование выполнить манёвр
+	manevrTime             *repairtime.RepairTime // Время до востановления манёвра
+	chTick                 chan int               // Тики для поиска маневра
 }
 
 // NewManevr -- возвращает новый *Manevr
-func NewManevr(battle types.IBattleOn) (*Manevr, error) {
+func NewManevr(battle types.ИСражеиеДействие) (*Manevr, error) {
 	{ // Предусловия
 		if battle == nil {
 			return nil, fmt.Errorf("NewManevr(): battle is nil")
 		}
 	}
 	sf := &Manevr{
-		IBattleOn:    battle,
-		isNeedManevr: ismanevr.NewIsManevr(),
-		manevrTime:   repairtime.NewRepairTime(),
-		chTick:       make(chan int, 1),
+		ИСражеиеДействие: battle,
+		isNeedManevr:     ismanevr.NewIsManevr(),
+		manevrTime:       repairtime.NewRepairTime(),
+		chTick:           make(chan int, 1),
 	}
 	_ = sf.manevrTime.Set("0") // При запуске боя есть возможность маневрировать
 	go sf.makeTick()
@@ -54,7 +54,7 @@ func (sf *Manevr) makeTick() {
 	}()
 	for {
 		select {
-		case <-sf.Ctx().Done():
+		case <-sf.Кнт().Done():
 			return
 		default:
 			if sf.manevrTime.Get() <= 0 {
@@ -82,7 +82,7 @@ func (sf *Manevr) findManevrTime() {
 	var (
 		isFind      bool
 		ind         int
-		lstBattleOn = sf.GetLst()
+		lstBattleOn = sf.СписПолучить()
 		strOut      string
 	)
 	for ind, strOut = range lstBattleOn {
@@ -129,7 +129,7 @@ func (sf *Manevr) findManevrTime() {
 func (sf *Manevr) manevr() {
 	var (
 		isFind      = false
-		lstBattleOn = sf.GetLst()
+		lstBattleOn = sf.СписПолучить()
 		strOut      = ""
 	)
 	for _, strOut = range lstBattleOn {
@@ -148,13 +148,13 @@ func (sf *Manevr) manevr() {
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `" class="simple-but blue"><span><span>Маневр</span></span></a>`)
 		strLink = "http://wartank.ru/" + lstLink[0]
-		lstBattleOn, err := sf.Net().Get(strLink)
+		lstBattleOn, err := sf.Сеть().Get(strLink)
 		if err != nil {
 			logrus.WithError(err).Error("Manevr.Manevr(): при выполнении GET-команды маневра")
 			time.Sleep(time.Second * 1)
 			return
 		}
-		if err = sf.Update(lstBattleOn); err != nil {
+		if err = sf.СтрОбновить(lstBattleOn); err != nil {
 			logrus.WithError(err).Error("Manevr.Manevr(): при обновлении lstBattle")
 			time.Sleep(time.Second * 1)
 			return

+ 20 - 20
server/serv_bots/warbot/angar/battle/battle_worker/battleon/shot/shot.go

@@ -26,16 +26,16 @@ import (
 
 // Shot -- объект выстрела
 type Shot struct {
-	types.IBattleOn                    // FIXME!!!
-	recharge        *shottime.ShotTime // Сколько времени нужно для полной перезарядки
-	damage          *damage.Damage     // Урон от выстрела с памятью
-	damageSum       alias.ADamage      // Суммарный урон
-	login           string             // Логин для поиска контрольных строк
-	chTick          chan int           // Тик для выстрела
+	types.ИСражеиеДействие                    // FIXME!!!
+	recharge               *shottime.ShotTime // Сколько времени нужно для полной перезарядки
+	damage                 *damage.Damage     // Урон от выстрела с памятью
+	damageSum              alias.ADamage      // Суммарный урон
+	login                  string             // Логин для поиска контрольных строк
+	chTick                 chan int           // Тик для выстрела
 }
 
 // NewShot -- возвращает новый *Shot
-func NewShot(battle types.IBattleOn, login string) (*Shot, error) {
+func NewShot(battle types.ИСражеиеДействие, login string) (*Shot, error) {
 	{ // Предусловия
 		if battle == nil {
 			return nil, fmt.Errorf("NewShot(): battle is nil")
@@ -45,11 +45,11 @@ func NewShot(battle types.IBattleOn, login string) (*Shot, error) {
 		}
 	}
 	sf := &Shot{
-		IBattleOn: battle,
-		recharge:  shottime.NewShotTime(),
-		damage:    damage.NewDamage(),
-		login:     login,
-		chTick:    make(chan int, 2),
+		ИСражеиеДействие: battle,
+		recharge:         shottime.NewShotTime(),
+		damage:           damage.NewDamage(),
+		login:            login,
+		chTick:           make(chan int, 2),
 	}
 	// Установить время перезарядки
 	sf.recharge.Set(6800)
@@ -66,7 +66,7 @@ func (sf *Shot) makeTick() {
 	}()
 	for {
 		select {
-		case <-sf.Ctx().Done():
+		case <-sf.Кнт().Done():
 			return
 		default:
 			sf.chTick <- 1 // Первый выстрел, потом спать по таймингу
@@ -81,7 +81,7 @@ func (sf *Shot) makeTick() {
 // Цикл выстрела (в отдельном потоке)
 func (sf *Shot) run() {
 	for range sf.chTick {
-		if sf.Masking().Get() { // Стрелять нельзя
+		if sf.ВыстрелБлок().Get() { // Стрелять нельзя
 			continue
 		}
 		// Стрелять можно, стандартное ожидание
@@ -94,7 +94,7 @@ func (sf *Shot) run() {
 //
 //	Вызывается из отдельного потока
 func (sf *Shot) shot() {
-	if err := sf.Net().UpdateLst(); err != nil { // Проверка на непосредственно битву
+	if err := sf.Сеть().UpdateLst(); err != nil { // Проверка на непосредственно битву
 		// <span>закончилась 00:00:07 назад</span>
 		// log._rintf("ERRO Shot.shot(): при обновлении lstBattleOn, err=\n\t%v\n", err)
 		time.Sleep(time.Second * 1)
@@ -102,7 +102,7 @@ func (sf *Shot) shot() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 		err       error
 	)
@@ -122,18 +122,18 @@ func (sf *Shot) shot() {
 	strLink := lstLink[1]
 	lstLink = strings.Split(strLink, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`)
 	strLink = "http://wartank.ru/" + lstLink[0]
-	lstBattle, err = sf.Net().Get(strLink)
+	lstBattle, err = sf.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Shot.shot(): при исполнении GET-команды выстрела обычным снарядом, err=\n\t%v\n", err)
 		time.Sleep(time.Second * 1)
 		return
 	}
-	if err = sf.Update(lstBattle); err != nil {
+	if err = sf.СтрОбновить(lstBattle); err != nil {
 		// log._rintf("ERRO Shot.shot(): при обновлении lstBattle, err=\n\t%v\n", err)
 		time.Sleep(time.Second * 1)
 		return
 	}
-	sf.SetNeedManevr()
+	sf.МанёврНадоУст()
 	// sound.Shot()
 }
 
@@ -142,7 +142,7 @@ func (sf *Shot) findDamage() {
 	var (
 		ind     = 0
 		isFind  = false
-		lstShot = sf.GetLst()
+		lstShot = sf.СписПолучить()
 		strOut  string
 	)
 

+ 1 - 1
server/serv_bots/warbot/angar/battle/battlenet/battlenet.go

@@ -16,7 +16,7 @@ type BattleNet struct {
 }
 
 // NewBattleNet -- возвращает новый *BattleNet
-func NewBattleNet(battle types.IBattle) (*BattleNet, error) {
+func NewBattleNet(battle types.ИСражениеСцена) (*BattleNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(battle, "http://wartank.ru/pve")
 	if err != nil {
 		return nil, fmt.Errorf("NewBattleNet(): in create *SectionNet, err=\n\t%w", err)

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

@@ -23,13 +23,13 @@ import (
 type Convoy struct {
 	*section.Section
 	net      *convoynet.ConvoyNet
-	bot      types.IBot
-	glory    types.IStatParam // Количество славы
+	bot      types.ИБот
+	glory    types.ИСтатПарам // Количество славы
 	chAttack chan int         // Канал проведения атаки
 }
 
 // NewConvoy -- возвращает новый *Convoy
-func NewConvoy(bot types.IBot) (*Convoy, error) {
+func NewConvoy(bot types.ИБот) (*Convoy, error) {
 	section, err := section.NewSection(bot, "Конвой", `<title>Конвой</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewConvoy(): in create ISection, err=\n\t%w", err)
@@ -37,7 +37,7 @@ func NewConvoy(bot types.IBot) (*Convoy, error) {
 	sf := &Convoy{
 		Section:  section,
 		bot:      bot,
-		glory:    static_param.NewStaticParam("glory"),
+		glory:    static_param.НовСтатПарам("glory"),
 		chAttack: make(chan int, 5),
 	}
 	sf.net, err = convoynet.NewConvoyNet(sf)
@@ -61,8 +61,8 @@ func (sf *Convoy) UpdateLst() {
 	}
 }
 
-// Glory --возвращает счётчик славы конвоя
-func (sf *Convoy) Glory() types.IStatParam {
+// Слава --возвращает счётчик славы конвоя
+func (sf *Convoy) Слава() types.ИСтатПарам {
 	return sf.glory
 }
 
@@ -73,12 +73,12 @@ func (sf *Convoy) reservTick() {
 	}()
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
+		case <-sf.bot.Кнт().Done():
 			return
 		default:
-			ct0 := sf.CountDown().Get()
+			ct0 := sf.ВремяОпрос().Получ()
 			time.Sleep(time.Second * 60)
-			ct1 := sf.CountDown().Get()
+			ct1 := sf.ВремяОпрос().Получ()
 			if ct1 != ct0 {
 				continue
 			}
@@ -92,10 +92,10 @@ func (sf *Convoy) run() {
 	sf.chAttack <- 1
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.bot.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig(): // Время истекло
+		case <-sf.ВремяОпрос().КаналСиг(): // Время истекло
 			sf.updateTime()
 			sf.updateGlory()
 		case <-sf.chAttack: // Сигнал к атаке
@@ -110,7 +110,7 @@ func (sf *Convoy) run() {
 // Обновляет славу потребованию
 func (sf *Convoy) updateGlory() {
 	// Найти строку с упоминанием оставшегося времени конвоя
-	lstConvoy := sf.GetLst()
+	lstConvoy := sf.СписПолучить()
 	var (
 		strGlory string
 		isFind   bool
@@ -133,7 +133,7 @@ func (sf *Convoy) updateGlory() {
 		// log._rintf("ERRO ConvoyNet.updateGlory(): слава(%v) не число, err=\n\t%v\n", strGlory, err)
 		return
 	}
-	sf.glory.SetVal(iGlory)
+	sf.glory.Уст(iGlory)
 }
 
 // Обновляет оставшееся время конвоя
@@ -145,7 +145,7 @@ func (sf *Convoy) updateTime() {
 		return
 	}
 	// Найти строку с упоминанием оставшегося времени конвоя
-	lstConvoy := sf.GetLst()
+	lstConvoy := sf.СписПолучить()
 	var (
 		strLastTime string
 		isFind      bool
@@ -202,7 +202,7 @@ func (sf *Convoy) attackConvoy() {
 	// Найти контрольную строку
 	var (
 		strOut    = ""
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 		isFind    bool
 	)
 
@@ -251,7 +251,7 @@ func (sf *Convoy) attackConvoy() {
 		// log._rintf("ERRO ConvoyNet.attackConvoy(): при выполнении GET-команды 'В атаку!', err=\n\t%v\n", err)
 		return
 	}
-	if err = sf.Update(lstConvoy); err != nil {
+	if err = sf.СтрОбновить(lstConvoy); err != nil {
 		for _, strOut = range lstConvoy {
 			if strings.Contains(strOut, `<title>Ошибка на сервере. Сообщение админу уже отправлено.</title>`) {
 				// log._rintf("ERRO ConvoyNet.attackConvoy(): при обновлении lstConvoy, strOut=\n\t%v\n", strOut)
@@ -278,7 +278,7 @@ func (sf *Convoy) attackConvoy() {
 func (sf *Convoy) attack() (isNext bool) {
 	// Вырезать ссылку на атаку
 	strOut := ""
-	lstConvoy := sf.GetLst()
+	lstConvoy := sf.СписПолучить()
 	// <a href="convoy?13-2.ILinkListener-root-fightView-attackRegular" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>
 	for _, strAttack := range lstConvoy {
 		if strings.Contains(strAttack, `>ОБЫЧНЫЕ<`) {
@@ -308,7 +308,7 @@ func (sf *Convoy) attack() (isNext bool) {
 			logrus.WithError(err).Error("ConvoyNet.attack(): in get page find attack")
 			return false
 		}
-		if err = sf.Update(lstConvoy); err != nil {
+		if err = sf.СтрОбновить(lstConvoy); err != nil {
 			logrus.WithError(err).Error("Convoy.attack(): при обновлении lstConvoy")
 			return false
 		}
@@ -321,7 +321,7 @@ func (sf *Convoy) checkWarForce() {
 	var (
 		strOut    string
 		isFind    bool
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 		ind       int
 	)
 	if len(lstConvoy) == 0 {
@@ -329,7 +329,7 @@ func (sf *Convoy) checkWarForce() {
 			// log._rintf("Convoy.check6frage(): при обновлении пустого lstConvoy, err=\n\t%v\n", err)
 			return
 		}
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 	}
 	for ind, strOut = range lstConvoy {
 		if strings.Contains(strOut, `Активируй усиление &quot;Боевая сила&quot;<br/>`) {
@@ -356,7 +356,7 @@ func (sf *Convoy) checkWarForce() {
 		// log._rintf("ERRO Convoy.checkWarForce(): при выполнени команды GET, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstConvoy); err != nil {
+	if err := sf.СтрОбновить(lstConvoy); err != nil {
 		// log._rintf("ERRO Convoy.checkWarForce(): пр обновлении lstConvoy, err=\n\t%v\n", err)
 		return
 	}
@@ -368,7 +368,7 @@ func (sf *Convoy) checkMaster() {
 	var (
 		strOut    string
 		isFind    bool
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 		ind       int
 	)
 	if len(lstConvoy) == 0 {
@@ -376,7 +376,7 @@ func (sf *Convoy) checkMaster() {
 			// log._rintf("Convoy.check6frage(): при обновлении пустого lstConvoy, err=\n\t%v\n", err)
 			return
 		}
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 	}
 	for ind, strOut = range lstConvoy {
 		if strings.Contains(strOut, `Проведи разведку в конвое<br/>`) {
@@ -403,7 +403,7 @@ func (sf *Convoy) checkMaster() {
 		// log._rintf("ERRO Convoy.checkMaster(): при выполнени команды GET, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstConvoy); err != nil {
+	if err := sf.СтрОбновить(lstConvoy); err != nil {
 		// log._rintf("ERRO Convoy.checkMaster(): пр обновлении lstConvoy, err=\n\t%v\n", err)
 		return
 	}
@@ -415,7 +415,7 @@ func (sf *Convoy) check6frage() {
 	var (
 		strOut    string
 		isFind    bool
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 		ind       int
 	)
 	if len(lstConvoy) == 0 {
@@ -423,7 +423,7 @@ func (sf *Convoy) check6frage() {
 			// log._rintf("Convoy.check6frage(): при обновлении пустого lstConvoy, err=\n\t%v\n", err)
 			return
 		}
-		lstConvoy = sf.GetLst()
+		lstConvoy = sf.СписПолучить()
 	}
 	for ind, strOut = range lstConvoy {
 		if strings.Contains(strOut, `Уничтожь 6 врагов в конвое<br/>`) {
@@ -450,7 +450,7 @@ func (sf *Convoy) check6frage() {
 		// log._rintf("ERRO Convoy.check6frage(): при выполнени команды GET, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstConvoy); err != nil {
+	if err := sf.СтрОбновить(lstConvoy); err != nil {
 		// log._rintf("ERRO Convoy.check6frage(): пр обновлении lstConvoy, err=\n\t%v\n", err)
 		return
 	}

+ 1 - 1
server/serv_bots/warbot/angar/convoy/convoynet/convoynet.go

@@ -16,7 +16,7 @@ type ConvoyNet struct {
 }
 
 // NewConvoyNet -- возвращает новый *ConvoyNet
-func NewConvoyNet(convoy types.IConvoy) (*ConvoyNet, error) {
+func NewConvoyNet(convoy types.Конвой) (*ConvoyNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(convoy, "http://wartank.ru/convoy")
 	if err != nil {
 		return nil, fmt.Errorf("NewConvoyNet(): in create *SectionNet, err=\n\t%w", err)

+ 19 - 19
server/serv_bots/warbot/angar/division/divwar/divwar.go

@@ -23,8 +23,8 @@ import (
 // DivWar -- объект ожидания битвы дивизий
 type DivWar struct {
 	*section.Section
-	bot   types.IBot
-	alarm types.IStatParam
+	bot   types.ИБот
+	alarm types.ИСтатПарам
 	net   *divwarnet.DivWarNet
 	conn  *http.Client
 
@@ -39,17 +39,17 @@ type DivWar struct {
 }
 
 // NewDivWar -- возвращает новый *DivWar
-func NewDivWar(bot types.IBot) (*DivWar, error) {
+func NewDivWar(bot types.ИБот) (*DivWar, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewDivWar(): IBot == nil")
 	}
 
 	sf := &DivWar{
 		bot:      bot,
-		alarm:    static_param.NewStaticParam("alarm"),
+		alarm:    static_param.НовСтатПарам("alarm"),
 		chDivWar: make(chan int, 1),
 		sound:    divwarsound.NewDivWarSound(),
-		conn:     bot.BotNet().Conn(),
+		conn:     bot.Сеть().Коннект(),
 		login:    "prospero tank",
 	}
 	// sf.shotTimeFull.Set(8000) // 8000 msec
@@ -72,15 +72,15 @@ func NewDivWar(bot types.IBot) (*DivWar, error) {
 }
 
 func (sf *DivWar) reservTick() {
-	defer sf.CountDown().Stop()
+	defer sf.ВремяОпрос().Стоп()
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
+		case <-sf.bot.Кнт().Done():
 			return
 		default:
-			ct0 := sf.CountDown().Get()
+			ct0 := sf.ВремяОпрос().Получ()
 			time.Sleep(time.Second * 7)
-			ct1 := sf.CountDown().Get()
+			ct1 := sf.ВремяОпрос().Получ()
 			if ct1 != ct0 {
 				continue
 			}
@@ -97,10 +97,10 @@ func (sf *DivWar) run() {
 	sf.chDivWar <- 1
 	for {
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.bot.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig(): // Время обновить данные по сражению
+		case <-sf.ВремяОпрос().КаналСиг(): // Время обновить данные по сражению
 			sf.findTimeCount()
 			sf.upDivWar()
 		case <-sf.chDivWar: // Сигнал к началу сражения
@@ -108,11 +108,11 @@ func (sf *DivWar) run() {
 			if sf.divon != nil {
 				continue
 			}
-			sf.alarm.SetVal(1)
+			sf.alarm.Уст(1)
 			sf.sound.Play()
 			go sf.DivWar()               // Запустить цикл непосредственного сражения
 			time.Sleep(time.Second * 10) // Задержка для звука на странице
-			sf.alarm.SetVal(0)
+			sf.alarm.Уст(0)
 		}
 	}
 }
@@ -125,7 +125,7 @@ func (sf *DivWar) findTimeCount() {
 	}
 	var (
 		strOut    string
-		lstDivWar = sf.GetLst()
+		lstDivWar = sf.СписПолучить()
 		isFind    bool
 		ind       int
 	)
@@ -159,7 +159,7 @@ func (sf *DivWar) findTimeCount() {
 func (sf *DivWar) upDivWar() {
 	var (
 		strOut    string
-		lstDivWar = sf.GetLst()
+		lstDivWar = sf.СписПолучить()
 		isFind    bool
 	)
 	for _, strOut = range lstDivWar {
@@ -185,7 +185,7 @@ func (sf *DivWar) upDivWar() {
 		// log._rintf("ERRO DivWar.upDivWar(): при выполнении GET-команды на подъём в атаку, err=\n\t%v\n", err)
 		return
 	}
-	if err = sf.Update(lstDivWar); err != nil {
+	if err = sf.СтрОбновить(lstDivWar); err != nil {
 		// log._rintf("ERRO DivWar.upDivWar(): при обновлении lstDivWar, err=\n\t%v\n", err)
 	}
 	// log._rintf("INFO DivWar.upDivWar(): регистрация прошла успешно\n")
@@ -209,13 +209,13 @@ func (sf *DivWar) DivWar() {
 		return
 	}
 	// Цикл ожидания окончания сражения
-	for !sf.divon.IsEnd().Get() {
+	for !sf.divon.ЕслиКонец().Get() {
 		time.Sleep(time.Second * 1)
 	}
 
 }
 
 // Alarm -- возвращает признак начала сражения (для браузера)
-func (sf *DivWar) Alarm() types.IStatParam {
+func (sf *DivWar) Alarm() types.ИСтатПарам {
 	return sf.alarm
 }

+ 2 - 2
server/serv_bots/warbot/angar/division/divwar/divwarnet/divwarnet.go

@@ -14,11 +14,11 @@ import (
 // DivWarNet -- танкует в сражении
 type DivWarNet struct {
 	*sectionnet.SectionNet
-	bot types.IBot
+	bot types.ИБот
 }
 
 // NewDivWarNet -- возвращает новый *DivWarNet
-func NewDivWarNet(bot types.IBot) (*DivWarNet, error) {
+func NewDivWarNet(bot types.ИБот) (*DivWarNet, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewDivWarNet(): IServBpt == nil")
 	}

+ 14 - 14
server/serv_bots/warbot/angar/division/divwar/divwaron/divwaron.go

@@ -22,7 +22,7 @@ import (
 // DivWarOn -- непосредственно танкует в сражении
 type DivWarOn struct {
 	*section.Section
-	bot            types.IBot
+	bot            types.ИБот
 	net            *sectionnet.SectionNet
 	ctxDivWar      context.Context // Контекст сражения
 	fnCancelDivWar func()          // Функция отмены сражения
@@ -37,16 +37,16 @@ type DivWarOn struct {
 }
 
 // NewDivWarOn -- возвращает новый *DivWarOn
-func NewDivWarOn(bot types.IBot) (*DivWarOn, error) {
+func NewDivWarOn(bot types.ИБот) (*DivWarOn, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewDivWarOn(): IBot == nil")
 	}
-	ctxDivWar, fnCancelDivWar := context.WithTimeout(bot.Ctx(), time.Second*305)
+	ctxDivWar, fnCancelDivWar := context.WithTimeout(bot.Кнт(), time.Second*305)
 	sf := &DivWarOn{
 		bot:            bot,
 		ctxDivWar:      ctxDivWar,
 		fnCancelDivWar: fnCancelDivWar,
-		login:          bot.Name(),
+		login:          bot.Имя(),
 		isMasking:      safebool.NewSafeBool(),
 		isEnd:          safebool.NewSafeBool(),
 	}
@@ -74,7 +74,7 @@ func (sf *DivWarOn) makeTick() {
 	}()
 	for !sf.isEnd.Get() {
 		select {
-		case <-sf.bot.Ctx().Done(): // Отмена контекста приложения
+		case <-sf.bot.Кнт().Done(): // Отмена контекста приложения
 			return
 		case <-sf.ctxDivWar.Done(): // Битва закончилась
 			return
@@ -115,7 +115,7 @@ func (sf *DivWarOn) run() {
 		select {
 		case <-sf.ctxDivWar.Done():
 			return
-		case <-sf.CountDown().ChanSig():
+		case <-sf.ВремяОпрос().КаналСиг():
 			if sf.checkEnd() {
 				return
 			}
@@ -123,8 +123,8 @@ func (sf *DivWarOn) run() {
 	}
 }
 
-// Net -- возвращает сетевой компонент секции
-func (sf *DivWarOn) Net() types.ISectionNet {
+// Сеть -- возвращает сетевой компонент секции
+func (sf *DivWarOn) Сеть() types.ISectionNet {
 	return sf.net
 }
 
@@ -143,7 +143,7 @@ func (sf *DivWarOn) checkEnd() bool {
 		sf.fnCancelDivWar()
 		return true
 	}
-	lstDivWarOn := sf.GetLst()
+	lstDivWarOn := sf.СписПолучить()
 	for _, strOut := range lstDivWarOn {
 		if strings.Contains(strOut, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`) {
 			sf.isEnd.Reset()
@@ -155,12 +155,12 @@ func (sf *DivWarOn) checkEnd() bool {
 	return true
 }
 
-// IsEnd -- возвращает признак окончания сражения (интерфейс)
-func (sf *DivWarOn) IsEnd() *safebool.SafeBool {
+// ЕслиКонец -- возвращает признак окончания сражения (интерфейс)
+func (sf *DivWarOn) ЕслиКонец() *safebool.SafeBool {
 	return sf.isEnd
 }
 
-func (sf *DivWarOn) Manevr() {
+func (sf *DivWarOn) Манёвр() {
 	if sf.manevr == nil {
 		return
 	}
@@ -169,8 +169,8 @@ func (sf *DivWarOn) Manevr() {
 	}
 }
 
-// Masking -- признак запрета стрельбы при слабом здоровье
-func (sf *DivWarOn) Masking() *safebool.SafeBool {
+// ВыстрелБлок -- признак запрета стрельбы при слабом здоровье
+func (sf *DivWarOn) ВыстрелБлок() *safebool.SafeBool {
 	return sf.isMasking
 }
 

+ 30 - 30
server/serv_bots/warbot/angar/division/divwar/divwaron/health/health.go

@@ -23,22 +23,22 @@ import (
 
 // Health -- контроль здоровья танка
 type Health struct {
-	types.IDivWarOn // FIXME:
-	fnCancel        func()
-	temp            *healthtime.HealthTime // Изменяемое здоровье танка
-	full            *healthtime.HealthTime // Полное здоровье танка
-	isRepair        *safebool.SafeBool     // Необходимость восстановления
-	repairTime      *repairtime.RepairTime // Время до восстановления
-	isEnd           *safebool.SafeBool     // Ссылка на признак конца сражения
-	login           string                 // Для поиска контрольных строк
-	chTick          chan int               // Канал для ровной отправки тиков
-	deltaOld        int                    // Старая дельта потери здоровья
-	countLow        int
-	ctxBattle       context.Context // Конекст сражения
+	types.ИДивизияВойнаДействие // FIXME:
+	fnCancel                    func()
+	temp                        *healthtime.HealthTime // Изменяемое здоровье танка
+	full                        *healthtime.HealthTime // Полное здоровье танка
+	isRepair                    *safebool.SafeBool     // Необходимость восстановления
+	repairTime                  *repairtime.RepairTime // Время до восстановления
+	isEnd                       *safebool.SafeBool     // Ссылка на признак конца сражения
+	login                       string                 // Для поиска контрольных строк
+	chTick                      chan int               // Канал для ровной отправки тиков
+	deltaOld                    int                    // Старая дельта потери здоровья
+	countLow                    int
+	ctxBattle                   context.Context // Конекст сражения
 }
 
 // NewHealth -- возвращает новый *Health
-func NewHealth(divwar types.IDivWarOn, isEnd *safebool.SafeBool, login string) (*Health, error) {
+func NewHealth(divwar types.ИДивизияВойнаДействие, isEnd *safebool.SafeBool, login string) (*Health, error) {
 	{ // Предусловия
 		if divwar == nil {
 			return nil, fmt.Errorf("NewHealth(): battle is nil")
@@ -51,14 +51,14 @@ func NewHealth(divwar types.IDivWarOn, isEnd *safebool.SafeBool, login string) (
 		}
 	}
 	sf := &Health{
-		IDivWarOn:  divwar,
+		ИДивизияВойнаДействие: divwar,
 		fnCancel:   divwar.CancelBattle,
 		ctxBattle:  divwar.Ctx(),
 		temp:       healthtime.NewHealthTime(),
 		full:       healthtime.NewHealthTime(),
 		isRepair:   safebool.NewSafeBool(),
 		repairTime: repairtime.NewRepairTime(),
-		isEnd:      divwar.IsEnd(),
+		isEnd:      divwar.ЕслиКонец(),
 		login:      login,
 		chTick:     make(chan int, 2),
 	}
@@ -112,7 +112,7 @@ func (sf *Health) run() {
 				// log._rintf("ERRO Health.run(): при попытке найти здоровье, err=\n\t%v\n", err)
 			}
 			sf.findRepairTime()
-			if sf.Masking().Get() {
+			if sf.ВыстрелБлок().Get() {
 				if sf.isRepair.Get() {
 					go sf.repair()
 				}
@@ -136,7 +136,7 @@ func (sf *Health) IsDeath() bool {
 		sf.fnCancel()
 		return true
 	}
-	lstBattle := sf.GetLst()
+	lstBattle := sf.СписПолучить()
 	for _, strOut := range lstBattle {
 		if strings.Contains(strOut, `>Ваш танк подбит.`) {
 			// log._rintf("INFO Health.repair(): танк подбит\n")
@@ -164,7 +164,7 @@ func (sf *Health) findRepairTime() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 		ind       int
 	)
@@ -203,7 +203,7 @@ func (sf *Health) findRepairTime() {
 func (sf *Health) repair() {
 	var (
 		strOut       string
-		lstBattleOn  = sf.GetLst()
+		lstBattleOn  = sf.СписПолучить()
 		isFindRepair bool
 		ind          int
 	)
@@ -224,14 +224,14 @@ func (sf *Health) repair() {
 	strLink := lstLink[1]
 	lstLink = strings.Split(strLink, `" class="simple-but blue"><span><span>Ремкомплект</span></span></a>`)
 	strLink = "http://wartank.ru/" + lstLink[0]
-	lstBattleOn, err := sf.Net().Get(strLink)
+	lstBattleOn, err := sf.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Health.repair(): при выполнении GET-команды ремонта, err=\n\t%v\n", err)
 		sf.isEnd.Set()
 		sf.CancelBattle()
 		return
 	}
-	if err = sf.Update(lstBattleOn); err != nil {
+	if err = sf.СтрОбновить(lstBattleOn); err != nil {
 		// log._rintf("ERRO Health.repair(): при обновлении lstBattle, err=\n\t%v\n", err)
 		sf.isEnd.Set()
 		sf.CancelBattle()
@@ -247,10 +247,10 @@ func (sf *Health) findHealth() error {
 		ind       int
 		strOut    string
 		isFind    bool
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 	)
 	if len(lstBattle) == 0 { // Принудительно обновим сражение
-		if err := sf.Net().UpdateLst(); err != nil {
+		if err := sf.Сеть().UpdateLst(); err != nil {
 			sf.isEnd.Set()
 			sf.fnCancel()
 			return fmt.Errorf("Health.findHealth(): после принудительного обновления lsBattleOn, err=\n\t%w", err)
@@ -296,7 +296,7 @@ func (sf *Health) setHealth(val int) {
 		sf.full.Set(val)
 		sf.temp.Set(val)
 		sf.deltaOld = 0
-		sf.Masking().Reset()
+		sf.ВыстрелБлок().Reset()
 		sf.isRepair.Reset()
 		return
 	}
@@ -322,22 +322,22 @@ func (sf *Health) setHealth(val int) {
 		sf.CancelBattle()
 		return
 	case val <= 500: // Запретить стрельбу
-		sf.Masking().Set() // Установить запрет стрельбы пока слабое здоровье
+		sf.ВыстрелБлок().Set() // Установить запрет стрельбы пока слабое здоровье
 		sf.isRepair.Set()
 		// log._rintf("WARN Health.setHealth(): низкий уровень здоровья(%v)\n", val)
-		sf.Manevr()
+		sf.Манёвр()
 	case val > 500: // Разрешить стрельбы
-		sf.Masking().Reset()
+		sf.ВыстрелБлок().Reset()
 		sf.isRepair.Reset()
 		if delta > sf.full.Get()*4/10 { // Проверить на критичность падения здоровья на 40%
 			// log._rintf("WARN Health.setHealth(): большая разовая потеря здоровья(%v)\n", delta)
-			sf.Manevr()
+			sf.Манёвр()
 			sf.isRepair.Set()
 			return
 		}
 	}
 
-	isMask := sf.Masking().Get()
+	isMask := sf.ВыстрелБлок().Get()
 	switch isMask {
 	case true:
 		sf.countLow++
@@ -352,7 +352,7 @@ func (sf *Health) setHealth(val int) {
 	if val == sf.full.Get() {
 		sf.temp.Set(val)
 		sf.isRepair.Reset()
-		sf.Masking().Reset()
+		sf.ВыстрелБлок().Reset()
 		sf.countLow = 0
 	}
 }

+ 12 - 12
server/serv_bots/warbot/angar/division/divwar/divwaron/manevr/manevr.go

@@ -24,16 +24,16 @@ import (
 
 // Manevr -- маневрирует после выстрела
 type Manevr struct {
-	types.IDivWarOn // FIXME:
-	isEnd           *safebool.SafeBool
-	ctxEnd          context.Context
-	isManevr        *ismanevr.IsManevr     // Возможность выполнить манёвр
-	manevrTime      *repairtime.RepairTime // Время до востановления манёвра
-	chTick          chan int               // Тики для поиска маневра
+	types.ИДивизияВойнаДействие // FIXME:
+	isEnd                       *safebool.SafeBool
+	ctxEnd                      context.Context
+	isManevr                    *ismanevr.IsManevr     // Возможность выполнить манёвр
+	manevrTime                  *repairtime.RepairTime // Время до востановления манёвра
+	chTick                      chan int               // Тики для поиска маневра
 }
 
 // NewManevr -- возвращает новый *Manevr
-func NewManevr(divwar types.IDivWarOn, isDivWar *safebool.SafeBool) (*Manevr, error) {
+func NewManevr(divwar types.ИДивизияВойнаДействие, isDivWar *safebool.SafeBool) (*Manevr, error) {
 	{ // Предусловия
 		if divwar == nil {
 			return nil, fmt.Errorf("NewManevr(): battle is nil")
@@ -43,7 +43,7 @@ func NewManevr(divwar types.IDivWarOn, isDivWar *safebool.SafeBool) (*Manevr, er
 		return nil, fmt.Errorf("NewManevr(): isBattle is nil")
 	}
 	sf := &Manevr{
-		IDivWarOn:  divwar,
+		ИДивизияВойнаДействие: divwar,
 		ctxEnd:     divwar.Ctx(),
 		isEnd:      isDivWar,
 		isManevr:   ismanevr.NewIsManevr(),
@@ -92,7 +92,7 @@ func (sf *Manevr) findManevrTime() {
 	var (
 		isFind      bool
 		ind         int
-		lstBattleOn = sf.GetLst()
+		lstBattleOn = sf.СписПолучить()
 		strOut      string
 	)
 	for ind, strOut = range lstBattleOn {
@@ -146,7 +146,7 @@ func (sf *Manevr) findManevrTime() {
 func (sf *Manevr) Manevr() {
 	var (
 		isFind      = false
-		lstBattleOn = sf.GetLst()
+		lstBattleOn = sf.СписПолучить()
 		strOut      = ""
 	)
 	if !sf.isManevr.Get() {
@@ -170,14 +170,14 @@ func (sf *Manevr) Manevr() {
 		strLink := lstLink[1]
 		lstLink = strings.Split(strLink, `" class="simple-but blue"><span><span>Маневр</span></span></a>`)
 		strLink = "http://wartank.ru/" + lstLink[0]
-		lstBattleOn, err := sf.Net().Get(strLink)
+		lstBattleOn, err := sf.Сеть().Get(strLink)
 		if err != nil {
 			logrus.WithError(err).Error("Manevr.Manevr(): при выполнении GET-команды маневра")
 			sf.isManevr.Reset()
 			time.Sleep(time.Second * 1)
 			return
 		}
-		if err = sf.Update(lstBattleOn); err != nil {
+		if err = sf.СтрОбновить(lstBattleOn); err != nil {
 			logrus.WithError(err).Error("Manevr.Manevr(): при обновлении lstBattle")
 			sf.isManevr.Reset()
 			time.Sleep(time.Second * 1)

+ 24 - 24
server/serv_bots/warbot/angar/division/divwar/divwaron/shot/shot.go

@@ -29,18 +29,18 @@ import (
 
 // Shot -- объект выстрела
 type Shot struct {
-	types.IDivWarOn                    // FIXME:
-	recharge        *shottime.ShotTime // Сколько времени нужно для полной перезарядки
-	damage          *damage.Damage     // Урон от выстрела с памятью
-	damageSum       alias.ADamage      // Суммарный урон
-	isEnd           *safebool.SafeBool // Признак конца сражения
-	login           string             // Логин для поиска контрольных строк
-	chTick          chan int           // Тик для выстрела
-	ctxEnd          context.Context    // Признак окончания сражения
+	types.ИДивизияВойнаДействие                    // FIXME:
+	recharge                    *shottime.ShotTime // Сколько времени нужно для полной перезарядки
+	damage                      *damage.Damage     // Урон от выстрела с памятью
+	damageSum                   alias.ADamage      // Суммарный урон
+	isEnd                       *safebool.SafeBool // Признак конца сражения
+	login                       string             // Логин для поиска контрольных строк
+	chTick                      chan int           // Тик для выстрела
+	ctxEnd                      context.Context    // Признак окончания сражения
 }
 
 // NewShot -- возвращает новый *Shot
-func NewShot(divWar types.IDivWarOn, login string) (*Shot, error) {
+func NewShot(divWar types.ИДивизияВойнаДействие, login string) (*Shot, error) {
 	{ // Предусловия
 		if divWar == nil {
 			return nil, fmt.Errorf("NewShot(): battle is nil")
@@ -50,13 +50,13 @@ func NewShot(divWar types.IDivWarOn, login string) (*Shot, error) {
 		}
 	}
 	sf := &Shot{
-		IDivWarOn: divWar,
-		ctxEnd:    divWar.Ctx(),
-		recharge:  shottime.NewShotTime(),
-		damage:    damage.NewDamage(),
-		isEnd:     divWar.IsEnd(),
-		login:     login,
-		chTick:    make(chan int, 2),
+		ИДивизияВойнаДействие: divWar,
+		ctxEnd:   divWar.Ctx(),
+		recharge: shottime.NewShotTime(),
+		damage:   damage.NewDamage(),
+		isEnd:    divWar.ЕслиКонец(),
+		login:    login,
+		chTick:   make(chan int, 2),
 	}
 	// Установить время перезарядки
 	sf.recharge.Set(6800)
@@ -82,14 +82,14 @@ func (sf *Shot) makeTick() {
 			if sf.isEnd.Get() { // Битва закончилась
 				return
 			}
-			switch sf.Masking().Get() { // Проверить запрет на стрельбу при слабом здоровье
+			switch sf.ВыстрелБлок().Get() { // Проверить запрет на стрельбу при слабом здоровье
 			case true:
 				// log._rintf("WARN Shot.run(): запрет на выстрел\n")
 				countMasking++
 				if countMasking >= 200 {
 					return
 				}
-				sf.Manevr()
+				sf.Манёвр()
 				time.Sleep(time.Millisecond * 500)
 				continue
 			default:
@@ -122,7 +122,7 @@ func (sf *Shot) run() {
 //
 //	Вызывается из отдельного потока
 func (sf *Shot) shot() {
-	if err := sf.Net().UpdateLst(); err != nil { // Проверка на непосредственно битву
+	if err := sf.Сеть().UpdateLst(); err != nil { // Проверка на непосредственно битву
 		// <span>закончилась 00:00:07 назад</span>
 		// log._rintf("ERRO Shot.shot(): при обновлении lstBattleOn, err=\n\t%v\n", err)
 		sf.isEnd.Set()
@@ -131,7 +131,7 @@ func (sf *Shot) shot() {
 	}
 	var (
 		strOut    string
-		lstBattle = sf.GetLst()
+		lstBattle = sf.СписПолучить()
 		isFind    bool
 		err       error
 	)
@@ -152,21 +152,21 @@ func (sf *Shot) shot() {
 	strLink := lstLink[1]
 	lstLink = strings.Split(strLink, `" class="simple-but gray"><span><span>ОБЫЧНЫЕ</span></span></a>`)
 	strLink = "http://wartank.ru/" + lstLink[0]
-	lstBattle, err = sf.Net().Get(strLink)
+	lstBattle, err = sf.Сеть().Get(strLink)
 	if err != nil {
 		// log._rintf("ERRO Shot.shot(): при исполнении GET-команды выстрела обычным снарядом, err=\n\t%v\n", err)
 		sf.isEnd.Set()
 		sf.CancelBattle()
 		return
 	}
-	if err = sf.Update(lstBattle); err != nil {
+	if err = sf.СтрОбновить(lstBattle); err != nil {
 		// log._rintf("ERRO Shot.shot(): при обновлении lstBattle, err=\n\t%v\n", err)
 		sf.isEnd.Set()
 		sf.CancelBattle()
 		return
 	}
 	// sound.Shot()
-	sf.Manevr()
+	sf.Манёвр()
 }
 
 // Ищет урон от выстрела
@@ -174,7 +174,7 @@ func (sf *Shot) findDamage() {
 	var (
 		ind     = 0
 		isFind  = false
-		lstShot = sf.GetLst()
+		lstShot = sf.СписПолучить()
 		strOut  string
 	)
 

+ 11 - 11
server/serv_bots/warbot/angar/fuel/fuel.go

@@ -13,18 +13,18 @@ import (
 
 // Fuel -- топливо в баке
 type Fuel struct {
-	angar types.IAngar
-	fuel  types.IStatParam
+	angar types.ИАнгар
+	fuel  types.ИСтатПарам
 }
 
 // NewFuel -- возвращает новый топливный бак
-func NewFuel(angar types.IAngar) (*Fuel, error) {
+func NewFuel(angar types.ИАнгар) (*Fuel, error) {
 	if angar == nil {
 		return nil, fmt.Errorf("NewFuel(): IAngar == nil")
 	}
 	sf := &Fuel{
 		angar: angar,
-		fuel:  static_param.NewStaticParam("fuel"),
+		fuel:  static_param.НовСтатПарам("fuel"),
 	}
 	return sf, nil
 }
@@ -34,15 +34,15 @@ func (sf *Fuel) Run() {
 	count := 0 // Каждые 1500 сек (100 топлива проверять принудительно)
 	for {
 		time.Sleep(time.Second * 15)
-		if sf.fuel.Val() == 0 || count >= 100 {
+		if sf.fuel.Получ() == 0 || count >= 100 {
 			sf.findFuel()
 			count = 0
 			continue
 		}
 		count++
-		fuel := sf.fuel.Val()
+		fuel := sf.fuel.Получ()
 		fuel++
-		sf.fuel.SetVal(fuel)
+		sf.fuel.Уст(fuel)
 		// log.Printf("Fuel.Run: val=%v\n", fuel)
 	}
 }
@@ -50,10 +50,10 @@ func (sf *Fuel) Run() {
 // Ищет в теле текста ангара топливо
 func (sf *Fuel) findFuel() {
 	// _mt.Println("\tAngarNet.findFuel()")
-	if sf.fuel.Val() > 314 {
+	if sf.fuel.Получ() > 314 {
 		return
 	}
-	lstAngar := sf.angar.GetLst()
+	lstAngar := sf.angar.СписПолучить()
 	var strOut string
 	for _, strFuel := range lstAngar {
 		if strings.Contains(strFuel, `<img title="Топливо" `) {
@@ -73,7 +73,7 @@ func (sf *Fuel) findFuel() {
 		// log._rintf("ERRO Fuel.findFuel(): fuel(%v) not number, err=\n\t%v\n", strFuel, err)
 		return
 	}
-	sf.fuel.SetVal(iFuel)
+	sf.fuel.Уст(iFuel)
 	if iFuel <= 314 { // Минимальное значение "топливного склада-1" -- 315
 		return
 	}
@@ -81,6 +81,6 @@ func (sf *Fuel) findFuel() {
 }
 
 // Fuel -- возвращает объект сстатическог опараметра топлива
-func (sf *Fuel) Fuel() types.IStatParam {
+func (sf *Fuel) Fuel() types.ИСтатПарам {
 	return sf.fuel
 }

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

@@ -17,12 +17,12 @@ import (
 // Missions -- забирает золотишко
 type Missions struct {
 	*section.Section
-	bot types.IBot
+	bot types.ИБот
 	net *missionsnet.MissionsNet
 }
 
 // NewMissions -- возвращает новый *Missions
-func NewMissions(bot types.IBot) (*Missions, error) {
+func NewMissions(bot types.ИБот) (*Missions, error) {
 	section, err := section.NewSection(bot, "Миссии", `<title>Миссии</title>`)
 	if err != nil {
 		return nil, fmt.Errorf("NewMissions(): in create *Section, err=\n\t%w", err)
@@ -47,15 +47,15 @@ func (sf *Missions) Run() error {
 // обрабатывает конвой
 func (sf *Missions) run() {
 	defer func() {
-		sf.CountDown().Stop()
+		sf.ВремяОпрос().Стоп()
 	}()
 	time.Sleep(time.Second * 15)
 	for { // Время истекло
 		select {
-		case <-sf.bot.Ctx().Done():
-			sf.CountDown().Stop()
+		case <-sf.bot.Кнт().Done():
+			sf.ВремяОпрос().Стоп()
 			return
-		case <-sf.CountDown().ChanSig():
+		case <-sf.ВремяОпрос().КаналСиг():
 			if err := sf.net.UpdateLst(); err != nil {
 				// log._rintf("ERRO Missions.run(): при обновлении lstMissions, err=\n\t%v\n", err)
 				return
@@ -88,7 +88,7 @@ func (sf *Missions) checkAvard() {
 func (sf *Missions) kill3tanks() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -116,7 +116,7 @@ func (sf *Missions) kill3tanks() {
 		// log._rintf("ERRO Missions.kill3tanks(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.kill3tanks(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -126,7 +126,7 @@ func (sf *Missions) kill3tanks() {
 func (sf *Missions) battleDefence() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -154,7 +154,7 @@ func (sf *Missions) battleDefence() {
 		// log._rintf("ERRO Missions.battleDefence(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battleDefence(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -164,7 +164,7 @@ func (sf *Missions) battleDefence() {
 func (sf *Missions) battleWar() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -192,7 +192,7 @@ func (sf *Missions) battleWar() {
 		// log._rintf("ERRO Missions.battleWar(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battleWar(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -202,7 +202,7 @@ func (sf *Missions) battleWar() {
 func (sf *Missions) battleAttack() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -230,7 +230,7 @@ func (sf *Missions) battleAttack() {
 		// log._rintf("ERRO Missions.battleAttack(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battleAttack(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -240,7 +240,7 @@ func (sf *Missions) battleAttack() {
 func (sf *Missions) battleDogFyting() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -268,7 +268,7 @@ func (sf *Missions) battleDogFyting() {
 		// log._rintf("ERRO Missions.battleDogFyting(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battleDogFyting(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -278,7 +278,7 @@ func (sf *Missions) battleDogFyting() {
 func (sf *Missions) makeResource() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -306,7 +306,7 @@ func (sf *Missions) makeResource() {
 		// log._rintf("ERRO Missions.makeResource(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.makeResource(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -316,7 +316,7 @@ func (sf *Missions) makeResource() {
 func (sf *Missions) upMan() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -344,7 +344,7 @@ func (sf *Missions) upMan() {
 		// log._rintf("ERRO Missions.upMan(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.upMan(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -355,7 +355,7 @@ func (sf *Missions) upMan() {
 func (sf *Missions) makeFuel() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -383,7 +383,7 @@ func (sf *Missions) makeFuel() {
 		// log._rintf("ERRO Missions.makeFuel(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.makeFuel(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -394,7 +394,7 @@ func (sf *Missions) makeFuel() {
 func (sf *Missions) battle5Fiting() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -422,7 +422,7 @@ func (sf *Missions) battle5Fiting() {
 		// log._rintf("ERRO Missions.battle5Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battle5Fiting(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -432,7 +432,7 @@ func (sf *Missions) battle5Fiting() {
 func (sf *Missions) battle10Fiting() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -460,7 +460,7 @@ func (sf *Missions) battle10Fiting() {
 		// log._rintf("ERRO Missions.battle10Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battle10Fiting(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}
@@ -470,7 +470,7 @@ func (sf *Missions) battle10Fiting() {
 func (sf *Missions) battle6win() {
 	var (
 		strOut      string
-		lstMissions = sf.GetLst()
+		lstMissions = sf.СписПолучить()
 		isFind      bool
 		ind         int
 	)
@@ -498,7 +498,7 @@ func (sf *Missions) battle6win() {
 		// log._rintf("ERRO Missions.battle6win(): при выполнении GET-запроса, err=\n\t%v\n", err)
 		return
 	}
-	if err := sf.Update(lstMissions); err != nil {
+	if err := sf.СтрОбновить(lstMissions); err != nil {
 		// log._rintf("ERRO Missions.battle6win(): при обновлении lstMissions, err=\n\t%v\n", err)
 		return
 	}

+ 1 - 1
server/serv_bots/warbot/angar/missions/missionsnet/missionsnet.go

@@ -17,7 +17,7 @@ type MissionsNet struct {
 }
 
 // NewMissionsNet -- возвращает новый *MissionsNet
-func NewMissionsNet(mission types.IMissions) (*MissionsNet, error) {
+func NewMissionsNet(mission types.ИМиссии) (*MissionsNet, error) {
 	sectionNet, err := sectionnet.NewSectionNet(mission, "http://wartank.ru/missions/")
 	if err != nil {
 		return nil, fmt.Errorf("NewMissionsNet(): in create *SectionNet, err=\n\t%w", err)

+ 20 - 20
server/serv_bots/warbot/angar/netstat/netstat.go

@@ -15,17 +15,17 @@ import (
 
 // NetStat -- статистика уровня танка и сервера
 type NetStat struct {
-	server types.IServer
-	bot    types.IBot
+	server types.ИСервер
+	bot    types.ИБот
 }
 
 // NewNetStat -- возвращает новый *NetStat
-func NewNetStat(bot types.IBot) (*NetStat, error) {
+func NewNetStat(bot types.ИБот) (*NetStat, error) {
 	if bot == nil {
 		return nil, fmt.Errorf("NewNetStat(): IBot == nil")
 	}
 	sf := &NetStat{
-		server: bot.Server(),
+		server: bot.Сервер(),
 		bot:    bot,
 	}
 	return sf, nil
@@ -61,7 +61,7 @@ func (sf *NetStat) Update() (err error) {
 // Ищет в теле текста ангара мощность танка
 func (sf *NetStat) findPower() (err error) {
 	// _mt.Println("\tNetStat.findPower()")
-	lstAngar := sf.bot.Angar().GetLst()
+	lstAngar := sf.bot.Ангар().СписПолучить()
 	if len(lstAngar) == 0 {
 		// log._rintf("WARN NetStat.findPower(): lstAngar is empty\n")
 		return
@@ -82,7 +82,7 @@ func (sf *NetStat) findPower() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findPower(): power(%v) not number, err=\n\t%w", strPower, err)
 	}
-	sf.bot.Tank().TankStat().Power().SetVal(iPower)
+	sf.bot.Танк().ТанкСтат().Мощь().Уст(iPower)
 	return nil
 }
 
@@ -90,7 +90,7 @@ func (sf *NetStat) findPower() (err error) {
 func (sf *NetStat) findHard() (err error) {
 	var (
 		strOut   string
-		lstAngar = sf.bot.Angar().GetLst()
+		lstAngar = sf.bot.Ангар().СписПолучить()
 		isFind   bool
 	)
 	if len(lstAngar) == 0 {
@@ -115,7 +115,7 @@ func (sf *NetStat) findHard() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findHard(): hard(%v) not number, err=\n\t%w", strHard, err)
 	}
-	sf.bot.Tank().TankStat().Hard().SetVal(iHard)
+	sf.bot.Танк().ТанкСтат().Прочность().Уст(iHard)
 	return nil
 }
 
@@ -124,7 +124,7 @@ func (sf *NetStat) findFyne() (err error) {
 	// _mt.Println("\tNetStat.findFyne()")
 	var (
 		strOut   string
-		lstAngar = sf.bot.Angar().GetLst()
+		lstAngar = sf.bot.Ангар().СписПолучить()
 		isFind   bool
 	)
 	if len(lstAngar) == 0 {
@@ -149,7 +149,7 @@ func (sf *NetStat) findFyne() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findFyne(): fyne(%v) not number, err=\n\t%w", strFyne, err)
 	}
-	sf.bot.Tank().TankStat().Fyne().SetVal(iFyne)
+	sf.bot.Танк().ТанкСтат().Точность().Уст(iFyne)
 	return nil
 }
 
@@ -159,7 +159,7 @@ func (sf *NetStat) findArmor() (err error) {
 
 	var (
 		strOut   string
-		lstAngar = sf.bot.Angar().GetLst()
+		lstAngar = sf.bot.Ангар().СписПолучить()
 		isFind   bool
 	)
 	if len(lstAngar) == 0 {
@@ -183,14 +183,14 @@ func (sf *NetStat) findArmor() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findArmor(): armor(%v) not number, err=\n\t%w", strArmor, err)
 	}
-	sf.bot.Tank().TankStat().Armor().SetVal(iArmor)
+	sf.bot.Танк().ТанкСтат().Броня().Уст(iArmor)
 	return nil
 }
 
 // Ищет в теле текста ангара уровень танка
 func (sf *NetStat) findLevelTank() {
 	// _mt.Println("\tNetStat.findLevelTank()")
-	lstAngar := sf.bot.Angar().GetLst()
+	lstAngar := sf.bot.Ангар().СписПолучить()
 	if len(lstAngar) == 0 {
 		// log._rintf("ERRO NetStat.findLevelTank(): пустой lstAngar")
 		return
@@ -212,13 +212,13 @@ func (sf *NetStat) findLevelTank() {
 		// log._rintf("ERRO NetStat.findLevelTank(): level(%v) не число, err=\n\t%v\n", strLevel, err)
 		return
 	}
-	sf.bot.Angar().Level().SetVal(iLevel)
+	sf.bot.Ангар().Уровень().Уст(iLevel)
 }
 
 // Ищет в теле текста ангара прогресс уровня танка танка
 func (sf *NetStat) findLevelProgress() error {
 	// _mt.Println("\tNetStat.findLevelProgress()")
-	lstAngar := sf.bot.Angar().GetLst()
+	lstAngar := sf.bot.Ангар().СписПолучить()
 	if len(lstAngar) == 0 {
 		// log._rintf("WARN NetStat.findLevelProgress(): lstAngar пустой\n")
 		return nil
@@ -239,7 +239,7 @@ func (sf *NetStat) findLevelProgress() error {
 	if err != nil {
 		return fmt.Errorf("NetStat.findLevelProgress(): progress(%v) not number, err=\n\t%w", strProg, err)
 	}
-	sf.bot.Angar().Progress().SetVal(iProg)
+	sf.bot.Ангар().Прогресс().Уст(iProg)
 	return nil
 }
 
@@ -247,7 +247,7 @@ func (sf *NetStat) findLevelProgress() error {
 func (sf *NetStat) findAtack() (err error) {
 	var (
 		strOut   string
-		lstAngar = sf.bot.Angar().GetLst()
+		lstAngar = sf.bot.Ангар().СписПолучить()
 		isFind   bool
 	)
 	for _, strOut = range lstAngar {
@@ -268,14 +268,14 @@ func (sf *NetStat) findAtack() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findAtack(): atack(%v) not number, err=\n\t%w", strAtack, err)
 	}
-	sf.bot.Tank().TankStat().Attack().SetVal(iAtack)
+	sf.bot.Танк().ТанкСтат().Атака().Уст(iAtack)
 	return nil
 }
 
 // Ищет в теле текста ангара силу атаки танка
 func (sf *NetStat) findOnline() (err error) {
 	// _mt.Println("\tNetStat.findOnline()")
-	lstAngar := sf.bot.Angar().GetLst()
+	lstAngar := sf.bot.Ангар().СписПолучить()
 	var strOut string
 	for _, strAtack := range lstAngar {
 		if strings.Contains(strAtack, `>Онлайн</a>: `) {
@@ -296,6 +296,6 @@ func (sf *NetStat) findOnline() (err error) {
 	if err != nil {
 		return fmt.Errorf("NetStat.findOnline(): online(%v) not number, err=\n\t%w", iOnline, err)
 	}
-	sf.bot.Angar().Online().SetVal(iOnline)
+	sf.bot.Ангар().ИгрокиОнлайн().Уст(iOnline)
 	return nil
 }

+ 3 - 3
server/serv_bots/warbot/tank/tank.go

@@ -12,7 +12,7 @@ import (
 
 // Tank -- описатель танка
 type Tank struct {
-	statTank types.ITankStat // Глобальная статистика танка и сервера
+	statTank types.ИТанкСтат // Глобальная статистика танка и сервера
 }
 
 // NewTank -- возвращает новый *Tank
@@ -23,7 +23,7 @@ func NewTank() *Tank {
 	return sf
 }
 
-// TankStat -- возвращает объект статистики танка
-func (sf *Tank) TankStat() types.ITankStat {
+// ТанкСтат -- возвращает объект статистики танка
+func (sf *Tank) ТанкСтат() types.ИТанкСтат {
 	return sf.statTank
 }

+ 29 - 34
server/serv_bots/warbot/tank/tankstat/static_param/static_param.go

@@ -3,6 +3,7 @@ package static_param
 import (
 	"fmt"
 	"sync"
+	"wartank/pkg/types"
 )
 
 /*
@@ -11,48 +12,42 @@ import (
 	Потокобезопасно.
 */
 
-// StaticParam -- потокобезопасный параметр танка
-type StaticParam struct {
-	name  string // Имя параметра
-	val   int    // Значение параметра
-	block sync.RWMutex
+// СтатПарам -- потокобезопасный параметр танка
+type СтатПарам struct {
+	имя  string // Имя параметра
+	знач   int    // Значение параметра
+	блок sync.RWMutex
 }
 
-// NewStaticParam -- возвращает новый *StaticParam
-func NewStaticParam(name string) *StaticParam {
-	if name == "" {
-		panic(fmt.Errorf("NewStaticParam(): name is empty"))
+// НовСтатПарам -- возвращает новый *СтатПарам
+func НовСтатПарам(имя string) (*СтатПарам, error) {
+	if имя == "" {
+		return nil, fmt.Errorf("НовСтатПарам(): name is empty")
 	}
-	sf := &StaticParam{
-		name: name,
+	сам := &СтатПарам{
+		имя: имя,
 	}
-	return sf
+	_=types.ИСтатПарам(сам)
+	return сам
 }
 
-// SetVal -- устанавливает значение параметра
-func (sf *StaticParam) SetVal(val int) {
-	sf.block.Lock()
-	defer sf.block.Unlock()
-	sf.val = val
+// Уст -- устанавливает значение параметра
+func (sf *СтатПарам) Уст(val int) {
+	sf.блок.Lock()
+	defer sf.блок.Unlock()
+	sf.знач = val
 }
 
-// Val -- значение хранимого параметра
-func (sf *StaticParam) Val() int {
-	sf.block.RLock()
-	defer sf.block.RUnlock()
-	return sf.val
+// Получ -- значение хранимого параметра
+func (sf *СтатПарам) Получ() int {
+	sf.блок.RLock()
+	defer sf.блок.RUnlock()
+	return sf.знач
 }
 
-// Name -- возвращает имя хранимого параметра
-func (sf *StaticParam) Name() string {
-	sf.block.RLock()
-	defer sf.block.RUnlock()
-	return sf.name
-}
-
-// SetName -- устанавливает имя параметра
-func (sf *StaticParam) SetName(name string) {
-	sf.block.Lock()
-	defer sf.block.Unlock()
-	sf.name = name
+// Имя -- возвращает имя хранимого параметра
+func (sf *СтатПарам) Имя() string {
+	sf.блок.RLock()
+	defer sf.блок.RUnlock()
+	return sf.имя
 }

+ 24 - 24
server/serv_bots/warbot/tank/tankstat/tankstat.go

@@ -12,53 +12,53 @@ import (
 
 // TankStat -- статические параметры танка
 type TankStat struct {
-	attack types.IStatParam // Сила атаки танка
-	fyne   types.IStatParam // Точность танка
-	armor  types.IStatParam // Броня танка
-	hard   types.IStatParam // Броня танка
-	power  types.IStatParam // Танковая мощь (может не совпадать по сумме, если есть усиление)
-	force  types.IStatParam
+	attack types.ИСтатПарам // Сила атаки танка
+	fyne   types.ИСтатПарам // Точность танка
+	armor  types.ИСтатПарам // Броня танка
+	hard   types.ИСтатПарам // Броня танка
+	power  types.ИСтатПарам // Танковая мощь (может не совпадать по сумме, если есть усиление)
+	force  types.ИСтатПарам
 }
 
 // NewTankStat -- возвращает новый *TankStat
 func NewTankStat() *TankStat {
 	sf := &TankStat{
-		attack: static_param.NewStaticParam("attack"),
-		fyne:   static_param.NewStaticParam("fyne"),
-		armor:  static_param.NewStaticParam("armor"),
-		hard:   static_param.NewStaticParam("hard"),
-		power:  static_param.NewStaticParam("power"),
-		force:  static_param.NewStaticParam("force"),
+		attack: static_param.НовСтатПарам("attack"),
+		fyne:   static_param.НовСтатПарам("fyne"),
+		armor:  static_param.НовСтатПарам("armor"),
+		hard:   static_param.НовСтатПарам("hard"),
+		power:  static_param.НовСтатПарам("power"),
+		force:  static_param.НовСтатПарам("force"),
 	}
 	return sf
 }
 
-// Attack -- возвращает объект силы атаки
-func (sf *TankStat) Attack() types.IStatParam {
+// Атака -- возвращает объект силы атаки
+func (sf *TankStat) Атака() types.ИСтатПарам {
 	return sf.attack
 }
 
-// Hard -- возвращает объект прочности танка
-func (sf *TankStat) Hard() types.IStatParam {
+// Прочность -- возвращает объект прочности танка
+func (sf *TankStat) Прочность() types.ИСтатПарам {
 	return sf.hard
 }
 
-// Fyne -- возвращает объект точности танка
-func (sf *TankStat) Fyne() types.IStatParam {
+// Точность -- возвращает объект точности танка
+func (sf *TankStat) Точность() types.ИСтатПарам {
 	return sf.fyne
 }
 
-// Armor -- возвращает объект брони танка
-func (sf *TankStat) Armor() types.IStatParam {
+// Броня -- возвращает объект брони танка
+func (sf *TankStat) Броня() types.ИСтатПарам {
 	return sf.armor
 }
 
-// Power -- возвращает объект мощи танка
-func (sf *TankStat) Power() types.IStatParam {
+// Мощь -- возвращает объект мощи танка
+func (sf *TankStat) Мощь() types.ИСтатПарам {
 	return sf.power
 }
 
-// Force -- возвращает объект форсированного параметра
-func (sf *TankStat) Force() types.IStatParam {
+// ПарамФорсаж -- возвращает объект форсированного параметра
+func (sf *TankStat) ПарамФорсаж() types.ИСтатПарам {
 	return sf.force
 }

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff