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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
-- handle the mind school
CHARM = add_spell
{
["name"] = "Charm",
["school"] = {SCHOOL_MIND},
["level"] = 1,
["mana"] = 1,
["mana_max"] = 20,
["fail"] = 10,
["stick"] =
{
["charge"] = { 7, 5 },
[TV_WAND] =
{
["rarity"] = 35,
["base_level"] = { 1, 15 },
["max_level"] = { 20, 40 },
},
},
["spell"] = function()
if get_level(CHARM, 50) >= 35 then
return project_los(GF_CHARM, 10 + get_level(CHARM, 150))
elseif get_level(CHARM, 50) >= 15 then
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_ball(GF_CHARM, dir, 10 + get_level(CHARM, 150), 3)
else
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_bolt(GF_CHARM, dir, 10 + get_level(CHARM, 150))
end
end,
["info"] = function()
return "power "..(10 + get_level(CHARM, 150))
end,
["desc"] = {
"Tries to manipulate the mind of a monster to make it friendly",
"At level 15 it turns into a ball",
"At level 35 it affects all monsters in sight"
}
}
CONFUSE = add_spell
{
["name"] = "Confuse",
["school"] = {SCHOOL_MIND},
["level"] = 5,
["mana"] = 5,
["mana_max"] = 30,
["fail"] = 20,
["stick"] =
{
["charge"] = { 3, 4 },
[TV_WAND] =
{
["rarity"] = 45,
["base_level"] = { 1, 5 },
["max_level"] = { 20, 40 },
},
},
["spell"] = function()
if get_level(CONFUSE, 50) >= 35 then
return project_los(GF_OLD_CONF, 10 + get_level(CONFUSE, 150))
elseif get_level(CONFUSE, 50) >= 15 then
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_ball(GF_OLD_CONF, dir, 10 + get_level(CONFUSE, 150), 3)
else
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_bolt(GF_OLD_CONF, dir, 10 + get_level(CONFUSE, 150))
end
end,
["info"] = function()
return "power "..(10 + get_level(CONFUSE, 150))
end,
["desc"] = {
"Tries to manipulate the mind of a monster to confuse it",
"At level 15 it turns into a ball",
"At level 35 it affects all monsters in sight"
}
}
ARMOROFFEAR = add_spell
{
["name"] = "Armor of Fear",
["school"] = SCHOOL_MIND,
["level"] = 10,
["mana"] = 10,
["mana_max"] = 50,
["fail"] = 35,
["inertia"] = { 2, 20 },
["spell"] = function()
return set_shield(randint(10) + 10 + get_level(ARMOROFFEAR, 100), 10, SHIELD_FEAR, 1 + get_level(ARMOROFFEAR, 7), 5 + get_level(ARMOROFFEAR, 20))
end,
["info"] = function()
return "dur "..(10 + get_level(ARMOROFFEAR, 100)).." power "..(1 + get_level(ARMOROFFEAR, 7)).."d"..(5 + get_level(ARMOROFFEAR, 20))
end,
["desc"] = {
"Creates a shield of pure fear around you. Any monster attempting to hit you",
"must save or flee",
}
}
STUN = add_spell
{
["name"] = "Stun",
["school"] = {SCHOOL_MIND},
["level"] = 15,
["mana"] = 10,
["mana_max"] = 90,
["fail"] = 45,
["spell"] = function()
if get_level(STUN, 50) >= 20 then
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_ball(GF_STUN, dir, 10 + get_level(STUN, 150), 3)
else
local ret, dir = get_aim_dir()
if ret == FALSE then return end
return fire_bolt(GF_STUN, dir, 10 + get_level(STUN, 150))
end
end,
["info"] = function()
return "power "..(10 + get_level(STUN, 150))
end,
["desc"] = {
"Tries to manipulate the mind of a monster to stun it",
"At level 20 it turns into a ball",
}
}
|