Files @ 2b0b0271ccb0
Branch filter:

Location: games/Awakening/first_city_inner_rim.lua - annotation

silverwing
fix: dice game
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
77aa01170934
77aa01170934
77aa01170934
77aa01170934
77aa01170934
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
77aa01170934
77aa01170934
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
77aa01170934
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
-- TODO (приват) добавить описание шлюза
-- TODO (приват) картинка с дисплея терминала
-- TODO (приват) вменяемое описание цели данного паззла, тексты на навьярском или реалистичное объяснение их понятности персонажу
first_city_airlock_control = room {
	nam = "first_city_airlock";
	disp = "Комната управления шлюзом центрального зала";
	dsc = function (s)
		return "Вы находитесь в небольшой комнате. Перед вами расположен дисплей, на котором расположены три вертикальные полосы разной длины. " .. tostring(s.tanks[1]) .. "/" .. tostring(s.tanks[2]) .. "/" .. tostring(s.tanks[3]);
	end;
	tanks = {10, 0, 0};
	tanks_capacity = {10, 7, 3};
	selected_source = nil;
	selected_target = nil;
	detect = function(s)	
		if (tanks[2] == 5) then
			return true;
		else
			return false;
		end;
	end;
	obj = {
		"first_city_transfer",
		"first_city_select_s",
		"first_city_select_p",
		"first_city_select_a"
	};
};

first_city_transfer = obj {
	nam = "first_city_transfer";
	dsc = "{Выполнить} ^";
	act = function(s)
		if (first_city_airlock_control.selected_source and first_city_airlock_control.selected_target) then
			local tmp = math.min(first_city_airlock_control.tanks[first_city_airlock_control.selected_source], first_city_airlock_control.tanks_capacity[first_city_airlock_control.selected_target] - first_city_airlock_control.tanks[first_city_airlock_control.selected_target]);
			first_city_airlock_control.tanks[first_city_airlock_control.selected_source] = first_city_airlock_control.tanks[first_city_airlock_control.selected_source] - tmp;
			first_city_airlock_control.tanks[first_city_airlock_control.selected_target] = first_city_airlock_control.tanks[first_city_airlock_control.selected_target] + tmp;
			first_city_airlock_control.selected_source = nil;
			first_city_airlock_control.selected_target = nil;
			return "Выполнено";
		else
			return "Невозможно выполнить";
		end;
	end;
};

first_city_select_s = obj {
	nam = "first_city_select_s";
	dsc = "{Выбрать первый баллон} ^";
	act = function(s)
		if (not first_city_airlock_control.selected_source) then
			first_city_airlock_control.selected_source = 1;
		else
			first_city_airlock_control.selected_target = 1;
		end;
		
		return "";
	end;
};

first_city_select_p = obj {
	nam = "first_city_select_p";
	dsc = "{Выбрать второй баллон} ^";
	act = function(s)
		if (not first_city_airlock_control.selected_source) then
			first_city_airlock_control.selected_source = 2;
		else
			first_city_airlock_control.selected_target = 2;
		end;
		
		return "";
	end;
};

first_city_select_a = obj {
	nam = "first_city_select_a";
	dsc = "{Выбрать третий баллон} ^";
	act = function(s)
		if (not first_city_airlock_control.selected_source) then
			first_city_airlock_control.selected_source = 3;
		else
			first_city_airlock_control.selected_target = 3;
		end;
		
		return "";
	end;
};

first_city_inner_south = room {
	nam = "first_city_inner_south";
	disp = "Лсэрианотр, внутреннее кольцо, юг";
	gate = "first_city_middle_south";
	east = "first_city_inner_east";
	west = "first_city_inner_west";
	navigatable = true;
	dsc = [[
		Вы находитесь в южной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в южной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
};

first_city_inner_east = room {
	nam = "first_city_inner_east";
	disp = "Лсэрианотр, внутреннее кольцо, восток";
	south = "first_city_inner_south";
	north = "first_city_inner_north";
	navigatable = true;
	dsc = [[
		Вы находитесь в восточной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в восточной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
};

first_city_inner_west = room {
	nam = "first_city_inner_west";
	disp = "Лсэрианотр, внутреннее кольцо, запад";
	south = "first_city_inner_south";
	north = "first_city_inner_north";
	navigatable = true;
	dsc = [[
		Вы находитесь в западной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в западной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
};

first_city_inner_north = room {
	nam = "first_city_inner_north";
	disp = "Лсэрианотр, внутреннее кольцо, север";
	east = "first_city_inner_east";
	west = "first_city_inner_west";
	navigatable = true;
	entered = function(s)
		if (first_city_airlock_control.detect(first_city_airlock_control)) then
			path("first_city_to_center"):enable();
		end;
	end;
	dsc = [[
		Вы находитесь в северной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в северной части внутреннего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	way = {
		kh_vroom("Центр города", "first_city_central_room_entrance", "first_city_to_center"):disable();
		kh_vroom("Левиафан", "leviathan_airlock");
	};
};

first_city_central_room_entrance = room {
	nam = "first_city_central_room_entrance";
	disp = "Лсэрианотр, Вход в центральный зал";
	dsc = [[
		Вы находитесь у входа в центральный зал Лсэрианотра. Входная дверь закрывается и вода быстро откачивается из помещения. Вы снимаете скафандр и готовитесь к встрече с Уильямом. Отсюда пути назад уже нет.
	]];
	obj = {
		vway("Центральный зал", "{Вперед}", "final_scene_before_battle");
	};
};