| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // package death_worker -- исполнение схватки
- package death_worker
- import (
- "time"
- . "wartank/app/lev0/types"
- "wartank/app/lev1/stat_param"
- "wartank/app/lev2/arena"
- "wartank/app/lev2/arena_death/death_worker/death_on"
- "wartank/app/lev2/arena_death/death_worker/death_on/battle_sound"
- )
- // СражениеДействие -- исполнение схватки
- type СхваткаИсполнитель struct {
- ИАрена
- конт ИБотКонтекст
- бот ИБот
- еслиНачало ИСтатПарам
- // Непосредственное сражение
- действие *death_on.СхваткаДействие
- sound *battle_sound.BattleSound // Однопоточное проигрывание звука
- }
- // НовСражениеДействие -- возвращает новый исполнитель схватки
- func НовСхваткаИсполнитель(конт ИБотКонтекст, bot ИБот) *СхваткаИсполнитель {
- сам := &СхваткаИсполнитель{
- конт: конт,
- бот: bot,
- еслиНачало: stat_param.НовСтатПарам("тревога"),
- sound: battle_sound.NewBattleSound(),
- }
- аренаКонфиг := arena.АренаКонфиг{
- Бот_: bot,
- АренаИмя_: "Ход сражения",
- СтрКонтроль_: `<title>Сражения</title>`,
- ФнПуск_: сам.пуск,
- СтрУрл_: "https://wartank.ru/pve",
- }
- сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
- return сам
- }
- // пуск исполнителя схватки
- func (сам *СхваткаИсполнитель) пуск() {
- сам.еслиНачало = stat_param.НовСтатПарам("тревога")
- }
- // Танковать -- выполняет битву
- func (сам *СхваткаИсполнитель) Танковать() {
- сам.действие = death_on.НовСхваткаДействие(сам.конт, сам.бот) // IBattleOn (онлайн)
- сам.sound.Play()
- time.Sleep(time.Second * 10) // Задержка для звука на странице
- <-сам.действие.Контекст().Done()
- // log._rintf("Battle.runBaton(): сражение завершено\n")
- }
- // Тревога -- возвращает признак начала сражения (для браузера)
- func (сам *СхваткаИсполнитель) Тревога() ИСтатПарам {
- return сам.еслиНачало
- }
|