More tutorial level

Add more stuff to the tutorial level:
 - closing a door
 - cursed armor
 - taking off armor
 - shuffled descriptions
 - removing curses
 - reading scrolls
This commit is contained in:
Pasi Kallinen
2023-03-05 16:38:19 +02:00
parent db0441bf02
commit c2d6bde9cd
2 changed files with 57 additions and 6 deletions

View File

@@ -223,6 +223,38 @@ function tutorial_leave()
nh.gamestate(true);
end
local tutorial_events = {
{
ucoord = { 2, 5 },
remove = true,
func = function()
tutorial_whitelist_commands["close"] = true;
end,
},
{
ucoord = { 27, 10 },
remove = true,
func = function()
tutorial_whitelist_commands["takeoff"] = true;
end,
},
{
ucoord = { 22, 11 },
remove = true,
func = function()
tutorial_whitelist_commands["read"] = true;
end,
},
};
function tutorial_turn()
for k, v in pairs(tutorial_events) do
if ((v.ucoord and u.ux == v.ucoord[1] + 3 and u.uy == v.ucoord[2] + 3)
or (v.ucoord == nil)) then
if (v.func() or v.remove) then
tutorial_events[k] = nil;
end
end
end
-- nh.pline("TUT:turn");
end

View File

@@ -11,11 +11,11 @@ des.map([[
||.|.|.......|....|.......................................................|
||.|.|.......|....|.......................................................|
|-+-S-------------|.......................................................|
|......| |.......................................................|
|......| ###### |.......................................................|
|----.-| -+- # |.....-----.............................................|
|----+----.----+---.....|...|.............................................|
|........|.|......|.....F...|.............................................|
|......| |----------.............................................|
|......| ###### |.........|.............................................|
|----.-| -+- # |.....---.|.............................................|
|----+----.----+---.|.--|.|.|.............................................|
|........|.|......|.|...F...|.............................................|
|.P......-S|......|------.---.............................................|
|..........|......+.|...|.---.............................................|
|.W......---......|.|.|.|.+...............................................|
@@ -58,6 +58,9 @@ des.engraving({ coord = { 2,4 }, type = "engrave", text = "Some actions may requ
des.engraving({ coord = { 2,5 }, type = "engrave", text = "Open the door by moving into it", degrade = false });
des.door({ coord = { 2,6 }, state = "closed" });
des.engraving({ coord = { 2,7 }, type = "engrave", text = "Close the door with '" .. nh.eckey("close") .. "'", degrade = false });
--
des.engraving({ coord = { 4,5 }, type = "engrave", text = "You can leave the tutorial via the magic portal.", degrade = false });
@@ -98,7 +101,7 @@ des.engraving({ coord = { 19,13 }, type = "engrave", text = "Pick up items with
local armor = (u.role == "Monk") and "leather gloves" or "leather armor";
des.object({ id = armor, spe = 0, buc = "not-cursed", coord = { 19,14} });
des.object({ id = armor, spe = 0, buc = "cursed", coord = { 19,14} });
des.engraving({ coord = { 19,15 }, type = "engrave", text = "Wear armor with '" .. nh.eckey("wear") .. "'", degrade = false });
@@ -115,6 +118,7 @@ des.monster({ id = "lichen", coord = { 23,15 }, waiting = true, countbirth = fal
des.engraving({ coord = { 24,16 }, type = "engrave", text = "Now you know the very basics. You can leave the tutorial via the magic portal.", degrade = false });
des.engraving({ coord = { 26,16 }, type = "engrave", text = "Step into this portal to leave the tutorial", degrade = false });
des.trap({ type = "magic portal", coord = { 27,16 }, seen = true });
--
@@ -124,6 +128,21 @@ des.object({ id = "boulder", coord = {25,12} });
--
des.engraving({ coord = { 27,9 }, type = "engrave", text = "Take off armor with '" .. nh.eckey("takeoff") .. "'", degrade = false });
--
des.object({ class = "?", id = "remove curse", buc = "blessed", coord = {23,11} })
des.engraving({ coord = { 22,11 }, type = "engrave", text = "Some items have shuffled descriptions, different each game", degrade = false });
des.engraving({ coord = { 23,11 }, type = "engrave", text = "Pick up this scroll, read it with '" .. nh.eckey("read") .. "', and try to remove the armor again", degrade = false });
--
des.engraving({ coord = { 19,10 }, type = "engrave", text = "Another magic portal, a way to leave this tutorial", degrade = false });
des.trap({ type = "magic portal", coord = { 19,11 }, seen = true });
--
des.door({ coord = { 26,14 }, state = "locked" });
des.engraving({ coord = { 27,14 }, type = "burn", text = "UNDER CONSTRUCTION", degrade = false });