package battle_worker import ( "context" "time" . "gitp78su.ipnodns.ru/svi/kern" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/types" "wartank/app/lev1/health" "wartank/app/lev1/manevr" "wartank/app/lev1/shot" "wartank/app/lev2/arena" "wartank/app/lev2/arena/arena_build" ) /* Предоставляет сетевой компонент при непосредственном сражении */ // СражениеДействие -- непосредственно танкует в сражении type СражениеДействие struct { ИАренаСтроение конт ILocalCtx кнт context.Context // Контекст сражения фнОтменить func() // Функция отмены сражения выстрел ИВыстрел // Объект выстрела здоровье ИЗдоровье // Текущее здоровье танка манёвр ИМанёвр // Возможность маневрирования логин string еслиКонец ISafeBool } // НовСражениеДействие -- возвращает новый *BattleOn func НовСражениеДействие(конт ILocalCtx) ИСражениеПроцесс { // Ограничить время сражения бота кнтСражение, фнОтменить := context.WithTimeout(конт.Ctx(), time.Second*305) сам := &СражениеДействие{ конт: конт, кнт: кнтСражение, фнОтменить: фнОтменить, логин: конт.Get("бот_имя").Val().(string), еслиКонец: NewSafeBool(), } аренаКонфиг := arena.АренаКонфиг{ Конт_: конт, АренаИмя_: "Исполнитель сражения", СтрКонтроль_: `