Changeset - 9845ab51a6c8
[Not reviewed]
default
0 3 0
Silverwing - 4 years ago 2020-11-28 15:15:37

Multiple fixes and improvements
3 files changed with 119 insertions and 34 deletions:
0 comments (0 inline, 0 general) First comment
main3.lua
Show inline comments
 
@@ -246,6 +246,7 @@ obj {
 
	nam = 'potion_open';
 
	disp = 'Зелье открытия';
 
	disp2 = 'зелье открытия';
 
	disp3 = 'зелье открытия';
 
	inv = 'Сваренное мной зелье открытия пахнет ржавым металлом и имеет неприятный рыжевато-серый цвет. Пробирка горячая на ощупь. ';
 
}
 

	
 
@@ -253,6 +254,7 @@ obj {
 
	nam = 'potion_light';
 
	disp = 'Зелье света';
 
	disp2 = 'зелье света';
 
	disp3 = 'зелье света';
 
	inv = 'Сваренное мной зелье света совершенно прозрачно и источает легкий аромат свежести, как воздух после грозы. ';
 
}
 

	
 
@@ -268,14 +270,15 @@ obj {
 
	nam = 'potion_enrichment';
 
	disp = 'Зелье обогащения';
 
	disp2 = 'зелье обогащения';
 
	disp3 = 'зелье обогащения';
 
	inv = 'Сваренное мной зелье обогащения сияет словно настоящее золото. Когда я встряхиваю пробирку, мне слышится в ней звон монет. ';
 
}
 

	
 
obj {
 
	nam = 'emerald';
 
	disp = 'Изумруд';
 
	 disp2 = 'изумруд';
 
	 disp3 = 'изумруд';
 
	disp2 = 'изумруд';
 
	disp3 = 'изумруд';
 
	inv = 'Небольшой, изящно ограненный изумруд. Очень красивый. ';
 
}
 

	
 
@@ -289,6 +292,8 @@ obj {
 
	nam = 'tool_box';
 
	dsc = 'На одной из полок я вижу коробочку с {набором отверток}. ';
 
	disp = 'Набор отверток';
 
	disp2 = 'набор отверток';
 
	disp3 = 'набор отверток';
 
	inv = 'Набор отверток для электроники. Нигде на коробке нет никаких отметок о производителе. Отвертки при это очень качественно изготовлены и прекрасно сохранились. ';
 
};
 

	
 
@@ -1792,6 +1797,10 @@ function start(load)
 
		if here().theme then
 
			here():theme();
 
		end;
 
		
 
		if here().onboot then
 
			here():onboot();
 
		end;
 
	else
 
		local computer_parts = {
 
			'cvx-rst-i3sb',
solarscale.lua
Show inline comments
 
@@ -262,13 +262,68 @@ dlg {
 
			open('#tl4r2a');
 
		
 
			pr [[Драконесса, посмотрев на экран, сообщает: "Кажется, заработал". ]];
 
		end, 
 
		{
 
		end,
 
        {
 
			'#tl4r2a', "[Подойти к терминалу]Отлично, посмотрим.",
 
			function(s)
 
				walkin('terminal');
 
			end;
 
		},
 
        {'Вы сможете отремонтировать его?', function(s)
 
			if have('part_box') then
 
				if solarscale_helps > 0 then
 
					open('#tl4r2cfa');
 
					open('#tl4r2cfb');
 
					close('#tl4r2cfc');
 
					close('#tl4r2cfd');
 
					return 'Соларскейл заглядывает в коробку с запчастями и, немного покопавшись в ней, сообщает: "Думаю, справлюсь. Позволите?"';
 
				else
 
					close('#tl4r2cfa');
 
					close('#tl4r2cfb');
 
					close('#tl4r2cfc');
 
					open('#tl4r2cfd');
 
					return 'Соларскейл с сожалением сообщает: "Не думаю, что смогу помочь. Я никогда не встречала компьютеров такого типа". ';
 
				end;
 
			else
 
				close('#tl4r2cfa');
 
				close('#tl4r2cfb');
 
				close('#tl4r2cfd');
 
				open('#tl4r2cfc');
 
				return 'Соларскейл задумчиво говорит: "Только если мы найдем запасные детали". '
 
			end;
 
		end, only=true,
 
			{'#tl4r2cfa', 'Да, разумеется. ', function(s)
 
				walkout();
 
				local motherboard = lookup('#motherboard', _'system_unit');
 
				local cpu= lookup('#cpu', _'system_unit');
 
				local ram = lookup('#ram', _'system_unit');
 
				local slot1 = lookup('#slot1', _'system_unit');
 
				local slot2 = lookup('#slot2', _'system_unit');
 
				local slot3 = lookup('#slot3', _'system_unit');
 
			
 
				motherboard.device = _'crx-rdt-i3sb';
 
				cpu.device = _'rcpu200-crx-20mhz';
 
				ram.device = _'rdt-m32-32mb';
 
				slot1.device = _'gva-rx4';
 
				slot2.device = _'fna-100-10mbs_2';
 
				slot3.device = _'kbc-s';
 
			
 
				solarscale_helps = solarscale_helps - 1;
 
	            pc_status = 'ok';
 
			
 
				return 'Соларскейл привычно разбирает компьютер и, заглянув в инструкцию, меняет сломанные детали на новые. Закончив, она собирает его обратно. "Посмотрите! Кажется, я даже смогла немного улучшить его!"';
 
			end},
 
			{'#tl4r2cfb', 'Спасибо, но я сам справлюсь. ', function(s)
 
				walkout();
 
				return 'Соларскейл молча кивает. ';
 
			end},
 
			{'#tl4r2cfc', 'Как думаете, где они могут быть?', function(s)
 
				return 'Соларскейл отвечает: "Этажом ниже был склад, кажется. Есть смысл начать поиск оттуда". ';
 
			end},
 
			{'#tl4r2cfd', '[Закончить разговор]', function(s)
 
				walkout();
 
			end}
 
		};
 
		{
 
			'#tl4r2b', "[Закончить диалог]",
 
			function(s)
 
@@ -315,6 +370,7 @@ dlg {
 
				slot3.device = _'kbc-s';
 
			
 
				solarscale_helps = solarscale_helps - 1;
 
	            pc_status = 'ok';
 
			
 
				return 'Соларскейл привычно разбирает компьютер и, заглянув в инструкцию, меняет сломанные детали на новые. Закончив, она собирает его обратно. "Посмотрите! Кажется, я даже смогла немного улучшить его!"';
 
			end},
tower.lua
Show inline comments
 
@@ -1731,9 +1731,9 @@ room {
 
	light = false;
 
	nam = 'tower_level_3_room_2';
 
	disp = 'Башня, Склад';
 
	dsc = function(s)
 
	decor = function(s)
 
		if s.light then
 
			return 'Помещение представляет собой колоссальных размеров склад. Рядом со мной находится {#ladder|лестница}, ведущая вверх. Точно такая же {#ladder_down|лестница}, но ведущая вниз расположена чуть поодаль. {#floor|Пол} здесь точно такой же как и в других помещениях башни. {#walls|Стены} отсюда практически не видны, скрытые многочисленными {#shelves|стеллажами}. {#ceilingПотолок} зала расположен на высоте около пяти метров. ';
 
			return 'Помещение представляет собой колоссальных размеров склад. Рядом со мной находится {#ladder|лестница}, ведущая вверх. Точно такая же {#ladder_down|лестница}, но ведущая вниз расположена чуть поодаль. {#floor|Пол} здесь точно такой же как и в других помещениях башни. {#walls|Стены} отсюда практически не видны, скрытые многочисленными {#shelves|стеллажами}. {#ceiling|Потолок} зала расположен на высоте около пяти метров. ';
 
		else
 
			return 'Помещение представляет собой колоссальных размеров склад. В {#darkness|темноте} я могу различить лишь несколько {#shelves|стеллажей} неподалеку от себя. Рядом со мной находится {#ladder|лестница}, ведущая вверх. ';
 
		end;
 
@@ -1790,14 +1790,24 @@ room {
 
	};
 
	obj {
 
		nam = '#door';
 
		dsc = 'В одной из стен расположена небольшая {дверь}, ведущая в другие помещения башни. ';
 
		dsc = function(s)
 
			if _ 'level_3_main_room':disabled() then
 
				return 'В одной из стен расположена небольшая {дверь}, запертая на засов. ';
 
			else
 
				return 'В одной из стен расположена небольшая {дверь}. ';
 
			end;
 
        end;
 
		act = function(s)
 
			_ 'level_3_main_room':enable();
 
			_('level_3_next_room', 'tower_level_3'):enable();
 
			_('level_3_room_2_door', 'tower_level_3'):enable();
 
			return [[Я отодвигаю засов. Теперь путь свободен. Дверь ведет в кабинет, расположенный на третьем этаже башни. ]];
 
	        if _ 'level_3_main_room':disabled() then
 
				_ 'level_3_main_room':enable();
 
				_('level_3_next_room', 'tower_level_3'):enable();
 
				_('level_3_room_2_door', 'tower_level_3'):enable();
 
				return [[Я отодвигаю засов. Теперь путь свободен. Дверь ведет в кабинет, расположенный на третьем этаже башни. ]];
 
	        else
 
		        return [[За приоткрытой дверью я вижу кабинет. ]];
 
	        end;
 
		end;
 
	};
 
	}:disable();
 
	obj {
 
		state = 0;
 
		nam = '#shelves';
 
@@ -1828,7 +1838,7 @@ room {
 
			return 'Я снимаю костюм радиационной защиты и оставляю его в шкафчике. ';
 
		end;
 
	end;
 
	dsc = function(s)
 
	decor = function(s)
 
		if power_on then
 
			return 'Небольшая комната, самая маленькая из виденных мной помещений башни. Каменные {#walls|стены}, {#floor|пол} и {#ceiling|потолок} ничем не отличаются от таковых в других комнатах. Несколько {#lamps|ламп} на потолке дают яркий белый свет. ';
 
		else
 
@@ -1874,14 +1884,23 @@ room {
 
			walkin('reactor_control_panel');
 
		end;
 
	};
 
	
 
	obj {
 
		nam = '#next_door';
 
		dsc = 'В стене напротив панели управления расположена небольшая каменная {дверь}, закрытая на щеколду. ';
 
		dsc = function(s)
 
	        if _'level_2_main_room':disabled() then
 
		        return 'В стене напротив панели управления расположена небольшая каменная {дверь}, закрытая на щеколду. ';
 
	        else
 
		        return 'В стене напротив панели управления расположена небольшая каменная {дверь}. ';
 
	        end;
 
        end;
 
		act = function(s)
 
			_'level_2_main_room':enable();
 
			_'level_2_next_room':enable();
 
			return 'Я отодвигаю щеколду и открываю дверь. ';
 
	        if _'level_2_main_room':disabled() then
 
				_'level_2_main_room':enable();
 
				_'level_2_next_room':enable();
 
				return 'Я отодвигаю щеколду и открываю дверь. ';
 
	        else
 
		        return 'Через приоткрытую дверь я вижу алхимическую лабораторию. ';
 
	        end;
 
		end;
 
	}
 
}
 
@@ -2019,7 +2038,7 @@ room {
 
			end;
 
		end;
 
		used = function(s, o)
 
			if o^'potion_enrichment' then
 
			if o^'potion_enrichment' and rods_raised then
 
				remove('potion_enrichment', pl);
 
				rods_enriched = true;
 
				return 'Я выливаю зелье на топливный стержень. С виду ничего не изменилось. ';
 
@@ -2039,7 +2058,7 @@ room {
 
}: with {
 
	obj {
 
		nam = '#tabletop';
 
		act = 'Столешница сделана из того же материала, что и стены. Прочность этого холодныго и гладкого камня не вызывает сомнений.';
 
		act = 'Столешница сделана из того же материала, что и стены. Прочность этого холодного и гладкого камня не вызывает сомнений.';
 
	};
 
	obj {
 
		nam = '#cabinets1';
 
@@ -2083,7 +2102,7 @@ room {
 
			if s.state == 0 then
 
				return 'Дверца заперта. Резной узор украшает железную накладку замка. ';
 
			else
 
				return 'Дверца прикрыта. Резной узор украшает железную накладку замка. ';
 
				return 'За приоткрытой дверцей я вижу гостиную башни. ';
 
			end;
 
		end;
 
		used = function(s, o)
 
@@ -2123,6 +2142,8 @@ obj {
 
obj {
 
	nam = 'part_box';
 
	disp = 'Коробка с запчастями';
 
	disp2 = 'коробка с запчастями';
 
	disp3 = 'коробку с запчастями';
 
	inv = function(s)
 
		walkin('part_box_inside');
 
	end;
 
@@ -2139,6 +2160,7 @@ obj {
 

	
 
room {
 
	nam = 'part_box_inside';
 
	nofollow = true;
 
	disp = 'Коробка с запчастями';
 
	dsc = 'Большая коробка, внутри нее я вижу следующие детали: ';
 
	way = {
 
@@ -2581,6 +2603,9 @@ room {
 
		--s:push("Type 'HELP' to list available commands");
 
		s:push('');
 
	end;
 
	onboot = function(s)
 
		s:process_directory_structure(s.directory_structure['C:']);
 
	end;
 
	theme = function(s)
 
		theme.set('scr.gfx.bg', 'images/terminal.png');
 
		theme.set('scr.col.bg', '#000000');
 
@@ -2684,7 +2709,7 @@ room {
 
			['C:'] = {
 
				['DOCS'] = {
 
					['PASSWORD.TXT'] = function(s, command, args)
 
						if command == 'PRINT.EXE' then
 
						if command == 'PRINT.COM' then
 
							s:push('Ошибка: Нельзя вывести двоичные данные');
 
							--s:push('Error: Unable to print binary data');
 
						else
 
@@ -2692,7 +2717,7 @@ room {
 
						end;
 
					end;
 
					['CRYPT.COM'] = function(s, command, args)
 
						if command == 'PRINT.EXE' then
 
						if command == 'PRINT.COM' then
 
							s:push('Ошибка: Нельзя вывести двоичные данные');
 
							--s:push('Error: Unable to print binary data');
 
						elseif command == '' then
 
@@ -2714,7 +2739,7 @@ room {
 
						end;
 
					end;
 
					['CRYPT.CFG'] = function(s, command, args)
 
						if command == 'PRINT.EXE' then
 
						if command == 'PRINT.COM' then
 
							s:push('[MAIN]');
 
							s:push('ALGORITHM=AES');
 
							s:push('[RSA]');
 
@@ -2724,16 +2749,8 @@ room {
 
							s:push('Bad command or file name');
 
						end;
 
					end;
 
					['README.TXT'] = function(s, command, args)
 
						if command == 'PRINT.EXE' then
 
							s:push('Ошибка: Нельзя вывести двоичные данные');
 
							--s:push('Error: Unable to print binary data');
 
						else
 
							s:push('Bad command or file name');
 
						end;
 
					end;
 
					['KEY.TXT'] = function(s, command, args)
 
						if command == 'PRINT.EXE' then
 
						if command == 'PRINT.COM' then
 
							s:push('Ошибка: Нельзя вывести двоичные данные');
 
							--s:push('Error: Unable to print binary data');
 
						else
 
@@ -2816,7 +2833,8 @@ room {
 
				['AUTOEXEC.BAT'] = function(s, command, args)
 
					if command == 'PRINT.COM' then
 
						s:push('SET PATH C:\\SYSTEM');
 
						s:push('REM CONNECT.EXE - So I may use the main OS interface');
 
						--s:push('REM CONNECT.EXE - So I may use the main OS interface');
 
	                    s:push('REM CONNECT.EXE - Для доступа к командной строке');
 
					elseif command == '' then
 
						s:push('Bad command or file name');
 
					end;
 
@@ -2850,6 +2868,8 @@ room {
 
						s:push('Просто запусти ее, чтобы войти в систему.');
 
						s:push('В дальнейшем, когда ты разберешься с системой, сможешь ');
 
						s:push('снова перестать ей пользоваться.');
 
                        s:push('Пароль от основного интерфейса -- в папке DOCS в файле PASSWORD.TXT ');
 
						s:push('разумеется, он зашифрован. ');
 
					elseif command == '' then
 
						s:push('Bad command or file name');
 
					end;
0 comments (0 inline, 0 general) First comment
You need to be logged in to comment. Login now