The T.o.M.E. Library - Script 'ZAngband mutations (20kB)'
| Name | ZAngband mutations (20kB) |
| Version | 0.0.3 |
| Author | m.marangio@web.de |
| Description | Here is a list of 40 old ZAngband mutations (all activable mutations and some fixed mutations). One power (28-laser eye) was changed in the C code, it's scripted in Lua now.
Known problems: * When gaining or losing a new power, the string is printed twice (once in the script and once in ToME). get_text and lose_text should be either empty or replaced in these cases. * Cancelling out a mutation requires a little more coding. Mutations are only opposed now. * some powers seems to work incorrectly: - 9/ smell metal: there are only a few dungeons with treasure veins. - 16/ detect curses: not all cursed objects are detected. - 18/ polymorph: a user reported some crashes, don't use this mutation. - 24/ weigh magic: not all temporary spells are listed. * some of the 96 mutations in ZAngband cannot be coded in ToME 2.x (e.g. scorpion tail) |
| Last update | 18/10/2004 |
| Script | -- The old activable corruptions / mutations MUT1_SPIT_ACID = add_corruption { ["color"] = TERM_RED, ["name"] = "Spit Acid", ["get_text"] = "You gain the ability to spit acid.", ["lose_text"] = "You lose the ability to spit acid.", ["desc"] = { " Fires an acid ball.", " Damage=level Radius 1+(level/30)", " Level=9, Cost=9, Stat=DEX, Difficulty=15", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_SPIT_ACID) end, }, } MUT1_BR_FIRE = add_corruption { ["color"] = TERM_RED, ["name"] = "Fire Breath", ["get_text"] = "You gain the ability to breathe fire.", ["lose_text"] = "You lose the ability to breathe fire.", ["desc"] = { " Fires a fire ball.", " Damage=2*level Radius 1+(level/20)", " Level=20, Cost=10, Stat=CON, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_BR_FIRE) end, }, } MUT1_HYPN_GAZE = add_corruption { ["color"] = TERM_RED, ["name"] = "Hypnotic Gaze", ["get_text"] = "Your eyes look mesmerizing...", ["lose_text"] = "Your eyes look uninteresting.", ["desc"] = { " Tries to make a monster your pet.", " Power=level", " Level=12, Cost=12, Stat=CHR, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_HYPN_GAZE) end, }, } MUT1_TELEKINES = add_corruption { ["color"] = TERM_RED, ["name"] = "Telekinesis", ["get_text"] = "You gain the ability to move objects telekinetically.", ["lose_text"] = "You lose the ability to move objects telekinetically.", ["desc"] = { " Move an object in line of sight to you.", " Max weight equal to (level) pounds", " Level=9, Cost=9, Stat=WIS, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_TELEKINES) end, }, } MUT1_VTELEPORT = add_corruption { ["color"] = TERM_RED, ["name"] = "Teleport", ["get_text"] = "You gain the power of teleportation at will.", ["lose_text"] = "You lose the power of teleportation at will.", ["desc"] = { " Teleports the player at will.", " Distance 10+4*level squares", " Level=7, Cost=7, Stat=WIS, Difficulty=15", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_VTELEPORT) end, }, } MUT1_MIND_BLST = add_corruption { ["color"] = TERM_RED, ["name"] = "Mind Blast", ["get_text"] = "You gain the power of Mind Blast.", ["lose_text"] = "You lose the power of Mind Blast.", ["desc"] = { " Fires a mind blasting bolt (psi damage).", " Psi Damage (3+(level-1)/5)d3", " Level=5, Cost=3, Stat=WIS, Difficulty=15", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_MIND_BLST) end, }, } MUT1_RADIATION = add_corruption { ["color"] = TERM_RED, ["name"] = "Emit Radiation", ["get_text"] = "You start emitting hard radiation.", ["lose_text"] = "You stop emitting hard radiation.", ["desc"] = { " Fires a ball of hard radiation (nuke damage).", " Damage level*2 Radius 3+level/20", " Level=15, Cost=15, Stat=CON, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_RADIATION) end, }, } MUT1_VAMPIRISM = add_corruption { ["color"] = TERM_RED, ["name"] = "Vampiric Drain", ["get_text"] = "You become vampiric.", ["lose_text"] = "You are no longer vampiric.", ["desc"] = { " You can drain life from a foe like a vampire.", " Drains (level+1d(level))*(level/10) hitpoints,", " heals you and satiates you. Doesn't work on all monsters", " Level=4, Cost=5, Stat=CON, Difficulty=9", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_VAMPIRISM) end, }, } MUT1_SMELL_MET = add_corruption { ["color"] = TERM_RED, ["name"] = "Smell Metal", ["get_text"] = "You smell a metallic odour.", ["lose_text"] = "You no longer smell a metallic odour.", ["desc"] = { " You can detect nearby precious metal (treasure).", " Radius 25", " Level=3, Cost=2, Stat=INT, Difficulty=12", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_SMELL_MET) end, }, } MUT1_SMELL_MON = add_corruption { ["color"] = TERM_RED, ["name"] = "Smell Monsters", ["get_text"] = "You smell filthy monsters.", ["lose_text"] = "You no longer smell filthy monsters.", ["desc"] = { " You can detect nearby monsters.", " Radius 25", " Level=5, Cost=4, Stat=INT, Difficulty=15", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_SMELL_MON) end, }, } MUT1_BLINK = add_corruption { ["color"] = TERM_RED, ["name"] = "Blink", ["get_text"] = "You gain the power of minor teleportation.", ["lose_text"] = "You lose the power of minor teleportation.", ["desc"] = { " You can teleport yourself short distances (10 squares).", " Level=3, Cost=3, Stat=WIS, Difficulty=12", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_BLINK) end, }, } MUT1_EAT_ROCK = add_corruption { ["color"] = TERM_RED, ["name"] = "Eat Rock", ["get_text"] = "The walls look delicious.", ["lose_text"] = "The walls look unappetizing.", ["desc"] = { " You can consume solid rock with food benefit,", " leaving an empty space behind.", " Level=8, Cost=12, Stat=CON, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_EAT_ROCK) end, }, } MUT1_SWAP_POS = add_corruption { ["color"] = TERM_RED, ["name"] = "Swap Position", ["get_text"] = "You feel like walking a mile in someone else's shoes.", ["lose_text"] = "You feel like staying in your own shoes.", ["desc"] = { " You can switch locations with another being,", " unless it resists teleportation.", " Level=15, Cost=12, Stat=DEX, Difficulty=16", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_SWAP_POS) end, }, } MUT1_SHRIEK = add_corruption { ["color"] = TERM_RED, ["name"] = "Shriek", ["get_text"] = "Your vocal cords get much tougher.", ["lose_text"] = "Your vocal cords get much weaker.", ["desc"] = { " Fires a sound ball and aggravates monsters.", " Damage=level*4, Radius=8, centered on player", " Level=4, Cost=4, Stat=CON, Difficulty=6", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_SHRIEK) end, }, } MUT1_ILLUMINE = add_corruption { ["color"] = TERM_RED, ["name"] = "Illuminate", ["get_text"] = "You can light up rooms with your presence.", ["lose_text"] = "You can no longer light up rooms with your presence.", ["desc"] = { " You can emit bright light that illuminates an area.", " Damage=2d(level/2) Radius=(level/10)+1", " Level=3, Cost=2, Stat=INT, Difficulty=10", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_ILLUMINE) end, }, } MUT1_DET_CURSE = add_corruption { ["color"] = TERM_RED, ["name"] = "Detect Curses", ["get_text"] = "You can feel evil magics.", ["lose_text"] = "You can no longer feel evil magics.", ["desc"] = { " You can feel the danger of evil magic.", " It detects cursed items in the inventory", " Level=7, Cost=14, Stat=WIS, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_DET_CURSE) end, }, } MUT1_BERSERK = add_corruption { ["color"] = TERM_RED, ["name"] = "Berserk", ["get_text"] = "You feel a controlled rage.", ["lose_text"] = "You no longer feel a controlled rage.", ["desc"] = { " You can drive yourself into a berserk frenzy.", " It grants super-heroism. Duration=10+1d(level)", " Level=8, Cost=8, Stat=STR, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_BERSERK) end, }, } MUT1_POLYMORPH = add_corruption { ["color"] = TERM_RED, ["name"] = "Polymorph", ["get_text"] = "Your body seems mutable.", ["lose_text"] = "Your body seems stable.", ["desc"] = { " You can polymorph yourself at will.", " Level=18, Cost=20, Stat=CON, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_POLYMORPH) end, }, } MUT1_MIDAS_TCH = add_corruption { ["color"] = TERM_RED, ["name"] = "Midas touch", ["get_text"] = "You gain the Midas touch.", ["lose_text"] = "You lose the Midas touch.", ["desc"] = { " You can turn ordinary items to gold.", " Turns a non-artifact object into 1/3 its value in gold", " Level=10, Cost=5, Stat=INT, Difficulty=12", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_MIDAS_TCH) end, }, } MUT1_GROW_MOLD = add_corruption { ["color"] = TERM_RED, ["name"] = "Grow Mold", ["get_text"] = "You feel a sudden affinity for mold.", ["lose_text"] = "You feel a sudden dislike for mold.", ["desc"] = { " You can cause mold to grow near you.", " Summons up to 8 molds around the player", " Level=1, Cost=6, Stat=CON, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_GROW_MOLD) end, }, } MUT1_RESIST = add_corruption { ["color"] = TERM_RED, ["name"] = "Resist Elements", ["get_text"] = "You feel like you can protect yourself.", ["lose_text"] = "You feel like you might be vulnerable.", ["desc"] = { " You can harden yourself to the ravages of the elements.", " Level dependant chance of gaining resistances to the four ", " elements and poison. Duration=20 + d20", " Level=10, Cost=12, Stat=CON, Difficulty=12", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_RESIST) end, }, } MUT1_EARTHQUAKE = add_corruption { ["color"] = TERM_RED, ["name"] = "Earthquake", ["get_text"] = "You gain the ability to wreck the dungeon.", ["lose_text"] = "You lose the ability to wreck the dungeon.", ["desc"] = { " You can bring down the dungeon around your ears.", " Radius=10, center on the player", " Level=12, Cost=12, Stat=STR, Difficulty=16", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_EARTHQUAKE) end, }, } MUT1_EAT_MAGIC = add_corruption { ["color"] = TERM_RED, ["name"] = "Eat Magic", ["get_text"] = "Your magic items look delicious.", ["lose_text"] = "Your magic items no longer look delicious.", ["desc"] = { " You can consume magic energy for your own use.", " Drains staves, wands and rods to replenish spell points.", " Level=17, Cost=1, Stat=WIS, Difficulty=15", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_EAT_MAGIC) end, }, } MUT1_WEIGH_MAG = add_corruption { ["color"] = TERM_RED, ["name"] = "Weigh Magic", ["get_text"] = "You feel you can better understand the magic around you.", ["lose_text"] = "You no longer sense magic.", ["desc"] = { " You can feel the strength of most magics affecting you.", " Level=6, Cost=6, Stat=INT, Difficulty=10", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_WEIGH_MAG) end, }, } MUT1_STERILITY = add_corruption { ["color"] = TERM_RED, ["name"] = "Sterilize", ["get_text"] = "You can give everything around you a headache.", ["lose_text"] = "You hear a massed sigh of relief.", ["desc"] = { " You can cause mass impotence, at a cost.", " Prevents any breeders on current level from breeding.", " Level=20, Cost=40, Stat=CHR, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_STERILITY) end, }, } MUT1_PANIC_HIT = add_corruption { ["color"] = TERM_RED, ["name"] = "Panic Hit", ["get_text"] = "You suddenly understand how thieves feel.", ["lose_text"] = "You no longer feel jumpy.", ["desc"] = { " You can run for your life after hitting something.", " Allows you to hit a monster and immediately teleport 30 squares.", " Level=10, Cost=12, Stat=DEX, Difficulty=14", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_PANIC_HIT) end, }, } MUT1_DAZZLE = add_corruption { ["color"] = TERM_RED, ["name"] = "Dazzle", ["get_text"] = "You gain the ability to emit dazzling lights.", ["lose_text"] = "You lose the ability to emit dazzling lights.", ["desc"] = { " You can emit confusing, blinding radiation.", " Attempts to stun, confuse and terrify all monsters in sight.", " Level=7, Cost=15, Stat=CHR, Difficulty=8", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_DAZZLE) end, }, } MUT1_LASER_EYE = add_corruption { ["color"] = TERM_RED, ["name"] = "Laser Eye", ["get_text"] = "Your eyes burn for a moment.", ["lose_text"] = "Your eyes burn for a moment, then feel soothed.", ["desc"] = { " Your eyes can fire laser beams.", " Fires light beam, damage=level*2", " Level=7, Cost=10, Stat=WIS, Difficulty=9", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(POWER_LASER_EYE) end, }, } -- A Lua power, since PWR_DARKRAY has some changed text POWER_LASER_EYE = add_power { ["name"] = "Laser Eye", ["desc"] = "Your eyes can fire laser beams.", ["desc_get"] = "Your eyes burn for a moment.", ["desc_lose"] = "Your eyes burn for a moment, then feel soothed.", ["level"] = 7, ["cost"] = 10, ["stat"] = A_WIS, ["fail"] = 9, ["power"] = function() local ret, dir = get_aim_dir() if ret == FALSE then return end return fire_beam(GF_LITE, dir, 2*player.lev) end, } MUT1_RECALL = add_corruption { ["color"] = TERM_RED, ["name"] = "Recall", ["get_text"] = "You feel briefly homesick, but it passes.", ["lose_text"] = "You feel briefly homesick.", ["desc"] = { " You can travel between the surface and the depths.", " Acts like Word of Recall (Time=15+d21).", " Level=17, Cost=50, Stat=INT, Difficulty=16", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_RECALL) end, }, } MUT1_BANISH = add_corruption { ["color"] = TERM_RED, ["name"] = "Banish Evil", ["get_text"] = "You feel a holy wrath fill you.", ["lose_text"] = "You no longer feel a holy wrath.", ["desc"] = { " You can send evil creatures directly to the Nether Realm.", " Removes one evil monster.", " Level=25, Cost=25, Stat=WIS, Difficulty=18", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_BANISH) end, }, } MUT1_COLD_TOUCH = add_corruption { ["color"] = TERM_RED, ["name"] = "Cold Touch", ["get_text"] = "Your hands get very cold.", ["lose_text"] = "Your hands warm up.", ["desc"] = { " You can freeze things with a touch.", " Fires a frost bolt (Damage=level*2)", " Level=2, Cost=2, Stat=CON, Difficulty=11", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_COLD_TOUCH) end, }, } MUT1_LAUNCHER = add_corruption { ["color"] = TERM_RED, ["name"] = "Throw Object", ["get_text"] = "Your throwing arm feels much stronger.", ["lose_text"] = "Your throwing arm feels much weaker.", ["desc"] = { " You can hurl objects with great force.", " Level dependant multiplier for thrown objects", " ranging from x2 to x5 at level 48", " Level=1, Cost=10, Stat=STR, Difficulty=6", }, ["hooks"] = { [HOOK_CALC_POWERS] = function() player.add_power(PWR_LAUNCHER) end, }, } -- The old permanent mutations MUT3_HYPER_STR = add_corruption { ["color"] = TERM_RED, ["name"] = "Hyper Strength", ["get_text"] = "You turn into a superhuman he-man!", ["lose_text"] = "Your muscles revert to normal.", ["desc"] = { " You are superhumanly strong (+4 STR, -1 INT, -1 WIS).", }, -- No oppose field, it will be automatically set by MUT3_PUNY ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_STR, 4) player.modify_stat(A_INT, -1) player.modify_stat(A_WIS, -1) end, }, } MUT3_PUNY = add_corruption { ["color"] = TERM_RED, ["name"] = "Puny", ["get_text"] = "Your muscles wither away...", ["lose_text"] = "Your muscles revert to normal.", ["desc"] = { " You are puny (-4 STR, +2 DEX).", }, ["oppose"] = { [MUT3_HYPER_STR] = TRUE }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_STR, -4) player.modify_stat(A_DEX, 2) end, }, } MUT3_HYPER_INT = add_corruption { ["color"] = TERM_RED, ["name"] = "Hyper Intelligence", ["get_text"] = "Your brain evolves into a living computer!", ["lose_text"] = "Your brain reverts to normal.", ["desc"] = { " Your brain is a living computer (+4 INT/WIS).", }, -- No oppose field, it will be automatically set by MUT3_MORONIC ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_INT, 4) player.modify_stat(A_WIS, 4) end, }, } MUT3_MORONIC = add_corruption { ["color"] = TERM_RED, ["name"] = "Puny", ["get_text"] = "Your brain withers away...", ["lose_text"] = "Your brain reverts to normal.", ["desc"] = { " You are moronic (-4 INT/WIS).", }, ["oppose"] = { [MUT3_HYPER_INT] = TRUE }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_INT, -4) player.modify_stat(A_WIS, -4) end, }, } MUT3_RESILIENT = add_corruption { ["color"] = TERM_RED, ["name"] = "Resilient", ["get_text"] = "You become extraordinarily resilient.", ["lose_text"] = "You become ordinarily resilient again.", ["desc"] = { " You are very resilient (+4 CON).", }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_CON, 4) end, }, } MUT3_ALBINO = add_corruption { ["color"] = TERM_RED, ["name"] = "Albino", ["get_text"] = "You turn into an albino! You feel frail...", ["lose_text"] = "You are no longer an albino!", ["desc"] = { " You are albino (-4 CON).", }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_CON, -4) end, }, } MUT3_LIMBER = add_corruption { ["color"] = TERM_RED, ["name"] = "Limberness", ["get_text"] = "Your muscles become limber.", ["lose_text"] = "Your muscles stiffen.", ["desc"] = { " Your body is very limber (+3 DEX, -1 STR).", }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_STR, -1) player.modify_stat(A_DEX, 3) end, }, } MUT3_ARTHRITIS = add_corruption { ["color"] = TERM_RED, ["name"] = "Arthritis", ["get_text"] = "Your joints suddenly hurt.", ["lose_text"] = "Your joints stop hurting.", ["desc"] = { " Your joints ache constantly (-3 DEX).", }, ["oppose"] = { [MUT3_LIMBER] = TRUE }, ["hooks"] = { [HOOK_CALC_BONUS] = function() player.modify_stat(A_DEX, -3) end, }, } |
Maintained by DarkGod. Contact.
![[ToME Logo]](../img/logo.gif)
![[Powered by Lua]](../img/lua.png)