Файлы с картами комнат имеют формат xml и хранятся в папке Rooms. В одном файле хранятся все комнаты одной локации.
Чтобы загрузить файл, нужно ввести путь к нему, начиная с папки Rooms например "rooms/rooms_mane" без расширения xml, нажать "загрузить", удерживая Ctrl (это нужно чтобы не загрузить случайно, т.к. там нет подтверждения).
Сохранение идёт через обычное диалоговое окно.

Редактор может работать в двух режимах - для случайно генерируемых локаций (рандомных) и для локаций с постоянной картой (не рандомных). Они различаются тегом <land serial="1"/> для постоянных карт в начале файла и задаются добавлением этого тега вручную через текстовый редактор.
При загрузке карты, с этим тегом или без него, автоматически установится нужный режим.
Во втором режиме редактор будет показывать общую карту, в первом - только список комнат.

Кнопка "обновить список" - чтобы создать новую комнату на основе старой нужно ввести для неё новое имя и нажать эту кнопку. Копия комнаты появится в списке с новым именем.
Чтобы создать новую комнату в локации с постоянной картой, нужно нажать на пустое место для комнаты и начать редактирование. Нужно следить за совпадением проходов с соседних комнатах!
Кнопка "свойства" - показать свойства комнаты. У объектов и комнат есть свойства, задаваемые в формате xml. Нужно следить за правильностью синтаксиса!
Кнопка "слой" - для локаций с постоянной картой переключает передний/задний слой комнат. Для рандомных карт нужно устанавливать свойства отдельных комнат.
Кнопка "удалить" - удаляет комнату (нужно держать Ctrl)
Кнопка "выбрать объект" - нужна чтобы выбрать объект и смотреть или менять его свойства. Чтобы передвинуть объект нужно поменять ему свойства x и y. Также можно поменять и сам тип объекта, изменив его id. Все другие свойства см. ниже.
Кнопка "проверить" - проверяет правильность xml в свойствах и форматирует его

Параметры комнаты:
	test="1" - для тестирования новой комнаты, она будет для генератора в приоритете и не будет зависеть от уровня
	tip - тип комнаты
		uniq - будет единственной в локации
		не участвует в рандомном подборе:
		beg0 - комната, с которой начинается локация при первом посещении
		back - комната заднего слоя 
		roof - крыша в Мейнхеттене
		pass - проход между зданиями
		passroof - проход на крыше
	uniq="1" - будет единственной в локации, работает аналогично tip="uniq"
	entip - тип случайных врагов, 0-монстры, 1-рейдеры, 2-роботы, 3-работорговцы, 4-наёмники, 5-аликорны, 6-зебры, 7-стальные рейнджеры
	back="X" - X является для этой комнаты комнатой второго слоя.
	Чтобы установить для обычной комнаты комнату второго слоя, нужно прописать в её свойствах back="X", где X - имя комнаты второго слоя. Для самой комнаты X нужно прописать tip="back", чтобы исключить её из рандомной выборки.
	level - уровень. Если задать например level="2", то комната будет появляться только со второго уровня рандомной локации
	base="1" - является безопасной зоной, например базовым лагерем (запрещено применение оружия, телекинез и открывание контейнеров)
	bezdna="1" - при падении вниз происходит переход в нижнюю локацию даже во время боя, а если её нет, то возврат на контрольную точку
	nomap="1" - отключена карта в пипбаке
	retdark="1" - возвращать туман войны
	levitoff="1" - самолевитация и полёты запрещены
	portoff="1" - телепортация запрещена
	desoff="1" - стены не разрушаются
	petoff="1" - спутника не будет
	noblack="1" - тумана войны не будет
	
	vis - мультипликатор видимости, 0.5 - видимость вдвое меньше
	rad - радиоактивность воздуха, рад в секунду, 0 по умолчанию
	wrad - радиоактивность воды, 1 по умолчанию
	wopac - непрозрачность воды, от 0 до 1
	wlevel - уровень воды, считая от верха, по умолчанию 100 - воды нет, 0 - вся комната заполнена водой
	
	wtip - внешний вид воды, 0 по умолчанию голубая, 1 зелёная, 2 серая
	color - цветофильтр
		green
		red
		yellow
		blue
		purple
		black
	dark - затемнение заднего фона, 85 - будет полностью чёрный, -50 - будет вполне светлый, 0 - нормальное
	backform - форма задней стены 0-закрашено всё, 1-боковые части, 2-нижняя часть
	backwall="X" - Фоновая стена	
		sky - стены нет
		tConcreteDirt - грязный коричневый бетон
		tLeaking - большие бетонные плины
		tMossy	- мох
		tStones
		tCave - пещера
		tDirt - земля 
		tMetalPlates2
		tRivets	- заклёпки
		tStConcrete - бетонная стена убежища
		ну или любые другие из доступных id текстур
	lon="1" - все лампы включены
	lon="-1" - все лампы выключены
	music - музыка
	
	
	
Параметры объектов, которые задаются через карту:
	Любой объект
		id - идентификатор типа объекта, ну например ящик, контейнер или определённый юнит
		uid - уникальный идентификатор для доступа через скрипты
		code - уникальный внутренний код объекта, генерируется автоматически. Если сделать 2 объекта с одним и тем же кодом, то состояние одного будет влиять на состояние другого, так что такого лучше не делать, чтобы не было багов!
	Активная область, то есть невидимая прямоугольная область, реагирующая на вход в неё ГГ
		Параметры, задаваемые через xml:
			off="1" - отключена
			x,y-координаты левого нижнего угла
			w,h-ширина и высота (2,2 по умолчанию)
			tip - тип (1-активируется гг, по умолчанию)
			mess - сообщение, которое выводится, пока область активна
			down="1" - опция, устанавливающая, что сообщение показывается внизу, а не вверху
			tilehp="1" - хп блоков на месте области устанавливается в 1
			tileop="0.2" - непрозрачность воздуха
			grav="-0.5" - изменение гравитации, 1 - без изменений
			emit="X" - испускать частицы X
			dens - плотность частиц, по умолчанию 1
			port="X:Y" телепорт в координаты X:Y
			grav="-0.5" emit="lift" dens="1" vis="lift" - лифт
			port="4:3" vis="Port" emit="purple_spark" dens="2" - телепорт
		Команды:
			on, off, onoff
	Любой юнит
		turn - если больше 0 повёрнут вправо, меньше 0 - влево
		hpmult="Х" - умножить хп юнита на Х
		ai - тип ИИ
		unres="1" не реагировать на сигналы от других юнитов
		qid - идентификатор для квеста
		fraction - фракция юнита, обычно для всех задана своя фракция, но можно задать и другую, например 100 - фракция игрока. Юниты одной фракции не могут попадать друг по другу из обычного оружия.
	Рейдеры:
		tr=1-9 - разновидность
		ai="stay" - будет стоять на месте
		ai="quiet" - будет стоять на месте и не трындеть
		weap="X" - имеет оружие X
		emit="X" - может запустить X вертушек
	Зомби:
		tr - разновидность
		dig - 0 - всегда не закопанный, 1 - всегда будет закопанный, проснётся если пройти мимо, 2 - глубоко закопанный, проснётся только по команде своих, в случае тревоги или взрыва
	Турели:
		fraction="100" - не враждебная турель
		tr - оружие
		vis - настройка угла обзора для стенных турелей: left, right, up, down
	Мины:
		tr - тип мины 1-самодельная, 2-обычная, 3-плазменная, 4-импульсная
	Объекты, наносящие урон
		tr - используемое оружие
		kolammo - количество патронов
		och - выстрелы очередью
		expl - урон от взрыва
	Пленники в клетке
		tr - внешний вид (1-12)
		sr - 1-короткая цепь, 2-длинная цепь
		st="1" - открыта
		lock - уровень замка
	Контрольные точки:
		tele="1" - с этой точки можно телепортироваться на базу
	Боксы, двери и кнопки:
		Параметры, задаваемые через xml:
			open="1" - дверь открыта, кнопка нажата
			Содержимое:
				Вложенные тэги <item id="revo" kol="2"/> - заданный предмет в контейнере, кроме обычного содержимого
				kol - количество или состояние. для оружия 2 - идеальное состояние, 1 - хорошее состояние, 0 - плохое
			cont - заданное содержимое, "" для пустого контейнера, 
				case, chest, safe, ammo, expl, wbattle, wbig, book, table, med, med2, instr, trash
			lock - уровень замка, 0 - замка нет
			locktip - тип замка, 0 - не взламываемый замок, 1 - механический, 2 - электронный, 4 - отключить (ремонт), 5 - починить (ремонт)
			lockhp - хп замка, 10 - по умолчанию, 10000 - замок, который не заклинит
			lockatt - попытки взлома для терминала, 3 по умолчанию
			key - ключ от замка
			keyloss - уменьшить количество ключей после успешного применения: 0 - не уменьшать, 1 - использовать ключ сразу, 2 - использовать только если замок нельзя открыть другим способом (?)
			mine - уровень минирования
			minetip - 3-бомба, 6-сигнализация
			damage - урон от взрыва
			hack="1" - объект хакается через терминал доступа
			inter - тип интерактивности
			time - время активации в тактах (1/30с) - сколько нужно удерживать Е чтобы объект активировался
			autoclose - время автоматического закрывания или выключения в тактах
		Движение (работает для боксов и стенных турелей):
			Вложенный тэг <move dx="12" tstay="30" tmove="90"/>
				dx, dy - движение на заданное количество блоков
				tstay - время простаивания в тактах
				tmove - время движения в тактах
				on="1" - включено по умолчанию
		Простые команды для создания интерактивности:
			allid - общий id для команд, команда будет выполнена только для тех, чей allid совпадает с allid инициатора команды
			allact - команда для всех объектов в комнате, чей allid равен allid инициатора, или вообще для всех, если allid не задано
				hack_robot - отключить турели
				hack_lock - открыть замки (только для тех объектов, у кого установлен параметр hack="1", по умолчанию это железные двери и стенные сейфы)
			fun - особая функция
		Команды allact:
			unlock - отпереть замок, снять минирование
			open - открыть
			close - закрыть
			swap - открыть/закрыть
			dam - взорвать взрывчатку
			move - включить движение
			stop - остановить движение
			pop - движение вкл/выкл
			move1 - ехать из начала в конец
			move2 - ехать из конца в начало
			move3 - ехать из одного конца в другой
	Фоновые объекты:
		fr - кадр, для объектов, состоящих из нескольких кадров
		Подсветка:
			w,h - ширина и высота в блоках
			a - интенсивность от 0 до 1
		Лампы:
			lon="1" - всегда включен
			lon="-1" - всегда выключен
			
		
		
Скрипты.
	Более широкие возможности по сравнению с простыми командами, но по факту работают только в не-рандомных локациях, в рандомных могут работать некорректно из-за повторямости одних и тех же объектов. Поэтому вместо них нужно использовать команды allact.
	Для доступа к объекту с помощью скрипта у него должен быть уникальный идентификатор uid
	Также кроме скриптов, записанных прямо в файл карты, есть ещё скрипты, хранящиеся в ресурсах игры, которые можно вызвать по их идентификатору
	<scr eve="X"/> eve - событие:
		Для боксов:
			не задано - выполнить любое действие (открыть контейнер, открыть или закрыть дверь, активировать терминал или кнопку)
			open - открыть дверь
			close - закрыть дверь
			die - уничтожить бокс
		Для активной области:
			over или не задано - войти в область
			out - выйти из области
		Для турели:
		Для зомби:
			любая команда - выкопаться
	Команды записываются в тэг <scr> или вложенный тэг <s>, если команд несколько
	<s act="X" targ="Y" t="T" val="Z" n="N"/>
		act - команда (обязательный параметр)
		targ - цель команды
		val - значение команды
		t - задержка в секундах после команды. Если задержка 0 или не указана, разница между этой командой и следующей будет 1 такт. Если во всех командах 0, они все выполнятся в одном такте
	Команды:
	Если присутствует параметр targ - отправить команду объекту по его uid-у
		Команда области:
			off или on - включить или выключить
			    <s act="on" targ="begCP"/>
		Команда для двери или контейнера:
			hack - хакнуть
			unlock - открыть замки и снять минирование
				<s act="unlock" targ="begDoor"/>
			open или close - открыть или закрыть
		Команда для контрольной точки:
			любая команда - активировать
	take - дать предмет val в количестве n
	mess - вывести сообщение по центру экрана. val - id сообщения, opt1="1" - вывести внизу экрана, а не вверху, opt2="1" - добавить сообщение к уже выведенному
	music - включить музыку
	dial - вывести заднную реплику диалога. n="0" номер реплики
		<s act="dial" val="begDialCP" n="0" t="2"/>
	dialog - вывести весь диалог
	camblack - задать шаг затемнения экрана
	control off - выключить управление gg
	    <s act="control off"/>
	control on - включить управление gg
		<s act="control on" t="0.5"/>
	gotocp - переместиться на чекпоинт
	perk - добавить перк Z
	anim - включить анимацию ГГ Z,  opt1="1" - установить конечный кадр анимации
	black - установить затемнение 0-1, 1 - полное
	dback - установить измнение затемнения, меньше -2 - медленно убирать затеменение, 2 - медленно затемнять
	quest - активировать квест Z
		<s act="quest" val="toExit"/>
	stage - закрыть этап N квеста Z
    <s act="off" targ="this"/> - отключить этот объект
	gotoland - перейти в другую местность
	actprob - активировать испытание
