arena_angar.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package arena_angar
  2. import (
  3. "time"
  4. . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
  5. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  6. . "wartank/app/lev0/types"
  7. "wartank/app/lev1"
  8. "wartank/app/lev2/arena"
  9. "wartank/app/lev2/arena/arena_angar/bf_angar_fuel"
  10. "wartank/app/lev3/bot/bot_stat/bot_resurs"
  11. )
  12. /*
  13. Объект ангара приложения
  14. */
  15. // Ангар -- ангар для танка
  16. type АренаАнгар struct {
  17. ИАрена
  18. конт ILocalCtx
  19. progress ИСтатПарам
  20. топливо ИСтатПарам
  21. серебро ИСтатПарам
  22. золото ИСтатПарам
  23. игроковОнлайн ИСтатПарам
  24. сереброСессия ИСтатПарам
  25. ресурсы ИБотРесурсы
  26. танкСтат ИТанкСтат
  27. }
  28. // НовАнгар -- возвращает новый *Angar
  29. func НовАнгар(конт ILocalCtx) ИАренаАнгар {
  30. Hassert(конт != nil, "НовАнгар(): ILocalCtx==nil")
  31. сам := &АренаАнгар{
  32. конт: конт,
  33. progress: lev1.НовСтатПарам("прогресс"),
  34. игроковОнлайн: lev1.НовСтатПарам("онлайн"),
  35. сереброСессия: lev1.НовСтатПарам("серебро сессия"),
  36. танкСтат: конт.Get("танкСтат").Val().(ИТанкСтат),
  37. серебро: lev1.НовСтатПарам("серебро"),
  38. золото: lev1.НовСтатПарам("золото"),
  39. топливо: lev1.НовСтатПарам("топливо"),
  40. }
  41. аренаКонф := arena.АренаКонфиг{
  42. Конт_: конт,
  43. АренаИмя_: "Ангар",
  44. СтрКонтроль_: "<title>Ангар</title>",
  45. ФнПуск_: сам.пуск,
  46. СтрУрл_: "https://wartank.ru/angar",
  47. }
  48. конт.Set("ангар", сам, "Объект ангара бота")
  49. сам.ИАрена = arena.НовАрена(конт, аренаКонф)
  50. сам.ресурсы = bot_resurs.НовБотРесурсы(конт, сам)
  51. return сам
  52. }
  53. func (сам *АренаАнгар)Пуск(){
  54. сам.Обновить()
  55. bf_angar_fuel.ТопливоНайти(сам.конт)
  56. }
  57. // Золото -- возвращает объект топлива в ангаре
  58. func (сам *АренаАнгар) Золото() ИСтатПарам {
  59. return сам.золото
  60. }
  61. // Топливо -- возвращает объект топлива в ангаре
  62. func (сам *АренаАнгар) Топливо() ИСтатПарам {
  63. return сам.топливо
  64. }
  65. // СереброСессия -- возвращает объект серебра за текущую сессию
  66. func (сам *АренаАнгар) СереброСессия() ИСтатПарам {
  67. return сам.сереброСессия
  68. }
  69. // Серебро -- возвращает объект серебра в ангаре
  70. func (сам *АренаАнгар) Серебро() ИСтатПарам {
  71. return сам.серебро
  72. }
  73. // Запускает обработку ангара
  74. func (сам *АренаАнгар) пуск() {
  75. { // Запуск компонентов
  76. }
  77. фнЦикл := func() {
  78. сам.Обновить()
  79. // сам.конвойПроверить()
  80. // сам.ПродуктВремяСейчас().Set("01:00")
  81. }
  82. go func() {
  83. // сам.ОбратВремяУст("01")
  84. for {
  85. select {
  86. case <-сам.конт.Ctx().Done(): // Отмена контекста
  87. return
  88. // case <-сам.ВремяОстат().КаналСиг(): // Метка времени
  89. // фнЦикл()
  90. default: // Запускается раз в минуту
  91. фнЦикл()
  92. time.Sleep(time.Minute * 1)
  93. }
  94. }
  95. }()
  96. }
  97. // Прогресс -- возвращает прогресс уровня игрока
  98. func (сам *АренаАнгар) Прогресс() ИСтатПарам {
  99. return сам.progress
  100. }
  101. // ИгрокиОнлайн -- возвращает количество игроков онлайн
  102. func (сам *АренаАнгар) ИгрокиОнлайн() ИСтатПарам {
  103. return сам.игроковОнлайн
  104. }