﻿# ФАЙЛ ДОЛЖЕН БЫТЬ СТРОГО В КОДИРОВКЕ 65001
# ШАБЛОН УРОВНЯ. ПРОСТО ЗАКИДЫВАЙ В НЕЙРОСЕТЬ И ПРОСИ СГЕНЕРИТЬ НОВЫЙ УРОВЕНЬ

# __________         __    __  .__           _________ .__  __          
# \______   \_____ _/  |__/  |_|  |   ____   \_   ___ \|__|/  |_ ___.__.
#  |    |  _/\__  \\   __\   __\  | _/ __ \  /    \  \/|  \   __<   |  |
#  |    |   \ / __ \|  |  |  | |  |_\  ___/  \     \___|  ||  |  \___  |
#  |______  /(____  /__|  |__| |____/\___  >  \______  /__||__|  / ____|
#         \/      \/                     \/          \/          \/     
#

################################################################################
# ПОДСКАЗКА ДЛЯ РАЗРАБОТЧИКА / ВАЛИДАТОРА КАРТЫ
# 
# 1. РЕСУРСЫ (!DATAPACK, !TEXTURE, !AUDIO): Ресурсы, используемые на уровне. Настриваются отдельно.
# 
# 2. СЕТКА (!WORLD, !MAP): 
#    - Размер задается строго в !WORLD (Ширина; Высота;).
#    - Если строка в !MAP короче Ширины, парсер дополняет её точками ('.').
#    - Символы: . (пусто), Z (флаг), B (кирпич), C (бетон), F (лес), Q (вода), I (лед).
#    - Цифры 0-9 — точки респауна игроков и компьютера.
# 
# 3. РАЗРУШАЕМОСТЬ (!RUIN): Порядок значений строгий: [Прочность B]; [Прочность C];
# 
# 4. МОДЕЛИ ПОВЕДЕНИЯ (AI):
#    - RND  — танк движется к случайной точке карты, затем выбирает новую и т.д.
#    - KILL — танк строго охотится за танком игрока чужой команды.
#    - FLAG — танк целенаправленно движется к флагу 'Z' для его уничтожения.
# 
# 5. КОМАНДЫ (TEAM):
#    - Объекты (и танки компьютера, и игроки) с одинаковым ID команды находятся 
#      в одном союзе. Огонь по своим заблокирован (не могут уничтожить друг друга).
# 
# 6. ТАНКИ ПРОТИВНИКА (!COMPUTER):
#    - Все колонки строго разделены точкой с запятой (;). Пробелы игнорируются.
#    - Текст после последней ';' в строке — это сообщений (не более 64 символов), которое появляется в центре экрана когда танк входит в игру.
#    - Колонки по порядку: 
#      1. HOME (Точки спауна через запятую, например: 2,3,4 - любое количество в соответствии с нумерацией на карте)
#      2. TANK (Модель XY, где X=0..3 серия, Y=0..7 тип)
#      3. DIR (Направление: N, S, E, W)
#      4. AI (Поведение: RND, KILL, FLAG)
#      5. TIMING (Задержка появления)
#      6. HEALTH (Очки жизни)
#      7. SPEED (Макс. скорость)
#      8. ACCEL (Ускорение)
#      9. RELOAD (Перезарядка)
#      10. SHOT (Скорость пули)
#      11. DAMAGE (Урон)
#      12. POINTS (Очки за уничтожение)
#      13. TEAM (ID команды)
# 
# 7. ИГРОКИ (!PLAYERS):
#    - Логика парсинга аналогична !COMPUTER (разделение через ';', игнор пробелов).
#    - На карте поддерживается до 10 игроков (точки респауна в соответствии с нумерацией на карте).
################################################################################

# Ресурсы ##############################################################
# Название ресурсного пакета - название каталога в папке assets
!DATAPACK
template
# Текстура
!TEXTURE
# FILE - файл тектуры
# ATLAS - атлас текстуры
# FILE		ATLAS
texture.png;	texture.txt;
# Звуки
!AUDIO
# START - звук начала стадии
# RUNNING - звук движущихся танков
# SHOT - звук выстрела
# BOOM - звук малого взрыва
# BLAST - звук большого взрыва
# BONUS - звук подборки бонуса
# GAMEOVER - звук неудачного окончания игры
# SUCCESS - звук успешного завершения стадии
# START		RUNNING		SHOT		BOOM		BLAST		BONUS		GAMEOVER	SUCCESS
start.wav;	running0.wav;	shot.wav;	boom.wav;	blast.wav;	bonus.wav;	gameover.wav;	success.wav;
########################################################################
# Название уровня (небольшой текст в одно предложение ~60 символов)
!HEAD
Штурм цитадели
# Описание уровня (многострочный текст; 3-5 вводных предложений; каждая строка ~60 символов)
!NOTICE
Монолитный лабиринт, где твои снаряды бесполезны против стен. 
Вся карта из неуязвимого бетона. Узкие проходы, укрыться негде.
Придется разменивать ХП лицом или выманивать ботов на рикошеты.
Каждая ошибка — минус катка.
!WORLD
# ЗНАЧЕНИЯ ИДУТ СТРОГО В ОДНУ СТРОКУ
# WIDTH	HEIGHT - комфортный диапазон значений (13..20)
13;	14;
!MAP
# Карта мира (оптимально 13x14, но можно незначительно больше)
# . - пустое поле
# 0..9 - точки респауна игроков и компьютера 1 - 10
# Z - флаг (условие победы компьютера)
# B - кирпичный блок (блок имеет несколько стадий разрушения)
# С - бетонный блок (блок имеет повышенную прочность)
# F - лесной массив (лес скрывает танки)
# Q - вода (танки не могут пересекать блоки воды)
# I - лед (танки скользят на льду)
2.....3.....4
..BBBBBBBBB..
..FC..B..CF..
..FB..B..CF..
..FC..B..CF..
..FC..B..BF..
..FCCC.CCCF..
.............
.QQQQQQQQQQQ.
.IIIIIIIIIII.
.............
.............
.....BBB.....
..0..BZB..1..
# Разрушаемость окружения
!RUIN
# B - кирпичный блок (блок имеет несколько стадий разрушения)
# С - бетонный блок (блок имеет повышенную прочность)
# ЗНАЧЕНИЯ ИДУТ СТРОГО В ОДНУ СТРОКУ
# B	C
20;	1000;
# Скорость появления бонусов (в секундах) на карте
!BONUS
# TIMING - интервал появления бонусов на поле (в секундах)
# TIMELIFE - время видимости бонуса (в секундах)
# ЗНАЧЕНИЯ ИДУТ СТРОГО В ОДНУ СТРОКУ
# TIMING	TIMELIFE
10;		8;
# Лимит количества танков противника, находящегося на поле
!LIMIT
5
# Время (в секундах) до начала появления противника
!START
10
# Количество танков противников, их ТТХ и тайминг появления в точках респауна
# HOME - точка респауна
# TANK - модель танка XY, где X=0-3, Y=0-7:
#	Серии танков:
#	X=0 - золотая серия танков
#	X=1 - серебрянная серия танков
#	X=2 - зеленная серия танков
#	X=3 - малиновая серия танков
#	Типы танков:
#	Y=0 - малый танк
#	...
#	Y=7 - большой танк
# DIR - начальное направление движения N, S, E, W
# AI - модель поведения на поле:
#	RND - случаное перемещение по полю
#	KILL - нападение на игрока
#	FLAG - уничтожение флага
# TIMING - время задержки до появления следующего танка на поле (в секундах)
# HEALTH - очки жизни (рекомендуемые значение 1-100)
# SPEED - максимальная скорость (рекомендуемые значение 0.1-10) (точек за кадр)
# ACCEL - ускорение (рекомендуемые значение 0.1-3.0) (точек за кадр)
# RELOAD - скорость перезарядки (в секундах) (рекомендуемые значение 0.1-5)
# SHOT - скорость выстрела (рекомендуемые значение 8-15)
# DAMAGE - очки ущерба жизни противника (рекомендуемые значение 1-100)
# TEAM - команда (значение 0-9) - танки из одной команды не могут друг друга уничтожить
!COMPUTER
# ЗНАЧЕНИЯ ИДУТ СТРОГО В ОДНУ СТРОКУ
# HOME	TANK	DIR	AI	TIMING	HEALTH	SPEED	ACCEL	RELOAD	SHOT	DAMAGE	POINTS	TEAM
2,3,4;	11;	S;	KILL;	0;	100;	3;	0.25;	1.0;	8;	25;	200;	1;	Скоростной танк
2,3,4;	12;	S;	RND;	0;	100;	1;	0.25;	1.0;	8;	25;	200;	2;	Стандартный танк
2,3,4;	13;	S;	RND;	5;	100;	1;	0.25;	1.0;	8;	25;	200;	2;
2,3,4;	14;	S;	RND;	0;	100;	1;	0.25;	1.0;	8;	25;	200;	2;
2,3,4;	15;	S;	RND;	0;	100;	1;	0.25;	1.0;	8;	25;	200;	3;
2,3,4;	16;	S;	RND;	5;	100;	1;	0.25;	1.0;	8;	25;	200;	3;
2,3,4;	17;	S;	RND;	0;	100;	1;	0.25;	1.0;	8;	25;	200;	3;
2,3,4;	20;	S;	KILL;	0;	100;	1;	0.25;	1.0;	8;	25;	300;	4;
2,3,4;	21;	S;	KILL;	5;	100;	1;	0.25;	1.0;	8;	25;	300;	4;
2,3,4;	22;	S;	KILL;	0;	100;	1;	0.25;	1.0;	8;	25;	300;	4;
2,3,4;	23;	S;	KILL;	0;	100;	1;	0.25;	1.0;	8;	25;	300;	4;
2,3,4;	24;	S;	KILL;	5;	100;	1;	0.25;	0.75;	8;	25;	300;	5;
2,3,4;	25;	S;	KILL;	0;	100;	1;	0.25;	0.75;	8;	25;	300;	5;
2,3,4;	26;	S;	KILL;	0;	100;	1;	0.25;	0.75;	8;	25;	300;	5;
2,3,4;	27;	S;	FLAG;	5;	100;	1;	0.25;	0.75;	8;	25;	400;	5;
2,3,4;	30;	S;	FLAG;	0;	100;	1;	0.25;	0.75;	8;	25;	400;	6;
2,3,4;	31;	S;	FLAG;	0;	100;	1;	0.25;	0.5;	8;	25;	400;	6;
2,3,4;	32;	S;	FLAG;	5;	100;	1;	0.25;	0.5;	8;	25;	400;	6;
2,3,4;	33;	S;	FLAG;	0;	100;	1;	0.25;	0.25;	8;	25;	400;	7;
2,3,4;	34;	S;	KILL;	0;	1000;	2;	0.25;	0.20;	8;	100;	400;	7;	БОСС 1!!!
2,3,4;	35;	S;	KILL;	0;	1000;	2;	0.25;	0.15;	8;	100;	400;	8;	БОСС 2!!!
2,3,4;	36;	S;	KILL;	0;	1000;	2;	0.25;	0.10;	8;	100;	500;	8;	БОСС 3!!!
2,3,4;	37;	S;	KILL;	0;	1000;	2;	0.25;	0.05;	8;	100;	500;	9;	БОСС 4!!!
!PLAYERS
# ЗНАЧЕНИЯ ИДУТ СТРОГО В ОДНУ СТРОКУ
# HOME	TANK	DIR	LIVES	HEALTH	SPEED	ACCEL	RELOAD	SHOT	DAMAGE	POINTS	TEAM
0;	00	N;	9;	100;	5;	0.75;	0.5;	15;	30;	500;	0;	Игрок 1
1;	10	N;	9;	100;	5;	0.75;	0.5;	15;	30;	500;	0;	Игрок 2