diff options
Diffstat (limited to 'lib/mods/theme/scpt/s_manwe.lua')
-rw-r--r-- | lib/mods/theme/scpt/s_manwe.lua | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/lib/mods/theme/scpt/s_manwe.lua b/lib/mods/theme/scpt/s_manwe.lua new file mode 100644 index 00000000..6f0f9661 --- /dev/null +++ b/lib/mods/theme/scpt/s_manwe.lua @@ -0,0 +1,144 @@ +-- Handle Manwe Sulimo magic school + +MANWE_SHIELD = add_spell +{ + ["name"] = "Wind Shield", + ["school"] = {SCHOOL_MANWE}, + ["level"] = 10, + ["mana"] = 100, + ["mana_max"] = 500, + ["fail"] = 30, + -- Uses piety to cast + ["piety"] = TRUE, + ["stat"] = A_WIS, + ["random"] = SKILL_SPIRITUALITY, + ["spell"] = function() + local dur = get_level(MANWE_SHIELD, 50) + 10 + randint(20) + local obvious + + obvious = set_protevil(dur) + if get_level(MANWE_SHIELD) >= 10 then + local type + + type = 0 + if get_level(MANWE_SHIELD) >= 20 then + type = SHIELD_COUNTER + end + obvious = is_obvious(set_shield(dur, get_level(MANWE_SHIELD, 30), type, 1 + get_level(MANWE_SHIELD, 2), 1 + get_level(MANWE_SHIELD, 6)), obvious) + end + return obvious + end, + ["info"] = function() + local desc = "dur "..(get_level(MANWE_SHIELD, 50) + 10).."+d20" + + if get_level(MANWE_SHIELD) >= 10 then + desc = desc.." AC "..(get_level(MANWE_SHIELD, 30)) + end + if get_level(MANWE_SHIELD) >= 20 then + desc = desc.." dam "..(1 + get_level(MANWE_SHIELD, 2)).."d"..(1 + get_level(MANWE_SHIELD, 6)) + end + return desc + end, + ["desc"] = { + "It surrounds you with a shield of wind that deflects blows from evil monsters", + "At level 10 it increases your armour rating", + "At level 20 it retaliates against monsters that melee you", + } +} + +MANWE_AVATAR = add_spell +{ + ["name"] = "Avatar", + ["school"] = {SCHOOL_MANWE}, + ["level"] = 35, + ["mana"] = 1000, + ["mana_max"] = 1000, + ["fail"] = 80, + -- Uses piety to cast + ["piety"] = TRUE, + ["stat"] = A_WIS, + ["random"] = SKILL_SPIRITUALITY, + ["spell"] = function() + return set_mimic(get_level(MANWE_AVATAR, 20) + randint(10), resolve_mimic_name("Maia"), player.lev) + end, + ["info"] = function() + return "dur "..(get_level(MANWE_AVATAR, 20)).."+d10" + end, + ["desc"] = { + "It turns you into a full grown Maia", + } +} + +MANWE_BLESS = add_spell +{ + ["name"] = "Manwe's Blessing", + ["school"] = {SCHOOL_MANWE}, + ["level"] = 1, + ["mana"] = 10, + ["mana_max"] = 100, + ["fail"] = 20, + -- Uses piety to cast + ["piety"] = TRUE, + ["stat"] = A_WIS, + ["random"] = SKILL_SPIRITUALITY, + ["spell"] = function() + local dur = get_level(MANWE_BLESS, 70) + 30 + randint(40) + local obvious + + obvious = set_blessed(dur) + obvious = is_obvious(set_afraid(0), obvious) + obvious = is_obvious(set_lite(0), obvious) + if get_level(MANWE_BLESS) >= 10 then + obvious = is_obvious(set_hero(dur), obvious) + end + if get_level(MANWE_BLESS) >= 20 then + obvious = is_obvious(set_shero(dur), obvious) + end + if get_level(MANWE_BLESS) >= 30 then + obvious = is_obvious(set_holy(dur), obvious) + end + return obvious + end, + ["info"] = function() + return "dur "..(get_level(MANWE_BLESS, 70) + 30).."+d40" + end, + ["desc"] = { + "Manwe's Blessing removes your fears, blesses you and surrounds you with", + "holy light", + "At level 10 it also grants heroism", + "At level 20 it also grants super heroism", + "At level 30 it also grants holy luck and life protection", + } +} + +MANWE_CALL = add_spell +{ + ["name"] = "Manwe's Call", + ["school"] = {SCHOOL_MANWE}, + ["level"] = 20, + ["mana"] = 200, + ["mana_max"] = 500, + ["fail"] = 40, + -- Uses piety to cast + ["piety"] = TRUE, + ["stat"] = A_WIS, + ["random"] = SKILL_SPIRITUALITY, + ["spell"] = function() + local y, x, m_idx + + y, x = find_position(player.py, player.px) + m_idx = place_monster_one(y, x, test_monster_name("Great eagle"), 0, FALSE, MSTATUS_FRIEND) + + if m_idx ~= 0 then + monster_set_level(m_idx, 20 + get_level(MANWE_CALL, 70, 0)) + return TRUE + end + end, + ["info"] = function() + return "level "..(get_level(MANWE_CALL, 70) + 20) + end, + ["desc"] = { + "Manwe's Call summons a Great Eagle to help you battle the forces", + "of Morgoth" + } +} |