|
|
@@ -23,11 +23,10 @@ import (
|
|
|
// DivWar -- объект ожидания битвы дивизий
|
|
|
type DivWar struct {
|
|
|
*section.Section
|
|
|
- server types.IServer
|
|
|
- bot types.IBot
|
|
|
- alarm types.IStatParam
|
|
|
- net *divwarnet.DivWarNet
|
|
|
- conn *http.Client
|
|
|
+ bot types.IBot
|
|
|
+ alarm types.IStatParam
|
|
|
+ net *divwarnet.DivWarNet
|
|
|
+ conn *http.Client
|
|
|
|
|
|
// Непосредственная битва
|
|
|
divon *divwaron.DivWarOn
|
|
|
@@ -40,18 +39,12 @@ type DivWar struct {
|
|
|
}
|
|
|
|
|
|
// NewDivWar -- возвращает новый *DivWar
|
|
|
-func NewDivWar(server types.IServer, bot types.IBot) (*DivWar, error) {
|
|
|
- { // Предусловия
|
|
|
- if server == nil {
|
|
|
- return nil, fmt.Errorf("NewDivWar(): IServer == nil")
|
|
|
- }
|
|
|
- if bot == nil {
|
|
|
- return nil, fmt.Errorf("NewDivWar(): IBot nil")
|
|
|
- }
|
|
|
+func NewDivWar(bot types.IBot) (*DivWar, error) {
|
|
|
+ if bot == nil {
|
|
|
+ return nil, fmt.Errorf("NewDivWar(): IBot == nil")
|
|
|
}
|
|
|
|
|
|
sf := &DivWar{
|
|
|
- server: server,
|
|
|
bot: bot,
|
|
|
alarm: static_param.NewStaticParam("alarm"),
|
|
|
chDivWar: make(chan int, 1),
|
|
|
@@ -62,13 +55,13 @@ func NewDivWar(server types.IServer, bot types.IBot) (*DivWar, error) {
|
|
|
// sf.shotTimeFull.Set(8000) // 8000 msec
|
|
|
var err error
|
|
|
{ // ISection
|
|
|
- sf.Section, err = section.NewSection(server, `<span>до начала `)
|
|
|
+ sf.Section, err = section.NewSection(bot, `<span>до начала `)
|
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("NewDivWar(): in create *Section, err=\n\t%w", err)
|
|
|
}
|
|
|
}
|
|
|
{ // Net
|
|
|
- sf.net, err = divwarnet.NewDivWarNet(server, bot)
|
|
|
+ sf.net, err = divwarnet.NewDivWarNet(bot)
|
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("NewDivWar(): при создании DivWarNet, err=\n\t%w", err)
|
|
|
}
|
|
|
@@ -82,7 +75,7 @@ func (sf *DivWar) reservTick() {
|
|
|
defer sf.CountDown().Stop()
|
|
|
for {
|
|
|
select {
|
|
|
- case <-sf.server.Done():
|
|
|
+ case <-sf.bot.Ctx().Done():
|
|
|
return
|
|
|
default:
|
|
|
ct0 := sf.CountDown().Get()
|
|
|
@@ -104,7 +97,7 @@ func (sf *DivWar) run() {
|
|
|
sf.chDivWar <- 1
|
|
|
for {
|
|
|
select {
|
|
|
- case <-sf.server.Done():
|
|
|
+ case <-sf.bot.Ctx().Done():
|
|
|
sf.CountDown().Stop()
|
|
|
return
|
|
|
case <-sf.CountDown().ChanSig(): // Время обновить данные по сражению
|
|
|
@@ -209,7 +202,7 @@ func (sf *DivWar) DivWar() {
|
|
|
// log.Printf("INFO DivWar.DivWar(): сражение завершено\n")
|
|
|
}()
|
|
|
var err error
|
|
|
- sf.divon, err = divwaron.NewDivWarOn(sf.server, sf.bot) // IDivWarOn (онлайн)
|
|
|
+ sf.divon, err = divwaron.NewDivWarOn(sf.bot) // IDivWarOn (онлайн)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO DivWar.DivWarOn(): при создании IDivWarOn, err=\n\t%v\n", err)
|
|
|
time.Sleep(time.Millisecond * 250)
|