arena_battle.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // package arena_battle -- объект сражения
  2. package arena_battle
  3. import (
  4. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  5. . "wartank/app/lev0/types"
  6. "wartank/app/lev2/arena"
  7. "wartank/app/lev2/arena/arena_battle/bf_battle_make"
  8. "wartank/app/lev2/arena/arena_battle/bf_battle_register"
  9. "wartank/app/lev2/arena/arena_battle/bf_battle_wait"
  10. "wartank/app/lev2/arena/arena_build"
  11. )
  12. // АренаСражение -- объект сражения
  13. type АренаСражение struct {
  14. ИАренаСтроение
  15. конт ILocalCtx
  16. клиент ИХттпВоркер
  17. }
  18. // НовСражение -- возвращает новую арену сражения PVE
  19. func НовСражение(конт ILocalCtx) *АренаСражение {
  20. бот := конт.Get("бот").Val().(ИБот)
  21. сам := &АренаСражение{
  22. конт: конт,
  23. клиент: бот.Сеть().ВебВоркер(),
  24. }
  25. аренаКонфиг := arena.АренаКонфиг{
  26. Конт_: конт,
  27. АренаИмя_: "Арена сражения",
  28. СтрКонтроль_: "<title>Сражения</title>",
  29. СтрУрл_: "https://wartank.ru/pve",
  30. }
  31. сам.ИАренаСтроение = arena_build.НовАренаСтроение(конт, аренаКонфиг)
  32. конт.Set("pve", сам, "Сражение с ботами")
  33. return сам
  34. }
  35. func (сам *АренаСражение) Пуск() {
  36. сам.ИАренаСтроение.Пуск()
  37. bf_battle_register.СражениеРегистрация(сам.конт)
  38. bf_battle_wait.СражениеОжидать(сам.конт)
  39. bf_battle_make.СражениеВыполнить(сам.конт)
  40. }