Files
nethack/test/test_shk.lua
2021-07-25 22:52:42 +03:00

238 lines
6.5 KiB
Lua

-- Test shop creation
function shk_test_region_irregular(doors)
des.map([[
---------
|...|...|
|...+...|
|...|+--|
|+---...|
|...|+--|
|...+...|
|...|...|
---------
]]);
des.door("open", 5, 3);
des.door("open", 5, 5);
if (doors == 1) then
des.door("open", 4, 2);
des.door("closed", 4, 6);
end
des.region({ region = { 1,1, 1,1 }, type = "shop", irregular=1, filled=1, lit=1 });
des.region({ region = { 1,5, 1,5 }, type = "shop", irregular=1, filled=1, lit=1 });
if (doors == 2) then
des.door("open", 4, 2);
des.door("closed", 4, 6);
end
end -- shk_test_region_irregular
function shk_test_region_irregular2(doors)
des.map([[
---------
|...|...|
|...+...|
|...|...|
|+---...|
|.......|
|.......|
|.......|
---------
]]);
if (doors == 1) then
des.door("closed", 4, 2);
des.door("closed", 1, 4);
end
des.region({ region = { 1,1, 1,1 }, type = "shop", irregular=1, filled=1, lit=1 });
des.region({ region = { 1,5, 1,5 }, type = "shop", irregular=1, filled=1, lit=1 });
if (doors == 2) then
des.door("closed", 4, 2);
des.door("closed", 1, 4);
end
end -- shk_test_region_irregular2
function shk_test_region_regular(doors)
des.map([[
---------
|...|...|
|...+...|
|...|+--|
|----...|
|...|+--|
|...+...|
|...|...|
---------
]]);
des.door("open", 5, 3);
des.door("open", 5, 5);
if (doors == 1) then
des.door("open", 4, 2);
des.door("closed", 4, 6);
end
des.region({ region = { 1,1, 3,3 }, type = "shop", irregular=0, filled=1, lit=1 });
des.region({ region = { 1,5, 3,7 }, type = "shop", irregular=0, filled=1, lit=1 });
if (doors == 2) then
des.door("open", 4, 2);
des.door("closed", 4, 6);
end
end -- shk_test_region_regular
-- test rooms. this layout is minetn-7 with all rooms changed to shops
function shk_test_rooms1(param)
des.room({ type="ordinary", lit=1, x=3,y=3,
xalign="center",yalign="center", w=30,h=15,
contents = function()
des.room({ type="shop", x=2,y=2, w=4,h=2,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="shop", x=7,y=2, w=2,h=2,
contents = function()
des.door({ state = "closed", wall="north" })
end
})
des.room({ type="shop", x=7,y=5, w=2,h=2,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="shop", lit=1, x=10,y=2, w=3,h=4,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="shop", x=14,y=2, w=4,h=2,
contents = function()
des.door({ state = "closed", wall="south", pos=0 })
end
})
des.room({ type="shop", x=16,y=5, w=2,h=2,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="shop", lit=0, x=19,y=2, w=2,h=2,
contents = function()
des.door({ state = "locked", wall="east" })
end
})
des.room({ type=monkfoodshop(), lit=1, x=19,y=5, w=2,h=3,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="shop", x=2,y=7, w=2,h=2,
contents = function()
des.door({ state = "closed", wall="east" })
end
})
des.room({ type="tool shop", lit=1, x=2,y=10, w=2,h=3,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type="candle shop", lit=1, x=5,y=10, w=3,h=3,
contents = function()
des.door({ state = "closed", wall="north" })
end
})
des.room({ type="shop", x=11,y=10, w=2,h=2,
contents = function()
des.door({ state = "locked", wall="west" })
end
})
des.room({ type="shop", lit=1, x=14,y=10, w=2,h=3,
contents = function()
des.door({ state = "closed", wall="north" })
end
})
des.room({ type="shop", x=17,y=11, w=4,h=2,
contents = function()
des.door({ state = "closed", wall="north" })
end
})
des.room({ type="shop", x=22,y=11, w=2,h=2,
contents = function()
des.door({ state = "closed", wall="south" })
end
})
des.room({ type=monkfoodshop(), lit=1, x=25,y=11, w=3,h=2,
contents = function()
des.door({ state = "closed", wall="east" })
end
})
des.room({ type="tool shop", lit=1, x=25,y=2, w=3,h=3,
contents = function()
des.door({ state = "closed", wall="west" })
end
})
des.room({ type="shop", lit=1, x=24,y=6, w=4,h=4,
contents = function()
des.door({ state = "closed", wall = "west" })
end
})
end
})
end -- shk_test_rooms1
function do_test(testfunc, param)
des.reset_level();
des.level_flags("noflip");
des.level_init({ style = "solidfill", fg = " " });
testfunc(param);
des.finalize_level();
end
do_test(shk_test_region_irregular, 0);
do_test(shk_test_region_irregular, 1);
do_test(shk_test_region_irregular, 2);
do_test(shk_test_region_irregular2, 0);
do_test(shk_test_region_irregular2, 1);
do_test(shk_test_region_irregular2, 2);
do_test(shk_test_region_regular, 0);
do_test(shk_test_region_regular, 1);
do_test(shk_test_region_regular, 2);
do_test(shk_test_rooms1, 0);