summaryrefslogtreecommitdiff
path: root/lib/mods/theme/help
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mods/theme/help')
-rw-r--r--lib/mods/theme/help/ability.txt20
-rw-r--r--lib/mods/theme/help/advanced.hlp5
-rw-r--r--lib/mods/theme/help/automat.txt12
-rw-r--r--lib/mods/theme/help/birth.txt5
-rw-r--r--lib/mods/theme/help/c_alchem.txt135
-rw-r--r--lib/mods/theme/help/c_geoman.txt1
-rw-r--r--lib/mods/theme/help/c_mage.txt1
-rw-r--r--lib/mods/theme/help/c_merch.txt29
-rw-r--r--lib/mods/theme/help/c_necro.txt1
-rw-r--r--lib/mods/theme/help/c_runecr.txt110
-rw-r--r--lib/mods/theme/help/c_sorcer.txt1
-rw-r--r--lib/mods/theme/help/c_thaum.txt1
-rw-r--r--lib/mods/theme/help/c_warper.txt1
-rw-r--r--lib/mods/theme/help/command.txt80
-rw-r--r--lib/mods/theme/help/debug.txt39
-rw-r--r--lib/mods/theme/help/def.aux3
-rw-r--r--lib/mods/theme/help/defines.txt639
-rw-r--r--lib/mods/theme/help/dungeon.txt2
-rw-r--r--lib/mods/theme/help/essences.txt219
-rw-r--r--lib/mods/theme/help/index.txt12
-rw-r--r--lib/mods/theme/help/lua.hlp34
-rw-r--r--lib/mods/theme/help/lua_gf.txt45
-rw-r--r--lib/mods/theme/help/lua_intr.txt133
-rw-r--r--lib/mods/theme/help/lua_mon.txt535
-rw-r--r--lib/mods/theme/help/lua_play.txt1225
-rw-r--r--lib/mods/theme/help/lua_pow.txt266
-rw-r--r--lib/mods/theme/help/lua_ques.txt299
-rw-r--r--lib/mods/theme/help/lua_skil.txt342
-rw-r--r--lib/mods/theme/help/lua_spel.txt2150
-rw-r--r--lib/mods/theme/help/lua_util.txt898
-rw-r--r--lib/mods/theme/help/m_divin.txt2
-rw-r--r--lib/mods/theme/help/m_music.txt3
-rw-r--r--lib/mods/theme/help/macrofaq.txt17
-rw-r--r--lib/mods/theme/help/magic.txt10
-rw-r--r--lib/mods/theme/help/option.txt151
-rw-r--r--lib/mods/theme/help/skills.txt35
-rw-r--r--lib/mods/theme/help/spoiler.hlp1
-rw-r--r--lib/mods/theme/help/tome_faq.txt13
38 files changed, 77 insertions, 7398 deletions
diff --git a/lib/mods/theme/help/ability.txt b/lib/mods/theme/help/ability.txt
index 175d6745..17d89dbc 100644
--- a/lib/mods/theme/help/ability.txt
+++ b/lib/mods/theme/help/ability.txt
@@ -27,11 +27,15 @@ playable, and maybe even powerful enough to win the game!
Here follows a list of all the available abilities:
-*****ability.txt*02[Spread blows] *****ability.txt*03[Tree walking]
-*****ability.txt*04[Perfect casting] *****ability.txt*05[Extra Max Blow(1)]
-*****ability.txt*06[Extra Max Blow(2)] *****ability.txt*07[Ammo creation]
-*****ability.txt*08[Touch of death] *****ability.txt*09[Artifact Creation]
-*****ability.txt*10[Far reaching attack] *****ability.txt*11[Trapping]
+*****ability.txt*02[Spread blows]
+*****ability.txt*03[Tree walking]
+*****ability.txt*04[Perfect casting]
+*****ability.txt*05[Extra Max Blow(1)]
+*****ability.txt*06[Extra Max Blow(2)]
+*****ability.txt*07[Ammo creation]
+*****ability.txt*08[Touch of death]
+*****ability.txt*10[Far reaching attack]
+*****ability.txt*11[Trapping]
*****ability.txt*12[Undead Form]
~~~~~02|Abilities|Spread blows
@@ -84,12 +88,6 @@ for that kill.
You must activate this from your 'm' menu.
#####UPrereq: Necromancy skill@50, Combat skill@40, DEX@30, STR@30
#####rCost: 15
-~~~~~09|Abilities|Artifact Creation
-[[[[[BArtifact Creation]
-In combination with a high alchemy skill this ability will let you
-design your very own artifacts.
-Prereq: Alchemy@40, INT@35, WIS@35
-#####rCost: 70
~~~~~10|Abilities|Far reaching attack
[[[[[BFar reaching attack]
You can attack an enemy one square far using a long polearm.
diff --git a/lib/mods/theme/help/advanced.hlp b/lib/mods/theme/help/advanced.hlp
index 3f6fe4bd..8595712b 100644
--- a/lib/mods/theme/help/advanced.hlp
+++ b/lib/mods/theme/help/advanced.hlp
@@ -7,9 +7,8 @@ Please choose one of the following help files:
*****/aoption.txt*0[(a) Options]
*****/bmacrofaq.txt*0[(b) Macros]
*****/cautomat.txt*0[(c) Automatizer help]
- (d) Lua scripting help - coming soon
- *****/edebug.txt*0[(e) Debug commands]
- *****/fversion.txt*0[(f) Version information] A history of ToME's roots
+ *****/ddebug.txt*0[(d) Debug commands]
+ *****/eversion.txt*0[(e) Version information] A history of ToME's roots
*****/zhelp.hlp*0[(z) Main Help menu]
diff --git a/lib/mods/theme/help/automat.txt b/lib/mods/theme/help/automat.txt
index bf6478f8..c09630a5 100644
--- a/lib/mods/theme/help/automat.txt
+++ b/lib/mods/theme/help/automat.txt
@@ -25,10 +25,9 @@ things providing you are of a certain level.
#####GSounds quite cool, but wha...
STOP RIGHT THERE! I haven't finished yet! Let's look at some other examples.
Most of the time, scrolls of darkness are pretty useless. Unless you are a
-vampire, or an alchemist, right? So you might think it was no good to add
-auto-destroy of scrolls of darkness to the automatizer. But you'd be wrong, for
-you can add rules that are dependent on certain conditions, like that you are
-of a certain race, or class.
+vampire, right? So you might think it was no good to add auto-destroy of scrolls
+of darkness to the automatizer. But you'd be wrong, for you can add rules that
+are dependent on certain conditions, like that you are of a certain race, or class.
#####GHey this is sounding good. What if it destroys my artifacts?
It can't. Artifacts can never be destroyed, by the automatizer. However, watch
@@ -250,9 +249,8 @@ instead of <tval>23</tval> you could write <tval>TV_SWORD</tval>.
#####GAh that would be better. But where can I find out what all the names, and
#####Gnumbers of tvalues are?
-Well I've written a *****defines.txt*0[file] which lists tvalues and one which lists svalues for you
-to check on, and you may want to check the objects entry in k_info.txt in your
-lib/edit directory. If you look at the entry for dagger you'll see:
+Have a look at the object entry in k_info.txt in your lib/edit directory. If you
+check the entry for dagger you'll see:
N:43:& Dagger~
G:|:W
diff --git a/lib/mods/theme/help/birth.txt b/lib/mods/theme/help/birth.txt
index 9e7da8dd..28685c7d 100644
--- a/lib/mods/theme/help/birth.txt
+++ b/lib/mods/theme/help/birth.txt
@@ -260,7 +260,7 @@ or rogue. Spell casting generally requires a more experienced player that is
familiar with survival techniques.
*****c_archer.txt*0[Archer] *****c_mimic.txt*0[Mimic] *****c_rogue.txt*0[Rogue]
- *****c_ascet.txt*0[Ascetic] *****c_mindcr.txt*0[Mindcrafter] *****c_runecr.txt*0[Runecrafter]
+ *****c_ascet.txt*0[Ascetic] *****c_mindcr.txt*0[Mindcrafter]
*****c_assass.txt*0[Assassin] *****c_monk.txt*0[Monk] *****c_sorcer.txt*0[Sorceror]
*****c_axemas.txt*0[Axemaster] *****c_necro.txt*0[Necromancer] *****c_stonewr.txt*0[Stonewright]
*****c_bard.txt*0[Bard] *****c_palad.txt*0[Paladin] *****c_swordm.txt*0[Swordmaster]
@@ -558,7 +558,6 @@ are listed in the following table.
Geomancer -5 +3 0 +1 -2 +1
Mage -5 +3 0 +1 -2 +1
Necromancer -5 +3 0 +1 -2 +1
- Runecrafter -5 +3 0 +1 -2 +1
Sorceror -5 +3 0 +1 -2 +1
Thaumaturgist -5 +3 0 +1 -2 +1
Warper -5 +3 0 +1 -2 +1
@@ -656,4 +655,4 @@ are listed in the following table.
(Lygrog) +5 +5 +5 +10 +5 +50 +0 +0 +30 feet
(Limrog) +2 +2 +2 +2 +2 +30 +0 +0 +20 feet
(Rawrog) +0 +0 +4 -3 +0 +10 +10 +10 +0 feet
- (Adanrog) +1 +1 +1 +1 +1 +20 +15 +10 +20 feet \ No newline at end of file
+ (Adanrog) +1 +1 +1 +1 +1 +20 +15 +10 +20 feet
diff --git a/lib/mods/theme/help/c_alchem.txt b/lib/mods/theme/help/c_alchem.txt
deleted file mode 100644
index 2f7cd58c..00000000
--- a/lib/mods/theme/help/c_alchem.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-|||||oy
-~~~~~01|Alchemist
-~~~~~02|Classes|Alchemist
-#####R=== Alchemists ===
-
-#####GDescription
-Alchemists are the only class that can harness the abilities of the
-essences found in the dungeon. They can add these essences to staves,
-rings, wands, rods, and sometimes weapons and armour to create new items
-or recharge old ones. They can also extract essences from magical items
-they find. Using these abilities, Alchemists can get very good items at
-low levels. The trouble is getting them to survive later on.
-
-Alchemists are extremely proficient with all kinds of magical devices,
-and have made a fine art of extracting, storing, and using these
-objects' magical energies. Because they neither fight well nor cast
-powerful spells, Alchemists rely on their craftsmanship to cope with
-the dangers of the dungeons. They will quickly learn to create damage-
-dealing wands, rods, and staffs, forge powerful weapons and armour,
-make highly useful objects of other kinds, and eventually, at great cost
-to other knowledge, they can learn the perilous art of artifact creation
-itself.
-
-#####GStarting Stat Modifiers
-Strength -5
-Intelligence +3
-Wisdom +0
-Dexterity +1
-Constitution -2
-Charisma +1
-Hit Die +d0
-Spell Points +0%
-Exp Penalty 30%
-
-#####GStarting Skills:
-#####BSkill Start Level Skill Point Gains
-Combat 1.000 [0.700]
- Weaponmastery 0.700 [0.700]
-Sneakiness 1.000 [0.900]
- Stealth 0.000 [0.400]
-Magic 3.000 [0.900]
- Magic-Device 1.000 [1.250]
- Geomancy
- Fire 0.000 [0.100]
- Water 0.000 [0.100]
- Air 0.000 [0.100]
- Earth 0.000 [0.100]
- Meta 0.000 [0.500]
- Conveyance 0.000 [0.100]
- Divination 0.000 [0.500]
- Temporal 0.000 [0.100]
- Mind 0.000 [0.100]
- Nature 0.000 [0.100]
- Necromancy 0.000 [0.100]
- Runecraft 0.000 [0.700]
- Thaumaturgy 0.000 [0.100]
- Alchemy 1.000 [0.800]
-Spirituality 1.000 [0.800]
- Prayer 0.000 [0.500]
-Monster-lore 0.000 [0.500]
-
-*An Alchemist cannot learn the Geomancy skill, but it is shown in his skill
-screen because the elemental schools are sub-skills of it.
-
-#####GInnate Abilities:
-#####BAbility Character level
-Perfect casting 1
-
-#####GStarting Equipment
-An Alchemist begins the game with:
- a Dagger
- six Essences of Explosion
- an Empty Bottle
- a Set of Leather Gloves
-~~~~~03|Alchemist|Alchemy powers explained
-~~~~~05|Skills|Alchemy - Alchemy powers
-#####GAlchemy
-[[[[[BThe alchemical techniques are accessed using the 'm' key.]
-Alchemists may then 'E'xtract essences or add 'P'owers. The Alchemist [[[[[vmust]
-be wearing GLOVES to use their alchemy powers.
-
-An Alchemist is also capable of [[[[[Bcreating their own artifacts], but
-this is a time-consuming, and costly, activity. To do so, he must first
-learn the ability *****ability.txt*09[Artifact Creation], which costs a whopping 70 skill points
-to learn, and requires some high pre-requisites. Once he has done so,
-he needs to imbue an ego item with a number of essences of magic (equal
-to their skill level) and then wield the item. While using the item,
-it will gain experience (which reduces the amount of exp the wearer
-gains during this time). When the Alchemist feels that the item is
-powerful enough, he can finalise the artifact by "buying" powers using
-the experience the artifact has collected. He will also require exotic
-ingredients to add the abilities.
-
-Most (but not all) potions, scrolls, wands, staffs, rods, rings, and
-amulets contain usable magical energies. An Alchemist taps that
-energy, using the technique "'E'xtract essences" to create one or more
-essences of a type appropriate to the original object.
-
-The drained object itself is now called "of nothing". Unlike any
-other kind of object, it can have new magics added to it.
-
-An Alchemist can add power to such items by using essences he made or
-found. He does this with the technique "'P'ower". He can then select
-the object he wishes to enchant, and the kind of object he wishes to
-create. Only object types for which he knows the recipe will be displayed,
-and ones for which essences are lacking will be displayed in red. Objects
-whose level exceeds his own are sometimes difficult to create, though
-he can always add gold to improve the chances of his success.
-
-[[[[[BA few pointers:]
- -Recipes are (usually) logical. Acid essences don't make Dragon
- Weapons. And you can always look at the recipes you know with
- the "recipe 'B'ook" command.
- -Not all objects or ego-item types can be made using alchemy.
- -Alchemy is mostly reversible. Most items that you can
- 'E'xtract from, you can later re-create, if you learn about
- them when extracting from them. You won't always get enough
- essences from destroying an item to recreate it, though the
- chance of doing so will get higher as you increase in skill.
- -*Identifying* an object that you can destroy will always teach
- you how to create it (if creating it is possible).
- -Since you can't create abilities in artifacts that you aren't
- aware of, make sure to *identify* all the artifacts you can.
- -You can't *identify* things you buy in shops, so you'll have
- to extract from them and take your chances.
-
-[[[[[BSome Recipes:]
-Any Alchemist worth his salt knows lots of recipes. By extracting from
-items in the dungeon, he learns to create more and more items. You can
-see the recipes you know using the "recipe 'B'ook" command. The Alchemist
-starts off knowing some basic recipes, and gains more recipes as time
-goes on.
-
-More details can be found in the *****essences.txt*0[Essences SPOILER]).
-
diff --git a/lib/mods/theme/help/c_geoman.txt b/lib/mods/theme/help/c_geoman.txt
index 47855875..ba8eaa66 100644
--- a/lib/mods/theme/help/c_geoman.txt
+++ b/lib/mods/theme/help/c_geoman.txt
@@ -43,7 +43,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_mage.txt b/lib/mods/theme/help/c_mage.txt
index 949d3bcc..9bfd6a3c 100644
--- a/lib/mods/theme/help/c_mage.txt
+++ b/lib/mods/theme/help/c_mage.txt
@@ -48,7 +48,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.900]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_merch.txt b/lib/mods/theme/help/c_merch.txt
deleted file mode 100644
index 31fb60dd..00000000
--- a/lib/mods/theme/help/c_merch.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#####R=== Merchants ===
-
-#####GDescription
-A Merchant is neither a warrior nor a spellcaster. They still have some great
-advantages, they can use chests to warp items into other items, they can
-indentify items, they soon learn to detect all objects in the area, and
-at higher level they can see all monsters carrying objects. They will also
-get the power to appraise items and to turn them into gold. A merchant will
-naturraly get better prices in shops and get access to the merchant guild
-services, loan and item request.
-
-#####GPrimary Stats
-Charisma
-Intelligence (Ability stat)
-
-#####GMagic Usage
-Merchants can use portable holes to carry more stuff than other classes but
-at the cost of an increased weight. To do that they must wear a portable hole
-and use it with 'm'.
-They also can use their merchants abilities and midas touch in the 'U' menu.
-
-#####GStarting Equipment
-A merchant begins the game with:
- A portable hole
- A small steel chest containing gold and items
- A long sword
- A wand of tame monsters
-
-
diff --git a/lib/mods/theme/help/c_necro.txt b/lib/mods/theme/help/c_necro.txt
index f3a5ad2c..c4b05e3c 100644
--- a/lib/mods/theme/help/c_necro.txt
+++ b/lib/mods/theme/help/c_necro.txt
@@ -42,7 +42,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.500]
Necromancy 1.000 [1.000]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_runecr.txt b/lib/mods/theme/help/c_runecr.txt
deleted file mode 100644
index 8388eff9..00000000
--- a/lib/mods/theme/help/c_runecr.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-~~~~~01|Runecrafter
-~~~~~02|Classes|Runecrafter
-#####R=== Runecrafters ===
-
-#####GDescription
-Instead of using spellbooks like the other spellcasters they instead
-use mystic runes. To cast a spell they select a primary rune of the
-elements (fire, cold, etc.) and they also choose a set of secondary runes,
-which shape the effect of the first one. The secondary runes include
-Self, Arrow, Ray, ... and Armageddon. After that they chose the amount
-of mana to use and the spell is cast! But the more secondary runes they
-chose the more mana is used to cast the spell. They also are bad
-fighters, but if they concentrate all their mana in one spell
-(especially with a mage staff of mana) they could kill nearly anything.
-
-#####GStarting Stat Modifiers
-Strength -5
-Intelligence +3
-Wisdom +0
-Dexterity +1
-Constitution -2
-Charisma +1
-Hit Die +d0
-Spell Points +50%
-Exp Penalty 30%
-
-#####GStarting Skills:
-#####BSkill Start Level Skill Point Gains
-Combat 1.000 [0.200]
- Weaponmastery 0.700 [0.400]
-Sneakiness 1.000 [0.900]
- Stealth 0.000 [0.400]
-Magic 2.000 [0.950]
- Magic-Device 1.000 [1.200]
- Spell-power 0.000 [0.600]
- Mana 1.000 [0.600]
- Geomancy
- Fire 0.000 [0.700]
- Water 0.000 [0.700]
- Air 0.000 [0.700]
- Earth 0.000 [0.700]
- Meta 0.000 [0.700]
- Conveyance 0.000 [0.700]
- Divination 0.000 [0.700]
- Temporal 0.000 [0.700]
- Mind 0.000 [0.700]
- Nature 0.000 [0.700]
- Necromancy 0.000 [0.700]
- Runecraft 1.000 [1.000]
- Thaumaturgy 0.000 [0.700]
-Spirituality 1.000 [0.550]
- Prayer 0.000 [0.500]
-Monster-lore 0.000 [0.500]
-
-*A Runecrafter cannot learn the Geomancy skill, but it is shown in his skill
-screen because the elemental schools are sub-skills of it.
-
-#####GInnate Abilities:
-#####BAbility Character level
-Perfect casting 1
-
-~~~~~03|Runecrafter|Runecrafter powers
-~~~~~04|Skills|Runecrafting - Runecrafter powers
-#####GRune Magic
-Runecrafters combine runes using the 'm' command. They first select a
-rune that controls magic type, then apply one or more runes to fine-tune
-effects, (pressing ESC when done), and then input the amount of mana
-they wish to expend on the spell.
-
-Runecrafters can cast the spells from their runes in several ways:
-1. On-the-fly by combining runes when they need them.
-2. Memorise rune combinations for quick use when needed (and they don't
- need to be able to see then!), and then later cast from memory.
-3. Carving them into a Runestone, then using the Runestone later (takes
- less mana, but they have to be able to see).
-
-[[[[[BSpell Types:]
-(Some kinds are not listed, and are left for the reader to discover...)
- Knowledge: Identify all objects in affected grids, Self-knowledge
- if Self rune is used.
- Life: Heals monsters in affected grids, heals player if Self rune
- is used.
- Fire, Cold, Lightning, Acid: Casts magics of that element.
- Elements: Irresistible damage.
- Mind: A mind blast that badly effects intelligent monsters.
- Temporary ESP if Self rune is used.
- Gravity: A gravity spell that both does damage and whisks affected
- creatures around.
-
-[[[[[BSpell Effects] (all are listed):
- Self: Effects the caster. This rune can be used with any other;
- if used alone, only the caster's grid is affected.
- Arrow: Spell will include a bolt effect. This allows aiming.
- Ray: Spell will include a beam effect. This allows aiming.
- Increases difficulty slightly.
- Sphere: Spell will end with a circular explosion. Increases
- difficulty a bit. Can be used alone, or with Self, Arrow, or
- Ray.
- Power Surge: Not currently recommended for use. Increases
- difficulty a lot.
- Armageddon: Hurls down meteors of the magical type in the vicinity
- of the caster. Increases difficulty noticeably, but can do a
- great deal of damage.
-
-#####GStarting Equipment
-A Runecrafter begins the game with:
- a Rune [Fire]
- a Rune [Arrow]
- a Dagger
-
diff --git a/lib/mods/theme/help/c_sorcer.txt b/lib/mods/theme/help/c_sorcer.txt
index 8a33184f..c2fbdbb0 100644
--- a/lib/mods/theme/help/c_sorcer.txt
+++ b/lib/mods/theme/help/c_sorcer.txt
@@ -48,7 +48,6 @@ Magic 1.000 [1.000]
Mind 0.000 [1.000]
Nature 0.000 [1.000]
Necromancy 0.000 [1.000]
- Runecraft 0.000 [0.900]
Thaumaturgy 0.000 [0.900]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_thaum.txt b/lib/mods/theme/help/c_thaum.txt
index 653e84fa..2680a1c4 100644
--- a/lib/mods/theme/help/c_thaum.txt
+++ b/lib/mods/theme/help/c_thaum.txt
@@ -46,7 +46,6 @@ Magic 3.000 [0.950]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 1.000 [1.000]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_warper.txt b/lib/mods/theme/help/c_warper.txt
index 55d16be5..1c461049 100644
--- a/lib/mods/theme/help/c_warper.txt
+++ b/lib/mods/theme/help/c_warper.txt
@@ -41,7 +41,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.800]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/command.txt b/lib/mods/theme/help/command.txt
index 6616c252..11ed1df4 100644
--- a/lib/mods/theme/help/command.txt
+++ b/lib/mods/theme/help/command.txt
@@ -29,7 +29,7 @@ the game that you wish to do the command multiple times, unless you press a
key or are otherwise disturbed. To enter a "repeat count", type '0', followed
by the numerical count, followed by the command. You must type "space" before
entering certain commands. Skipping the numerical count yields a count of 99.
-An option allows certain commands (open, disarm, tunnel, etc) to auto-repeat.
+An option allows certain commands (open, tunnel, etc) to auto-repeat.
Some commands will prompt for extra information, such as a direction, an
inventory or equipment item, a spell, a textual inscription, the symbol of a
@@ -88,7 +88,7 @@ that you can always, for example, use "\" + "." + "6", to specify "run east".
*****command.txt*1[a Aim a wand] *****command.txt*2[A Activate an artifact]
*****command.txt*3[b Browse a book] *****command.txt*4[B Bash a door]
*****command.txt*5[c Close a door] *****command.txt*6[C Character description]
- *****command.txt*7[d Drop an item] *****command.txt*8[D Disarm a trap]
+ *****command.txt*7[d Drop an item] D (unused)
*****command.txt*9[e Equipment list] *****command.txt*10[E Eat some food]
*****command.txt*11[f Fire (shoot) an item] *****command.txt*12[F Fuel your lantern/torch]
*****command.txt*13[g Stay still (flip pickup)] *****command.txt*14[G Gain new skills]
@@ -136,8 +136,8 @@ that you can always, for example, use "\" + "." + "6", to specify "run east".
*****command.txt*72[, Stay still (with pickup)] ^W (special - wizard mode)
*****command.txt*74[< Go up staircase] *****command.txt*75[^X Save and quit]
*****command.txt*76[. Run] ^Y (unused)
- *****command.txt*77[> Go down staircase] ^Z (special - borg command)
- *****command.txt*79[\ (special - bypass keymap)] *****command.txt*80[| Do cmovies]
+ *****command.txt*77[> Go down staircase] ^Z (unused)
+ *****command.txt*79[\ (special - bypass keymap)]
*****command.txt*81[` (special - escape)] *****command.txt*82[~ Display current knowledge]
*****command.txt*83[/ Identify symbol] *****command.txt*84[? Help]
*****command.txt*98[^\] Take an html screenshot]
@@ -149,7 +149,7 @@ that you can always, for example, use "\" + "." + "6", to specify "run east".
*****command.txt*45[a Zap a rod (Activate)] *****command.txt*2[A Activate an artifact]
*****command.txt*95[b (walk - south west)] *****command.txt*95[B (run - south west)]
*****command.txt*5[c Close a door] *****command.txt*6[C Character description]
- *****command.txt*7[d Drop an item] *****command.txt*8[D Disarm a trap or chest]
+ *****command.txt*7[d Drop an item] D (unused)
*****command.txt*9[e Equipment list] *****command.txt*10[E Eat some food]
*****command.txt*4[f Bash a door (force)] *****command.txt*12[F Fuel your lantern/torch]
*****command.txt*13[g Stay still (flip pickup)] *****command.txt*14[G Gain new skills]
@@ -197,14 +197,14 @@ that you can always, for example, use "\" + "." + "6", to specify "run east".
*****command.txt*76[, Run] ^W (special - wizard mode)
*****command.txt*74[< Go up staircase] *****command.txt*75[^X Save and quit]
*****command.txt*72[. Stay still (with pickup)] *****command.txt*95[^Y (tunnel - north west)]
- *****command.txt*77[> Go down staircase] ^Z (special - borg command)
- *****command.txt*79[\ (special - bypass keymap)] *****command.txt*80[| Do cmovies]
+ *****command.txt*77[> Go down staircase] ^Z (unused)
+ *****command.txt*79[\ (special - bypass keymap)]
*****command.txt*81[` (special - escape)] *****command.txt*82[~ Display current knowledge]
*****command.txt*83[/ Identify symbol] *****command.txt*84[? Help]
~~~~~102|Commands|Special keys
#####R=== Special Keys ===
-
+
Certain special keys may be intercepted by the operating system or
the host machine, causing unexpected results. In general, these special keys
are control keys, and often, you can disable their special effects.
@@ -265,8 +265,8 @@ ESCAPE which are always ignored as commands in case you type the command
just after the count expires.
You can tell ToME to automatically use a repeat count of 99
-with commands you normally want to repeat (open, disarm, tunnel, bash,
-alter, etc) by setting the "always_repeat" option.
+with commands you normally want to repeat (open, tunnel, bash, alter,
+etc) by setting the "always_repeat" option.
#####R=== Selection of Objects ===
@@ -471,7 +471,7 @@ plus the "underlying command" key. This is followed by the command name
and "roguelike" keyset key, if different from the underlying command key.
Then comes a brief description of the command, including information about
alternative methods of specifying the command in each keyset, when needed.
-Several commands (tunnel, disarm, bash, open) are repeated 99 times if the
+Several commands (tunnel, bash, open) are repeated 99 times if the
"always_repeat" option is set and no repeat count is given. Some commands
use the "repeat count" to automatically repeat the command several times,
while others use the "repeat count" as an "argument", for example, commands
@@ -498,12 +498,7 @@ for a quantity will convert any "letters" into the maximal legal value.
each corresponding to a different location on the body, and each of
which may contain only a single object at a time, and each of which
may only contain objects of the proper "type".
- If the option "show_labels" is set, the slots are labelled as follows:
- Wielding (weapon), Shooting (missile launcher or instruments),
- On finger (ring), Around neck (amulet), Light source (light source),
- On body (armor), About body (cloak), On arm (shield), On head (helmet),
- On hands (gloves), On feet (boots), Carrying (symbiote), Quiver (ammo),
- Using (tool). You must be using an object to receive any of its special
+ You must be using an object to receive any of its special
powers.
~~~~~7
[[[[[GDrop an item (d)]
@@ -518,8 +513,7 @@ for a quantity will convert any "letters" into the maximal legal value.
[[[[[GDestroy an item (k) or Destroy an item (^D)]
This destroys an item in your inventory or on the dungeon floor.
If the selected pile contains multiple objects, you may specify
- a quantity. You must always verify this command, unless the item
- is cursed or worthless and the option "auto_destroy" is set.
+ a quantity. You must always verify this command.
~~~~~42
[[[[[GWear/Wield equipment (w)]
To wear or wield an object in your inventory, use this command.
@@ -657,11 +651,10 @@ for a quantity will convert any "letters" into the maximal legal value.
[[[[[GOpen a door or chest (o)]
To open an object such as a door or chest, you must use this
command. If the object is locked, you will attempt to pick the
- lock based on your disarming ability. If you open a trapped chest
- without disarming the traps first, the trap will be set off. Some
- doors will be jammed shut and may have to be forced open. You may
- need several tries to open a door or chest. Open can take a count,
- requires a direction, and is affected by the "always_repeat" option.
+ lock based. Some doors will be jammed shut and may have to be
+ forced open. You may need several tries to open a door or chest.
+ Open can take a count, requires a direction, and is affected by
+ the "always_repeat" option.
~~~~~5
[[[[[GClose a door (c)]
Non-intelligent and some other creatures cannot open doors, so
@@ -687,19 +680,12 @@ for a quantity will convert any "letters" into the maximal legal value.
may permanently break it so that it can never be closed. Bash or
Force can take a count, requires a direction, and is affected by
the "always_repeat" option.
-~~~~~8
-[[[[[GDisarm a trap or chest (D)]
- You can attempt to disarm traps on the floor or on chests. If you
- fail, there is a chance that you will blunder and set it off. You
- can only disarm a trap after you have found it (usually with the
- Search command). Disarm can take a count, requires a direction,
- and is affected by the "always_repeat" option.
~~~~~63
[[[[[GAlter (+)]
This special command allows the use of a single keypress to select
any of the "obvious" commands above (attack, tunnel, bash, open,
- disarm, close), and, by using macros or keymaps, to combine this
- keypress with directions. In general, this allows the use of the
+ close), and, by using macros or keymaps, to combine this keypress
+ with directions. In general, this allows the use of the
"control" key plus the appropriate "direction" key (including the
roguelike direction keys in roguelike mode) as a kind of generic
"alter the terrain feature of an adjacent grid" command. Alter
@@ -789,9 +775,9 @@ for a quantity will convert any "letters" into the maximal legal value.
Use this command to read a scroll. Scroll spells usually have an
area effect, except for a few cases where they act on other objects.
Reading a scroll causes the parchment to disintegrate as the scroll
- takes effect, unless you are an Alchemist. Most scrolls which prompt
- for more information can be aborted (by pressing escape), which will
- stop reading the scroll before it disintegrates.
+ takes effect. Most scrolls which prompt for more information can
+ be aborted (by pressing escape), which will stop reading the scroll
+ before it disintegrates.
~~~~~58
[[[[[GInscribe an object ({)]
This command inscribes a string on an object. The inscription is
@@ -997,10 +983,8 @@ for a quantity will convert any "letters" into the maximal legal value.
~~~~~69
[[[[[GTake notes (:)]
This command allows you to take notes, which will then appear in your
- note file, if the birth-option "take_notes" was set (the default), or
- in your message list (prefixed with "Note:"), if the option was not set.
- The note file can be displayed through the "Display Current Knowledge"
- command (~ or |). This command takes no time.
+ note file. The note file can be displayed through the "Display Current
+ Knowledge" command (~ or |). This command takes no time.
~~~~~123|Commands|Game status
#####R--- Game Status Commands ---
~~~~~6
@@ -1054,9 +1038,8 @@ for a quantity will convert any "letters" into the maximal legal value.
Display known dungeon towns
Display notes
- If the option "take_notes" is set shows you your notes file, where all
- remarkable events are noted. You can add notes yourself by using the
- "Take notes" command (:).
+ Shows you your notes file, where all remarkable events are noted.
+ You can add notes yourself by using the "Take notes" command (:).
~~~~~70
[[[[[GTime of the day (^T)]
@@ -1218,17 +1201,6 @@ for a quantity will convert any "letters" into the maximal legal value.
command allows the player to force the game to finish the current song
and move on to another one (i.e. if you are tired of hearing the current
song, you can change it).
-~~~~~80
-[[[[[GDo cmovies (|)]
- The cmovie command (press | key in both normal or roguelike set) allows
- you to make a "movie" that you can send to people showing your movement
- through a part of the dungeon (like clearing that GCV . . .)
-
- It asks for a name (it will add the extension itself) and then if you wish
- to play or record it.
-
- The cmovie files (.cmv) are located in lib/cmov, note that they quickly
- become huge and so you REALLY should compress them before sending to friends.
~~~~~97
[[[[[GRecord macros ($)]
This is an easier way to create macros. Activate it, press the key
diff --git a/lib/mods/theme/help/debug.txt b/lib/mods/theme/help/debug.txt
index 56d57098..8aea13ee 100644
--- a/lib/mods/theme/help/debug.txt
+++ b/lib/mods/theme/help/debug.txt
@@ -12,7 +12,7 @@ will not be scored if you use debug commands.
~~~~~100|Debug|Command List
#####R=== Command List Summary ===
- *****debug.txt*1[a Autorestore] *****debug.txt*2[A Show all stats]
+ *****debug.txt*1[a Autorestore]
*****debug.txt*3[b Teleport to target] *****debug.txt*4[B HP to zero]
*****debug.txt*5[c Create object] *****debug.txt*6[C Create artifact]
*****debug.txt*7[d Detect all] *****debug.txt*8[D Teleport to the wilderness]
@@ -27,9 +27,9 @@ will not be scored if you use debug commands.
*****debug.txt*25[m Magic Mapping] *****debug.txt*26[M Gain corruption]
*****debug.txt*27[n Summon named monster] *****debug.txt*28[N Summon _friendly_ named monster]
*****debug.txt*29[o Edit object attributes] O (unused)
- *****debug.txt*31[p Phase door] *****debug.txt*32[P Panic save]
+ *****debug.txt*31[p Phase door] P (unused)
*****debug.txt*33[q Get a quest] Q (unused)
- *****debug.txt*35[r Gain reward] *****debug.txt*36[R Create a trap]
+ r (unused) R (unused)
*****debug.txt*37[s Summon monster] *****debug.txt*38[S Change the feature of the map]
*****debug.txt*39[t Teleport] *****debug.txt*40[T Teleport to a town]
*****debug.txt*41[u Complete map] *****debug.txt*42[U Become undead]
@@ -53,17 +53,17 @@ will not be scored if you use debug commands.
[ (unused) ^M (unused)
] (unused) ^N (unused)
*****debug.txt*67[- Create object] ^O (unused)
- *****debug.txt*69[_ The path to the god dark] ^P (unused)
+ ^P (unused)
*****debug.txt*71[+ Gain a fate] ^Q (unused)
*****debug.txt*73[= Align monster] ^R (unused)
; (unused) ^S (unused)
: (unused) ^T (unused)
' (unused) ^U (unused)
- *****debug.txt*75[" Create spoiler] ^V (unused)
+ ^V (unused)
, (unused) ^W (unused)
< (unused) ^X (unused)
. (unused) ^Y (unused)
- *****debug.txt*81[> Lua script] ^Z (unused)
+ ^Z (unused)
\ (unused) | (unused)
` (unused) ~ (unused)
*****debug.txt*91[/ Summon monster] *****debug.txt*92[? Help]
@@ -85,10 +85,6 @@ maximal legal value.
~~~~~1
[[[[[GAutorestore (a)]
Restores all your stats. This includes HP, SP, hunger, lost levels, etc.
-~~~~~2
-[[[[[GShow all stats (A)]
- This brings up the Character status menu, where you can view
- all the stats about your character.
~~~~~3
[[[[[GTeleport to target (b)]
You first need to have a monster targeted, then you can use
@@ -109,7 +105,7 @@ maximal legal value.
For example : 03^AC will create the Arkenstone of Thrane (+3)
~~~~~7
[[[[[GDetect all (d)]
- Sense ways out/monsters/objects/traps.
+ Sense ways out/monsters/objects.
~~~~~8
[[[[[GTeleport to the wilderness (D)]
From a dungeon this will teleport you to the wilderness level
@@ -138,8 +134,7 @@ maximal legal value.
Change your life rating.
~~~~~16
[[[[[GHostile monster creation (H)]
- Summons a Pack of Creatures of the same kind. Will only work
- if MONSTER_HORDES has been defined at compile time.
+ Summons a Pack of Creatures of the same kind.
~~~~~17
[[[[[GIdentify (i)]
Like a Scroll of Identify.
@@ -175,9 +170,6 @@ maximal legal value.
~~~~~31
[[[[[GPhase door (p)]
Like a Scroll of Phase Door.
-~~~~~32
-[[[[[GPanic save (P)]
- Save and quit the game, which is the same as doing a ^X.
~~~~~33
[[[[[GGet a quest (q)]
Get a quest.
@@ -187,11 +179,6 @@ maximal legal value.
~~~~~35
[[[[[GGain reward (r)]
Some high being grants you a reward.
-~~~~~36
-[[[[[GCreate a trap (R)]
- Use the "Command count", aka 0, to specify a number from
- tr_info.txt to put a trap on the ground where you are
- standing.
~~~~~37
[[[[[GSummon monster (s)]
Summon a random monster, next to where you stand.
@@ -247,10 +234,6 @@ maximal legal value.
[[[[[GCreate object (-)]
Allows you to create a new object where you stand. You must
specify an object number from k_info.txt.
-~~~~~69
-[[[[[GThe path to the god dark (_)]
- Do not use this as it is used by DarkGod as a test for Lua
- and will CRASH the game. You have been warned.
~~~~~71
[[[[[GGain a fate (+)]
Unearth more of your prophecy.
@@ -264,12 +247,6 @@ maximal legal value.
3 monster becomes pet
4 monster becomes companion
You then point at an enemy and press space.
-~~~~~75
-[[[[[GCreate spoiler (")]
- Brings up a menu that allows you to create a spoiler file.
-~~~~~81
-[[[[[GLua script (>)]
- Allows you to run a Lua script.
~~~~~91
[[[[[GSummon monster (/)]
Summons a random monster next to you.
diff --git a/lib/mods/theme/help/def.aux b/lib/mods/theme/help/def.aux
deleted file mode 100644
index 983e9683..00000000
--- a/lib/mods/theme/help/def.aux
+++ /dev/null
@@ -1,3 +0,0 @@
-file_ext="html"
-link_prefix=""
-link_suffix=""
diff --git a/lib/mods/theme/help/defines.txt b/lib/mods/theme/help/defines.txt
deleted file mode 100644
index ac997501..00000000
--- a/lib/mods/theme/help/defines.txt
+++ /dev/null
@@ -1,639 +0,0 @@
-|||||oy
-~~~~~81|Defines
-~~~~~85|Defines|Tvals
-~~~~~82|Automatizer|Defines
-~~~~~83|Tvals
-#####R /----------------------------------------\
-#####R < Tvals and svals >
-#####R \----------------------------------------/
-
-Some objects don't have svals as such. Spellbooks, wands, and staves for
-instance don't have svalues as they are defined in lua.
-
-TV_SKELETON 1 /* Skeletons ('s') */
-TV_BOTTLE 2 /* Empty bottles ('!') */
-*****defines.txt*04[TV_BATERIE] 4 /* For the Alchemists */
-TV_SPIKE 5 /* Spikes ('~') */
-TV_MSTAFF 6 /* Mage Staffs */
-TV_CHEST 7 /* Chests ('~') */
-TV_PARCHMENT 8 /* Parchments from Kamband */
-*****defines.txt*09[TV_CORPSE] 9 /* Monster corpses */
-TV_EGG 10 /* Monster Eggs */
-TV_JUNK 11 /* Sticks, Pottery, etc ('~') */
-*****defines.txt*12[TV_TOOL] 12 /* Tools */
-*****defines.txt*14[TV_INSTRUMENT] 14 /* Musical instruments */
-*****defines.txt*15[TV_BOOMERANG] 15 /* Boomerangs */
-*****defines.txt*16[TV_SHOT] 16 /* Ammo for slings */
-*****defines.txt*16[TV_ARROW] 17 /* Ammo for bows */
-*****defines.txt*16[TV_BOLT] 18 /* Ammo for x-bows */
-*****defines.txt*19[TV_BOW] 19 /* Slings/Bows/Xbows */
-*****defines.txt*20[TV_DIGGING] 20 /* Shovels/Picks */
-*****defines.txt*21[TV_HAFTED] 21 /* Priest Weapons */
-*****defines.txt*22[TV_POLEARM] 22 /* Pikes/Glaives/Spears/etc. */
-*****defines.txt*23[TV_SWORD] 23 /* Edged Weapons */
-*****defines.txt*24[TV_AXE] 24 /* Axes/Cleavers */
-*****defines.txt*30[TV_BOOTS] 30 /* Boots */
-*****defines.txt*31[TV_GLOVES] 31 /* Gloves */
-*****defines.txt*32[TV_HELM] 32 /* Helms */
-*****defines.txt*32[TV_CROWN] 33 /* Crowns */
-*****defines.txt*34[TV_SHIELD] 34 /* Shields */
-*****defines.txt*35[TV_CLOAK] 35 /* Cloaks */
-*****defines.txt*36[TV_SOFT_ARMOR] 36 /* Soft Armor */
-*****defines.txt*37[TV_HARD_ARMOR] 37 /* Hard Armor */
-*****defines.txt*38[TV_DRAG_ARMOR] 38 /* Dragon Scale Mail */
-*****defines.txt*39[TV_LITE] 39 /* Lites (including Specials) */
-*****defines.txt*40[TV_AMULET] 40 /* Amulets (including Specials) */
-*****defines.txt*45[TV_RING] 45 /* Rings (including Specials) */
-*****defines.txt*46[TV_TRAPKIT] 46 /* Trapkits */
-TV_TOTEM 54 /* Summoner totems */
-*****defines.txt*55[TV_STAFF] 55 /* Staffs */
-*****defines.txt*65[TV_WAND] 65 /* Wands */
-*****defines.txt*66[TV_ROD] 66 /* Rod tips */
-*****defines.txt*67[TV_ROD_MAIN] 67 /* Rod body's */
-*****defines.txt*70[TV_SCROLL] 70 /* Scrolls */
-*****defines.txt*71[TV_POTION] 71 /* potions */
-*****defines.txt*72[TV_POTION2] 72 /* Second set of potion */
-TV_FLASK 77 /* Flasks of oil */
-*****defines.txt*80[TV_FOOD] 80 /* Food, including mushrooms */
-TV_HYPNOS 99 /* To wield monsters !:) */
-TV_GOLD 100 /* Gold can only be picked up by players */
-TV_RANDART 102 /* Random Artifacts */
-TV_RUNE1 104 /* Base runes */
-TV_RUNE2 105 /* Modifier runes */
-TV_BOOK 111 /* spell books */
-*****defines.txt*115[TV_DAEMON_BOOK] 115 /* Demon blades, shields and horns */
-~~~~~84|Defines|Svals
-~~~~~12|Svals
-/* The "sval" codes for TV_TOOL */
- SV_TOOL_CLIMB 0
- SV_PORTABLE_HOLE 1
-~~~~~16
-/* The "sval" codes for TV_SHOT/TV_ARROW/TV_BOLT */
- SV_AMMO_LIGHT 0 /* pebbles */
- SV_AMMO_NORMAL 1 /* shots, arrows, bolts */
- SV_AMMO_HEAVY 2 /* seeker arrows and bolts, mithril shots */
-~~~~~14
-/* The "sval" codes for TV_INSTRUMENT */
- SV_FLUTE 1
- SV_BANJO 2
- SV_LUTE 3
- SV_MANDOLIN 4
- SV_DRUM 5
- SV_HARP 6
- SV_HORN 7
-~~~~~46
-/* The "sval" codes for TV_TRAPKIT */
- SV_TRAPKIT_SLING 1
- SV_TRAPKIT_BOW 2
- SV_TRAPKIT_XBOW 3
- SV_TRAPKIT_POTION 4
- SV_TRAPKIT_SCROLL 5
- SV_TRAPKIT_DEVICE 6
-~~~~~15
-/* The "sval" codes for TV_BOOMERANG */
- SV_BOOM_S_WOOD 1 /* 1d4 */
- SV_BOOM_WOOD 2 /* 1d9 */
- SV_BOOM_S_METAL 3 /* 1d8 */
- SV_BOOM_METAL 4 /* 2d4 */
-~~~~~19
-/* The "sval" codes for TV_BOW (note information in "sval") */
- SV_SLING 2 /* (x2) */
- SV_SHORT_BOW 12 /* (x2) */
- SV_LONG_BOW 13 /* (x3) */
- SV_LIGHT_XBOW 23 /* (x3) */
- SV_HEAVY_XBOW 24 /* (x4) */
-~~~~~20
-/* The "sval" codes for TV_DIGGING */
- SV_SHOVEL 1
- SV_GNOMISH_SHOVEL 2
- SV_DWARVEN_SHOVEL 3
- SV_PICK 4
- SV_ORCISH_PICK 5
- SV_DWARVEN_PICK 6
- SV_MATTOCK 7
-~~~~~21
-/* The "sval" values for TV_HAFTED */
- SV_CLUB 1 /* 1d4 */
- SV_WHIP 2 /* 1d6 */
- SV_QUARTERSTAFF 3 /* 1d9 */
- SV_NUNCHAKU 4 /* 2d3 */
- SV_MACE 5 /* 2d4 */
- SV_BALL_AND_CHAIN 6 /* 2d4 */
- SV_WAR_HAMMER 8 /* 3d3 */
- SV_LUCERN_HAMMER 10 /* 2d5 */
- SV_THREE_PIECE_ROD 11 /* 3d3 */
- SV_MORNING_STAR 12 /* 2d6 */
- SV_FLAIL 13 /* 2d6 */
- SV_LEAD_FILLED_MACE 15 /* 3d4 */
- SV_TWO_HANDED_FLAIL 18 /* 3d6 */
- SV_GREAT_HAMMER 19 /* 4d6 */
- SV_MACE_OF_DISRUPTION 20 /* 5d8 */
- SV_GROND 50 /* 3d4 */
-~~~~~24
-/* The "sval" values for TV_AXE */
- SV_HATCHET 1 /* 1d5 */
- SV_CLEAVER 2 /* 2d4 */
- SV_LIGHT_WAR_AXE 8 /* 2d5 */
- SV_BEAKED_AXE 10 /* 2d6 */
- SV_BROAD_AXE 11 /* 2d6 */
- SV_BATTLE_AXE 22 /* 2d8 */
- SV_GREAT_AXE 25 /* 4d4 */
- SV_LOCHABER_AXE 28 /* 3d8 */
- SV_SLAUGHTER_AXE 30 /* 5d7 */
-~~~~~22
-/* The "sval" values for TV_POLEARM */
- SV_SPEAR 2 /* 1d6 */
- SV_SICKLE 3 /* 2d3 */
- SV_AWL_PIKE 4 /* 1d8 */
- SV_TRIDENT 5 /* 1d9 */
- SV_FAUCHARD 6 /* 1d10 */
- SV_BROAD_SPEAR 7 /* 1d9 */
- SV_PIKE 8 /* 2d5 */
- SV_GLAIVE 13 /* 2d6 */
- SV_HALBERD 15 /* 3d4 */
- SV_GUISARME 16 /* 2d5 */
- SV_SCYTHE 17 /* 5d3 */
- SV_LANCE 20 /* 2d8 */
- SV_TRIFURCATE_SPEAR 26 /* 2d9 */
- SV_HEAVY_LANCE 29 /* 4d8 */
- SV_SCYTHE_OF_SLICING 30 /* 8d4 */
-~~~~~23
-/* The "sval" codes for TV_SWORD */
- SV_BROKEN_DAGGER 1 /* 1d1 */
- SV_BROKEN_SWORD 2 /* 1d2 */
- SV_DAGGER 4 /* 1d4 */
- SV_MAIN_GAUCHE 5 /* 1d5 */
- SV_RAPIER 7 /* 1d6 */
- SV_SMALL_SWORD 8 /* 1d6 */
- SV_BASILLARD 9 /* 1d8 */
- SV_SHORT_SWORD 10 /* 1d7 */
- SV_SABRE 11 /* 1d7 */
- SV_CUTLASS 12 /* 1d7 */
- SV_KHOPESH 14 /* 2d4 */
- SV_TULWAR 15 /* 2d4 */
- SV_BROAD_SWORD 16 /* 2d5 */
- SV_LONG_SWORD 17 /* 2d5 */
- SV_SCIMITAR 18 /* 2d5 */
- SV_KATANA 20 /* 3d4 */
- SV_BASTARD_SWORD 21 /* 3d4 */
- SV_GREAT_SCIMITAR 22 /* 4d5 */
- SV_CLAYMORE 23 /* 2d8 */
- SV_ESPADON 24 /* 2d9 */
- SV_TWO_HANDED_SWORD 25 /* 3d6 */
- SV_FLAMBERGE 26 /* 3d7 */
- SV_EXECUTIONERS_SWORD 28 /* 4d5 */
- SV_ZWEIHANDER 29 /* 4d6 */
- SV_BLADE_OF_CHAOS 30 /* 6d5 */
- SV_SHADOW_BLADE 31 /* 4d4 */
- SV_BLUESTEEL_BLADE 32 /* 3d9 */
- SV_DARK_SWORD 33 /* 3d7 */
-~~~~~34
-/* The "sval" codes for TV_SHIELD */
- SV_SMALL_LEATHER_SHIELD 2
- SV_SMALL_METAL_SHIELD 3
- SV_LARGE_LEATHER_SHIELD 4
- SV_LARGE_METAL_SHIELD 5
- SV_DRAGON_SHIELD 6
- SV_SHIELD_OF_DEFLECTION 10
-~~~~~32
-/* The "sval" codes for TV_HELM */
- SV_HARD_LEATHER_CAP 2
- SV_METAL_CAP 3
- SV_IRON_HELM 5
- SV_STEEL_HELM 6
- SV_DRAGON_HELM 7
- SV_IRON_CROWN 10
- SV_GOLDEN_CROWN 11
- SV_JEWELED_CROWN 12
- SV_MORGOTH 50
-~~~~~30
-/* The "sval" codes for TV_BOOTS */
- SV_PAIR_OF_SOFT_LEATHER_BOOTS 2
- SV_PAIR_OF_HARD_LEATHER_BOOTS 3
- SV_PAIR_OF_METAL_SHOD_BOOTS 6
-~~~~~35
-/* The "sval" codes for TV_CLOAK */
- SV_CLOAK 1
- SV_ELVEN_CLOAK 2
- SV_FUR_CLOAK 3
- SV_SHADOW_CLOAK 6
-~~~~~31
-/* The "sval" codes for TV_GLOVES */
- SV_SET_OF_LEATHER_GLOVES 1
- SV_SET_OF_GAUNTLETS 2
- SV_SET_OF_CESTI 5
-~~~~~36
-/* The "sval" codes for TV_SOFT_ARMOR */
- SV_FILTHY_RAG 1
- SV_ROBE 2
- SV_PAPER_ARMOR 3 /* 4 */
- SV_SOFT_LEATHER_ARMOR 4
- SV_SOFT_STUDDED_LEATHER 5
- SV_HARD_LEATHER_ARMOR 6
- SV_HARD_STUDDED_LEATHER 7
- SV_RHINO_HIDE_ARMOR 8
- SV_CORD_ARMOR 9 /* 6 */
- SV_PADDED_ARMOR 10 /* 4 */
- SV_LEATHER_SCALE_MAIL 11
- SV_LEATHER_JACK 12
- SV_STONE_AND_HIDE_ARMOR 15 /* 15 */
- SV_THUNDERLORD_SUIT 16
-~~~~~37
-/* The "sval" codes for TV_HARD_ARMOR */
- SV_RUSTY_CHAIN_MAIL 1 /* 14- */
- SV_RING_MAIL 2 /* 12 */
- SV_METAL_SCALE_MAIL 3 /* 13 */
- SV_CHAIN_MAIL 4 /* 14 */
- SV_DOUBLE_RING_MAIL 5 /* 15 */
- SV_AUGMENTED_CHAIN_MAIL 6 /* 16 */
- SV_DOUBLE_CHAIN_MAIL 7 /* 16 */
- SV_BAR_CHAIN_MAIL 8 /* 18 */
- SV_METAL_BRIGANDINE_ARMOUR 9 /* 19 */
- SV_SPLINT_MAIL 10 /* 19 */
- SV_PARTIAL_PLATE_ARMOUR 12 /* 22 */
- SV_METAL_LAMELLAR_ARMOUR 13 /* 23 */
- SV_FULL_PLATE_ARMOUR 15 /* 25 */
- SV_RIBBED_PLATE_ARMOUR 18 /* 28 */
- SV_MITHRIL_CHAIN_MAIL 20 /* 28+ */
- SV_MITHRIL_PLATE_MAIL 25 /* 35+ */
- SV_ADAMANTITE_PLATE_MAIL 30 /* 40+ */
-~~~~~38
-/* The "sval" codes for TV_DRAG_ARMOR */
- SV_DRAGON_BLACK 1
- SV_DRAGON_BLUE 2
- SV_DRAGON_WHITE 3
- SV_DRAGON_RED 4
- SV_DRAGON_GREEN 5
- SV_DRAGON_MULTIHUED 6
- SV_DRAGON_SHINING 10
- SV_DRAGON_LAW 12
- SV_DRAGON_BRONZE 14
- SV_DRAGON_GOLD 16
- SV_DRAGON_CHAOS 18
- SV_DRAGON_BALANCE 20
- SV_DRAGON_POWER 30
-~~~~~39
-/* The sval codes for TV_LITE */
- SV_LITE_TORCH 0
- SV_LITE_LANTERN 1
- SV_LITE_TORCH_EVER 2
- SV_LITE_DWARVEN 3
- SV_LITE_FEANORIAN 4
- SV_LITE_GALADRIEL 100
- SV_LITE_ELENDIL 101
- SV_LITE_THRAIN 102
- SV_LITE_UNDEATH 103
- SV_LITE_PALANTIR 104
- SV_ANCHOR_SPACETIME 105
- SV_STONE_LORE 106
-~~~~~40
-/* The "sval" codes for TV_AMULET */
- SV_AMULET_DOOM 0
- SV_AMULET_TELEPORT 1
- SV_AMULET_ADORNMENT 2
- SV_AMULET_SLOW_DIGEST 3
- SV_AMULET_RESIST_ACID 4
- SV_AMULET_SEARCHING 5
- SV_AMULET_BRILLANCE 6
- SV_AMULET_CHARISMA 7
- SV_AMULET_THE_MAGI 8
- SV_AMULET_REFLECTION 9
- SV_AMULET_CARLAMMAS 10
- SV_AMULET_INGWE 11
- SV_AMULET_DWARVES 12
- SV_AMULET_NO_MAGIC 13
- SV_AMULET_NO_TELE 14
- SV_AMULET_RESISTANCE 15
- SV_AMULET_NOTHING 16
- SV_AMULET_SERPENT 17
- SV_AMULET_TORIS_MEJISTOS 18
- SV_AMULET_ELESSAR 19
- SV_AMULET_EVENSTAR 20
- SV_AMULET_SUSTENANCE 21
- SV_AMULET_TELEPATHY 22
- SV_AMULET_TRICKERY 23
- SV_AMULET_WEAPONMASTERY 24
- SV_AMULET_DEVOTION 25
- SV_AMULET_INFRA 26
- SV_AMULET_SPELL 27
- SV_AMULET_WISDOM 28
- SV_AMULET_RESIST_ELEC 29
- SV_AMULET_REGEN 30
-~~~~~45
-/* The sval codes for TV_RING */
- SV_RING_WOE 0
- SV_RING_AGGRAVATION 1
- SV_RING_WEAKNESS 2
- SV_RING_STUPIDITY 3
- SV_RING_TELEPORTATION 4
- SV_RING_SPECIAL 5
- SV_RING_SLOW_DIGESTION 6
- SV_RING_FEATHER_FALL 7
- SV_RING_RESIST_FIRE 8
- SV_RING_RESIST_COLD 9
- SV_RING_SUSTAIN_STR 10
- SV_RING_SUSTAIN_INT 11
- SV_RING_SUSTAIN_WIS 12
- SV_RING_SUSTAIN_CON 13
- SV_RING_SUSTAIN_DEX 14
- SV_RING_SUSTAIN_CHR 15
- SV_RING_PROTECTION 16
- SV_RING_ACID 17
- SV_RING_FLAMES 18
- SV_RING_ICE 19
- SV_RING_RESIST_POIS 20
- SV_RING_FREE_ACTION 21
- SV_RING_SEE_INVIS 22
- SV_RING_SEARCHING 23
- SV_RING_STR 24
- SV_RING_INT 25
- SV_RING_DEX 26
- SV_RING_CON 27
- SV_RING_ACCURACY 28
- SV_RING_DAMAGE 29
- SV_RING_SLAYING 30
- SV_RING_SPEED 31
- SV_RING_BARAHIR 32
- SV_RING_TULKAS 33
- SV_RING_NARYA 34
- SV_RING_NENYA 35
- SV_RING_VILYA 36
- SV_RING_POWER 37
- SV_RING_RES_FEAR 38
- SV_RING_RES_LD 39
- SV_RING_RES_NETHER 40
- SV_RING_RES_NEXUS 41
- SV_RING_RES_SOUND 42
- SV_RING_RES_CONFUSION 43
- SV_RING_RES_SHARDS 44
- SV_RING_RES_DISENCHANT 45
- SV_RING_RES_CHAOS 46
- SV_RING_RES_BLINDNESS 47
- SV_RING_LORDLY 48
- SV_RING_ATTACKS 49
- SV_RING_NOTHING 50
- SV_RING_PRECONITION 51
- SV_RING_FLAR 52
- SV_RING_INVIS 53
- SV_RING_FLYING 54
- SV_RING_WRAITH 55
- SV_RING_ELEC 56
- SV_RING_DURIN 57
- SV_RING_SPELL 58
- SV_RING_CRIT 59
-~~~~~55
-/* The "sval" codes for TV_STAFF */
- SV_STAFF_SCHOOL 1
- SV_STAFF_NOTHING 2
-~~~~~65
-/* The "sval" codes for TV_WAND */
- SV_WAND_SCHOOL 1
- SV_WAND_NOTHING 2
-~~~~~66
-/* The "sval" codes for TV_ROD(Rod Tips) */
- SV_ROD_NOTHING 0
- SV_ROD_DETECT_DOOR 1
- SV_ROD_IDENTIFY 2
- SV_ROD_RECALL 3
- SV_ROD_ILLUMINATION 4
- SV_ROD_MAPPING 5
- SV_ROD_DETECTION 6
- SV_ROD_PROBING 7
- SV_ROD_CURING 8
- SV_ROD_HEALING 9
- SV_ROD_RESTORATION 10
- SV_ROD_SPEED 11
- SV_ROD_TELEPORT_AWAY 13
- SV_ROD_DISARMING 14
- SV_ROD_LITE 15
- SV_ROD_SLEEP_MONSTER 16
- SV_ROD_SLOW_MONSTER 17
- SV_ROD_DRAIN_LIFE 18
- SV_ROD_POLYMORPH 19
- SV_ROD_ACID_BOLT 20
- SV_ROD_ELEC_BOLT 21
- SV_ROD_FIRE_BOLT 22
- SV_ROD_COLD_BOLT 23
- SV_ROD_ACID_BALL 24
- SV_ROD_ELEC_BALL 25
- SV_ROD_FIRE_BALL 26
- SV_ROD_COLD_BALL 27
- SV_ROD_HAVOC 28
- SV_ROD_DETECT_TRAP 29
- SV_ROD_HOME 30
-~~~~~67
-/* The "sval" codes for TV_ROD_MAIN(Rods) */
- SV_ROD_WOODEN 10
- SV_ROD_COPPER 20
- SV_ROD_IRON 50
- SV_ROD_ALUMINIUM 75
- SV_ROD_SILVER 100
- SV_ROD_GOLDEN 125
- SV_ROD_MITHRIL 160
- SV_ROD_ADMANTITE 200
-~~~~~70
-/* The "sval" codes for TV_SCROLL */
- SV_SCROLL_DARKNESS 0
- SV_SCROLL_AGGRAVATE_MONSTER 1
- SV_SCROLL_CURSE_ARMOR 2
- SV_SCROLL_CURSE_WEAPON 3
- SV_SCROLL_SUMMON_MONSTER 4
- SV_SCROLL_SUMMON_UNDEAD 5
- SV_SCROLL_SUMMON_MINE 6
- SV_SCROLL_TRAP_CREATION 7
- SV_SCROLL_PHASE_DOOR 8
- SV_SCROLL_TELEPORT 9
- SV_SCROLL_TELEPORT_LEVEL 10
- SV_SCROLL_WORD_OF_RECALL 11
- SV_SCROLL_IDENTIFY 12
- SV_SCROLL_STAR_IDENTIFY 13
- SV_SCROLL_REMOVE_CURSE 14
- SV_SCROLL_STAR_REMOVE_CURSE 15
- SV_SCROLL_ENCHANT_ARMOR 16
- SV_SCROLL_ENCHANT_WEAPON_TO_HIT 17
- SV_SCROLL_ENCHANT_WEAPON_TO_DAM 18
- SV_SCROLL_ENCHANT_WEAPON_PVAL 19
- SV_SCROLL_STAR_ENCHANT_ARMOR 20
- SV_SCROLL_STAR_ENCHANT_WEAPON 21
- SV_SCROLL_RECHARGING 22
- SV_SCROLL_RESET_RECALL 23
- SV_SCROLL_LIGHT 24
- SV_SCROLL_MAPPING 25
- SV_SCROLL_DETECT_GOLD 26
- SV_SCROLL_DETECT_ITEM 27
- SV_SCROLL_DETECT_TRAP 28
- SV_SCROLL_DETECT_DOOR 29
- SV_SCROLL_DETECT_INVIS 30
- SV_SCROLL_DIVINATION 31
- SV_SCROLL_SATISFY_HUNGER 32
- SV_SCROLL_BLESSING 33
- SV_SCROLL_HOLY_CHANT 34
- SV_SCROLL_HOLY_PRAYER 35
- SV_SCROLL_MONSTER_CONFUSION 36
- SV_SCROLL_PROTECTION_FROM_EVIL 37
- SV_SCROLL_RUNE_OF_PROTECTION 38
- SV_SCROLL_TRAP_DOOR_DESTRUCTION 39
- SV_SCROLL_DEINCARNATION 40
- SV_SCROLL_STAR_DESTRUCTION 41
- SV_SCROLL_DISPEL_UNDEAD 42
- SV_SCROLL_MASS_RESURECTION 43
- SV_SCROLL_GENOCIDE 44
- SV_SCROLL_MASS_GENOCIDE 45
- SV_SCROLL_ACQUIREMENT 46
- SV_SCROLL_STAR_ACQUIREMENT 47
- SV_SCROLL_FIRE 48
- SV_SCROLL_ICE 49
- SV_SCROLL_CHAOS 50
- SV_SCROLL_RUMOR 51
- SV_SCROLL_ARTIFACT 52
- SV_SCROLL_NOTHING 53
- SV_SCROLL_SPELL 54
-~~~~~71
-/* The "sval" codes for TV_POTION */
- SV_POTION_WATER 0
- SV_POTION_APPLE_JUICE 1
- SV_POTION_SLIME_MOLD 2
- SV_POTION_BLOOD 3
- SV_POTION_SLOWNESS 4
- SV_POTION_SALT_WATER 5
- SV_POTION_POISON 6
- SV_POTION_BLINDNESS 7
- SV_POTION_INVIS 8
- SV_POTION_CONFUSION 9
- SV_POTION_MUTATION 10
- SV_POTION_SLEEP 11
- SV_POTION_LEARNING 12
- SV_POTION_LOSE_MEMORIES 13
- SV_POTION_RUINATION 15
- SV_POTION_DEC_STR 16
- SV_POTION_DEC_INT 17
- SV_POTION_DEC_WIS 18
- SV_POTION_DEC_DEX 19
- SV_POTION_DEC_CON 20
- SV_POTION_DEC_CHR 21
- SV_POTION_DETONATIONS 22
- SV_POTION_DEATH 23
- SV_POTION_INFRAVISION 24
- SV_POTION_DETECT_INVIS 25
- SV_POTION_SLOW_POISON 26
- SV_POTION_CURE_POISON 27
- SV_POTION_BOLDNESS 28
- SV_POTION_SPEED 29
- SV_POTION_RESIST_HEAT 30
- SV_POTION_RESIST_COLD 31
- SV_POTION_HEROISM 32
- SV_POTION_BESERK_STRENGTH 33
- SV_POTION_CURE_LIGHT 34
- SV_POTION_CURE_SERIOUS 35
- SV_POTION_CURE_CRITICAL 36
- SV_POTION_HEALING 37
- SV_POTION_STAR_HEALING 38
- SV_POTION_LIFE 39
- SV_POTION_RESTORE_MANA 40
- SV_POTION_RESTORE_EXP 41
- SV_POTION_RES_STR 42
- SV_POTION_RES_INT 43
- SV_POTION_RES_WIS 44
- SV_POTION_RES_DEX 45
- SV_POTION_RES_CON 46
- SV_POTION_RES_CHR 47
- SV_POTION_INC_STR 48
- SV_POTION_INC_INT 49
- SV_POTION_INC_WIS 50
- SV_POTION_INC_DEX 51
- SV_POTION_INC_CON 52
- SV_POTION_INC_CHR 53
- SV_POTION_AUGMENTATION 55
- SV_POTION_ENLIGHTENMENT 56
- SV_POTION_STAR_ENLIGHTENMENT 57
- SV_POTION_SELF_KNOWLEDGE 58
- SV_POTION_EXPERIENCE 59
- SV_POTION_RESISTANCE 60
- SV_POTION_CURING 61
- SV_POTION_INVULNERABILITY 62
- SV_POTION_NEW_LIFE 63
-~~~~~72
-/* The "sval" codes for TV_POTION2 */
- SV_POTION2_MIMIC_ABOMINATION 1
- SV_POTION2_MIMIC_WOLF 2
- SV_POTION2_MIMIC_APE 3
- SV_POTION2_MIMIC_GOAT 4
- SV_POTION2_MIMIC_INSECT 5
- SV_POTION2_MIMIC_SPARROW 6
- SV_POTION2_MIMIC_STATUE 7
- SV_POTION2_MIMIC_VAMPIRE 8
- SV_POTION2_MIMIC_SPIDER 9
- SV_POTION2_MIMIC_MANA_BALL 10
- SV_POTION2_MIMIC_FIRE_CLOUD 11
- SV_POTION2_MIMIC_COLD_CLOUD 12
- SV_POTION2_MIMIC_CHAOS_CLOUD 13
- SV_POTION2_CURE_LIGHT_SANITY 14
- SV_POTION2_CURE_SERIOUS_SANITY 15
- SV_POTION2_CURE_CRITICAL_SANITY 16
- SV_POTION2_CURE_SANITY 17
- SV_POTION2_CURE_WATER 18
-~~~~~80
-/* The "sval" codes for TV_FOOD */
- SV_FOOD_POISON 0
- SV_FOOD_BLINDNESS 1
- SV_FOOD_PARANOIA 2
- SV_FOOD_CONFUSION 3
- SV_FOOD_HALLUCINATION 4
- SV_FOOD_PARALYSIS 5
- SV_FOOD_WEAKNESS 6
- SV_FOOD_SICKNESS 7
- SV_FOOD_STUPIDITY 8
- SV_FOOD_NAIVETY 9
- SV_FOOD_UNHEALTH 10
- SV_FOOD_DISEASE 11
- SV_FOOD_CURE_POISON 12
- SV_FOOD_CURE_BLINDNESS 13
- SV_FOOD_CURE_PARANOIA 14
- SV_FOOD_CURE_CONFUSION 15
- SV_FOOD_CURE_SERIOUS 16
- SV_FOOD_RESTORE_STR 17
- SV_FOOD_RESTORE_CON 18
- SV_FOOD_RESTORING 19
- SV_FOOD_BISCUIT 32
- SV_FOOD_JERKY 33
- SV_FOOD_RATION 35
- SV_FOOD_SLIME_MOLD 36
- SV_FOOD_WAYBREAD 37
- SV_FOOD_PINT_OF_ALE 38
- SV_FOOD_PINT_OF_WINE 39
- SV_FOOD_ATHELAS 40
- SV_FOOD_GREAT_HEALTH 41
- SV_FOOD_FORTUNE_COOKIE 42
-~~~~~04
-/* The "sval" codes for TV_BATERIE */
- SV_BATERIE_POISON 1
- SV_BATERIE_EXPLOSION 2
- SV_BATERIE_TELEPORT 3
- SV_BATERIE_COLD 4
- SV_BATERIE_FIRE 5
- SV_BATERIE_ACID 6
- SV_BATERIE_LIFE 7
- SV_BATERIE_CONFUSION 8
- SV_BATERIE_LITE 9
- SV_BATERIE_CHAOS 10
- SV_BATERIE_TIME 11
- SV_BATERIE_MAGIC 12
- SV_BATERIE_XTRA_LIFE 13
- SV_BATERIE_DARKNESS 14
- SV_BATERIE_KNOWLEDGE 15
- SV_BATERIE_FORCE 16
- SV_BATERIE_LIGHTNING 17
- SV_BATERIE_MANA 18
- MAX_BATERIE_SVAL 18
-~~~~~09
-/* The "sval" codes for TV_CORPSE */
- SV_CORPSE_CORPSE 1
- SV_CORPSE_SKELETON 2
- SV_CORPSE_HEAD 3
- SV_CORPSE_SKULL 4
- SV_CORPSE_MEAT 5
-~~~~~115
-/* The "sval" codes for TV_DAEMON_BOOK */
- SV_DEMONBLADE 55
- SV_DEMONSHIELD 56
- SV_DEMONHORN 57
diff --git a/lib/mods/theme/help/dungeon.txt b/lib/mods/theme/help/dungeon.txt
index 21c9651e..20426e2a 100644
--- a/lib/mods/theme/help/dungeon.txt
+++ b/lib/mods/theme/help/dungeon.txt
@@ -98,7 +98,7 @@ something you are more comfortable with.
~ Lites, Tools, Chests, etc ) A shield
~ Junk, Sticks, Skeletons, etc ` Trapping kit, climbing set
~ Stone, random artifact o Egg
- * An essence & (unused)
+ & (unused)
~~~~~05|Monsters
#####G Monsters
diff --git a/lib/mods/theme/help/essences.txt b/lib/mods/theme/help/essences.txt
deleted file mode 100644
index f329fa80..00000000
--- a/lib/mods/theme/help/essences.txt
+++ /dev/null
@@ -1,219 +0,0 @@
-|||||oy
-~~~~~01|Spoilers|Essences
-~~~~~02|Alchemist|Essence Spoiler
-#####REssence Spoiler for ToME 2.2.0
-#####R------------------------------
-
-Essences are the tools of the trade for Alchemists, and unfortunately are
-useless for any other class. Alchemists use essences to create magical
-items for them to use.
-
-They can be either found on the floor while exploring the dungeon, or
-extracted from other magical items the alchemist finds during his
-adventures.
-
-To create an artifact, the alchemist will first have to have learnt the
-Artifact Creation ability. This ability costs 70 skill points (yes, 70,
-it's a very powerful ability!). And you need an alchemy skill of at least
-40, plus INT and WIS at 35 (thats 18/170 in non-linear form).
-To create the artifact, the alchemist will have to sacrifice 10 hit points,
-and an amount of magic essence similar to his skill in alchemy. The
-alchemist then allows the artifact to gain experience, and when it has
-enough, uses that experience to add abilities to the artifact. The
-alchemist can allow the artifact to continue to gain experience, thus
-keeping open the option to add more abilities later. This requires a
-similar amount of magic essence, but does not require the sacrifice of
-more hit points.
-
-Note that the experience you gain is divided among the artifacts that you
-have as well as going to yourself, so you will gain levels more slowly when
-empowering artifacts. Also, the artifact only gets 60% of the experience.
-So killing a creature worth 20xp would gain 10 for you, and 6 for the
-artifact.
-
-You can also modify existing artifacts when you attain skill level 50. Also
-at skill level 50 you will gain the ability to make temporary artifacts,
-which don't require the complex empowerments that regular items require,
-but also vanish after awhile.
-
-You cannot give an artifact an ability unless you have *Identified* an
-artifact which has that ability.
-
-For every four levels gained in the alchemy skill, the alchemist learns
-about objects of level (skill level)/4, starting by learning about level 1
-objects at skill level 0. (actually 1, but who's counting?)
-
-At skill level 5 you gain the ability to make ego items - but watch it!
-Your base failure rate will be 90%, and won't be 0% until you reach skill
-level 50. Adding gold will increase the chances of success in direct
-proportion to the value of the item you are trying to create. Note that
-this results in automatic success when the item you are trying to create
-happens to pick up a curse in the process.
-
-At skill level 5 you also gain knowledge of some basic ego item recipes.
-These are: Acidic, Shocking, Fiery, Frozen, Venomous, and Chaotic weapons,
-Resist Fire armour, and light sources of Fearlessness.
-
-At skill level 10 you will gain knowledge of digging ego items, if you have
-selected the option "always generate very unusual rooms" (ironman_rooms).
-
-At skill level 15 you can create ego wands, staves, rings, etc.
-
-At skill level 25 you gain the ability to empower double ego items.
-
-At skill level 50 you gain the ability to create temporary artifacts, which
-don't require any exotic ingredients beyond a single corpse of any type.
-
-Between skill levels 25 and 50, you will steadily gain the ability to set
-more and more flags.
-
-To finalise an artifact, you "P"ower it, and select the powers you want.
-Powers are divided into the following six categories:
-*****essences.txt*03[Stats, Sustains, Luck, Speed, Vision, etc.]
-*****essences.txt*04[Misc. (Auras, Light, See Invisibility, etc.)]
-*****essences.txt*05[Weapon Brands]
-*****essences.txt*06[Resistances and Immunities]
-*****essences.txt*07[ESP and Curses]
-*****essences.txt*08[Artifact Activations]
-
-~~~~~03
-#####GStats, Sustains, Luck, Speed, Vision, etc.
-lvl xp Power
-40 5000 Add to Strength Ring of Strength
-43 5000 Add to Intelligence Ring of Intelligence
-46 5000 Add to Wisdom Amulet of Wisdom
-46 5000 Add to Dexterity Ring of Dexterity
-42 5000 Add to Constitution Ring of Constitution
-30 5000 Add to Charisma Amulet of Adornment
-32 1000 Sustain Strength Ring of Sustain Strength
-34 1000 Sustain Intelligence Ring of Sustain Intelligence
-28 1000 Sustain Wisdom Ring of Sustain Wisdom
-36 1000 Sustain Dexterity Ring of Sustain Dexterity
-36 1000 Sustain Constitution Ring of Sustain Constitution
-25 1000 Sustain Charisma Ring of Sustain Charisma
-40 50000 Speed Ring of Speed
-38 150000 Extra Attacks Ring of Extra Attacks
-32 5000 Stealthy Left Insole from a Used Soft Boot
-29 2000 Adds to Searching Filthy Rag
- 6 1000 Helps Infravision Brass Lantern
-30 1000 Lucky Rabbit's Left Forefoot
-25 30000 Aids in digging Pick
-40 50000 Multiplies Life Troll's Heart
-
-~~~~~04
-#####GMisc. (Auras, Light, See Invisibility, etc.)
-lvl xp Power
-20 15000 Invisibility Potion of Invisibility
-20 4000 See Invisible Potion of Invisibility
-20 30000 Free Action Iron Spike
-38 90000 Reflection Large Metal Shield
-20 30000 Aura of Fire Lungs from an Ancient Red Dragon
-25 30000 Aura of Lightning Lungs from an Ancient Blue Dragon
- 8 1000 Light Everburning Torch
-20 10000 Bright Light Dwarven Lantern
-40 100000 Sunlight Feanorian Lamp
-40 200000 Flight Suit of Dragon Armour (any colour)
-50 10000000 Automatically IDs Morgoth's Testicles
-29 2000 Anti-Teleportation Teleport Inhibiting Amulet
-34 2000 Anti-Magic Magic Inhibiting Amulet
-50 100000 Wraith Form Potion of Invulnerability
-15 1000 Levitation Potion of Berserk Strength
-20 10000 Slow Digestion Lembas Wafer
-32 20000 Regenerate Mushroom of Unhealth
-12 20000 Teleport Mushroom of Confusion
-
-~~~~~05
-#####GWeapon Brands
-lvl xp Power
-30 20000 Extra Critical Hits Whip
-30 30000 Wounds Monsters Blade of Chaos
-26 6000 Vampiric Rod Tip of Drain Life
-16 2000 Slay Animal Dead Animal's Body
-25 2000 Slay Evil Evil Dead Thing's Remains
-30 2000 Slay Undead Remains of Undead Monster
-40 1500 Slay Demon Demon's Corpse
-10 700 Slay Orc Dead Orc
-16 700 Slay Troll Dead Troll
-25 900 Slay Giant Dead Giant
-33 2000 Slay Dragon Dead Dragon (any size will do)
-41 5000 *Slay* Dragon Mature Multi-Hued Dragon's Remains
-41 90000 *Slay* Undead Dead Summoner of Greater Undead
-41 90000 *Slay* Demon Lesser Balrog's Corpse
-36 20000 Vorpal
-40 90000 Earthquakes
- 3 2000 Poison Brand
-12 2000 Acid Brand
-10 2000 Lightning Brand
- 6 2000 Fire Brand
- 8 2000 Frost Brand
-30 3000 Extra Might (Bows Only)
-35 3000 Extra Shots (Bows Only)
-
-~~~~~06
-#####GResistances and Immunities
-lvl xp Power
-49 500000 Immune to Acid Ancient Black Dragon's Foreskin
-50 500000 Immune to Lightning Ancient Blue Dragon's Foreskin
-49 500000 Immune to Fire Ancient Red Dragon's Foreskin
-50 500000 Immune to Cold Ancient White Dragon's Foreskin
-30 30000 Hold Life Amulet of the Magi
-12 10000 Resist Acid Ring of Acid
-15 10000 Resist Lightning Ring of Lightning
-13 10000 Resist Fire Potion of Resist Heat
-14 10000 Resist Cold Potion of Resist Cold
-25 30000 Resist Poison Potion of Cure Poison
-26 10000 Resist Fear Ring of Fear Resistance
-31 60000 Resist Light Ring of Light and Darkness Resistance
-31 60000 Resist Darkness Ring of Light and Darkness Resistance
-30 30000 Resist Blindness Ring of Blindness Resistance
-30 30000 Resist Confusion Ring of Confusion Resistance
-30 60000 Resist Sound Ring of Sound Resistance
-30 60000 Resist Shards Ring of Shard Resistance
-30 60000 Resist Nether Ring of Nether Resistance
-30 60000 Resist Nexus Ring of Nexus Resistance
-30 60000 Resist Chaos Ring of Chaos Resistance
-30 60000 Resist Disenchantment Ring of Disenchantment Resistance
-
-~~~~~07
-#####GESP and Curses
-lvl xp Power
-50 -100000 Temporary Item Corpse, any corpse
-10 -2000 Self-Cursing Filthy Rag
-45 -10000 Causes the Black Breath Sprig of Athelas
-40 -5000 Ancient Curse Scroll of *Remove Curse*
-40 -5000 Drains your Experience
-30 -5000 Aggravates Monsters
-30 -500 Curse Scroll of Remove Curse
-50 -5000 Permanently Cursed
-35 -2000 Can't be Dropped
-45 -5000 Drains your Hit Points
-20 -50000 Wielder Can't Move
-40 20000 Telepathy Formerly Floating Eye
-25 3000 Sense Orcs
-25 3000 Sense Trolls
-25 5000 Sense Dragons
-25 5000 Sense Giants
-25 5000 Sense Demons
-25 5000 Sense Undead
-25 5000 Sense Evil
-25 5000 Sense Animals
-25 5000 Sense Thunderlords
-25 5000 Sense Good
-25 5000 Sense Nonliving
-25 5000 Sense Unique Monsters
-25 2000 Sense Spiders
-
-~~~~~08
-#####GArtifact Activations
-lvl xp Power
-40 40000 Sunlight Brass Lantern
-20 4000 Magic Missile (1)
-30 300000 Magic Missile (2)
-40 400000 Ball of Missiles
-30 300000 Bolt of Lightning
-30 300000 Ball of Lightning
-35 350000 Ball of Lightning(2)
-40 400000 Ball of Lightning(3)
-40 400000 Ball of Lightning(4)
-45 450000 Breath Lightning
-50 40000 Fire a Rocket
diff --git a/lib/mods/theme/help/index.txt b/lib/mods/theme/help/index.txt
index c89a70b3..84bef517 100644
--- a/lib/mods/theme/help/index.txt
+++ b/lib/mods/theme/help/index.txt
@@ -56,7 +56,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****automat.txt*03[Auto destroy]
*****automat.txt*02[Auto pick-up]
*****automat.txt*01[Automatizer]
- *****defines.txt*82[Defines]
*****automat.txt*04[Autosquelch]
*****c_axemas.txt*01[Axemaster]
~~~~~66
@@ -117,7 +116,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_pr_varda.txt*02[Priest - Varda]
*****c_ranger.txt*02[Ranger]
*****c_rogue.txt*02[Rogue]
- *****c_runecr.txt*02[Runecrafter]
*****c_sorcer.txt*02[Sorceror]
*****c_sniper.txt*02[Sniper]
*****birth.txt*77[Stat Bonuses]
@@ -173,9 +171,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****debug.txt*100[Command List]
*****debug.txt*111[Command descriptions ]
*****debug.txt*112[General]
- *****defines.txt*81[Defines]
- *****defines.txt*84[Svals]
- *****defines.txt*85[Tvals]
*****r_demon.txt*01[Demon]
*****rm_adanrog.txt*01[Adanrog]
*****rm_aewrog.txt*01[Aewrog]
@@ -451,9 +446,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_ranger.txt*01[Ranger]
*****c_rogue.txt*01[Rogue]
*****r_rohank.txt*01[RohanKnight]
- *****c_runecr.txt*01[Runecrafter]
- *****c_runecr.txt*03[Runecrafter powers]
- *****tome_faq.txt*11[Runes]
~~~~~83
*****/Sindex.txt*83[S]
*****command.txt*125[Saving and Exiting]
@@ -520,8 +512,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****skills.txt*45[Possession]
*****c_posses.txt*04[Possession - Possessor powers ]
*****skills.txt*39[Prayer]
- *****skills.txt*36[Runecraft]
- *****c_runecr.txt*04[Runecrafting - Runecrafter powers]
*****skills.txt*56[Screen]
*****skills.txt*09[Sling-mastery]
*****skills.txt*14[Sneakiness]
@@ -576,7 +566,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****birth.txt*34[Strength]
*****c_summon.txt*01[Summoners]
*****c_summon.txt*03[Summoning]
- *****defines.txt*12[Svals]
*****c_swordm.txt*01[Swordmasters]
*****c_symbia.txt*01[Symbiant]
*****c_symbia.txt*03[Naming your symbiote]
@@ -599,7 +588,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****g_tulkas.txt*01[Tulkas]
*****c_palad.txt*03[Paladin]
*****g_tulkas.txt*03[Prayers]
- *****defines.txt*83[Tvals]
~~~~~85
*****/Uindex.txt*85[U]
*****m_udun.txt*02[Udun Magic]
diff --git a/lib/mods/theme/help/lua.hlp b/lib/mods/theme/help/lua.hlp
deleted file mode 100644
index ba61676a..00000000
--- a/lib/mods/theme/help/lua.hlp
+++ /dev/null
@@ -1,34 +0,0 @@
-|||||oy
-~~~~~01|Help|Lua scripting for ToME
-#####R Welcome to the ToME Lua Help System.
-#####R=============================================
-
-Please choose one of the following help files:
-
- *****/alua_intr.txt*0[(a) An Introduction to scripting]
- *****/blua_pow.txt*0[(b) Adding a racial power (the 'U' menu)]
- *****/clua_skil.txt*0[(c) Adding new skills (the 'm' menu)]
- *****/dlua_ques.txt*0[(d) Adding a quest]
-
-
- *****/elua_mon.txt*0[(e) Useful functions in monster.pkg]
- *****/flua_play.txt*0[(f) Useful functions in player.pkg]
- *****/glua_spel.txt*0[(g) Useful functions in spell.pkg]
- *****/hlua_util.txt*0[(h) Useful functions in util.pkg]
-
- *****/ilua_gf.txt*0[(g) A list of GF_FOO flags]
-
-
- *****/zhelp.hlp*0[(z) Main Help menu]
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/mods/theme/help/lua_gf.txt b/lib/mods/theme/help/lua_gf.txt
deleted file mode 100644
index 000f4af5..00000000
--- a/lib/mods/theme/help/lua_gf.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-|||||oy
-#####R /--------------------------\
-#####R< A partial list of GF_FLAGS >
-#####R \--------------------------/
-
-GF_ARROW: arrows
-GF_MISSILE: magic missiles
-GF_MANA: mana
-GF_LITE_WEAK: light
-GF_DARK_WEAK: dark
-GF_WATER: water
-GF_PLASMA: plasma
-GF_METEOR: meteors
-GF_ICE: ice
-GF_GRAVITY: gravity
-GF_INERTIA: inertia
-GF_FORCE: force
-GF_TIME: pure time
-GF_ACID: acid
-GF_ELEC: lightning
-GF_FIRE: flames
-GF_COLD: cold
-GF_POIS: poison
-GF_LITE: pure light
-GF_DARK: pure dark
-GF_CONFUSION: confusion
-GF_SOUND: sound
-GF_SHARDS: shards
-GF_NEXUS: nexus
-GF_NETHER: nether
-GF_CHAOS: chaos
-GF_DISENCHANT: disenchantment
-GF_KILL_WALL: wall destruction
-GF_KILL_DOOR: door destruction
-GF_KILL_TRAP: trap destruction
-GF_STONE_WALL: wall creation
-GF_MAKE_DOOR: door creation
-GF_MAKE_TRAP: trap creation
-GF_DESTRUCTION: destruction
-
-Back to the *****lua.hlp*0[lua help index] .
-
- [[[[[gThis file by fearoffours (fearoffours@moppy.co.uk)]
-
-
diff --git a/lib/mods/theme/help/lua_intr.txt b/lib/mods/theme/help/lua_intr.txt
deleted file mode 100644
index ccb87067..00000000
--- a/lib/mods/theme/help/lua_intr.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-|||||oy
-#####R /----------------------------------------\
-#####R < Scripting for ToME with lua >
-#####R \----------------------------------------/
-
-So, you want to patch ToME eh? Maybe you've had a look at how the edit files
-work, maybe even added your own race/class, but want to go further and add
-new racial (U) or magic (m) powers. Well these help files will show a little
-bit of how to do that.
-
-I am not a master at this kind of thing. I wrote a small script, with much
-help from DarkGod, and he subsequently asked me to write these help files. I
-was looking forward to when the lua help files came out so that I could look
-at them myself. Little did I know I'd be asked to write them. Therefore I
-apologise for any inaccuracies or errors that you find, and if you care to let
-me know of any improvements which could be made (especially if you're an
-experienced programmer/scripter), I'd love to know. Email me at
-[[[[[gfearoffours@moppy.co.uk].
-
-#####R=== The example scripts ===
-
-These help files take the form of a tutorial, adding a line at a time to a
-script, and explaining important concepts along the way. To see it all in
-action, I strongly suggest that you download my example script pack from
-[[[[[Ghttp://www.moppy.co.uk/angband.htm]. As well as including all the
-scripts covered in these help files, they also include the addition of my
-"hina" race which has a Lua scripted racial power which you might like to look
-at. There's also a quest which I will be including documentation for as a
-tutorial soon. Plus there's all the other lua scripts in the lib\scpt
-directory to look at. Most of what you see in these files has been learned from
-those files anyway!
-
-The source code is invaluable as well. There's a searchable and browsable
-version of the latest ToME source code available online at
-[[[[[Ghttp://www.t-o-m-e.net/cvs.php]. Use it!
-
-If you don't want to download and install the example scripts, then just
-follow the tutorials with a text editor open! But I'll say it again, it's a lot
-easier if you download and install the example scripts.
-
-This file goes on to explain the concepts of scripting, programming,
-variables and functions. If you're familiar with these concepts, you might
-as well take a look at how to add a power to the U menu in the
-*****lua_pow.txt*0[Scripting a racial power] file.
-
-
-#####R=== Defining some basic stuff ===
-
-Computers don't do anything that they're not told to do. When we script, or
-program, we must assume they know nothing. We have to tell them each little
-bit of information from the ground up.
-
-A program, or a script (we'll talk about exact differences later) is like a
-set of instructions. Let's imagine that people responded to programs, and
-that we had a program called "Housework". Its series of instructions might
-look something like this:
-
-#####BDo the Washing up.
-#####BClean the kitchen.
-#####BDust the shelves.
-#####BHoover the lounge.
-
-Each step above could be called a function, as they are all actions that
-need to be carried out. Now to you and me, we'd understand that program just
-fine, but if someone didn't know HOW to wash, or what hoovering was, they'd
-soon run into problems. For those people we'd need to define each function
-clearly. Thus "do the washing up" might be -
-
-#####BRun hot water into bowl.
-#####BAdd washing up liquid.
-#####BPut dirty plates into bowl
-#####BScrub plates till clean
-#####BPlace clean plates on rack to dry,
-
-There's still plenty of problems here though. We've not said to turn the tap
-off, or what the bowl is, or to wash any dirty cutlery, mugs, saucepans, etc.,
-etc. Whilst this might seem fairly obvious to a person, this is how we need
-to think when writing programs for computers.
-
-Lets look now at some of the terms we're going to be using, in the rest of
-these help files, and what they mean...
-
-#####R=== Variables and Constants ===
-A variable is a way to store information in a computer. Just as you store
-things in your own memory, you can store things in the computer's memory. And
-just as things change in your memory, so things can change in the computer's
-memory. This factor of change is why they're called "variables" and not
-"statics".
-
-For instance, you may have a friend's email address committed to memory, but
-things change over time, they get a new ISP or domain, and so their email
-address changes. You commit this new address to memory, and eventually
-forget the old one. The thing you have stored in your memory is the same
-(your friend's address) but the value (property) of what you have stored has
-changed (from friend@old-address.com to friend@new-address.com).
-
-Variables are the building blocks out of which you will create your patch.
-
-A variable which will *never* change its value is called a constant.
-
-#####R===Functions===
-
-A function is a series of steps or statements, grouped together and given
-one name. When you want to carry out those steps, you simply ask the
-computer to carry out that function. To go back to our original example,
-rather than saying, "I'd like you to run some hot water into a bowl, add the
-washing up liquid, put the dirty plates into it, and then scrub them till
-they're clean", we just say "do the washing up".
-
-This is where we come to the difference between scripting and programming.
-With scripting we can use the functions and variables that exist in the
-ToME code. Maintainers like DarkGod have already made sure that the
-computer knows how to "do the washing up", including turning the tap off and
-what the bowl is. All we need to do in our script is say "do the washing
-up". Or to look at it in a more relevant way, the game has been coded so
-that when a magic missile is fired, a bolt or beam spell with a black line
-of asterisks will be drawn in the direction indicated by the player, the
-mana of that spell will be used up, the monster will take the appropriate
-amount of damage, and so on. All we need to do in our script is say "fire a
-magic missile".
-
-As you script, you will still be designing your own functions, and
-variables, but the hardest parts have been done for you!
-
-Not every function and global variable in the source-code has been exported to
-use in your scripting. But the ones that have are easily identifiable by
-looking in any source files with the extension .pkg . Chris Hadgis has written
-some excellent documentation which outline the use of the most important
-functions in some of these files. They outline the functions from the
-
-OK, the first tutorial proper is on *****lua_pow.txt*0[adding a racial power] .
-
- [[[[[gThis file by fearoffours (fearoffours@moppy.co.uk)]
diff --git a/lib/mods/theme/help/lua_mon.txt b/lib/mods/theme/help/lua_mon.txt
deleted file mode 100644
index 9bb363c0..00000000
--- a/lib/mods/theme/help/lua_mon.txt
+++ /dev/null
@@ -1,535 +0,0 @@
-|||||oy
-
-#####R /----------------------------------------\
-#####R < monster.pkg functions helper file >
-#####R \----------------------------------------/
-
-
-----------------------------------------------------------------------
-
-#####R=== race_info_idx ===
-
-#####GDeclaration
- extern monster_race* race_info_idx(int r_idx, int ego);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Return a (monster_race*) with the combinations of the monster
- * properties and the ego type
- */
-
-#####GDescription
-Get monster info and ego info for monster with monster index "r_idx"
-and monster ego "ego". The ego information is applied to the monster
-information and the new monster information is returned.
-
-For example, race_info_idx(141,7) will create a brown yeek (monster)
-shaman (ego).
-
-#####GParameters
-> "r_idx" is an entry from the "r_info.txt" file. Beware: there is no
- range checking.
-> "ego" is an entry from the "re_info.txt". Beware: there is no range
- checking.
-
-----------------------------------------------------------------------
-
-#####R=== delete_monster_idx ===
-
-#####GDeclaration
- extern void delete_monster_idx(int i);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Delete a monster by index.
- *
- * When a monster is deleted, all of its objects are deleted.
- */
-
-#####GDescription
-Delete monster "i" from the monster array.
-
-#####GParameters
-> "i" is the index for the monster list (m_list[]). Beware: there is
- no range checking.
-
-----------------------------------------------------------------------
-
-#####R=== m_pop ===
-
-#####GDeclaration
- extern s16b m_pop(void);
-
-#####GFile
- monsters2.c
-
-#####GComment
-/*
- * Acquires and returns the index of a "free" monster.
- *
- * This routine should almost never fail, but it *can* happen.
- */
-
-#####GDescription
-Get an empty slot in the monster list (m_list[]). If there are no
-empty slots, a slot will be reclaimed from a "dead" monster. If all
-slots are full, 0 is returned, which means the function has failed
-("Too many monsters!").
-
-----------------------------------------------------------------------
-
-#####R=== get_mon_num_prep ===
-
-#####GDeclaration
- extern errr get_mon_num_prep(void);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Apply a "monster restriction function" to the "monster allocation table"
- */
-
-#####GDescription
-There are no parameters, but there are some other variables which will
-need to be set. They are get_mon_num_hook and get_mon_num2_hook. They
-are pointers to functions.
-
-For example, get_mon_num_hook = monster_volcano means when
-get_mon_num_hook is called (*get_mon_num_hook)(index), the actual
-function called is monster_volcano(index). This particular function
-returns TRUE if the monster indicated by "index" has the
-RF8_WILD_VOLCANO flag set.
-
-It is a good idea to store the old value of get_mon_num_hook before
-setting a new one, and restoring it when your function is finished.
-
-Following is a list of functions which can be assigned to
-get_mon_num_hook:
-
-create_molds_hook
-create_townpeople_hook
-mon_hook_bounty
-monster_dungeon
-monster_grass
-monster_mountain
-monster_ocean
-monster_quest
-monster_shore
-monster_town
-monster_volcano
-monster_waste
-monster_wood
-mutate_monster_okay
-place_monster_okay
-summon_specific_okay
-vault_aux_animal
-vault_aux_chapel
-vault_aux_clone
-vault_aux_demon
-vault_aux_dragon
-vault_aux_giant
-vault_aux_jelly
-vault_aux_kennel
-vault_aux_orc
-vault_aux_symbol
-vault_aux_treasure
-vault_aux_troll
-vault_aux_undead
-
-Or you can write your own. The function must take an integer (index)
-as a parameter and return boolean (TRUE if the monster is selected,
-or FALSE if it is not).
-
-----------------------------------------------------------------------
-
-#####R=== get_mon_num ===
-
-#####GDeclaration
- extern s16b get_mon_num(int level);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Choose a monster race that seems "appropriate" to the given level
- *
- * This function uses the "prob2" field of the "monster allocation table",
- * and various local information, to calculate the "prob3" field of the
- * same table, which is then used to choose an "appropriate" monster, in
- * a relatively efficient manner.
- *
- * Note that "town" monsters will *only* be created in the town, and
- * "normal" monsters will *never* be created in the town, unless the
- * "level" is "modified", for example, by polymorph or summoning.
- *
- * There is a small chance (1/50) of "boosting" the given depth by
- * a small amount (up to four levels), except in the town.
- *
- * It is (slightly) more likely to acquire a monster of the given level
- * than one of a lower level. This is done by choosing several monsters
- * appropriate to the given level and keeping the "hardest" one.
- *
- * Note that if no monsters are "appropriate", then this function will
- * fail, and return zero, but this should *almost* never happen.
- */
-
-Description:
-For the given level "level", return the index of an appropriate
-monster race.
-
-#####GParameters
-> "level" is a dungeon level
-
-----------------------------------------------------------------------
-
-#####R=== monster_desc ===
-
-#####GDeclaration
- extern void monster_desc(char *desc, monster_type *m_ptr,
- int mode);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Build a string describing a monster in some way.
- *
- * We can correctly describe monsters based on their visibility.
- * We can force all monsters to be treated as visible or invisible.
- * We can build nominatives, objectives, possessives, or reflexives.
- * We can selectively pronominalize hidden, visible, or all monsters.
- * We can use definite or indefinite descriptions for hidden monsters.
- * We can use definite or indefinite descriptions for visible monsters.
- *
- * Pronominalization involves the gender whenever possible and allowed,
- * so that by cleverly requesting pronominalization / visibility, you
- * can get messages like "You hit someone. She screams in agony!".
- *
- * Reflexives are acquired by requesting Objective plus Possessive.
- *
- * If no m_ptr arg is given (?), the monster is assumed to be hidden,
- * unless the "Assume Visible" mode is requested.
- *
- * If no r_ptr arg is given, it is extracted from m_ptr and r_info
- * If neither m_ptr nor r_ptr is given, the monster is assumed to
- * be neuter, singular, and hidden (unless "Assume Visible" is set),
- * in which case you may be in trouble... :-)
- *
- * I am assuming that no monster name is more than 70 characters long,
- * so that "char desc[80];" is sufficiently large for any result.
- *
- * Mode Flags:
- * 0x01 --> Objective (or Reflexive)
- * 0x02 --> Possessive (or Reflexive)
- * 0x04 --> Use indefinites for hidden monsters ("something")
- * 0x08 --> Use indefinites for visible monsters ("a kobold")
- * 0x10 --> Pronominalize hidden monsters
- * 0x20 --> Pronominalize visible monsters
- * 0x40 --> Assume the monster is hidden
- * 0x80 --> Assume the monster is visible
- *
- * Useful Modes:
- * 0x00 --> Full nominative name ("the kobold") or "it"
- * 0x04 --> Full nominative name ("the kobold") or "something"
- * 0x80 --> Genocide resistance name ("the kobold")
- * 0x88 --> Killing name ("a kobold")
- * 0x22 --> Possessive, genderized if visible ("his") or "its"
- * 0x23 --> Reflexive, genderized if visible ("himself") or "itself"
- */
-
-#####GDescription
-Return a monster description "desc" for monster "monster_type" using
-flag "mode". The modes are described above.
-
-#####GParameters
-> "desc" is the returned description.
-> "monster type" is the monster (monster pointer).
-> "mode" is one of the modes described in the comments.
-
-----------------------------------------------------------------------
-
-#####R=== monster_race_desc ===
-
-#####GDeclaration
- extern void monster_race_desc(char *desc, int r_idx,
- int ego);
-
-#####GFile
- monster2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the monster description "desc" for monster with monster index
-"r_idx" and monster ego "ego". The monster description is made up of
-the ego name (if any) and monster name, or the unique name.
-
-#####GParameters
-> "desc" is the returned description.
-> "r_idx" is an entry from the "r_info.txt" file. Beware: there is no
- range checking.
-> "ego" is an entry from the "re_info.txt". Beware: there is no range
- checking.
-
-----------------------------------------------------------------------
-
-#####R=== place_monster_aux ===
-
-#####GDeclaration
- extern bool place_monster_aux(int y, int x, int r_idx,
- bool slp, bool grp, int status);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Attempt to place a monster of the given race at the given location
- *
- * Note that certain monsters are now marked as requiring "friends".
- * These monsters, if successfully placed, and if the "grp" parameter
- * is TRUE, will be surrounded by a "group" of identical monsters.
- *
- * Note that certain monsters are now marked as requiring an "escort",
- * which is a collection of monsters with similar "race" but lower
- * level.
- *
- * Some monsters induce a fake "group" flag on their escorts.
- *
- * Note the "bizarre" use of non-recursion to prevent annoying output
- * when running a code profiler.
- *
- * Note the use of the new "monster allocation table" code to restrict
- * the "get_mon_num()" function to "legal" escort types.
- */
-
-#####GDescription
-Attempt to place a monster at grid "y", "x". The monster has monster
-index "m_idx". The monster may be asleep ("slp"). The monster may be
-surrounded by a group of identical monsters ("grp"). The monster has
-a status of "status" (see below). The function returns TRUE if the
-monster is placed successfully, otherwise FALSE.
-
-#####GParameters
-> "y" is the y co-ordinate of the target grid.
-> "x" is the x co-ordinate of the target grid.
-> "r_idx" is an entry from the "r_info.txt" file. Beware: there is no
- range checking.
-> "slp" is TRUE if the monster is asleep, otherwise FALSE.
-> "grp" is TRUE if the monster is surrounded by a group, otherwise
- FALSE.
-> "status" is the status of the monster
- *****fields.txt*0[status]
-
-----------------------------------------------------------------------
-
-#####R=== place_monster ===
-
-#####GDeclaration
- extern bool place_monster(int y, int x, bool slp,
- bool grp);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Hack -- attempt to place a monster at the given location
- *
- * Attempt to find a monster appropriate to the "monster_level"
- */
-
-#####GDescription
-Attempt to place a monster at grid "y", "x". The monster may be asleep
-("slp"). The monster may be surrounded by a group of identical
-monsters ("grp"). The monster is of the appropriate monster level. The
-function returns TRUE if the monster is placed successfully, otherwise
-FALSE.
-
-#####GParameters
-> "y" is the y co-ordinate of the target grid.
-> "x" is the x co-ordinate of the target grid.
-> "slp" is TRUE if the monster is asleep, otherwise FALSE.
-> "grp" is TRUE if the monster is surrounded by a group, otherwise
- FALSE.
-
-----------------------------------------------------------------------
-
-#####R=== place_monster_one ===
-
-#####GDeclaration
- extern s16b place_monster_one(int y, int x, int r_idx,
- int ego, bool slp, int status);
-
-#####GFile
- monster2.c
-
-#####GComment
-/*
- * Attempt to place a monster of the given race at the given location.
- *
- * To give the player a sporting chance, any monster that appears in
- * line-of-sight and is extremely dangerous can be marked as
- * "FORCE_SLEEP", which will cause them to be placed with low energy,
- * which often (but not always) lets the player move before they do.
- *
- * This routine refuses to place out-of-depth "FORCE_DEPTH" monsters.
- *
- * XXX XXX XXX Use special "here" and "dead" flags for unique monsters,
- * remove old "cur_num" and "max_num" fields.
- *
- * XXX XXX XXX Actually, do something similar for artifacts, to simplify
- * the "preserve" mode, and to make the "what artifacts" flag more useful.
- *
- * This is the only function which may place a monster in the dungeon,
- * except for the savefile loading code.
- */
-
-#####GDescription
-Attempt to place a monster at grid "y", "x". The monster has monster
-index "m_idx". The monster may be asleep ("slp"). The monster may have
-an ego type ("ego"). The monster has a status of "status" (see below).
-The function returns TRUE if the monster is placed successfully,
-otherwise FALSE.
-
-#####GParameters
-> "y" is the y co-ordinate of the target grid.
-> "x" is the x co-ordinate of the target grid.
-> "r_idx" is an entry from the "r_info.txt" file. Beware: there is no
- range checking.
-> "slp" is TRUE if the monster is asleep, otherwise FALSE.
-> "ego" is an entry from the "re_info.txt". Beware: there is no range
- checking.
-> "status" is the status of the monster
- *****fields.txt*0[status]
-
-----------------------------------------------------------------------
-
-#####R=== is_friend ===
-
-#####GDeclaration
- extern int is_friend(monster_type *m_ptr);
-
-#####GFile
- monster3.c
-
-#####GComment
-/*
- * Is the monster in friendly state(pet, friend, ..)
- * -1 = enemy, 0 = neutral, 1 = friend
- */
-
-#####GDescription
-Return a value to indicate the status of monster "m_ptr".
- *****fields.txt*0[status]
-
-#####GParameters
-> "m_ptr" is a pointer to a monster.
-
-----------------------------------------------------------------------
-
-#####R=== is_enemy ===
-
-#####GDeclaration
- extern bool is_enemy(monster_type *m_ptr,
- monster_type *t_ptr);
-
-#####GFile
- monster3.c
-
-#####GComment
-/* Should they attack each others */
-
-#####GDescription
-Return TRUE if monster "m_ptr" should attack monster "t_ptr". If
-"m_ptr" is stupid and "r_ptr" is a different type of monster then the
-function will return TRUE. If "m_ptr" is not neutral and "r_ptr" is a
-breeder, and "r_ptr" is a different type of monster then the function
-will return TRUE (and vice versa). If both monsters are not neutral
-and one is friendly and the other isn't then the function will return
-TRUE. Otherwise the function returns FALSE.
-
-#####GParameters
-> "m_ptr" is a pointer to a monster.
-> "t_ptr" is a pointer to a monster (target).
-
-----------------------------------------------------------------------
-
-#####R=== change_side ===
-
-#####GDeclaration
- extern bool change_side(monster_type *m_ptr);
-
-#####GFile
- monster3.c
-
-#####GComment
-(none)
-
-#####GDescription
-Change the status of monster "m_ptr" from friendly to unfriendly and
-vice versa. Friends and pets become enemies. Neutral Ms become
-neutral Ps and vice versa. Companions are unaffected. The
-function returns TRUE if the status changed, otherwise FALSE.
-
-#####GParameters
-> "m_ptr" is a pointer to a monster.
-
-----------------------------------------------------------------------
-
-#####R=== find_position ===
-
-#####GDeclaration
- extern void find_position(int y, int x, int *yy = 0,
- int *xx = 0);
-
-#####GFile
- lua_bind.c
-
-#####GComment
-(none)
-
-#####GDescription
-Find a new grid "yy", "xx" within 6 grids of target grid "y", "x".
-The new grid must be within line-of-sight of the target grid. A
-maximum of 5000 attempts is made.
-
-#####GParameters
-> "y" is the y co-ordinate of the target grid.
-> "x" is the x co-ordinate of the target grid.
-> "yy" is the y co-ordinate of the new grid.
-> "xx" is the x co-ordinate of the new grid.
-
-----------------------------------------------------------------------
-
-#####R=== can_create_companion ===
-
-#####GDeclaration
- extern bool can_create_companion();
-
-#####GFile
- monster3.c
-
-#####GComment
-/* Returns if a new companion is allowed */
-
-#####GDescription
-Return TRUE if a companion can be created, otherwise FALSE.
-
-----------------------------------------------------------------------
-
-Back to the *****lua.hlp*0[lua help index] .
-
-
- [[[[[gThis file by Chris Hadgis]
diff --git a/lib/mods/theme/help/lua_play.txt b/lib/mods/theme/help/lua_play.txt
deleted file mode 100644
index 6ab64ddb..00000000
--- a/lib/mods/theme/help/lua_play.txt
+++ /dev/null
@@ -1,1225 +0,0 @@
-|||||oy
-
-#####R /----------------------------------------\
-#####R < player.pkg functions helper file >
-#####R \----------------------------------------/
-
-----------------------------------------------------------------------
-
-#####RFunction: set_parasite
-
-#####GDeclaration: bool set_parasite(int v, int r);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->parasite" and "p_ptr->parasite_r_idx"
-* notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until parasite with monster index "r" is created. The
-player gets the message "You feel something growing in you" if "v"
-is > 0. Otherwise the player gets the message "Your body convulse
-and spawn <monster name>" if the monster is created (80% chance) or
-"The hideous thing growing in you seems to die" if the monster dies.
-
-#####GParameters:
->v is the time until the parasite gestates (must be between 0 and
- 10000).
->r is the monster index of parasite to be created.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_disrupt_shield
-
-#####GDeclaration: bool set_disrupt_shield(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->disrupt_shield"
-* notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until shield of invulnerability expires. The player gets
-the message "You feel invulnerable" if "v" is > 0. Otherwise the
-player gets the message "You are more vulnerable".
-
-#####GParameters:
->v is the time until the shield expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_prob_travel
-
-#####GDeclaration: bool set_prob_travel(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->prob_travel"
-* notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until random teleportation expires. The player gets
-the message "You feel instable" if "v" is > 0. Otherwise the
-player gets the message "You are more stable".
-
-#####GParameters:
->v is the time until random teleportation expires (must be between 0
- and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_deadly
-
-#####GDeclaration: bool set_tim_deadly(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_deadly"
-*/
-
-#####GDescription:
-Set time "v" until deadly accuracy expires. The player gets the
-message "You feel extremely accurate" if "v" is > 0. Otherwise the
-player gets the message "You are suddenly much less accurate".
-
-#####GParameters:
->v is the time until deadly accuracy expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_res_time
-
-#####GDeclaration: bool set_tim_res_time(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_res_time"
-*/
-
-#####GDescription:
-Set time "v" until space-time distortions expire. The player gets the
-message "You are now protected against the space-time distortions" if
-"v" is > 0. Otherwise the player gets the message "You are no longer
-protected against the space-time distortions".
-
-#####GParameters:
->v is the time until space-time distortions expire (must be between
- 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_reflect
-
-#####GDeclaration: bool set_tim_reflect(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_reflect"
-*/
-
-#####GDescription:
-Set time "v" until reflection expire. The player gets the message
-"You start reflecting the world around you" if "v" is > 0. Otherwise
-the player gets the message "You stop reflecting".
-
-#####GParameters:
->v is the time until reflection expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_meditation
-
-#####GDeclaration: bool set_meditation(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->meditation"
-*/
-
-#####GDescription:
-Set time "v" until meditation expire. The player gets the message
-"You start meditating on yourself" if "v" is > 0. Otherwise the
-player gets the message "You stop your self meditation".
-
-#####GParameters:
->v is the time until meditation expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_strike
-
-#####GDeclaration: bool set_strike(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->strike"
-*/
-
-#####GDescription:
-Set time "v" until accurate strikes expire. The player gets the
-message "You feel very accurate" if "v" is > 0. Otherwise the player
-gets the message "You are no longer very accurate".
-
-#####GParameters:
->v is the time until accurate strikes expire (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_walk_water
-
-#####GDeclaration: bool set_walk_water(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->walk_water", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until walking on water expires. The player gets the
-message "You feel strangely insubmersible" if "v" is > 0. Otherwise
-the player gets the message "You are no longer insubmersible".
-
-#####GParameters:
->v is the time until walking on water expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_ffall
-
-#####GDeclaration: bool set_tim_ffall(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_ffall"
-*/
-
-#####GDescription:
-Set time "v" until feather-fall expires. The player gets the message
-"You feel very light" if "v" is > 0. Otherwise the player gets the
-message "You are suddenly heavier".
-
-#####GParameters:
->v is the time until feather-fall expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_fire_aura
-
-#####GDeclaration: bool set_tim_fire_aura(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_fire_aura"
-*/
-
-#####GDescription:
-Set time "v" until fiery aura expires. The player gets the message
-"You are enveloped in flames" if "v" is > 0. Otherwise the player
-gets the message "You are no longer enveloped in flames".
-
-#####GParameters:
->v is the time until fiery aura expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_holy
-
-#####GDeclaration: bool set_holy(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->holy", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until holiness expires. The player gets the message
-"You feel a holy aura around you" if "v" is > 0. Otherwise the
-player gets the message "The holy aura vanishes".
-
-#####GParameters:
->v is the time until holiness expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_grace
-
-#####GDeclaration: void set_grace(s32b v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->grace", notice observable changes
-*/
-
-#####GDescription:
-Set grace to value "v". Don't allow grace to fall below -30000 or
-rise above 30000.
-
-#####GParameters:
->v is the value of grace.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_mimic
-
-#####GDeclaration: bool set_mimic(int v, int p);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_mimic", and "p_ptr->mimic_form",
-* notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until morph into monster with monster index "p" expires.
-The player gets the message "You feel your body change" if "v" is > 0.
-Otherwise the player gets the message "You are no longer transformed".
-
-#####GParameters:
->v is the time until transformation expires (must be between 0 and
- 10000).
->p is the monster index of the monster the player wants to mimic.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_no_breeders
-
-#####GDeclaration: bool set_no_breeders(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "no_breeds"
-*/
-
-#####GDescription:
-Set time "v" until breeders can breed again. The player gets the
-message "You feel an anti-sexual aura" if "v" is > 0. Otherwise the
-player gets the message "You no longer feel an anti-sexual aura".
-Okay...
-
-#####GParameters:
->v is the time until breeders can breed again (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_invis
-
-#####GDeclaration: bool set_invis(int v,int p);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_invis", and "p_ptr->tim_inv_pow",
-* notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until invisibility expires. The player gets the message
-"You feel your body fade away" if "v" is > 0. Otherwise the player
-gets the message "You are no longer invisible".
-
-#####GParameters:
->v is the time until invisibility expires (must be between 0 and
- 10000).
->p is the power of timed invisibility.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_lite
-
-#####GDeclaration: bool set_lite(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_lite", notice observable changes
-*
-* Note the use of "PU_VIEW", which is needed to
-* memorise any terrain features which suddenly become "visible".
-* Note that blindness is currently the only thing which can affect
-* "player_can_see_bold()".
-*/
-
-#####GDescription:
-Set time "v" until brightness expires. The player gets the message
-"You suddenly seem brighter" if "v" is > 0. Otherwise the player
-gets the message "You are no longer bright".
-
-#####GParameters:
->v is the time until brightness expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_blind
-
-#####GDeclaration: bool set_blind(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->blind", notice observable changes
-*
-* Note the use of "PU_UN_VIEW", which is needed to memorise any terrain
-* features which suddenly become "visible".
-* Note that blindness is currently the only thing which can affect
-* "player_can_see_bold()".
-*/
-
-#####GDescription:
-Set time "v" until blindness expires. The player gets the message "You
-are blind" if "v" is > 0. Otherwise the player gets the message "You
-can see again".
-
-#####GParameters:
->v is the time until blindness expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_confused
-
-#####GDeclaration: bool set_confused(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->confused", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until confusion expires. The player gets the message "You
-are confused" if "v" is > 0. Otherwise the player gets the message
-"You feel less confused now".
-
-#####GParameters:
->v is the time until confusion expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_poisoned
-
-#####GDeclaration: bool set_poisoned(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->poisoned", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until poison expires. The player gets the message "You
-are poisoned" if "v" is > 0. Otherwise the player gets the message
-"You are no longer poisoned".
-
-#####GParameters:
->v is the time until poison expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_afraid
-
-#####GDeclaration: bool set_afraid(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->afraid", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until fear expires. The player gets the message "You are
-terrified" if "v" is > 0. Otherwise the player gets the message "You
-feel bolder now".
-
-#####GParameters:
->v is the time until fear expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_paralyzed
-
-#####GDeclaration: bool set_paralyzed(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->paralyzed", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until paralysis expires. The player gets the message "You
-are paralyzed" if "v" is > 0. Otherwise the player gets the message
-"You can move again".
-
-#####GParameters:
->v is the time until paralysis expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_image
-
-#####GDeclaration: bool set_image(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->image", notice observable changes
-*
-* Note that we must redraw the map when hallucination changes.
-*/
-
-#####GDescription:
-Set time "v" until hallucination expires. The player gets the message
-"Oh, wow! Everything looks so cosmic now" if "v" is > 0. Otherwise
-the player gets the message "You can see clearly again".
-
-#####GParameters:
->v is the time until hallucination expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_fast
-
-#####GDeclaration: bool set_fast(int v, int p);
-
-#####GFile: xtra2.c
-
-#####GComment:
-(none)
-
-#####GDescription:
-Set time "v" until speed of speed factor "p" expires. The player gets
-the message "You feel yourself moving faster" if "v" is > 0. Otherwise
-the player gets the message "You feel yourself slow down".
-
-#####GParameters:
->v is the time until speed expires (must be between 0 and 10000).
->p is the speed factor.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_light_speed
-
-#####GDeclaration: bool set_light_speed(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->lightspeed", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until light-speed expires. The player gets the message
-"You feel as if time has stopped" if "v" is > 0. Otherwise the player
-gets the message "You feel time returning to its normal rate".
-
-#####GParameters:
->v is the time until light-speed expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_slow
-
-#####GDeclaration: bool set_slow(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->slow", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until slowness expires. The player gets the message "You
-feel yourself moving slower" if "v" is > 0. Otherwise the player gets
-the message "You feel yourself speed up".
-
-#####GParameters:
->v is the time until slowness expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_shield
-
-#####GDeclaration: bool set_shield(int v, int p, s16b o, s16b d1, s16b d2);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->shield", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until stone-shield expires. The player gets the message
-"Your skin turns to stone" if "v" is > 0. Otherwise the player gets
-the message "Your skin returns to normal". Stone-shield has spell
-power "p", spell option "o", and power options "d1" and "d2".
-
-#####GParameters:
->v is the time until stone-shield expires (must be between 0 and
- 10000).
->p is the power of the stone-shield spell.
->o is the option of the stone-shield spell.
->d1 is the power for option 1 of the stone-shield spell.
->d2 is the power for option 2 of the stone-shield spell.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_blessed
-
-#####GDeclaration: bool set_blessed(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->blessed", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until blessing expires. The player gets the message "You
-feel righteous" if "v" is > 0. Otherwise the player gets the message
-"The prayer has expired".
-
-#####GParameters:
->v is the time until blessing expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_hero
-
-#####GDeclaration: bool set_hero(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->hero", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until heroism expires. The player gets the message "You
-feel like a hero" if "v" is > 0. Otherwise the player gets the
-message "The heroism wears off".
-
-#####GParameters:
->v is the time until heroism expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_shero
-
-#####GDeclaration: bool set_shero(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->shero", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until berserk expires. The player gets the message "You
-feel like a killing machine" if "v" is > 0. Otherwise the player gets
-the message "You feel less Berserk".
-
-#####GParameters:
->v is the time until berserk expires (must be between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_protevil
-
-#####GDeclaration: bool set_protevil(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->protevil", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until protection from evil expires. The player gets the
-message "You feel safe from evil" if "v" is > 0. Otherwise the player
-gets the message "You no longer feel safe from evil".
-
-#####GParameters:
->v is the time until protection from evil expires (must be between 0
- and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_protgood
-
-#####GDeclaration: bool set_protgood(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->protgood", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until protection from good expires. The player gets the
-message "You feel safe from good" if "v" is > 0. Otherwise the player
-gets the message "You no longer feel safe from good".
-
-#####GParameters:
->v is the time until protection from evil expires (must be between 0
- and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_protundead
-
-#####GDeclaration: bool set_protundead(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->protundead", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until protection from undead expires. The player gets the
-message "You feel safe from undead" if "v" is > 0. Otherwise the
-player gets the message "You no longer feel safe from undead".
-
-#####GParameters:
->v is the time until protection from undead expires (must be between
- 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_invuln
-
-#####GDeclaration: bool set_invuln(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->invuln", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until invulnerability expires. The player gets the
-message "Invulnerability" if "v" is > 0. Otherwise the player gets
-the message "The invulnerability wears off".
-
-#####GParameters:
->v is the time until invulnerability expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_invis
-
-#####GDeclaration: bool set_tim_invis(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_invis", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until see invisible expires. The player gets the message
-"Your eyes feel very sensitive" if "v" is > 0. Otherwise the player
-gets the message "Your eyes feel less sensitive".
-
-#####GParameters:
->v is the time until see invisible expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_tim_infra
-
-#####GDeclaration: bool set_tim_infra(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_infra", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until infravision expires. The player gets the message
-"Your eyes begin to tingle" if "v" is > 0. Otherwise the player gets
-the message "Your eyes stop tingling".
-
-#####GParameters:
->v is the time until infravision expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_mental_barrier
-
-#####GDeclaration: bool set_mental_barrier(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->tim_mental_barrier", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until mental barrier expires. The player gets the message
-"Your mind grows stronger" if "v" is > 0. Otherwise the player gets
-the message "Your mind is no longer especially strong".
-
-#####GParameters:
->v is the time until mental barrier expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_acid
-
-#####GDeclaration: bool set_oppose_acid(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-
-#####GDescription:
-Set time "v" until feather-fall expires. The player gets the message
-"You feel very light" if "v" is > 0. Otherwise the player gets the
-message "You are suddenly heavier".
-
-#####GParameters:
->v is the time until feather-fall expires (must be between 0 and
- 10000).
->v is the time until feather-fall expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_elec
-
-#####GDeclaration: bool set_oppose_elec(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_elec", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until electricity resistance expires. The player gets
-the message "You feel resistant to electricity" if "v" is > 0.
-Otherwise the player gets the message "You feel less resistant to
-electricity".
-
-#####GParameters:
->v is the time until electricity resistance expires (must be between
- 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_fire
-
-#####GDeclaration: bool set_oppose_fire(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_fire", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until fire resistance expires. The player gets the
-message "You feel resistant to fire" if "v" is > 0. Otherwise the
-player gets the message "You feel less resistant to fire".
-
-#####GParameters:
->v is the time until fire resistance expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_cold
-
-#####GDeclaration: bool set_oppose_cold(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_cold", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until cold resistance expires. The player gets the
-message "You feel resistant to cold" if "v" is > 0. Otherwise the
-player gets the message "You feel less resistant to cold".
-
-#####GParameters:
->v is the time until cold resistance expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_pois
-
-#####GDeclaration: bool set_oppose_pois(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_pois", notice observable changes
-*/
-
-#####GDescription:
-Set time "v" until poison resistance expires. The player gets the
-message "You feel resistant to poison" if "v" is > 0. Otherwise the
-player gets the message "You feel less resistant to poison".
-
-#####GParameters:
->v is the time until poison resistance expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_ld
-
-#####GDeclaration: bool set_oppose_ld(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_ld"
-*/
-
-#####GDescription:
-Set time "v" until light and dark resistance expires. The player gets
-the message "You feel protected against the light's fluctuation" if
-"v" is > 0. Otherwise the player gets the message "You are no longer
-protected against the light's fluctuation".
-
-#####GParameters:
->v is the time until light and dark resistance expires (must be
- between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_cc
-
-#####GDeclaration: bool set_oppose_cc(int v);
-
-#####GFile: xtra2.c
-/*
-* Set "p_ptr->oppose_cc"
-*/
-
-#####GComment:
-
-#####GDescription:
-Set time "v" until chaos resistance expires. The player gets the
-message "You feel protected against raw chaos" if "v" is > 0.
-Otherwise the player gets the message "You are no longer protected
-against chaos".
-
-#####GParameters:
->v is the time until chaos resistance expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_ss
-
-#####GDeclaration: bool set_oppose_ss(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_ss"
-*/
-
-#####GDescription:
-Set time "v" until sound and shard resistance expires. The player gets
-the message "You feel protected against the ravages of sound and
-shards" if "v" is > 0. Otherwise the player gets the message "You are
-no longer protected against the ravages of sound and shards".
-
-#####GParameters:
->v is the time until sound and shard resistance expires (must be
- between 0 and 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_oppose_nex
-
-#####GDeclaration: bool set_oppose_nex(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->oppose_nex"
-*/
-
-#####GDescription:
-Set time "v" until nexus resistance expires. The player gets the
-message "You feel protected against the strange forces of nexus" if
-"v" is > 0. Otherwise the player gets the message "You are no longer
-protected against the strange forces of nexus".
-
-#####GParameters:
->v is the time until nexus resistance expires (must be between 0 and
- 10000).
-
-----------------------------------------------------------------------
-
-#####RFunction: set_stun
-
-#####GDeclaration: bool set_stun(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->stun", notice observable changes
-*
-* Note the special code to only notice "range" changes.
-*/
-
-#####GDescription:
-Set stun level "v". If the player race can't be stunned then the level
-is forced to 0. A value > 100 means the player is knocked out. A value
->50 is a heavy stun. A value > 0 is a stun. If the stun level has
-increased, a message is printed. There is a small chance of stun level
-in 1000, or a 1 in 16 chance of a vicious blow which decreases
-intelligence and/or wisdom for a while.
-
-#####GParameters:
->v is the stun level.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_cut
-
-#####GDeclaration: bool set_cut(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->cut", notice observable changes
-*
-* Note the special code to only notice "range" changes.
-*/
-
-#####GDescription:
-Set cut level "v". If the player race can't be cut then the time is
-forced to 0. A value > 1000 is a mortal wound. A value > 200 is a deep
-gash. A value > 100 is a severe cut. A value > 50 is a nasty cut. A
-value > 25 is a bad cut. A value > 10 is a light cut. A value > 0 is a
-graze. If the cut level has increased, a message is printed. There is
-a small chance of stun level in 1000, or a 1 in 16 chance of scarring
-which decreases charisma for a while.
-
-#####GParameters:
->v is the cut level.
-
-----------------------------------------------------------------------
-
-#####RFunction: set_food
-
-#####GDeclaration: bool set_food(int v);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Set "p_ptr->food", notice observable changes
-*
-* The "p_ptr->food" variable can get as large as 20000, allowing the
-* addition of the most "filling" item, Elvish Waybread, which adds
-* 7500 food units, without overflowing the 32767 maximum limit.
-*
-* Perhaps we should disturb the player with various messages,
-* especially messages about hunger status changes. XXX XXX XXX
-*
-* Digestion of food is handled in "dungeon.c", in which, normally,
-* the player digests about 20 food units per 100 game turns, more
-* when "fast", more when "regenerating", less with "slow digestion",
-* but when the player is "gorged", he digests 100 food units per 10
-* game turns, or a full 1000 food units per 100 game turns.
-*
-* Note that the player's speed is reduced by 10 units while gorged,
-* so if the player eats a single food ration (5000 food units) when
-* full (15000 food units), he will be gorged for (5000/100)*10 = 500
-* game turns, or 500/(100/5) = 25 player turns (if nothing else is
-* affecting the player speed).
-*/
-
-#####GDescription:
-Set hunger level "v". A value < 500 is fainting. A value < 1000 is
-weak. A value < 2000 is weak. A value < 10000 is full. A value
-< 15000 is bloated. A value < 20000 is gorged. If one of these
-levels is crossed a message is printed.
-
-#####GParameters:
->v is the hunger level (must be between 0 and 20000).
-
-----------------------------------------------------------------------
-
-#####RFunction: check_experience
-
-#####GDeclaration: void check_experience(void);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Advance experience levels and print experience
-*/
-
-#####GDescription:
-Check if player experience level has changed. If a player has achieved
-a level for the first time, give reward or corruption (1 chance in 3)
-if they apply, and increase skill points.
-
-----------------------------------------------------------------------
-
-#####RFunction: check_experience_obj
-
-#####GDeclaration: void check_experience_obj(object_type *o_ptr);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Advance experience levels and print experience
-*/
-
-#####GDescription:
-Check if object "o_ptr" experience level has changed. If an object has
-achieved a level for the first time, apply gains.
-
-#####GParameters:
->o_ptr is the pointer to the object gaining experience.
-
-----------------------------------------------------------------------
-
-#####RFunction: gain_exp
-
-#####GDeclaration: void gain_exp(s32b amount);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Gain experience (share it to objects if needed)
-*/
-
-#####GDescription:
-Gain "amount" of experience. Count the number of objects which will
-gain experience. The objects share equally 2/3 of "amount". Give
-corruption if it applies. Gain experience. If experience is less
-than maximum, then increase maximum experience by 20% of "amount".
-Check for level change and print experience (check_experience).
-
-#####GParameters:
->amount is the amount of experience to share.
-
-----------------------------------------------------------------------
-
-#####RFunction: lose_exp
-
-#####GDeclaration: void lose_exp(s32b amount);
-
-#####GFile: xtra2.c
-
-#####GComment:
-/*
-* Lose experience
-*/
-
-#####GDescription:
-Decrease experience by "amount". Experience can not fall below zero.
-Check for level change and print experience (check_experience).
-
-#####GParameters:
->amount is the amount of experience to lose.
-
-----------------------------------------------------------------------
-
-
-Back to the *****lua.hlp*0[lua help index] .
-
-
- [[[[[gThis file by Chris Hadgis]
-
-
diff --git a/lib/mods/theme/help/lua_pow.txt b/lib/mods/theme/help/lua_pow.txt
deleted file mode 100644
index c221a664..00000000
--- a/lib/mods/theme/help/lua_pow.txt
+++ /dev/null
@@ -1,266 +0,0 @@
-|||||oy
-#####R /----------------------------------------\
-#####R < Adding new racial powers >
-#####R \----------------------------------------/
-
-#####R=== Introduction ===
-
-You *must* download and install my lua example files from
-[[[[[Ghttp://www.moppy.co.uk/angband.htm]. And also you should read the
-*****lua_intr.txt*0[scripting introduction] file if you haven't already done
-so.
-
-The (commented) accompanying script file for this tutorial is
-lib\scpt\pheonix.lua. Open it in your text editor!
-
-#####R=== The Racial Power ===
-
-Let's start with something simple. Let's say you wanted your new race (let's
-call it "Pheonix") to be able to cast fire balls as their racial power.
-
-#####R=== Starting off ===
-
-If you have a look at pheonix.lua you'll note the first lines are comments.
-I'll talk a bit more about comments later, but it's worth pointing out that any
-lines of text preceded by a double hyphen ([[[[[B--]) will be ignored by the
-scripting engine, and are therefore comments.
-After the comments, the first 10 lines of code are as follows:
-
-#####BPHEONIX_POWER = add_power
-#####B{
-#####B ["name"] = "Fire Breath",
-#####B ["desc"] = "You are able to cast fireballs",
-#####B ["desc_get"] = "Your beak glows red",
-#####B ["desc_lose"] = "Your beak goes cold again",
-#####B ["level"] = 10,
-#####B ["cost"] = 11,
-#####B ["stat"] = A_INT,
-#####B ["fail"] = 14,
-
-So, [[[[[BPHEONIX_POWER = add_power] is registering our power. We're giving it
-a name (PHEONIX_POWER) and saying that it is defined by calling the special
-function [[[[[Badd_power]. This special function is only used to define lua-
-scripted
-powers, and has attributes which are identified by their inclusion in square
-brackets.
-Note the following:
-- Lua is case sensitive. The name of our power is a constant, will never change
-so that's been named with capitals. variables and functions are named all in
-lower case. Technically speaking, Lua does not support constants, but we can
-emulate them by variables in this way. They don't have to be capitalised, but
-if you capitalise all your constants, it makes things easier to read, and
-you'll be following normal programming protocol.
-- There are no spaces in the name of the power. Use an underscore for spaces
-if you need to improve legibility.
-
-[[[[[B"name" = "Fire Breath",] This is the name of the power as it is
-displayed in the
-U menu, and as you will define it in p_info.txt (more about that later).
-
-[[[[[B"desc" = "You are able to cast fireballs",] This is what would
-appear in the
-information display list if you drank a potion of self knowledge or
-similar.
-
-[[[[[B"desc_get" = "Your beak glows red",] This is the information displayed
-when you
-gain this power.
-
-[[[[[B"desc_lose" = "Your beak goes cold again",] This is the information
-displayed when
-you lose this power. Eg After a mutation/corruption.
-
-[[[[[B"level" = 10,] Character level which must be gained in order to use
-power,
-
-[[[[[B"cost" = 11,] Amount of mana to cast this power.
-
-[[[[[B"stat" = A_INT,] stat which will define whether it works or not,
-
-[[[[[B"fail" = 14,] how high that stat must be.
-
-So our Pheonix will be able to cast PHEONIX_POWER from clvl 10, at a cost of
-11 mana, providing that the player's intelligence is 14 and upwards.
-
-#####R=== The function ===
-
-The next section is a lot longer, so we'll look at it line by line. I'll
-strip the comments for the purpose of this helpfile.
-
-#####B["power"] = function()
-#####B local ret, dir, damage
-#####B ret, dir = get_aim_dir();
-#####B if (ret == FALSE) then
-#####B return
-#####B end
-#####B damage = player.lev*3
-#####B msg_print("You breathe fire.")
-#####B fire_ball(GF_FIRE, dir, damage, 3)
-#####Bend,
-
-The [[[[[B"power"] bit is what actually happens when the player accesses this
-power
-from their 'U' menu. Every function must start with the word [[[[[Bfunction].
-Normally, we'd also declare its name at this point, but as this is contained
-within the [[[[[Badd_power] function, we just use the word [[[[[Bfunction] The
-empty
-brackets after this denote that no arguments are passed to the function.
-Lets look at the next line.
-
-#####B local ret, dir, damage
-
-The [[[[[Blocal] bit is saying that we're going to declare some local
-variables. That
-is, that there will be three variables used in this function , that apply
-exclusively to this function, and to no others. Global variables are
-variables that apply to the whole script, in multiple functions. The three
-variables will be called [[[[[Bret] (return), [[[[[Bdir] (direction), and
-[[[[[Bdamage]. They will be used to determine the direction the ball
-will fire in, and how much damage it will do. We'll see them in use when we add
-the third line:
-
-#####B ret, dir = get_aim_dir();
-
-here we're saying that the variables will take their value from the result
-of a function. The program performs the function [[[[[Bget_aim_dir] which
-essentially asks the player to choose a direction or pick a target.
-[[[[[Bget_aim_dir]
-assigns the value [[[[[Bret] to either TRUE (if the player correctly selected a
-direction) or FALSE (if the player failed to do so (maybe they changed their
-mind, or hit the wrong key!)). The value [[[[[Bdir] is the direction which was
-selected (or the path to the target if a target was selected). OK so let's add
-the next line:
-
-#####B if (ret == FALSE) then return end
-
-This introduces another fundamental scripting concept - [[[[[Bif] statements.
-They work just as you would expect them too. You say "if a certain condition is
-met, then do the following things."
-So in this function we're saying, "if the value of [[[[[Bret] is FALSE then
-[[[[[Breturn]."
-As I mentioned above, [[[[[Bret] is false if the player aborted (either
-deliberately or accidentally) the spell casting whilst choosing a direction
-for the spell. The double equals sign are used to mean "is equal to" as a
-single equals sign is used for defining variables remember? A single equals
-sign is more of a "let x be equal to y" thing.
-[[[[[Breturn] means stop the current function. And [[[[[Bend] signifies the
-close of the [[[[[Bif]
-statement. Every [[[[[Bif] statement must begin with an [[[[[Bif] and finish
-with an [[[[[Bend].
-So, what our [[[[[Bif] statement is saying is; "if the player failed to specify
-a direction or target for the spell, stop the function here."
-If the player has correctly specified a direction/target, the function
-continues to the next line:
-
-#####B damage = player.lev*3
-
-Here we're saying that the variable [[[[[Bdamage] has a value equal to the
-players current character level, multiplied by 3.
-
-#####B msg_print("You breathe fire.")
-
-Fairly easy to see what this does - displays the message "You breathe fire."
-I could have put anything there obviously, like [[[[[Bmsg_print("You open]
-[[[[[Byour mouth and everyone falls over with the smell of hot curry")] or
-some other such rubbish. But note that the message is enclosed within double
-quotes. The quotes aren't displayed in the message on screen, but signify the
-start and end of the message.
-
-#####B fire_ball(GF_FIRE, dir, damage, 3)
-
-This is the line that casts the spell. it says execute the function
-[[[[[Bfire_ball]. Now, this doesn't mean a fireball, it means fire a ball.
-There's an important distinction there! All it knows it is doing is firing a
-ball, it doesn't know what kind of ball, or where, or how big, or how much
-damage.
-The [[[[[BGF_FIRE,] bit is what tell us it is a fire ball. If it was
-[[[[[BGF_COLD,]
- we'd have a cold ball, or [[[[[BGF_CHAOS,] it would be a chaos ball and
-so on and so on. A full list of those types can be found in *****lua_gf.txt*0[lua_gf.txt].
-[[[[[B dir,] is the direction, from the [[[[[Bget_aim_dir()] bit.
-[[[[[B damage,] is the damage. As we've already said, this will be clvl*3.
-[[[[[B 3)] is the radius.
-and finally...
-
-#####B end,
-#####B}
-
-[[[[[Bend,] tells it the function has ended. Every function must finish with
-[[[[[Bend].
-You should have spotted that after the end of each attribute is a comma. Make
-sure you include this, and don't forget the braces at the very very end to
-close the [[[[[Badd_power] function.
-
-#####R=== Finishing the LUA file ===
-
-Save this as a text file 'pheonix.lua' Put it into the lib\scrpt directory
-of ToME, and open the init.lua file which you'll find in the same
-directory.
-
-Add the following line and resave the init.lua file.
-
-#####Btome_dofile("pheonix.lua")
-
-This ensures that ToME loads your file on start-up. Because you've installed
-the example scripts, this has all been done for you.
-
-#####R=== A quick word about comments ===
-
-One of the reasons Angband has so many variants is because the source code is
-clearly commented. Almost every line of code has an accompanying comment,
-explaining what that line does. It's good practice to add comments to any code
-or script you write. It's helpful to others who are learning, anyone who takes
-over your project, and also to yourself when you come back in a month's time
-and can't remember what you did! So comment your code clearly, and well!
-
-You can also add multi line comments which should be enclosed by [[[[[B--[[]
-and
-#####B]]
-
-#####R=== Tying it all together ===
-
-You'll now need to link this 'U' power to the pheonix race via the
-p_info.txt file. Simply add a line within the class definition file that has
-the format [[[[[BR:Z:<name>]the name of the power as it appears in the
-[[[[[B"name"]
-section we did right at the beginning, remember? Seeing as there is no pheonix
-race, I've gone ahead and made one up as a demonstration. If you've downloaded
-and installed the example files from [[[[[Ghttp://www.moppy.co.uk/angband.htm/]
-then
-you'll notice you already have the pheonix race available. Printed below is
-the p_info.txt entry for it.
-
-
-#####BR:N:23:Pheonix
-#####BR:D:Born from flame, these powerful bird like creatures gain fire related
-#####BR:D:abilities as they grow.
-#####BR:S:1:0:2:1:-3:2:-5
-#####BR:K:-8:15:20:-10:5:-1:-5:-5
-#####BR:P:8:130:5:210
-#####BR:M:255:70:2:1:20:5:2:1:18:3
-#####BR:E:1:1:1:2:1:1
-#####BR:C:Warrior | Mage | Priest | Rogue | Ranger | Paladin | Blade |
-#####BR:C:Warlock | Chaos-Warrior | Monk | Mindcrafter | High-Mage |
-#####BR:C:BeastMaster | Alchemist | Power-Mage | Runecrafter |
-#####BR:C:Sorceror | Archer | Illusionist | Druid | Necromancer | Black-Knight
-|
-#####BR:C:Daemonologist | Weaponmaster | Summoner |
-#####BR:Z:Fire Ball
-#####BR:R:1:0
-#####BR:F:RES_FIRE | FEATHER |
-
-Note the [[[[[BR:Z:] line.
-
-If all is well, you should be able to start ToME now and breathe fire! Once
-you get to lvl 10 anyhow. Don't forget, this is the kind of thing wizard mode
-was invented for! Ctrl-A and confirm at the prompt, and then 'e' will allow
-you to alter stats, including experience. Approx 1000 exp should do to get you
-to clvl 10.
-
-Ready for more? How about adding a new *****lua_skil.txt*0[skill] ?
-
- [[[[[gThis file by fearoffours (fearoffours@moppy.co.uk)]
-
-
-
-
diff --git a/lib/mods/theme/help/lua_ques.txt b/lib/mods/theme/help/lua_ques.txt
deleted file mode 100644
index 1d4b9c65..00000000
--- a/lib/mods/theme/help/lua_ques.txt
+++ /dev/null
@@ -1,299 +0,0 @@
-|||||oy
-#####R /----------------------------------------\
-#####R < Adding a new quest >
-#####R \----------------------------------------/
-
-#####R=== Introduction ===
-
-Adding a quest involves a bit more work, and there is, in some ways, rather
-more potential for things to go wrong! But it's a great way of showing just
-WHAT can be done with lua scripting. It proves just how much a lua patch can
-change the overall feel of the game. And it will give you a much better idea of
-how lua interfaces with the game source. You should have read the
-*****lua_intr.txt*0[scripting introduction], *****lua_pow.txt*0[racial power tutorial]
-and *****lua_skil.txt*0[adding new skills tutorial] before going much
-further. All of the above files contain some fairly fundamental information
-which you will find necessary for full understanding of this file.
-
-The script we're looking at is going to create a quest entrance in the middle
-of Bree. Entering the quest you see a little girl who has had her necklace
-stolen. Your job is to travel down a corridor, killing some monsters on the
-way, pick up the amulet and return it to the girl. Once done, she'll reveal the
-stairs back to Bree, and give you a (randomly generated) ring. If you feel the
-monsters are too hard, the only thing to do is talk to the little girl who will
-reveal the stairs again, failing the quest for you, and also block off the
-entrance to the amulet so that you can't cheat and make off with the amulet!
-
-#####R=== Getting started ===
-
-Open amulet.lua (you have downloaded the example scripts from
-[[[[[Ghttp://www.moppy.co.uk/angband.htm], haven't you?). The first thing you
-should see is that yet again we're calling a function that takes its arguments
-from a table, making it easy to read what's going on in the script.
-
-This time our function is add_quest and we have the following keys and values:
-
-#####B["global"] = "AMULET_QUEST",
-#####B["name"] = "Hannahs lost amulet",
-#####B["desc"] = {
-#####B "Retrieve an amulet for Hannah Cooke. It's guarded!"
-#####B },
-#####B["level"] = 5,
-#####B["hooks"] = {
-
-[[[[[B"global" = ] is a constant that we set when we refer to this quest in
-various places...
-[[[[[B"name" = ] Obviously a long name for the quest. This will appear in the
-quest screen (Ctrl-Q) and we may use in some map files too.
-[[[[[B"desc" = ] This is a long description for the quest. Again this is what
-will appear in the quest screen, and each line should be not more than 80
-characters.
-[[[[[B"level" = ] This is a rough indicator of how hard the quest is, and again,
-appears in the quest screen
-[[[[[B"hooks" = ] This is the real 'meat' of the quest. Like the [[[[[B"spell_list"] key
-in the [[[[[Badd_magic] function, this is another sub-table.
-
-To understand fully the structure of the "hooks" key it's worth taking a bit of
-a detour at this point and discussing how the scripting interface works in
-general.
-
-#####R=== How the scripts work (ish) ===
-
-Essentially there's a list of events that happen in the game. As each of these
-events happen they run a check to see if there's any functions that they need
-to run at that event. When we ran the add_mkey part of adding a new skill
-power, we essentially said "when the 'm' key is pressed in the game, perform
-the [[[[[Bexecute_magic(constructor_powers)] function". Likewise we did a similar
-thing with adding the racial power, only we hooked onto the pressing of the
-'U' key.
-
-All of this was partly hidden because of the way that the [[[[[Badd_magic] and
-[[[[[Badd_power] functions work. But here in the [[[[[Badd_quest] function it's a bit more
-specific. We are going to specify what events we're going to hook onto, and
-what functions we want to trigger at that event.
-
-A full list of hooks can be found in the source-file util.pkg.
-
-#####R=== The hooks ===
-
-#####B[HOOK_BIRTH_OBJECTS] = function()
-#####B quest(AMULET_QUEST).status = QUEST_STATUS_TAKEN
-#####Bend,
-
-So here we are with our first hook. We've declared that we're adding it to the
-birth of your character. That is, the function will be called when you create
-your character. And what we're doing here is automatically declaring the quest
-as being taken, like the Dol Guldur quest is. Each quest has 7 different
-statuses:
-
-[[[[[BQUEST_STATUS_IGNORED -1 ] This is unused, but the quest is
-ignored (will not be taken and has not been taken).
-[[[[[BQUEST_STATUS_UNTAKEN 0 ] The quest has not been accepted yet
-[[[[[BQUEST_STATUS_TAKEN 1 ] You have accepted the quest
-[[[[[BQUEST_STATUS_COMPLETED 2 ] You have completed the quest
-successfully but not been rewarded for it
-[[[[[BQUEST_STATUS_REWARDED 3 ] You've completed and rewarded the quest
-[[[[[BQUEST_STATUS_FAILED 4 ] You've failed the quest
-[[[[[BQUEST_STATUS_FINISHED 5 ] The quest is completely finished
-successfully.
-[[[[[BQUEST_STATUS_FAILED_DONE 6 ] The quest is completely finished
-unsuccessfully.
-
-You see that we've used the constant we defined in the "global" section is
-passed as an argument to [[[[[Bquest.status].
-
-Next hook then:
-
-#####B[HOOK_GEN_QUEST] = function()
-#####B if (player.inside_quest ~= AMULET_QUEST) then
-#####B return FALSE
-#####B else
-#####B load_map("amulet.map", 2, 2)
-#####B return TRUE
-#####B end
-#####Bend,
-
-Ok, we're hooking onto the generation of the quest here. This is specifically
-triggered in this instance by going down the quest entrance stairs in Bree.
-Once you've gone down the stairs, you are technically inside the quest, which
-means we can say if the person is not inside the amulet quest, then ignore this
-function, otherwise load the file 'amulet.map' at co-ordinates x=2 y=2. You'll
-find the amulet.map file in the edit directory, make sure you check it out. The
-syntax for map files is fairly simple, though I might get round to writing a
-tutorial on them some day! In the mean time holler for me at the usual email
-address if you're unsure.
-
-#####B[HOOK_FEELING] = function()
-#####B if (player.inside_quest ~= AMULET_QUEST) then
-#####B return FALSE
-#####B else
-#####B cmsg_print(TERM_L_BLUE, "Hannah speaks to you:")
-#####B cmsg_print(TERM_YELLOW, "'Some nasty monsters stole my
-#####B favourite necklace.'")
-#####B cmsg_print(TERM_YELLOW, "'It's hidden at the back of that
-#####B corridor! Please fetch it for me'")
-#####B return TRUE
-#####B end
-#####Bend,
-
-We're moving into some rather more obvious territory here, and getting into the
-meat of the quest. The [[[[[BHOOK_FEELING] is triggered at the point when the level
-feeling appears. It's important that this is run only if the player is inside
-the amulet quest, as otherwise it will trigger EVERY time a level feeling
-occurs, when you go down a level in the barrow-downs, whenever! Returning TRUE
-will replace the level feeling with what's above, returning FALSE will still
-perform the function but will amend the normal level feeling - so here if we'd
-returned false we'd still get our custom messages, but they'd follow with
-'looks like a typical quest level'. Of course returning false may cause you
-other problems (see end of this file!) depending on what else you have in your
-function.
-
-#####B[HOOK_GIVE] = function(m_idx, item)
-
-#####B m_ptr = monster(m_idx)
-#####B o_ptr = get_object(item)
-
-#####B if (m_ptr.r_idx == test_monster_name("Hannah Cooke, a little girl"))
-#####B and (o_ptr.tval == TV_AMULET) and (o_ptr.sval == 2) then
-
-#####B cmsg_print(TERM_YELLOW, "'Thank-you!'")
-
-#####B inven_item_increase(item, -1)
-#####B inven_item_optimize(item)
-
-#####B quest(AMULET_QUEST).status = QUEST_STATUS_COMPLETED
-
-#####B cave_set_feat(7, 6, 6)
-
-#####B cmsg_print(TERM_YELLOW, "'Here, take this pretty ring I found
-#####B as a token of gratitude!'")
-#####B random_type = randint(57)
-#####B reward = create_object(TV_RING, random_type)
-#####B drop_near(reward, -1, py, px)
-#####B quest(AMULET_QUEST).status = QUEST_STATUS_REWARDED
-#####B return TRUE
-#####B else
-#####B return FALSE
-#####B end
-#####Bend,
-
-This is a fairly long function, but don't be intimidated. It's not really
-difficult to understand. As you can see we're hooking into the giving of an
-object to a monster (the 'y' key). Because of this, the function takes two
-arguments - [[[[[Bm_idx] (the monster that you're giving to) and [[[[[Bitem] (the item that
-you're giving).
-
-We then make it possible to work with the monster and item variables by
-referencing them to two functions which identify them from the edit files:
-[[[[[Bmonster()] and [[[[[Bget_object()]. This enables us to now say, 'if the name of the
-monster is "Hannah Cooke, a little girl" and the type of item is an amulet and
-that amulet is an amulet of adornment, then carry out the following commands'.
-
-We then say call the function [[[[[Binven_item_increase()] which places an object in
-the inventory. It takes two arguments, the first being what object to put in
-the inventory and the second being how many of that type of objects to put in
-the inventory. You can see that by placing -1 as the second argument it fairly
-obviously subtracts that item from the inventory. The [[[[[Binven_item_optimize()]
-function checks that there are no empty inventory slots, and if there are,
-erases them.
-
-The quest is then completed, and the stairs are revealed using the
-[[[[[Bcave_set_feat()] function. This function takes three arguments, the first is the
-x co-ordinate of the cave square you wish to change (counted from top left) the
-second is the y co-ordinate, and the third is the index number of the feature
-you wish the square to become as defined in f_info.txt.
-
-We then set about rewarding the player. As you can see we call [[[[[Bcreate_object()]
-which takes two variables: the first is the type of object (these are all
-listed in object.pkg) and the second is the sub-type of that object. I searched
-k_info.txt to see how many different types of ring there were (57) and used a
-randomly selected number with a maximum value of 57 as that specific sub-type.
-
-We then drop the object (although it's been created, it has only been created
-in the game's memory, it's nowhere that the player can interact with it until
-we drop it). The [[[[[Bdrop_near()] function takes 3 variables, the first being the
-object that you wish to drop, the second being the chance that it disappears
-(like an arrow, or mimicked creature) on drop. If you set it to -1, it won't
-ever disappear. The last two are the co-ordinates at which the object will be
-dropped. py and px are the global variables defined by where the player is
-standing, so in this case it will drop under the player. You could do
-[[[[[Binven_item_increase(reward, 1)] if you wanted, but I wanted to show a variety of
-ways of handling objects.
-
-OK, let's take a look at the next hook:
-
-#####B[HOOK_CHAT] = function(m_idx)
-#####B m_ptr = monster(m_idx)
-#####B if (m_ptr.r_idx == test_monster_name("Hannah Cooke, a little girl")) then
-#####B if (quest(AMULET_QUEST).status == QUEST_STATUS_REWARDED) then
-#####B cmsg_print(TERM_YELLOW, "'Bye!'")
-#####B else
-#####B cmsg_print(TERM_YELLOW, "'Are the monsters too tough?
-#####B Do you want to leave?'")
-#####B if (get_check("Really leave and fail the quest?") ==
-#####B FALSE)
-#####B then
-#####B cmsg_print(TERM_YELLOW, "'Go and get my
-#####B amulet then!'")
-#####B else
-#####B cmsg_print(TERM_YELLOW, "'Awww. Never
-#####B mind. It was only a bit of rabbits foot'")
-#####B quest(AMULET_QUEST).status =
-#####B QUEST_STATUS_FAILED
-#####B cave_set_feat(7, 6, 6)
-#####B cave_set_feat(12, 5, 60)
-#####B end
-#####B end
-#####B return TRUE
-#####B end
-#####B return FALSE
-#####Bend,
-
-This only looks complicated because of the nested 'if' statements. It's easy to
-lose your way when doing this kind of thing, always make sure you close all the
-statements and put the returns in the right place. [[[[[BHOOK_CHAT] functions have one
-argument - the monster you are chatting to. As you can see, we perform a check
-to make sure it's the right monster and then away we go.... If the player wants
-to leave the quest without completion they talk to Hannah, who gives them a
-chance to change their mind! If the player asks to leave the entrance to the
-corridor is blocked off (the second cave_set_feat()) so that the user can't
-then go and get the amulet. Gumband or Zangband players may at this point think
-they've lost out on the rabbits foot of burglary! (they haven't though as it
-doesn't exist in ToME).
-
-#####B[HOOK_CHAR_DUMP] = function()
-#####B if (quest(AMULET_QUEST).status == QUEST_STATUS_FAILED) then
-#####B print_hook("\n You chickened out of rescuing a necklace and
-#####B made a little girl sad. ")
-#####B elseif (quest(AMULET_QUEST).status == QUEST_STATUS_COMPLETED) or
-#####B (quest(AMULET_QUEST).status == QUEST_STATUS_REWARDED) or
-#####B (quest(AMULET_QUEST).status == QUEST_STATUS_FINISHED) then
-#####B print_hook("\n You rescued little Hannah Cooke's necklace from
-#####B the nasty monsters ")
-#####B end
-#####B return FALSE
-#####Bend,
-
-This quite simply and obviously prints an appropriate line in the character
-dump based on the status of the quest. The [[[[[B\n] bit ensures the text goes on a
-new line, so make sure you include it! Also you should return FALSE as
-returning TRUE will stop executing all the other character dump lines (and you
-may get other quests not having their lines printed).
-
-=== A word about returning TRUE and FALSE ===
-
-As I mentioned above, you need to be careful what you return when dealing with
-HOOKS as you can mess up the game a bit. Bear in mind that if you add a
-function to [[[[[BHOOK_GEN_QUEST], every time a quest is generated, that function will
-run. If you return TRUE, then no further functions attached to that hook will
-run. If you return FALSE, it continues processing functions on that hook.
-
-That is pretty much it. Do take a look at the other included scripts that I
-haven't gone into any detail about in the files, as you'll pick up some useful
-techniques there too. Especially worthy of note is the hina.lua file which uses
-hooks outside of the quest structure and also global variables and variables in
-a table. If you have any questions, let me know at the email addy below.
-
-Back to the *****lua.hlp*0[lua help index] .
-
- [[[[[gThis file by fearoffours (fearoffours@moppy.co.uk)]
diff --git a/lib/mods/theme/help/lua_skil.txt b/lib/mods/theme/help/lua_skil.txt
deleted file mode 100644
index 87385e5d..00000000
--- a/lib/mods/theme/help/lua_skil.txt
+++ /dev/null
@@ -1,342 +0,0 @@
-|||||oy
-#####R /----------------------------------------\
-#####R < Adding new skill-based powers >
-#####R \----------------------------------------/
-
-#####R=== Introduction ===
-
-This is very much in the same vein as adding a racial/extra power, but has to
-be tied into skills, and we're defining more than one spell at once. You should
-have read the *****lua_intr.txt*0[scripting introduction] and
-*****lua_pow.txt*0[racial power tutorial] before going much further. Both of the above files
-contain some fairly fundamental information which you will find necessary for
-full understanding of this file.
-
-#####R=== Getting started ===
-
-Open construc.lua (you have downloaded the example scripts from
-[[[[[Ghttp://www.moppy.co.uk/angband.htm], haven't you?). The idea behind this
-script is that it adds a skill which affects you ability to build/knock down
-stuff. It treats the equivalent of stone-to-mud and trap-door destruction
-spells as if they were "building skills". It also adds quite a few high-level
-'spells' which do funky things like carving out corridors and chambers in a
-single turn, and building doors and stuff. Just think of it as if the person
-who has plenty of skills in this area would be a builder-type with lots of
-strength and constitution...
-
-In order to add these powers we're going to edit the s_info.txt file which
-lives in the edit folder, and add a new skill, underneath the 'misc' tree,
-called construction. The powers will then be accessed through the 'm' menu, in
-a similar way to mindcraft or alchemy skills or such. (That is, no books are
-needed to cast them, as we're treating them as a craft that has been learnt,
-rather than spells.) Our fist line of the script file reads:
-
-#####BSKILL_CONSTRUCT = 57
-
-This merely links the skill index that we'll be defining in s_info.txt to this
-file. We'll come back to this at the end of the tutorial.
-
-#####Bconstructor_powers = add_magic
-
-In a similar way to the [[[[[Badd_power] function we called when we added the
-Phoenix racial ability, this line calls a special function which we use to
-define new skills. It follows a very specific, but easy to understand form. It
-starts with a brace, which indicates the add_magic function will be storing
-these values in a table. Don't worry about this too much, but understand that a
-table starts and ends with braces [[[[[B{] and [[[[[B}] respectively. Each key
-(or field name) takes the format [[[[[B"key" = value,] (the comma is
-important!).
-
-#####B ["fail"] = function()
-#####B msg_print("You decide now is a good time for a cuppa")
-#####B end,
-#####B ["stat"] = A_STR,
-#####B ["get_level"] = function()
-#####B return get_skill_scale(SKILL_CONSTRUCT, 50)
-#####B end,
-#####B ["spell_list"] =
-
-[[[[[B"fail"] is a function that is called whenever you ##fail to cast the
-spells##. Here it does nothing spectacular.
-[[[[[B"stat"] defines the stat used to cast the spells. Here it is strength.
-Any other stat can be used, prefix it with [[[[[BA_].
-[[[[[B"get_level"] is used to determine the level of the spell. It's associated
-with spells that increase in power the more points that are invested in the
-associated skill. I know that's not terribly clear, I'll come back to it in a
-moment.
-[[[[[B"spell_list"] is just that, a list of all the spells.
-Each of these four properties within the table must end with a comma. If a
-function is defined in the property itself then we add the comma after the
-closing [[[[[Bend]. Again compare with construct.lua to see it. Any line NOT
-ending with a comma will cause a lua error on startup, probably of the type
-[[[[[V'}' expected to close '{' at line <whatever>.]
-
-#####R=== The spell list ===
-
-Each spell, within the [[[[[B"spell_list"] key has its own set of properties
-that we need to define from a sub-table so we open another set of braces to
-start the spell list, and then a third set of braces to start the first spell.
-So with all this, our first spell looks like:
-
-#####B ["spell_list"] =
-#####B {
-#####B {
-#####B ["name"] =
-#####B ["desc"] =
-#####B ["mana"] =
-#####B ["level"] =
-#####B ["fail"] =
-#####B ["spell"] =
-#####B ["info"] =
-#####B },
-
-[[[[[B"name"] is, as you would expect, the name of the spell, as you want it to
-appear in the spell list when choosing a spell. The maximum number of
-characters for this is 29.
-[[[[[B"desc"] is the description received when you hit the capital letter of
-that spell in the menu. (i.e., press 'a' to cast the first spell, but press 'A'
-to receive info about the first spell.
-[[[[[B"mana"] is the amount of mana required to cast the spell.
-[[[[[B"level"] is the level required to use that spell (that's level of the (in
-this case construction) skill, not character level!).
-[[[[[B"fail"] is base fail rate.
-[[[[[B"spell"] is the function that is executed when the spell is cast. Note
-that it MUST take the form [[[[[Bfunction() blah end] even if you're calling
-a C function directly. If you have a look at the end of the file, you'll see
-the "rebuild dungeon" spell which is identical to the "alter_reality" spell.
-However, rather than reading [[[[[B"spell" = alter_reality()], it reads:
-
-#####B["spell"] = function()
-#####B alter_reality()
-#####Bend,
-
-which appears to be a long way round to do the same thing, but this is how it
-must be done.
-
-In a similar way, the [[[[[B"info"] key must begin with a [[[[[Bfunction()]
-and return the value of what is to be displayed alongside the spell name,
-level and mana in the spell list. The maximum number of characters that can be
-displayed here is dependent on the width of the user's screen, but try to keep
-it under 12 if you can, as this will fit in a standard 80x24 terminal screen.
-The first character will need to be a space otherwise you'll have the info line
-squashed right up against the fail rate and it will look odd. If you wish to
-have this part blank in the spell list, you still need to return a value, so
-just a single space will do : [[[[[Breturn " "]
-
-All of these keys are repeated for each spell, with each spell in its own
-table (therefore, it's own set of braces). Again, check the lua file for
-clarification.
-
-When entering the spells in the "spell_list", you must take care to specify
-them in the order which they are gained, otherwise they display incorrectly in
-the spell list.
-
-You should by now be experienced enough to understand most of what's going on
-in the actual spell functions (especially if you dig around in the source a
-bit, and check out Chris Hadgis' excellent *****lua_spel.txt*0[spell.pkg] helper
-files. I'm not going to go through the whole file line by line, as this is
-something you should do yourself, figuring out what's going on. I'm going to
-examine a few of the things we haven't covered before though, so pay attention.
-
-#####R=== The get_level() function ===
-
-Probably one of the most important functions that you see reappearing in the
-file is the [[[[[Bget_level()] function. All this does is return the numerical
-value of the power that is given as the first argument. So [[[[[Bget_level]
-[[[[[B(constructor_power)] will return the current level of the constructor power.
-Given that the level of this is taken directly from the construction skill, (we
-defined that in the [[[[[B"get_level"] key, by saying [[[[[Bget_skill_scale]
-[[[[[B(SKILL_CONSTRUCT, 50)] ) it will return the value of your construction skill.
-[[[[[Bconstructor_power] is the name of the whole power, we named it thus on
-the second line of the script!
-
-[[[[[Bget_level] takes the following arguments: [[[[[Bget_level(power, max, ]
-[[[[[Bmin)]. The power is obviously which power we're taking the value from, and the
-max and min allow you to define boundaries for the spell. For instance the
-current maximum value that [[[[[Bget_level(constructor_power)] can return is
-50, as that is the maximum number of skill points you can have in that skill.
-If you were using this as the basis for the damage of a low-level bolt spell,
-you might decide that having a damage of 50 would be too much (unlikely, but
-still possible). You could therefore define a maximum value of 20 so that when
-the value of the construction skill was over 50, the maximum value for
-damage of that spell would be 20. To achieve this you'd have:
-[[[[[Bget_level(constructor_power, 20)]. In a similar way, you can force the
-minimum value of the spell to be higher than the actual construction skill
-level, with a [[[[[Bget_level(constructor_power, 50, 15)]. This would be useful
-say for spells that you wanted to be available when the construction skill
-level reaches 10, but for whom you wanted a (for example) base damage of 15
-right from the word go. These re-scale values rather than capping them!
-
-You can leave out the minimum value as I have done above. You can also leave
-the maximum value out (it will default to 50). If you want to specify a minimum
-value though, you MUST specify a maximum value as well.
-
-As you have hopefully been able to tell, the [[[[[Bget_level()] function
-enables us to have spells that increase in usefulness as you gain levels. Let's
-take the "Dismantle" spell. The function in the [[[[[B"spell"] key is as
-follows:
-
-#####Bfunction()
-#####B local ret, dir, dam
-
-#####B if (get_level(constructor_powers, 50) >= 11) then
-#####B ret, dir = get_aim_dir();
-#####B if (ret == FALSE) then return end
-#####B fire_beam(GF_KILL_TRAP, dir, 1)
-#####B else
-#####B fire_ball(GF_KILL_TRAP, 0, 1, 1)
-#####B end
-#####Bend,
-
-The [[[[[Bif] statement is obviously what really interests us here. You'll
-notice that this has the amendment of an [[[[[Belse] clause, which the [[[[[Bif]
-statement we used in the previous tutorial did not. As you would expect, if the
-condition on the first line of this statement is met, then the instructions
-immediately below it are carried out. If the condition is not met, then the
-statements that follow the [[[[[Belse] are executed.
-
-Coming back to the [[[[[Bget_level] function, we learnt from above, that the
-[[[[[Bget_level] part of this function translates as, "if the value of the
-construction_power level (which happens to be identical to the construction
-skill level) is greater than or equal to 11, cast a beam of trap disarming in
-the specified direction. (The first part of this is all straightforward,
-getting a direction, and cancelling correctly if the player presses 'ESC'.)
-Otherwise, cast a ball of trap disarming with a radius of one, centred on the
-player."
-
-In the same way, as you look at the construc.lua file, you will see that
-[[[[[Bget_level()] is used many times in this way, to increase the power of
-detection spells, to change bolt spells to ball spells, to keep a constantly
-increasing damage going, and so on.
-
-#####R=== Elseif's and things ===
-
-If you want to provide more than one alternative condition, in an
-[[[[[Bif-then-else] statement, you can use [[[[[Belseif]s which do what you
-might expect. Take a look at the first spell, "Survey area", for an example of
-this:
-
-#####Bif (get_level(constructor_powers, 50) >= 28) then
-#####B wiz_lite()
-#####Belseif (get_level(constructor_powers, 50) >= 15) then
-#####B map_area()
-#####B detect_traps(DEFAULT_RADIUS)
-#####Belseif (get_level(constructor_powers, 50) >= 5) then
-#####B detect_traps(DEFAULT_RADIUS)
-#####B detect_stairs(DEFAULT_RADIUS)
-#####B detect_doors(DEFAULT_RADIUS)
-#####Belse
-#####B detect_stairs(DEFAULT_RADIUS)
-#####B detect_doors(DEFAULT_RADIUS)
-#####Bend
-
-If the level of constructor powers is greater or equal to 28, then the function
-[[[[[Bwiz_lite()] is performed, and no other part of the if statement is
-executed. [[[[[Bwiz_lite()] is just the enlightenment spell. If it is less than
-28, the next condition is examined: that if the level of constructor powers is
-greater than or equal to 15, then [[[[[Bmap_area()](Magic mapping) and detect
-traps are called. If the level of constructor power is less than 15, it moves
-onto the next condition, which says that if the level of constructor power is
-greater than 5, then detect stairs, traps and doors. If none of these
-conditions are met,(that is, if the level of construction skill is less than 5)
-then we just detect doors and stairs.
-
-You'll note that each of the detection spells includes a DEFAULT_RADIUS
-constant. You could change this to a numerical value, or a variable defined
-somewhere else in your script. eg [[[[[Bdetect_traps(2)] would detect traps
-with a radius of 2 centred on the player.
-
-#####R=== Registering the skill type ===
-
-This is what we do at the end of the file, and is what ties the powers we've
-defined to the action of pressing the 'm' key in game. Once more we're calling
-a special function [[[[[Badd_mkey()] which takes its arguments for a table.
-There are only two keys in this table though which keeps things simple.
-
-#####Badd_mkey
-#####B{
-#####B ["mkey"] = MKEY_CONSTRUCT_POWERS,
-#####B ["fct"] = function()
-#####B execute_magic(constructor_powers)
-#####B energy_use = energy_use + 100;
-#####B end
-#####B}
-
-[[[[[B"mkey"] must be a UNIQUE value > 1000 . Here I've defined it as a
-constant, [[[[[BMKEY_CONSTRUCT_POWERS], which has the value 1004. This value
-we'll call again in the s_info.txt file.
-[[[[[B"fct"] is the function that's called when the user presses the key in the
-'m' menu. So here, it calls the [[[[[Bexecute_magic] function which actually
-displays a list of powers for the user to choose from. The argument it takes is
-the powers it will use (alchemy, mindcraft, etc., or in this case constructor),
-and then the [[[[[Benergy_use] line tells the game to take one game turn to do
-the action.
-
-#####R=== Adding the skill in s_info.txt ===
-
-Take a look in the s_info.txt file, under the Misc section. You'll see,
-
-#####BN:57:Construction
-#####BD:Ability to use constructor powers
-#####BD:Construction powers use strength
-#####BA:1004:Build or knock down stuff
-#####BI:1000
-
-The first line is the index of the skill; again this must be unique. The second
-property is the name of the skill. The [[[[[BD] lines are the lines displayed
-when the skill is highlighted in the skill screen.
-The first entry on the [[[[[BA] line is the value of the [[[[[B"mkey"] we
-defined in the [[[[[Badd_mkey] function in our script. The second entry is the
-display for selecting the construction power in the 'm' menu.
-The [[[[[BI] line is currently unused, but add a 1000 there anyway. That's what
-all the others have so when it's introduced, at least it will affect your
-powers identically to how it affects all the other powers.
-
-If you scroll to the very bottom of the file now, you'll see I've placed the
-skill at the bottom of the Misc branch of the skills tree. I then made a new
-class, constructor, which you can see in p_info.txt.
-
-That is all that is NEEDED when writing a script to add a skill - defining an
-mkey using add_mkey, and defining any powers that are called in the
-[[[[[B"fct"] (generally using [[[[[Badd_magic] ).
-
-And I've added the line
-
-#####Btome_dofile("construc.lua")
-
-in init.lua so the script is loaded on start-up!
-
-Below I'm going to talk in depth about a few other functions that you may find
-useful in your scripting.
-
-#####R=== fire_bolt() and fire_beam() ===
-
-In the last help file we looked at the routine for firing a ball -
-[[[[[Bfire_ball()]. Here's a quick note about beams and bolts...
-[[[[[Bfire_beam()] and [[[[[Bfire_bolt()] take 2 arguments:
-[[[[[B(type, direction, damage)]. So in the dismantle spell we have the
-direction passed from [[[[[Bget_aim_dir()] (the function that asks the player
-for a direction), the type of damage is [[[[[BGF_KILL_TRAP], which as you might
-expect disarms traps. And the damage is only 1 because it's not going to hurt
-monsters, just dismantle traps.
-
-#####R=== set_oppose_elec() ===
-
-OK here's another thing. Wander on down to the sparky_skills spell. After the
-appropriate bolt/ball is fired, we have the line:
-
-#####Bif player.oppose_elec == 0 then
-#####B set_oppose_elec(randint(10) + 20 + get_level(constructor_powers, 20)*3)
-#####Bend
-
-This is the bit that grants temporary resist electricity. We've called the
-function [[[[[Bset_oppose_elec(turns)], which sets the player's resist
-electricity to "on" for the time specified in the argument "turns". We're only
-calling this if the player is not already granted temporary resist electricity,
-and we've linked the number of turns it is active to the level of the
-construction skill. I've limited the maximum value of get_level to 20 in this
-instance. A similar idea can be used for temporarily granting levitation,
-extended infravision, protection against evil, resist fire, stuns, cuts and so
-on and so on. Have a look in player.pkg in the source for a full list....
-
- [[[[[gThis file by fearoffours (fearoffours@moppy.co.uk)]
diff --git a/lib/mods/theme/help/lua_spel.txt b/lib/mods/theme/help/lua_spel.txt
deleted file mode 100644
index aa4a532b..00000000
--- a/lib/mods/theme/help/lua_spel.txt
+++ /dev/null
@@ -1,2150 +0,0 @@
-|||||oy
-
-#####R /----------------------------------------\
-#####R < spell.pkg functions helper file >
-#####R \----------------------------------------/
-
-----------------------------------------------------------------------
-
-#####R=== teleport_player_directed ===
-
-#####GDeclaration
- extern void teleport_player_directed(int rad, int dir);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport player, using a distance and a direction as a rough guide.
- *
- * This function is not at all obsessive about correctness.
- * This function allows teleporting into vaults (!)
- */
-
-#####GDescription
-Teleport a player up to "rad" grids away roughly in "dir" direction.
-
-#####GParameters
-> "rad" must not exceed 200. The distance teleported is a minimum of a
- quarter of "rad".
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-
-----------------------------------------------------------------------
-
-#####R=== teleport_away ===
-
-#####GDeclaration
- extern void teleport_away(int m_idx, int dis);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport a monster, normally up to "dis" grids away.
- *
- * Attempt to move the monster at least "dis/2" grids away.
- *
- * But allow variation to prevent infinite loops.
- */
-
-#####GDescription
-Teleport monster indicated by "m_idx" up to "dis" grids away.
-
-#####GParameters
-> "m_idx" is the index of the monster in m_list[].
-> "dis" must not exceed 200. The distance teleported is a minimum of a
- quarter of "dis".
-
-----------------------------------------------------------------------
-
-#####R=== teleport_player ===
-
-#####GDeclaration
- extern void teleport_player(int dis);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport the player to a location up to "dis" grids away.
- *
- * If no such spaces are readily available, the distance may increase.
- * Try very hard to move the player at least a quarter that distance.
- */
-
-#####GDescription
-Teleport player up to "dis" grids away.
-
-#####GParameters
-> "dis" must not exceed 200. The distance teleported is a minimum of a
- quarter of "dis".
-
-----------------------------------------------------------------------
-
-#####R=== teleport_player_to ===
-
-#####GDeclaration
- extern void teleport_player_to(int ny, int nx);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport player to a grid near the given location
- *
- * This function is slightly obsessive about correctness.
- * This function allows teleporting into vaults (!)
- */
-
-#####GDescription
-Teleport player to a grid near the given location ("ny", "nx"). If
-the location is empty, the player goes there, otherwise they go to
-a grid as close as possible to the location.
-
-#####GParameters
-> "ny" is the y co-ordinate of the location.
-> "nx" is the x co-ordinate of the location.
-
-----------------------------------------------------------------------
-
-#####R=== teleport_monster_to ===
-
-#####GDeclaration
- extern void teleport_monster_to(int m_idx, int ny,
- int nx);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport a monster to a grid near the given location
- *
- * This function is slightly obsessive about correctness.
- */
-
-#####GDescription
-Teleport monster indicated by "m_idx" to a grid near the given
-location ("ny", "nx"). If the location is empty, the monster goes
-there, otherwise they go to a grid as close as possible to the
-location.
-
-#####GParameters
-> "m_idx" is the index of the monster in m_list[].
-> "ny" is the y co-ordinate of the location.
-> "nx" is the x co-ordinate of the location.
-
-----------------------------------------------------------------------
-
-#####R=== teleport_player_level ===
-
-#####GDeclaration
- extern void teleport_player_level(void);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Teleport the player one level up or down (random when legal)
- */
-
-#####GDescription
-Teleport the player one level up or down at random.
-
-----------------------------------------------------------------------
-
-#####R=== recall_player ===
-
-#####GDeclaration
- extern void recall_player(void);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Recall the player to town or dungeon
- */
-
-#####GDescription
-Recall the player to town (if in dungeon) or dungeon (if in town).
-
-----------------------------------------------------------------------
-
-#####R=== take_hit ===
-
-#####GDeclaration
- extern void take_hit(int damage, cptr kb_str);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Decreases players hit points and sets death flag if necessary
- *
- * XXX XXX XXX Invulnerability needs to be changed into a "shield"
- *
- * XXX XXX XXX Hack -- this function allows the user to save (or quit)
- * the game when he dies, since the "You die." message is shown before
- * setting the player to "dead".
- */
-
-#####GDescription
-Reduce the player's current hit points by "damage" points. If the
-player dies, "kb_str" is used to record what the player was killed by
-(see high-score table).
-
-#####GParameters
-> "damage" is the amount of damage.
-> "kb_str" is a string describing what killed the player.
-
-----------------------------------------------------------------------
-
-#####R=== take_sanity_hit ===
-
-#####GDeclaration
- extern void take_sanity_hit(int damage, cptr hit_from);
-
-#####GFile
- spells1.c
-
-#####GComment
-/* Decrease player's sanity. This is a copy of the function above. */
-
-#####GDescription
-Reduce the player's current sanity points by "damage" points. If the
-player dies, "hit_from" is used to record what the player was killed
-by (see high-score table).
-
-#####GParameters
-> "damage" is the amount of damage.
-> "hit_from" is a string describing what killed the player.
-
-----------------------------------------------------------------------
-
-#####R=== project ===
-
-#####GDeclaration
- extern bool project(int who, int rad, int y, int x,
- int dam, int typ, int flg);
-
-#####GFile
- spells1.c
-
-#####GComment
-/*
- * Generic "beam"/"bolt"/"ball" projection routine.
- *
- * Input:
- * who: Index of "source" monster (negative for "player")
- * jk -- -2 for traps, only used with project_jump
- * rad: Radius of explosion (0 = beam/bolt, 1 to 9 = ball)
- * y,x: Target location (or location to travel "towards")
- * dam: Base damage roll to apply to affected monsters (or player)
- * typ: Type of damage to apply to monsters (and objects)
- * flg: Extra bit flags (see PROJECT_xxxx in "defines.h")
- *
- * Return:
- * TRUE if any "effects" of the projection were observed, else FALSE
- *
- * Allows a monster (or player) to project a beam/bolt/ball of a given kind
- * towards a given location (optionally passing over the heads of interposing
- * monsters), and have it do a given amount of damage to the monsters (and
- * optionally objects) within the given radius of the final location.
- *
- * A "bolt" travels from source to target and affects only the target grid.
- * A "beam" travels from source to target, affecting all grids passed through.
- * A "ball" travels from source to the target, exploding at the target, and
- * affecting everything within the given radius of the target location.
- *
- * Traditionally, a "bolt" does not affect anything on the ground, and does
- * not pass over the heads of interposing monsters, much like a traditional
- * missile, and will "stop" abruptly at the "target" even if no monster is
- * positioned there, while a "ball", on the other hand, passes over the heads
- * of monsters between the source and target, and affects everything except
- * the source monster which lies within the final radius, while a "beam"
- * affects every monster between the source and target, except for the casting
- * monster (or player), and rarely affects things on the ground.
- *
- * Two special flags allow us to use this function in special ways, the
- * "PROJECT_HIDE" flag allows us to perform "invisible" projections, while
- * the "PROJECT_JUMP" flag allows us to affect a specific grid, without
- * actually projecting from the source monster (or player).
- *
- * The player will only get "experience" for monsters killed by himself
- * Unique monsters can only be destroyed by attacks from the player
- *
- * Only 256 grids can be affected per projection, limiting the effective
- * "radius" of standard ball attacks to nine units (diameter nineteen).
- *
- * One can project in a given "direction" by combining PROJECT_THRU with small
- * offsets to the initial location (see "line_spell()"), or by calculating
- * "virtual targets" far away from the player.
- *
- * One can also use PROJECT_THRU to send a beam/bolt along an angled path,
- * continuing until it actually hits something (useful for "stone to mud").
- *
- * Bolts and Beams explode INSIDE walls, so that they can destroy doors.
- *
- * Balls must explode BEFORE hitting walls, or they would affect monsters
- * on both sides of a wall. Some bug reports indicate that this is still
- * happening in 2.7.8 for Windows, though it appears to be impossible.
- *
- * We "pre-calculate" the blast area only in part for efficiency.
- * More importantly, this lets us do "explosions" from the "inside" out.
- * This results in a more logical distribution of "blast" treasure.
- * It also produces a better (in my opinion) animation of the explosion.
- * It could be (but is not) used to have the treasure dropped by monsters
- * in the middle of the explosion fall "outwards", and then be damaged by
- * the blast as it spreads outwards towards the treasure drop location.
- *
- * Walls and doors are included in the blast area, so that they can be
- * "burned" or "melted" in later versions.
- *
- * This algorithm is intended to maximise simplicity, not necessarily
- * efficiency, since this function is not a bottleneck in the code.
- *
- * We apply the blast effect from ground zero outwards, in several passes,
- * first affecting features, then objects, then monsters, then the player.
- * This allows walls to be removed before checking the object or monster
- * in the wall, and protects objects which are dropped by monsters killed
- * in the blast, and allows the player to see all affects before he is
- * killed or teleported away. The semantics of this method are open to
- * various interpretations, but they seem to work well in practice.
- *
- * We process the blast area from ground-zero outwards to allow for better
- * distribution of treasure dropped by monsters, and because it provides a
- * pleasing visual effect at low cost.
- *
- * Note that the damage done by "ball" explosions decreases with distance.
- * This decrease is rapid, grids at radius "dist" take "1/dist" damage.
- *
- * Notice the "napalm" effect of "beam" weapons. First they "project" to
- * the target, and then the damage "flows" along this beam of destruction.
- * The damage at every grid is the same as at the "centre" of a "ball"
- * explosion, since the "beam" grids are treated as if they ARE at the
- * centre of a "ball" explosion.
- *
- * Currently, specifying "beam" plus "ball" means that locations which are
- * covered by the initial "beam", and also covered by the final "ball", except
- * for the final grid (the epicentre of the ball), will be "hit twice", once
- * by the initial beam, and once by the exploding ball. For the grid right
- * next to the epicentre, this results in 150% damage being done. The centre
- * does not have this problem, for the same reason the final grid in a "beam"
- * plus "bolt" does not -- it is explicitly removed. Simply removing "beam"
- * grids which are covered by the "ball" will NOT work, as then they will
- * receive LESS damage than they should. Do not combine "beam" with "ball".
- *
- * The array "gy[],gx[]" with current size "grids" is used to hold the
- * collected locations of all grids in the "blast area" plus "beam path".
- *
- * Note the rather complex usage of the "gm[]" array. First, gm[0] is always
- * zero. Second, for N>1, gm[N] is always the index (in gy[],gx[]) of the
- * first blast grid (see above) with radius "N" from the blast centre. Note
- * that only the first gm[1] grids in the blast area thus take full damage.
- * Also, note that gm[rad+1] is always equal to "grids", which is the total
- * number of blast grids.
- *
- * Note that once the projection is complete, (y2,x2) holds the final location
- * of bolts/beams, and the "epicentre" of balls.
- *
- * Note also that "rad" specifies the "inclusive" radius of projection blast,
- * so that a "rad" of "one" actually covers 5 or 9 grids, depending on the
- * implementation of the "distance" function. Also, a bolt can be properly
- * viewed as a "ball" with a "rad" of "zero".
- *
- * Note that if no "target" is reached before the beam/bolt/ball travels the
- * maximum distance allowed (MAX_RANGE), no "blast" will be induced. This
- * may be relevant even for bolts, since they have a "1x1" mini-blast.
- *
- * Note that for consistency, we "pretend" that the bolt actually takes "time"
- * to move from point A to point B, even if the player cannot see part of the
- * projection path. Note that in general, the player will *always* see part
- * of the path, since it either starts at the player or ends on the player.
- *
- * Hack -- we assume that every "projection" is "self-illuminating".
- *
- * Hack -- when only a single monster is affected, we automatically track
- * (and recall) that monster, unless "PROJECT_JUMP" is used.
- *
- * Note that all projections now "explode" at their final destination, even
- * if they were being projected at a more distant destination. This means
- * that "ball" spells will *always* explode.
- *
- * Note that we must call "handle_stuff()" after affecting terrain features
- * in the blast radius, in case the "illumination" of the grid was changed,
- * and "update_view()" and "update_monsters()" need to be called.
- */
-
-#####GDescription
-Generate a beam/bolt/ball starting from "who" with a radius of "rad"
-at target grid "y,x" for "damage" points of "typ" damage. The beam/
-bolt/ball can have various properties as denoted by "flg".
-
-#####GParameters
-> "who" is > 0 (index of monster in m_list[]), < 0 and
- not -100 or -101 (player), -100 or -101 (trap).
-> "rad" is 0 for a beam/bolt and 1-9 for a ball.
-> "y" is the y co-ordinate of the target grid.
-> "x" is the x co-ordinate of the target grid.
-> "dam" is the number of points of damage.
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "flg" is the projection effect
- *****fields.txt*0[PROJECT_fields]
-
-----------------------------------------------------------------------
-
-#####R=== corrupt_player ===
-
-#####GDeclaration
- extern void corrupt_player(void);
-
-#####GFile
- spells1.c
-
-#####GComment
-(none)
-
-#####GDescription
-Swap two of the players stats at random.
-
-----------------------------------------------------------------------
-
-#####R=== grow_trees ===
-
-#####GDeclaration
- extern void grow_trees(int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Grow trees
- */
-
-#####GDescription
-Grow up to (("rad" x "rad") + 11) trees around the player.
-
-#####GParameters
-> "rad" is the radius of the area where trees may grow.
-
-----------------------------------------------------------------------
-
-#####R=== hp_player ===
-
-#####GDeclaration
- extern bool hp_player(int num);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Increase players hit points, notice effects
- */
-
-#####GDescription
-Add "num" points to the player's current hit points. The total can
-not exceed the maximum.
-
-#####GParameters
-> "num" is the number of points to add.
-
-----------------------------------------------------------------------
-
-#####R=== heal_insanity ===
-
-#####GDeclaration
- extern bool heal_insanity(int val);
-
-#####GFile
- spells2.c
-
-#####GComment
-/* Heal insanity. */
-
-#####GDescription
-Add "val" points to the player's current sanity points. The total can
-not exceed the maximum.
-
-#####GParameters
-> "val" is the number of points to add.
-
-----------------------------------------------------------------------
-
-#####R=== warding_glyph ===
-
-#####GDeclaration
- extern void warding_glyph(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Leave a "glyph of warding" which prevents monster movement
- */
-
-#####GDescription
-Place a glyph at the player's location. The location must be bare.
-
-----------------------------------------------------------------------
-
-#####R=== explosive_rune ===
-
-#####GDeclaration
- extern void explosive_rune(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Place a minor glyph (explosive rune) at the player's location. The
-location must be bare.
-
-----------------------------------------------------------------------
-
-#####R=== do_dec_stat ===
-
-#####GDeclaration
- extern bool do_dec_stat(int stat, int mode);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Lose a "point"
- */
-
-#####GDescription
-Attempt to reduce the player's "stat" statistic by a point.
-
-#####GParameters
-> "stat" is the statistic
- *****fields.txt*0[A_fields]
-> "mode" is the type of decrease: temporary, normal, or permanent
- *****fields.txt*0[STAT_DEC_fields]
-
-----------------------------------------------------------------------
-
-#####R=== do_res_stat ===
-
-#####GDeclaration
- extern bool do_res_stat(int stat);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Restore lost "points" in a stat
- */
-
-#####GDescription
-Restore the player's "stat" statistic.
-
-#####GParameters
-> "stat" is the statistic
- *****fields.txt*0[A_fields]
-
-----------------------------------------------------------------------
-
-#####R=== do_inc_stat ===
-
-#####GDeclaration
- extern bool do_inc_stat(int stat);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Gain a "point" in a stat
- */
-
-#####GDescription
-Increase the player's "stat" statistic by a point.
-
-#####GParameters
-> "stat" is the statistic
- *****fields.txt*0[A_fields]
-
-----------------------------------------------------------------------
-
-#####R=== identify_pack ===
-
-#####GDeclaration
- extern void identify_pack(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Identify everything being carried.
- * Done by a potion of "self knowledge".
- */
-
-#####GDescription
-Identify all items in the inventory.
-
-----------------------------------------------------------------------
-
-#####R=== remove_curse ===
-
-#####GDeclaration
- extern bool remove_curse(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Remove most curses
- */
-
-#####GDescription
-Remove all curses except for heavy curses.
-
-----------------------------------------------------------------------
-
-#####R=== remove_all_curse ===
-
-#####GDeclaration
- extern bool remove_all_curse(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Remove all curses
- */
-
-#####GDescription
-Remove all curses including heavy curses.
-
-----------------------------------------------------------------------
-
-#####R=== restore_level ===
-
-#####GDeclaration
- extern bool restore_level(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Restores any drained experience
- */
-
-#####GDescription
-Restore all drained experience points (if any).
-
-----------------------------------------------------------------------
-
-#####R=== self_knowledge ===
-
-#####GDeclaration
- extern void self_knowledge(FILE *fff);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * self-knowledge... idea from nethack. Useful for determining powers and
- * resistances of items. It saves the screen, clears it, then starts listing
- * attributes, a screenful at a time. (There are a LOT of attributes to
- * list. It will probably take 2 or 3 screens for a powerful character whose
- * using several artifacts...) -CFT
- *
- * It is now a lot more efficient. -BEN-
- *
- * See also "identify_fully()".
- *
- * XXX XXX XXX Use the "show_file()" method, perhaps.
- */
-
-#####GDescription
-Show all attributes including racial powers, mutations, and equipment
-effects.
-
-#####GParameters
-> "*ffff" points to a file (write info to file) or is NULL (write info
- to screen).
-
-----------------------------------------------------------------------
-
-#####R=== lose_all_info ===
-
-#####GDeclaration
- extern bool lose_all_info(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Forget everything
- */
-
-#####GDescription
-Forget about objects and the map.
-
-----------------------------------------------------------------------
-
-#####R=== detect_traps ===
-
-#####GDeclaration
- extern bool detect_traps(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all traps on current panel
- */
-
-#####GDescription
-Detect all traps on current panel.
-
-----------------------------------------------------------------------
-
-#####R=== detect_doors ===
-
-#####GDeclaration
- extern bool detect_doors(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all doors on current panel
- */
-
-#####GDescription
-Detect all doors on current panel.
-
-----------------------------------------------------------------------
-
-#####R=== detect_stairs ===
-
-#####GDeclaration
- extern bool detect_stairs(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all stairs on current panel
- */
-
-#####GDescription
-Detect all stairs on current panel.
-
-----------------------------------------------------------------------
-
-#####R=== detect_treasure ===
-
-#####GDeclaration
- extern bool detect_treasure(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect any treasure on the current panel
- */
-
-#####GDescription
-Detect any treasure on the current panel.
-
-----------------------------------------------------------------------
-
-Field: hack_no_detect_message
-Value: FALSE
-
-----------------------------------------------------------------------
-
-#####R=== detect_objects_gold ===
-
-#####GDeclaration
- extern bool detect_objects_gold(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "gold" objects on the current panel
- */
-
-#####GDescription
-Detect all objects with the TV_GOLD flag.
-
-----------------------------------------------------------------------
-
-#####R=== detect_objects_normal ===
-
-#####GDeclaration
- extern bool detect_objects_normal(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "normal" objects on the current panel
- */
-
-#####GDescription
-Detect all objects without the TV_GOLD flag.
-
-----------------------------------------------------------------------
-
-#####R=== detect_objects_magic ===
-
-#####GDeclaration
- extern bool detect_objects_magic(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "magic" objects on the current panel.
- *
- * This will light up all spaces with "magic" items, including artifacts,
- * ego-items, potions, scrolls, books, rods, wands, staves, amulets, rings,
- * and "enchanted" items of the "good" variety.
- *
- * It can probably be argued that this function is now too powerful.
- */
-
-#####GDescription
-Detect all "magic" objects which are artefacts, ego items, or have one
-of the following flags - TV_AMULET, TV_RING, TV_BATERIE, TV_STAFF,
-TV_WAND, TV_ROD, TV_ROD_MAIN, TV_SCROLL, TV_POTION, TV_POTION2,
-TV_VALARIN_BOOK, TV_MAGERY_BOOK, TV_SHADOW_BOOK, TV_CHAOS_BOOK,
-TV_SPIRIT_BOOK, TV_NETHER_BOOK, TV_DAEMON_BOOK, TV_CRUSADE_BOOK,
-TV_SIGALDRY_BOOK, TV_SYMBIOTIC_BOOK, TV_MUSIC_BOOK.
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_normal ===
-
-#####GDeclaration
- extern bool detect_monsters_normal(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "normal" monsters on the current panel
- */
-
-#####GDescription
-Detect all non-invisible monsters (without RF2_INVISIBLE).
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_invis ===
-
-#####GDeclaration
- extern bool detect_monsters_invis(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "invisible" monsters on current panel
- */
-
-#####GDescription
-Detect all invisible monsters (with RF2_INVISIBLE).
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_evil ===
-
-#####GDeclaration
- extern bool detect_monsters_evil(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "evil" monsters on current panel
- */
-
-#####GDescription
-Detect all evil monsters (with RF3_EVIL).
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_good ===
-
-#####GDeclaration
- extern bool detect_monsters_good(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/* Detect good monsters */
-
-#####GDescription
-Detect all good monsters (with RF3_GOOD).
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_xxx ===
-
-#####GDeclaration
- extern bool detect_monsters_xxx(u32b match_flag);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * A "generic" detect monsters routine, tagged to flags3
- */
-
-#####GDescription
-Detect all monsters with "match_flag" flag.
-
-#####GParameters
-> "match_flag" can be any RF3_ flag (see defines.h) but only
- RF3_DEMON, RF3_UNDEAD, RF3_GOOD work.
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_string ===
-
-#####GDeclaration
- extern bool detect_monsters_string(cptr);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all (string) monsters on current panel
- */
-
-#####GDescription
-Detect all monsters whose default monster character matches a
-character pointed to by "cptr".
-
-#####GParameters
-> "cptr" is a pointer to a single character, eg 'Z' for hounds. For
- available characters, see the "symbol" field of the graphics (G)
- line of r_info.txt.
-
-----------------------------------------------------------------------
-
-#####R=== detect_monsters_nonliving ===
-
-#####GDeclaration
- extern bool detect_monsters_nonliving(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect all "nonliving", "undead" or "demonic" monsters on current panel
- */
-
-#####GDescription
-Detect all non-living monsters (with RF3_NONLIVING, RF3_UNDEAD, or
-RF3_DEMON).
-
-----------------------------------------------------------------------
-
-#####R=== detect_all ===
-
-#####GDeclaration
- extern bool detect_all(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Detect everything
- */
-
-#####GDescription
-Detects traps, doors, stairs, treasure, gold objects, normal objects,
-invisible monsters, normal (visible) monsters.
-
-----------------------------------------------------------------------
-
-#####R=== stair_creation ===
-
-#####GDeclaration
- extern void stair_creation(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Create stairs at the player location
- */
-
-#####GDescription
-Create stairs at the player location. This is not allowed if the grid
-is not empty, the player is not in a dungeon, the player is on a
-special level, the player is in an arena or quest. If the player is
-in the town or wilderness the stairs will go down. If the player is
-on a quest level or at the bottom of a dungeon, the stairs will go up.
-Otherwise there is an even chance the stairs will go up or down.
-
-----------------------------------------------------------------------
-
-#####R=== wall_stone ===
-
-#####GDeclaration
- extern bool wall_stone(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Create a stone wall on the player's grid. This function uses the
-project() function to create the stone wall. Apparently zero can be
-used as the "who" parameter for the player. See details for the
-project() function elsewhere in this document.
-
-----------------------------------------------------------------------
-
-#####R=== create_artifact ===
-
-#####GDeclaration
- extern bool create_artifact(object_type *o_ptr,
- bool a_scroll, bool get_name);
-
-#####GFile
- randart.c
-
-#####GComment
-(none)
-
-#####GDescription
-Create an artifact from object "*optr".
-
-#####GParameters
-> "*optr* is a pointer to an object
-> "a_scroll" is true if the artifact is created by reading a scroll
-> "get_name" is true if the artifact is to be named by the player (if
- a_scroll is true) or created randomly (a_scroll is false), or false
- if an inscription is used.
-
-----------------------------------------------------------------------
-
-#####R=== ident_spell ===
-
-#####GDeclaration
- extern bool ident_spell(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Identify an object in the inventory (or on the floor)
- * This routine does *not* automatically combine objects.
- * Returns TRUE if something was identified, else FALSE.
- */
-
-#####GDescription
-Identify an object in the inventory (or on the floor).
-
-----------------------------------------------------------------------
-
-#####R=== identify_fully ===
-
-#####GDeclaration
- extern bool identify_fully(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Fully "identify" an object in the inventory -BEN-
- * This routine returns TRUE if an item was identified.
- */
-
-#####GDescription
-Fully "identify" an object in the inventory (or on the floor).
-
-----------------------------------------------------------------------
-
-#####R=== recharge ===
-
-#####GDeclaration
- extern bool recharge(int num);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Recharge a wand/staff/rod from the pack or on the floor.
- * This function has been rewritten in Oangband. -LM-
- *
- * Mage -- Recharge I --> recharge(90)
- * Mage -- Recharge II --> recharge(150)
- * Mage -- Recharge III --> recharge(220)
- *
- * Priest or Necromancer -- Recharge --> recharge(140)
- *
- * Scroll of recharging --> recharge(130)
- * Scroll of *recharging* --> recharge(200)
- *
- * It is harder to recharge high level, and highly charged wands,
- * staffs, and rods. The more wands in a stack, the more easily and
- * strongly they recharge. Staffs, however, each get fewer charges if
- * stacked.
- *
- * XXX XXX XXX Beware of "sliding index errors".
- */
-
-#####GDescription
-Recharge an object in the inventory (or on the floor) with "num"
-power.
-
-#####GParameters
-> "num" is the power used in recharging. It is compared to the
- object's level to determine whether the item is recharged
- successfully or destroyed. If it is recharged, it also determines
- how many charges are added, or how much recharge time is reduced.
-
-----------------------------------------------------------------------
-
-#####R=== aggravate_monsters ===
-
-#####GDeclaration
- extern void aggravate_monsters(int who);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Wake up all monsters, and speed up "los" monsters.
- */
-
-#####GDescription
-Aggravate monsters, originating from "who".
-
-#####GParameters
-> "who" is the index of monster in m_list[] (1 if it is the player)
- which triggers the aggravation;
-
-----------------------------------------------------------------------
-
-#####R=== genocide ===
-
-#####GDeclaration
- extern bool genocide(bool player_cast);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Genocide a monster race.
-
-#####GParameters
-> "player_cast" is true if the player cast the spell so the player can
- take damage.
-
-----------------------------------------------------------------------
-
-#####R=== mass_genocide ===
-
-#####GDeclaration
- extern bool mass_genocide(bool player_cast);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Delete all nearby (non-unique) monsters
- */
-
-#####GDescription
-Delete all nearby (non-unique) monsters.
-
-#####GParameters
-> "player_cast" is true if the player cast the spell so the player can
- take damage.
-
-----------------------------------------------------------------------
-
-#####R=== probing ===
-
-#####GDeclaration
- extern bool probing(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Probe nearby monsters
- */
-
-#####GDescription
-Probe all nearby monsters.
-
-----------------------------------------------------------------------
-
-#####R=== banish_evil ===
-
-#####GDeclaration
- extern bool banish_evil(int dist);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Banish evil monsters
- */
-
-#####GDescription
-Banish nearby evil monsters doing "dist" points of GF_AWAY_EVIL
-damage.
-
-#####GParameters
-> "dist" is the amount of damage done to each monster.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_evil ===
-
-#####GDeclaration
- extern bool dispel_evil(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel evil monsters
- */
-
-#####GDescription
-Dispel nearby evil monsters doing "dam" points of GF_DISP_EVIL
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_good ===
-
-#####GDeclaration
- extern bool dispel_good(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel good monsters
- */
-
-#####GDescription
-Dispel nearby good monsters doing "dam" points of GF_DISP_GOOD
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_undead ===
-
-#####GDeclaration
- extern bool dispel_undead(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel undead monsters
- */
-
-#####GDescription
-Dispel nearby undead monsters doing "dam" points of GF_DISP_UNDEAD
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_monsters ===
-
-#####GDeclaration
- extern bool dispel_monsters(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel all monsters
- */
-
-#####GDescription
-Dispel all nearby monsters doing "dam" points of GF_DISP_ALL
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_living ===
-
-#####GDeclaration
- extern bool dispel_living(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel 'living' monsters
- */
-
-#####GDescription
-Dispel nearby living monsters doing "dam" points of GF_DISP_LIVING
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== dispel_demons ===
-
-#####GDeclaration
- extern bool dispel_demons(int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Dispel demons
- */
-
-#####GDescription
-Dispel nearby demon monsters doing "dam" points of GF_DISP_DEMON
-damage.
-
-#####GParameters
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== turn_undead ===
-
-#####GDeclaration
- extern bool turn_undead(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Turn undead
- */
-
-#####GDescription
-Turn nearby undead monsters doing a point of GF_TURN_UNDEAD damage for
-each player level.
-
-----------------------------------------------------------------------
-
-#####R=== wipe ===
-
-#####GDeclaration
- extern void wipe(int y1, int x1, int r);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Wipe -- Empties a part of the dungeon
- */
-
-#####GDescription
-Delete monsters and objects from an area of the dungeon centred at
-grid "y1,x1" for a radius "r". This does not work on special levels or
-quests. The player may be blinded. The player forgets the affected
-area and it becomes dark. All grids become floor.
-
-#####GParameters
-> "y1" is the y-coordinate of the wipe's origin.
-> "x1" is the x-coordinate of the wipe's origin.
-> "r" is the radius of the wipe.
-
-----------------------------------------------------------------------
-
-#####R=== destroy_area ===
-
-#####GDeclaration
- extern void destroy_area(int y1, int x1, int r,
- bool full);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * The spell of destruction
- *
- * This spell "deletes" monsters (instead of "killing" them).
- *
- * Later we may use one function for both "destruction" and
- * "earthquake" by using the "full" to select "destruction".
- */
-
-#####GDescription
-Delete monsters and objects from an area of the dungeon centred at
-grid "y1,x1" for a radius "r". This does not work on special levels or
-quests. The epicentre is NOT affected. The player may be blinded. The
-player forgets the affected area and it becomes dark. The grids can
-become granite, quartz, magma, or floor.
-
-#####GParameters
-> "y1" is the y-coordinate of the destruction's origin.
-> "x1" is the x-coordinate of the destruction's origin.
-> "r" is the radius of the destruction.
-> "full" is currently unused.
-
-----------------------------------------------------------------------
-
-#####R=== earthquake ===
-
-#####GDeclaration
- extern void earthquake(int cy, int cx, int r);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Induce an "earthquake" of the given radius at the given location.
- *
- * This will turn some walls into floors and some floors into walls.
- *
- * The player will take damage and "jump" into a safe grid if possible,
- * otherwise, he will "tunnel" through the rubble instantaneously.
- *
- * Monsters will take damage, and "jump" into a safe grid if possible,
- * otherwise they will be "buried" in the rubble, disappearing from
- * the level in the same way that they do when genocided.
- *
- * Note that thus the player and monsters (except eaters of walls and
- * passers through walls) will never occupy the same grid as a wall.
- * Note that as of now (2.7.8) no monster may occupy a "wall" grid, even
- * for a single turn, unless that monster can pass_walls or kill_walls.
- * This has allowed massive simplification of the "monster" code.
- */
-
-#####GDescription
-Create an earthquake centred on grid "cy,cx" with a radius of "r".
-This does not work on quest levels. The epicentre is NOT affected.
-Only about 15% of the grids are affected. The player takes 300 points
-of damage if they can't be moved to a safe grid, otherwise damage is
-from 10 to 40 points. The player forgets the affected area and it
-becomes dark. The grids can become granite, quartz, magma, or floor.
-
-#####GParameters
-Parameters:
-> "cy" is the y-coordinate of the earthquake origin.
-> "cx" is the x-coordinate of the earthquake origin.
-> "r" is the radius of the earthquake.
-
-----------------------------------------------------------------------
-
-#####R=== map_area ===
-
-#####GDeclaration
- extern void map_area(void);
-
-#####GFile
- cave.c
-
-#####GComment
-/*
- * Hack -- map the current panel (plus some) ala "magic mapping"
- */
-
-#####GDescription
-Map the current panel plus up to 10 grids up and down, and up to 20
-grids left and right.
-
-----------------------------------------------------------------------
-
-#####R=== wiz_lite ===
-
-#####GDeclaration
- extern void wiz_lite(void);
-
-#####GFile
- cave.c
-
-#####GComment
-/*
- * Light up the dungeon using "clairvoyance"
- *
- * This function "illuminates" every grid in the dungeon, memorises all
- * "objects", memorises all grids as with magic mapping, and, under the
- * standard option settings (view_perma_grids but not view_torch_grids)
- * memorises all floor grids too.
- *
- * Note that if "view_perma_grids" is not set, we do not memorise floor
- * grids, since this would defeat the purpose of "view_perma_grids", not
- * that anyone seems to play without this option.
- *
- * Note that if "view_torch_grids" is set, we do not memorise floor grids,
- * since this would prevent the use of "view_torch_grids" as a method to
- * keep track of what grids have been observed directly.
- */
-
-#####GDescription
-Light up the entire dungeon and show all monsters and objects.
-
-----------------------------------------------------------------------
-
-#####R=== wiz_lite_extra ===
-
-#####GDeclaration
- extern void wiz_lite_extra(void);
-
-#####GFile
- cave.c
-
-#####GComment
-(none)
-
-#####GDescription
-Light up the entire dungeon and show all monsters and objects. All
-squares are lit and remembered.
-
-----------------------------------------------------------------------
-
-#####R=== wiz_dark ===
-
-#####GDeclaration
- extern void wiz_dark(void);
-
-#####GFile
- cave.c
-
-#####GComment
-/*
- * Forget the dungeon map (ala "Thinking of Maud...").
- */
-
-#####GDescription
-Forget all grids and objects. All grids become dark.
-
-----------------------------------------------------------------------
-
-#####R=== lite_room ===
-
-#####GDeclaration
- extern void lite_room(int y1, int x1);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Illuminate any room containing the given location.
- */
-
-#####GDescription
-Light up the room (if any) of grid "y1,x1".
-
-#####GParameters
-> "y1" is the y-coordinate of the grid.
-> "x1" is the x-coordinate of the grid.
-
-----------------------------------------------------------------------
-
-#####R=== unlite_room ===
-
-#####GDeclaration
- extern void unlite_room(int y1, int x1);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Darken all rooms containing the given location
- */
-
-#####GDescription
-Darken all rooms (if any) of grid "y1,x1".
-
-#####GParameters
-> "y1" is the y-coordinate of the grid.
-> "x1" is the x-coordinate of the grid.
-
-----------------------------------------------------------------------
-
-#####R=== lite_area ===
-
-#####GDeclaration
- extern bool lite_area(int dam, int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Hack -- call light around the player
- * Affect all monsters in the projection radius
- */
-
-#####GDescription
-Light up the room (if any) of the player's grid. Monsters take "dam"
-points of GF_LITE_WEAK damage if they are within "r" grids of the
-player.
-
-#####GParameters
-> "dam" is the number of points of damage.
-> "rad" is the radius of the effect of the damage.
-
-----------------------------------------------------------------------
-
-#####R=== unlite_area ===
-
-#####GDeclaration
- extern bool unlite_area(int dam, int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Hack -- call darkness around the player
- * Affect all monsters in the projection radius
- */
-
-#####GDescription
-Darken the room (if any) of the player's grid. Monsters take "dam"
-points of GF_DARK_WEAK damage if they are within "r" grids of the
-player.
-
-#####GParameters
-> "dam" is the number of points of damage.
-> "rad" is the radius of the effect of the damage.
-
-----------------------------------------------------------------------
-
-#####R=== fire_ball_beam ===
-
-#####GDeclaration
- extern bool fire_ball_beam(int typ, int dir, int dam,
- int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a ball-beamed spell
- * Stop if we hit a monster, act as a "ball"
- * Allow "target" mode to pass over monsters
- * Affect grids, objects, and monsters
- */
-
-#####GDescription
-Cast a ball-beamed spell of type "typ" in direction "dir" for damage
-"dam" points with a radius of "rad" grids.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-> "rad" is the radius of the effect of the damage (must be <= 16).
-
-----------------------------------------------------------------------
-
-#####R=== fire_ball ===
-
-#####GDeclaration
- extern bool fire_ball(int typ, int dir, int dam, int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a ball spell
- * Stop if we hit a monster, act as a "ball"
- * Allow "target" mode to pass over monsters
- * Affect grids, objects, and monsters
- */
-
-#####GDescription
-Cast a ball spell of type "typ" in direction "dir" for "dam" points of
-damage. The ball has a radius of "rad" grids.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-> "rad" is the radius of the effect of the damage (must be <= 16).
-
-----------------------------------------------------------------------
-
-#####R=== fire_bolt ===
-
-#####GDeclaration
- extern bool fire_bolt(int typ, int dir, int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a bolt spell
- * Stop if we hit a monster, as a "bolt"
- * Affect monsters (not grids or objects)
- */
-
-#####GDescription
-Cast a bolt spell of type "typ" in direction "dir" for "dam" points of
-damage.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== fire_beam ===
-
-#####GDeclaration
- extern bool fire_beam(int typ, int dir, int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a beam spell
- * Pass through monsters, as a "beam"
- * Affect monsters (not grids or objects)
- */
-
-#####GDescription
-Cast a beam spell of type "typ" in direction "dir" for "dam" points of
-damage.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== fire_druid_ball ===
-
-#####GDeclaration
- extern bool fire_druid_ball(int typ, int dir, int dam,
- int rad);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a druidic ball spell
- * Stop if we hit a monster, act as a "ball"
- * Allow "target" mode to pass over monsters
- * Affect grids, objects, and monsters
- */
-
-#####GDescription
-Cast a ball spell of type "typ" in direction "dir" for "dam" points of
-damage. The ball has a radius of "rad" grids. The spell follows a mana
-path.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-> "rad" is the radius of the effect of the damage (must be <= 16).
-
-----------------------------------------------------------------------
-
-#####R=== fire_druid_bolt ===
-
-#####GDeclaration
- extern bool fire_druid_bolt(int typ, int dir, int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a druidic bolt spell
- * Stop if we hit a monster, as a "bolt"
- * Affect monsters (not grids or objects)
- */
-
-#####GDescription
-Cast a bolt spell of type "typ" in direction "dir" for "dam" points of
-damage. The spell follows a mana path.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== fire_druid_beam ===
-
-#####GDeclaration
- extern bool fire_druid_beam(int typ, int dir, int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a druidistic beam spell
- * Pass through monsters, as a "beam"
- * Affect monsters (not grids or objects)
- */
-
-#####GDescription
-Cast a beam spell of type "typ" in direction "dir" for "dam" points of
-damage. The spell follows a mana path.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== fire_bolt_or_beam ===
-
-#####GDeclaration
- extern bool fire_bolt_or_beam(int prob, int typ, int dir,
- int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Cast a bolt spell, or rarely, a beam spell
- */
-
-#####GDescription
-Cast a beam (chance of "prob" in 100) or bolt spell of type "typ" in
-direction "dir" for "dam" points of damage.
-
-#####GParameters
-> "prob" is the number of times out of 100 that the bolt will actually
- be a beam. Obviously this value should range from 1 to 99 (0 will
- always give a beam, 100 or higher will always give a beam. There are
- separate functions for these cases).
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-#####R=== alchemy ===
-
-#####GDeclaration
- extern bool alchemy(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-/* Turns an object into gold, gain some of its value in a shop */
-
-#####GDescription
-The player selects an object (and quantity if it applies) from the
-inventory or the floor and attempts to turn it into gold. If the
-price of the item is < 0 then the player gains nothing (fool's gold),
-otherwise the player gets a third of the price in gold. Artifacts are
-not affected.
-
-----------------------------------------------------------------------
-
-#####R=== alter_reality ===
-
-#####GDeclaration
- extern void alter_reality(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-The player leaves the level immediately.
-
-----------------------------------------------------------------------
-
-#####R=== teleport_swap ===
-
-#####GDeclaration
- extern void teleport_swap(int dir);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Player swaps places with target in direction "dir". The target must be
-a monster. It will not work if the space-time continuum can not be
-disrupted or if the monster resists teleportation.
-
-----------------------------------------------------------------------
-
-#####R=== project_meteor ===
-
-#####GDeclaration
- extern void project_meteor(int radius, int typ, int dam,
- u32b flg);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Apply a "project()" a la meteor shower
- */
-
-#####GDescription
-Generate between "rad" and "rad" x 2 ball spells of type "typ" for
-"dam" points of damage. The ball can have various properties as
-denoted by "flg".
-
-#####GParameters
-> "rad" is the minimum number of balls created. "rad" + randint("rad")
- balls are created. Each ball has a radius of 2 grids. Each target
- grid is within 5 grids of the player.
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dam" is the number of points of damage.
-> "flg" is the projection effect
- *****fields.txt*0[PROJECT_fields]
-
-----------------------------------------------------------------------
-
-#####R=== passwall ===
-
-#####GDeclaration
- extern bool passwall(int dir, bool safe);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Send the player shooting through walls in the given direction until
- * they reach a non-wall space, or a monster, or a permanent wall.
- */
-
-#####GDescription
-Move the player through walls in direction "dir". if "safe" then the
-player can not end up in a wall - if they do, the wall is replaced by
-a floor. This does not work in the wilderness, on quest levels, or if
-teleport is not allowed. Stopping on monsters or inside vaults is not
-allowed.
-
-#####GParameters
-> "dir" must be from 0 to 9. It can not be 5.
- *****fields.txt*0[direction]
-> "safe" must be true if the player is not to be trapped in a wall
- when the movement is finished.
-
-----------------------------------------------------------------------
-
-#####R=== project_hook ===
-
-#####GDeclaration
- extern bool project_hook(int typ, int dir, int dam,
- int flg);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Hack -- apply a "projection()" in a direction (or at the target)
- */
-
-#####GDescription
-Generate a beam/bolt of type "typ" in direction "dir" (or at a target)
-for "dam" points of damage. The beam/bolt can have various properties
-as denoted by "flg".
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dir" must be from 0 to 9. 5 means use the current target.
- *****fields.txt*0[direction]
-> "dam" is the number of points of damage.
-> "flg" is the projection effect
- *****fields.txt*0[PROJECT_fields]
-
-----------------------------------------------------------------------
-
-#####R=== reset_recall ===
-
-#####GDeclaration
- extern bool reset_recall(void);
-
-#####GFile
- spells2.c
-
-#####GComment
-(none)
-
-#####GDescription
-Ask the player for a dungeon and appropriate level within the dungeon.
-The player can not specify a dungeon they have not gone to yet. If the
-player chooses levels 99 or 100, the level is set to 98.
-
-----------------------------------------------------------------------
-
-#####R=== get_aim_dir ===
-
-#####GDeclaration
- extern bool get_aim_dir(int *dp = 0);
-
-#####GFile
- xtra2.c
-
-#####GComment
-/*
- * Get an "aiming direction" from the user.
- *
- * The "dir" is loaded with 1,2,3,4,6,7,8,9 for "actual direction", and
- * "0" for "current target", and "-1" for "entry aborted".
- *
- * Note that "Force Target", if set, will pre-empt user interaction,
- * if there is a usable target already set.
- *
- * Note that confusion over-rides any (explicit?) user choice.
- */
-
-#####GDescription
-Get an aiming direction from the user and store it in "dp". A target
-can be selected. If the player is confused, the direction will be
-random.
-
-#####GParameters
-> "dp" = player direction.
-
-----------------------------------------------------------------------
-
-#####R=== project_hack ===
-
-#####GDeclaration
- extern bool project_hack(int typ, int dam);
-
-#####GFile
- spells2.c
-
-#####GComment
-/*
- * Apply a "project()" directly to all viewable monsters
- *
- * Note that affected monsters are NOT auto-tracked by this usage.
- */
-
-#####GDescription
-Generate beam/bolt spells of type "typ" for "dam" points of damage to
-all viewable monsters in line of site.
-
-#####GParameters
-> "typ" is the type of damage
- *****fields.txt*0[GF_fields]
-> "dam" is the number of points of damage.
-
-----------------------------------------------------------------------
-
-
-Back to the *****lua.hlp*0[lua help index] .
-
- [[[[[gThis file by Chris Hadgis]
diff --git a/lib/mods/theme/help/lua_util.txt b/lib/mods/theme/help/lua_util.txt
deleted file mode 100644
index 8886a2b4..00000000
--- a/lib/mods/theme/help/lua_util.txt
+++ /dev/null
@@ -1,898 +0,0 @@
-|||||oy
-
-#####R /----------------------------------------\
-#####R < util.pkg functions helper file >
-#####R \----------------------------------------/
-
-----------------------------------------------------------------------
-
-#####R=== bst ===
-
-#####GDeclaration
- s32b bst(s32b what, s32b t);
-
-#####GFile
- util.c
-
-#####GComment
-/*
- * Break scalar time
- */
-
-#####GDescription
-Return the minute, hour, day, or year for turn "t". One turn takes 7.5
-seconds.
-
-#####GParameters
-> "what" is the unit to be returned and must be one of
- MINUTE (number of turns per minute, which is 8)
- HOUR (number of turns per hour, which is 480)
- DAY (number of turns per day, which is 11,520)
- YEAR (number of turns per year, which is 4,204,800)
-> "t" is the number of turns.
-
-----------------------------------------------------------------------
-
-#####R=== path_build ===
-
-#####GDeclaration
- errr path_build(char *buf, int max, cptr path, cptr file);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Create a new path by appending a file (or directory) to a path
-*
-* This requires no special processing on simple machines, except
-* for verifying the size of the filename, but note the ability to
-* bypass the given "path" with certain special file-names.
-*
-* Note that the "file" may actually be a "sub-path", including
-* a path and a file.
-*
-* Note that this function yields a path which must be "parsed"
-* using the "parse" function above.
-*/
-
-#####GDescription
-Append file "file" to path "path" and return the result in "buf". The
-length of "buf" is a maximum of "max" characters. If "file" starts
-with '~' then return "file". If "file" starts with the path separator
-and the path separator is not blank then return "file". If there is no
-path then return "file". Otherwise return "path" + path separator +
-"file". The path separator is defined in "H-config.h".
-
-#####GParameters
-> "buf" contains the new path.
-> "max" is the maximum number of characters allowed in "buf".
-> "path" is the original path.
-> "file" is the original file.
-
-----------------------------------------------------------------------
-
-#####R=== move_cursor ===
-
-#####GDeclaration
- void move_cursor(int row, int col);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Move the cursor
-*/
-
-#####GDescription
-Move the cursor to row "row" and column "col".
-
-#####GParameters
-> "row" is the row the cursor is to be moved to.
-> "col" is the column the cursor is to be moved to.
-
-----------------------------------------------------------------------
-
-#####R=== inkey ===
-
-#####GDeclaration
- char inkey(void);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Get a keypress from the user.
-*
-* This function recognises a few "global parameters". These are variables
-* which, if set to TRUE before calling this function, will have an effect
-* on this function, and which are always reset to FALSE by this function
-* before this function returns. Thus they function just like normal
-* parameters, except that most calls to this function can ignore them.
-*
-* If "inkey_xtra" is TRUE, then all pending keypresses will be flushed,
-* and any macro processing in progress will be aborted. This flag is
-* set by the "flush()" function, which does not actually flush anything
-* itself, but rather, triggers delayed input flushing via "inkey_xtra".
-*
-* If "inkey_scan" is TRUE, then we will immediately return "zero" if no
-* keypress is available, instead of waiting for a keypress.
-*
-* If "inkey_base" is TRUE, then all macro processing will be bypassed.
-* If "inkey_base" and "inkey_scan" are both TRUE, then this function will
-* not return immediately, but will wait for a keypress for as long as the
-* normal macro matching code would, allowing the direct entry of macro
-* triggers. The "inkey_base" flag is extremely dangerous!
-*
-* If "inkey_flag" is TRUE, then we will assume that we are waiting for a
-* normal command, and we will only show the cursor if "hilite_player" is
-* TRUE (or if the player is in a store), instead of always showing the
-* cursor. The various "main-xxx.c" files should avoid saving the game
-* in response to a "menu item" request unless "inkey_flag" is TRUE, to
-* prevent savefile corruption.
-*
-* If we are waiting for a keypress, and no keypress is ready, then we will
-* refresh (once) the window which was active when this function was called.
-*
-* Note that "back-quote" is automatically converted into "escape" for
-* convenience on machines with no "escape" key. This is done after the
-* macro matching, so the user can still make a macro for "backquote".
-*
-* Note the special handling of "ascii 30" (ctrl-caret, aka ctrl-shift-six)
-* and "ascii 31" (ctrl-underscore, aka ctrl-shift-minus), which are used to
-* provide support for simple keyboard "macros". These keys are so strange
-* that their loss as normal keys will probably be noticed by nobody. The
-* "ascii 30" key is used to indicate the "end" of a macro action, which
-* allows recursive macros to be avoided. The "ascii 31" key is used by
-* some of the "main-xxx.c" files to introduce macro trigger sequences.
-*
-* Hack -- we use "ascii 29" (ctrl-right-bracket) as a special "magic" key,
-* which can be used to give a variety of "sub-commands" which can be used
-* any time. These sub-commands could include commands to take a picture of
-* the current screen, to start/stop recording a macro action, etc.
-*
-* If "angband_term[0]" is not active, we will make it active during this
-* function, so that the various "main-xxx.c" files can assume that input
-* is only requested (via "Term_inkey()") when "angband_term[0]" is active.
-*
-* Mega-Hack -- This function is used as the entry point for clearing the
-* "signal_count" variable, and of the "character_saved" variable.
-*
-* Hack -- Note the use of "inkey_next" to allow "keymaps" to be processed.
-*
-* Mega-Hack -- Note the use of "inkey_hack" to allow the "Borg" to steal
-* control of the keyboard from the user.
-*/
-
-#####GDescription
-Get a keypress from the user.
-
-----------------------------------------------------------------------
-
-#####R=== cmsg_print ===
-
-#####GDeclaration
- void cmsg_print(byte color, cptr msg);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Output a message to the top line of the screen.
-*
-* Break long messages into multiple pieces (40-72 chars).
-*
-* Allow multiple short messages to "share" the top line.
-*
-* Prompt the user to make sure he has a chance to read them.
-*
-* These messages are memorised for later reference (see above).
-*
-* We could do "Term_fresh()" to provide "flicker" if needed.
-*
-* The global "msg_flag" variable can be cleared to tell us to
-* "erase" any "pending" messages still on the screen.
-*
-* XXX XXX XXX Note that we must be very careful about using the
-* "msg_print()" functions without explicitly calling the special
-* "msg_print(NULL)" function, since this may result in the loss
-* of information if the screen is cleared, or if anything is
-* displayed on the top line.
-*
-* XXX XXX XXX Note that "msg_print(NULL)" will clear the top line
-* even if no messages are pending. This is probably a hack.
-*/
-
-#####GDescription
-In color "color", output message "msg" to the top line of the screen.
-If the message is blank or has more than 1000 characters, nothing is
-printed. Long messages are split after the 40th character and before
-the 72nd character.
-
-#####GParameters
-> "color" is the color of the message.
- *****fields.txt*0[colors]
-> "msg" is the message.
-
-----------------------------------------------------------------------
-
-#####R=== msg_print ===
-
-#####GDeclaration
- void msg_print(cptr msg);
-
-#####GFile
- util.c
-
-#####GComment
-/* Hack -- for compatibility and easy sake */
-
-#####GDescription
-Print message "msg" in white (see cmsg_print() above).
-
-#####GParameters
-> "msg" is the message.
-
-----------------------------------------------------------------------
-
-#####R=== screen_save ===
-
-#####GDeclaration
- void screen_save(void);
-
-#####GFile
- util.c
-
-#####GComment
-/*
- * Save the screen, and increase the "icky" depth.
- *
- * This function must match exactly one call to "screen_load()".
- */
-
-#####GDescription
-Save a screen shot.
-
-----------------------------------------------------------------------
-
-#####R=== screen_load ===
-
-#####GDeclaration
- void screen_load(void);
-
-#####GFile
- util.c
-
-#####GComment
-/*
- * Load the screen, and decrease the "icky" depth.
- *
- * This function must match exactly one call to "screen_save()".
- */
-
-#####GDescription
-Load a previously saved screen shot.
-
-----------------------------------------------------------------------
-
-#####R=== c_put_str ===
-
-#####GDeclaration
- void c_put_str(byte attr, cptr str, int row, int col);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Display a string on the screen using an attribute.
-*
-* At the given location, using the given attribute, if allowed,
-* add the given string. Do not clear the line.
-*/
-
-#####GDescription
-Put string "str" at row "row" and column "col" with attribute "attr".
-
-#####GParameters
-> "attr" is the color of the message.
- *****fields.txt*0[colors]
-> "msg" is the message.
-> "row" is the row the message is to be printed at.
-> "col" is the column the message is to be printed at.
-
-----------------------------------------------------------------------
-
-#####R=== c_prt ===
-
-#####GDeclaration
- void c_prt(byte attr, cptr str, int row, int col);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Display a string on the screen using an attribute, and clear
-* to the end of the line.
-*/
-
-#####GDescription
-Clear row "row" from column "col". Put string "str" at "row", "col"
-with attribute "attr".
-
-#####GParameters
-> "attr" is the color of the message.
- *****fields.txt*0[colors]
-> "msg" is the message.
-> "row" is the row the message is to be printed at.
-> "col" is the column the message is to be printed at.
-
-----------------------------------------------------------------------
-
-#####R=== clear_from ===
-
-#####GDeclaration
- void clear_from(int row);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Clear part of the screen
-*/
-
-#####GDescription
-Clear the screen from row "row" onwards.
-
-#####GParameters
-> "row" is the first row of the screen to be cleared.
-
-----------------------------------------------------------------------
-
-#####R=== askfor_aux ===
-
-#####GDeclaration
- bool askfor_aux(char *buf, int len);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Get some input at the cursor location.
-* Assume the buffer is initialized to a default string.
-* Note that this string is often "empty" (see below).
-* The default buffer is displayed in yellow until cleared.
-* Pressing RETURN right away accepts the default entry.
-* Normal chars clear the default and append the char.
-* Backspace clears the default or deletes the final char.
-* ESCAPE clears the buffer and the window and returns FALSE.
-* RETURN accepts the current buffer contents and returns TRUE.
-*/
-
-#####GDescription
-Get string "buf" from the screen. "buf" is to be no more than "len"
-bytes. The string starts at the current cursor position. The length
-can not exceed the number of bytes from the cursor to the end of the
-line. Accept user input until the escape or return key is pressed.
-
-#####GParameters
-> "buf" is the string returned from the screen.
-> "len" is the length of the string. If it is <1 it is forced to 1.
-
-----------------------------------------------------------------------
-
-#####R=== get_string ===
-
-#####GDeclaration
- bool get_string(cptr prompt, char *buf, int len);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Get a string from the user
-*
-* The "prompt" should take the form "Prompt: "
-*
-* Note that the initial contents of the string is used as
-* the default response, so be sure to "clear" it if needed.
-*
-* We clear the input, and return FALSE, on "ESCAPE".
-*/
-
-#####GDescription
-Print prompt "prompt" at the top-left corner of the screen and return
-response "buf" which will have a maximum length "length". If ESCAPE
-is entered, the function returns FALSE, otherwise it returns TRUE.
-
-#####GParameters
-> "prompt" is the prompt for input.
-> "buf" is the returned response.
-> "len" is the maximum length of the string.
-
-----------------------------------------------------------------------
-
-#####R=== get_check ===
-
-#####GDeclaration
- bool get_check(cptr prompt);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Verify something with the user
-*
-* The "prompt" should take the form "Query? "
-*
-* Note that "[y/n]" is appended to the prompt.
-*/
-
-#####GDescription
-Ask the user question "prompt" which requires a yes/no answer. The
-prompt appears in the top-left corner of the screen. A response of
-'Y' (either case) returns TRUE. A response of 'N' (either case) or
-ESCAPE returns FALSE.
-
-#####GParameters
-> "prompt" is the question asked. It has a maximum length of 70
- characters.
-
-----------------------------------------------------------------------
-
-#####R=== get_com_lua ===
-
-#####GDeclaration
- bool get_com_lua @ get_com(cptr promtp, int *com);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Prompts for a keypress
-*
-* The "prompt" should take the form "Command: "
-*
-* Returns TRUE unless the character is "Escape"
-*/
-
-#####GDescription
-Ask the user for command "prompt" and return the key press "com". A
-response of ESCAPE returns FALSE. All other responses return TRUE.
-
-#####GParameters
-> "prompt" is the prompt for the key press.
-> "com" is the returned key press.
-
-----------------------------------------------------------------------
-
-#####R=== get_quantity ===
-
-#####GDeclaration
- s32b get_quantity(cptr prompt, s32b max);
-
-#####GFile
- util.c
-
-#####GComment
-/*
-* Request a "quantity" from the user
-*
-* Hack -- allow "command_arg" to specify a quantity
-*/
-
-#####GDescription
-Ask the user for quantity "prompt" of maximum value "max" and return
-a quantity. If the user quantity is higher than the maximum then the
-maximum is returned. If the response is a letter then the maximum is
-returned. If the user quantity is negative then zero is returned.
-
-#####GParameters
-> "prompt" is the prompt for a quantity.
-> "max" is the maximum value allowed.
-
-----------------------------------------------------------------------
-
-#####R=== test_monster_name ===
-
-#####GDeclaration
- int test_monster_name(cptr name);
-
-#####GFile
- util.c
-
-#####GComment
-/*
- * Given monster name as string, return the index in r_info array. Name
- * must exactly match (look out for commas and the like!), or else 0 is
- * returned. Case doesn't matter. -GSN-
- */
-
-#####GDescription
-Return the monster index for monster with name "name". If no match is
-found then zero is returned.
-
-#####GParameters
-> "name" is the monster name.
-
-----------------------------------------------------------------------
-
-#####R=== test_item_name ===
-
-#####GDeclaration
- int test_item_name(cptr name);
-
-#####GFile
- util.c
-
-#####GComment
-/*
- * Given item name as string, return the index in k_info array. Name
- * must exactly match (look out for commas and the like!), or else 0 is
- * returned. Case doesn't matter. -DG-
- */
-
-#####GDescription
-Return the item index for item with name "name". If no match is found
-then zero is returned.
-
-#####GParameters
-> "name" is the item name.
-
-----------------------------------------------------------------------
-
-#####R=== luck ===
-
-#####GDeclaration
- int luck(int min, int max);
-
-#####GFile
- xtra1.c
-
-#####GComment
-/*
- * Return a luck number between a certain range
- */
-
-#####GDescription
-Return a number for luck between minimum "min" and maximum "max". The
-value begins with the player's current luck. The value is forced to
-be between -30 and +30. 30 is added to give a value between 0 and 60.
-The value is multiplied by the range (maximum - minimum) and divided
-by 60. The value is increased by the minimum. The value is returned.
-
-For example, if the player's current luck is 15, the minimum is -10,
-and the maximum is 10 (range 20), then the value returned is
-(45 * 20) / 60 which is 900 / 60 which is 15 + the minimum -10 gives
-a returned value of 5.
-
-#####GParameters
-> "min" is the minimum luck.
-> "max" is the maximum luck. Beware: this should be greater than the
- minimum but it is not checked!
-
-----------------------------------------------------------------------
-
-#####R=== get_player_race_name ===
-
-#####GDeclaration
- cptr get_player_race_name(int pr, int ps);
-
-#####GFile
- util.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the name for player race "pr" and player sub-race "ps".
-
-#####GParameters
-> "pr" is the index for player race.
-> "ps" is the index for player sub-race.
-
-----------------------------------------------------------------------
-
-#####R=== quit ===
-
-#####GDeclaration
- void quit(cptr str);
-
-#####GFile
- z-util.c
-
-#####GComment
-/*
- * Exit (ala "exit()"). If 'str' is NULL, do "exit(0)".
- * If 'str' begins with "+" or "-", do "exit(atoi(str))".
- * Otherwise, plog() 'str' and exit with an error code of -1.
- * But always use 'quit_aux', if set, before anything else.
- */
-
-#####GDescription
-Quit the game. If "str" is a string then write the string to the
-error file or screen. If "str" is a number then exit with the
-number as the exit code.
-
-#####GParameters
-> "str" is an error message or exit code.
-
-----------------------------------------------------------------------
-
-#####R=== dump_hooks ===
-
-#####GDeclaration
- void dump_hooks();
-
-#####GFile
- plots.c
-
-#####GComment
-(none)
-
-#####GDescription
-Print the name and type (C or Lua) of hooks in the hook list.
-
-----------------------------------------------------------------------
-
-#####R=== add_hook_script ===
-
-#####GDeclaration
- void add_hook_script(int h_idx, char *script, cptr name);
-
-#####GFile
- plots.c
-
-#####GComment
-(none)
-
-#####GDescription
-To hook list with index "h_idx", add a script with script file
-"script" and name "name" as a Lua hook if a hook with that name
-does not already exist.
-
-#####GParameters
-> "h_idx" is the index of the hook list in the array of hook lists.
-> "script" is the name of the script file.
-> "name" is the name of the hook to be added.
-
-----------------------------------------------------------------------
-
-#####R=== del_hook_name ===
-
-#####GDeclaration
- void del_hook_name(int h_idx, cptr name);
-
-#####GFile
- plots.c
-
-#####GComment
-(none)
-
-#####GDescription
-Search hook list with index "h_idx" and remove the hook with name
-"name".
-
-#####GParameters
-> "h_idx" is the index of the hook list in the array of hook lists.
-> "name" is the name of the hook to be removed.
-
-----------------------------------------------------------------------
-
-#####R=== pern_dofile ===
-
-#####GDeclaration
- bool pern_dofile(char *file);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Parse the Lua script file "file".
-
-#####GParameters
-> "file" is the Lua script file to be parsed.
-
-----------------------------------------------------------------------
-
-#####R=== intMod ===
-
-#####GDeclaration
- s32b intMod(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of operation "a" mod "b" (a % b).
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intAnd ===
-
-#####GDeclaration
- s32b intAnd(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation "a" AND "b" (a & b).
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intOr ===
-
-#####GDeclaration
- s32b intOr(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation "a" OR "b" (a | b).
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intXor ===
-
-#####GDeclaration
- s32b intXor(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation "a" XOR "b" (a ^ b).
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intShiftl ===
-
-#####GDeclaration
- s32b intShiftl(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation "a" << "b".
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intShiftr ===
-
-#####GDeclaration
- s32b intShiftr(s32b a, s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation "a" >> "b".
-
-#####GParameters
-> "a" is a number.
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== intBitNot ===
-
-#####GDeclaration
- s32b intBitNot(s32b b);
-
-#####GFile
- script.c
-
-#####GComment
-(none)
-
-#####GDescription
-Return the result of bitwise operation NOT "b" (~ b).
-
-#####GParameters
-> "b" is a number.
-
-----------------------------------------------------------------------
-
-#####R=== register_savefile ===
-
-#####GDeclaration
- void register_savefile(int num);
-
-#####GFile
- loadsave.c
-
-#####GComment
-/*
- * Add num slots to the savefile
- */
-
-#####GDescription
-Add "num" slots to the save file.
-
-#####GParameters
-> "num" is the number of slots to add to the savefile. If num is <0
- then "num" is forced to zero.
-
-----------------------------------------------------------------------
-
-#####R=== save_number_key ===
-
-#####GDeclaration
- void save_number_key(char *key, s32b val);
-
-#####GFile
- util.c
-
-#####GComment
-(none)
-
-#####GDescription
-Save the length of key "key", the key itself, and the value "val" as
-bytes in the savefile.
-
-#####GParameters
-> "key" is the key string for the value.
-> "val" is the value to be saved.
-
-----------------------------------------------------------------------
-
-
-
-Back to the *****lua.hlp*0[lua help index] .
-
-
- [[[[[gThis file by Chris Hadgis]
-
diff --git a/lib/mods/theme/help/m_divin.txt b/lib/mods/theme/help/m_divin.txt
index df92c11b..e03bd334 100644
--- a/lib/mods/theme/help/m_divin.txt
+++ b/lib/mods/theme/help/m_divin.txt
@@ -26,7 +26,7 @@ There are six spells available for the divination school. These Spells are:
Asks for an object and identifies it.
At spell level 17 it identifies all objects in the inventory.
At spell level 27 it identifies all objects in the inventory and in a
- radius on the floor, as well as probing monsters in that radius.
+ radius on the floor.
4. [[[[[sReveal Ways] (school level 9)
Detects the doors/stairs/ways in a certain radius around you.
5. [[[[[sVision] (school level 15)
diff --git a/lib/mods/theme/help/m_music.txt b/lib/mods/theme/help/m_music.txt
index 0f84f08f..40116252 100644
--- a/lib/mods/theme/help/m_music.txt
+++ b/lib/mods/theme/help/m_music.txt
@@ -61,8 +61,7 @@ of instrument contains a different family of musical songs:
Consumes mana each turn.
5. [[[[[vClairaudience(IV)] (School level 25)
Allows you to sense monster minds as long as you sing.
- At level 10 it identifies all objects in a radius on the floor,
- as well as probing monsters in that radius.
+ At level 10 it identifies all objects in a radius on the floor.
Consumes mana each turn.
#####GHorns
diff --git a/lib/mods/theme/help/macrofaq.txt b/lib/mods/theme/help/macrofaq.txt
index 97fad944..d285194c 100644
--- a/lib/mods/theme/help/macrofaq.txt
+++ b/lib/mods/theme/help/macrofaq.txt
@@ -975,10 +975,6 @@ These are accessible through the (=) Set options command.
*****option.txt*2[(hilite_player)] -- causes the player's symbol to be drawn with the
"cursor" on it. It will be drawn with the same color as the character.
-*****option.txt*3[(player_symbols)] -- for graphics mode only, and only works when option
-(use_graphics) is also on. This apparently varies the player graphic
-and its color based on class, race, and sex.
-
#####G----------------------------------------------------------------------
#####G4.18 Recharging a rod using a Recharge Item spell
#####G----------------------------------------------------------------------
@@ -1070,15 +1066,7 @@ create a macro for a function key.
#####G5.2 How can I automatically inscribe items when I pick them up?
#####G----------------------------------------------------------------------
-You need to turn on the "Merge inscriptions when stacking" option.
-If you are already carrying the same item with an inscription, a new
-one will be added to the stack. Note that this WON'T merge discounts.
-Although discounts display like inscriptions, they are different.
-
-1) = Options
-2) 1 User interface options
-3) "Merge inscriptions when stacking" (stack_force_notes)
- move down to this line and change to "yes".
+(Content removed because it was obsolete. Inscribe-on-pickup is now the default.)
#####G----------------------------------------------------------------------
#####G5.3 Can I use macros inside other macros?
@@ -1788,9 +1776,6 @@ options screen.
rogue_like_commands
use_old_target
always_pickup
-depth_in_feet
-alert_hitpoint
-auto_haggle
auto_scum
#####G----------------------------------------------------------------------
diff --git a/lib/mods/theme/help/magic.txt b/lib/mods/theme/help/magic.txt
index 93486f0b..1811be84 100644
--- a/lib/mods/theme/help/magic.txt
+++ b/lib/mods/theme/help/magic.txt
@@ -23,17 +23,15 @@ schools:
Other magical skills, generally being used primarily by characters of a
specific class, are:
- *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy] *****skills.txt*36[Runecraft]
- *****m_thaum.txt*0[Thaumaturgy] *****skills.txt*49[Alchemy] *****m_geoman.txt*0[Geomancy]
+ *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy]
+ *****m_thaum.txt*0[Thaumaturgy] *****m_geoman.txt*0[Geomancy]
The *****m_demono.txt*0[Demonology] skill is primarily used by *****c_demono.txt*0[Demonologists] for their special
spells, whereas the *****m_necrom.txt*0[Necromancy] skill is used by *****c_necro.txt*0[Necromancers] for their own set
of special spells.
-The same goes for *****skills.txt*36[Runecraft], which is used by *****c_runecr.txt*0[Runecrafters] to allow use of more
-difficult runes or rune-combinations. *****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
+*****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
attack spells, and as such each game with it will be different. *****c_geoman.txt*0[Geomancers]
-harness the powers of the elements using *****m_geoman.txt*0[Geomancy]. Lastly we have
-*****skills.txt*49[Alchemy], which is used by *****c_alchem.txt*0[Alchemists].
+harness the powers of the elements using *****m_geoman.txt*0[Geomancy].
In addition to the schools of magic, you can get access to special sets of
spells if you worship a God. There are currently four good Gods,
diff --git a/lib/mods/theme/help/option.txt b/lib/mods/theme/help/option.txt
index 34a2fe6b..f1d485db 100644
--- a/lib/mods/theme/help/option.txt
+++ b/lib/mods/theme/help/option.txt
@@ -56,20 +56,6 @@ can also be viewed from the option menu while playing, but not changed then.
but extremely deadly - imagine that Greater Checkerboard Vault with Lokkak
on dungeon level 1!
-#####GAllow notes to be written to a file [take_notes]
- Allows any player-written notes (with the "|" command) to be written to
- a file and kept (instead of being put in the message list).
-
-#####GAutomatically note important events [auto_notes]
- Used in conjunction with the take_notes option, this option makes a note
- each time you gain a level, kill a unique, find an artifact, etc.
-
-#####GFast autoroller (NOT on multiuser systems) [fast_autoroller]
- The normal autoroller has a built-in delay that helps prevent it from
- overloading a system. This option reduces that delay, allowing characters
- to be rolled in a much shorter time, but should not be used on multiuser
- systems.
-
#####GAllow use of some 'joke' monsters [joke_monsters]
Allows monsters flagged as being some of DarkGod's jokes to be generated.
@@ -80,6 +66,10 @@ can also be viewed from the option menu while playing, but not changed then.
#####GYou can receive fates, good or bad [fate_option]
Allows the player to turn off ToME's *****fatespoi.txt*0[fates] for that character.
+#####GItems always sell for 0 gold [no_selling]
+ Disables selling items back to shops for money. The value of gold found in the
+ dungeon is increased to compensate.
+
~~~~~07|Options|Ingame
#####RIN GAME OPTIONS
#####R===============
@@ -98,9 +88,6 @@ off at will during the course of the game.
(useful for monster farming). Allows most keys to mean "no" to any
"[y/n]" prompt.
-#####GPrompt for various information [other_query_flag]
- No longer used.
-
#####GPrompt before picking things up [carry_query_flag]
Forces the game to ask you for confirmation when you do something that
would normally cause an item to be picked up.
@@ -123,56 +110,8 @@ off at will during the course of the game.
#####GRepeat obvious commands [always_repeat]
Tells the game that when you attempt to open a door or chest, bash
- a door, tunnel through walls, or disarm traps or chests, that you
- wish to repeat the command 99 times (see *****command.txt*0["command.txt"]).
-
-#####GShow dungeon level in feet [depth_in_feet]
- Display the dungeon depth in "feet" instead of as a level number (one
- level is equivalent to 50'). This also affects the monster memory display.
-
-#####GMerge inscriptions when stacking [stack_force_notes]
- Force otherwise identical objects to merge, even if one has an empty
- inscription and the other does not. The resulting stack keeps the
- non-empty inscription.
-
-#####GMerge discounts when stacking [stack_force_costs]
- Force otherwise identical objects to merge, even if they have different
- discounts. The resulting stack keeps the largest discount. This option
- may cause you to lose "value", but will give you optimal pack usage.
-
-#####GShow labels in object lists [show_labels]
- Display the "labels" for objects in the equipment list, and in any
- special window which is displaying the equipment. These labels
- indicate what the player is using the object for, such as "wielding"
- or "wearing" (in a given location). After you have played for a while,
- this information is no longer useful, and can be annoying.
- Note that in ToME this option no longer controls the "plain
- flavoured object descriptions": a separate option for them has been added
- under "ToME Options".
-
-#####GShow weights in object lists [show_weights]
- Display the weight of objects in the inventory and equipment lists,
- and in stores, and in any special window which is displaying any of
- these lists.
-
-#####GShow graphics in inventory list [show_inven_graph]
- Display the graphics of objects in the inventory list, and in any special
- window which is displaying the inventory list.
-
-#####GShow graphics in equipment list [show_equip_graph]
- Display the graphics of objects in the equipment list, and in any special
- window which is displaying the equipment list.
-
-#####GShow graphics in stores [show_store_graph]
- Display the graphics of objects in the store list.
-
-#####GShow choices in certain sub-windows [show_choices]
- Indicate legal choices in special windows which display lists.
-
-#####GShow details in certain sub-windows [show_details]
- Indicate extra details in special windows, currently used to activate
- the display of death counts and monster descriptions when recalling
- details about a monster.
+ a door, or tunnel through walls, that you wish to repeat the command
+ 99 times (see *****command.txt*0["command.txt"]).
#####GAudible bell (on errors, etc) [ring_bell]
Attempt to make a "bell" noise when various errors occur.
@@ -205,16 +144,12 @@ off at will during the course of the game.
monster becomes viewable for the first time, and also whenever any
viewable monster becomes no longer viewable. This option ignores
the existence of telepathy for the purpose of determining whether
- a monster is viewable. See also the "view_reduce_view" option.
+ a monster is viewable.
#####GDisturb whenever map panel changes [disturb_panel]
This option causes you to be disturbed (stop running) when the screen
scrolls, as it does when you get close to the edge of the visible screen.
-#####GDisturb whenever leaving trap-detected area [disturb_detect]
- This option causes you to be disturbed whenever you are leaving
- a trap-detected area. This option is strongly recommended.
-
#####GDisturb whenever player state changes [disturb_state]
This option causes you to be disturbed whenever the player state
changes, including changes in hunger, resistance, confusion, etc.
@@ -232,10 +167,6 @@ off at will during the course of the game.
even if this option is unset. (You may also inscribe an item with {.}
to suppress its random-teleportation power, unless it is cursed.)
-#####GAlert user to critical hitpoints [alert_hitpoint]
- Produce a "bell" noise, and flushes all pending input, when your hitpoints
- reach the warning point chosen elsewhere, preventing stupid deaths.
-
#####GAlert user to various failures [alert_failure]
Produce a "bell" noise, and flushes all pending input, when various
failures occur, as described above.
@@ -245,18 +176,6 @@ off at will during the course of the game.
dies. If this option is not selected, the "You die." message is displayed
instead.
-#####GAllow shopkeepers and uniques to speak [speak_unique]
- If this option is in use, shopkeepers may sometimes whisper rumours to
- you. Also certain monsters start boasting as they attack you, and when
- they die, they say their "last words".
-
-#####GNo query to destroy known worthless items [auto_destroy]
- It can sometimes be annoying that the Destroy command asks for confirmation
- when you are attempting to destroy a Broken sword {cursed}. If this option
- is set, no confirmation will be asked if you attempt to destroy an object
- which you know to be worthless. Of course, cursed artifacts cannot be
- destroyed even if this option is set.
-
#####GConfirm to wear/wield known cursed items [confirm_wear]
Some players may occasionally, due to a typing mistake, find themselves
wearing an item which they knew was cursed. If this option is set, you
@@ -281,13 +200,6 @@ off at will during the course of the game.
to only one known door, using the "o"pen command will not prompt you for
a direction.
-#####GAutomatically disarm traps [easy_disarm]
- Attempts to disarm traps by walking into/over them. Also, if you are
- adjacent to only one known trap, using the "D"isarm command will not
- prompt you for a direction. If your disarming ability is particularly
- low, you should probably not enable this option, because you will often
- fail to disarm the traps, and sometimes trigger them.
-
#####GAutomatically tunnel walls [easy_tunnel]
Automatically tunnels into walls by walking into them.
@@ -308,18 +220,6 @@ off at will during the course of the game.
is based on the dungeon level, so the deeper you go, the better the
level will be.
-#####GAllow weapons and armor to stack [stack_allow_items]
- Allow identical weapons and armor to be combined into a stack. This
- also allows unidentified, but identical, ammo to be combined, which
- may result in the auto-identification of some of the ammo, but which
- makes it a lot easier to actually use unidentified ammo.
-
-#####GAllow wands/staffs/rods to stack [stack_allow_wands]
- Allow identical wands/staffs/rods to be combined into a stack. This
- may force the items to be unstacked to use them, which may result
- in overflow of the pack. Also, the entire stack can be recharged
- (and possibly destroyed) at the same time.
-
#####GExpand the power of the look command [expand_look]
Expand the "l"ook command to allow the user to look at grids which
are not actually in view of the player, allowing the examination of
@@ -374,38 +274,10 @@ off at will during the course of the game.
Allow monsters to make paths to the player when they are nearby. This
option is extremely slow, but can produce viciously smart monsters.
~~~~~3
-#####GUse special symbols for the player char [player_symbols]
- If this option has been compiled in, it allows you to display your
- character using race / class / sex dependent colours and graphical
- symbols. Note that the support for this option may not have been
- compiled in on all platforms.
-
-#####GPlain object descriptions [plain_descriptions]
- In ToME, this option disables "full" names for identified flavoured
- objects; in other words, if this option is not in use, an identified
- Potion of Speed could be listed (for example) as a Blue Potion of Speed.
- If you prefer simpler, less verbose descriptions, set this option.
-
#####GMonsters learn from their mistakes [smart_learn]
Allow monsters to learn what spell attacks you are resistant to,
and to use this information to choose the best attacks.
-#####GMonsters exploit players weaknesses [smart_cheat]
- Allow monsters to know what spell attacks you are resistant to, without
- first having to observe such an attack upon you, and to use this
- information to choose the best attacks.
-
-#####GMonsters behave stupidly [stupid_monsters]
- ToME incorporates Keldon Jones' improved monster Artificial
- Intelligence patch. While this patch most certainly makes monsters
- behave more realistically, they will also be more deadly with the
- improved AI. If you are a sissy, set this option to get the old,
- really stupid monster AI.
- Note that the new AI is a bit processing power expensive. If you have
- an old computer (386sx) and ToME is running too slowly, you could
- try turning stupid_monsters on. Or dumpster-dive for a Pentium so you can
- run ToME. :-)
-
#####GAllow unusually small dungeon levels [small_levels]
This option enables the creation of levels of varying sizes. Levels
that are as small as one "screen" (80x24) are possible, and they can be
@@ -432,9 +304,6 @@ off at will during the course of the game.
but is extremely annoying. Certain older versions of Angband used
this behavior always, so "purists" should turn it on.
-#####GReduce view-radius in town [view_reduce_view]
- No longer in use.
-
#####GAvoid checking for user abort [avoid_abort]
Avoid checking to see if the user has pressed a key during resting
or running or repeated commands. This not only makes the game much
@@ -494,6 +363,7 @@ off at will during the course of the game.
This option forces the game to flush all output after every message
displayed by the game. This will give you maximal information, but
may slow down the game somewhat.
+
~~~~~2
#####GHilite the player with the cursor [hilite_player]
Place the visible cursor on the player. This looks fine on some Unix
@@ -551,11 +421,6 @@ Features which are unique to ToME are collected in this menu.
for new players. More experienced players may wish to switch this option
off.
-#####GShow the experience needed for the next level [exp_need]
- Setting this option alters the display of experience on the left of
- the main screen to the experience needed to reach the next character level,
- instead of the character's current total experience.
-
#####GUse the old(Z) coloring scheme(reload the game) [old_colors]
Setting this option toggles the ASCII game colour display from the
standard Angband monster colours to the Zangband-based monster colours.
diff --git a/lib/mods/theme/help/skills.txt b/lib/mods/theme/help/skills.txt
index c4a02c06..6d6638d6 100644
--- a/lib/mods/theme/help/skills.txt
+++ b/lib/mods/theme/help/skills.txt
@@ -63,8 +63,7 @@ gets the free points). For example, a skill point put into Weaponmastery
raises Combat by 0.5 skill points. This is actually multiplied by the skill
modifier that your character has in the Combat skill. For example, a
Swordmaster investing a skill point into Weaponmastery would have his Combat
-skill raised by 0.5 * [0.900] while a Runecrafter would have his Combat
-skill raised by 0.5 * [0.200].
+skill raised by 0.5 * [0.900].
As well as this, skills are grouped together in similar types. Looking under
the Combat skill, there are subtypes of Weaponmastery, Archery and Antimagic.
@@ -108,7 +107,7 @@ on what each skill does, try [[[[[ghttp://www.killerbunnies.org/angband/skill-22
for some third party help!
The skills are:
- *****skills.txt*27[Air] *****skills.txt*49[Alchemy] *****skills.txt*50[Antimagic] *****skills.txt*08[Archery]
+ *****skills.txt*27[Air] *****skills.txt*50[Antimagic] *****skills.txt*08[Archery]
*****skills.txt*05[Axe-mastery] *****skills.txt*18[Backstab] *****skills.txt*13[Barehand-combat] *****skills.txt*61[Bearform-combat]
*****skills.txt*12[Boomerang-mastery] *****skills.txt*58[Boulder-throwing] *****skills.txt*10[Bow-mastery] *****skills.txt*01[Combat]
*****skills.txt*30[Conveyance] *****skills.txt*44[Corpse-preservation]*****skills.txt*04[Critical-hits] *****skills.txt*11[Crossbow-mastery]
@@ -117,11 +116,11 @@ The skills are:
*****skills.txt*21[Magic] *****skills.txt*54[Magic-device] *****skills.txt*24[Mana] *****skills.txt*29[Meta]
*****skills.txt*47[Mimicry] *****skills.txt*33[Mind] *****skills.txt*41[Mindcraft] *****skills.txt*42[Monster-lore]
*****skills.txt*59[Music] *****skills.txt*34[Nature] *****skills.txt*35[Necromancy] *****skills.txt*07[Polearm-mastery]
- *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*36[Runecraft] *****skills.txt*09[Sling-mastery]
- *****skills.txt*14[Sneakiness] *****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery]
- *****skills.txt*19[Stealing] *****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning]
- *****skills.txt*03[Sword-mastery] *****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy]
- *****skills.txt*48[Udun] *****skills.txt*26[Water] *****skills.txt*02[Weaponmastery]
+ *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*09[Sling-mastery]
+ *****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery] *****skills.txt*19[Stealing]
+ *****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning] *****skills.txt*03[Sword-mastery]
+ *****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy] *****skills.txt*48[Udun]
+ *****skills.txt*26[Water] *****skills.txt*02[Weaponmastery]
~~~~~01|Skills|Combat
@@ -257,12 +256,6 @@ spirituality sub-skills.
This skill does not affect your ability to use scrolls and potions, but other
items that require [Self]Magic-Device are affected. At higher levels you gain
the ability to detect traps and disrupt all teleportation.
-~~~~~14|Skills|Sneakiness
-[[[[[BSneakiness]
-The sneakiness skill affects your searching and perception abilities.
-
-Sub-skills of Sneakiness include Stealth, Disarming, Trapping, Backstab,
-Stealing and Dodging.
~~~~~15|Skills|Stealth
[[[[[BStealth]
This skill is a sub-skill of the Sneakiness skill. It affects your ability
@@ -311,7 +304,7 @@ ability.
Sub-skills include: Magic-device, Spell-power, Sorcery, Mana, Fire, Water, Air,
Earth, Meta, Conveyance, Divination, Temporal, Mind, Nature, Udun, Demonology,
-Necromancy, Runecraft, Thaumaturgy, and Alchemy.
+Necromancy, and Thaumaturgy.
~~~~~54|Skills|Magic-device
[[[[[BMagic-device]
This skill is a sub-skill of the Magic skill. It eases the use of magical
@@ -452,11 +445,6 @@ point on your Necromancy skill adds 0.04 bonus skill points to your Magic skill.
Investing in the Necromancy skill? You might be interested in the
*****ability.txt*08[Touch of Death] and *****ability.txt*12[Undead Form] abilities.
-~~~~~36|Skills|Runecraft
-[[[[[BRunecraft]
-This skill is a sub-skill of the Magic skill. This is the base skill of the
-Runecrafter class. Spending 1 skill point on your Runecraft skill adds 0.12
-bonus skill points to your Magic skill.
~~~~~37|Skills|Thaumaturgy
[[[[[BThaumaturgy]
This skill is a sub-skill of the Magic skill. Each level of *****m_thaum.txt*0[thaumaturgy] gives
@@ -465,13 +453,6 @@ any sort. However, once learned these spells do not gain in levels as the
thaumaturgy skill or the spell-power skills are increased. Spending 1 skill
point on your Thaumaturgy skill adds 0.06 bonus skill points to your Magic
skill.
-~~~~~49|Skills|Alchemy
-[[[[[BAlchemy]
-The Alchemy skill affects your ability to extract and use essences to create
-magical items.
-
-Investing in the Alchemy skill? You might be interested in the *****ability.txt*09[Artifact Creation]
-ability.
~~~~~38|Skills|Spirituality
[[[[[BSpirituality]
The spirituality skill influences things which have a "helping hand" from the
diff --git a/lib/mods/theme/help/spoiler.hlp b/lib/mods/theme/help/spoiler.hlp
index bc229852..996c0d32 100644
--- a/lib/mods/theme/help/spoiler.hlp
+++ b/lib/mods/theme/help/spoiler.hlp
@@ -7,7 +7,6 @@ Please choose one of the following online spoiler files:
*****/acorspoil.txt*0[(a) Corruptions]
*****/bdunspoil.txt*0[(b) Dungeons]
- *****/cessences.txt*0[(c) Essence Spoiler]
*****/dinscrip.txt*0[(d) Floor Inscriptions]
*****/eluckspoi.txt*0[(e) Luck]
*****/ffatespoi.txt*0[(f) Fates]
diff --git a/lib/mods/theme/help/tome_faq.txt b/lib/mods/theme/help/tome_faq.txt
index 756ce639..d321a28a 100644
--- a/lib/mods/theme/help/tome_faq.txt
+++ b/lib/mods/theme/help/tome_faq.txt
@@ -81,8 +81,7 @@ You can also fill empty bottles at a fountain (enabling you to identify the
potion and hence the type of fountain) by using the 'H' command and answering
'F' at the prompt. The game will then ask you to choose bottles and how many
bottles you want to fill. You can find empty bottles on the dungeon and
-drinking pints of fine ale/wine will give you emtpy bottles; if you are
-trained in Alchemy, you can reuse bottles after quaffing potions as well.
+drinking pints of fine ale/wine will give you emtpy bottles.
#####G------------------------------------------------------------------------------
#####GQ: I got killed by a Great Wyrm of Power at 50'!!! What happened?
@@ -102,16 +101,6 @@ activation can be something very nasty....
To activate it, use the normal Activation command, but when prompted for which
item to activate change to the backpack instead of wielded equipment.
-~~~~~10|Essences
-~~~~~11|Runes
-#####G------------------------------------------------------------------------------
-#####GQ: I keep coming across "essences" and "runes". What are they?
-
-Essences are the *****c_alchem.txt*0[Alchemist's] friend, and you can only use them if you
-have access to the *****skills.txt*49[Alchemy] skill.
-Runes are used to cast and store spells of varying types. *****c_runecr.txt*0[Runecrafters] are the
-class who are most proficient at using these. You can only use them if you
-have access to the *****skills.txt*36[Runecrafting] skill.
~~~~~12|Homes
#####G------------------------------------------------------------------------------
#####GQ: Where can I store all my equipment? Theere's not enough room in my