package types

import (
	"context"
	"wartank/pkg/alias"
)

// ИБот -- серверный бот с реальным состоянием
type ИБот interface {
	// Имя -- возвращает им бота
	Имя() string
	// Пароль -- возвращает пароль бота
	Пароль() string
	// Номер -- возвращает номер бота
	Номер() alias.БотНомер
	// Ангар -- возвращает ангар бота
	Ангар() ИАнгар
	// Стата -- возврщает статистику танка
	Стата() ИТанкСтат
	// Сеть -- возвращает объект сети
	Сеть() ИБотСеть
	// Пуск -- запускает бота в работу
	Пуск()
	// АвтоИграУст -- устанавливает признак автоматического начала игры
	АвтоИграУст()
	// АвтоИграСброс -- сбрасывает признак автоматического начала игры
	АвтоИграСброс()
	// АвтоИграЕсли -- возвращает признак автоматического начала игры
	АвтоИграЕсли() bool
	// ЕслиПуск -- признак, что бот работает
	ЕслиПуск() bool
	// Сервер -- возвращает ссылку на объект сервера
	Сервер() ИСервер
	// Контекст -- возвращает контекст бота
	Контекст() context.Context
	// Закончить -- отменяет контекст бота
	Закончить()
}
