diff options
Diffstat (limited to 'lib/mods/theme/scpt/gods_new.lua')
-rw-r--r-- | lib/mods/theme/scpt/gods_new.lua | 454 |
1 files changed, 0 insertions, 454 deletions
diff --git a/lib/mods/theme/scpt/gods_new.lua b/lib/mods/theme/scpt/gods_new.lua deleted file mode 100644 index 8153d453..00000000 --- a/lib/mods/theme/scpt/gods_new.lua +++ /dev/null @@ -1,454 +0,0 @@ --- This file contains all the new gods - -add_loadsave("GRACE_DELAY",0) - -function aule_stone_skin() -local type - if player.grace >= 10000 then - type = SHIELD_COUNTER - else - type = 0 - end - - set_shield(randint(10) + 10 + (player.grace / 100), 10 + (player.grace / 100), type, 2 + (player.grace / 200), 3 + (player.grace / 400)) -end - -GOD_AULE = add_god -{ - ["name"] = "Aule the Smith", - ["desc"] = - { - "Aule is a smith, and the creator of the Dwarves." - }, - ["hooks"] = - { - [HOOK_CALC_BONUS] = function() - if (player.pgod == GOD_AULE) and (player.grace > 0) then - -- Resist fire, not shown on the character screen (?) - if (player.grace > 5000) then - player.resist_fire = TRUE - end - - local bonus = player.grace / 5000 - if bonus > 5 then - bonus = 5 - end - player.to_h = player.to_h + bonus - player.dis_to_h = player.dis_to_h + bonus - player.to_d = player.to_d + bonus - player.dis_to_d = player.dis_to_d + bonus - - end - end, - [HOOK_PROCESS_WORLD] = function() - if (player.pgod == GOD_AULE) then - GRACE_DELAY = GRACE_DELAY + 1 - if GRACE_DELAY >= 15 then - -- Aule likes Dwarves and Dark Elves (Eol's influence here) - if - (get_race_name() ~= "Dwarf") and - (get_race_name() ~= "Petty-dwarf") and - (get_race_name() ~= "Gnome") and - (get_race_name() ~= "Dark-Elf") then - set_grace(player.grace - 1) - end - - -- Search inventory for axe or hammer - Gain 1 point of grace for each hammer or axe - for i = 0, INVEN_TOTAL - 1 do - if ((player.inventory(i).tval) == TV_AXE) then - set_grace(player.grace + 1) - end - if ((player.inventory(i).tval) == TV_HAFTED) then - if (((player.inventory(i).sval) == SV_WAR_HAMMER) or ((player.inventory(i).sval) == SV_LUCERN_HAMMER) or ((player.inventory(i).sval) == SV_GREAT_HAMMER)) then - set_grace(player.grace + 1) - end - end - end - - if (player.praying == TRUE) then - set_grace(player.grace - 2) - - -- Chance of casting Stoneskin if praying - local chance - if (player.grace >= 50000) then - chance = 50000 - else - chance = 50000 - player.grace - end - - if (randint(100000) <= 100000 / chance) then - aule_stone_skin() - msg_print("Aule casts Stone Skin on you.") - end - - end - GRACE_DELAY = 0 - end - - end - end, - [HOOK_SACRIFICE_GOD] = function() - if (player.pgod == GOD_AULE) then - local ret, item, obj, value - ret, item = get_item( - "Sacrifice which item? ", - "You have nothing to sacrifice.", - USE_INVEN, - function(obj) - -- perhaps restrict this only to metal armour and weapons - if (obj.found == OBJ_FOUND_SELFMADE) then - return TRUE - end - return FALSE - end - ) - - -- Item selected - if ret == TRUE then - -- Increase piety by the value of the item / 10 - -- object_value is not available in Lua, therefore I used the - -- cost of the base item, without magical boni - obj = get_object(item) - -- value = object_value(obj)/10 - value = k_info[obj.k_idx + 1].cost/10 - - set_grace(player.grace + value) - - -- remove the object - inven_item_increase(item, -1) - inven_item_optimize(item) - end - end - end, - [HOOK_MONSTER_DEATH] = function(m_idx) - if (player.pgod == GOD_AULE) then - m_ptr = monster(m_idx) - if - (m_ptr.r_idx == test_monster_name("Petty-dwarf")) or - (m_ptr.r_idx == test_monster_name("Petty-dwarf mage")) or - (m_ptr.r_idx == test_monster_name("Dark dwarven warrior")) or - (m_ptr.r_idx == test_monster_name("Dark dwarven smith")) or - (m_ptr.r_idx == test_monster_name("Dark dwarven lord")) or - (m_ptr.r_idx == test_monster_name("Dark dwarven priest")) or - (m_ptr.r_idx == test_monster_name("Dwarven warrior")) then - -- Aule dislikes you killing dwarves - set_grace(player.grace - 20) - end - if - (m_ptr.r_idx == test_monster_name("Nar, the Dwarf")) or - (m_ptr.r_idx == test_monster_name("Naugladur, Lord of Nogrod")) or - (m_ptr.r_idx == test_monster_name("Telchar the Smith")) or - (m_ptr.r_idx == test_monster_name("Fundin Bluecloak")) or - (m_ptr.r_idx == test_monster_name("Khim, Son of Mim")) or - (m_ptr.r_idx == test_monster_name("Ibun, Son of Mim")) or - (m_ptr.r_idx == test_monster_name("Mim, Betrayer of Turin")) then - -- These uniques earn a bigger penalty - set_grace(player.grace - 500) - end - end - end, - } -} - -GOD_VARDA = add_god -{ - ["name"] = "Varda Elentari", - ["desc"] = - { - "The Queen of the Stars. In light is her power and joy." - }, - ["hooks"] = - { - [HOOK_PROCESS_WORLD] = function() - if (player.pgod == GOD_VARDA) then - GRACE_DELAY = GRACE_DELAY + 1 - - -- piety increase if in light - if (GRACE_DELAY >= 15) then - if band(cave(player.py, player.px).info, CAVE_GLOW) ~= 0 then - set_grace(player.grace + 2) - end - if ( - (get_race_name() == "Orc") or - (get_race_name() == "Troll") or - (get_race_name() == "Dragon") or - (get_race_name() == "Demon")) then - -- Varda hates evils - set_grace(player.grace - 2) - else - set_grace(player.grace - 1) - end - - if (player.praying == TRUE) then - set_grace(player.grace - 1) - end - GRACE_DELAY = 0 - end - end - end, - [HOOK_CALC_LITE] = function() - if (player.pgod == GOD_VARDA) then - -- increase lite radius - player.cur_lite = player.cur_lite + 1 - end - end, - [HOOK_GF_EXEC] = function (target, who, type, dam, r, y, x, m_ptr) - if (player.pgod == GOD_VARDA) then - if ((type == GF_LITE) or (type == GF_LITE_WEAK)) then - -- Raise piety for using lite - set_grace(player.grace + 1) - end - end - end, - }, -} - -GOD_ULMO = add_god -{ - ["name"] = "Ulmo", - ["desc"] = - { - "Ulmo is called Lord of Waters, he rules all that is water on Arda." - }, - ["hooks"] = - { - [HOOK_CALC_BONUS] = function() - if (player.pgod == GOD_ULMO) then - player.water_breath = TRUE - end - if (player.pgod == GOD_ULMO) and (player.grace > 0) then - local bonus = player.grace / 5000 - if bonus > 5 then - bonus = 5 - end - - if ((player.grace > 1000) and (player.praying == TRUE)) then - player.resist_pois = TRUE - end - if ((player.grace > 15000) and (player.praying == TRUE)) then - player.magic_breath = TRUE - end - end - end, - - [HOOK_MONSTER_DEATH] = function(m_idx) - if (player.pgod == GOD_ULMO) then - m_ptr = monster(m_idx) - if - (m_ptr.r_idx == test_monster_name("Swordfish")) or - (m_ptr.r_idx == test_monster_name("Barracuda")) or - (m_ptr.r_idx == test_monster_name("Globefish")) or - (m_ptr.r_idx == test_monster_name("Aquatic bear")) or - (m_ptr.r_idx == test_monster_name("Pike")) or - (m_ptr.r_idx == test_monster_name("Electric eel")) or - (m_ptr.r_idx == test_monster_name("Giant crayfish")) or - (m_ptr.r_idx == test_monster_name("Mermaid")) or - (m_ptr.r_idx == test_monster_name("Leviathan")) or - (m_ptr.r_idx == test_monster_name("Box jellyfish")) or - (m_ptr.r_idx == test_monster_name("Giant piranha")) or - (m_ptr.r_idx == test_monster_name("Piranha")) or - (m_ptr.r_idx == test_monster_name("Ocean naga")) or - (m_ptr.r_idx == test_monster_name("Whale")) or - (m_ptr.r_idx == test_monster_name("Octopus")) or - (m_ptr.r_idx == test_monster_name("Giant octopus")) or - (m_ptr.r_idx == test_monster_name("Drowned soul")) or - (m_ptr.r_idx == test_monster_name("Tiger shark")) or - (m_ptr.r_idx == test_monster_name("Hammerhead shark")) or - (m_ptr.r_idx == test_monster_name("Great white shark")) or - (m_ptr.r_idx == test_monster_name("White shark")) or - (m_ptr.r_idx == test_monster_name("Stargazer")) or - (m_ptr.r_idx == test_monster_name("Flounder")) or - (m_ptr.r_idx == test_monster_name("Giant turtle")) or - (m_ptr.r_idx == test_monster_name("Killer whale")) or - (m_ptr.r_idx == test_monster_name("Water naga")) or - (m_ptr.r_idx == test_monster_name("Behemoth")) then - -- He doesn't like it if you kill these monsters - set_grace(player.grace - 20) - end - if - (m_ptr.r_idx == test_monster_name("Seahorse")) or - (m_ptr.r_idx == test_monster_name("Aquatic elven warrior")) or - (m_ptr.r_idx == test_monster_name("Aquatic elven mage")) or - (m_ptr.r_idx == test_monster_name("Wavelord")) or - (m_ptr.r_idx == test_monster_name("The Watcher in the Water")) then - -- These monsters earn higher penalties - set_grace(player.grace - 500) - end - end - end, - [HOOK_GF_EXEC] = function (target, who, type, dam, r, y, x, m_ptr) - if (player.pgod == GOD_ULMO) then - if ((type == GF_FIRE) or (type == GF_HELL_FIRE) or (type == GF_HOLY_FIRE) or (type == GF_LAVA_FLOW) or (type == GF_METEOR) or (type == GF_NUKE) or (type == GF_PLASMA)) then - -- Reduce piety for using any kind of fire magic - set_grace(player.grace - 5) - end - end - end, - [HOOK_PROCESS_WORLD] = function() - if (player.pgod == GOD_ULMO) then - GRACE_DELAY = GRACE_DELAY + 1 - if GRACE_DELAY >= 15 then - -- Ulmo likes the Edain (except Easterlings) - if - (get_race_name() == "Human") or - (get_race_name() == "Dunadan") or - (get_race_name() == "Druadan") or - (get_race_name() == "RohanKnight") then - set_grace(player.grace + 1) - - elseif ( - (get_race_name() == "Easterling") or - (get_race_name() == "Demon") or - (get_race_name() == "Orc")) then - -- hated races - set_grace(player.grace - 2) - else - set_grace(player.grace + 1) - end - - if (player.praying == TRUE) then - set_grace(player.grace - 1) - end - -- Search inventory for axe or hammer - Gain 1 point of grace for each hammer or axe - for i = 0, INVEN_TOTAL - 1 do - if ((player.inventory(i).tval) == TV_POLEARM) then - if ((player.inventory(i).sval) == SV_TRIDENT) then - set_grace(player.grace + 1) - end - end - end - - GRACE_DELAY = 0 - end - - end - end, - }, -} - -GOD_MANDOS = add_god -{ - ["name"] = "Mandos", - ["desc"] = - { - "The Doomsman of the Valar and keeper of the slain." - }, - ["hooks"] = - { - [HOOK_CALC_BONUS] = function() - if (player.pgod == GOD_MANDOS) then - player.resist_neth = TRUE - end - if (player.pgod == GOD_MANDOS) and (player.grace > 0) then - local bonus = player.grace / 5000 - if bonus > 5 then - bonus = 5 - end - - if ((player.grace > 10000) and (player.praying == TRUE)) then - player.resist_continuum = TRUE - end - - if ((player.grace > 20000) and (player.praying == TRUE)) then - player.immune_neth = TRUE - end - end - end, - [HOOK_PROCESS_WORLD] = function() - if (player.pgod == GOD_MANDOS) then - GRACE_DELAY = GRACE_DELAY + 1 - if GRACE_DELAY >= 15 then - -- He loves astral beings - if (get_subrace_name() == "LostSoul") then - set_grace(player.grace + 1) - end - - -- He likes High Elves only, though, as races - if (get_race_name() ~= "High-Elf") then - set_grace(player.grace - 1) - end - end - -- piety increase if (condition) - if (GRACE_DELAY >= 15) then - if ( - (get_subrace_name() == "Vampire") or - (get_race_name() == "Demon")) then - -- hated races - set_grace(player.grace - 10) - else - set_grace(player.grace + 2) - end - -- he really doesn't like to be disturbed - if (player.praying == TRUE) then - set_grace(player.grace - 5) - end - GRACE_DELAY = 0 - end - - end - end, - [HOOK_MONSTER_DEATH] = function(m_idx) - if (player.pgod == GOD_MANDOS) then - m_ptr = monster(m_idx) - if - (m_ptr.r_idx == test_monster_name("Vampire")) or - (m_ptr.r_idx == test_monster_name("Master vampire")) or - (m_ptr.r_idx == test_monster_name("Oriental vampire")) or - (m_ptr.r_idx == test_monster_name("Vampire lord")) or - (m_ptr.r_idx == test_monster_name("Vampire orc")) or - (m_ptr.r_idx == test_monster_name("Vampire yeek")) or - (m_ptr.r_idx == test_monster_name("Vampire ogre")) or - (m_ptr.r_idx == test_monster_name("Vampire troll")) or - (m_ptr.r_idx == test_monster_name("Vampire dwarf")) or - (m_ptr.r_idx == test_monster_name("Vampire gnome")) or - (m_ptr.r_idx == test_monster_name("Elder vampire")) then - -- He really likes it if you kill Vampires (but not the adventurer kind :P) - set_grace(player.grace + 50) - end - - if - (m_ptr.r_idx == test_monster_name("Vampire elf")) or - (m_ptr.r_idx == test_monster_name("Thuringwethil, the Vampire Messenger")) then - -- He *loves* it if you kill vampire Elves - -- He will also thank you extra kindly if you kill Thuringwethil - set_grace(player.grace + 200) - end - - if - (m_ptr.r_idx == test_monster_name("Dark elf")) or - (m_ptr.r_idx == test_monster_name("Dark elven druid")) or - (m_ptr.r_idx == test_monster_name("Eol, the Dark Elf")) or - (m_ptr.r_idx == test_monster_name("Maeglin, the Traitor of Gondolin")) or - (m_ptr.r_idx == test_monster_name("Dark elven mage")) or - (m_ptr.r_idx == test_monster_name("Dark elven warrior")) or - (m_ptr.r_idx == test_monster_name("Dark elven priest")) or - (m_ptr.r_idx == test_monster_name("Dark elven lord")) or - (m_ptr.r_idx == test_monster_name("Dark elven warlock")) or - (m_ptr.r_idx == test_monster_name("Dark elven sorcerer")) then - -- He doesn't like it if you kill normal Elves (means more work for him :P) - set_grace(player.grace - 20) - end - if - (m_ptr.r_idx == test_monster_name("Glorfindel of Rivendell")) or - (m_ptr.r_idx == test_monster_name("Finrod Felagund")) or - (m_ptr.r_idx == test_monster_name("Thranduil, King of the Wood Elves")) or - (m_ptr.r_idx == test_monster_name("Aquatic elven warrior")) or - (m_ptr.r_idx == test_monster_name("Aquatic elven mage")) or - (m_ptr.r_idx == test_monster_name("High-elven ranger")) or - (m_ptr.r_idx == test_monster_name("Elven archer")) then - -- He hates it if you kill coaligned Elves - set_grace(player.grace - 200) - end - if - (m_ptr.r_idx == test_monster_name("Child spirit")) or - (m_ptr.r_idx == test_monster_name("Young spirit")) or - (m_ptr.r_idx == test_monster_name("Mature spirit")) or - (m_ptr.r_idx == test_monster_name("Experienced spirit")) or - (m_ptr.r_idx == test_monster_name("Wise spirit")) then - -- He *hates* it if you kill the coaligned Spirits - set_grace(player.grace - 1000) - end - end - end - } -} |