arena_angar.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package arena_angar
  2. import (
  3. . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
  4. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  5. "wartank/app/lev0/cons"
  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/lev2/arena/arena_angar/bf_gold_find"
  11. "wartank/app/lev2/arena/arena_angar/bf_silver_find"
  12. "wartank/app/lev2/arena/arena_angar/bf_tank_stat"
  13. "wartank/app/lev3/bot/bot_stat/bot_resurs"
  14. )
  15. /*
  16. Объект ангара приложения
  17. */
  18. // Ангар -- ангар для танка
  19. type АренаАнгар struct {
  20. ИАрена
  21. конт ILocalCtx
  22. progress ИСтатПарам
  23. топливо ИСтатПарам
  24. серебро ИСтатПарам
  25. золото ИСтатПарам
  26. игроковОнлайн ИСтатПарам
  27. сереброСессия ИСтатПарам
  28. ресурсы ИБотРесурсы
  29. танкСтат ИТанкСтат
  30. }
  31. // НовАнгар -- возвращает новый *Angar
  32. func НовАнгар(конт ILocalCtx) ИАренаАнгар {
  33. Hassert(конт != nil, "НовАнгар(): ILocalCtx==nil")
  34. сам := &АренаАнгар{
  35. конт: конт,
  36. progress: lev1.НовСтатПарам("прогресс"),
  37. игроковОнлайн: lev1.НовСтатПарам("онлайн"),
  38. сереброСессия: lev1.НовСтатПарам("серебро сессия"),
  39. танкСтат: конт.Get("танкСтат").Val().(ИТанкСтат),
  40. серебро: lev1.НовСтатПарам("серебро"),
  41. золото: lev1.НовСтатПарам("золото"),
  42. топливо: lev1.НовСтатПарам("топливо"),
  43. }
  44. аренаКонф := arena.АренаКонфиг{
  45. Конт_: конт,
  46. АренаИмя_: "Ангар",
  47. СтрКонтроль_: "<title>Ангар</title>",
  48. СтрУрл_: "https://wartank.ru/angar",
  49. }
  50. конт.Set("ангар", сам, "Объект ангара бота")
  51. сам.ИАрена = arena.НовАрена(конт, аренаКонф)
  52. сам.ресурсы = bot_resurs.НовБотРесурсы(конт, сам)
  53. return сам
  54. }
  55. func (сам *АренаАнгар) Пуск() {
  56. сам.ИАрена.Пуск()
  57. if сам.Состояние().Получ() == cons.РежимНеСуществует {
  58. сам.Состояние().Уст(cons.РежимПостроено)
  59. }
  60. bf_angar_fuel.ТопливоНайти(сам.конт)
  61. bf_gold_find.ЗолотоНайти(сам.конт)
  62. bf_silver_find.СереброНайти(сам.конт)
  63. bf_tank_stat.ТанкСтатПолучить(сам.конт)
  64. }
  65. // Золото -- возвращает объект топлива в ангаре
  66. func (сам *АренаАнгар) Золото() ИСтатПарам {
  67. return сам.золото
  68. }
  69. // Топливо -- возвращает объект топлива в ангаре
  70. func (сам *АренаАнгар) Топливо() ИСтатПарам {
  71. return сам.топливо
  72. }
  73. // СереброСессия -- возвращает объект серебра за текущую сессию
  74. func (сам *АренаАнгар) СереброСессия() ИСтатПарам {
  75. return сам.сереброСессия
  76. }
  77. // Серебро -- возвращает объект серебра в ангаре
  78. func (сам *АренаАнгар) Серебро() ИСтатПарам {
  79. return сам.серебро
  80. }
  81. // Прогресс -- возвращает прогресс уровня игрока
  82. func (сам *АренаАнгар) Прогресс() ИСтатПарам {
  83. return сам.progress
  84. }
  85. // ИгрокиОнлайн -- возвращает количество игроков онлайн
  86. func (сам *АренаАнгар) ИгрокиОнлайн() ИСтатПарам {
  87. return сам.игроковОнлайн
  88. }