package divwarsound import ( "time" "wartank/pkg/components/sound" "wartank/server/serv_bots/warbot/angar/battle/battle_worker/battleon/battlesound/isplay" ) /* Выполняет контроль за запуском одной озвучки битвы */ // DivWarSound -- контроль одного раза запуска звука битвы type DivWarSound struct { isPlay *isplay.IsPlay } // NewDivWarSound -- возвращает новый *DivWarSound func NewDivWarSound() *DivWarSound { return &DivWarSound{ isPlay: isplay.NewIsPlay(), } } // Play -- играет музончик, если можно func (сам *DivWarSound) Play() { if сам.isPlay.Get() { return } go сам.play() } // Проигрывает экслюзивно в отдельном потоке звук func (сам *DivWarSound) play() { сам.isPlay.Set() val := 7 for val > 0 { sound.DivWar() val-- time.Sleep(time.Second * 1) } val = 600 // Пауза для блокировки повторного вкелючения начатой битвы for val >= 0 { val-- time.Sleep(time.Second * 1) } сам.isPlay.Reset() }