1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 06:27:17 +00:00

nilrider:: new level, Multi-Floor

This commit is contained in:
Zeno Rogue 2024-08-18 21:22:20 +02:00
parent aa174d92c8
commit 7a0501af3d
2 changed files with 27 additions and 54 deletions

View File

@ -332,7 +332,21 @@ void level::init_shapes() {
void level::init() {
if(initialized) return;
if(this == &multifloor) {
for(int y=1; y<=4; y++) {
auto l = new level(*this);
l->name = l->name + "#" + its(y);
l->surface_heisenberg = [y] (hyperpoint h) { return rot_plane(h) - 3 * y; };
l->map_tiles[1][1] = '*';
l->sublevels = {};
sublevels.push_back(l);
}
}
initialized = true;
check_cgi();
real_minx = HUGE_VAL;

View File

@ -895,69 +895,28 @@ level cycloid_slalom(
}
);
level flyoff_sub("", 0, 0, "",
-7.5*dft_block, 7.5*dft_block, 8.5*dft_block, -8.5*dft_block,
{
"ggggggggggggggg!",
"ggggggfffgggggg!",
"ggggggfffgggggg!",
"gggg|ggggg|gggg!",
"ggg-*-----*-ggg!",
"gggg|ggggf|gggg!",
"ggGg|g+ggg|grgG!",
"gGgg|g|xgo|gggg!",
"ggGg|g|ggg|grgg!",
"gggg|!!!gg|gggg!",
"gg--*!T!--*--gg!",
"gggg|!!!gg|gggg!",
"gggggggGGgggggg!",
"ggggggggggggggg!",
"ggggggggggggggg!",
"!!!!!!!!!!!!!!!!"
},
6, 6, {},
[] (hyperpoint h) { return rot_plane(h) - 1.5; }, {}
);
level flyoff(
"Flyoff", 'r', 0,
"Collect all the triangles!\n\n"
"All the lines going through the center are horizontal.\n"
"However, this is Nil geometry. The other lines are NOT horizontal! Clockwise ones slope upwards, and counterclockwise ones slop edownwards.\n"
"Your unicycle is powered only by the gravity. Use that to your advantage!"
level multifloor(
"Multi-floor", 'm', 0,
"There are triangles on the floors below. I mean, DIRECTLY below.\n\nHopefully, you can abuse how straight lines work in this geometry to reach them!"
,
-7.5*dft_block, 7.5*dft_block, 8.5*dft_block, -8.5*dft_block,
-1.5*dft_block, 1.5*dft_block, 2.5*dft_block, -2.5*dft_block,
{
"ggggggggggggggg!",
"ggggggfffgggggg!",
"ggggggfffgggggg!",
"gggg|ggggg|gggg!",
"ggg-*-----*-ggg!",
"gggg|ggggf|gggg!",
"ggGg|g+ggg|grgG!",
"gGgg|g|xgo|gggg!",
"ggGg|g|ggg|grgg!",
"gggg|!!!gg|gggg!",
"gg--*!!!--*--gg!",
"gggg|!!!gg|gggg!",
"gggggVVVGgggggg!",
"ggggggggggggggg!",
"ggggggggggggggg!",
"!!!!!!!!!!!!!!!!"
},
6, 6, {&flyoff_sub},
"ggg!",
"ggg!",
"ggg!",
"!!!!"},
0, 1, {},
rot_plane,
{
// the solver[0.25] result is 36.92
goal{0x40FF40, "Collect all the triangles in below 60 seconds", basic_check(60, 999)},
goal{0xFFD500, "Collect all the triangles in below 38 seconds", basic_check(38, 999)}
goal{0x40FF40, "Collect all the triangles in below 300 seconds, reversing time at most 3 times", basic_check(300, 3)},
goal{0xFFD500, "Collect all the triangles in below 150 seconds, reversing time at most once", basic_check(150, 1)}
}
);
vector<level*> all_levels = {
&rotplane, &longtrack, &geodesical, &geodesical4, &heisenberg0, &rotwell, &labyrinth, &obstacle, &spirallev, &hilbertlev, &cycloid_slalom, &flyoff
&rotplane, &longtrack, &geodesical, &geodesical4, &heisenberg0, &rotwell, &labyrinth, &obstacle, &spirallev, &hilbertlev, &cycloid_slalom,
&multifloor
};
}