divwarsound.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package divwarsound
  2. import (
  3. "time"
  4. "wartank/pkg/components/sound"
  5. "wartank/server/serv_bots/warbot/angar/battle/battle_worker/battleon/battlesound/isplay"
  6. )
  7. /*
  8. Выполняет контроль за запуском одной озвучки битвы
  9. */
  10. // DivWarSound -- контроль одного раза запуска звука битвы
  11. type DivWarSound struct {
  12. isPlay *isplay.IsPlay
  13. }
  14. // NewDivWarSound -- возвращает новый *DivWarSound
  15. func NewDivWarSound() *DivWarSound {
  16. return &DivWarSound{
  17. isPlay: isplay.NewIsPlay(),
  18. }
  19. }
  20. // Play -- играет музончик, если можно
  21. func (сам *DivWarSound) Play() {
  22. if сам.isPlay.Get() {
  23. return
  24. }
  25. go сам.play()
  26. }
  27. // Проигрывает экслюзивно в отдельном потоке звук
  28. func (сам *DivWarSound) play() {
  29. сам.isPlay.Set()
  30. val := 7
  31. for val > 0 {
  32. sound.DivWar()
  33. val--
  34. time.Sleep(time.Second * 1)
  35. }
  36. val = 600 // Пауза для блокировки повторного вкелючения начатой битвы
  37. for val >= 0 {
  38. val--
  39. time.Sleep(time.Second * 1)
  40. }
  41. сам.isPlay.Reset()
  42. }