1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
-- Library quest in Minas Anor
-- Partially based on Fireproofing quest
library_quest = {}
-- Book creation helpers
library_quest.bookable_spells =
{
MANATHRUST, DELCURSES,
GLOBELIGHT, FIREGOLEM, FIREFLASH, FIREWALL,
GEYSER, VAPOR, ENTPOTION,
NOXIOUSCLOUD, POISONBLOOD,
STONESKIN, DIG,
RECHARGE, DISPERSEMAGIC,
BLINK, DISARM, TELEPORT,
SENSEMONSTERS, SENSEHIDDEN, REVEALWAYS, IDENTIFY, VISION,
MAGELOCK, SLOWMONSTER, ESSENCESPEED,
CHARM, CONFUSE, ARMOROFFEAR, STUN,
GROWTREE, HEALING, RECOVERY,
ERU_SEE, ERU_LISTEN,
MANWE_BLESS, MANWE_SHIELD,
YAVANNA_CHARM_ANIMAL, YAVANNA_GROW_GRASS, YAVANNA_TREE_ROOTS,
TULKAS_AIM, TULKAS_SPIN,
MELKOR_CURSE, MELKOR_CORPSE_EXPLOSION,
DRAIN
}
-- Print a spell (taken from s_aux)
function library_quest.print_spell(color, y, spl)
local x, index, sch, size, s
x = 0
size = 0
book = 255
obj = nil
-- Hack if the book is 255 it is a random book
if book == 255 then
school_book[book] = {spl}
end
-- Parse all spells
for index, s in school_book[book] do
local lvl, na = get_level_school(s, 50, -50)
local xx, sch_str
sch_str = spell_school_name(s)
if s == spl then
if na then
c_prt(color, format("%-20s%-16s %3s %4s %3d%s %s", spell(s).name, sch_str, na, get_mana(s), spell_chance(s), "%", __spell_info[s]()), y, x)
else
c_prt(color, format("%-20s%-16s %3d %4s %3d%s %s", spell(s).name, sch_str, lvl, get_mana(s), spell_chance(s), "%", __spell_info[s]()), y, x)
end
y = y + 1
size = size + 1
end
end
return y
end
-- Quest data and hooks
add_quest
{
["global"] = "LIBRARY_QUEST",
["name"] = "Library quest",
["desc"] = function()
-- Quest taken
if (quest(LIBRARY_QUEST).status == QUEST_STATUS_TAKEN) then
print_hook("#####yAn Old Mages Quest! (Danger Level: 35)\n")
print_hook("Make the library safe for the old mage in Minas Anor.\n")
print_hook("\n")
-- Quest done, book not gotten yet
elseif (quest(LIBRARY_QUEST).status == QUEST_STATUS_COMPLETED) then
print_hook("#####yAn Old Mages Quest!\n")
print_hook("You have made the library safe for the old mage in Minas Anor.\n")
print_hook("Perhaps you should see about a reward.\n")
print_hook("\n")
end
end,
["level"] = 35,
["data"] =
{
["school_book[61][1]"] = -1,
["school_book[61][2]"] = -1,
["school_book[61][3]"] = -1
},
["hooks"] =
{
-- Start the game without the quest, need to request it
[HOOK_BIRTH_OBJECTS] = function()
quest(LIBRARY_QUEST).status = QUEST_STATUS_UNTAKEN
school_book[61] = {-1, -1, -1}
end,
[HOOK_GEN_QUEST] = function()
return quest_library_gen_hook()
end,
[HOOK_STAIR] = function()
return quest_library_stair_hook()
end,
[HOOK_MONSTER_DEATH] = function()
return quest_library_monster_death_hook()
end,
},
}
|