diff options
Diffstat (limited to 'lib/mods/theme/help')
170 files changed, 22229 insertions, 0 deletions
diff --git a/lib/mods/theme/help/ability.txt b/lib/mods/theme/help/ability.txt new file mode 100644 index 00000000..175d6745 --- /dev/null +++ b/lib/mods/theme/help/ability.txt @@ -0,0 +1,115 @@ +|||||oy +~~~~~01|Abilities +#####R=== ToME Abilities === +As well as spending your skill points on *****skills.txt*0[skills], you can also choose +to spend them on abilities. +Abilities are bought once, and then have a permanent effect. You cannot +continue adding skill points into them, (which you can with *****skills.txt*0[skills]) as there +would be no way that these abilities can improve. They are a "one-off +purchase". +As a consequence of this, they are often quite powerful abilities and can +cost quite a few skill points to buy. +Most abilities have a prerequisite skill or stat level which you must reach +before being able to buy. + +For instance, you can invest in the *****ability.txt*03[Tree walking] ability. This will allow +you to pass through dense undergrowth. In order to purchase this skill you must +first have your *****skills.txt*34[Nature] skill at 20 or greater, and then it will cost you 7 +skill points to buy. This means you have to "save up" enough skill points in +order to be able to afford this ability. + +You can access the Ability screen by pressing 'N' (in the original keyset, or +'\N' in the roguelike keyset). Scroll up and down the abilities and then +navigate right to buy selected ability. + +Adapt your character with skills and abilities in order to make it unique, +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*12[Undead Form] + +~~~~~02|Abilities|Spread blows +[[[[[BSpread blows] +If a monster dies to your attack but you still have blows left +you won't lose the full turn, allowing you to attack some other +monster in the same turn. +#####UPrereq: Weaponmastery skill@30, Dex@17 +#####rCost: 5 +Warriors (of all types) gain this ability for free at character level 25. +~~~~~03|Abilities|Tree walking +[[[[[BTree walking] +Allows you to walk in dense forest. +#####UPrereq: Nature skill@20 +#####rCost: 7 +Ents and Wood Elves are born with this ability. +~~~~~04|Abilities|Perfect casting +[[[[[BPerfect casting] +Allows you to reach 0% failure rate on spells. +#####UPrereq: Magic skill@35 +#####rCost: 6 +Priests and Mages (of all types) are born with this ability. +~~~~~05|Abilities|Extra Max Blow 1 +[[[[[BExtra Max Blow(1)] +Increases your max possible blows number by 1. +#####UPrereq: Combat skill@10 +#####rCost: 7 +Warriors (of all types) and Paladins are born with this ability. +Rogues (of all types) gain this ability for free at character level 10. +~~~~~06|Abilities|Extra Max Blow 2 +[[[[[BExtra Max Blow(2)] +Increases your max possible blows number by 1 (Cumulative with +Extra Max Blow(1)). +#####UPrereq: Combat skill@20, Extra Max Blow(1) +#####rCost: 7 +Warriors (of all types) are born with this ability. +~~~~~07|Abilities|Ammo creation +[[[[[BAmmo creation] +Allows you to create shots, arrows and bolts from various materials. +You can always make shots. +At Archery level 10 you can start making arrows. +At Archery level 20 you can start making bolts. +#####UPrereq: Archery skill@10 +#####rCost: 8 +Archers (of all types) gain this ability for free at character level 2. +~~~~~08|Abilities|Touch of death +[[[[[BTouch of death] +Your melee blows can insta-kill, but you only receive 1/3 of the experience +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. +At high levels of Polearm-mastery skill, you can even hit two enemies at once. +#####UPrereq: Combat@15, Polearm-mastery@15 +#####rCost: 10 +~~~~~11|Abilities|Trapping +[[[[[BTrapping] +Enables you to set traps which harm monsters. +#####UPrereq: Disarming@15 +#####rCost: 10 +Rogues are born with this ability. +~~~~~12|Abilities|Undead Form +[[[[[BUndead Form] +With this ability your character receives a small amount of Death Points (DP) +when they 'die'. Every normal (+0 speed) turn, one DP +is lost; you can regain it like you would do with Hit Points. +If you manage to kill enough monsters before your DP goes below 0, your +character is brought back to life. +#####UPrereq: Necromancy@30, INT@25 +#####rCost: 15 +Necromancers gain this ability for free at character level 25. + diff --git a/lib/mods/theme/help/advanced.hlp b/lib/mods/theme/help/advanced.hlp new file mode 100644 index 00000000..3f6fe4bd --- /dev/null +++ b/lib/mods/theme/help/advanced.hlp @@ -0,0 +1,15 @@ +|||||oy +#####RWelcome to the ToME Advanced Help System. +#####R============================================= + +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 + + *****/zhelp.hlp*0[(z) Main Help menu] + diff --git a/lib/mods/theme/help/attack.txt b/lib/mods/theme/help/attack.txt new file mode 100644 index 00000000..c72e9725 --- /dev/null +++ b/lib/mods/theme/help/attack.txt @@ -0,0 +1,148 @@ +|||||oy +~~~~~01|Attacking Monsters +~~~~~02|Monsters|Attacking +#####R=== Attacking and Being Attacked === + +{{{{{<p>}Attacking is simple in ToME; attempting to move over a creature +attacks it. It is also possible to attack from a distance by firing a missile +or by magical means (wand, rod, spell, etc). Creatures attack in the same way. +This means that if you do not wish to melee with a creature, it is wise to keep +distant from it. This strategy is not perfect -- some monsters, such as +dragons, have a way to attack from a distance. + +Some creatures, such as Ghosts, have the ability to pass through walls. +To attack creatures (that you can see) who are currently in a wall, +attempt to move over it (even if you cannot pass through walls, the +attack will still happen). Monsters will take less damage from attacks +while they are in walls. Also, if you cannot see the monster (e.g. if you +are blind, or it is invisible and you do not have see invisible), this +will not work: you'll have to try to tunnel. Most spells and magic devices +cannot target monsters in walls. In situations like this, it is usually wise to +lure the monster out of the wall before attacking it. + +Melee attacks are handled as such: +#####G To-hit: + Your strength grants a bonus or penalty to-hit + Your class might grant a bonus or penalty to-hit + Your skill with specific kinds of weapons gives a bonus + to-hit (e.g.: Swordmastery gives a to-hit bonus + when using swords) + Enchantments on your weapon grant a bonus or penalty to-hit + Certain rings (accuracy, slaying) may also grants a bonus + or penalty to-hit + Your Tactic setting may give bonuses o penalties to-hit + (to change it, press 'C' and then 't' or 'T') + Other temporary effects (berserk, etc) might affect your + chance to hit + The armor rating of the monster you're attacking makes a + big difference + +#####G Blows: + Your strength and dexterity affect how many blows you get + Your class and level might affect how many blows you get + The weight of the weapon very likely will affect how many + blows you get + Certain skills (e.g. Swordmastery) may affect how many blows + you get with particular weapons + Enchantments on your weapon might also affect how many + blows you get (this is rare) + Certain very rare rings (of attacks) may also affect how + many blows you get + +#####G Damage: + The base damage of your weapon is rolled + Strength grants a bonus or penalty + Your class might grant a bonus or penalty + Combat and Weaponmastery skills increase your melee damage + Ranged masteries increase the damage multiplier of slings, + bows, crossbows or boomerangs(see below) + Enchantments on your weapon might also grant a bonus or + penalty + Your Tactic setting may give bonuses o penalties to damage + (to change it, press 'C' and then 't'or'T') + Temporary effects also might grant a bonus or penalty + +So, each blow you are entitled to is checked for a hit. If this is the case, +the damage is then applied to the monster. Note that unless you have some +barehanded combat training or are possessing a monster, melee without a weapon +will result in a single blow that does base damage of 1d1. This might, however, +be useful in attacking certain rare monsters that destroy weapons. + +Combat with a bow/sling is similar, except ammo is used (which will eventually +run out, requiring replacement). Bows don't have a base damage rating (ammo +does), instead having a damage multiplier. Bows can, however, be enchanted, +and enchantment on bows and arrows is cumulative (meaning that well-enchanted +bows and arrows can be one of the more effective weapons in the game. They +do, however, tend to be very expensive, as non-artifact arrows frequently break +after being fired). +Using ammo without the appropriate bow generally has poor results. +~~~~~03|Armor +#####R=== Armor === + +As the armor class of a monster greatly affects how hard it is for it +to be hit, your armor class affects how hard it is for it to hit you. +A high armor rating will make it much easier to survive deep in the dungeon. +For a warrior style class (Unbelievers, Fighters, Archers, etc), it is +generally wise to wear as much and as powerful armor as possible (subject +to weight limitations, of course). Spellcasting classes, however, have +limits on how much armor they can wear before it disrupts their motion +and makes it hard for them to cast spells properly. For many of these classes, +gloves are especially bad for spellcasting. Monks and Rogues skilled +at dodging will often find heavy armor cumbersome, too. +Armor has a base rating and an enchantment rating. The base rating is constant +for the type of armor (e.g. paper armor always has a base rating of 4), and +the enchantment depends on the item. There are also ways to further enchant +armor you have. Certain very powerful enchantments grant resistances to +specific forms of magical attacks. +~~~~~04|Attacking Monsters|Resistances +~~~~~05|Armor|Resistances +#####R=== Resistances and typed attacks=== +Many kinds of monsters, traps, and other effects do damage that has a type. +Types can have side effects in addition to the raw damage they deal. Certain +enchanted items can grant resistances, reducing the raw damage and possibly +reducing or eliminating the side effects. Some monsters also have resistances, +so watching the messages when attacking a monster can often reveal that a +particular attack is ineffective. +~~~~~06|Attacking Monsters|Damage Effect type (Fire/cold/nether etc) +~~~~~09|Damage Effects +#####GLow attacks + Fire - Destroys weapons, armor, scrolls, and staves. Reduces strength. + Cold - Shatters potions. + Elec - Reduces dexterity. + Acid - Reduces bonuses on equipped armor, reduces charisma + +#####GMiddle attacks + Poison - Player becomes poisoned + Light - Blinds player, perma-lights area + Dark - Blinds player, darkens area + Confusion - Confuses player + +#####GHigh attacks + Nether - Drains experience + Nexus - Scrambles statistics, teleports player randomly + Disenchantment - Reduces bonuses on equipped items + Chaos - Confuses, drains life, causes hallucination, and more + Sound - Shatters potions + Shards - Cuts player + +#####GUnresistable attacks + Water - Stuns player + Ice - Stuns player, shatters potions + Plasma - Stuns player, otherwise same as fire attacks + Force - Pushes player a few squares back + Inertia - Slows player + Gravity - Slows and teleports player a few squares + Disintegration - Destroys items on ground, destroys walls + Mana - Destroys items on ground +~~~~~07|Monsters|Monster Memory +#####R=== Monster Memory === + +The thousands of different creatures in ToME have many different +characteristics, including spells, resistances, health, attacks, and speed. +The information you have learned about each monster from your encounters +with them is recorded in the monster memory (accessed with '/' or by 'l'ooking +at a monster). It is possible to eventually learn all the characteristics +of any given monster by interacting with them enough, but this is not always +desirable (hanging around great hell wyrms, for example, can be hazardous +to one's health). Certain spells may help you learn faster, as well as +research centres in town. diff --git a/lib/mods/theme/help/automat.txt b/lib/mods/theme/help/automat.txt new file mode 100644 index 00000000..bf6478f8 --- /dev/null +++ b/lib/mods/theme/help/automat.txt @@ -0,0 +1,504 @@ +|||||oy +~~~~~01|Automatizer +~~~~~02|Auto pick-up +~~~~~03|Auto destroy +~~~~~04|Autosquelch +#####R /----------------------------------------\ +#####R < The Automatizer > +#####R \----------------------------------------/ + +#####GWhat is the Automatizer? +The automatizer is an advanced auto-pickup or auto-squelch (auto-destroyer). At +a basic level, it will allow you to automatically destroy things that you have +no use for once you walk over them, providing that you have identified one of +them with your current character. + +#####GIs that it? +Well no. The automatizer is far more flexible than that. The old-fashioned auto +squelch allowed you to destroy things dependent on how they pseudo-id'd - you +could auto-destroy all {cursed} swords for instance. +This is fine to start with, but once you get deep in the dungeon, and have a lot +of money and a decent weapon, you'll be interested in destroying {average} and +{good} items too right? Well the automatizer allows you to define destruction of +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. + +#####GHey this is sounding good. What if it destroys my artifacts? +It can't. Artifacts can never be destroyed, by the automatizer. However, watch +out for items that are VERY cool but not artifacts... you wouldn't want to go +destroying boots of speed would you? Fortunately there are provisions for this +too, you could set a rule that destroyed all excellent boots (providing you were +past character level 45 say), but not if they were boots of speed. + +#####GWoah! This sounds amazing! +Yes it is, isn't it. + +#####GSo how do I use it? +Well the very simplest way is as follows. When you hit 'k' (^D in the roguelike +keyset) to destroy an item, you'll see that one option is "$ new automatizer +rule(OFF)". If you want to destroy all future items like that that you find, +then hit the $ key. You'll see that (OFF) changes to (ON). Now pick the item you +want to destroy. Let's say it is a Potion of Salt Water. You would now, as +normal, see a message "You destroy a Potion of Salt Water". Following this you +get a prompt, "Destroy all of the same [T]ype, [F]amily, or [N]ame, also use +[S]tatus (no)?". Let's take the easy one first and hit 'n' to go with name. +You'll now see a message, "Rule added, please go to the automatizer screen +(press = then T) to save the modified ruleset". Let's do that then, shall we. If +this is the first time you have used the automatizer with this savefile, you'll +be asked to enable it as you hit T. Confirm that you would like to enable it, +otherwise it won't work. + +#####GWhat's the point in having it disabled then? +Well let's say you spotted something that you weren't sure how it would be +affected by your rules, but didn't want to destroy it; you could just disable +the automatizer for a moment and check it over before deciding what to do with +it and switching the automatizer back on. + +#####GHmmm, ok. So I've enabled the automatizer, now what? +Well, you'll see a screen like this: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|GsGaGlGtG GwGaGtGeGrB B B w B|G<GrGuGlGeB BnBaBmBew=w"ysyaylyty ywyaytyeyrw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G<GnGaGmGeG>wpwowtwiwownw wowfw wswawlwtw wwwawtwewrg<g/gngagmgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + + +(snipped for brevity). + +The automatizer rules are written in XML, so if you're familiar with that format +you shouldn't find things too difficult. It's also similar in format to HTML, as +you may notice from the way that there are opening tags (<name>) and closing +tags (</name>), and that everything between those tags is affected by that +rule. + +#####GXML? HTML? What is this? Isn't ToME enough acronyms to be going on with? +OK, so you don't know anything about mark-up languages, it's no problem. Let's +take a look at the automatizer screen bit by bit, starting with the instructions +bottom right. + +up/down to scroll. Well as you move the up/down cursor keys or number keys, a +different rule name is highlighted in the left hand window, and that rule is +displayed in the right hand window. +tab to switch to the rule window. Does what it says on the tin: switches to the +rule window (the right hand pane) to allow editing of existing rules. +u/d to move rules. Pressing 'u' or 'd' will move the rule up or down the order +displayed in the left hand window. Purely for cosmetic reasons. +new rule. Adds the beginning of a new rule. +rename rule. This is handy, as every rule added from the destroy prompt (as +explained above) is automatically named 'destroy', which gets a bit confusing +when you have 50 or so rules... renaming your rules will make them much easier +to edit later. +save rules. Saves all existing rules to a filename you designate (default is +automat.atm). Don't forget to do this after adding new rules/before exiting the +game. +k to disable the automatizer. Disables the automatizer, preserving the rules you +have made. + +#####GYeah yeah, so what about the rule window on the right hand side itself? +OK, here we go. This is the real juicy stuff. + +Anything inside pointy brackets (greater than and less than signs) is called a +tag. You'll notice that each tag opens with a word, and then that same word +appears in another tag later on, preceded by a slash. These are referred to as +opening tags (like <name> ) and closing tags (like </name> ). Everything within +a set of closing and opening tags is affected by those tags. This will make more +sense as we continue. Tags and the things they enclose are like "mini-rules" +which will together make up one rule. I call these mini-rules, clauses. + +the first line: +<rule name="destroy" type="destroy"> +Each rule starts with the tag <rule>, and this contains the rule name, and the +rule type. The rule name is how it is identified in the left hand window, and +need not be unique. The rule type will be either "destroy" (destroys items when +conditions stated below are met) or "pickup" (picks up item when conditions are +met) or "nothing" (neither picks up, nor destroys item when conditions are met) + +The second line: + <name>Potion of Salt Water</name> +This tells us that for the rule to be carried out, the name of the item must be +"Potion of Salt Water" + +The third line: +</rule> +This tells us the rule is ended. + +In total then, the rule named "destroy" checks to see if the name of every item +is Potion of Salt water, and if it is, it destroys it. + +Nice and simple huh? + +#####GYes Yes, very simple. It doesn't look very advanced at the moment. +Well, we've barely scratched the surface. +Let's take a look at those other options we got at the destroy prompt. Let's say +I was at a stage in the game where I wanted to be able to switch on an auto- +destroy for all swords that pseudo-id'd as {average}. So let's say I have a +dagger in my backpack, and I want to create an auto-destroy rule for that and +all subsequent swords... This is what I'd do: +Hit 'k' to destroy items and hit '$' to turn on automatizer rules. Then I'd +select the dagger and confirm the destruction. Hit 's' to switch the status +toggle. This toggle will include (when ON) how the dagger pseudo-ids, and +finally hit 'f' to add a rule saying destroy by family. What you'll see in the +automatizer screen now is this: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|GdGeGsGtGrGoGyB B B B B B w B|G<GrGuGlGeB BnBaBmBew=w"ydyeysytyryoyyw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wdwewswtwrwowyB B B B B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G<GtGvGaGlG>w2w3g<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +#####GOK, well I can see the pseudo-id status is there, what's that tval thing? And +#####Gwhere does it say swords? +Well actually the tval thing is where it says swords! This is what is added by +the 'destroy by family' option. + +It's probably worth explaining a bit here about the internal structure of ToME +code. Don't worry it's not too scary. In ToME, all objects are divided into +types: swords, axes, hafted-weapons, scrolls, rings etc. Every type is further +divided into sub-types. Eg swords are divided into daggers, broad swords, two- +handed swords and so on. Scrolls are divided into their specific actions; +scrolls of light, scrolls of satisfy hunger etc. Each type has a number assigned +to it, that never changes, and so does each sub-type. In this way we can +identify an exact object using just two values: it's type, or tvalue (tval) and +it's sub-type, or svalue (sval). You see where we're going with this? +Now daggers have a tval of 23 and an sval of 4. So you can see that we've said +in the rule that all things with a tval of 23 and a status of average can be +destroyed. + +#####GAh, right. I see. And what's with the <and> tags? +Well, everything in those tags must be true for the rule to carry out. If we had +the <tval>23</tval> and the <status>average</average> lines without the <and> +tags, it would not be clear whether we wanted just one of those clauses to be +true for the rule to be carried out, or both of them. + +#####GErr... +In other words, without the <and> tags it might look like we wanted to destroy +a) EVERYTHING that pseudo id'd as average, and +b) EVERY sword, regardless of how it pseudo-id'd! + +#####GRight. What if I did want a rule that was more general, and had either/or +options in it? +Then there are tags to do that - the <or> </or> tags. If ANY of the clauses +return as true within or tags, then the rule is carried out. Substitute <or> +tags for the <and> tags in our sword example above, and the rule will operate in +the rather unhelpful way I explained above (all {average} things destroyed, and +all swords destroyed, regardless of how they pseudo-id). So essentially, if your +rule has more than one clause, you will need to include either <and> tags or +<or> tags, or in some cases both. + +#####GOK and so what does the [T]ype option do? +It merely adds the sval, thus narrowing down the parameters for the auto- +destroy. For instance if I'd chosen to destroy by type rather than family in the +last example, we'd have ended up with this: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|GdGeGsGtGrGoGyB B B B B B w B|G<GrGuGlGeB BnBaBmBew=w"ydyeysytyryoyyw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wdwewswtwrwowyB B B B B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GtGvGaGlG>w2w3g<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GsGvGaGlB BmBiBnw=w"y4w"B BmBaBxw=w"y4w"G>g<g/gsgvgaglg>B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +You can see in this example that we have nested <and> tags. Evaluating the tags +from the ones nested deepest first we can see that if an object has a tval of 23 +and an sval between the values of 4 and 4 (i.e. if it is 4) then the rule will +check against the next part, which is to see if the object identifies {average}. +If it does, then all the clauses have been met and rule is carried out. In +short, it destroys all average daggers, rather than all average swords. Strictly +speaking the nested <and> tags aren't needed, but they do no harm, and are added +automatically when destroying by [T]ype. + +#####GThis is all well and good but the numbers are going to get rather confusing +#####Garen't they? Be much easier if I could just write 'swords' or 'daggers'. +Well, you can. Kind of. Instead of using the admittedly rather obtuse numbers, +you can use the name of that tvalue rather than the number it represents. So +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: + +N:43:& Dagger~ +G:|:W +I:23:4:0 +W:0:0:12:10 +A:0/1:5/1:10/1:20/1 +P:0:1d4:0:0:0 +<snip> +The only line we're interested in is the one that starts I (for Index). The +first number is the tval, and the second is the sval. +Of course you could always rename your rule to make things clearer. + +#####GOK so you mentioned something about setting rules up that happen only if a +#####Gplayer is a certain level? +Yeah, good point. Well, let's develop our destroy average swords rule for the +moment. Let's say we always wanted to destroy average swords by the time we got +to character level 20. They don't earn enough gold to make it worth carrying +back to town, and we'll have a better weapon by then anyway. So here we are in +the automatizer screen, with the destroy sword rule displaying in the right hand +window. If we hit tab, the right window becomes active and the rules at the +bottom change: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|gdgegsgtgrgogyB B B B B B w B|v<vrvuvlveB BnBaBmBew=w"ydyeysytyryoyyw"B BtByBpBew=w"ydyeysytyryoyyw"v>B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wdwewswtwrwowyB B B B B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G<GtGvGaGlG>w2w3g<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|v<v/vrvuvlvev>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW/BlBeBfBtW/BrBiBgBhBtW WtWoW WnWaWvWiWtWaWgWeW WrWuWlWeW,W B9W/B3W/B7W/B1W WtWoW WsWcWrWoWlWlw w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BtBaBbW WfWoWrW WsWwWiWtWcWhW,W BaWdWdW WcWlWaWuWsWeW,W BdWeWlWeWtWeW WcWlWaWuWsWeW/WrWuWlWew w w w w w w w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +You can see the <rule> tags have changed to purple, indicating they are the +active ones, that all key presses will act upon. Let's just quickly scoot +through these new commands: +up/down/left/right to navigate rule: These will change which clause is active, +enabling you to delete that clause, or add further clauses inside that one if it +so allows it. +9/3/7/1 to scroll: scrolls the whole screen which can become useful if you have +a particularly long rule or one with lots of nested clauses. +tab for switch: will make the left-hand window active again. +add clause: adds a new clause within the active one, providing the active clause +is either a <and>, <or> or <not> tag. +delete clause/rule: deletes the active clause, and any clauses nested within +that one. Therefore if the <rule> tags are active, the whole rule will be +deleted. Beware! + +So if we now hit our right arrow we see that the <and> tags are active. We can +now add a new clause here. Let's do so by pressing 'a'. You'll now see a list of +different types of clauses you can add, which you simply scroll through using up +and down keys, and select by hitting enter. A brief description of the selected +clause is shown in the right hand window. Scroll down to the 'level' rule type +and hit enter. You'll be asked to enter a player level. Let's go for 20. You'll +then be asked for a maximum level, put 50, as we want the rule to be true from +level 20 and upwards. You'll now see our rule displays as: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|gdgegsgtgrgogyB B B B B B w B|G<GrGuGlGeB BnBaBmBew=w"ydyeysytyryoyyw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wdwewswtwrwowyB B B B B B w B|v v v v v<vavnvdv>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G<GtGvGaGlG>w2w3g<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y2y0w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|v v v v v<v/vavnvdv>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW/BlBeBfBtW/BrBiBgBhBtW WtWoW WnWaWvWiWtWaWgWeW WrWuWlWeW,W B9W/B3W/B7W/B1W WtWoW WsWcWrWoWlWlw w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BtBaBbW WfWoWrW WsWwWiWtWcWhW,W BaWdWdW WcWlWaWuWsWeW,W BdWeWlWeWtWeW WcWlWaWuWsWeW/WrWuWlWew w w w w w w w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +So there we go. A rule which will destroy all {average} swords once the player +is past character level 20. + +#####GHmmm I've tried this, it doesn't destroy cursed swords though... +Nope. You haven't told it to. If you want a scaling rule, which always destroys +cursed swords and then destroys average swords at character level 20, then {good} +swords at character level 35, have a look at this, rather more complicated rule. + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|wswhwiwewlwdB B B B B B B w B|G<GrGuGlGeB BnBaBmBew=w"ysywyoyrydysw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wbwowwB B B B B B B B B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|whwrwdw wawrwmwowuwrB B B w B|G G G G G G G G G<GtGvGaGlG>w2w3g<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wawxwewsB B B B B B B B B w B|G G G G G G G G G<GoGrG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|whwewlwmwsB B B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswowfwtw wawrwmB B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y0w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B B w B| +&&&&&B|wbwowlwtwsB B B B B B B B w B|G G G G G G G G G G G G G G G G G<GoGrG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wbwowowtwsB B B B B B B B w B|G G G G G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wvwewrwyw wbwawdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wgwlwowvwewsB B B B B B B w B|G G G G G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wbwawdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wpwowlwewawrwmwsB B B B B w B|g g g g g g g g g g g g g g g g g<g/gogrg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wcwlwowawkB B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|GsGwGoGrGdGsB B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|whwawfwtwewdwsB B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y1y5w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B w B| +&&&&&B|wawrwrwowwwsB B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswhwowtB B B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wbwowowmwewrwawnwgB B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wtwowrwcwhB B B B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y2y5w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B w B| +&&&&&B|wrwowdw wtwiwpwsB B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wgwowowdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wpwowtwiwownwsB B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wrwiwnwgwsB B B B B B B B w B|g g g g g g g g g<g/gogrg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wwwawnwdwsB B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wmwuwswhwrwowowmwsB B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswcwrwowlwlwsB B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wawmwuwlwewtwsB B B B B B w B|w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w B| +&&&&&B|wpwawrwcwhwmwewnwtwsB B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|wswhwawpwew wpwowtB B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|wswtwawvwewsw w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +#####GWoah! What the heck is that?! +OK ok slow down a minute. Look at it carefully and a clause at a time. It's not +difficult. Let's take it from the top. It's a destroying rule called swords. It +opens with some <and> tags. The object must be a sword (tval 23). Now we have an +OR tag, so we know that there are going to be some options: +option 1: the player is between level 0 and level 50, and the sword pseudo id's +as either cursed or worthless. +option 2: the player is above character level 15, and the sword pseudo id's as +average. +option 3: the player is above character level 25, and the sword pseudo id's as +good. +If any of these options are true, the rule is carried out. This rule could +easily be copied for other weapons or pieces of armour, substituting only the +tval, and perhaps the name. + +#####GHmmm ok. looks good. I might want to change those character level values +#####Gthough. they look a bit low... +Well yeah, that's up to your playing style I guess... If you want to edit +clauses directly rather than delete and re-add them, you might want to edit the +automat.atm file directly. Just open it in your text editor (it's located in +your lib/user directory or in ~/.tome on multiuser systems) and you'll see the +format is identical to how it is displayed in the automatizer file. Just watch +your spellings, and keep a back-up of the original to replace if things go +wrong. Don't mess about in there if you feel unsure of what you're doing though. + +#####GSo what about those examples you gave up above? Like destroying scrolls of +#####Gdarkness unless you are a vampire or an alchemist? +OK, let's add this rule from scratch rather than from the destroy item prompt. +In the automatizer screen, hit 'n' for new rule. It asks for a name and a type +of rule (destroy/pickup/nothing). I called my rule "? of darkness", and it's a +destroy rule. It is worthwhile thinking at this point how the rule is going to +be structured; for very complicated rules pen and paper may help. We're going to +need to define the object (either by name, or by tval and sval) then we're going +to say unless the player race modifier is vampire, or the player class is +alchemist. So we are obviously going to have more than one clause, and the +clauses are going to have to BOTH be true for the rule to take effect so the +first clause we add is an <and> one. So hit 'a' for add clause and enter to +select the <and> clause. Lets now hit our right arrow, so the <and> tags are +active, and add a new rule. We can now select the <name> tags. At this point +we're prompted for the name. Now it's not case-sensitive, but you do need to +spell it correctly! +With the <and> tags still highlighted we now want to add our "unless vampire or +alchemist" clause. Seeing as this is an "unless" type clause, we start with a +<not> tag. So again, 'a'dd a new clause, and select <not>. +Now make the <not> tag active by moving right and down with the cursor keys. We +want "EITHER vampire or alchemist" so we include <or> tags, again by moving +across to make the <not> tags active and 'a'dding a new <or> clause. Then select +the <or> tags and 'a'dd a new <subrace> clause. Enter 'vampire'. +So the last part is to add alchemist. Now this might at first glance seem to be +a simple case of 'a'dding a new clause of the <class> type, within the <or> +tags, and there is certainly nothing 'wrong' with doing this. At present there +is no way for non-alchemists to get the alchemy skill, but it is sometimes best +to 'future-proof' against such possibilities. That's what we're going to do +here. +So rather than add a <class> clause, we're going to add a <skill> clause. +With the <or> tags active, 'a'dd a new <skill> clause. You're first asked for a +minimum skill level. Well, we can't use any skill unless we have 1.00 whole +skill points in it or more, so we can put 1 in here. We're then asked for a +maximum skill level, so we'll put in 50 here. The skill name must be spelled +correctly (as it appears on the skill screen) so we put 'Alchemy' here. Your +complete rule now appears as follows: + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|G?G GdGaGrGkGnGeGsGsB B B w B|G<GrGuGlGeB BnBaBmBew=w"y?y ydyayrykynyeysysw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswwwowrwdwsB B B B B B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswawlwtw wwwawtwewrB B B w B|G G G G G G G G G<GnGaGmGeG>wSwcwrwowlwlw wowfw wdwawrwkwnwewswsg<g/gngagmgeg>B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G<GnGoGtG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GoGrG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGuGbGrGaGcGeG>wvwawmwpwiwrweg<g/gsgugbgrgagcgeg>B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGkGiGlGlB BmBiBnw=w"y1w"B BmBaBxw=w"y5y0w"G>wAwlwcwhwewmwyg<g/gsgkgiglglg>B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g<g/gogrg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g<g/gngogtg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +You'll notice I've also renamed the rules to make things a bit more legible. + +#####GOK I'm getting there now, what about the boots of speed thing you talked about? +Heh. Take a look at this, and see if you can work out what it's doing first +before I talk you through it + +&&&&&B/B-B-B-B-BRBuBlBeBsB-B-B-B-B-B/B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B\ +&&&&&B|GbGoGoGtGsB B B B B B B B w B|G<GrGuGlGeB BnBaBmBew=w"ybyoyoytysw"B BtByBpBew=w"ydyeysytyryoyyw"G>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|w?w wdwawrwkwnwewswsB B B w B|G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswwwowrwdwsB B B B B B B w B|G G G G G G G G G<GtGvGaGlG>wTwVw_wBwOwOwTwSg<g/gtgvgaglg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wswawlwtw wwwawtwewrB B B w B|G G G G G G G G G<GoGrG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|wfwowowdB B B B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y0w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GoGrG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wvwewrwyw wbwawdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wbwawdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g g g g g<g/gogrg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y2y0w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wawvwewrwawgweg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y3y5w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wgwowowdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G<GaGnGdG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GlGeGvGeGlB BmBiBnw=w"y4y5w"B BmBaBxw=w"y5y0w"G>g<g/glgegvgeglg>B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGuGsG>wvwewrwyw wgwowowdg<g/gsgtgagtgugsg>B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GsGtGaGtGeG>wiwdwewnwtwiwfwiwewdg<g/gsgtgagtgeg>B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G<GnGoGtG>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|G G G G G G G G G G G G G G G G G G G G G<GcGoGnGtGaGiGnG>wswpwewewdg<g/gcgogngtgagigng>B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g g g g g<g/gngogtg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g g g g g<g/gogrg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g g g g g<g/gagngdg>B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B w B| +&&&&&B|B B B B B B B B B B B B B w B|g<g/grguglgeg>w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w B| +&&&&&B|B B B B B B B B B B B B B w B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/ +&&&&&B|B B B B B B B B B B B B B w B|w BuBpW/BdBoBwBnW WtWoW WsWcWrWoWlWlW,W BtBaBbW WtWoW WsWwWiWtWcWhW WtWoW WtWhWeW WrWuWlWeW WwWiWnWdWoWww w w w w w w w w w w w w +&&&&&B|w w w w w w w w w w w w w w B|w BuW/BdW WtWoW WmWoWvWeW WrWuWlWeWsW,W BnWeWwW WrWuWlWeW,W BrWeWnWaWmWeW WrWuWlWeW,W BsWaWvWeW WrWuWlWeWsw w w w w w w w w w w w +&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w + +The majority of this is fairly similar to the swords rule; it destroys {average} +boots at character level 20, {good} ones at character level 35 and cursed ones +always. The addition is at the bottom. It adds clauses which will destroy +excellent items providing that they have been identified and that the name does +not contain the word "speed". The <state>identified</state> bit is important +here, as it would destroy the boots on pseudo-id otherwise, before it even saw +the full name of the boots. + +#####GThis is fantastic! Where can I get more help? +email me: fearoffours@t-o-m-e.net diff --git a/lib/mods/theme/help/birth.txt b/lib/mods/theme/help/birth.txt new file mode 100644 index 00000000..9e7da8dd --- /dev/null +++ b/lib/mods/theme/help/birth.txt @@ -0,0 +1,659 @@ +|||||oy +~~~~~84|Birth +~~~~~11|Character +#####R /----------------------------------------\ +#####R < Creating a Character > +#####R \----------------------------------------/ + + *****birth.txt*01[Creating a Character] *****birth.txt*02[Character Characteristics] + *****birth.txt*03[Races] *****birth.txt*04[Race Modifiers] + *****birth.txt*05[Classes] *****birth.txt*83[Gods] + *****birth.txt*06[Stats] *****birth.txt*07[Abilities] + *****birth.txt*08[Combinations of Race and Class] *****birth.txt*09[Stat bonus tables] + +~~~~~01|Character|Creating a Character +~~~~~12|Creating a Character +#####R=== Creating a Character === + +ToME is a roleplaying game, in which you, the player, control a +character in the various dungeons and places of Arda. Perhaps the most +important thing you control is the birth of your character, in which you +choose or allow to be chosen various attributes that will affect the future +life of your character. + +Character creation, or birth, is controlled through a variety of choices +as to constraints on the type of character you wish to play, followed by +a series of random calculations to generate ("roll up") a random character +matching the appropriate constraints. + +Once your character has been generated, you will be given the choice to +generate a new character obeying the same constraints, and once you have +generated more than one character, you can switch back and forth between +the two most recent characters, until you are presented with a personality +that you feel comfortable with. + +You may start the entire process over at any time. + +Once you have accepted a character you will asked to provide a name for the +character. In general, the actual choice of a name is not important, but do +keep in mind that it may have some effect on the game itself. For example, +on some machines, the character name determines the filename that will be +used to save the character to disk. On others, the character name specifies +special "pref" files. And the character name is used on the high score list. + +~~~~~02|Character|Characteristics +~~~~~13|Character|Stats 1 +~~~~~14|Stats|Display +~~~~~37|Display +~~~~~82|Stats +#####R=== Character Characteristics === + +Each character has four primary attributes -- gender, race, race modifier and +class -- that are chosen before the character is generated, and all but gender +stay fixed for the entire life of that character. These attributes have many +effects, which will be mentioned as they come up. Keep in mind that in the +current version of ToME, your choice of race may restrict your choice +of class. + +Each character has a few secondary attributes -- height, weight, social class, +and background history -- which are randomly determined, but which are affected +by the gender and race of the character. In general, these attributes are only +used to provide "flavor" to the character, to assist in the role playing, but +they do have a few minor effects on the game. For example, background history +affects social class, which affects the amount of money the character will +start with. + +Each character also has six primary "stats": strength (STR), intelligence +(INT), wisdom (WIS), dexterity (DEX), constitution (CON), and charisma(CHR). +These stats will increase automatically every 5 levels, until the limit for +each statistic has been reached or until you reach level 50 (whichever +comes first.) Note that this automatic gain is given to +a character only once, so if you restart a character from an old savefile, +he will be considered a descendant of the original character and will not start +gaining stats every 5 levels until he reaches the point where the original +character died. + +By default, primary statistics are represented in a linear way rather than a +percentile way. You can change to percentile via the game option sequence '=', +'5' (ToME options), arrow down to 'stats are represented in a linear way', and +type 'n' for no. Don't forget to save your options when you are done. + +These stats modify the abilities of the character in a variety of ways. Every +stat has a numerical value, ranging from a minimum of 3, up to a normal maximum +of 18, and even higher, into the "percentile" range, represented as "18/01" +through "18/100". Actually, every stat can be raised even above 18/100 by +magical means, up to a pure maximum of 18/220, which is represented as +"18/***". Traditionally, a percentile stat such as "18/50" has been though of +as representing a value part way between 18 and 19, and this is one way to +think of them. However, often, the best way to view the "bonus" values after +the "18/" is as "tenth" points, since it often takes the same magic to raise a +stat from, say, 4 to 5, or 16 to 17, as it does from, say, 18/40 to 18/50. The +important thing to remember is that almost all internal calculations "ignore" +the final digit of any "bonus", so that, for example, "18/40" and "18/49" +generally have the same effects. During character generation, each stat is +rolled out as a number from 8 to 17, with a normal (bell-curve) distribution, +and is then immediately modified based on the race and class of the character. + +Each character also has several primary "skills" -- disarming, magic devices, +saving throws, stealth, searching ability, searching frequency, fighting skill, +and shooting skill -- which are derived from the character's race, class, level, +stats, and current equipment. These skills have rather obvious effects, but +will be described more completely below. + +Each character may have one or more "intrinsic racial skills", based on +the race of the character. These may include special resistances, abilities +such as infravision, or even activatable powers such as food creation. +~~~~~16|Gold +~~~~~81|Abbreviations +~~~~~17|Abbreviations|AU +~~~~~18|Money +Money in ToME is referred to in gold pieces, also frequently abbreviated as AU +(the chemical symbol for gold). + +Each character starts with some gold, which can be used to buy items from the +shops in town. Additionally, gold can be obtained by several means: + + * selling items you have, or find, to the shops + * taking it from dead monsters + * finding it lying around on the floor in the dungeon + * digging it out of the walls in certain dungeons + +Each character starts out with some gold. The amount you start with is based on +social class (higher is better), charisma (higher is better), and some other +stats (less powerful characters start with more gold). +~~~~~85|Inventory - starting info +Inventory is what you are carrying and/or wearing at the moment. All items you +carry/wear have a certain weight. If the weight is very heavy for your +strength, it can slow you down, and that is not a good thing for your +character's continuing health. When your character is first created, all items +you are granted upon creation will be in your inventory. Sometimes starting +inventory includes something other than a weapon or armor (for example, a light +source, scroll, potion, or food.) +~~~~~86|Weapons - starting info +Some characters start with a weapon. If yours does, you will need to 'w'ield it +in order to gain its attack capabilities. +~~~~~23|Character|Armor Class +~~~~~19|Armor|Armor Class +~~~~~20|Abbreviations|AC +#####R === Armour Class === +Each character has an armor class, representing how well the character can +avoid damage. The armor class is affected by dexterity, the equipment, and +sometimes the race. The higher the AC, the better. + +The numbers following a piece of armor's name indicate how good it is. A Metal +Cap [3,+0] is not as good as an Iron Helm [5,+0], AC-wise, since the 5 is a +bigger number than the 3. On the other hand, an Iron Helm is heavier than a +Metal Cap, and that may make a difference to you. + +The plusses following the first number (e.g. the +0) indicate a magical bonus. +If the plus number is more than zero, it should be added on to the base +number. E.g. a Metal Cap [3,+3] has a higher AC than an Iron Helm [5,+0]. + +Some characters start with armor. If yours does, you need will need to 'w'ield +it in order to gain its protection. +~~~~~21|Abbreviations|HP +~~~~~22|Character|Hit Points +Each character has hit points (HP), representing how much damage the character +can sustain before death. Hit points are derived from your race, class, +level, and constitution, and can be temporarily boosted by magical means. +Hit points may be regained by resting, or by a variety of magical means. +~~~~~24|Abbreviations|SN +~~~~~25|Character|Sanity Points +Each character has sanity points (SN), representing how much mental damage the +character can sustain before death. Sanity points are derived from your wisdom +and character level. Sanity points may only be regained by magical means and +won't be regained by resting. +~~~~~26|Abbreviations|SP +~~~~~27|Magic|Mana +~~~~~28|Character|Mana +Each character has a certain amount of mana. The amount of mana represents how +many spells of a certain difficulty a character can cast. When a spell is +cast, you lose amount of mana corresponding to the 'cost' of the spell. + +When all mana is gone, or the cost of a given spell is greater than the amount +of mana you have left, you may attempt to cast a spell; beware, as there are +consequences to such a rash act. + +Spell points may be regained by resting. They can also be restored by a few +magical means. + +Your spell points are derived from your Magic skill, player level and the +greatest of INT and WIS. + +Your total spell points are additionally affected by: + + * your character's race modifier + * character class + +Your total spell points may be affected by: + + * your encumbrance + * what you wear + +~~~~~29|Abbreviations|Pt +~~~~~30|Gods|Piety +~~~~~31|Character|Piety +Finally, characters that have chosen to follow a *****gods.txt*0[God] will have piety points +(Pt). These points represent the character's standing with their God, a +standing which may rise or fall over time. A character may spend piety points +to cast a spell granted by his/her God. Spent piety points can be regained in +different fashions, depending on which God is involved -- each is pleased or +displeased by assorted actions. Pleasing your God gains you piety, while +displeasing your god will lose you piety. + +In addition to forming the basis for God-granted spells, accumulated piety +points may also confer various benefits or penalties upon your character, +depending on the God involved. For example, followers of Eru who have +accmulated lots of piety points gain a WIS bonus. The actual rules are +quite specific to each God. +~~~~~03|Races +#####R=== Races === + +There are lots different races that you can choose from in ToME. Some +races are restricted as to what profession they may be, and each race has +its own adjustments to a character's stats and abilities. Most races also +have intrinsic abilities, which can be accessed via the "U" command (original +keyset, or "O" in the roguelike keyset). + + *****r_beorn.txt*0[Beorning] *****r_hafelf.txt*0[Half-Elf] *****r_orc.txt*0[Orc] + *****r_drkelf.txt*0[Dark Elf] *****r_hafogr.txt*0[Half-Ogre] *****r_pettyd.txt*0[Petty-Dwarf] + *****r_dragon.txt*0[Dragon] *****r_hielf.txt*0[High-Elf] *****r_rohank.txt*0[Rohan Knight] + *****r_dunad.txt*0[Dunadan] *****r_hobbit.txt*0[Hobbit] *****r_eagle.txt*0[Eagle] + *****r_dwarf.txt*0[Dwarf] *****r_human.txt*0[Human] *****r_troll.txt*0[Troll] + *****r_elf.txt*0[Elf] *****r_druadan.txt*0[Druadan] *****r_wodelf.txt*0[Wood Elf] + *****r_ent.txt*0[Ent] *****r_maia.txt*0[Maia] *****r_yeek.txt*0[Yeek] + *****r_gnome.txt*0[Gnome] *****r_demon.txt*0[Demon] +~~~~~04|Race Modifiers +#####R=== Race Modifiers === +There are many different race modifiers from which you can choose in ToME. +Some are restricted as to what race they can be used with, and each one has +its own adjustments to a character's stats and abilities. Most also have +intrinsic abilities. If you are not asked for a race modifier, it is because +your race only supports the classical form. + + *****rm_class.txt*0[Classical] *****rm_barb.txt*0[Barbarian] + *****rm_herm.txt*0[Hermit] *****rm_lsoul.txt*0[Lost Soul] + *****rm_skel.txt*0[Skeleton] *****rm_spec.txt*0[Spectre] + *****rm_zomb.txt*0[Zombie] *****rm_vamp.txt*0[Vampire] + +Dragon subraces: + + *****rm_red.txt*0[Red] *****rm_blue.txt*0[Blue] + *****rm_black.txt*0[Black] *****rm_white.txt*0[White] + *****rm_green.txt*0[Green] *****rm_ether.txt*0[Ethereal] + +Demon subraces: + + *****rm_narrog.txt*0[Narrog] *****rm_drarog.txt*0[Draugrog] + *****rm_aewrog.txt*0[Aewrog] *****rm_lygrog.txt*0[Lygrog] + *****rm_hurog.txt*0[Hurog] *****rm_limrog.txt*0[Limrog] + *****rm_sarnrog.txt*0[Sarnrog] *****rm_rawrog.txt*0[Rawrog] + *****rm_cabrog.txt*0[Caborrog] *****rm_adanrog.txt*0[Adanrog] + +~~~~~05|Classes +#####R=== Classes === + +Once a race has been chosen, you will need to pick a class. Some classes will +not be available to certain races, for instance, a Troll cannot become a +Paladin. For the first few adventures it is suggested that you run a warrior +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_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] + *****c_clairv.txt*0[Clairvoyant] *****c_peacemag.txt*0[Peace-mage] *****c_symbia.txt*0[Symbiant] + *****c_pr_drk.txt*0[Dark-Priest] *****c_polear.txt*0[Polearmmaster] *****c_thaum.txt*0[Thaumaturgist] + *****c_demono.txt*0[Demonologist] *****c_posses.txt*0[Possessor] *****c_trapper.txt*0[Trapper] + *****c_druid.txt*0[Druid] *****c_pr_eru.txt*0[Priest(Eru)] *****c_unbel.txt*0[Unbeliever] + *****c_geoman.txt*0[Geomancer] *****c_pr_mand.txt*0[Priest(Mandos)] *****c_wainrid.txt*0[Wainrider] + *****c_hafted.txt*0[Haftedmaster] *****c_pr_man.txt*0[Priest(Manwe)] *****c_warper.txt*0[Warper] + *****c_lorema.txt*0[Loremaster] *****c_pr_ulmo.txt*0[Priest(Ulmo)] *****c_warmage.txt*0[War-mage] + *****c_mage.txt*0[Mage] *****c_pr_varda.txt*0[Priest(Varda)] *****c_warrio.txt*0[Warrior] + *****c_mercen.txt*0[Mercenary] *****c_ranger.txt*0[Ranger] + +#####R=== Gods === + +Once a class has been chosen you may be given the option to choose a god. Some +classes (notably most Priests) will be given a God to worship automatically. +Some classes are not necessarily suited to following a God, and Gods are not +recommended for new players. You can also choose your mind about who (if +anyone) to worship during the game by finding an *****tome_faq.txt*04[altar] of that God. + +Read *****gods.txt*0[gods.txt] for a little more information about Gods. + + *****g_eru.txt*0[Eru Iluvatar] *****g_tulkas.txt*0[Tulkas] + *****g_manwe.txt*0[Manwe Sulimo] *****g_aule.txt*0[Aule] + *****g_varda.txt*0[Varda Elentari] *****g_ulmo.txt*0[Ulmo] + *****g_yavann.txt*0[Yavanna Kementari] *****g_mandos.txt*0[Mandos] + *****g_melkor.txt*0[Melkor Bauglir] + +~~~~~39|Character|Stats 2 +~~~~~06|Stats|Individual explanations +#####R=== Stats === +~~~~~32|Stats|Strength +~~~~~34|Strength +#####G Strength (STR) + Strength is important in fighting with weapons and in melee + combat. A high strength can improve your chances of hitting + as well as the amount of damage done with each hit. Char- + acters with low strengths may receive penalties. Strength + is also useful in tunnelling and in carrying heavy items. +~~~~~33|Stats|Intelligence +~~~~~35|Intelligence +#####G Intelligence (INT) + Intelligence affects the spellcasting abilities of mage-like + spell schools (whether these spells are learned directly through + their associated skills, or indirectly through the Prayer + skill), as well as some of the special abilities of various + classes (e.g. Symbiants). Intelligence will affect the number + of spell points you receive. A high intelligence may also + improve your chances of successfully casting a spell. You cannot + learn spells if your intelligence is 7 or lower. A good + intelligence can also help with using magic devices, picking + locks, and disarming traps. +~~~~~36|Stats|Wisdom +~~~~~38|Wisdom +#####G Wisdom (WIS) + The primary function of wisdom is to determine the ability + of a priest or paladin to use prayers (God-granted spells), just + like intelligence affects mage spells. Again, high wisdom will + increase the number of spell points you have (even though + prayers use piety points), and will improve the chance that a + prayer will be successful. A good wisdom can also help to + improve your chances of resisting magical spells cast + upon you by monsters. +~~~~~40|Stats|Dexterity +~~~~~41|Dexterity +#####G Dexterity (DEX) + Dexterity is a combination of agility and quickness. A high + dexterity may allow your character to get multiple blows with + lighter weapons, thus greatly increasing your kill power, and + will increase your chances of hitting with any weapon and + dodging blows from enemies. Dexterity is also useful in + picking locks, disarming traps, and protecting yourself from + some of the thieves that inhabit the dungeons. The unscrupulous + adventurer may also find dexterity effective in obtaining items + from stores without rendering payment. +~~~~~42|Stats|Constitution +~~~~~43|Constitution +#####G Constitution (CON) + Constitution is a character's ability to resist damage to his + body, and to recover from damage received. Therefore a + character with a high constitution will receive more hit + points and also recover them faster while resting. +~~~~~44|Stats|Charisma +~~~~~45|Charisma +#####G Charisma (CHR) + Charisma represents a character's personality and physical + appearance. A character with a high charisma will receive + better prices from store owners, whereas a character with a + very low charisma may be robbed blind. A high charisma will + also mean more starting money for the character. +~~~~~07 +~~~~~46|Character|Abilities +#####R=== Abilities === + + Characters possess some different abilities which can help them + to survive. The starting abilities of a character are based upon + race and class. Abilities may be adjusted by high or low stats, + and increase with the corresponding *****skills.txt*0[skill] level. +~~~~~48|Attacking monsters|Fighting ability +#####G Fighting + Fighting is the ability to hit and do damage with weapons or + fists. Normally a character gets a single blow from any + weapon, but if his dexterity and strength are high enough, + he may receive more blows per round with lighter weapons. + Strength and dexterity both modify the ability to hit an + opponent. This skill increases with the *****skills.txt*02[Weaponmastery] skill + and its sub-skills. +~~~~~50|Attacking monsters|Shooting +#####G Shooting Ability (Bows/Throw) + Using ranged missile weapons (and throwing objects) is + included in this skill. Different stats apply to different + weapons, but this ability may modify the distance an object + is thrown/fired, the amount of damage done, and the ability + to hit a creature. This skill increases with the *****skills.txt*08[Archery] skill + and its sub-skills. +~~~~~52|Saving throw +#####G Saving Throw + A Saving Throw is the ability of a character to resist the + effects of a spell cast on him by another person/creature. + This does not include spells cast on the player by his own + stupidity, such as quaffing a nasty potion. This ability + increases with the *****skills.txt*38[Spirituality] skill, + A high wisdom also increases this ability. +~~~~~54|Stealth +#####G Stealth + The ability to move silently about is very useful. Charac- + ters with good stealth can usually surprise their opponents, + gaining the first blow. Also, creatures may fail to notice + a stealthy character entirely, allowing a player to avoid + certain fights. This skill is based upon race, class and the + *****skills.txt*15[Stealth] skill. +~~~~~56|Disarming traps +#####G Disarming + Disarming is the ability to remove traps (safely), and + includes picking locks on traps and doors. A successful + disarming will gain the character some experience. A trap + must be found before it can be disarmed. Dexterity and + intelligence both modify the ability to disarm, and this + ability increases with the *****skills.txt*16[Disarming] skill. +~~~~~58|Magical Devices +#####G Magic Device + Using a magical device such as a wand or staff requires + experience and knowledge. Spell users such as magi and + priests are therefore much better at using a magical device + than say a warrior. This skill is modified by intelligence, + and increases with the *****skills.txt*54[Magic-Device] skill. +~~~~~60|Searching +~~~~~61|Searching|Searching Frequency - Perception +~~~~~62|Perception +#####G Searching Frequency (Perception) + Perception is the ability to notice something without + actively seeking it out. This skill is based upon race, + class and the *****skills.txt*14[Sneakiness] skill. +~~~~~63|Searching|Searching Ability +#####G Searching Ability (Searching) + To search is to actively look for secret doors, floor traps, + and traps on chests. Rogues are the best at searching, but + magi, rangers, and priests are also good at it. This skill + is based upon race, class and the *****skills.txt*14[Sneakiness] skill. +~~~~~66|Infra-vision +#####G Infra-vision + Infra-vision is the ability to see heat sources. Since most + of the dungeon is cool or cold, infra-vision will not allow + the player to see walls and objects. Infra-vision will allow + a character to see any warm-blooded creatures up to a cer- + tain distance. This ability works equally well with or with + out a light source. The majority of ToME's creatures are + cold-blooded, and will not be detected unless lit up by a + light source. Most non-human races have innate infra-vision + ability. Humans can gain infra-vision only through magic + enhancement. + +~~~~~08|Character|Race and Class Combinations +~~~~~67|Races|Combinations with class +~~~~~68|Classes|Combinations with Race +~~~~~69|Tables +~~~~~70|Tables|Combinations of Race and Class +#####R=== Combinations of Race and Class === + +These are the classes that are recommended for different races. You can +still select a race that is not in the chart, but these combinations are +either rather poor (like a zombie mage), a concept so silly that they +are not recommended, or an incredibly unfair combination of race and class. +If you pick a combination that is not on the chart, don't complain if things +don't turn out as you expected them to. + +#####B Warrior Archer Rogue Mage Priest Loremaster +#####B +Beorning Yes No Yes No No Yes +Dark Elf Yes Yes Yes Yes Yes No +Dragon No No No Yes Yes Yes +Dunadan Yes Yes Yes Yes Yes Yes +Dwarf Yes No No No Yes No +Elf Yes Yes No Yes Yes Yes +Ent Yes No No No Yes Yes +Gnome Yes No Yes Yes No No +Half-Elf Yes Yes Yes Yes Yes Yes +Half-Ogre Yes No No No Yes No +High-Elf Yes Yes No Yes Yes Yes +Hobbit Yes Yes Yes Yes No Yes +Human Yes Yes Yes Yes Yes Yes +Druadan Yes Yes Yes No No Yes +Maia Yes Yes Yes Yes Yes Yes +Orc Yes Yes Yes No Yes No +Petty Dwarf Yes No Yes No No No +RohanKnight Yes No No No Yes No +Eagle No No No Yes Yes Yes +Troll Yes No No No No No +Wood Elf Yes Yes No Yes Yes Yes +Yeek Yes Yes Yes Yes Yes Yes +Easterling Yes Yes No No No No +Demon Yes Yes Yes Yes Yes Yes + +~~~~~09|Character|Stat Bonus Table +~~~~~71|Stats|Bonus table +~~~~~72|Tables|Stat bonuses +#####R=== Stat Bonus Tables === + +Stat, hit dice, and experience points per level modifications due to race +are listed in the following table. +~~~~~75|Races|Stat Bonuses +#####GRaces: +#####B STR INT WIS DEX CON CHR Hit Dice Rqd Exp/level + Beorning +4 -2 -2 -1 +3 -5 12 +50% + Dark Elf -1 +3 +2 +2 -2 +1 9 +50% + Dragon +3 +2 +2 -2 +2 -5 9 +150% + Dunadan +1 +2 +2 +2 +3 +2 10 +80% + Dwarf +2 -2 +2 -2 +2 -3 11 +25% + Elf -1 +2 +2 +1 -2 +2 8 +20% + Ent +10 -3 +2 -5 +11 -3 14 +110% + Gnome -1 +2 0 +2 +1 -2 8 +35% + Half-Elf 0 +1 +1 +1 -1 +1 9 +10% + Half-Ogre +3 -1 -1 -1 +3 -3 12 +30% + High-Elf +1 +3 +2 +3 +1 +5 10 +100% + Hobbit -2 +2 +1 +3 +2 +1 7 +10% + Human 0 0 0 0 0 0 10 +0% + Druadan -2 -3 +2 +3 +2 -2 9 +15% + Maia 0 0 0 0 0 0 10 +0% + Petty Dwarf +1 -1 +2 0 +2 -4 11 +35% + Orc +2 -1 0 +1 +1 -4 10 +10% + RohanKnight +4 -2 +3 +1 +4 +2 10 +120% + Eagle +6 +2 +1 -2 +3 +6 12 +200% + Troll +4 -4 -2 -4 +3 -6 12 +37% + Wood Elf +2 +2 -3 +5 0 +1 7 +30% + Yeek -5 -5 -5 -5 -5 -5 6 -75% + Easterling +2 -2 -2 -2 +2 -1 10 +40% + Demon 0 0 0 0 0 -1 10 +70% +~~~~~76|Race Modifiers|Stat Bonuses +#####GRace Modifiers: +#####B STR INT WIS DEX CON CHR Hit Dice Rqd Exp/level + Classical 0 0 0 0 0 0 +0 +0% + Barbarian +2 -3 -2 +1 +1 -3 +1 +25% + Hermit -3 +1 +1 -3 -3 +1 -3 +20% + Lost Soul 0 0 0 0 0 0 +0 +0% + Skeleton 0 -2 -2 0 +1 -4 +0 +45% + Spectre -5 +1 +1 +2 -3 -6 -4 +80% + Vampire +3 +2 -3 -2 +1 -4 +1 +100% + Zombie +2 -6 -6 +1 +4 -5 +3 +45% + + +#####R Dragons: + Red +3 0 0 0 0 0 +0 +0% + Black 0 0 0 0 0 +3 +0 +0% + Green 0 0 0 0 +3 0 +0 +0% + Blue 0 0 0 +3 0 0 +0 +0% + White 0 +3 0 0 0 0 +0 +0% + Ethereal 0 0 +3 0 0 0 +0 +0% + +#####R Demons: + (Narrog) -1 +1 +1 +1 -1 -2 +1 +20% + (Aewrog) -2 0 0 0 +3 0 +1 +0% + (Hurog) 0 0 0 0 0 -1 +0 -10% + (Sarnrog) +2 -1 -2 -2 +2 -1 +2 +20% + (Caborrog) -1 +2 +1 0 0 -3 +2 +10% + (Draugrog) +1 +1 +1 +1 +1 -1 +0 -20% + (Lygrog) -3 +5 +5 +5 -1 -6 +2 +40% + (Limrog) -2 +1 +1 +3 -1 -1 +1 +50% + (Rawrog) +2 +1 +1 -1 +2 +1 +2 +30% + (Adanrog) +1 +1 +1 +1 +1 +1 +3 +50% + +~~~~~77|Classes|Stat Bonuses +#####GClasses: +#####B STR INT WIS DEX CON CHR + Axemaster +5 -2 -2 +2 +2 -1 + Demonologist +5 -2 -2 +2 +2 -1 + Haftedmaster +5 -2 -2 +2 +2 -1 + Polearmmaster +5 -2 -2 +2 +2 -1 + Swordmaster +5 -2 -2 +2 +2 -1 + Unbeliever +5 -2 -2 +2 +2 -1 + Warrior +5 -2 -2 +2 +2 -1 + Wainrider +5 -2 -2 +2 +2 -1 + + Clairvoyant -5 +3 0 +1 -2 +1 + 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 + + Archer +2 +1 0 +2 +1 +1 + Ranger +2 +2 0 +2 +1 +1 + Sniper +2 +2 0 +2 +1 +1 + + Assassin +2 +1 -2 +3 +1 -1 + Rogue +2 +1 -2 +3 +1 -1 + Mercenary +2 +1 -2 +3 +1 -1 + + Ascetic +1 -2 +1 +1 0 +1 + Bard +1 -2 +1 +1 0 +1 + Loremaster +1 -2 +1 +1 0 +1 + Mimic +1 -2 +1 +1 0 +1 + Monk +1 -2 +1 +1 0 +1 + Possessor +1 -2 +1 +1 0 +1 + Summoner +1 -2 +1 +1 0 +1 + Symbiant +1 -2 +1 +1 0 +1 + + Dark-Priest -1 -3 +3 -1 0 +2 + Druid -1 -3 +3 -1 0 +2 + Mindcrafter -1 -3 +3 -1 0 +2 + Paladin -1 -3 +3 -1 0 +2 + Priest(Eru) -1 -3 +3 -1 0 +2 + Priest(Mandos)-1 -3 +3 -1 0 +2 + Priest(Manwe) -1 -3 +3 -1 0 +2 + Priest(Ulmo) -1 -3 +3 -1 0 +2 + Priest(Varda) -1 -3 +3 -1 0 +2 + Stonewright -1 -3 +3 -1 0 +2 + + Trapper 0 +2 +2 +2 0 +4 + Peace-mage 0 +2 +2 +2 0 +4 + + +~~~~~10|Character|Ability tables +~~~~~74|Tables|Ability Tables +#####R=== Ability Tables === + +~~~~~78|Races|Ability table +#####GRaces: +#####B Dsrm Dvce Save Stlh Srch Prcp HtH Misl Infra + Beorning -6 -8 -6 -2 -1 +5 +25 +5 30 feet + Dark Elf +5 +15 +20 +3 +8 +12 -5 +10 50 feet + Dragon +5 +5 +5 -10 +5 +5 +5 -20 50 feet + Dunadan +4 +5 +5 +2 +3 +13 +15 +10 None + Dwarf +2 +9 +10 -1 +7 +10 +15 +0 50 feet + Elf +5 +6 +6 +2 +8 +12 -5 +15 30 feet + Ent +5 +5 +20 -6 +5 +4 +15 +5 50 feet + Gnome +10 +12 +12 +3 +6 +13 -8 +12 40 feet + Half-Elf +2 +3 +3 +1 +6 +11 -1 +5 20 feet + Half-Ogre -3 -5 -5 -2 -1 +5 +20 +0 30 feet + High-Elf +4 +20 +20 +4 +3 +14 +10 +25 40 feet + Hobbit +15 +18 +18 +5 +12 +15 -10 +20 40 feet + Human +0 +0 +0 +0 +0 +10 +0 +0 None + Druadan +5 +0 +0 +5 +15 +15 +0 +5 30 feet + Maia +0 +0 +0 +0 +0 +10 +0 +0 None + Orc -3 -3 -3 -1 +0 +7 +12 -5 30 feet + Petty Dwarf +3 +5 +10 +1 +5 +10 +9 +0 50 feet + RohanKnight +10 +5 +5 -8 +1 +1 +5 +5 None + Eagle +6 0 +10 -16 +30 +10 + 0 +0 50 feet + Troll -5 -8 -8 -2 -1 +5 +20 -10 30 feet + Wood Elf +5 +6 +6 +5 +8 +12 -5 +40 40 feet + Yeek -5 -5 -10 +0 -5 +0 -10 -10 20 feet + Easterling +0 -5 -1 +0 +0 +10 +5 +5 None + Demon +0 +0 +0 +0 +0 +0 +0 +0 30 feet +~~~~~79|Race Modifiers|Ability table +#####GRace Modifiers: +#####B Dsrm Dvce Save Stlh Srch Prcp HtH Misl Infra + Classical +0 +0 +0 +0 +0 +0 +0 +0 +0 feet + Barbarian -2 -10 +2 -2 +0 +1 +12 +5 +0 feet + Hermit +5 +10 +5 +3 +4 +10 -5 -5 +10 feet + Lost Soul +0 +0 +0 +0 +0 +0 +0 +0 +0 feet + Skeleton -5 -5 +5 -1 -1 +8 +8 +0 +10 feet + Spectre +2 +8 +7 +2 +2 +7 -5 -2 +30 feet + Vampire +0 +0 +0 +0 +0 +0 +0 +0 +0 feet + Zombie -2 -2 +5 -1 -1 +2 +5 +0 +10 feet + +#####R Dragons: + Red +0 +0 +0 -2 +2 +0 +5 +0 +10 feet + Black +2 +0 +1 +0 +0 +0 +0 +0 +0 feet + Green +0 +0 +2 +0 +0 +0 +0 +0 +0 feet + Blue +3 +0 +2 +1 +0 +0 +0 +0 +10 feet + White +0 +2 +0 +0 +0 +0 +0 +0 +0 feet + Ethereal +0 +0 +1 +5 +2 +2 +0 +0 +30 feet + +#####R Demons: + (Narrog) +2 +0 +1 +2 +2 +20 +0 +0 +10 feet + (Aewrog) +0 +0 +1 -2 +0 +10 +0 +0 +10 feet + (Hurog) +2 +0 +2 +0 +5 +30 +0 +0 +20 feet + (Sarnrog) -1 +0 +0 -8 -2 -10 +5 +0 +0 feet + (Caborrog) +0 +0 +1 -10 +2 +10 +0 +0 +0 feet + (Draugrog) +2 +0 +2 -20 +5 +30 +0 +0 +20 feet + (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 diff --git a/lib/mods/theme/help/c_alchem.txt b/lib/mods/theme/help/c_alchem.txt new file mode 100644 index 00000000..2f7cd58c --- /dev/null +++ b/lib/mods/theme/help/c_alchem.txt @@ -0,0 +1,135 @@ +|||||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_archer.txt b/lib/mods/theme/help/c_archer.txt new file mode 100644 index 00000000..a115e6f2 --- /dev/null +++ b/lib/mods/theme/help/c_archer.txt @@ -0,0 +1,68 @@ +~~~~~01|Archer +~~~~~02|Classes|Archer +#####R=== Archers === + +#####GDescription +Archers are to bows what warriors are to melee. They are the best class +around with any bow/crossbow/sling/boomerang. + +Needing a lot of ammo, they will learn early how to make it from junk found +in the dungeons. They also gain, at skill level 20, the unique ability to make +their arrows/bolts/shots pierce through monsters! + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom +0 +Dexterity +2 +Constitution +1 +Charisma +1 +Hit Die +d4 +Spell Points +0% +Exp Penalty 30% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.800] + Weaponmastery 1.000 [0.500] + Archery 1.000 [0.850] + Sling-mastery 0.000 [0.500] + Bow-mastery 0.000 [0.500] + Crossbow-mastery 0.000 [0.500] + Boomerang-mastery 0.000 [0.500] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 0.000 [0.200] + Magic-Device 1.000 [1.100] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Ammo creation 2 + +#####GStarting Equipment +An Archer begins the game with: + a Short Bow + a Sling + some ammo +~~~~~03|Creating Ammo +#####GCreating Ammo +Archers automatically gain the *****ability.txt*07[Ammo Creation] ability when they reach character +level 2. (Other classes can purchase this ability when they have enough skill +points.) This ability is accessed via the 'm' command. The first type of +ammo you can make is sling ammo (pebbles or shots); as you increase in skill +you'll be able to make other arrows (bow ammo) or bolts (crossbow ammo). + +Shots (or other sling ammo) are created from rubble piles found in the dungeons +and other places. To make shots, stand next to a rubble pile, activate the +ammo creation ability from the 'm' menu, select 's'hots, then specify the +direction to the rubble pile, which will be consumed during the ammo creation. +Arrows or bolts are made from "junk" items ('~' symbol, such as shards of +pottery) that you can find in the dungeons and other places. To make arrows or +bolts, assuming you have sufficient Archery skill, you must have the junk item +in your inventory or on the ground at your feet. Specify the junk item after +selecting 'a'rrows or 'b'olts from the ammo creation menu, and it will be +consumed and replaced with a stack of ammo. diff --git a/lib/mods/theme/help/c_ascet.txt b/lib/mods/theme/help/c_ascet.txt new file mode 100644 index 00000000..cc2a2ab4 --- /dev/null +++ b/lib/mods/theme/help/c_ascet.txt @@ -0,0 +1,46 @@ +~~~~~01|Ascetic +~~~~~02|Classes|Ascetic +#####R=== Ascetics === + +#####GDescription +An Ascetic is a monk who has forsaken all worldly +things, including deity worship and magic. Ascetics +must survive by their fists and their natural +ability to resist magic. Despite not worshipping any +gods, Ascetics are highly spiritual, and can achieve +excellent saving throws in addition to their magic- +repelling abilities. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Bonus Blows 0 +Hit Die +d8 +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.900] + Archery 1.000 [0.700] + Barehand-combat 1.000 [0.900] + Antimagic 1.000 [1.000] +Sneakiness 1.000 [0.700] + Stealth 1.000 [1.000] + Disarming 1.000 [0.900] + Dodging 0.000 [1.000] +Spirituality 1.000 [0.700] +Monster-lore 1.000 [1.100] + Corpse-preservation 1.000 [0.700] + +#####GStarting Equipment +An ascetic begins the game with: + a potion of healing + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(1) 5
\ No newline at end of file diff --git a/lib/mods/theme/help/c_assass.txt b/lib/mods/theme/help/c_assass.txt new file mode 100644 index 00000000..4269e3e8 --- /dev/null +++ b/lib/mods/theme/help/c_assass.txt @@ -0,0 +1,58 @@ +~~~~~01|Assassin +~~~~~02|Classes|Assassin +#####R=== Assassins === +#####GDescription +Assassins are similar to Rogues, but have trained their combat abilities more +extensively by neglecting the study of magic. They also tend to be more stealthy +and careful in their dungeon exploration, but aren't so good at stealing, +trapping and disarming as their more "peaceful" counterparts. + +Assassins have access to the schools of *****m_convey.txt*0[Conveyance], *****m_divin.txt*0[Divination] and *****m_tempo.txt*0[Temporal] magic. + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom -2 +Dexterity +3 +Constitution +1 +Charisma -1 +Hit Die +d6 +Spell Points +0% +Exp Penalty 25% + +#####GStarting Skills +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.800] + Weaponmastery 1.000 [0.800] + Sword-mastery 1.000 [0.600] + Critical-hits 2.000 [0.800] + Archery + Boomerang-mastery 1.000 [0.300] +Sneakiness 1.000 [2.000] + Stealth 1.000 [2.000] + Disarming 1.000 [1.000] + Backstab 1.000 [2.000] + Stealing 1.000 [0.200] + Dodging 1.000 [2.000] +Magic 1.000 [0.200] + Magic-Device 1.000 [0.750] + Conveyance 0.000 [0.100] + Divination 0.000 [0.100] + Temporal 0.000 [0.200] +Spirituality 1.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +*An Assassin cannot learn the Archery skill, but it is shown in his skill +screen because Boomerang-mastery is a sub-skill of it. + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 10 + +#####GStarting Equipment +An Assassin begins the game with: + a Dagger + + + diff --git a/lib/mods/theme/help/c_axemas.txt b/lib/mods/theme/help/c_axemas.txt new file mode 100644 index 00000000..cdd6ba88 --- /dev/null +++ b/lib/mods/theme/help/c_axemas.txt @@ -0,0 +1,51 @@ +~~~~~01|Axemaster +~~~~~02|Classes|Axemaster +#####R=== Axemasters === + +#####GDescription +The Axemaster is a Warrior who specialises in axes. +The training is so intense and specific that Axemasters gain huge bonuses +when fighting with their chosen weapon, dependent on their Axe-mastery skill. +In most other respects they perform about as well as a generic Warrior. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.900] + Weaponmastery 1.000 [0.950] + Sword-mastery 0.000 [0.300] + Axe-mastery 1.000 [0.700] + Hafted-mastery 0.000 [0.300] + Polearm-mastery 0.000 [0.300] + Archery 1.000 [0.600] + Antimagic 0.000 [0.550] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 1.000 [0.300] + Magic-Device 1.000 [1.150] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +An Axemaster begins the game with: + a Ring of Fear Resistance + a Chain Mail + a Hatchet diff --git a/lib/mods/theme/help/c_bard.txt b/lib/mods/theme/help/c_bard.txt new file mode 100644 index 00000000..23ba42ca --- /dev/null +++ b/lib/mods/theme/help/c_bard.txt @@ -0,0 +1,69 @@ +|||||oy +~~~~~01|Bard +~~~~~02|Classes|Bard +#####R=== Bards === + +#####GDescription +Bards are traditional musicians. Their magical attacks are sound-based, and +last as long as the Bard has mana. If the Bard runs out of mana, he/she stops +singing. There is also a low-level "spell" that will cease the song. + +While any class can use musical instruments, only Bards can tap the +power of voice to aid themselves and hinder, dismay, and kill their +foes. + +#####GMagic Usage + +Songs are continuous, and the song consumes mana every turn in order to +maintain itself. The song will continue, once played, until either the 'Stop +Singing' song is sung, or the player's mana runs out. + +Each song has a magic school level associated with, just as any other magic +spell does. Each song also has a Roman numeral (e.g. I, II, III, IV, V) +following its name. These numerals correspond to 1, 2, 3, 4, 5. The higher the +numeral, the more music skill the Bard must have to play that song. + +Each musical instrument has a value between 1 and 4 assigned to it, as well. +The higher the number, the better the craftmanship. A Bard can only play +higher level songs with a more powerful instrument. You would be able to cast +"Stop Singing (I)" and "Song of the Sun (I)" with a a Harp (+1). A Harp (+2) +would allow you to sing those songs, as well as "Flow of Life (II)". + +For information on song effects see the *****m_music.txt*0[Music Songs] file. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.700] + Weaponmastery 1.000 [0.700] + Barehand-combat 1.000 [0.600] +Sneakiness 1.000 [0.700] + Stealth 1.000 [0.700] + Disarming 1.000 [0.600] +Magic 1.000 [0.600] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.800] + Prayer 0.000 [0.500] + Music 1.000 [0.800] +Monster-lore 1.000 [1.100] + Summoning 0.000 [0.400] + Corpse-preservation 1.000 [0.700] + Symbiosis 0.000 [0.400] + Mimicry 0.000 [0.400] + +#####GStarting Equipment +A Bard begins the game with: + a Harp (+1) + a Short Sword + a Robe + a Potion of Healing diff --git a/lib/mods/theme/help/c_clairv.txt b/lib/mods/theme/help/c_clairv.txt new file mode 100644 index 00000000..7d537486 --- /dev/null +++ b/lib/mods/theme/help/c_clairv.txt @@ -0,0 +1,47 @@ +~~~~~01|Clairvoyant +~~~~~02|Classes|Clairvoyant +#####R=== Clairvoyants === + +#####GDescription +Clairvoyants are masters of the mind, they are +especially proficient at Mindcraft, Divination, +and the Mind school of magic. They sacrifice +breadth of ability for additional favour with +their deity, so it makes sense to pick a deity +to worship when playing a clairvoyant character. +It is not, however, a requirement. + +#####GStarting Stat Modifiers +Strength -5 +Intelligence +3 +Wisdom +0 +Dexterity +1 +Constitution -2 +Charisma +1 +Bonus Blows 0 +Hit Die +d0 +Exp Penalty 30% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.300] + Weaponmastery 0.700 [0.500] +Sneakiness 1.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.200] + Spell-power 0.000 [0.600] + Divination 1.000 [1.000] + Mind 1.000 [1.000] +Spirituality 1.000 [1.000] + Prayer 0.000 [1.000] + Mindcraft 1.000 [0.700] +Monster-lore 0.000 [0.500] + +#####GStarting Equipment +A clairvoyant begins the game with: + A book of Beginner Cantrips + A quarterstaff + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1
\ No newline at end of file diff --git a/lib/mods/theme/help/c_demono.txt b/lib/mods/theme/help/c_demono.txt new file mode 100644 index 00000000..98b0bc9b --- /dev/null +++ b/lib/mods/theme/help/c_demono.txt @@ -0,0 +1,54 @@ +|||||oy +~~~~~01|Demonologist +~~~~~02|Classes|Demonologist +#####R=== Demonologists === + +#####GDescription +Masters of the Demons, members of this class can gain tremendous power +over demonkind, either for good or for evil ends. + +Their spells are contained in specific blades, shields and helms (actually +shaped in the form of horns) which when wielded allow the Demonologist to +cast spells unique to her class; each piece of equipment holds 3 spells. + +See the information on the *****m_demono.txt*0[Demonology] school of magic for more details. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.750] + Weaponmastery 1.000 [0.750] + Sword-mastery 0.000 [0.600] + Archery 2.000 [0.400] +Sneakiness 2.000 [1.800] + Stealth 0.000 [0.400] + Disarming 2.000 [1.800] +Magic 2.000 [0.700] + Magic-Device 1.000 [1.150] + Demonology 1.000 [1.000] +Spirituality 2.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +A Demonologist begins the game with: + a Ring of Fear Resistance + a Demonblade + a Chain Mail + diff --git a/lib/mods/theme/help/c_druid.txt b/lib/mods/theme/help/c_druid.txt new file mode 100644 index 00000000..0b0493e2 --- /dev/null +++ b/lib/mods/theme/help/c_druid.txt @@ -0,0 +1,55 @@ +|||||oy +~~~~~01|Druid +~~~~~02|Classes|Druid +~~~~~03|Yavanna|Druid +#####R=== Druids === + +#####GDescription +When Melkor first dug up Utumno and Angband, rivers were polluted and gave +birth to dark clouds of stinging insects; animals changed into dark, horrible +horned things and the forests themselves screamed in horror at their corruption. + +*****g_yavann.txt*0[Yavanna] heard this scream and gave to some of the children of Eru the strength +to defend Nature; at first Ents were chosen, but later on other races were +allowed to tread the path of the Druid. + +The embodiment of life itself, a Druid is a true force of nature and nothing +can prevent him from completing his final quest: returning Angband to the +grassy sunlit plain it once was. + + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.750] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.600] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 1.000 [1.200] + Summoning 1.000 [0.700] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GStarting Equipment +A Druid begins the game with: + a Spellbook of Charm Animal + a Mace diff --git a/lib/mods/theme/help/c_geoman.txt b/lib/mods/theme/help/c_geoman.txt new file mode 100644 index 00000000..47855875 --- /dev/null +++ b/lib/mods/theme/help/c_geoman.txt @@ -0,0 +1,59 @@ +|||||oy +~~~~~01|Geomancer +~~~~~02|Classes|Geomancer +#####R=== Geomancers === + +#####GDescription +Geomancers harness the power of the elements earth, air, fire and water. +The level of their *****skills.txt*60[Geomancy] skill gives them access to their own +*****m_geoman.txt*0[school of Geomancy], but the levels of the Fire, Water, Air, and Earth +skills will have an effect on the outcome of each spell. + +Geomancers need the aid of a Mage Staff in order to use their powers. + +#####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 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 1.000 [0.700] + Geomancy 1.000 [0.700] + Fire 1.000 [1.050] + Water 1.000 [1.050] + Air 1.000 [1.050] + Earth 1.000 [1.050] + 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 0.000 [0.700] + Thaumaturgy 0.000 [0.700] +Spirituality 1.000 [0.550] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GStarting Equipment +A Geomancer begins the game with: + a Spellbook of Geyser + a Mage Staff diff --git a/lib/mods/theme/help/c_hafted.txt b/lib/mods/theme/help/c_hafted.txt new file mode 100644 index 00000000..7e8a3f89 --- /dev/null +++ b/lib/mods/theme/help/c_hafted.txt @@ -0,0 +1,54 @@ +~~~~~01|Haftedmaster +~~~~~02|Classes|Haftedmaster +#####R=== Haftedmasters === + +#####GDescription +The Haftedmaster is a Warrior who specialises in blunt weapons. + +The training is so intense and specific that Haftedmasters gain huge bonuses +when fighting with their chosen weapon, dependent on their *****skills.txt*06[Hafted-mastery] skill. + +In most other respects they perform about as well as a generic Warrior. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.900] + Weaponmastery 1.000 [0.950] + Sword-mastery 0.000 [0.300] + Axe-mastery 0.000 [0.300] + Hafted-mastery 1.000 [0.700] + Stunning-blows 0.000 [0.500] + Polearm-mastery 0.000 [0.300] + Archery 1.000 [0.600] + Antimagic 0.000 [0.550] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 1.000 [0.300] + Magic-Device 1.000 [1.150] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +An Haftedmaster begins the game with: + a Ring of Fear Resistance + a Chain Mail + a Flail diff --git a/lib/mods/theme/help/c_lorema.txt b/lib/mods/theme/help/c_lorema.txt new file mode 100644 index 00000000..35c2093b --- /dev/null +++ b/lib/mods/theme/help/c_lorema.txt @@ -0,0 +1,54 @@ +|||||oy +~~~~~01|Loremaster +~~~~~02|Classes|Loremaster +#####R=== Loremasters === + +#####GDescription +Loremasters are students of the creatures of Arda. + +To protect themselves during their observations, they usually learn how to +pass unobserved, but should their attempt fail they have decent saving throws +and almost always learn some kind of combat style, but the exact preference +varies from Loremaster to Loremaster. + +As a result of their studies, they become familiar with a broad range of +skills, ranging from *****skills.txt*45[Possession] and *****m_symbio.txt*0[Symbiosis] to *****skills.txt*43[Summoning] and *****skills.txt*47[Mimicry]. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.700] + Weaponmastery 1.000 [0.700] + Archery 1.000 [0.700] + Barehand-combat 1.000 [0.700] +Sneakiness 1.000 [0.700] + Stealth 1.000 [0.700] + Disarming 1.000 [0.700] +Magic 0.000 [0.600] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.700] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 1.000 [1.100] + Summoning 0.000 [0.500] + Corpse-preservation 1.000 [0.700] + Possession 0.000 [0.500] + Symbiosis 0.000 [0.500] + Mimicry 0.000 [0.500] + +#####GStarting Equipment +A Loremaster begins the game with: + a Sling + a Hard Leather Armour + a Quarterstaff + some Rounded Pebbles diff --git a/lib/mods/theme/help/c_mage.txt b/lib/mods/theme/help/c_mage.txt new file mode 100644 index 00000000..949d3bcc --- /dev/null +++ b/lib/mods/theme/help/c_mage.txt @@ -0,0 +1,67 @@ +|||||oy +~~~~~01|Mage +~~~~~02|Classes|Mage +#####R=== Mages === + +#####GDescription +A Mage must live by his wits. He cannot hope to simply hack his way +through the dungeon, and so must therefore use his magic to defeat, +deceive, confuse, and escape. A Mage is not really complete without an +assortment of magical devices to use in addition to his spells. He can +master the higher level magical devices easily and has good saving throws. + +There is no reason a Mage cannot become a good fighter, but spells are +his true realm. For more information on magic schools and spell effects see +the *****magic.txt*01[Magic help file]. + +#####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.500] + Weaponmastery 0.700 [0.500] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.200] + Spell-power 0.000 [0.600] + Sorcery 0.000 [0.200] + Mana 1.000 [0.900] + Geomancy + Fire 0.000 [0.900] + Water 0.000 [0.900] + Air 0.000 [0.900] + Earth 0.000 [0.900] + Meta 0.000 [0.900] + Conveyance 0.000 [0.900] + Divination 0.000 [0.900] + Temporal 0.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] +Monster-lore 0.000 [0.500] + +*A Mage 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 +A Mage begins the game with: + a Book of Beginner Cantrips + a Dagger diff --git a/lib/mods/theme/help/c_mercen.txt b/lib/mods/theme/help/c_mercen.txt new file mode 100644 index 00000000..75129d56 --- /dev/null +++ b/lib/mods/theme/help/c_mercen.txt @@ -0,0 +1,49 @@ +~~~~~01|Mercenary +~~~~~02|Classes|Mercenary +#####R=== Mercenaries === + +#####GDescription +Mercenaries are daring swashbucklers, masters of the blade. They +do not have the magical abilities Rogues have, but they are just +as stealthy and much deadlier with a light sword. They do gain +some magical mastery over time, but only in the Temporal school. + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom -2 +Dexterity +3 +Constitution +1 +Charisma -1 +Bonus Blows 0 +Hit Die +d6 +Exp Penalty 25% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.700] + Weaponmastery 1.000 [0.900] + Sword-mastery 1.000 [0.700] + Critical-hits 1.000 [0.700] +Sneakiness 1.000 [2.000] + Stealth 1.000 [1.500] + Disarming 1.000 [2.000] + Backstab 1.000 [1.000] + Stealing 1.000 [2.000] + Dodging 1.000 [2.000] +Magic 1.000 [0.700] + Magic-Device 1.000 [1.550] + Temporal 0.000 [1.000] +Spirituality 1.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GStarting Equipment +A mercenary begins the game with: + a rapier + a cloak + +#####GInnate Abilities: +#####BAbility Character level +Extra-Max-Blow(1) 10 +Extra-Max-Blow(1) 15
\ No newline at end of file diff --git a/lib/mods/theme/help/c_merch.txt b/lib/mods/theme/help/c_merch.txt new file mode 100644 index 00000000..31fb60dd --- /dev/null +++ b/lib/mods/theme/help/c_merch.txt @@ -0,0 +1,29 @@ +#####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_mimic.txt b/lib/mods/theme/help/c_mimic.txt new file mode 100644 index 00000000..b9378a03 --- /dev/null +++ b/lib/mods/theme/help/c_mimic.txt @@ -0,0 +1,53 @@ +~~~~~01|Mimic +~~~~~02|Classes|Mimic +#####R=== Mimics === + +#####GDescription +Mimics possess the ability to transform into various creatures using +special cloaks. While transformed, they lose their intrinsic abilities, +and gain those of the creature they have transformed into. + +At higher skill levels, Mimics gain additional Mimicry powers which help them +to further blend in with their surroundings or modify themselves. + +See more on *****m_mimic.txt*0[Mimicry powers]. + + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.800] + Weaponmastery 1.000 [0.800] + Archery 1.000 [0.700] + Barehand-combat 1.000 [0.600] +Sneakiness 1.000 [0.800] + Stealth 1.000 [0.800] + Disarming 1.000 [0.700] +Magic 1.000 [0.700] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.500] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 1.000 [1.100] + Corpse-preservation 1.000 [0.900] + Possession 0.000 [0.100] + Mimicry 1.000 [0.800] + +#####GStarting Equipment +A Mimic begins the game with: + a Mouse Fur + a Potion of Healing + a Dagger + + + diff --git a/lib/mods/theme/help/c_mindcr.txt b/lib/mods/theme/help/c_mindcr.txt new file mode 100644 index 00000000..c4ed2747 --- /dev/null +++ b/lib/mods/theme/help/c_mindcr.txt @@ -0,0 +1,57 @@ +|||||oy +~~~~~01|Mindcrafter +~~~~~02|Classes|Mindcrafter +#####R=== Mindcrafters === + +#####GDescription +The Mindcrafter is a priest who uses the powers of mind instead of magic. +These abilities vary from simple extrasensory perception to mental domination of +others. Since these powers are developed by the practice of certain +disciplines, a Mindcrafter requires no spellbooks to use them. +The Mindcrafter uses the Mindcraft skill to determine how well she can +perform these psychic "spells", and available powers are simply determined by +the skill level. In combat a Mindcrafter is roughly the equivalent of a +priest. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] +Sneakiness 1.000 [1.100] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.150] + Spell-power 0.000 [0.600] + Necromancy 0.000 [0.400] +Spirituality 1.000 [1.000] + Prayer 1.000 [0.900] + Mindcraft 1.000 [0.900] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GMindcraft Powers +Although the powers of a Mindcrafter may seem like magic, this is not +-- strictly speaking -- the case. They are mental powers, independent +of the ordinary sources of magic. Consequently, Mindcrafters are not +interested in 'magic' and learn no spells. These mental powers can be +accessed through the "m" command, and you can find a full list of their +powers in the *****m_mindcr.txt*0[Mindcraft powers] document. + +#####GStarting Equipment +A Mindcrafter begins the game with: + a Mace diff --git a/lib/mods/theme/help/c_monk.txt b/lib/mods/theme/help/c_monk.txt new file mode 100644 index 00000000..87730f18 --- /dev/null +++ b/lib/mods/theme/help/c_monk.txt @@ -0,0 +1,87 @@ +|||||oy +~~~~~01|Monk +~~~~~02|Classes|Monk +#####R=== Monks === + +#####GDescription +The Monk character class is very different from all other classes. +Although they can use weapons and armour just like any other class, +their training in martial arts makes them much more powerful with no +armour nor weapons. + +As the Monk's skill level rises, new and more powerful forms of attack become +available. It is also rumoured that the monastic training makes experienced +monks faster than any other character class! + +A Monk might need to wear some kind of armour to gain the resistances necessary +for survival at higher levels, but if that armour is too heavy, it will +severely disturb his/her martial arts maneuvers. + +If skill points are invested in *****skills.txt*20[Dodging], a Monk's defensive capabilities +(blocking and dodging) will also increase. However, if armour is being worn, +dodging is much less effective. Fortunately, a Monk can increase his/her +ability to fight while still wearing armor by increasing his/her +*****skills.txt*13[Barehanded-combat] skill. + +Monks also have access to the schools of *****m_meta.txt*0[Meta], +*****m_tempo.txt*0[Temporal] and *****m_mind.txt*0[Mind] magic. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 0.000 [0.900] + Weaponmastery 0.000 [0.300] + Archery 0.000 [0.400] + Barehand-combat 1.000 [0.900] +Sneakiness 1.000 [0.900] + Stealth 1.000 [0.900] + Disarming 1.000 [0.900] + Dodging 0.000 [0.700] +Magic 0.000 [0.600] + Magic-Device 1.000 [1.000] + Meta 0.000 [0.500] + Temporal 0.000 [0.500] + Mind 0.000 [0.500] +Spirituality 1.000 [0.900] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 1.000 [1.100] + Corpse-preservation 1.000 [0.500] + Possession 0.000 [0.100] + +#####GStarting Equipment +A Monk begins the game with: + a Potion of Healing + a Soft Leather Armour +~~~~~03|Monk|Monk attacks +~~~~~04|Tables|Monk attacks +#####GMonk Attacks +#####BAttack Name Min.lvl Damage Stun Notes +----------------------------------------------------------------------------- +Punch 1 1d4 - +Kick 2 1d6 - +Strike 3 1d7 - +Knee 5 2d3 * Painful to males; likely to stun them +Elbow 7 1d8 - +Butt 9 2d5 - +Ankle Kick 11 3d4 - May slow down the opponent +Uppercut 13 4d4 6 +Double-kick 16 5d4 8 +Cat's Claw 20 5d5 - +Jump Kick 25 5d6 10 +Eagle's Claw 29 6d6 - +Circle Kick 33 6d8 10 +Iron Fist 37 8d8 10 +Flying Kick 41 8d10 12 +Dragon Fist 45 10d10 16 +Crushing Blow 48 10d12 18 diff --git a/lib/mods/theme/help/c_necro.txt b/lib/mods/theme/help/c_necro.txt new file mode 100644 index 00000000..f3a5ad2c --- /dev/null +++ b/lib/mods/theme/help/c_necro.txt @@ -0,0 +1,80 @@ +|||||oy +~~~~~01|Necromancer +~~~~~02|Classes|Necromancer +#####R=== Necromancers === + +#####GDescription +As a Priest devotes his life to his chosen deity, so Necromancers +devote their lives to the study of death. Familiar with all of the +forms of unbeing, they are able to manipulate spirit and flesh for +great effect. + +#####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.400] + Weaponmastery 0.700 [0.600] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.200] + Spell-power 0.000 [0.600] + Mana 0.000 [0.600] + Geomancy + Fire 0.000 [0.800] + Water 0.000 [0.700] + Air 0.000 [0.700] + Earth 0.000 [0.800] + Meta 0.000 [0.700] + Conveyance 0.000 [0.700] + Divination 0.000 [0.700] + Temporal 0.000 [0.800] + 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] +Monster-lore 1.000 [1.100] + Corpse-preservation 5.000 [0.900] + +*A Necromancer 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 +Undead Form 25 + +#####GStarting Equipment +A Necromancer begins the game with: + a Book of Beginner Cantrips + a Dagger + +#####GNecromancy +*****m_necrom.txt*0[Necromancy powers] [[[[[Bare accessed using the 'm' key.] +Even from the start of his career, an inexperienced Necromancer +can channel forces from the underworld to assault the mind of +living creatures, therefore terrifying them. With little effort he +can also learn the art of reanimating a dead corpse, turning it into +an undead slave. It is only at a later point in his career that this +foul mage learns to manipulate his life force as well, gaining the +ability to absorb hit points from both living and dead opponents. +The greatest Necromancers even gain the ability to survive their own +death: when they should be killed, they instead turn into a ghostly +being; they then receive a set number of Death Points, which are in +all respects similar to hit points except that they go automatically +down each turn. If the Necromancer manages to kill a certain number +of creatures before his Death Points reach 0 he is returned to life; +otherwise his will dissipates and he finally achieves true death. diff --git a/lib/mods/theme/help/c_pacif.txt b/lib/mods/theme/help/c_pacif.txt new file mode 100644 index 00000000..7ec7e7d1 --- /dev/null +++ b/lib/mods/theme/help/c_pacif.txt @@ -0,0 +1,10 @@ +~~~~~01|Pacifist +~~~~~02|Classes|Pacifist +#####R=== Pacifists === + +#####GDescription +A Pacifist is someone who prefers not to use violence to +achieve their ends. There are two types of Pacifists: + +*****c_peacemag.txt*0[Peace-mage] +*****c_trapper.txt*0[Trapper]
\ No newline at end of file diff --git a/lib/mods/theme/help/c_palad.txt b/lib/mods/theme/help/c_palad.txt new file mode 100644 index 00000000..b4cc650b --- /dev/null +++ b/lib/mods/theme/help/c_palad.txt @@ -0,0 +1,49 @@ +|||||oy +~~~~~01|Paladin +~~~~~02|Classes|Paladin +~~~~~03|Tulkas|Paladin +#####R=== Paladins === + +#####GDescription +A Paladin is a warrior-priest at the service of *****g_tulkas.txt*0[Tulkas]. As such, his duty +is to be ever vigilant against the forces of evil and even seek and destroy +those monsters which are evil to the core, especially the foulest +spawns of hell. Luckily, his quest is eased by the blessing bestowed +by Tulkas himself. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.800] + Weaponmastery 1.000 [0.800] + Barehand-combat 0.000 [0.900] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.600] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.400] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 +Extra Max Blow(1) 1 + +#####GStarting Equipment +A Paladin begins the game with: + a Spellbook of Divine Aim + a Two-Handed Sword diff --git a/lib/mods/theme/help/c_peacemag.txt b/lib/mods/theme/help/c_peacemag.txt new file mode 100644 index 00000000..f75664f3 --- /dev/null +++ b/lib/mods/theme/help/c_peacemag.txt @@ -0,0 +1,46 @@ +~~~~~01|Peace-mage +~~~~~02|Classes|Peace-mage +#####R=== Peace-mages === + +#####GDescription +A Pacifist is someone who prefers not to use violence to +achieve their ends. The peace-mages choose to use defensive +spells and rely on symbiosis to protect themselves. They +may also use spells provided by their deities. + +#####GStarting Stat Modifiers +Strength 0 +Intelligence +2 +Wisdom +2 +Dexterity +2 +Constitution 0 +Charisma +4 +Bonus Blows 0 +Hit Die 0 +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Sneakiness 0.000 [0.600] + Stealth 0.000 [0.600] + Disarming 1.000 [0.600] + Dodging 1.000 [0.700] +Magic 1.000 [0.600] + Spell-power 0.000 [0.500] + Meta 0.000 [0.700] + Conveyance 1.000 [0.700] + Divination 0.000 [0.700] + Temporal 0.000 [0.700] + Nature 1.000 [1.000] +Spirituality 0.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 1.000 [0.900] + Symbiosis 1.000 [0.600] + +#####GStarting Equipment +A peace-mage begins the game with: + a scroll of summon never-moving pet + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 15
\ No newline at end of file diff --git a/lib/mods/theme/help/c_polear.txt b/lib/mods/theme/help/c_polear.txt new file mode 100644 index 00000000..8ea2f04a --- /dev/null +++ b/lib/mods/theme/help/c_polear.txt @@ -0,0 +1,52 @@ +~~~~~01|Polearmmaster +~~~~~02|Classes|Polearmmaster +#####R=== Polearmmasters === + +#####GDescription +The Polearmmaster is a Warrior who specialises in polearms. + +The training is so intense and specific that Polearmmasters gain huge bonuses +when fighting with their chosen weapon, dependent on their Polearm-mastery +skill. In most other respects they perform about as well as a generic Warrior. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.900] + Weaponmastery 1.000 [0.950] + Sword-mastery 0.000 [0.300] + Axe-mastery 0.000 [0.300] + Hafted-mastery 0.000 [0.300] + Polearm-mastery 1.000 [0.700] + Archery 1.000 [0.600] + Antimagic 0.000 [0.550] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 1.000 [0.300] + Magic-Device 1.000 [1.150] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +A Polearmmaster begins the game with: + a Ring of Fear Resistance + a Chain Mail + a Pike diff --git a/lib/mods/theme/help/c_posses.txt b/lib/mods/theme/help/c_posses.txt new file mode 100644 index 00000000..2d67a883 --- /dev/null +++ b/lib/mods/theme/help/c_posses.txt @@ -0,0 +1,70 @@ +~~~~~01|Possessor +~~~~~02|Classes|Possessor +#####R=== Possessors === + +#####GDescription +Possessors are unusual; they aren't good fighters, and they can't cast +magic. Their special ability is that of being able to leave their +bodies and inhabit corpses. While "in" a corpse, the Possessor gains +the abilities of the monster, and their hit points and the monster's +are averaged. (Most monsters have no, or very few, spell points.) While +in the incorporeal form between bodies, they have only one hitpoint. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution +0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.600] + Weaponmastery 1.000 [0.600] + Archery 1.000 [0.400] +Sneakiness 1.000 [0.700] + Stealth 1.000 [0.700] + Disarming 1.000 [0.500] +Magic 0.000 [0.600] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.500] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 1.000 [1.100] + Corpse-preservation 1.000 [0.900] + Possession 1.000 [0.800] + +#####GStarting Equipment +A Possessor begins the game with: + a Potion of Healing + a Short Sword + a Hard Leather Armour + +~~~~~03|Possessor|Possessor powers +~~~~~04|Skills|Possession - Possessor powers +#####GPossession +The strange art of reanimating the corpse of a monster and making +it one's own can be of extreme benefit to those skilled in it. The body +the player possesses can grant powerful abilities, such as increased +speed, summoning, healing, breathing, and various resistances, and often +gives the player a large number of hit points. Possessing uniques is +especially neat. + +Possessors leave their own body by using the 'm' command, and choosing +"[I]incarnating powers". Lacking a life force to sustain it, a corpse may rot +immediately when a Possessor leaves it, but a high Possession skill score +may prevent this from happening. They then become a very vulnerable ghostly +being which travels to where another corpse is lying on the floor, and +possesses it by again using the 'm' command. Once possessed, many +monster corpses allow the player to perform various special actions +(such as blinking or summoning) by using the option "Use your [R]ace +powers". + +All corpses alter the player's melee attacks. When they incarnate in a +monster that allows the use of a weapon, monster blows are ignored +[[[[[Btotally]. When they incarnate in a monster that doesn't allow use of a +weapon (dragons for example) they use the monster blows [[[[[Band only them]! diff --git a/lib/mods/theme/help/c_pr_drk.txt b/lib/mods/theme/help/c_pr_drk.txt new file mode 100644 index 00000000..fa99f89f --- /dev/null +++ b/lib/mods/theme/help/c_pr_drk.txt @@ -0,0 +1,57 @@ +|||||oy +~~~~~01|Dark Priest +~~~~~02|Classes|Dark Priest +~~~~~03|Melkor|Dark Priests +#####R=== Melkor's Priests === + +#####GDescription +All gods have priests; but those serving *****g_melkor.txt*0[Melkor], the dark enemy, are not +like their good counterparts. While usually it takes devotion and awe to be +inspired into serving a deity, Melkor's followers revere him because of the +power he gives them. Some of them may even be so ambitious as to aspire to +take his place upon the black throne of Angband. This he knows very well, but +as long as he can use those puny mortals to inspire fear into the followers of +the Valar and to bring destruction to Arda, he doesn't mind; he even lends power +to the ones more bent on destruction, while sapping their minds to reduce them +to unthinking slaves. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.800] +**Udun 0.000 [0.400] + Necromancy 0.000 [0.800] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.400] +Monster-lore 0.000 [0.500] + Corpse-preservation 1.000 [1.000] + +**Actually, every character has this level of proficiency with the *****m_udun.txt*0[Udun] school, +provided they are worshipping Melkor + + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GStarting Equipment +A Priest serving Melkor begins the game with: + a Spellbook of Curse + a Mace diff --git a/lib/mods/theme/help/c_pr_eru.txt b/lib/mods/theme/help/c_pr_eru.txt new file mode 100644 index 00000000..ff5a0126 --- /dev/null +++ b/lib/mods/theme/help/c_pr_eru.txt @@ -0,0 +1,55 @@ +|||||oy +~~~~~01|Priest - Eru +~~~~~02|Classes|Priest - Eru +~~~~~03|Eru|Priest - Eru +#####R=== Eru's Priests === + +#####GDescription +*****g_eru.txt*0[Eru] is the father of the Valar: he created the world and all its inhabitants. He is the wisest being ever and even if he foresaw Morgoth's +evil, his role was that of the creator; as such, he chose not to destroy +anything on Arda. + +His priests are therefore expected to avoid all forms of bloodshed (so they +can only use blunt weapons without penalty); however, Eru knows that sometimes +destruction is unavoidable and marks a blade with his rune; his priests call +them Blessed and use them without feeling guilty, for they know that divine +wisdom will guide every swing of those weapons. + +Still, a priest serving Eru will find that his true strength lies in knowledge +and in the use of the force of Mana to avoid close contact with evil beings, +rather than in blind assault of Morgoth's hordes. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.700] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GStarting Equipment +A Priest serving Eru begins the game with: + a Spellbook of See the Music + a Mace diff --git a/lib/mods/theme/help/c_pr_man.txt b/lib/mods/theme/help/c_pr_man.txt new file mode 100644 index 00000000..3f83e8af --- /dev/null +++ b/lib/mods/theme/help/c_pr_man.txt @@ -0,0 +1,54 @@ +|||||oy +~~~~~01|Priest - Manwe +~~~~~02|Classes|Priest - Manwe +~~~~~03|Manwe|Priest - Manwe +#####R=== Manwe's Priests === + +#####GDescription +As the forces of darkness arose, *****g_manwe.txt*0[Manwe], lord of air, realised that urgent +action was needed to save Arda from the incoming darkness. So he started +gathering followers from the ranks of men and elves and he instructed them to +do battle against the forces of Udun. + +His priests must be quick and strike before the situation becomes +critical, always keeping a direct line of prayer with their patron deity. + +Manwe doesn't tolerate laziness, but He also does not appreciate mindless +killing; only a few measure up to his standards, but those are granted access +to a whole series of divine powers which will help them in their enduring +efforts. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Hit Die +d2 +Spell Points +0% +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.750] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.600] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect casting 1 + +#####GStarting Equipment +A Priest serving Manwe begins the game with: + a Spellbook of Manwe's Blessing + a Mace diff --git a/lib/mods/theme/help/c_pr_mand.txt b/lib/mods/theme/help/c_pr_mand.txt new file mode 100644 index 00000000..df98e911 --- /dev/null +++ b/lib/mods/theme/help/c_pr_mand.txt @@ -0,0 +1,49 @@ +|||||oy +~~~~~01|Priest - Mandos +~~~~~02|Classes|Priest - Mandos +~~~~~03|Mandos|Priest - Mandos +#####R=== Priests of Mandos === + +#####GDescription +*****g_mandos.txt*0[Mandos] is the Doomsman of the Valar, Lord of +the House of the Dead and he recalls the souls of the fallen ones. +A Master of Spirit, he knows all that is going to happen, except +that which lies in the will of Eru himself. Manwe calls upon Mandos +to pass judgment upon the Ainur and Eru's children alike. The priests +of Mandos fight righteously to rid the world of evil. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Bonus Blows 0 +Hit Die +d2 +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] + Hafted-mastery 0.000 [0.400] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.800] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect-casting 1 + +#####GStarting Equipment +A priest serving Varda begins the game with: + A spellbook of Tears of Luthien + A mace
\ No newline at end of file diff --git a/lib/mods/theme/help/c_pr_ulmo.txt b/lib/mods/theme/help/c_pr_ulmo.txt new file mode 100644 index 00000000..6f82b368 --- /dev/null +++ b/lib/mods/theme/help/c_pr_ulmo.txt @@ -0,0 +1,50 @@ +|||||oy +~~~~~01|Priest - Ulmo +~~~~~02|Classes|Priest - Ulmo +~~~~~03|Ulmo|Priest - Ulmo +#####R=== Ulmo's Priests === + +#####GDescription +*****g_ulmo.txt*0[Ulmo] is the Lord of the Waters, second in power only +to Manwe, and the most wrathful of the Valar after Tulkas Astaldo. He +made a great contribution to the War of Wrath when he led Tuor to Gondolin, +and he is ever watchful for the contrivances of Melkor Bauglir. His +preferred weapon type is the polearm, and his priests learn to become +very proficient with it. A priest of Ulmo is like unto living +water, channelled through Ulmo's magic. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Bonus Blows 0 +Hit Die +d2 +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] + Polearm-mastery 0.000 [0.400] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.800] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect-casting 1 + +#####GStarting Equipment +A priest serving Ulmo begins the game with: + A spellbook of Song of Belegaer + A trident
\ No newline at end of file diff --git a/lib/mods/theme/help/c_pr_varda.txt b/lib/mods/theme/help/c_pr_varda.txt new file mode 100644 index 00000000..f6473df4 --- /dev/null +++ b/lib/mods/theme/help/c_pr_varda.txt @@ -0,0 +1,50 @@ +|||||oy +~~~~~01|Priest - Varda +~~~~~02|Classes|Priest - Varda +~~~~~03|Varda|Priest - Varda +#####R=== Varda's Priests === + +#####GDescription +*****g_varda.txt*0[Varda] is called Elentari, which means The Queen +of the Stars. She set the stars in the sky, for which the Eldar of +Middle-earth revered her, calling her by the name of Elbereth. Her +priests battle the darkness with light, and also have access to the +Mana and Meta schools of magic by the grace of Varda. Varda prefers +it if her servants do not get too close to the Shadow, and thus she +grants a bonus in Archery to her priests. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Bonus Blows 0 +Hit Die +d2 +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] + Archery 0.000 [0.400] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.800] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect-casting 1 + +#####GStarting Equipment +A priest serving Varda begins the game with: + A spellbook of Light of Valinor + A mace
\ No newline at end of file diff --git a/lib/mods/theme/help/c_priest.txt b/lib/mods/theme/help/c_priest.txt new file mode 100644 index 00000000..1eb7bcbb --- /dev/null +++ b/lib/mods/theme/help/c_priest.txt @@ -0,0 +1,17 @@ +|||||oy +~~~~~01|Priests +#####R=== Priests === + +#####GDescription +There are 10 separate classes of Priest: + +*****c_pr_eru.txt*0[Priest(Eru)] +*****c_pr_man.txt*0[Priest(Manwe)] +*****c_pr_ulmo.txt*0[Priest(Ulmo)] +*****c_pr_mand.txt*0[Priest(Mandos)] +*****c_pr_varda.txt*0[Priest(Varda)] +*****c_druid.txt*0[Druid] +*****c_palad.txt*0[Paladin] +*****c_stonewr.txt*0[Stonewright] +*****c_pr_drk.txt*0[Dark-Priest] +*****c_mindcr.txt*0[Mindcrafter] diff --git a/lib/mods/theme/help/c_ranger.txt b/lib/mods/theme/help/c_ranger.txt new file mode 100644 index 00000000..81af7715 --- /dev/null +++ b/lib/mods/theme/help/c_ranger.txt @@ -0,0 +1,56 @@ +|||||oy +~~~~~01|Ranger +~~~~~02|Classes|Ranger +#####R=== Rangers === + +#####GDescription +Rangers are warrior-mages, devoted to nature. They are good fighters +and quite effective with bows; their magic often allows them to avoid +the worst of situations, but they have only a mild chance of resisting +magical effects and are not terribly stealthy. They can, however, +learn the ability to summon aid using totems. + +They have access to the schools of *****m_divin.txt*0[Divination] and *****m_nature.txt*0[Nature] magic. + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom +0 +Dexterity +2 +Constitution +1 +Charisma +1 +Hit Die +d4 +Spell Points +0% +Exp Penalty 30% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.800] + Weaponmastery 1.000 [0.700] + Archery 1.000 [0.750] + Sling-mastery 0.000 [0.300] + Bow-mastery 0.000 [0.300] + Crossbow-mastery 0.000 [0.300] + Boomerang-mastery 0.000 [0.300] +Sneakiness 1.000 [0.950] + Stealth 0.000 [0.400] + Disarming 1.000 [1.600] +Magic 1.000 [0.700] + Magic-Device 1.000 [1.100] + Divination 0.000 [0.500] + Nature 0.000 [0.500] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.900] + Summoning 0.000 [0.300] + + +#####GInnate Abilities: +#####BAbility Character level +Ammo creation 2 + +#####GStarting Equipment +A Ranger begins the game with: + a Short Sword + a Short Bow + some Arrows diff --git a/lib/mods/theme/help/c_rogue.txt b/lib/mods/theme/help/c_rogue.txt new file mode 100644 index 00000000..b42df3d5 --- /dev/null +++ b/lib/mods/theme/help/c_rogue.txt @@ -0,0 +1,62 @@ +|||||oy +~~~~~01|Rogue +~~~~~02|Classes|Rogue +#####R== Rogues === + +#####GDescription +A rogue is a jack of all trades, but the master of none. With the notable +exception of Archery and Monster-related skills, Rogues are capable of adapting +to almost any situation. Their strong point lies in stealth and careful +planning: Where a Warrior would simply hack away (and risk being hacked up +himself) or a Mage would Manathrust, a Rogue would awaken a monster with a +dagger in the back, or would wait for the creature to be killed by the line of +traps she had previously laid between her and her opponent. + +Rogues have access to the schools of *****m_convey.txt*0[Conveyance], *****m_divin.txt*0[Divination] and *****m_tempo.txt*0[Temporal] magic. + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom -2 +Dexterity +3 +Constitution +1 +Charisma -1 +Hit Die +d6 +Spell Points +0% +Exp Penalty 25% + +#####GStarting Skills +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.700] + Weaponmastery 1.000 [0.700] + Sword-mastery 1.000 [0.300] + Critical-hits 1.000 [0.500] +Sneakiness 1.000 [2.000] + Stealth 1.000 [1.500] + Disarming 1.000 [2.000] + Backstab 1.000 [1.000] + Stealing 1.000 [2.000] + Dodging 1.000 [2.000] +Magic 1.000 [0.700] + Magic-Device 1.000 [1.550] + Conveyance 0.000 [0.500] + Divination 0.000 [0.500] + Temporal 0.000 [0.500] +Spirituality 1.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Trapping 1 +Extra Max Blow(1) 10 + +#####GStarting Equipment +A Rogue begins the game with: + a Dagger + a Catapult Trap Set + some Iron Shots + + + + diff --git a/lib/mods/theme/help/c_runecr.txt b/lib/mods/theme/help/c_runecr.txt new file mode 100644 index 00000000..8388eff9 --- /dev/null +++ b/lib/mods/theme/help/c_runecr.txt @@ -0,0 +1,110 @@ +~~~~~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_sniper.txt b/lib/mods/theme/help/c_sniper.txt new file mode 100644 index 00000000..008202d8 --- /dev/null +++ b/lib/mods/theme/help/c_sniper.txt @@ -0,0 +1,50 @@ +~~~~~01|Sniper +~~~~~02|Classes|Sniper +#####R=== Snipers === + +#####GDescription +Snipers are stealthy archers who kill from a safe +distance and aren't very good at hand-to-hand combat. +They have some ability in the Conveyance school of +magic, which can let them disappear quickly if the +need should arise. + +#####GStarting Stat Modifiers +Strength +2 +Intelligence +1 +Wisdom +0 +Dexterity +2 +Constitution +1 +Charisma +1 +Bonus Blows 0 +Hit Die +d4 +Exp Penalty 30% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.500] + Weaponmastery 1.000 [0.500] + Archery 1.000 [0.750] + Sling-mastery 0.000 [0.300] + Bow-mastery 0.000 [0.300] + Crossbow-mastery 0.000 [0.300] + Boomerang-mastery 0.000 [0.300] +Sneakiness 2.000 [1.000] + Stealth 1.000 [0.700] + Disarming 1.000 [1.000] + Backstab 1.000 [0.700] +Magic 1.000 [0.600] + Magic-Device 1.000 [1.100] + Conveyance 1.000 [0.500] +Spirituality 0.000 [0.500] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GStarting Equipment +A sniper begins the game with: + a short bow + some ammo + +#####GInnate Abilities: +#####BAbility Character level +Ammo creation 2
\ No newline at end of file diff --git a/lib/mods/theme/help/c_sorcer.txt b/lib/mods/theme/help/c_sorcer.txt new file mode 100644 index 00000000..8a33184f --- /dev/null +++ b/lib/mods/theme/help/c_sorcer.txt @@ -0,0 +1,68 @@ +|||||oy +~~~~~01|Sorceror +~~~~~02|Classes|Sorceror +#####R=== Sorcerors === + +#####GDescription +Sorcerors are to magic what Unbelievers are to melee. They are the all- +around best magicians, being able to cast spells from any school using +only a single skill. They cannot comfortably use any weapon but a Mage Staff, and even with a Mage Staff, they will be unable to achieve anything remotely resembling battle effectiveness. + +The energies used for learning Sorcery also sap the life force of a +Sorceror, penalising them with the loss of a percentage of their hit +points equal to their Sorcery skill score and penalising their combat +ability even more strongly. + +For more information on magic schools and spell effects see the +*****magic.txt*01[Magic help file]. + +#####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 +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] +Magic 1.000 [1.000] + Magic-Device 1.000 [1.000] + Spell-power 0.000 [0.600] + Sorcery 1.000 [0.700] + Mana 0.000 [0.900] + Geomancy + Fire 0.000 [1.000] + Water 0.000 [1.000] + Air 0.000 [1.000] + Earth 0.000 [1.000] + Meta 0.000 [1.000] + Conveyance 0.000 [1.000] + Divination 0.000 [1.000] + Temporal 0.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] +Monster-lore 0.000 [0.500] + +*A Sorceror 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 +A Sorceror begins the game with: + a Book of Beginner Cantrips + a Robe + diff --git a/lib/mods/theme/help/c_stonewr.txt b/lib/mods/theme/help/c_stonewr.txt new file mode 100644 index 00000000..7de1c0ef --- /dev/null +++ b/lib/mods/theme/help/c_stonewr.txt @@ -0,0 +1,50 @@ +|||||oy +~~~~~01|Stonewright +~~~~~02|Classes|Stonewright +~~~~~03|Aule|Stonewright +#####R=== Aule's Priests === + +#####GDescription +*****g_aule.txt*0[Aule] the Smith is concerned with the substance of +Arda; rock and metal. His priests serve him best by forging better +weapons to use in the fight against the Dark, and his most beloved +weapon is the axe, which his followers will find much easier to use +than other types of weapons. Aule's realms are earth and fire, and +his priests have access to these realms by the grace of their Vala. + +#####GStarting Stat Modifiers +Strength -1 +Intelligence -3 +Wisdom +3 +Dexterity -1 +Constitution +0 +Charisma +2 +Bonus Blows 0 +Hit Die +d2 +Exp Penalty 20% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.700] + Weaponmastery 1.000 [0.700] + Axe-mastery 0.000 [0.400] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 0.000 [0.900] +Magic 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.800] +Spirituality 1.000 [1.000] + Prayer 1.000 [1.500] + Mindcraft 0.000 [0.600] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Perfect-casting 1 +Extra Max Blow(1) 10 + +#####GStarting Equipment +A priest serving Aule begins the game with: + A spellbook of Firebrand + A light war axe
\ No newline at end of file diff --git a/lib/mods/theme/help/c_summon.txt b/lib/mods/theme/help/c_summon.txt new file mode 100644 index 00000000..a3eca1de --- /dev/null +++ b/lib/mods/theme/help/c_summon.txt @@ -0,0 +1,80 @@ +~~~~~01|Summoners +~~~~~02|Classes|Summoners +#####R=== Summoners === + +#####GDescription +A Summoner is, with one exception, a fairly weak class. While he starts +out a decent enough fighter, his fighting skill doesn't improve that much, +he doesn't cast magic and has little in the way of survival skills. However, +this weakness doesn't trouble him much, because he can summon creatures to +do his bidding and still gain experience from their kills. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution 0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.600] + Weaponmastery 1.000 [0.600] + Archery 1.000 [0.400] +Sneakiness 1.000 [0.700] + Stealth 1.000 [0.700] + Disarming 1.000 [0.500] +Magic 1.000 [0.800] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.500] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 16.000 [1.200] + Summoning 1.000 [0.700] + Corpse-preservation 1.000 [1.000] + +#####GStarting Equipment +A Summoner starts the game with: + A Potion of Healing + A Short Sword + A Suit of Hard Leather Armour +~~~~~03|Summoners|Summoning +~~~~~04|Skills|Summoning - Summoning powers +#####GSummoning +[[[[[BThe summoner's powers of invocation are accessed using the 'm' key.] +In order to invoke a monster, a summoner must possess a related totem. + +There are two kinds of summoning, decided by the totem used: + +[[[[[BPartial Summoning] +Partial summoning creates a simulacrum of the monster, with little will +of its own. The Summoner must maintain the simulacrum using mana; when +he runs out, or stops paying the mana, the simulacrum vanishes. + +[[[[[BTrue Summoning] +True summoning is quite different in effect from Partial Summoning, but the +two are closely related in usage. A True Totem conjures a full copy of the +creature in question; the process tends to make the monster a loyal ally to +the summoner, but this loyalty is not guaranteed, nor is the survival of the +totem used in the summoning. + +[[[[[BTotem Creation] +In order to summon any creature, the Summoner needs a totem. Totems cannot be +found; they must be created through a special process which involves taking +the corpse of a creature (the summoner need not have been involved in the +death of the creature in question), and extracting certain essences from it. + +The summoner can create a totem using the 'm' command, and unless one is +working on a unique's corpse, must choose whether the resulting totem is a +Partial or True Totem. + +[[[[[BImportant Note] +Uniques are very willful creatures by definition, and thus have three special +rules about their summoning: +1. No partial totem can be made from a unique's corpse. +2. The totem in question is always destroyed. +3. The unique is twice as likely to be disloyal. diff --git a/lib/mods/theme/help/c_swordm.txt b/lib/mods/theme/help/c_swordm.txt new file mode 100644 index 00000000..a3b5ed05 --- /dev/null +++ b/lib/mods/theme/help/c_swordm.txt @@ -0,0 +1,52 @@ +~~~~~01|Swordmasters +~~~~~02|Classes|Swordmasters +#####R=== Swordmasters === + +#####GDescription +The Swordmaster is a Warrior who specialises in swords. + +The training is so intense and specific that Swordmasters gain huge bonuses +when fighting with their chosen weapon, dependent on their Sword-mastery skill. +In most other respects they perform about as well as a generic Warrior. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.900] + Weaponmastery 1.000 [0.950] + Sword-mastery 1.000 [0.700] + Axe-mastery 0.000 [0.300] + Hafted-mastery 0.000 [0.300] + Polearm-mastery 0.000 [0.300] + Archery 1.000 [0.600] + Antimagic 0.000 [0.550] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 1.000 [0.300] + Magic-Device 1.000 [1.150] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread-blows 25 + +#####GStarting Equipment +A Swordmaster begins the game with: + a Ring of Fear Resistance + a Chain Mail + a Broad Sword diff --git a/lib/mods/theme/help/c_symbia.txt b/lib/mods/theme/help/c_symbia.txt new file mode 100644 index 00000000..9bbd92fd --- /dev/null +++ b/lib/mods/theme/help/c_symbia.txt @@ -0,0 +1,68 @@ +|||||oy +~~~~~01|Symbiant +~~~~~02|Classes|Symbiant +#####R=== Symbiants === + +#####GDescription +Symbiants live in harmony with all of the monsters that do not move: +the Mushrooms, Molds, Floating Eyes, and such. They can hypnotise these +creatures and then form a symbiotic relationship. Using other symbiotic +powers, they can even use the magical abilities of their pets. + +Once hypnotised, the monster is placed onto the body, or "worn" in order to +initiate the symbiotic relationship. + +#####GStarting Stat Modifiers +Strength +1 +Intelligence -2 +Wisdom +1 +Dexterity +1 +Constitution 0 +Charisma +1 +Hit Die +d8 +Spell Points +0% +Exp Penalty 40% + +#####GStarting Skills +#####BSkill Start Level Skill Point Gains +Combat 1.000 [0.800] + Weaponmastery 1.000 [0.800] + Archery 1.000 [0.700] + Barehand-combat 1.000 [0.600] +Sneakiness 1.000 [0.800] + Stealth 1.000 [0.800] + Disarming 1.000 [0.700] +Magic 1.000 [0.700] + Magic-Device 1.000 [1.000] +Spirituality 1.000 [0.500] + Prayer 0.000 [0.500] + Music 0.000 [0.300] +Monster-lore 1.000 [1.100] + Corpse-preservation 1.000 [0.900] + Possession 0.000 [0.100] + Symbiosis 1.000 [0.800] + +#####GStarting Equipment +A Symbiant begins the game with: + a Dagger + a Scroll of Summon Never-Moving Pet + + +#####GSymbiosis +Symbiants rely on the partnerships they form, hypnotising creatures +and then "wearing" them: "I get by with a little help from my friends". +Depending on the monster, this does nothing except protect the player +slightly (the worn monster takes some of the damage the player would +otherwise) or grant some very powerful attacks and summons. +Their "spells" are used by the 'm' command; as their Symbiosis skill +increases, they automatically gain more powers. +For more detail about the specific powers, look here: *****m_symbio.txt*0[Symbiosis] +~~~~~03|Symbiant|Naming your symbiote +#####GNaming your symbiote +For those sentimental Symbiants who like to name your symbiotes, you +can use the Inscribe command '{'. Inscribe your hypnotized symbiote +with "#named Fido" (or whatever name you choose, but don't forget the +leading '#'), and it will be listed in your equipment as "a Red Mold +named Fido", and the game will refer to your symbiote by name ("Fido +is healed", for instance, rather than "Your Red mold is healed"). + diff --git a/lib/mods/theme/help/c_thaum.txt b/lib/mods/theme/help/c_thaum.txt new file mode 100644 index 00000000..653e84fa --- /dev/null +++ b/lib/mods/theme/help/c_thaum.txt @@ -0,0 +1,84 @@ +~~~~~01|Thaumaturgist +~~~~~02|Classes|Thaumaturgy +#####R=== Thaumaturgists === + +#####GDescription +A Thaumaturgist is a Mage that prefers chaos to order. As such, they tend to +learn random spells, and since attacking something creates more chaos than +anything else, every spell they learn is an attack spell. They have no need +for spell-books, as they harness the spells from within themselves. However, +they also have no ability to improve the power of a particular spell - once +learnt it will remain at the same strength for ever. Likewise, they also have +no ability to control what they learn, and some of their spells will cause +them damage (like darkness spells blinding them if they do not resist +darkness). + +#####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 3.000 [0.950] + Magic-Device 1.000 [1.050] + Spell-power 0.000 [0.600] + Mana 0.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 0.000 [0.700] + Thaumaturgy 1.000 [1.000] +Spirituality 1.000 [0.550] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +*A Thaumaturgist 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 +A Thaumaturgist begins the game with: + a Book of Beginner Cantrips + a Dagger + + +#####GThaumaturgy +Thaumaturgists can wreak an amazing amount of destruction, and they don't +even need spellbooks to do it. As they gain skill they memorise new, +randomly generated attack spells. Note that they possess no guaranteed +utility or alteration magics, and can never alter themselves. +[[[[[BThaumaturgists just kill.] + +They use their magics through the 'm' key. They then select a general +group of spells, followed by a specific spell. Thaumaturgists can learn +more about a specific spell by browsing it; this is very useful for +choosing the perfect spell for the occasion. + +Thaumaturgy spells can take the form of a bolt, a beam, a ball (either +centred on the caster or targetable), an area (multiple balls in the +vicinity of the caster), or a spell that affects all monsters in line of sight. + +You can find a little more information here: *****m_thaum.txt*0[Thaumaturgy]. diff --git a/lib/mods/theme/help/c_trapper.txt b/lib/mods/theme/help/c_trapper.txt new file mode 100644 index 00000000..eb0badbe --- /dev/null +++ b/lib/mods/theme/help/c_trapper.txt @@ -0,0 +1,46 @@ +~~~~~01|Trapper +~~~~~02|Classes|Trapper +#####R=== Trappers === + +#####GDescription +A Pacifist is someone who prefers not to use violence to +achieve their ends. The trappers are not averse, however, +to destroying monsters via traps and using corpses they +find to create totems in order to summon aid. They +may also use spells provided by their deities. + +#####GStarting Stat Modifiers +Strength 0 +Intelligence +2 +Wisdom +2 +Dexterity +2 +Constitution 0 +Charisma +4 +Bonus Blows 0 +Hit Die 0 +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Sneakiness 0.000 [0.600] + Stealth 0.000 [0.600] + Disarming 1.000 [0.600] + Dodging 1.000 [0.700] +Magic 1.000 [0.600] + Spell-power 0.000 [0.500] + Nature 1.000 [1.000] +Spirituality 0.000 [0.700] + Prayer 0.000 [0.500] +Monster-lore 1.000 [0.900] + Summoning 1.000 [0.600] + +#####GStarting Equipment +A trapper begins the game with: + a catapult trap set + some iron shots + +#####GInnate Abilities: +#####BAbility Character level +Trapping 1 +Ammo creation 10 +Perfect casting 15
\ No newline at end of file diff --git a/lib/mods/theme/help/c_unbel.txt b/lib/mods/theme/help/c_unbel.txt new file mode 100644 index 00000000..feec5723 --- /dev/null +++ b/lib/mods/theme/help/c_unbel.txt @@ -0,0 +1,65 @@ +~~~~~01|Unbeliever +~~~~~02|Classes|Unbeliever +#####R=== Unbelievers === + +#####GDescription +The full opposite of Sorcerors, Unbelievers so strongly despise magic +that not only do they refuse to use magic spells, they refuse all +training in the use of magic items, which leaves them almost totally +incompetent when trying to use a magic item. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.800] + Weaponmastery 1.000 [0.850] + Sword-mastery 0.000 [0.400] + Axe-mastery 0.000 [0.400] + Hafted-mastery 0.000 [0.400] + Polearm-mastery 0.000 [0.400] + Archery 1.000 [0.600] + Antimagic 1.000 [0.650] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +An Unbeliever begins the game with: + a Ring of Fear Resistance + a Dark Sword + a Chain Mail + +~~~~~03|Unbelievers|Antimagic +~~~~~04|Antimagic +~~~~~05|Skills|Antimagic powers +#####GAntimagic +Thought carries power. And since Unbelievers think that magic doesn't +exist, they can suppress its manifestation around them. +Their magic-inhibiting ability and the area of effect around them are +determined by the skill level in Antimagic. If they wield a Dark Sword, +the strength and radius of the magic disrupting field are increased further, +with best results if the blade is unenchanted. + +High levels of proficiency in Antimagic allow them also to stabilise the +space-time continuum, so preventing teleportation, to sense the magical +emanations coming from traps and to destroy these around them. +These abilities are accessed using the 'm' key. + + diff --git a/lib/mods/theme/help/c_wainrid.txt b/lib/mods/theme/help/c_wainrid.txt new file mode 100644 index 00000000..cf3c3d69 --- /dev/null +++ b/lib/mods/theme/help/c_wainrid.txt @@ -0,0 +1,49 @@ +~~~~~01|Wainrider +~~~~~02|Classes|Wainrider +#####R=== Wainriders === + +#####GDescription +Proud warriors riding majestic chariots. They are most effective +with short, thrusting blades. They are highly spiritual, but their +deity must be Melkor Bauglir, they do not have a choice when they +embark upon their adventure. They are better skilled in magic than +other warrior classes, although their magical ability is limited to +the Udun school. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Bonus Blows 3 +Hit Die +d9 +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.800] + Weaponmastery 1.000 [0.850] + Sword-mastery 0.000 [0.700] + Critical-hits 0.000 [0.500] + Archery 1.000 [0.600] +Sneakiness 1.000 [0.900] + Disarming 1.000 [0.900] +Magic 2.000 [0.800] + Magic-Device 1.000 [1.150] + Udun 0.000 [0.400] +Spirituality 1.000 [0.900] + Prayer 1.000 [0.700] +Monster-lore 0.000 [0.500] + +#####GStarting Equipment +A Wainrider begins the game with: + a spellbook of Curse + a potion of Corruption + a Shadow Blade + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1
\ No newline at end of file diff --git a/lib/mods/theme/help/c_warper.txt b/lib/mods/theme/help/c_warper.txt new file mode 100644 index 00000000..55d16be5 --- /dev/null +++ b/lib/mods/theme/help/c_warper.txt @@ -0,0 +1,60 @@ +|||||oy +~~~~~01|Warper +~~~~~02|Classes|Warper +#####R=== Warpers === + +#####GDescription +A Warper is a type of mage that prefers to deal in magic that alters the +fabric of space and time. They specialise in the schools of *****m_convey.txt*0[Conveyance], +*****m_divin.txt*0[Divination] and *****m_tempo.txt*0[Temporal] magic. + +#####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 1.000 [0.900] + Magic-Device 1.000 [1.050] + Spell-power 1.000 [0.700] + Mana 1.000 [0.700] + Geomancy + Fire 0.000 [0.800] + Water 0.000 [0.800] + Air 0.000 [0.800] + Earth 0.000 [0.800] + Meta 0.000 [0.800] + Conveyance 0.000 [1.200] + Divination 0.000 [1.200] + Temporal 0.000 [1.200] + 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] +Monster-lore 0.000 [0.500] + +*A Warper 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 +A Warper begins the game with: + a Book of Beginner Cantrips + a Dagger diff --git a/lib/mods/theme/help/c_warrio.txt b/lib/mods/theme/help/c_warrio.txt new file mode 100644 index 00000000..942b34bb --- /dev/null +++ b/lib/mods/theme/help/c_warrio.txt @@ -0,0 +1,54 @@ +~~~~~01|Warrior +~~~~~02|Classes|Warrior +#####R=== Warriors === + +#####GDescription +A Warrior is a hack-and-slash character, who solves most of his problems +by cutting them to pieces, but will occasionally fall back on the help +of a magical device or a bow. + +A Warrior learns no magic, and can even suppress it like an Unbeliever through +the Antimagic skill. + +#####GStarting Stat Modifiers +Strength +5 +Intelligence -2 +Wisdom -2 +Dexterity +2 +Constitution +2 +Charisma -1 +Hit Die +d9 +Spell Points +0% +Exp Penalty 0% + +#####GStarting Skills: +#####BSkill Start Level Skill Point Gains +Combat 2.000 [0.800] + Weaponmastery 1.000 [0.850] + Sword-mastery 0.000 [0.400] + Axe-mastery 0.000 [0.400] + Hafted-mastery 0.000 [0.400] + Polearm-mastery 0.000 [0.400] + Archery 1.000 [0.600] + Antimagic 0.000 [0.550] +Sneakiness 1.000 [0.900] + Stealth 0.000 [0.400] + Disarming 1.000 [0.900] +Magic 1.000 [0.300] + Magic-Device 1.000 [1.150] +Spirituality 1.000 [0.400] + Prayer 0.000 [0.500] +Monster-lore 0.000 [0.500] + +#####GInnate Abilities: +#####BAbility Character level +Extra Max Blow(1) 1 +Extra Max Blow(2) 1 +Spread blows 25 + +#####GStarting Equipment +A Warrior begins the game with: + a Ring of Fear Resistance + a Broad Sword + a Chain Mail + diff --git a/lib/mods/theme/help/command.txt b/lib/mods/theme/help/command.txt new file mode 100644 index 00000000..6616c252 --- /dev/null +++ b/lib/mods/theme/help/command.txt @@ -0,0 +1,1251 @@ +|||||oy +~~~~~99|Commands +#####R=== List of Commands === + + + Angband commands are entered as an "underlying command" (a single key) +plus a variety of optional or required arguments. You may choose how the +"keyboard keys" are mapped to the "underlying commands" by choosing one of +two standard "keysets", the "original" keyset or the "roguelike" keyset. + + The original keyset is very similar to the "underlying" command set, +with a few additions (such as the ability to use the numeric "directions" to +"walk" or the "5" key to "stay still"). The roguelike keyset provides similar +additions, and also allows the use of the h/j/k/l/y/u/b/n keys to "walk" (or, +in combination with the shift or control keys, to run or tunnel), which thus +requires a variety of key mappings to allow access to the underlying commands +used for walking/running/tunneling. In particular, the "roguelike" keyset +includes many more "capital" and "control" keys, as shown below. + + Note that any keys that are not required for access to the underlying +command set may be used by the user as "command macro" triggers (see below). +You may always specify any "underlying command" directly by pressing backslash +("\") plus the "underlying command" key. This is normally only used in "macro" +definitions. [[[[[BYou may often enter "control-keys" as a caret ("^") plus the key] +(so "^" + "p" often yields "^P"). + + Some commands allow an optional "repeat count", which allows you to tell +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. + + 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 +monster race, a sub-command, a verification, an amount of time, a quantity, +a file name, or various other things. Normally you can hit return to choose +the "default" response, or escape to cancel the command entirely. + + Some commands will prompt for a spell or an inventory item. Pressing +space (or '*') will give you a list of choices. Pressing "-" (minus) selects +the item on the floor. Pressing a lowercase letter selects the given item. +Pressing a capital letter selects the given item after verification. Pressing +a numeric digit '#' selects the first item (if any) whose inscription contains +"@#" or "@x#", where "x" is the current "underlying command". You may only +specify items which are "legal" for the command. Whenever an item inscription +contains "!*" or "!x" (with "x" as above) you must verify its selection. + + In ToME, there are items which occasionally teleport you away, asking +for permission first. The recurring "Teleport (y/n)?" can be annoying, and +this behavior can be eliminated by inscribing the object which causes the +teleportation with "." (or any inscription containing the character "."). +With this inscription, the object will no longer teleport you around nor +keep asking you. If you want to restore the teleport ability to the object, +just remove the "." from its inscription. Note that cursed items which +teleport you are unaffected by the inscription. + + Some commands will prompt for a direction. You may enter a "compass" +direction using any of the "direction keys" shown below. Sometimes, you may +specify that you wish to use the current "target", by pressing "t" or "5", or +that you wish to select a new target, by pressing "*" (see "Target" below). +~~~~~95 +#####G Original Keyset Directions Roguelike Keyset Directions + + 7 8 9 y k u + 4 6 h l + 1 2 3 b j n + + Each of the standard keysets provides some short-cuts over the "underlying +commands". For example, both keysets allow you to "walk" by simply pressing +an "original" direction key (or a "roguelike" direction key if you are using +the roguelike keyset), instead of using the "walk" command plus a direction. +[[[[[BThe roguelike keyset allows you to "run" or "tunnel" by simply holding the] +[[[[[Bshift or control modifier key down while pressing a "roguelike" direction key,] +[[[[[Binstead of using the "run" or "tunnel" command plus a direction.] Both keysets +allow the use of the "5" key to "stand still", which is most convenient when +using the original keyset. + + Note that on many systems, it is possible to define "macros" (or "command +macros") to various keys, or key combinations, so that it is often possible to +make macros which, for example, allow the use of the shift or control modifier +keys, plus a numeric keypad key, to specify the "run" or "tunnel" command, with +the given direction, regardless of any keymap definitions, by using the fact +that you can always, for example, use "\" + "." + "6", to specify "run east". +~~~~~100|Commands|Original keyset +#####R=== Original Keyset Command Summary (4.2.x) === + + *****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*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] + *****command.txt*15[h Hack up a corpse] *****command.txt*16[H Drink from a fountain] + *****command.txt*17[i Inventory list] *****command.txt*18[I Inspect (closely examine) an item] + *****command.txt*19[j Jam a door] J (unused) + *****command.txt*20[k Destroy an item] *****command.txt*21[K Cure meat] + *****command.txt*22[l Look around] *****command.txt*23[L Look around dungeon by sector] + *****command.txt*24[m Cast a spell / use mental power] *****command.txt*25[M Full dungeon map] + *****command.txt*85[n Repeat last command] *****command.txt*91[N Abilities Screen] + *****command.txt*26[o Open a door or chest] *****command.txt*27[O Sacrifice at an altar] + *****command.txt*28[p Pray to your god (if any)] *****command.txt*29[P Pet commands] + *****command.txt*30[q Quaff a potion] *****command.txt*31[Q Quit (commit suicide)] + *****command.txt*32[r Read a scroll] *****command.txt*33[R Rest for a period] + *****command.txt*34[s Search for traps/doors] *****command.txt*35[S Toggle search mode] + *****command.txt*36[t Take off equipment] *****command.txt*37[T Dig a tunnel] + *****command.txt*38[u Use a staff] *****command.txt*39[U Use bonus power (if any)] + *****command.txt*40[v Throw an item] *****command.txt*41[V Version Info] + *****command.txt*42[w Wear/wield equipment] W (unused) + *****command.txt*43[x Engrave the floor] X (unused) + *****command.txt*44[y Give item to monster] *****command.txt*96[Y Chat with a monster] + *****command.txt*45[z Zap a rod] *****command.txt*46[Z Steal] + *****command.txt*47[! Interact with system] *****debug.txt*101[^A (special - debug command)] + *****command.txt*49[@ Interact with macros] ^B (unused) + *****command.txt*89[# Begin extended command] ^C (special - break) + *****command.txt*97[$ Record macros] ^D (unused) + *****command.txt*51[% Interact with visuals] *****command.txt*52[^E Toggle choice window] + ^ (special - control key) *****command.txt*53[^F Repeat level feeling] + *****command.txt*54[& Interact with colors] ^G (unused) + *****command.txt*55[* Target monster or location] ^H (unused) + ( (unused) ^I (special - tab) + ) (unused) ^J (special - linefeed) + *****command.txt*58[{ Inscribe an object] ^K (unused) + *****command.txt*59[} Uninscribe an object] ^L (unused) + [ (unused) ^M (special - return) + ] (unused) ^N (unused) + *****command.txt*60[- Walk (flip pickup)] ^O (unused) + *****command.txt*61[_ Re-Enter store] *****command.txt*62[^P Show previous messages] + *****command.txt*63[+ Alter grid] *****command.txt*64[^Q Quit to next midi song] + *****command.txt*65[= Set options] *****command.txt*66[^R Redraw the screen] + *****command.txt*67[; Walk (with pickup)] *****command.txt*68[^S Save and don't quit] + *****command.txt*69[: Take notes] *****command.txt*70[^T Time of the day] + ' (unused) ^U (unused) + *****command.txt*71[" Enter a user pref command] ^V (unused) + *****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*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] + + +~~~~~101|Commands|Roguelike keyset +#####R=== Roguelike Keyset Command Summary (4.2.x) === + + *****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*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] + *****command.txt*95[h (walk - west)] *****command.txt*95[H (run - west)] + *****command.txt*17[i Inventory list] *****command.txt*18[I Observe an item] + *****command.txt*95[j (walk - south)] *****command.txt*95[J (run - south)] + *****command.txt*95[k (walk - north)] *****command.txt*95[K (run - north)] + *****command.txt*95[l (walk - east)] *****command.txt*95[L (run - east)] + *****command.txt*24[m Spell casting / mental power] *****command.txt*25[M Full dungeon map] + *****command.txt*95[n (walk - south east)] *****command.txt*95[N (run - south east)] + *****command.txt*26[o Open a door or chest] *****command.txt*39[O Use bonus power (if any)] + *****command.txt*28[p Pray to your god (if any)] *****command.txt*3[P Browse a book] + *****command.txt*30[q Quaff a potion] *****command.txt*31[Q Quit (commit suicide)] + *****command.txt*32[r Read a scroll] *****command.txt*33[R Rest for a period] + *****command.txt*34[s Search for traps/doors] *****command.txt*97[S Record macros] + *****command.txt*11[t Fire an item] *****command.txt*36[T Take off equipment] + *****command.txt*95[u (walk - north east)] *****command.txt*95[U (run - north east)] + *****command.txt*40[v Throw an item] *****command.txt*16[V Drink from a fountain] + *****command.txt*42[w Wear/wield equipment] *****command.txt*23[W Locate player on map (Where)] + *****command.txt*22[x Look around] *****command.txt*29[X Pet commands] + *****command.txt*95[y (walk - north west)] *****command.txt*95[Y (run - north west)] + *****command.txt*1[z Aim a wand (Zap)] *****command.txt*38[Z Use a staff (Zap)] + *****command.txt*47[! Interact with system] ^A (special - debug command) + *****command.txt*49[@ Interact with macros] *****command.txt*95[^B (tunnel - south west)] + *****command.txt*35[# Toggle search mode] ^C (special - break) + *****command.txt*15[$ Hack up a corpse] *****command.txt*20[^D Destroy item] + *****command.txt*51[% Interact with visuals] *****command.txt*52[^E Toggle choice window] + ^ (special - control key) *****command.txt*53[^F Repeat level feeling] + *****command.txt*54[& Interact with colors] *****command.txt*27[^G Sacrifice at an altar] + *****command.txt*55[* Target monster or location] *****command.txt*95[^H (tunnel - west)] + *****command.txt*96[( Chat] ^I (special - tab) + *****command.txt*89[) Begin extended command] *****command.txt*95[^J (tunnel - south)] + *****command.txt*58[{ Inscribe an object] *****command.txt*95[^K (tunnel - north)] + *****command.txt*59[} Uninscribe an object] *****command.txt*95[^L (tunnel - east)] + [*****command.txt*46[ Steal] *****command.txt*95[^M (tunnel - south)] + ]*****command.txt*43[ Engrave the floor] *****command.txt*95[^N (tunnel - south east)] + *****command.txt*60[- Walk (flip pickup)] *****command.txt*21[^O Cure meat] + *****command.txt*61[_ Enter store] *****command.txt*62[^P Show previous messages] + *****command.txt*63[+ Alter grid] *****command.txt*64[^Q Quit to next midi song] + *****command.txt*65[= Set options] *****command.txt*66[^R Redraw the screen] + *****command.txt*67[; Walk (with pickup)] *****command.txt*68[^S Save and don't quit] + *****command.txt*69[: Take notes] *****command.txt*37[^T Dig a Tunnel] + *****command.txt*44[' Give object to monster] *****command.txt*95[^U (tunnel - north east)] + *****command.txt*71[" Enter a user pref command] ^V (unused) + *****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*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. + + If you are playing on a UNIX or similar system, then Ctrl-C will +interrupt ToME. The second and third interrupt will induce a warning +bell, and the fourth will induce both a warning bell and a special message, +since the fifth will quit the game, after killing your character. Also, +Ctrl-Z will suspend the game, and return you to the original command shell, +until you resume the game with the "fg" command. There is now a compilation +option to force the game to prevent the "double ctrl-z escape death trick". +The Ctrl-\ and Ctrl-D and Ctrl-S keys should not be intercepted. + + It is often possible to specify "control-keys" without actually +pressing the control key, by typing a caret ("^") followed by the key. +This is useful for specifying control-key commands which might be caught +by the operating system as explained above. +~~~~~79 + Pressing [[[[[Gbackslash ("\\")] before a command will bypass all keymaps, +and the next keypress will be interpreted as an "underlying command" key, +unless it is a caret ("^"), in which case the keypress after that will be +turned into a control-key and interpreted as a command in the underlying +ToME keyset. The backslash key is useful for creating macro actions +which are not affected by any keymap definitions that may be in force, for +example, the sequence "\" + "." + "6" will always mean "run east", even if +the "." key has been mapped to a different underlying command. + + The "0" and "^" and "\" keys all have special meaning when entered +at the command prompt, and there is no "useful" way to specify any of them +as an "underlying command", which is okay, since they would have no effect. +~~~~~81 + For many input requests or queries, the [[[[[Gspecial character ESCAPE] +will abort the command. The "[y/n]" prompts may be answered with "y" or +"n", or escape. The "-more-" message prompts may be cleared (after reading +the displayed message) by pressing ESCAPE, SPACE, RETURN, LINEFEED, or by +any keypress, if the "quick_messages" option is turned on. +~~~~~103|Commands|Command counts +~~~~~104|Commands|Repeating a command +#####R=== Command Counts === + + Some commands can be executed a fixed number of times by preceding +them with a count. Counted commands will execute until the count expires, +until you type any character, or until something significant happens, such +as being attacked. Thus, a counted command doesn't work to attack another +creature. While the command is being repeated, the number of times left +to be repeated will flash by on the line at the bottom of the screen. + + [[[[[BTo give a count to a command, type 0, the repeat count, and then] +[[[[[Bthe command.] If you want to give a movement command and you are using the +original command set (where the movement commands are digits), press space +after the count and you will be prompted for the command. + + Counted commands are very useful for searching or tunneling, as +they automatically terminate on success, or if you are attacked. You may +also terminate any counted command (or resting or running), by typing any +character. This character is ignored, but it is safest to use a SPACE or +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. + + +#####R=== Selection of Objects === + + Many commands will also prompt for a particular object to be used. +For example, the command to read a scroll will ask you which of the +scrolls that you are carrying that you wish to read. In such cases, the +selection is made by typing a letter of the alphabet. The prompt will +indicate the possible letters, and will also allow you to type the key +"*", which causes all of the available options to be described. The list +of choices will also be shown in the Choice window, if you are using a +windows environment and windows are turned on. Often you will be able to +press "/" to select an object from your equipment instead of your +inventory. Pressing space once will have the same effect as "*", and +the second time will cancel the command and run the "i" or "e" command. + + [[[[[BThe particular object may be selected by an upper case or a lower] +[[[[[Bcase letter. If lower case is used, the selection takes place] +[[[[[Bimmediately. If upper case is used, then the particular option is] +[[[[[Bdescribed, and you are given the option of confirming or retracting that] +[[[[[Bchoice.] Upper case selection is thus safer, but requires an extra key +stroke. Also see the "!*" and "!x" inscriptions, below. + + For many commands, [[[[[Byou can also use "-" to select an object on the] +[[[[[Bfloor where you are standing.] This lets you read scrolls or quaff +potions, for example, off the dungeon floor without picking them up. +~~~~~90 + If you enter a number between 0 and 9, the first item engraved +with "@#" where "#" is the number you entered will be selected. For example, +if you have a shovel engraved with "@0" and you type "w" (for wield) and +then 0, you will wield the shovel. This is very useful for macros (see +below), since you can use this to select an object regardless of its +location in your pack. Multiple numbers can be engraved on the same object; for +example, if a sword is engraved with @1@0, then either "w1" or "w0" will +wield it. Normally, you inscribe "@1@0" on your primary weapon, and +"@2@0" on your secondary weapon. [[[[[BNote that an inscription containing] +[[[[[B"@x#" will act like "@#" but only when the current "ToME command"] +[[[[[Bis "x".] Thus you can put "@z4" on a rod and "@u4" on a staff, and then +use both "z4" and "u4" as desired. + + Note that any object containing "!x" in its inscription, where +"x" is the current "ToME command" (or containing "!*" ever) will induce +"verification" whenever that object is "selected". Thus, inscribing, say, +"!f!k!d" on an object will greatly reduce the odds of you "losing" it by +accident, and [[[[[Binscribing "!*" on an object] will allow you to be very paranoid +about the object. Note that "selling" and "dropping" both use the "d" command. + +~~~~~105|Pref files +#####R=== User Pref Files === + + ToME allows you to change various aspects of the game to suit +your tastes. You may define keymaps (changing the way ToME maps your +keypresses to underlying commands), create macros (allowing you to map a +single keypress to a series of keypresses), modify the visuals (allowing +you to change the appearance of monsters, objects, or terrain features), +change the colors (allowing you to make a given color brighter, darker, +or even completely different), or set options (turning them off or on). + + ToME stores your preferences in files called "user pref files", +which contain comments and "user pref commands", which are simple strings +describing one aspect of the system about which the user has a preference. +There are many ways to load a user pref file, and in fact, some of these +files are automatically loaded for you by the game. All of the files are +kept in the "lib/user/" directory, though you may have to use one of the +command line arguments to redirect this directory, especially on multiuser +systems. You may also enter single user pref commands directly, using the +special "Enter a user pref command" command, activated by "double quote". +You may have to use the "redraw" command (^R) after changing certain of +the aspects of the game, to allow ToME to adapt to your changes. + + When the game starts up, after you have loaded an old character, +or created a new character, some user pref files are loaded automatically. +First, the "pref.prf" file is loaded. This file contains some user pref +commands which will work on all platforms. Then one of "font-xxx.prf" +(for normal usage) or "graf-xxx.prf" (for bitmap usage) is loaded. These +files contain attr/char changes to allow the monsters, objects, and/or +terrain features to look "better" on your system. Then the "pref-xxx.prf" +file is loaded. This file contains pre-defined system specific stuff +(macros, color definitions, etc). Then, the "user-xxx.prf" file is loaded. +This file contains user-defined system specific stuff. The "user-xxx.prf" +file is used as the "default" user pref file in many places. The "xxx" is +the "system suffix" for your system, taken from the "main-xxx.c" file which +was used to generate your executable. Finally, the "Race.prf", "Class.prf", +and "Name.prf" files are loaded, where "Race", "Class", and "Name" are +replaced by the actual race, class, and name of the current character. + + Several commands allow you to both load existing user pref files, +create new user pref files, append information to existing user pref files, +and/or interact with various of the user preferences in a more intuitive +way than the user pref commands allow. The commands include "Interact with +macros" (@), "Interact with visuals" (%), and "Interact with colors" (&), +described below. +~~~~~106|Pref files|Macros +#####G--- User Pref Files (Macros) --- + + The "Interact with macros" command allows you to define or remove +"macros", which are mappings from a single logical keypress to a sequence +of keypresses, allowing you to use special keys on the keyboard, such as +function keys or keypad keys, possibly in conjunction with modifier keys, +to "automate" repetitive multi-keypress commands that you use a lot. + + Since macros represent keypress sequences, and not all keypresses +have a printable representation, macro triggers and actions must often be +"encoded" into a human readable form. This is done using several types +of encoding, including "\xHH" for character number HH in hexidecimal, "\e" +for the "escape" code, "\n" for the "newline" code, "\r" for the "return" +code, "\s" for the "space" code, "\\" for backslash, "\^" for caret, and +"^X" for the code for any "control" key "ctrl-X". Note that the "action" +of a macro will not be checked against other macro triggers (unless the +macro action contains a "control-backslash"), so you cannot make infinite +loops. You may specify extremely long macros, but you are limited in +length by the underlying input mechanisms, which in general limit you +to about 1024 keys in both triggers and actions. + + The special "\" command (which must be encoded in macros as "\\") +is very useful in macros, since it bypasses all keymaps and allows the next +keystroke to be considered a command in the underlying ToME command set. +For example, a macro which maps Shift-KP6 to "\" + "." + "6" will induce +the "run east" behavior, regardless of what keyset the user has chosen, and +regardless of what keymaps have been defined. + + Macros can be specified in user pref files as a pair of lines, one +of the form "A:<str>", which defines the encoded macro action, and one of +the form "P:<str>", which defines the encoded macro trigger. + + A [[[[[Bcommon example of a macro] to cast the first spell in your first spell +book at the nearest monster would be: \e\e\em1a*t where \e is an escape (to make +sure you are not still within another command), m1 selects the spell book that +is inscribed ({) with @m1, a selects the first spell in that book, and *t targets +the nearest monster. + + More detailed information about specific macros can be found in +*****macrofaq.txt*0[macrofaq.txt], originally written by Jim Lyon (jplyon@attglobal.net), +modified for ToME with Jim's permission by Dawnmist +(angband@dawnmist.8m.com). +~~~~~107|Pref files|Keymaps +#####G--- User Pref Files (Keymaps) --- + + The "Interact with macros" command also allows you to define +"keymaps", which are vaguely related to macros. A keymap maps a single +keypress to a series of keypresses, which bypass both other keymaps and +any macros. ToME uses keymaps to map the original and the roguelike +keysets to the underlying command set, and allows the user to modify or +add keymaps of their own. Note that all keymap actions must be specified +using underlying commands, not keypresses from the original or roguelike +keysets. The original keyset is almost identical to the underlying keyset, +except that "numbers" are mapped to ";" plus a direction, "5" is mapped to +",", and a few control-keys are mapped to various things. See "command.txt" +for the full set of underlying commands. Some uses for keymaps include the +ability to "disable" a command by mapping it to "\x00", + + Keymaps can be specified in user pref files as line of the form +"M:<T> <key> <str>", where <T> is the keyset (0/1 for original/roguelike), +<key> is the encoded trigger key, and <str> is the encoded keymap action. +~~~~~108|Pref files|Visuals +#####G--- User Pref Files (Visuals) --- + + You can use the "Interact with visuals" command to change various +visual information, currently including the choice of what attr/char values +are used to represent various monsters, objects, or terrain features. Note +that in combination appropriate support in "main-xxx.c", and with the use of +the "use_graphics" flag, you may be able to specify that "graphic bitmaps" +should be used instead of normal "colored characters" for various things. + + When interactively modifying the attr/char values for monsters, +objects, or terrain features, pressing "n" or "N" will change which entry +you are changing, pressing "a" or "A" will rotate through the available +attr values, and pressing "c" or "C" will rotate though the available char +values. Note that attr/char values with the "high bit" set may induce the +display of special "graphic" pictures if the "use_graphics" flag is set, +and your system supports the "use_graphics" flag. + + Note that this command can be abused in various ways, and if you +must do so, remember that you are only cheating yourself. + + Keymaps can be specified in user pref files as line of the form +"R:<N>:<A>/<C>" or "K:<N>:<A>/<C>" or "F:<N>:<A>/<C>" or "U:<N>:<A>/<C>". +~~~~~109|Pref files|Colors +#####G--- User Pref Files (Colors) --- + + The "Interact with colors" command allows you to change the actual +internal values used to display various colors. This command may or may +not have any effect on your machine. Advanced machines may allow you to +change the actual RGB values used to represent each of the 16 colors used +by ToME, and perhaps even allow you to define new colors which are not +currently used by ToME. + + Colors can be specified in user pref files as line of the form +"V:<N>:<V>:<R>:<G>:<B>". +~~~~~110|Pref files|Options +#####G--- User Pref Files (Options) --- + + The "Interact with options" command allows you to turn options +on or off. You may turn options off or on using the user pref commands +of the form "X:<option>" or "Y:<option>" respectively. + +~~~~~111|Commands|Command descriptions +#####R=== Command Descriptions === + + The following command descriptions are listed as the command name +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 +"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 +which need a "quantity" will use the "repeat count" instead of asking for +a quantity, allowing the use of "0d" for "drop all". Commands which ask +for a quantity will convert any "letters" into the maximal legal value. +~~~~~112|Commands|Inventory +#####R--- Inventory Commands --- +~~~~~17 +[[[[[GInventory list (i)] + Displays a list of objects being carried but not equipped. You + can carry up to 23 different items, not counting those in your + equipment. Often, many identical objects can be "stacked" into + a "pile" which will count as a single item. This is always + true of things like potions, scrolls, and food, but you may have + to set options to allow wands, staves, and other such objects to + stack. Each object has a weight, and if you carry more objects + than your strength permits, you will begin to slow down. +~~~~~9 +[[[[[GEquipment list (e)] + Use this command to display a list of the objects currently being + used by your character. The number and type of available slots for + equipment may vary. A human for example has 15 slots for equipment, + 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 + powers. +~~~~~7 +[[[[[GDrop an item (d)] + This command drops an item from your inventory or equipment onto the + dungeon floor. If the place you are standing on already has objects + in it, ToME will attempt to drop the item onto an adjacent space. + A floor spot can hold more than one object, but there is still the + possibility that if the floor is too full and you attempt to drop + something, it may disappear and be destroyed. If the selected pile + contains multiple items, you may specify a quantity. +~~~~~20 +[[[[[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. +~~~~~42 +[[[[[GWear/Wield equipment (w)] + To wear or wield an object in your inventory, use this command. + Since only one object can be in each slot at a time, if you wear + or wield an item into a slot which is already occupied, the old + item will be first be taken off, and may in fact be dropped if + there is no room for it in your inventory. +~~~~~36 +[[[[[GTake off equipment (t) or Take off equipment (T)] + Use this command to take off a piece of equipment and return it + to your inventory. Occasionally, you will run into a cursed item + which cannot be removed. These items normally penalise you in some + way and cannot be taken off until the curse is removed. If there + is no room in your inventory for the item, your pack will overflow + and you will drop the item after taking it off. +~~~~~113|Commands|Movement +#####R--- Movement Commands --- +~~~~~67 +[[[[[GWalk (with pickup) (;)] + Moves one step in the given direction. The square you are moving + into must not be blocked by walls or doors. You will pick up any + items in the destination grid if the "always_pickup" option is set, + or if the "query_pickup" option is set and you respond correctly. + This command can take a count and requires a direction. You may + also use the "original" direction keys (both keysets) or the + "roguelike" direction keys (roguelike keyset) to walk in a + direction. +~~~~~60 +[[[[[GWalk (flip pickup) (-)] + This is just like normal move, except that the "Pick things up" + option is inverted. In other words, if you normally pick up + anything you encounter (the default), you will not pick things up + when using this command. If you normally do not pick things up, + you will when using this command. This command can take a count + and requires a direction. +~~~~~76 +[[[[[GRun (.) or Run (,)] + This command will move in the given direction, following any bends + in the corridor, until you either have to make a "choice" between + two directions or you are disturbed. You can configure what will + disturb you by setting the disturbance options. Run requires a + direction. You may also use shift plus the "roguelike" direction + keys (roguelike keyset), or shift plus the "original" direction keys + on the keypad (both keysets, some machines) to run in a direction. +~~~~~74 +[[[[[GGo up staircase (<)] + Climbs up an up staircase you are standing on. There is always at + least one staircase going up on every level (this doesn't mean it's + easy to find) except for the surface, where '<' will bring up the + wilderness map. Going up a staircase will take you to a new dungeon + level unless you are at the first level of the dungeon, in which case + you will return to the surface. Note that whenever you leave a dungeon + level, you will never find it again, unless the level contains a dungeon + town. This means that for all intents and purposes, any objects on that + level are destroyed. This includes unknown artifacts unless the "Create + characters in preserve mode" option was set when your character was + created, in which case the artifacts may show up again later. +~~~~~77 +[[[[[GGo down staircase (>)] + Descends a down staircase you are standing on. There are always + at least two staircases going down on each level, except for the + last level of a dungeon, and some "quest" levels, which have none until + the quest monsters are killed. Going down a staircase will take you + to a new dungeon level. See "Go Up Staircase" for more info. + + This command is also used to enter Void Jumpgates, and to zoom in from + the wilderness map. +~~~~~114|Commands|Resting +#####R--- Resting Commands --- +~~~~~72 +[[[[[GStay still (with pickup) (,) or Stay still (with pickup) (.)] + Stays in the same square for one move. If you normally pick up + objects you encounter, you will pick up whatever you are standing + on. This command can take a count. You may also use the "5" key + (both keysets). +~~~~~13 +[[[[[GStay still (flip pickup) (g)] + Stays in the same square for one move. If you normally pick up + objects you encounter, you will not pick up whatever you are + standing on. If you normally do not pick up objects, you will + pick up what you are standing on. This command is normally only + used when the "always_pickup" option is false. This command can + take a count. +~~~~~33 +[[[[[GRest (R)] + Resting is better for you than repeatedly staying still, and can + be told to automatically stop after a certain amount of time, or + when various conditions are met. In any case, you always wake up + when anything disturbing happens, or when you press any key. To + rest, enter the Rest command, followed by the number of turns you + want to rest, or "*" to rest until your hit points and mana are + restored, or "&" to rest until you are fully "healed". This command + can take a count, which is used for the number of turns to rest. +~~~~~61 +[[[[[GEnter store (_)] + When standing on the door of a store, this command allows the character + to enter the store again. +~~~~~115|Commands|Searching +#####R--- Searching Commands --- +~~~~~34 +[[[[[GSearch (s)] + This command can be used to locate hidden traps and secret doors + in the spaces adjacent to the player. More than a single turn of + searching will be required in most cases. You should always + search a chest before trying to open it, since they are generally + trapped. This command can take a count, which is useful if you + are fairly sure of finding something eventually, since the command + stops as soon as anything is found. This command can take a count. +~~~~~35 +[[[[[GToggle search mode (S) or Toggle search mode (#)] + This command will take you into and out of search mode. When + first pressed, the message "Searching" will appear at the bottom + of the screen. You are now taking two turns for each command, one + for the command and one turn to search. This means that you are + taking twice the time to move around the dungeon, and therefore + twice the food. Search mode will automatically turn off if you + are disturbed. You may also turn off search mode by entering the + Search Mode command again. +~~~~~116|Commands|Alteration commands +~~~~~117|Commands|Terrain interaction +#####R--- Alter Commands --- +~~~~~37 +[[[[[GTunnel (T) or Tunnel (^T)] + Tunnelling or mining is a very useful art. There are many kinds of + rock, with varying hardness, including permanent rock (permanent), + granite (very hard), quartz veins (hard), magma veins (soft), and + rubble (very soft). Quartz and Magma veins may be displayed in a + special way, and may sometimes contain treasure, in which case they + will be displayed in a different way. Rubble sometimes covers an + object. It is only possible to tunnel if you are wielding a digging + tool such as a shovel or a pick. Tunnelling ability increases with + strength and tool weight. This command can take a count, requires a + direction, and is affected by the "always_repeat" option. +~~~~~26 +[[[[[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. +~~~~~5 +[[[[[GClose a door (c)] + Non-intelligent and some other creatures cannot open doors, so + shutting doors can be quite valuable. Broken doors cannot be closed. + Bashing a door open may break it. Close can take a count, requires a + direction, and is affected by the "always_repeat" option. +~~~~~19 +[[[[[GJam a door (j) or Spike a door (S)] + Many monsters can simply open closed doors, and can eventually + get through a locked door. You may therefore occasionally want + to jam a door shut with iron spikes. Each spike used on the door + will make it harder to bash down the door, up to a certain limit. + Smaller monsters are less able to bash down doors. In order to + use this command, you must be carrying iron spikes. Jam or Spike + requires a direction. +~~~~~4 +[[[[[GBash a door (B) or Force a door (f)] + This command allows you to bash down jammed doors. Your bashing + ability increases with strength. Bashing open a door can (briefly) + throw you off balance. Doors that are stuck, or which have been + jammed closed with spikes can only be opened by bashing, and all + closed doors can be bashed open if desired. Bashing a door open + 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 + "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 + can take a count, requires a direction, and is affected by the + "always_repeat" option. +~~~~~43 +[[[[[GEngrave the floor (x)] + The dungeon is full of magics, and as such pools of it collect on + the floor in places. With the "inscribe" command, it is possible + to create some spell effects by inscribing words you have read from + various parchments detailing the languages used within the dungeon. + Then, if there is enough mana collected on that square, walking over + the inscription will trigger the spell. Some spells can be triggered + only by the player, some only by monsters, and some are triggered by + both. +~~~~~46 +[[[[[GSteal (Z)] + Allows the player to try to steal items from shops. Also allows + rogues to steal from monsters. +~~~~~118|Commands|Spells and prayers +#####R--- Spell and Prayer Commands --- +~~~~~3 +[[[[[GBrowse a book (b) or Peruse a book (P)] + Only characters with some knowledge in the magic schools, such as + mages, priests, rogues, and rangers, can read magic spellbooks. + Warriors normally cannot read any books. When this command is used, + all of the spells or prayers contained in the selected book are + displayed, along with information such as their level, the amount of + mana or piety required to cast them, and whether or not you know the + spell or prayer. +~~~~~14 +[[[[[GGain new skills (G)] + Use this command to access the skills menu and spend the skill points + you gain at each new character level to increase the range of things + your character is able to do. +~~~~~91 +[[[[[GGain new abilities (N)] + Use this command to access the Abilities menu and spend the skill points + you gain at each new character level to increase the range of things + your character is able to do. +~~~~~24 +[[[[[GCast a spell / Pray a prayer (m) / Use a mental power] + To cast a spell or prayer, you must have the skill level required in + that school of magic to be able access that spell, and a book that + contains that spell in your inventory (for most schools). Each spell + has a chance of failure which starts out fairly large but decreases + as you gain levels. If you don't have enough mana to cast a spell, + you will be told you do not have enough mana to cast it. Since in most + cases you must read the spell from a book, you cannot be blind or + confused while casting, and there must be some light present. + + Some classes (for example, Thaumaturgists) have the ability to use + some magic without actually needing spell books of any sort. These + classes are able to access their magical powers through the use of + the 'm' command. +~~~~~39 +[[[[[GUse bonus power (if any) (U) or (O)] + Some races and classes have special natural abilities. All of these + possible abilities are listed in an index under the U (or O) command. + These type of abilities can include the Vampire's bite, a DeathMold's + telekinesis, and a RohanKnight's light speed capabilities. +~~~~~119|Commands|Object manipulation +#####R--- Object Manipulation Commands --- +~~~~~10 +[[[[[GEat some food (E)] + You must eat regularly to prevent starvation. As you grow hungry, + a message will appear at the bottom of the screen saying "Hungry". + If you go hungry long enough, you will become weak, then start + fainting, and eventually, you may will die of starvation. You + may use this command to eat food in your inventory. Note that + you can sometimes find food in the dungeon, or you can butcher + corpses of killed creatures to obtain raw meat, but it is not + always wise to eat strange food. +~~~~~12 +[[[[[GFuel your lantern/torch (F)] + If you are using a torch and have more torches in your pack, + or you are using a lantern and have flasks of oil in your pack, + then your can "refuel" them with this command. Torches and Lanterns + are limited in their maximal fuel. In general, two flasks will fully + fuel a lantern and two torches will fully fuel a torch. +~~~~~30 +[[[[[GQuaff a potion (q)] + Use this command to drink a potion. Potions affect the player in + various ways, but the effects are not always immediately obvious. +~~~~~32 +[[[[[GRead a scroll (r)] + 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. +~~~~~58 +[[[[[GInscribe an object ({)] + This command inscribes a string on an object. The inscription is + displayed inside curly braces after the object description. The + inscription is limited to the particular object (or pile) and is + not automatically transferred to all similar objects. Under certain + circumstances, ToME will display "fake" inscriptions on certain + objects ("cursed", "broken", "tried", "empty", "NN% off") when + appropriate. These "fake" inscriptions are "covered up" by real + inscriptions, but will re-appear if the real inscription is removed. + In addition, ToME will occasionally place a "real" inscription on + an object for you, normally as the result of your character getting + a "feeling" about the item. All characters will get "feelings" about + weapons and armor after carrying them for a while. Warriors get the + most detailed feelings, and get them quicker than any other class. + An item labeled as "{empty}" was found to be out of charges, and an + item labeled as "{tried}" is a "flavoured" item which the character + has used, but whose effects are unknown. Certain inscriptions have + a meaning to the game, see "@#", "@x#", "!*", and "!x", in the section + on *****command.txt*90[inventory object selection.] +~~~~~59 +[[[[[GUninscribe an object (})] + This command removes the inscription on an object. This command will + have no effect on "fake" inscriptions added by the game itself. +~~~~~15 +[[[[[GHack up a corpse (h or $)] + Corpses can be cut up into smaller pieces of meat, allowing the user to + eat the meat, or cure it for later use. +~~~~~21 +[[[[[GCure meat (K)] + Curing meat requires the use of a potion of salt water, and is used to + protect meat from hacked-up corpses from going bad. +~~~~~16 +[[[[[GDrink from a fountain (H)] + All fountains in Arda are magical, and act like magical potions. The + game will ask you whether you want to quaff from a fountain or to fill + empty bottles. The only way to identify the type of fountain is to + fill your bottles from it and see what you get. +~~~~~44 +[[[[[GGive item to monster (y)] + This command is used to give an item within your inventory to a monster + standing next to you. The monster may not accept the item you give it, + however. +~~~~~96 +[[[[[GChat (Y)] + This command allows you to chat with someone. Be warned that most + monsters won't chat + +#####R--- Magical Object Commands --- +~~~~~2 +[[[[[GActivate an artifact (A)] + You have heard rumours of special weapons and armour deep in the + Pits, items that can let you breath fire like a dragon or light + rooms with just a thought. Should you ever be lucky enough to + find such an item, this command will let you activate its special + ability. Special abilities can only be used if you are wearing or + wielding the item. + Note that there are also a few common objects that can be activated, + e.g. music instruments, monster eggs and spell-storing mage staves, + and that some artifacts, so-called "junkarts", can't be wielded, but + must be activated from the backpack. +~~~~~1 +[[[[[GAim a wand (a) or Zap a wand (z)] + Wands must be aimed in a direction to be used. Wands are magical + devices, and therefore there is a chance you will not be able to + figure out how to use them if you aren't good with magical + devices. They will fire a shot that affects the first object or + creature encountered or fire a beam that affects anything in a + given direction, depending on the wand. An obstruction such as a + door or wall will generally stop the effects from traveling any + farther. This command requires a direction and can use a target. +~~~~~38 +[[[[[GUse a staff (u) or Zap a staff (Z)] + This command will use a staff. A staff is normally very similar + to a scroll, in that they normally either have an area effect or + affect a specific object. Staves are magical devices, and there + is a chance you will not be able to figure out how to use them. +~~~~~45 +[[[[[GZap a rod (z) or Activate a rod (a)] + Rods are extremely powerful magical items, which cannot be burnt + or shattered, and which can have either staff-like or wand-like + effects, but unlike staves and wands, they don't have charges. + Instead, they draw on the ambient magical energy to recharge + themselves, and therefore can only be activated once every few + turns. The recharging time varies depending on the type of rod. + This command may require a direction (depending on the type of + rod, and whether you are aware of its type) and can use a target. +~~~~~120|Commands|Throwing and missile weapons +#####R--- Throwing and Missile Weapons --- +~~~~~11 +[[[[[GFire an item (f) or Fire an item (t)] + You may throw any object carried by your character. Depending on + the weight, it may travel across the room or drop down beside you. + Only one object from a pile will be thrown at a time. Note that + throwing an object will often cause it to break, so be careful! + If you throw something at a creature, your chances of hitting it + are determined by your pluses to hit, your ability at throwing, + and the object's pluses to hit. Once the creature is it, the + object may or may not do any damage to it. You've heard rumors + that some objects found in the dungeon can do huge amounts of + damage when thrown, but you're not sure which objects those + are.... Note that flasks of oil will do a fairly large chunk + of damage to a monster on impact, supposedly representing fire + damage, but it works against fire elementals too... If you are + wielding a missile launcher compatible with the object you are + throwing, then you automatically use the launcher to fire the + missile with much higher range, accuracy, and damage, then you + would get by just throwing the missile. Fire or Throw requires + a direction. Targeting mode (see the next command) can be invoked + with "*" at the "Direction?" prompt. +~~~~~40 +[[[[[GThrow an item (v)] + You may throw any object carried by your character. The lighter + the object, the farther you can throw it. Only one object from a + stack may be thrown at a time. Throwing an object may break it. + If you throw something at a monster, your chances of hitting it + are determined by your pluses to hit, your ability at throwing, + and the object's pluses to hit. If the object hits the monster, + it may or may not do damage. Some objects, such as weapons, or + flasks of oil, can do a substantial amount of damage. This + command requires a direction, and can take a target. +~~~~~55 +[[[[[GTargeting Mode (*)] + This will allow you to aim your spells and such at a specific + monster or grid, so that you can point directly towards that + monster or grid (even if this is not a "compass" direction) when + you are asked for a direction. You can set a target using this + command, or you can set a new target at the "Direction?" prompt when + appropriate. At the targeting prompt, you have many options. First + of all, targetting mode starts targetting nearby monsters which can + be reached by "projectable" spells and thrown objects. In this mode, + you can press "t" (or "5" or ".") to select the current monster, + space to advance to the next monster, "-" to back up to the previous + monster, direction keys to advance to a monster more or less in that + direction, "r" to "recall" the current monster, "q" to exit targetting + mode, and "p" (or "o") to stop targetting monsters and enter the mode + for targetting a location on the floor or in a wall. Note that if + there are no nearby monsters, you will automatically enter this mode. + Note that hitting "o" is just like "p", except that the location + cursor starts on the last examined monster instead of on the player. + In this mode, you use the "direction" keys to move around, and the + "q" key to quit, and the "t" (or "5" or ".") key to target the cursor + location. Note that targetting a location is slightly "dangerous", + as the target is maintained even if you are far away. To cancel an + old target, simply hit "*" and then ESCAPE (or "q"). Note that when + you cast a spell or throw an object at the target location, the path + chosen is the "optimal" path towards that location, which may or may + not be the path you want. Sometimes, by clever choice of a location + on the floor for your target, you may be able to convince a thrown + object or cast spell to squeeze through a hole or corridor that is + blocking direct access to a different grid. Launching a ball spell + or breath weapon at a location in the middle of a group of monsters + can often improve the effects of that attack, since ball attacks are + not stopped by interposed monsters if the ball is launched at a target. + This command takes no time. +~~~~~121|Commands|Looking +#####R--- Looking Commands --- +~~~~~25 +[[[[[GFull screen map (M)] + This command will show a map of the entire dungeon, reduced by a + factor of nine, on the screen. Only the major dungeon features + will be visible because of the scale, so even some important + objects may not show up on the map. This is particularly useful + in locating where the stairs are relative to your current + position, or for identifying unexplored areas of the dungeon. + This command takes no time. +~~~~~23 +[[[[[GLocate player on map (L) or Where is the player (W)] + This command lets you scroll your map around, looking at all sectors + of the current dungeon level, until you press escape, at which point + the map will be re-centred on the player if necessary. To scroll + the map around, simply press any of the "direction" keys. The top + line will display the sector location, and the offset from your + current sector. This command takes no time. +~~~~~22 +[[[[[GLook around (l) or Examine things (x)] + This command is used to look around at nearby monsters (to determine + their type and health) and objects (to determine their type). It is + also used to find out what objects (if any) are under monsters, and + if a monster is currently inside a wall. This command takes no time. + When you are looking at something, you may hit space for more details, + or to advance to the next interesting monster or object, or minus ("-") + to go back to the previous monster or object, or a direction key to + advance to the nearest interesting monster or object (if any) in that + general direction, or "r" to recall information about the current + monster race, or "q" or escape to stop looking around. You always + start out looking at the "nearest" interesting monster or object. +~~~~~18 +[[[[[GObserve an item (I)] + This command lets you observe a previously *identified* item. + This will tell you things about the special powers of the object. + Currently, it only makes sense for artifacts and ego-items. +~~~~~122|Commands|Messages +#####R--- Message Commands --- +~~~~~53 +[[[[[GRepeat level feeling (^F)] + Repeats the feeling about the dungeon level that you got when you + first entered the level. +~~~~~62 +[[[[[GView previous messages (^P)] + This command shows you all the recent messages. You can scroll + through them, or exit with ESCAPE. This command takes no time. +~~~~~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. +~~~~~123|Commands|Game status +#####R--- Game Status Commands --- +~~~~~6 +[[[[[GCharacter Description (C)] + Brings up a full description of your character, including your + skill levels, your current and potential stats, and various other + information. From this screen, you can change your name or use + the file character description command to save your character + status to a file. That command saves additional information, + including your background, your inventory, and the contents of + your house. +~~~~~82 +[[[[[GDisplay Current Knowledge (~ or |)] + The command opens a menu from which you can lookup information + collected so far. This includes known artifacts, unique monsters, + identified objects, killed creatures, recall depths, acquired + corruptions, current pets, current quests, current fates, known + traps, known dungeon towns and last but not least the note file. + + Display known artifacts + This selection lists all of the artifacts that you have encountered. + Any artifact that appears in this list, which you cannot seem to + find, has been lost forever. The "preserve" mode will prevent + you from accidentally losing any artifacts, but will also prevent + you from ever getting a "special" level feeling. + + Display known uniques + Brings up a list of known unique monsters, plus their current + status. Once killed, unique monsters never show up again, with a + few remarkable exceptions. + + Display known objects + This list all 'flavoured' objects (such as rings, scrolls, wands, + potions, etc.) which you have identified. + + Display kill count + This lists all killed creatures together with a total kill count. + + Display recall depths + This lists all recall depths of entered dungeons as well as marks + the current recall dungeon with an asterisk. + + Display corruptions + This lists all acquired corruptions with their beneficial and + detrimental effects. + + Display current pets + Display current quests + Display current fates + Display known traps + 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 (:). + +~~~~~70 +[[[[[GTime of the day (^T)] + This command is used to give the current date and time within the game. + Extremely useful for characters such as Vampires to check whether + it is safe to leave the dungeon. +~~~~~124|Commands|Saving and Exiting +~~~~~125|Saving and Exiting +#####R--- Saving and Exiting Commands --- +~~~~~75 +[[[[[GSave and Quit (Ctrl-X)] + To save your game so that you can return to it later, use this + command. Save files will also be generated (hopefully) if the + game crashes due to a system error. After you die, you can use + your savefile to play again with the same options and such. +~~~~~68 +[[[[[GSave (Ctrl-S)] + This command saves the game but doesn't exit ToME. Use this + frequently if you are paranoid about having the computer crash + while you are playing. +~~~~~31 +[[[[[GQuit (commit suicide) (Q)] + Kills your character and exits ToME. You will be prompted to + make sure you really want to do this, and then asked to verify + that choice. Note that dead characters are dead forever. +~~~~~126|Commands|Pref files +~~~~~127|Pref files|Commands +#####R--- User pref file commands --- +~~~~~65 +[[[[[GInteract with options (=)] + Allow you to interact with options. Note that using the "cheat" + options may mark your savefile as unsuitable for the high score + list. You may change normal options using the "X" and "Y" user + pref commands. You must use the "redraw" command (^R) after + changing certain options. +~~~~~49 +[[[[[GInteract with macros (@)] + Allow you to interact with macros. You may load or save macros + from user pref files, create macros of various types, or define + keymaps. You must define a "current action", shown at the bottom + of the screen, before you attempt to use any of the "create macro" + commands, which use that "current action" as their action. This + is a horrible interface, and will be fixed eventually. +~~~~~51 +[[[[[GInteract with visuals (%)] + Allow you to interact with visuals. You may load or save visuals + from user pref files, or modify the attr/char mappings for the + monsters, objects, and terrain features. You must use the "redraw" + command (^R) to redraw the map after changing attr/char mappings. +~~~~~54 +[[[[[GInteract with colors (&)] + Allow the user to interact with colors. This command only + works on some systems. +~~~~~47 +[[[[[GInteract with the system (!)] + Allow the user to interact with the underlying visual system. + This command is currently unused. +~~~~~71 +[[[[[GEnter a user pref command (")] + ToME stores your preferences in files called "user pref files", + which contain comments and "user pref commands", which are simple strings + describing one aspect of the system about which the user has a preference. + You may enter single user pref commands directly, using the special "Enter + a user pref command" command, activated by "double quote". You may have to + use the "redraw" command (^R) after changing certain of the aspects of the + game, to allow ToME to adapt to your changes. +~~~~~128|Commands|Help +#####R--- Help --- +~~~~~84 +[[[[[GHelp (?)] + Brings up the ToME on-line help system. Note that the help + files are just text files in a particular format, and that other + help files may be available on the Net. In particular, there are + a variety of spoiler files which do not come with the standard + distribution. Check the place you got ToME from or ask on the + newsgroup rec.games.roguelike.angband about them. +~~~~~83 +[[[[[GIdentify Symbol (/)] + Use this command to find out what a character stands for. For + instance, by pressing "/.", you can find out that the "." symbol + stands for a floor spot. When used with a symbol that represents + creatures, the this command will tell you only what class of + creature the symbol stands for, not give you specific information + about a creature you can see. To get that, use the Look command. + + There are three special symbols you can use with the Identify + Symbol command to access specific parts of your monster memory. + Typing Ctrl-A when asked for a symbol will recall details about + all monsters, typing Ctrl-U will recall details about all unique + monsters, and typing Ctrl-N will recall details about all + non-unique monsters. + + If the character stands for a creature, you are asked if you want + to recall details. If you answer yes, information about the + creatures you have encountered with that symbol is shown in the + Recall window if available, or on the screen if not. You can also + answer "k" to see the list sorted by number of kills, or "p" to + see the list sorted by dungeon level the monster is normally found + on. Pressing ESCAPE at any point will exit this command. +~~~~~41 +[[[[[GGame Version (V)] + This command will tell you what version of ToME you are using. + For more information, see the "version.txt" help file. + +~~~~~129|Commands|Extras +#####R--- Extra Commands --- +~~~~~85 +[[[[[GRepeat last command (n)] + This will automatically repeat the last command you inputted. +~~~~~27 +[[[[[GSacrifice at an altar (O)] + Altars are places dedicated to the worship of a particular God. To + start worshipping the God who owns the altar, you must first sacrifice + on their altar. + + Be warned, not all Gods are equal in power, and once you have selected + a God to worship, it is almost impossible to change which God you worship. + When your God is happy with you, you will receive more benefits from them. + Your God's happiness will decrease over time, so you will need to accomplish + deeds that increase your standing. Note that there is no requirement + for most classes to worship any God. (See *****gods.txt*0[gods.txt] for more information) +~~~~~28 +[[[[[GPray to your God (p)] + If you worship a God, you have the option of praying. The effects of + praying differ considerably depending on the god, ranging from the + battle frenzy of paladins to the self-healing powers of druids. + However, Gods do not like being disturbed, with negative effects on + your piety. See *****gods.txt*0[gods.txt] for more information. +~~~~~29 +[[[[[GPet commands (P)] + From time to time, you may acquire a pet within the dungeon. Pets are able + (to a more or less limited extent) to follow some simple commands, like + follow me. These commands are all accessed through the menu under "Pet + Commands". +~~~~~52 +[[[[[GToggle Choice Window (^E)] + Toggles the display in the choice window (if available) between + your inventory and your equipment. This command only applies if + you are running ToME under a windowing environment and the + choice window is available. This also redraws the choice window. +~~~~~66 +[[[[[GRedraw Screen (^R)] + This command adapts to various changes in global options, and + redraws all of the windows. This command should be used after + changing various global properties (options, attr/char mappings, + color definitions, etc). When in doubt, use it. +~~~~~56 +[[[[[GLoad screen dump (left-paren)] + This command loads a "snap-shot" of the current screen from the file + "dump.txt", and displays it on the screen. +~~~~~57 +[[[[[GSave screen dump (right-paren)] + This command dumps a "snap-shot" of the current screen to the file + "dump.txt", including encoded color information. +~~~~~64 +[[[[[GQuit to next midi song (^Q)] + In the DOS binary (and maybe Windows) of ToME, it is possible for + the game to play any midi song in the lib/xtra/music directory. This + 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 + sequence for your macro, reactivate it and it will create the macro + for you. Note than when possible using the @ key at item selection + is a good idea since it removes the need to inscribe items. +~~~~~98 +[[[[[GTake html screenshot (^\])] + Creates an html screenshot of the current screen. +~~~~~89 +[[[[[GBegin extended command (#)] + Begins an extended command. Type "help" or "?" at the prompt for a + list of these commands. + +-- +Original: Alexander Cutler and Andy Astrand +Updated (2.7.6): Russ Allbery (rra@cs.stanford.edu) +Updated (2.7.9): Ben Harrison (benh@phial.com) +Updated PernAngband 5.x.x: Dawnmist (angband@dawnmist.8m.com) +Updated for ToME 2.1 diff --git a/lib/mods/theme/help/corspoil.txt b/lib/mods/theme/help/corspoil.txt new file mode 100644 index 00000000..baac4fae --- /dev/null +++ b/lib/mods/theme/help/corspoil.txt @@ -0,0 +1,136 @@ +~~~~~01|Corruptions (Spoiler) +~~~~~02|Spoilers|Corruptions +#####R=== ToME Corruptions Spoiler === + +Sometimes adventurers become exposed to the dark powers of Morgoth. If they +are unable to resist these powers, they become corrupted. Corruptions can +change their physical or mental abilities, some of which can be good, and +some bad. Most corruptions will affect you permanently, although some only +operate when they are activated (whether by player choice or as a random +event). You can check which corruptions do you have in the knowledge screen +6 (accessed through the '~' menu) or in a character dump. + +#####GGaining and (not) losing corruptions +There are several ways that you can become corrupted. + +You can become corrupted by quaffing a Potion of Corruption or by drinking +from a Fountain of Corruption. Also some strange items can be activated +for corruption. + +Corruptions are permanent. Once you have one, you have it for life. + +[[[[[BBalrog Aura] + Surrounds you with a fiery aura + But it can burn scrolls when you read them +[[[[[GGain message: A corrupted wall of flames surrounds you.] +[[[[[RLose message: The wall of corrupted flames abandons you.] + + +[[[[[BBalrog Wings] + Creates ugly, but working, wings allowing you to fly + But it reduces charisma by 4 and dexterity by 2 +[[[[[GGain message: Wings of shadow grow in your back.] +[[[[[RLose message: The wings in your back fall apart.] + + +[[[[[BBalrog Strength] + Provides 3 strength and 1 constitution + But it reduces charisma by 1 and dexterity by 3 +[[[[[GGain message: Your muscles get unnatural strength.] +[[[[[RLose message: Your muscles get weaker again.] + + +[[[[[BBalrog Form] + Allows you to turn into a Balrog at will + You need Balrog Aura, Balrog Wings and Balrog Strength to activate it +[[[[[GGain message: You feel the might of a Balrog inside you.] +[[[[[RLose message: The presence of the Balrog seems to abandon you.] +It depends on: + Balrog Aura + Balrog Wings + Balrog Strength + + +[[[[[BDemon Spirit] + Increases your intelligence by 1 + But reduce your charisma by 2 +[[[[[GGain message: Your spirit opens to corrupted thoughts.] +[[[[[RLose message: Your spirit closes again to the corrupted thoughts.] + + +[[[[[BDemon Hide] + Increases your armour class by your level + Provides immunity to fire at level 40 + But reduces speed by your level / 7 +[[[[[GGain message: Your skin grows into a thick hide.] +[[[[[RLose message: Your skin returns to a natural state.] + + +[[[[[BDemon Breath] + Provides fire breath + But gives a small chance to spoil potions when you quaff them +[[[[[GGain message: Your breath becomes mephitic.] +[[[[[RLose message: Your breath is once again normal.] + + +[[[[[BDemon Realm] + Provides access to the demon school skill and the use of demonic equipment + You need Demon Spirit, Demon Hide and Demon Breath to activate it +[[[[[GGain message: You feel more attuned to the demon realm.] +[[[[[RLose message: You lose your attunement to the demon realm.] +It depends on: + Demon Spirit + Demon Hide + Demon Breath + + +[[[[[BRandom teleportation] + Randomly teleports you around +[[[[[GGain message: Space seems to fizzle around you.] +[[[[[RLose message: Space solidify again around you.] +It is opposed to: + Anti-teleportation + + +[[[[[BAnti-teleportation] + Prevents all teleportations, be it of you or monsters +[[[[[GGain message: Space continuum freezes around you.] +[[[[[RLose message: Space continuum can once more be altered around you.] +It is opposed to: + Random teleportation + + +[[[[[BTroll Blood] + Troll blood flows in your veins, granting increased regeneration + It also enables you to feel the presence of other troll beings + But it will make your presence more noticeable and aggravating +[[[[[GGain message: Your blood thickens, you sense corruption in it.] +[[[[[RLose message: Your blood returns to a normal state.] + + +[[[[[BVampiric Teeth] + Your teeth allow you to drain blood to feed yourself + However your stomach now only accepts blood. +[[[[[GGain message: You grow vampiric teeth!] +It is not removable. + + +[[[[[BVampiric Strength] + Your body seems somewhat dead + In this near-undead state it has improved strength, constitution and + intelligence, but also reduced dexterity, wisdom and charisma. +[[[[[GGain message: Your body seems more dead than alive.] +It is not removable. +It depends on: + Vampiric Teeth + + +[[[[[BVampire] + You are a Vampire. As such you resist cold, poison, darkness and nether. + Your life is sustained, but you cannot stand the light of the sun. +[[[[[GGain message: You die to be reborn in a Vampire form.] +It is not removable. +It depends on: + Vampiric Strength + + diff --git a/lib/mods/theme/help/debug.txt b/lib/mods/theme/help/debug.txt new file mode 100644 index 00000000..56d57098 --- /dev/null +++ b/lib/mods/theme/help/debug.txt @@ -0,0 +1,278 @@ +|||||oy +~~~~~99|Debug +#####R=== Debug Commands === + + +Debug commands are entered as an "underlying command" (a single key) +plus a variety of optional or required arguments. + +The debug commands are used for debugging and experimenting. The game +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*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] + *****debug.txt*9[e Edit character attributes] *****debug.txt*10[E Change grid's mana] + *****debug.txt*11[f *IDENTIFY*] *****debug.txt*12[F Features] + *****debug.txt*13[g Create good item] G (unused) + *****debug.txt*15[h Change life rating] *****debug.txt*16[H Hostile monster creation] + *****debug.txt*17[i Identify] I (unused) + *****debug.txt*19[j Jump to other level] J (unused) + *****debug.txt*21[k Check attributes] K (unused) + *****debug.txt*23[l Learn about objects] L (unused) + *****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*33[q Get a quest] Q (unused) + *****debug.txt*35[r Gain reward] *****debug.txt*36[R Create a trap] + *****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] + *****debug.txt*43[v Random artifact/ego item] V (unused) + *****debug.txt*45[w Wizard light the level] *****debug.txt*46[W Wish] + *****debug.txt*47[x XP boost] X (unused) + y (unused) Y (unused) + *****debug.txt*51[z Zap monsters] Z (unused) + ! (unused) ^A (unused) + *****debug.txt*55[@ Increment monster level] ^B (unused) + # (unused) ^C (unused) + $ (unused) ^D (unused) + % (unused) ^E (unused) + ^ (unused) ^F (unused) + & (unused) ^G (unused) + *****debug.txt*61[* Lose special powers] ^H (unused) + ( (unused) ^I (unused) + ) (unused) ^J (unused) + { (unused) ^K (unused) + } (unused) ^L (unused) + [ (unused) ^M (unused) + ] (unused) ^N (unused) + *****debug.txt*67[- Create object] ^O (unused) + *****debug.txt*69[_ The path to the god dark] ^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) + , (unused) ^W (unused) + < (unused) ^X (unused) + . (unused) ^Y (unused) + *****debug.txt*81[> Lua script] ^Z (unused) + \ (unused) | (unused) + ` (unused) ~ (unused) + *****debug.txt*91[/ Summon monster] *****debug.txt*92[? Help] + ^\ (unused) + +~~~~~111|Debug|Command descriptions +#####R=== Command Descriptions === + + The following command descriptions are listed as the command name +plus the "underlying command" key. Then comes a brief description of the +command. 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 which need a "quantity" will use the "repeat count" +instead of asking for a quantity, allowing the use of "0d" for "drop all". +Commands which ask for a quantity will convert any "letters" into the +maximal legal value. +~~~~~112|Debug|General +#####R--- General Commands --- +~~~~~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 + this command to teleport next to the monster. +~~~~~4 +[[[[[GHP to zero (B)] + Bring your health down to zero. +~~~~~5 +[[[[[GCreate object (c)] + Allows you to select and create a new object where you stand. + This brings up a menu where you can choose what type of object + you want created. +~~~~~6 +[[[[[GCreate artifact (C)] + Allows you to select and create a new artifact where you stand. + Use the "Command count", aka 0, to specify a number from + a_info.txt to put it on the ground where you are standing. + For example : 03^AC will create the Arkenstone of Thrane (+3) +~~~~~7 +[[[[[GDetect all (d)] + Sense ways out/monsters/objects/traps. +~~~~~8 +[[[[[GTeleport to the wilderness (D)] + From a dungeon this will teleport you to the wilderness level + and if used in the wilderness it acts like teleport. +~~~~~9 +[[[[[GEdit character attributes (e)] + Edit character attributes including Str, Int, Dex, experience, gold, luck, etc. +~~~~~10 +[[[[[GChange grid's mana (E)] + Alter how much mana a grid has. + Use the "Command count", aka 0, to specify the amount of mana + that you want. +~~~~~11 +[[[[[G*IDENTIFY* (f)] + Like a Scroll of *Identify*. +~~~~~12 +[[[[[GFeatures (F)] + Use the "Command count", aka 0, to specify a number from + f_info.txt to put a feature on the ground where you are + standing. +~~~~~13 +[[[[[GCreate good item (g)] + Create a random good item where you stand. +~~~~~15 +[[[[[GChange life rating (h)] + 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. +~~~~~17 +[[[[[GIdentify (i)] + Like a Scroll of Identify. +~~~~~19 +[[[[[GJump to other level (j)] + Jump to other dungeon level. This does not work in the + wilderness as it is treated as all one level. +~~~~~21 +[[[[[GCheck attributes (k)] + Displays your characters attributes. +~~~~~23 +[[[[[GLearn about objects (l)] + Make you know about all objects. Not sure how this works. +~~~~~25 +[[[[[GMagic Mapping (m)] + Like a Scroll of Magic mapping. +~~~~~26 +[[[[[GGain corruption (M)] + Allows your character to gain a corruption. +~~~~~27 +[[[[[GSummon named monster (n)] + Summon a monster that will appear next to you. + Use the "Command count", aka 0, to specify a number from + r_info.txt to summon a monster. +~~~~~28 +[[[[[GSummon _friendly_ named monster (N)] + The same as n but the creature will be your pet. Try this + with number 861, Darkgod is now your pet. +~~~~~29 +[[[[[GEdit object attributes (o)] + Allows you to alter the attributes of any object that you + have in your backpack. +~~~~~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. + Use the "Command count", aka 0, to specify a number from + 1 to 25, as defined in defines.h ( the QUEST_XXX items ). + For example : 04^Aq will get you the thieves quest. +~~~~~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. +~~~~~38 +[[[[[GChange the feature of the map (S)] + This allows you to change the "special" field of the current + grid. This special field is used to store things like quest + ids, dungeon entries, and so on, not to be used unless + one knows what it's doing. +~~~~~39 +[[[[[GTeleport (t)] + Like a Scroll of Teleport. +~~~~~40 +[[[[[GTeleport to a town (T)] + Teleports you to a specific town. + Use the "Command count", aka 0, to specify a number from + wf_info.txt for where you want to go. + standing. + For example : 02^AT will teleport you to Gondolin +~~~~~41 +[[[[[GComplete map (u)] + Displays the complete map of the dungeon. +~~~~~42 +[[[[[GBecome undead (U)] + This is supposed to make you undead (as in the Necromantic power). +~~~~~43 +[[[[[GRandom artifact/ego item (v)] + Create a random artifact/ego item where you stand. +~~~~~45 +[[[[[GWizard light the level (w)] + Looks like the same as u. +~~~~~46 +[[[[[GWish (W)] + Makes all your wishes come true. + + Read the *****wishing.txt*0[wishing spoiler] to see how these work. +~~~~~47 +[[[[[GXP boost (x)] + Use the "Command count", aka 0, to specify the increment, + if you do not specify a parameter it doubles your XP, + otherwise it increments by the specified amount. +~~~~~51 +[[[[[GZap monsters (z)] + All monsters in sight range vanish like Mass Genocide, only with no + HP price. +~~~~~55 +[[[[[GIncrement monster level (@)] + Level up a monster. +~~~~~61 +[[[[[GLose special powers (*)] + Returns your powers to a normal level. +~~~~~67 +[[[[[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. +~~~~~73 +[[[[[GAlign monster (=)] + Use the "Command count", aka 0, to specify one of the following + alignment types: + 0 monster becomes enemy + 1 monster becomes neutral + 2 monster becomes friendly + 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. +~~~~~91 +[[[[[GHelp (?)] + Displays the main help file. diff --git a/lib/mods/theme/help/def.aux b/lib/mods/theme/help/def.aux new file mode 100644 index 00000000..983e9683 --- /dev/null +++ b/lib/mods/theme/help/def.aux @@ -0,0 +1,3 @@ +file_ext="html" +link_prefix="" +link_suffix="" diff --git a/lib/mods/theme/help/defines.txt b/lib/mods/theme/help/defines.txt new file mode 100644 index 00000000..ac997501 --- /dev/null +++ b/lib/mods/theme/help/defines.txt @@ -0,0 +1,639 @@ +|||||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 new file mode 100644 index 00000000..21c9651e --- /dev/null +++ b/lib/mods/theme/help/dungeon.txt @@ -0,0 +1,703 @@ +|||||oy +~~~~~02|Dungeons +#####R /----------------------------------------\ +#####R < The Dungeons and Places of Middle-earth > +#####R \----------------------------------------/ + + *****dungeon.txt*04[Symbols On Your Map] *****dungeon.txt*07[The Town and Buildings] + *****dungeon.txt*01[The Wilderness] *****dungeon.txt*06[In the Dungeon] + *****dungeon.txt*08[Objects] *****dungeon.txt*13[Mining] + *****dungeon.txt*12[Doors, Rooms, Staircases etc.] *****dungeon.txt*18[Pets] + *****dungeon.txt*14[Winning] *****dungeon.txt*15[Dying] + *****dungeon.txt*16[Where to get more help] + +After you have *****birth.txt*0[created your character], you will begin your ToME +adventure. Symbols appearing on your screen will represent the world's +walls, floor, objects, features, and creatures lurking about. In order +to direct your character through his adventure, you will enter single +character commands (see "*****command.txt*0[command.txt]"). + +~~~~~03|Symbols +~~~~~04|Identifying features +#####R=== Symbols On Your Map === + +Symbols on your map can be broken down into three categories: Features of +the world such as walls, floor, doors, and traps; Objects which can be +picked up such as treasure, weapons, magical devices, etc; and creatures +which may or may not move about the dungeon, but are mostly harmful to your +character's well being. + +Some symbols are used to represent more than one type of entity, and some +symbols are used to represent entities in more than one category. The "@" +symbol (by default) is used to represent the character. + +It will not be necessary to remember all of the symbols and their meanings. +The "slash" command ("/") will identify any character appearing on your map +(see "*****command.txt*0[command.txt]"). + +Note that you can use a *****command.txt*105["user pref file"] to change any of these symbols to +something you are more comfortable with. + + +#####G Features that do not block line of sight + + . A floor space 1 Entrance to General Store + . A trap (hidden) 2 Entrance to Armoury + ^ A trap (known) 3 Entrance to Weapon Smith + [[[[[y;] A glyph of warding 4 Entrance to Temple + [[[[[U'] An open door 5 Entrance to Alchemy Shop + [[[[[U'] A broken door 6 Entrance to Magic Shop + < A staircase up 7 Entrance to the Black Market + [[[[[y<] A quest exit 8 Entrance to your Home + [[[[[r<] A quest up level 9 Entrance to Bookstore + [[[[[U<] A shaft up [[[[[r>] A quest down level + > A staircase down [[[[[U>] A shaft down + [[[[[y>] A quest entrance [[[[[v>] Dungeon entrance + _ A fountain [[[[[D_] An empty fountain + * Straight road start/exit [[[[[B*] Section of the Straight Road + [[[[[b*] Section of the Straight Road [[[[[W*] Section of the Straight Road + [[[[[D*] Corrupted straight road [[[[[R*] An explosive rune + [[[[[B~] Stream of water (shallow) [[[[[b~] Stream of water (deep) + [[[[[u~] Tainted stream (water) [[[[[s#] Underground tunnel + [[[[[U#] Pool of lava (shallow) [[[[[r#] Pool of lava (deep) + [[[[[D#] Dark pit [[[[[u.] Dirt + [[[[[g.] Patch of Grass [[[[[W.] Ice + [[[[[y.] Sand [[[[[D.] Ash + [[[[[u.] Mud [[[[[v.] Nether mist + [[[[[r.] Floor [[[[[D0] Altar of Darkness + [[[[[R0] Altar of Force [[[[[B0] Altar of Winds + [[[[[W0] Altar of Being [[[[[v+] Void Jumpgate + [[[[[v;] Monster trap [[[[[B.] Glass wall + [[[[[w#] Illusion wall [[[[[g;] Grass with flowers + [[[[[w.] Cobblestone road [[[[[g#] Small tree + [[[[[w*] Town (in wilderness) [[[[[U^] Underground tunnel + [[[[[y+] A web + +#####G Features that block line of sight + + [[[[[w#] A secret door # A wall + [[[[[U+] A closed door % A mineral vein + [[[[[U+] A locked door [[[[[o*] A mineral vein + treasure + [[[[[U+] A jammed door [[[[[w:] A pile of rubble + [[[[[D#] A dead tree [[[[[W#] Ice wall + [[[[[G#] A tree [[[[[y#] Sand wall + [[[[[U^] A mountain chain [[[[[W^] High mountain chain + + +#####G Objects + + ! A potion (or flask) / A pole-arm + ? A scroll, book, map, parchment / Music instrument + ? A rune, runestone | An edged weapon + , A mushroom (or food) \ A hafted weapon or digger + - A wand, rod or rod tip } A sling, bow, or x-bow + _ A staff { A shot, arrow, bolt, boomerang + = A ring ( Soft armour/cloak + " An amulet [ Hard armour + $ Gold or gems ] Misc. armour + ~ Lites, Tools, Chests, etc ) A shield + ~ Junk, Sticks, Skeletons, etc ` Trapping kit, climbing set + ~ Stone, random artifact o Egg + * An essence & (unused) + +~~~~~05|Monsters +#####G Monsters + + $ Creeping Coins , Mushroom Patch + a Giant Ant A Maia/Vala + b Giant Bat B Bird + c Cattle C Canine + d Dragon D Ancient Dragon + e Floating Eye E Elemental + f Feline F Dragon Fly + g Golem G Ghost + h Humanoids H Hybrid + i Mewlip I Insect + j Jelly J Snake + k Dwarf K Killer Beetle + l Giant Louse L Lich + m Mold M Multi-Headed Hydra + n Naga N (unused) + o Orc O Ogre + p Human P Giant Human(oid) + q Quadruped Q Quylthulg + r Rodent R Reptile/Amphibian + s Skeleton S Spider/Scorpion/Tick + t Townsperson T Troll + u Minor demon U Major demon + v Vortex V Vampire + w Worm or Worm Mass W Wight/Wraith + x (unused) X Xorn/Xaren + y Yeek Y Strange Humanoid + z Zombie/Mummy Z Zephyr Hound + + +~~~~~07|Town +#####R=== The Town Level === + +The town level is where you will begin your adventure. The town consists of +several buildings (most with an entrance), some townspeople, and a main wall +which surrounds the town (with gates in it). Outside the gates may be found +unclaimed lands and wilderness, where beasts still run wild. The first time +you are in town it will be daytime (unless you are an undead character), but +note that the sun will rise and set (rather instantly) as time passes. + +There are a few different towns around the world map, and your starting town +will eventually become too small for you (if you survive the dangers of the +dungeon). Other towns will have some different facilities, and you can find +your way to other towns by reading the "Adventurer's Guide to Middle-earth" +parchment with which *every* character begins the game. + + +#####R=== Townspeople === + +The town contains many different kinds of people. There are the street +urchins, young children who will mob an adventurer for money, and seem to +come out of the woodwork when excited. Blubbering idiots are a constant +annoyance, but not harmful. Public drunks wander about the town singing, +and are of no threat to anyone. Sneaky rogues who work for the black +market are always greedily eyeing your backpack for potential new +'purchases'... And finally, what town would be complete without a +swarm of half drunk warriors, who take offense or become annoyed just for +the fun of it. + +Most of the townspeople should be avoided by the largest possible distance +when you wander from store to store. Fights will break out, though, so be +prepared. Since your character grew up in this world of intrigue, no +experience is awarded for killing the town inhabitants, though you may +acquire treasure. + +~~~~~21|Buildings +#####R=== Town Buildings === + +Your character will begin his adventure with some basic supplies, and some +extra gold with which to purchase more supplies at the town stores. + +You may enter any open store and barter with the owner for items you can +afford. When bartering, you enter prices you will pay (or accept) for some +object. You can either enter the absolute amount, or precede a number with +a plus or minus sign to give a positive or negative increment on your +previous offer. But be warned that the owners can easily be insulted, and +may even throw you out for a while if you insult them too often. [[[[[BTo enter] +[[[[[Ba store, simply move onto the entrance, which is represented by a number] +[[[[[Bfrom 1 to 9.] + +If you consistently bargain well in a store, that is, you reach the final +offer much more often than not, then the store owner will eventually +recognise that you are a superb haggler, and will go directly to the final +offer instead of haggling with you. Items which cost less than 10 gold +pieces do not count, as haggling well with these items is usually either +very easy or almost impossible. The more expensive the item is, the less +likely the store owner is to assume that you are a good haggler. Note that +you may disable haggling with a software option, though this will inflict a +10% "sales tax" on all purchases for which the store owner would have +required you to haggle. + +Once inside a store, you will see the name and race of the store owner, the +name of the store, the maximum amount of cash that the store owner will pay +for any one item, and the store inventory, listed along with tentative +prices, which will become "fixed" (at the "final offer") should you ever +manage to haggle a store owner down to his final offer. + +You will also see an (incomplete) list of available commands. Note that +many of the commands which work in the dungeon work in the stores as well, +but some do not, especially those which involve "using" objects. + +Stores do not always have everything in stock. As the game progresses, they +may get new items, so check back from time to time. Also, if you sell them +an item, it may get sold to a customer while you are adventuring, so don't +always expect to be able to get back everything you have sold. If you have +a lot of spare gold, you can purchase every item in a store, which will +induce the store owner to bring out new stock, and perhaps even retire. If +you are low on funds (and morals), you may attempt to steal an item from +the store, but beware -- if you are caught, the store owner will not let you +back in for a very long time. + +Store owners will not buy harmful or useless items. If an object is +unidentified, they will pay you some base price for it. Once they have +bought it they will immediately identify the object. If it is a good object, +they will add it to their inventory. If it was a bad bargain, they simply +throw the item away. In any case, you may receive some knowledge of the +item in case another is encountered. + +#####GThe General Store ("1") + The General Store sells foods, drinks, some clothing, torches, lamps, + oil, shovels, picks, and spikes. All of these items and some others + can be sold back to the General store for money. + +#####GThe Armoury ("2") + The Armoury is where the town's armour is fashioned. All sorts of + protective gear may be bought and sold here. + +#####GThe Weaponsmith's Shop ("3") + The Weaponsmith's Shop is where the town's weapons are fashioned. Hand + and missile weapons may be purchased and sold here, along with arrows, + bolts, and shots. + +#####GThe Temple ("4") + The Temple deals in healing and restoration potions, as well as bless + scrolls, word of recall scrolls, some approved priestly weapons, and + priest spell books. + +#####GThe Alchemy shop ("5") + The Alchemy Shop deals in all types of potions and scrolls. + +#####GThe Magic User's Shop ("6") + The Magic User's Shop deals in all sorts of rings, wands, amulets, and + staves, as well as spell books. + +#####GThe Black Market ("7") + The Black Market will sell and buy anything at extortionate prices. + However it occasionally has VERY good items in it. The shopkeepers are + not known for their tolerance... + +#####GYour Home ("8") + This is your house where you can store objects that you cannot carry + on your travels, or will need at a later date. + +#####GThe Bookstore ("9") + The Bookstore deals in all sorts of magical books. You can purchase + and sell spellbooks for spellcasters and priests here. + + +#####ROther Buildings +In addition to the basic stores, there are some special buildings that can be +found in some towns. These Buildings (represented by +'s) include: + +#####GMayor's Office/Castle + The home office for the town. Adventurers looking for work besides + exploring the dungeon should hunt in here. + +#####GPet Shop + Great place to purchase eggs and get pets. + +#####GThe Soothsayer + To discover what *****/afatespoi.txt*0[fates ("a")] lie in store for you. + +#####GThe Prancing Pony + Wine, dine, rest and relax! + +#####GThe Nest + Thunderlords are masters of teleportation, and will consent to bear you + to your chosen dungeon destination for a fee. + +#####GBeastmaster Shanty + For those who enjoy trophy hunting, and to research that strange animal + you saw during your adventures. + +#####GFighters Hall + The place to reforge weapons and armour. + +#####GRangers Guild + The place to reforge distance weapons and their ammunition. + +#####GLibrary + For information of all kinds. + +#####GGambling House + Read the *****/bgambling.txt*0[rules ("b")] before paying. The games are + not rigged, just naturally difficult. + +#####GTower of Magery/Wizards Spire + The wizards will identify your items or recharge your magical items for + a fee. + +#####GInner temple/Priests Circle + A place of healing. + +#####GPaladin guild + Some healing and enchantments available. + + +~~~~~1|Wilderness +#####R=== The Wilderness and the Wilderness Map === + +Between the towns, the hand of civilisation has not tamed the lands, and +wild creatures run rampant. This is another place that is worth exploring. +Hidden within the wilderness are several interesting locations, with the +four main ones for any adventurer - Barrow Downs, Mirkwood, Mordor and +Angband each being located at or near one of the main towns of Middle- +earth. These locations should be explored consecutively, as each one +increases in difficulty from the point where the previous dungeon finished. +A new character should not try to go at Mordor or Angband as their first +dungeon (well, not if you wish to survive your first step, anyway)! + +As well as these (and other) locations, the wilderness can be a good place +to go when you are seeking a change from the scenery of the dungeons, or just +a bit of fast experience. + +Be warned - some creatures found in the wilderness can be quite dangerous, +and travel through the wilderness can be time-consuming. If you are wishing +to simply move to another town, there is an overview map (called the +"Wilderness Map") that can be travelled through by going up "<" from the +town level. While travelling through this map, your character is still having +to actually walk through each square of the normal view, but you only see the +end result of them moving from one 4x4 panel to the next. As such, food +consumption will appear to be much higher in the Wilderness View than it is +normally, and it is recommended that you travel prepared. It is also possible +for the wild creatures within the wilderness to ambush you when travelling, +which will force you out of the Wilderness Map so that you can safely get +yourself out of trouble, before continuing on your way. + +All of the special locations can be seen as downstairs (">") on the +Wilderness Map and towns as "*"s. This makes it *much* easier to find your +way from one interesting place to another. + +The "Adventurer's Guide to Middle-earth" (a parchment with which *every* +character begins the game) contains details about the towns and some of +the dungeons, including rough directions on how to get there. + +~~~~~06|Dungeons|In the dungeon +#####R=== Within The Dungeon === + +Once your character is adequately supplied with food, light, armor, and +weapons, he is ready to enter Barrow Downs. Move on top of the ">" symbol +and use the "Down" command (">"). + +Your character will enter a maze of interconnecting staircases and finally +arrive somewhere on the first level of the dungeon. Each level of the +dungeon is fifty feet high (thus dungeon level "Lev 1" is often called +"50 ft"), and is divided into rectangular regions several times +larger than the screen. Once you leave a level by a +staircase, you will never again find your way back to that region of that +level, but there are an infinite number of other regions at that same "depth" +that you can explore later. So be careful that you have found all the +treasure before you leave a level, or you may never find it again! The +monsters, of course, can use the stairs, and you may eventually encounter +them again. + +In the dungeon, there are many things to find, but your character must +survive many horrible and challenging encounters to find the treasure lying +about and take it safely back to the town to sell. + +~~~~~23|Light +There are two sources for light once inside the dungeon: permanent light +which has been magically placed within rooms, and a light source carried by +the player (or some of the monsters). If neither is present, the character +will be unable to see. This will affect searching, picking locks, disarming +traps, reading scrolls, casting spells, browsing books, etc. So be very +careful not to run out of light! + +A character must wield a torch or lamp in order to supply his own light. A +torch or lamp burns fuel as it is used, and once it is out of fuel, it stops +supplying light. You will be warned as the light approaches this point. You +may use the "Fuel" command ("F") to refuel your lantern (with flasks of oil) +or your torch (with other torches), so it is a good idea to carry extra +torches or flasks of oil, as appropriate. There are rumours of objects of +exceptional power which glow with their own never-ending light. + +~~~~~08|Objects +#####R=== Objects Found In The Dungeon === + +The mines are full of objects just waiting to be picked up and used. How +did they get there? Well, the main source for useful items are all the +foolish adventurers (like you?) that proceeded into the dungeon before you. +They get killed, and the helpful creatures scatter the various treasures +throughout the dungeon. Most cursed items are placed there by the joyful evil +sorcerers, who enjoy a good joke when it gets you killed. + +You pick up objects by moving on top of them. You can carry up to 23 +different items in your backpack while wearing and wielding up to 12 others. +Although you are limited to 23 different items, each item may actually be a +"pile" of up to 99 similar items. If you somehow manage to stuff 24 items +into your pack, for example, by removing an item from your head while your +pack is full, then your pack will "overflow" and the most recently added +item will fall out and onto the ground. You will be warned about any command +that seems likely to induce this behaviour. + +You are, in addition, limited in the total amount of weight that you can +carry. As you approach this value, you become slower, making it easier for +monsters to chase you. Note that there is no upper bound on how much you can +carry, if you do not mind being slow. Your weight limit is determined by your +strength. + +Objects do not block the line of sight, but may stack on top of one another, +with the one on top hiding others beneath it. + + Q: I'm standing on a pile of items. How do I see what's in the pile + without picking it all up, moving it, or destroying it all? + A: 1. Stand on the pile in question + 2. Type shift + i (examine) + 3. Type - (examine items on floor) + 4. Type * (expand list of items on floor) + 5. (as needed) Type letter associated with item to look at it more + closely. + +Objects may also obscure stairs, Ways and void jumpgates. + + Q: I'm standing on a pile of items. Is there a command to see if + there is a stair beneath the pile? + A: Stairs, void jumpgates and Ways that obscured by clutter still + function. + You are advised to take a good hard look at your surroundings before + creating lots of dungeon clutter. You can see if there is a stair + beneath the pile with either of these methods: + 1. Pick up, move, or eliminate the pile. + 2. Press l (look), then select the square you wish to inquire about. + Press <enter>; it will scroll through everything on the ground, + and eventually it ends with "It is in a Void Jumpgate", or + whatever. + + +Many objects found within the dungeon have special commands for their use. +Wands must be Aimed, staves must be Used, scrolls must be Read, and potions +must be Quaffed. You may, in general, not only use items in your pack, but +also items on the ground, if you are standing on top of them. For a detailed +list of the commands to use objects, see *****command.txt*0[command.txt]. + +Chests are complex objects, containing traps, locks, and possibly treasure +or other objects inside them once they are opened. Many of the commands that +apply to traps or doors also apply to chests and, like traps and doors, these +commands do not work if you are carrying the chest. + +One item in particular will be discussed here. [[[[[BThe scroll of "Word of] +[[[[[BRecall"] can be found within the dungeon, or bought at the temple in +town. It acts in two manners, depending upon your current location. If read +within the dungeon, it will teleport you back to town. If read in town, it +will teleport you back down to the deepest level of the dungeon to which your +character has previously journeyed. This makes the scroll very useful for +getting back to the deeper levels of the dungeon. Once the scroll has been +read it takes a while for the spell to act, so don't expect it to save you +in a crisis. Reading a second scroll before the first has had a chance to +take effect will cancel both scrolls. Since an accidental dive to a new depth +(via a trapdoor, for example), may result in the Word of Recall dungeon depth +being 'broken', so to speak (meaning that the next Word of Recall in town +will take you back deeper than you would like to), there is a feature in +ToME which allows you to read a scroll of Word of Recall on a different +level and 'reset' the recall depth to that level (instead of the deepest +level). Some dungeons cannot be recalled into, though you can still recall +out. + +You may "inscribe" any object with a textual inscription of your choice. +These inscriptions are not limited in length, though you may not be able to +see the whole inscription on the item. The game applies special meaning to +inscriptions containing any text of the form "@#" or "@x#" or "!x" or "!*", +see "*****command.txt*0[command.txt]" and "*****macrofaq.txt*0[macrofaq.txt]". + +The game provides some "fake" inscriptions to help you keep track of your +possessions. Wands and staves which are known to be empty will be inscribed +with "empty". Objects which have been tried at least once but haven't been +identified yet will be inscribed with "tried". Cursed objects are inscribed +with "cursed". Broken objects may be inscribed with "broken". Also, any +item which was purchased at a discount, implying that it is slightly +"sub-standard", will be inscribed with the appropriate "discount", such as +"25% off". Note that these inscriptions are fake, and cannot be removed, +though they can be covered up by a real inscription if you so desire. Try +"_" as a nice short one. + +Also, occasionally you will notice that something in your inventory or +equipment list seems to be magical. High level characters are much more +likely to notice this than beginning characters. When you do notice this, +the item in question will be inscribed with "good" or "cursed" as is +relevant. You can increase your ability to notice magical effects of armour +and weapons by increasing the *****skills.txt*01[Combat] skill. You can increase your ability +to sense particularly well enchanted magical items (potions, scrolls. wands +etc) by increasing your *****skills.txt*21[Magic] skill. If you increase these +high enough, you will gain a special method of "sensing" your +inventory/equipment items, which tells you not only whether an item is "good" +or "cursed", but also if it is "average", "special", "excellent", "terrible" or +"worthless". + +~~~~~21|Objects|Colour of inventory slot letter +The colour of the letter that identifies each item in your backpack can tell +you something about their magical status. Grey indicates the item has not been +identified yet. After identification, the colour changes to one of the +following: white, indicating it is normal; blue indicates it is an ego-item +(pseudo-id's as {excellent}); yellow indicates it is an artifact {special}; +green shows it is an artifact which is part of a set. + +It is rumoured that rings of power and extra rare spell books may be found +deeper in the dungeon.... + +And lastly, a final warning: not all objects are what they seem. The line +between tasty food and annoying mushroom is a fine one, and sometimes a +potion will reach out and bite you... +~~~~~09|Objects|Cursed Objects +~~~~~10|Cursed Objects +#####R=== Cursed Objects === + +Some objects, mainly armour and weapons, have had curses laid upon them. +These horrible objects will look like any other normal item, but will +detract from your character's stats or abilities if worn. They will also +be impossible to remove until the curse is removed. In fact some are +so badly cursed that even this will not work, and more potent methods are +needed. + +If you wear or wield a cursed item, you will immediately feel something +wrong. The item will also be inscribed "cursed". + +Shopkeepers will refuse to buy any known cursed item. +~~~~~13|Mining +~~~~~11|Dungeons|Mining +#####R=== Digging and Mining === + +It is possible for you to be trapped within the dungeon. You will not be able +to dig your way out without a digging tool (shovel, pick, or other means of +digging). It is absolutely essential to always carry some kind of digging tool, +even when you are not planning on tunnelling for treasure. Do not leave the +town level of Bree without a digger! + +Picks and shovels have a digging ability expressed as "(+<num>)", e.g. (+2). +The higher the number, the better the digging ability of the tool. Diggers are +effective against rubble, trees, and many walls. Rubble and veins may hide +treasure; trees do not. + +You dig in something with the tunnel (shift + t) command. Thorough digging +removes one ASCII square (i.e. tile) of what is being dug. This may require +multiple attempts depending on how good your digger is (and how high your +strength is). Once the square is removed, you will be informed if you found +anything there. If another diggable square exists beyond the area you just dug, +you can begin the process again. + +Some dungeons contain rich strikes which may be found only by mining it out of +the walls. Quartz veins are the richest, yielding the most metals and gems, but +magma veins may also hide hoards within them. When digging rock, granite is +much harder to dig through than quartz or magma veins, so it is much faster to +follow a vein exactly and dig around the granite. There is also a game option +for highlighting magma and quartz within the walls, which makes this easier. + +If the character has a scroll, staff, or spell of treasure location, she can +immediately locate all strikes of treasure within a vein shown on the screen. +This makes mining much easier and more profitable. +~~~~~12|Dungeons|Doors, Passages, Rooms and Staircases +#####R=== Staircases, Ways, Void jumpgates, Secret Doors, Passages, and Rooms === + +Staircases are the manner in which you get deeper or climb out of the +dungeon. The symbols for the up and down staircases are the same as the +commands to use them. A "<" represents an up staircase and a ">" represents +a down staircase. You must move your character over the staircase before +you can use it. You use it by typing the same character as the staircase +itself (either "<" or ">".) + +In flat environments such as forests, Ways replace staircases. On the map, Ways +are identical to staircases and behave the same way. + +Yellow down stairs and Ways are quest entrances (although not every quest +is reached by such means). + +Shafts are also represented by "<" or ">", but are brown. They work similarly +to stairs and Ways, but if you use one, you might traverse more than one +dungeon level all in one go as a result. + +Stairs, impenetrable walls, and shop entrances like titanium walls, and the +doors into shops, cannot be destroyed by any means (although their location can +occasionally change under the right circumstances). +~~~~~23|Void jumpgates +A void jumpgate appears on your map as a violet "+". Jumpgates always occur in +pairs. To activate a jumpgate, stand on it and type ">". You will instantly +appear on top of its paired jumpgate, which will be somewhere else on the same +dungeon level. + +Many secret doors are used within the dungeon to confuse and demoralise +adventurers foolish enough to enter. But with some luck, and lots of +concentration, you can find these secret doors. Secret doors will sometimes +hide rooms or corridors, or even entire sections of that level of the +dungeon. Sometimes they simply hide small empty closets or even dead ends. +Secret doors always look like granite walls, just like traps always look +like normal floors. + +Creatures in the dungeon will generally know and use these secret doors, and +can sometimes be counted on to leave them open behind them when they pass +through. + +For historical reasons, secret doors are never locked. + +~~~~~18|Pets +~~~~~19|Companions +~~~~~20|Monsters|Pets +#####R=== Pets and Companions === +You may, in the course of a game, acquire friendly monsters who will help you +defeat enemies. There are several different types of these, you can determine +which your monster is by 'l'ooking at it. +[[[[[vneutral] This monster will not help you by attacking other monsters, but nor + will it attack you. +[[[[[vco-aligned] This monster will attack other enemy monsters, but you will not + gain any experience for its kills. +[[[[[vpet] This monster will kill things for you. The amount of experience you gain + from its kills is determined by the level of your *****skills.txt*42[Monster-lore] skill. + This monster will gain levels and experience of its own, but cannot travel + between dungeon levels. +[[[[[vcompanion] This type of monster will not only take experience and level up like + pets, but will also follow you from one dungeon level to the next. If + you successfully complete an adventurer quest for a lost sword and let + him join you, he will become a companion. Once again the amount of + experience you gain from a companion's kill depends upon your + Monster-lore skill. + +Your Monster-lore skill also determines the maximum number of pets and +companions you can have at any one time. + +Pets, companions and co-aligned creatures cannot deliver killing blows to +uniques or quest monsters. You must do this yourself! + +You can give commands to pets and companions to make them more useful, using +the "P" command. The list of available commands is as follows: +[[[[[vdismiss companions] Dismisses your companions. They can be difficult to get rid + of any other way. +[[[[[vdismiss pets] Dismisses pets. You will be given the opportunity to dismiss all + current pets, or if you answer no to that first question, to + dismiss specific pets. +[[[[[vcall pets] Calls your pets (and companions) to you. +[[[[[vfollow me] Asks your pets (and companions) to follow you. They do have a mind of + their own, and may not be able to travel as fast as you can. +[[[[[vseek and destroy] Selecting this will cause your pets and companions to wander + further from you, looking for enemies to kill. +[[[[[vallow/disallow open doors] Selecting this toggles whether your pets and + companions can open doors. +[[[[[vallow/disallow pickup items] Selecting this toggles whether your pets and + companions can pick up items. Disallowing it will + cause the monster to drop any items he is carrying on + the floor. +[[[[[vgive target to a friend] Selecting this will cause one of your pets or + companions to attack your current target. +[[[[[vgive target to all friends] Causes all pets or companions to attack your + current target. +[[[[[vfriend forget target] All your friends will follow their normal attack + patterns, neglecting any targets you have given them. + +~~~~~14|Objectives +#####R=== Game Objectives === + +In ToME you will be required to complete a certain number of quests. Your +first quest is to discover the true nature of the evil lurking in the Tower of +Dol Guldur near Mirkwood. + +Each quest may lead on to others, and most quests can be postponed until when +you feel ready to tackle them. Simply explore other dungeons until you feel you +have gained enough experience to tackle your next task. Other quests are +optional and can be used for further experience. + +Once you have finished your final quest, when you are ready to retire, simply +"commit suicide" ("^Q") to have your character entered into the high score list +as a winner. Note that until you retire, you can still be killed, so you may +want to retire before wandering into a hoard of nasties.... + +You may also like to make a character sheet of your winning character (by +going through the "C"haracter screen and choosing "f"ile), and post in the +rec.games.roguelike.angband newsgroup with a text copy of the dump pasted +into the post. Include details about anything major that happened to your +character - did they find a ring of speed (+10) on dungeon level 2? Or had +they reached dungeon level 60 before finding their first artifact? Did you +have a really scary moment that stands out from the rest of the game? And how +*did* you actually win the game, anyway? + +~~~~~15|Dying +~~~~~17|Loading old characters +#####R=== Upon Death and Dying === + +If your character falls below 0 hit points, he has died and cannot be +restored (for most classes, anyway). A tombstone showing information about +your character will be displayed. You are also permitted to get a record of +your character, and all your equipment (identified) either on the screen or +in a file. + +Your character will leave behind a reduced save file, which contains only +the monster memory and your option choices. It may be restored, in which +case the new character is generated exactly as if the file was not there, +but the new player will find his monster memory containing all the experience +of past incarnations. + +In this way, death in ToME is permanent. You cannot simply 'reload at the last +save' as in most other contemporary games. Death is permanent, just as it is +in real life. + diff --git a/lib/mods/theme/help/dunspoil.txt b/lib/mods/theme/help/dunspoil.txt new file mode 100644 index 00000000..2da6d6b7 --- /dev/null +++ b/lib/mods/theme/help/dunspoil.txt @@ -0,0 +1,173 @@ +|||||oy +~~~~~01|Dungeons|Spoilers +~~~~~02|Spoilers|Dungeons +#####R=== ToME's DUNGEONS === + +There are numerous dungeons within Middle-earth, but not all +of them are required to be ventured into. The original Angband +dungeon has been split into 4 parts, each found near or at a +different town. Travel between towns is usually easiest by +using the wilderness overview map ("<" from the town level), +but remember to take lots of food with you! + +#####GThe Basic Dungeons +#####G------------------ + +#####G1. Barrow-Downs +Found near the outskirts of Bree (the starting town), this +dungeon is where you should begin your adventure. It +contains the main Dungeon levels 1 (50') to 10 (500'), +after which it becomes necessary for the character to seek +out a new dungeon in order to be able to descend further in +their quest to kill Morgoth. + +#####G2. Mirkwood +The Mirkwood forest contains levels 11 (550') to 33 (1650'), +and can be found to the north-east of Lothlorien. + +#####G3. Mordor +The Land of Mordor is a hot, cavernous region, containing +levels 34 (1700') to 66 (3300') of the dungeon. Located to +the East of Minas Anor, it is a place filled with danger, +and only a wary adventurer will make it through to the other +end of this dungeon. + +#####G4. Angband +Only the most successful of adventurers usually make it this +far. The Dungeon Angband contains both Sauron and Morgoth, +who will gladly wipe out any who dare to oppose them! This +dungeon covers levels 67 (3350') to 127 (6350'), but Sauron +waits for you at level 99, and Morgoth at level 100. This +dungeon can be found near Gondolin. + + +#####GAdditional ToME Dungeons +#####G------------------------ + +In addition to the basic 4 dungeons, there are numerous other +dungeons scattered around the world for an adventurer to explore +while preparing for the final fight. Many of the dungeons have a +guardian at the bottom of them, and a few have unique levels +somewhere within them (like an orc town) with guaranteed artifacts +and nasties within them. Other than the unique levels, all of the +dungeons can be exited and re-entered at your leisure. + +Be warned though that some dungeons are partly toxic to the +adventurer, and will damage you BY THEMSELVES just by you walking +within them! + +#####GOrc Cave +A dark tunnel leading to an Orc Cave, guarded at its base by Azog, +King of the Uruk-Hai. Also somewhere within this dungeon is the +hidden special level called Deathwatch. +Equivalent to dungeon levels 10 to 22. + +#####GThe Old Forest +A Forest is a haven for many animals, both of the good variety, and +the bad. This forest is no exception. In the past, unsuccessful +attempts have been made to cultivate this land, and it is possible +that some of the towns may remain. It is also rumoured that Old Man +Willow has made his home here, and is the source of the Forest's +resistance to cultivation. +Equivalent to dungeon levels 13 to 25. + +#####GHelcaraxe +The Grinding Ice of Helcaraxe is a bitterly cold series of caverns, +and guarded by the White Balrog. +Equivalent to dungeon levels 20 to 40. + +#####GThe Sandworm lair +A deep sandhole where most worms originated, it is guarded at its +base by the Sandworm Queen. +Equivalent to dungeon levels 22 to 30. + +#####GThe Heart of the Earth +A dark passage leading into the heart of the world, the Heart of +the Earth is the source of all the earth's changes. Some claim it +to be the home of Golgarach, the Living Rock, who assists in the +creation of new, ever-changing landforms. +Equivalent to dungeon levels 25 to 36. + +#####GMaze +A strange Maze where it becomes very difficult to remember where you +have been, it is guarded at the bottom by The Minotaur of the Labyrinth. +Equivalent to dungeon levels 25 to 37. + +#####GCirith Ungol +The dungeon Cirith Ungol is full of poisonous fumes rising from the +ground, and the land here looks diseased. Shelob is said to lurk +within these depths. +Equivalent to dungeon levels 25 to 50. + +#####GThe Land Of Rhun +The Land Of Rhun is located on a large plain, and has been taken over +by Ulfang the Black, Morgoth's first Easterling follower. +Equivalent to dungeon levels 26 to 40. + +#####GThe Mines of Moria +A stone door leads down to the depths of the Moria. Once the home of +the dwarves, the mines have been taken over by creeping evil things, and +unlucky adventurers may well stumble upon their training grounds. In +the depths lurks Durin's Bane, the Balrog of Moria, and return from +these depths can be difficult.... +Equivalent to dungeon levels 30 to 50. + +#####GThe Small Water Cave +A small water cave filled with salt water, which rusts and damages an +adventurer's equipment. This cave is not very deep, and is guarded by +The Watcher in the Water. +Equivalent to dungeon levels 32 to 34. + +#####GSubmerged Ruins +The lost land of Numenor lies submerged here. The salt water causes +everything to rust. These ruins are guarded by Ar-Pharazon the +Golden. +Equivalent to dungeon levels 35 to 50. + +#####GIllusory Castle +The Illusory Castle is a very strange and confusing place for an +adventurer to visit, and is rumoured to contain many strange +monsters. Deep within the castle can be found The Glass Golem. +Equivalent to dungeon levels 35 to 52. + +#####GPaths of the Dead +A dark underground graveyard, this place looks extremely dangerous. +It is claimed that the dead have all arisen in these depths, and are +lead by Feagwath, the Undead Sorcerer. +Equivalent to dungeon levels 40 to 70. + +#####GThe Sacred Land Of Mountains +The Sacred Land Of Mountains is located in a large mountain range, +with the remains of many old towns. Considered a perfect place to hide +for one who could fly, it is rumoured that Trone the rebel Thunderlord +fled into the ruins here. +Equivalent to dungeon levels 45 to 70. + +#####GThe Tower of Dol Guldur +The tower of of Dol Guldur is the last known residence of one known only +as "the Necromancer". It is rumoured to be filled with his conjurations, +although none have made it out of the Tower alive to confirm or deny this +rumour. +Equivalent to dungeon levels 57 to 70. + +#####GErebor, the Lonely Mountain +A big, dark and frightening tunnel leading to the depth of the Lonely +Mountain, this large cave is the ancestral home of the Dragons. +Glaurung, Father of the Dragons has long made his home here. +Equivalent to dungeon levels 60 to 72. + +#####GMount Doom +A steaming cave in the centre of Mount Doom, this place is *hot*. +It is said that Sauron forged the One Ring here and that it's the only place +where it could be destroyed. +Equivalent to dungeon levels 85 to 99. + +#####GNether Realm +The Nether Realm is accessible only through a magic portal. Also +known as Hell, this land is lethal to any who are unprepared for the +ravages of Nether, and is guarded by Tik'srvzllat. +#####BEquivalent to dungeon levels 666 to 696!!!!! + + + Created by Dawnmist for PernAngband 5.x.x + Updated for ToME 2.1.x diff --git a/lib/mods/theme/help/essences.txt b/lib/mods/theme/help/essences.txt new file mode 100644 index 00000000..f329fa80 --- /dev/null +++ b/lib/mods/theme/help/essences.txt @@ -0,0 +1,219 @@ +|||||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/experien.hlp b/lib/mods/theme/help/experien.hlp new file mode 100644 index 00000000..5e0bb9eb --- /dev/null +++ b/lib/mods/theme/help/experien.hlp @@ -0,0 +1,28 @@ +|||||oy +~~~~~01|Experience +#####RGaining experience +#####R============================================== + +The principle way for your character to gain experience (XP) is to kill +monsters. There are a few other ways too, like lockpicking, but these only +give small rewards. + +Once your character has gained enough experience to go up a level, then she +will be given skill points to spend as you see fit. These points can be +spent on either + + *****/askills.txt*0[(a) Skills] which improve more for each point you put into them, +or + *****/bability.txt*0[(b) Abilities] which are one-off purchases and grant your character new, + non-improvable powers + +Certain monsters can "drain" your experience, and thus your level. Although you +do not lose the skill points you've already gained, you also will not gain +further points until you reach a character level you have not already +achieved. Luckily, you can restore drained experience through magical means, +or by simply regaining the experience all over again. + + *****/ynewbie.hlp*0[(y) New player help menu] + *****/zhelp.hlp*0[(z) Main menu] + + diff --git a/lib/mods/theme/help/explore.hlp b/lib/mods/theme/help/explore.hlp new file mode 100644 index 00000000..0c302ab8 --- /dev/null +++ b/lib/mods/theme/help/explore.hlp @@ -0,0 +1,16 @@ +|||||oy +~~~~~01|Help|Exploring menu +~~~~~02|Exploring menu +#####RWelcome to the ToME Help System. +#####R============================================== + +Please choose one of the following online help files: + + *****/acommand.txt*0[(a) Available commands] How to control your character + *****/battack.txt*0[(b) Attacking monsters] How to attack, elemental attacks and resistances etc + *****/cdungeon.txt*0[(c) Exploring the dungeons] Symbols on your map, mining, pets, objects + more + + *****/ynewbie.hlp*0[(y) New player help menu] + *****/zhelp.hlp*0[(z) Main menu] + +
\ No newline at end of file diff --git a/lib/mods/theme/help/fatespoi.txt b/lib/mods/theme/help/fatespoi.txt new file mode 100644 index 00000000..2815129e --- /dev/null +++ b/lib/mods/theme/help/fatespoi.txt @@ -0,0 +1,28 @@ +|||||oy +~~~~~01|Spoilers|Fates +~~~~~02|Fates (spoiler) +#####R Fate Spoiler +#####R Accurate for PernAngband 5.x.x +#####R by Dustin Ragan + +Numerous spirits inhabit the land of Arda, from the murderous barrow wights to +the enigmatic Tom Bombadil. These spirits usually are bound to a specific +geographic region, but there are exceptions to this rule. Sometimes one of +these spirits will take interest in an adventurer. This can either be very, +very good or very, very bad. These spirits will "rig" reality to ensure that +something happens--or doesn't happen. + +In order to attract the attention of a spirit, the adventurer must be somewhat +experienced, having attained at least the 11th level of experience. Every 10 +game turns, which corresponds to 1 normal speed player turn, there is a +1 in 50,000 chance of gaining a fate. When this fate is chosen, there is a +7/18 chance of being fated to find a specific mundane item on a specific +dungeon level. A more belligerent spirit will, 7/18 of the time, summon a +malicious monster to do battle on a specific dungeon level. There is a 1/9 +chance to be destined to find an artifact on a given level. There is also +a 1/18 chance that you will meet your demise on a given level. Finally, there +is a 1/18 chance of becoming invulnerable to attacks from mortals. + +Whenever a level is being chosen for a fate, it is always chosen within 20 +levels of your current recall depth. Items, monsters, and artifacts are all +generated up to 10 levels out of depth for your current recall depth. diff --git a/lib/mods/theme/help/foot.aux b/lib/mods/theme/help/foot.aux new file mode 100644 index 00000000..47328799 --- /dev/null +++ b/lib/mods/theme/help/foot.aux @@ -0,0 +1,4 @@ +</TT></PRE> +</FONT> +</body> +</html> diff --git a/lib/mods/theme/help/g_aule.txt b/lib/mods/theme/help/g_aule.txt new file mode 100644 index 00000000..89399179 --- /dev/null +++ b/lib/mods/theme/help/g_aule.txt @@ -0,0 +1,61 @@ +|||||oy +~~~~~01|Gods|Aule +~~~~~02|Aule +#####R === Aule the Smith === + +Aule the Smith is the inventor and smith of the Valar. +His most faithful followers are those of the class *****c_stonewr.txt*0[Stonewright]. + +#####GThe benefits of worshipping Aule the Smith +1. As you increase your piety, Aule will grant you a boost to your accuracy + and damage to a maximum of +5. +2. As your piety increases, he will grant you resistance to fire. +3. If you are praying to him at the time, there is a chance that he will + cast Stone Skin on you. +4. Aule likes Dwarves, Petty-dwarves, Gnomes, and Dark Elves. +4. Your piety will increase slightly more if you are wielding an axe or a hammer. + +#####GThe disadvantages of worshipping Aule the Smith +1. He doesn't like it if you kill dwarves of any kind. +2. Your piety will decrease over time unless you are a Dwarf, Petty-dwarf, + Gnome, or Dark-Elf. +3. He will completely abandon you if you wear The One Ring. +~~~~~~03|Aule|Prayers +#####GAule's Magic +Worshipping Aule the Smith gives the adventurer access to a set of special +spells that come directly from the hands of Aule. These spells use your piety +to cast rather than your spellpoints, and the level of spells that Aule will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for his help without offending him! + +There is a special book - called the "The Earth Tome of Aule" which +contains instructions for the procedure for each of the prayers Eru will +grant. There are four prayers all told, which are: +1. [[[[[BFirebrand] (Level 1) + Imbues your melee weapon with fire to deal more damage. + At level 15 it spreads over a 1 radius zone around your target. + At level 30 it deals holy fire damage. +2. [[[[[BEnchant Weapon] (Level 10) + Tries to enchant a weapon to-hit. + At level 5 it also enchants to-dam. + At level 45 it enhances the special powers of magical weapons. + The might of the enchantment increases with level. +3. [[[[[BEnchant Armour] (Level 15) + Tries to enchant a piece of armour. + At level 20 it also enchants to-hit and to-dam. + At level 40 it enhances the special powers of magical armour + The might of the enchantment increases with level. +4. [[[[[BChild of Aule] (Level 20) + Summons a levelled Dwarven warrior to help you battle the forces + of Morgoth. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Aule will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + + *****m_earth.txt*0[Earth School] at 1/3 the Prayer skill level. + *****m_fire.txt*0[Fire School] at 3/5 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_eru.txt b/lib/mods/theme/help/g_eru.txt new file mode 100644 index 00000000..113875b3 --- /dev/null +++ b/lib/mods/theme/help/g_eru.txt @@ -0,0 +1,65 @@ +|||||oy +~~~~~01|Gods|Eru +~~~~~02|Eru +#####R === Eru Iluvatar === + +Eru Iluvatar is the father of the Valar. His most faithful followers are those +of the class *****c_pr_eru.txt*0[Priest(Eru)]. + +#####GThe benefits of Worshipping Eru Iluvatar +1. As you increase your piety, Eru will grant you a boost to your wisdom. + Eventually he will also start increasing your ability to handle magical + power, resulting in a boost to your spellpoints. +2. If you are praying to him at the time, there is a chance that he will + deflect some blows from evil monsters (that increases with your level of + piety). +3. If you are praying to him at the time, there is a chance that he will + resurrect you from the dead (provided you are very pious!). +4. Your piety automatically increases over time if you are: + a) Not praying, and + b) Actively doing something (i.e. not resting or in the Wilderness map). + +#####GThe disadvantages of Worshipping Eru Iluvatar +1. He doesn't like it if you destroy blessed weapons. +2. You can only wield blunt or blessed weapons without penalty. +3. He doesn't like it if you kill monsters that are aligned with good. +4. He will completely abandon you if you wear The One Ring. +~~~~~~03|Eru|Prayers +#####GEru Iluvatar's Magic +Worshipping Eru Iluvatar gives the adventurer access to a set of special +spells that come directly from the hands of Eru. These spells use your piety +to cast rather than your spellpoints, and the level of spells that Eru will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for his help without offending him! + +There is a special book called the "Holy Tome of Eru Iluvatar" which +contains instructions for the procedure for each of the prayers Eru will +grant. There are four prayers all told, which are: +1. [[[[[BSee the Music] (Level 1) + Allows you to 'see' the Great Music from which the world originates, + allowing you to see unseen things, and can be cast while blind. + At spell level 10 it allows you to see your surroundings. + At spell level 20 it allows you to cure blindness. + At spell level 30 it allows you to fully see all the level. +2. [[[[[BListen to the Music] (Level 7) + Allows you to listen to the Great Music from which the world originates, + allowing you to understand the meaning of things. + At spell level 14 it allows you to identify all your pack. + At spell level 30 it allows you to identify all items on the level. +3. [[[[[BKnow the Music] (Level 30) + Allows you to understand the Great Music from which the world originates, + allowing you to know the full abilities of things. + At spell level 10 it allows you to *identify* all your pack. +4. [[[[[BLay of Protection] (Level 35) + Creates a circle of safety around you. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Eru will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_mana.txt*0[Mana School] at 1/2 the Prayer skill level. + *****m_divin.txt*0[Divination School] at 2/3 the Prayer skill level. + *****m_mind.txt*0[Mind School] at 1/3 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_mandos.txt b/lib/mods/theme/help/g_mandos.txt new file mode 100644 index 00000000..5e21553c --- /dev/null +++ b/lib/mods/theme/help/g_mandos.txt @@ -0,0 +1,56 @@ +|||||oy +~~~~~01|Gods|Mandos +~~~~~02|Mandos +#####R === Mandos === + +Mandos is the Doomsman of the Valar, rarely seen but much revered. His most faithful +followers are those of the class *****c_pr_mand.txt*0[Priest(Mandos)]. + +#####GThe benefits of worshipping Mandos +1. His followers are granted resistance to nether forces. +2. If your piety is sufficiently high, and you are praying to him, Mandos will prevent + the space-time continuum from being disrupted around you. +3. If you are very pious and praying, Mandos will grant you immunity to nether. +4. He likes it if you kill vampires. +5. He adores it if you kill vampire elves. +6. Your piety will slowly increase over time if you are not praying. +7. Mandos likes High Elves and Lost Souls. + +#####GThe disadvantages of worshipping Mandos +1. Mandos doesn't like Vampires and Demons. +2. He hates being disturbed, so praying will make you lose piety very quickly. +3. He hates it if you kill living elves of any kind. +4. He *hates* it if you kill elves who are friendly to you. +5. He absolutely detests it if you kill friendly spirits. +6. He will completely abandon you if you wear The One Ring. +~~~~~~03|Mandos|Prayers +#####GMandos' Magic +Worshipping Mandos gives the adventurer access to a set of special spells that come +directly from the hands of Mandos. These spells use your piety to cast rather than +your spellpoints, and the level of spells that Mandos will permit you to use is +determined by your Prayer skill - how skillful you are in asking for his help +without offending him! + +There is a special book - called the "Holy Tome of Mandos" which +contains instructions for the procedure for each of the prayers Mandos will +grant. There are four prayers all told, which are: +1. [[[[[BTears of Luthien] (Level 5) + Calls upon the spirit of Luthien to ask Mandos for healing and succour. +2. [[[[[BFeanturi] (Level 10) + Channels the power of Mandos to cure fear and confusion. + At level 20 it restores lost INT and WIS + At level 30 it cures hallucinations and restores a percentage of lost sanity. +3. [[[[[BTale of Doom] (Level 25) + Allows you to predict the future for a short time. +4. [[[[[BCall to the Halls] (Level 30) + Summons a leveled spirit from the Halls of Mandos to fight for you. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Mandos will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_divin.txt*0[Divination School] at 1/3 the Prayer skill level. + *****m_tempo.txt*0[Temporal School] at 1/4 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_manwe.txt b/lib/mods/theme/help/g_manwe.txt new file mode 100644 index 00000000..4bbc85fd --- /dev/null +++ b/lib/mods/theme/help/g_manwe.txt @@ -0,0 +1,62 @@ +|||||oy +~~~~~01|Gods|Manwe +~~~~~02|Manwe +#####R === Manwe Sulimo === + +Manwe is the strongest of the Valar, next to Morgoth. His most faithful +followers are those of the class *****c_pr_man.txt*0[Priest(Manwe)]. + +#####GThe benefits of Worshipping Manwe Sulimo +1. As you increase your piety, Manwe will grant boosts to your speed (up to + a maximum boost of +7 speed). +2. If you are praying, Manwe likes it when you kill monsters that are aligned + with evil. +3. As your piety increases, Manwe will grant you the following abilities (in + order): + a) Levitation + b) Free Action (while praying) + c) Flying (while praying) +4. Manwe likes elves. + +#####GThe disadvantages of Worshipping Manwe Sulimo +1. Your piety slowly decreases with time, whether you are praying or not. +2. He doesn't like it if you kill monsters that are aligned with good. +3. He will completely abandon you if you wear The One Ring. +~~~~~03|Manwe|Prayers +#####GManwe Sulimo's Magic +Worshipping Manwe Sulimo gives the adventurer access to a set of special +spells that come directly from the hands of Manwe. These spells use your piety +to cast rather than your spellpoints, and the level of spells that Manwe will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for his help without offending him! + +There is a special book called the "Holy Tome of Manwe Sulimo" which +contains instructions for the procedure for each of the prayers Manwe will +grant. There are four prayers all told, which are: +1. [[[[[BManwe's Blessing] (Level 1) + Manwe's Blessing removes your fears, blesses you and surrounds you with holy + light. + At spell level 10 it also grants heroism. + At spell level 20 it also grants super heroism. + At spell level 30 it also grants holy luck and life protection. +2. [[[[[BWind Shield] (Level 10) + It surrounds you with a shield of wind that deflects blows from evil + monsters. + At level 10 it increases your armour rating. + At level 20 it retaliates against monsters that melee you. +3. [[[[[BManwe's Call] (Level 20) + Manwe's Call summons a Great Eagle to help you battle the forces of + Morgoth. +4. [[[[[BAvatar] (Level 35) + It turns you into a full grown Maia. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Manwe will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_air.txt*0[Air School] at 2/3 the Prayer skill level. + *****m_convey.txt*0[Conveyance School] at 1/2 the Prayer skill level. + *****m_meta.txt*0[Meta School] at 1/3 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_melkor.txt b/lib/mods/theme/help/g_melkor.txt new file mode 100644 index 00000000..d6033e72 --- /dev/null +++ b/lib/mods/theme/help/g_melkor.txt @@ -0,0 +1,65 @@ +|||||oy +~~~~~01|Melkor +~~~~~02|Gods|Melkor +#####R === Melkor Bauglir === + +Melkor Bauglir is Morgoth, the Dark Enemy. He once was the most powerful +of the Valar. His most faithful followers are those of the class *****c_pr_drk.txt*0[Dark Priest]. + +#####GThe benefits of Worshipping Melkor Bauglir + 1. As you increase your piety, Melkor will grant boosts to your strength, + constitution and charisma and will decrease intelligence and wisdom. + 2. As a follower of Melkor you are resistant to fire. + 3. If you are praying, Melkor may make you invisible and immune to fire. + 4. If you are praying, Melkor may cast Curse on your foes when you melee them. + 5. If you are praying, Melkor likes it when you kill monsters. + 6. If you are praying, Melkor *likes* it when you kill monsters that are + aligned with good. + 7. Melkor likes it if you quaff Potions of Corruption. + 8. Melkor likes the sacrifice of corpses and books at his altars. + 9. Melkor likes the permanent sacrifice of your own health at his altars. +10. Melkor hates elves. +11. Melkor grants access to the *****m_udun.txt*0[Udun] school of magic. +121. Melkor can summon undead and demons to help you when your life goes down. + +#####GThe disadvantages of Worshipping Melkor Bauglir +1. Your piety decreases with time. +2. Your piety decreases with time even more if you are praying. +3. He will completely abandon you if you destroy The One Ring. +~~~~~03|Melkor|Prayers +#####GMelkor Bauglir's Magic +Worshipping Melkor Bauglir gives the adventurer access to a set of special +spells that come directly from the hands of Melkor. These spells use your piety +to cast rather than your spellpoints, and the level of spells that Melkor will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for his help without offending him! + +There is a special book called the "Corrupted Tome of Melkor" which +contains instructions for the procedure for each of the prayers Melkor will +grant. There are three prayers all told, which are: +1. [[[[[BCurse] (Level 1) + It curses a monster, reducing its melee power + At level 5 it can be auto-casted (with no piety cost) while fighting + if your piety is over 5000. + At level 15 it also reduces armor + At level 25 it also reduces speed + At level 35 it also reduces max life (but it is never fatal) +2. [[[[[BCorpse Explosion] (Level 10) + It makes corpses in an area around you explode for a percent of their hit + points as damage +3. [[[[[BMind Steal] (Level 20) + It allows your spirit to temporarily leave your own body, which will + be vulnerable, to control one of your enemies body + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Melkor will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. This school is as follows: + *****m_mind.txt*0[Mind School] at 1/3 the Prayer skill level. + +Melkor also grants all of his followers access to the *****m_udun.txt*0[Udun] school of magic, +but only powerful mages are able to cast all of its spells. + +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_tulkas.txt b/lib/mods/theme/help/g_tulkas.txt new file mode 100644 index 00000000..2c05292a --- /dev/null +++ b/lib/mods/theme/help/g_tulkas.txt @@ -0,0 +1,45 @@ +|||||oy +~~~~~01|Tulkas +~~~~~02|Gods|Tulkas +#####R === Tulkas === + +Another of the Valar. His most faithful followers are *****c_palad.txt*0[Paladins]. + +#####GThe benefits of Worshipping Tulkas +1. As you increase your piety, Tulkas will grant boosts to your constitution + and your strength (up to a maximum of +3 each). +2. He likes it when you kill monsters that are aligned with evil. +3. He loves it when you kill evil monsters while praying. +4. He *adores* it when you kill demons while praying. +5. If you are praying, Tulkas may increase the damage you do in melee combat. + +#####GThe disadvantages of Worshipping Tulkas +1. When you are praying, your piety slowly decreases with time. +2. He will completely abandon you if you wear The One Ring. +~~~~~03|Tulkas|Prayers +#####GTulkas's Magic +Worshipping Tulkas gives the adventurer access to a set of special spells +that come directly from the hands of Tulkas. These spells use your piety to +cast rather than your spellpoints, and the level of spells that Tulkas will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for his help without offending him! + +There is a special book called the "War Tome of Tulkas" which contains +instructions for the procedure for each of the prayers Tulkas will grant. +There are three prayers all told, which are: +1. [[[[[BDivine Aim] (Level 1) + It makes you more accurate in combat. + At spell level 20 all your blows are critical hits. +2. [[[[[BWhirlwind] (Level 10) + It allows you to spin around and hit all monsters nearby. +3. [[[[[BWave of Power] (Level 20) + It allows you to project a number of melee blows across a distance. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Tulkas will also assist with your ability to +use some magic from one of the "standard" schools, in relation to how skilled +you are at Prayer. This school is as follows: + *****m_earth.txt*0[Earth School] at 4/5 the Prayer skill level. +The spells from this school are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_ulmo.txt b/lib/mods/theme/help/g_ulmo.txt new file mode 100644 index 00000000..59c3d6e9 --- /dev/null +++ b/lib/mods/theme/help/g_ulmo.txt @@ -0,0 +1,58 @@ +|||||oy +~~~~~01|Gods|Ulmo +~~~~~02|Ulmo +#####R === Ulmo === + +Ulmo is the Lord of Waters, he controls all the lakes, rivers, seas, and oceans +on Arda. His most faithful followers are those of the class *****c_pr_ulmo.txt*0[Priest(Ulmo)]. + +#####GThe benefits of worshipping Ulmo +1. Ulmo's followers can breathe underwater. +2. If your piety is sufficiently high and you are praying, Ulmo will grant + you resistance to poison. +3. If you are very pious and praying, Ulmo will grant you the ability + to breathe without air. +4. Ulmo likes it if you wield or carry tridents. +5. If you are not praying, your piety will increase automatically over time. +6. Ulmo likes the Edain, Dunedain, Druedain, and Rohirrim. + +#####GThe disadvantages of worshipping Ulmo +1. He doesn't like it if you kill aquatic creatures. +2. He hates it if you kill good, friendly, or unique aquatic creatures. +3. He doesn't like it if you use magic involving any kind of fire. +4. Ulmo hates Easterlings, Orcs, and Demons. +5. He will completely abandon you if you wear The One Ring. +~~~~~~03|Ulmo|Prayers +#####GUlmo's Magic +Worshipping Ulmo gives the adventurer access to a set of special spells that come +directly from the hands of Ulmo. These spells use your piety to cast rather than +your spellpoints, and the level of spells that Ulmo will permit you to use is +determined by your Prayer skill - how skillful you are in asking for his help +without offending him! + +There is a special book - called the "Water Tome of Ulmo" which +contains instructions for the procedure for each of the prayers Ulmo will +grant. There are four prayers all told, which are: +1. [[[[[BSong of Belegaer] (Level 1) + Channels the power of the Great Sea into your fingertips. + Sometimes it can blast through its first target. +2. [[[[[BDraught of Ulmonan] (Level 15) + Fills you with a draught with powerful curing effects, prepared by Ulmo himself. + At spell level 1 it cures blindness, poison, cuts and stunning + At spell level 10 it restores drained STR, DEX and CON + At spell level 20 it removes parasites and unwanted mimicry +3. [[[[[BCall of the Ulumuri] (Level 20) + Summons a leveled water spirit or elemental to fight for you. +4. [[[[[BWrath of Ulmo] (Level 30) + Conjures up a sea storm. + At spell level 30 it turns into a more forceful storm. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to his specific magic, Ulmo will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_water.txt*0[Water School] at 3/5 the Prayer skill level. + *****m_nature.txt*0[Nature School] at 1/2 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints.
\ No newline at end of file diff --git a/lib/mods/theme/help/g_varda.txt b/lib/mods/theme/help/g_varda.txt new file mode 100644 index 00000000..a5d28475 --- /dev/null +++ b/lib/mods/theme/help/g_varda.txt @@ -0,0 +1,54 @@ +|||||oy +~~~~~01|Gods|Varda +~~~~~02|Varda +#####R === Varda Elentari === + +Varda Elentari is the greatest Queen of the Valar. Her most faithful followers +are those of the class *****c_pr_varda.txt*0[Priest(Varda)]. + +#####GThe benefits of worshipping Varda Elentari +1. She grants her followers permanent light of radius 1. +2. As you increase your piety, Varda will grant you resistance to light + while praying. +3. Your piety will increase while you are in lit areas. +4. Varda loves when you use spells involving light. + +#####GThe disadvantages of worshipping Varda Elentari +1. Your piety will decrease while you are in dark places. +2. Varda dislikes evil races (Orcs, Trolls, Dragons, and Demons). +3. Your piety will slowly decrease while praying. +4. She will completely abandon you if you wear The One Ring. +~~~~~~03|Varda|Prayers +#####GVarda Elentari's Magic +Worshipping Varda Elentari gives the adventurer access to a set of special +spells that come directly from the hands of Varda. These spells use your piety +to cast rather than your spellpoints, and the level of spells that Varda will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for her help without offending her! + +There is a special book - called the "Shining Tome of Varda" which +contains instructions for the procedure for each of the prayers Varda will +grant. There are four prayers all told, which are: +1. [[[[[BLight of Valinor] (Level 1) + Lights up a room. + At spell level 3 it starts damaging monsters. + At spell level 15 it starts creating a more powerful kind of light. +2. [[[[[BCall of Almaren] (Level 10) + Banishes evil beings. + At spell level 20 it dispels evil beings. +3. [[[[[BEvenstar] (Level 30) + Maps and lights the whole level. + At spell level 40 it maps and lights the whole level, in addition to + letting you know yourself better and identifying your whole pack. +4. [[[[[BStar Kindler] (Level 35) + Does multiple bursts of light damage. The power increases with level. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to her specific magic, Varda will also assist with your ability to +use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_mana.txt*0[Mana School] at 1/4 the Prayer skill level. + *****m_meta.txt*0[Meta School] at 1/3 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/g_yavann.txt b/lib/mods/theme/help/g_yavann.txt new file mode 100644 index 00000000..6e6937ca --- /dev/null +++ b/lib/mods/theme/help/g_yavann.txt @@ -0,0 +1,62 @@ +|||||oy +~~~~~01|Yavanna +~~~~~02|Gods|Yavanna +#####R === Yavanna Kementari=== + +Yavanna, the Giver of Fruits, created all plants and animals and awakened the +Ents to protect the forests of Arda. Kementari, Queen of the Earth, is her +surname. Her most faithful followers are the *****c_druid.txt*0[Druids]. + +#####GThe benefits of Worshipping Yavanna +1. As you increase your piety, Yavanna will grant you the ability to pass + trees while praying. +2. She makes you regenerate faster while praying on grass. +3. She likes it when you kill nonliving creatures, undead or demons. +4. She likes it if you charm animals (except evil ones). +5. Yavanna likes Ents. + +#####GThe disadvantages of Worshipping Yavanna +1. Your piety slowly decreases with time, whether you are praying or not. +2. She doesn't like it if you kill monsters while praying. +3. She hates it if you kill animals while praying. +4. She hates it if you hurt your animal pets. +5. She hates it if you burn or destroy trees with magic or allow monsters to + do so. +6. She will completely abandon you if you wear The One Ring. +~~~~~03|Yavanna|Prayers +#####GYavanna's Magic +Worshipping Yavanna gives the adventurer access to a set of special spells +that come directly from the hands of Yavanna. These spells use your piety to +cast rather than your spellpoints, and the level of spells that Yavanna will +permit you to use is determined by your Prayer skill - how skillful you are +in asking for her help without offending her! + +There is a special book called the "Forest Tome of Yavanna" which contains +instructions for the procedure for each of the prayers Yavanna will grant. +There are five prayers all told, which are: +1. [[[[[BCharm Animal] (Level 1) + Tries to tame animals in a zone around your target. +2. [[[[[BGrow Grass] (Level 10) + Creates a floor of grass around you. While on grass and praying, + a worshipper of Yavanna will know a greater regeneration rate. +3. [[[[[BTree Roots] (Level 15) + Creates roots deep in the floor from your feet, making you more stable and + able to do better attacks, but preventing any movement (even teleportation). + It also makes you recover from stunning almost immediately. +4. [[[[[BWater Bite] (Level 20) + Imbues your melee weapon with a natural stream of water. + At level 25, it spreads over a 1 radius zone around your target. +5. [[[[[BUproot] (Level 35) + Awakes a tree to help you battle the forces of Morgoth. + +Each of these spells can be increased in level both by improving your Prayer +skill, and by improving your Spell-power skill. + +In addition to her specific magic, Yavanna will also assist with your ability +to use some magic from the "standard" schools, in relation to how skilled you +are at Prayer. These schools are as follows: + *****m_earth.txt*0[Earth School] at 1/2 the Prayer skill level. + *****m_nature.txt*0[Nature School] at 1/2 the Prayer skill level. + *****m_water.txt*0[Water School] at 1/2 the Prayer skill level. + *****m_tempo.txt*0[Temporal School] at 1/6 the Prayer skill level. +The spells from these schools are all cast using your normal spellpoints. diff --git a/lib/mods/theme/help/gambling.txt b/lib/mods/theme/help/gambling.txt new file mode 100644 index 00000000..62352600 --- /dev/null +++ b/lib/mods/theme/help/gambling.txt @@ -0,0 +1,29 @@ +|||||oy +~~~~~01|Gambling +#####R=== Gambling Rules === + +#####GBetween : + Three 12-sided dice rolled; 2 black, 1 red. The red + die must be between both black to win. If the red die + matches a black die, you lose. Pays 3 to 1 +#####GCraps: + Two 6-sided dice are rolled. On first roll, a 7 or 11 + wins. A 2, 3 or 12 loses. Otherwise roll until the first + roll is matched (win) or a 7 is rolled (loss). Pays 2 to 1 +#####GWheel: + Pick a number from 0-9. If the number shows on wheel + after it stops spinning, you win. Pays 10 to 1 + +#####GSlots: + Three dice rolled. Matches win gold. + Numbers are: + 1=Lemon, 2=Orange, 3=Sword, 4=Shield, 5=Plum, 6=Cherry + Payoffs are as follows: + Cherry Cherry Lemon 2-1 Cherry Cherry Orange 3-1 + Cherry Cherry Sword 4-1 Cherry Cherry Shield 5-1 + Cherry Cherry Plum 6-1 + Lemon Lemon Lemon 4-1 Orange Orange Orange 16-1 + Sword Sword Sword 6-1 Shield Shield Shield 25-1 + Plum Plum Plum 9-1 Cherry Cherry Cherry 36-1 + + diff --git a/lib/mods/theme/help/general.txt b/lib/mods/theme/help/general.txt new file mode 100644 index 00000000..17dc187c --- /dev/null +++ b/lib/mods/theme/help/general.txt @@ -0,0 +1,39 @@ +|||||oy +~~~~~01|Help +#####R=== Using the Online Help === + +This help system has been designed to be read whilst in-game. Printing it off +will make it look clumsy and a little difficult to read. + +Any text in orange/yellow colour is likely to be a hyperlink, and pressing +<enter> while the link is active (yellow) will take you to the relevant page. +Navigate between viewable links by using the left-right keys. Some links also +have bracketed letters included in the links. Pressing these letters on your +keyboard will activate the link even if it is orange. + +The help files total over 850 kb, so there is a lot of information. They have +been designed to be browsed, but you may be looking for specific information, +in which case you should try looking at the alphabetical *****index.txt*0[index]. + +Here are all the relevant keypresses for navigating the help system. + +#####GKey | Action +------------------------------------------------------------------- +Escape | Leave the Online Help +Backspace | Return to previous Help File +Space | Advance 1 page (screen) +2, down arrow | Advance 1 line +8, up arrow | Back up 1 line +- | Back up 1 page (screen) +6, right arrow | Advance 1 link +4, left arrow | Back up 1 link +Return | Activate the selected link +# | Go to a specific line (defaults to line 0) +% | Go to a specific help file (defaults to help.hlp) += | Highlight lines containing a string (e.g. "word") +/ | Search for a string (e.g. "word") +------------------------------------------------------------------- + +There are other sources for help playing ToME. Try http://forum.t-o-m-e.net +and http://wiki.t-o-m-e.net . We also have an IRC channel #tome on the +worldirc and freenode networks (they are linked) which is fairly low traffic. diff --git a/lib/mods/theme/help/gods.txt b/lib/mods/theme/help/gods.txt new file mode 100644 index 00000000..60427e7e --- /dev/null +++ b/lib/mods/theme/help/gods.txt @@ -0,0 +1,42 @@ +|||||oy +~~~~~01|Gods +#####RThe Guide to the Gods. + +#####G1. Introduction + Everybody likes to have a little helping hand now and then. What +could be better than having a god on your side? But it's not quite that easy. +The gods won't help just any mortal who calls for help. You have to give them +a little something too. + +#####G2. How Do I Get in on This? + When you start a character, you get a choice of whether or not you +wish to begin worshipping a God (unless you're something like a priest - they +*must* start with a God to worship). If you do choose to be a follower of one +of the Gods, you will gain certain abilities provided you do not do things +that displease them. The measure of how happy your God is with you is your +Piety - the Pt stat is your measure of Piety. Different actions will allow you +to gain or lose Piety over time. You can change your mind about whom (if +anyone) to worship during the game by finding an *****tome_faq.txt*04[altar] of that God. + +#####G3. What about spells? +God-granted spells are also known as prayers, and are cast using Piety instead +of Mana. God-spells can be increased in level by improving either your Prayer +or Spell-power skill. The chance of successfully invoking a prayer depends +on the Prayer skill and your wisdom. + +Each God also grants access to standard magical spell schools; which school(s) +vary depending on the Gods' individual preferences. Spells from these schools +are cast using Mana, not Piety; and success depends on your intelligence, not +your wisdom. + +#####G4. So, Who Are These Gods? + In Theme, there are nine Gods you may choose to worship, being: +1. *****g_eru.txt*0[Eru Iluvatar] - the father of the Valar. +2. *****g_manwe.txt*0[Manwe Sulimo] - the greatest of the Valar, watching from atop Taniquetil. +3. *****g_ulmo.txt*0[Ulmo] - the second mightiest of the Valar, lord of all waters on Arda. +4 *****g_varda.txt*0[Varda Elentari] - Manwe's spouse, the most beloved by the Elves. +5. *****g_yavann.txt*0[Yavanna Kementari] - the Earth Queen who created plants and animals. +6. *****g_aule.txt*0[Aule the Smith] - the builder and inventor of the Valar. +7. *****g_tulkas.txt*0[Tulkas] - another of the Valar, Tulkas values strength and courage. +8. *****g_mandos.txt*0[Mandos] - the Doomsman of the Valar, wise and powerful. +9. *****g_melkor.txt*0[Melkor Bauglir] - the Dark Enemy himself, once the most powerful of the Valar. diff --git a/lib/mods/theme/help/head.aux b/lib/mods/theme/help/head.aux new file mode 100644 index 00000000..92e979d3 --- /dev/null +++ b/lib/mods/theme/help/head.aux @@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <title>T.o.M.E. Documentation</title> + <meta name="description" content="ToME and TomeNET homepage. ToME is a roguelike dungeon exploration game, based on Angband."> + <meta name="keywords" content="angband, tome, tomenet, library, angband, official, roguelike"> +</head> +<body bgcolor="#000000" text="#FFFFFF" link="#CC0000" alink="#FF9900" vlink="#FFCC66"> +<FONT text="#CCCCCC"> +<PRE><TT> diff --git a/lib/mods/theme/help/help.hlp b/lib/mods/theme/help/help.hlp new file mode 100644 index 00000000..7c4b431f --- /dev/null +++ b/lib/mods/theme/help/help.hlp @@ -0,0 +1,33 @@ +|||||oy +~~~~~01|Help|Main Menu +~~~~~02|Main Menu +#####RWelcome to the ToME Online Help System. +#####R============================================== + +Please choose one of the following online help files: + + *****/ageneral.txt*0[(a) About this help system] + *****/bnewbie.hlp*0[(b) Help for new players] Skills, magic, races, classes + more + *****/cadvanced.hlp*0[(c) Help for more experienced players] Options, Macros, Automatizer etc + *****/dtome_faq.txt*0[(d) ToME FAQ] Common questions + + *****/sspoiler.hlp*0[(s) Spoiler menu] Dungeons, fates, luck, corruptions and stuff + + + *****/xindex.txt*0[(x) Alphabetical index] Trouble finding something? Try here + +#####GBasic keys: +Space | Advance 1 page (screen) +2, down arrow | Advance 1 line +8, up arrow | Back up 1 line +- | Back up 1 page (screen) +6, right arrow | Advance 1 link +4, left arrow | Back up 1 link +Return | Activate the selected link +Escape | Leave the Online Help +Backspace, ? | Return to previous Help File +# | Go to a specific line (defaults to line 0) +% | Go to a specific help file (defaults to help.hlp) += | Highlight lines containing a string (e.g. "word") +/ | Search for a string (e.g. "word") + diff --git a/lib/mods/theme/help/index.txt b/lib/mods/theme/help/index.txt new file mode 100644 index 00000000..c89a70b3 --- /dev/null +++ b/lib/mods/theme/help/index.txt @@ -0,0 +1,636 @@ +|||||oy +#####R /----------------------------------------\ +#####R < Help Index > +#####R \----------------------------------------/ + +This is the index of everything in the T.o.M.E. documentation. + +#####BHit a letter key to jump to the entries for that letter. + +Some entries in the index link to the same place as other entries. This is +intentional, so that the information you want is easy to find. + +Don't forget you can browse the help from the *****help.hlp*02[Main menu]. + +#####sSpotted a problem with the help files, or some content thats missing? +#####sContact fearoffours@t-o-m-e.net . + +~~~~~65 +*****/Aindex.txt*65[A] + *****birth.txt*81[Abbreviations] + *****birth.txt*20[AC] + *****birth.txt*17[AU] + *****tome_faq.txt*25[FF] + *****birth.txt*21[HP] + *****birth.txt*29[Pt] + *****birth.txt*24[SN] + *****birth.txt*26[SP] + *****ability.txt*01[Abilities] + *****ability.txt*07[Ammo creation] + *****ability.txt*05[Extra Max Blow 1] + *****ability.txt*06[Extra Max Blow 2] + *****ability.txt*10[Far reaching attack] + *****ability.txt*04[Perfect casting] + *****ability.txt*02[Spread blows] + *****ability.txt*08[Touch of death] + *****ability.txt*11[Trapping] + *****ability.txt*03[Tree walking] + *****ability.txt*12[Undead Form] + *****m_air.txt*02[Air Magic] + *****tome_faq.txt*03[Altars] + *****tome_faq.txt*37[Anti-magic Amulets and the Anti-magic shell] + *****c_unbel.txt*04[Antimagic] + *****c_archer.txt*01[Archer] + *****attack.txt*03[Armor] + *****birth.txt*19[Armor Class] + *****attack.txt*05[Resistances] + *****tome_faq.txt*18[Artifacts that activate but I cannot wear or wield] + *****c_ascet.txt*02[Ascetic] + *****c_assass.txt*01[Assassin] + *****attack.txt*01[Attacking Monsters] + *****attack.txt*06[Damage Effect type ] + *****attack.txt*04[Resistances] + *****birth.txt*48[Fighting ability] + *****birth.txt*50[Shooting] + *****g_aule.txt*02[Aule] + *****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 +*****/Bindex.txt*66[B] + *****rm_barb.txt*01[Barbarian] + *****c_bard.txt*01[Bard] + *****tome_faq.txt*36[Beginner strategy] + *****r_beorn.txt*01[Beorning] + *****birth.txt*84[Birth] + *****dungeon.txt*21[Buildings] +~~~~~67 +*****/Cindex.txt*67[C] + *****birth.txt*11[Character] + *****birth.txt*46[Abilities] + *****birth.txt*10[Ability tables] + *****birth.txt*23[Armor Class] + *****birth.txt*02[Characteristics] + *****birth.txt*01[Creating a Character] + *****birth.txt*22[Hit Points] + *****birth.txt*28[Mana] + *****birth.txt*31[Piety] + *****birth.txt*08[Race and Class Combinations] + *****birth.txt*25[Sanity Points] + *****birth.txt*09[Stat Bonus Table] + *****birth.txt*13[Stats 1] + *****birth.txt*39[Stats 2] + *****tome_faq.txt*34[Character choice is too confusing] + *****birth.txt*45[Charisma] + *****birth.txt*05[Classes] + *****c_archer.txt*02[Archer] + *****c_ascet.txt*02[Ascetic] + *****c_assass.txt*02[Assassin] + *****c_axemas.txt*02[Axemaster] + *****c_bard.txt*02[Bard] + *****c_clairv.txt*02[Clairvoyant] + *****birth.txt*68[Combinations with Race] + *****c_pr_drk.txt*02[Dark Priest] + *****c_demono.txt*02[Demonologist] + *****c_druid.txt*02[Druid] + *****c_geoman.txt*02[Geomancer] + *****c_hafted.txt*02[Haftedmaster] + *****c_lorema.txt*02[Loremaster] + *****c_mage.txt*02[Mage] + *****c_mercen.txt*02[Mercenary] + *****c_mimic.txt*02[Mimic] + *****c_mindcr.txt*02[Mindcrafter] + *****c_monk.txt*02[Monk] + *****c_necro.txt*02[Necromancer] + *****c_pacif.txt*02[Pacifist] + *****c_palad.txt*02[Paladin] + *****c_peacemag.txt*02[Peace-mage] + *****c_polear.txt*02[Polearmmaster] + *****c_posses.txt*02[Possessor] + *****c_pr_eru.txt*02[Priest - Eru] + *****c_pr_mand.txt*02[Priest - Mandos] + *****c_pr_man.txt*02[Priest - Manwe] + *****c_pr_ulmo.txt*02[Priest - Ulmo] + *****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] + *****c_stonewr.txt*02[Stonewright] + *****c_summon.txt*02[Summoners] + *****c_swordm.txt*02[Swordmasters] + *****c_symbia.txt*02[Symbiant] + *****c_trapper.txt*02[Trapper] + *****c_thaum.txt*02[Thaumaturgist] + *****c_unbel.txt*02[Unbeliever] + *****c_wainrid.txt*02[Wainrider] + *****c_warper.txt*02[Warper] + *****c_warrio.txt*02[Warrior] + *****rm_class.txt*01[Classical] + *****command.txt*99[Commands] + *****command.txt*116[Alteration commands] + *****command.txt*103[Command counts] + *****command.txt*111[Command descriptions ] + *****command.txt*129[Extras] + *****command.txt*123[Game status] + *****command.txt*128[Help] + *****command.txt*112[Inventory] + *****command.txt*121[Looking ] + *****command.txt*122[Messages] + *****command.txt*113[Movement] + *****command.txt*119[Object manipulation] + *****command.txt*100[Original keyset] + *****command.txt*126[Pref files] + *****command.txt*104[Repeating a command] + *****command.txt*114[Resting] + *****command.txt*101[Roguelike keyset] + *****command.txt*124[Saving and Exiting] + *****command.txt*115[Searching] + *****command.txt*102[Special keys] + *****command.txt*118[Spells and prayers] + *****command.txt*117[Terrain interaction] + *****command.txt*120[Throwing and missile weapons] + *****dungeon.txt*19[Companions] + *****birth.txt*43[Constitution] + *****m_convey.txt*02[Conveyance Magic] + *****corspoil.txt*01[Corruptions ] + *****c_clairv.txt*02[Clairvoyant] + *****c_archer.txt*03[Creating Ammo] + *****birth.txt*12[Creating a Character] + *****dungeon.txt*10[Cursed Objects] +~~~~~68 +*****/Dindex.txt*68[D] + *****attack.txt*09[Damage Effects] + *****r_drkelf.txt*01[Dark Elf] + *****c_pr_drk.txt*01[Dark Priest] + *****tome_faq.txt*29[Dark grey things are difficult to see] + *****debug.txt*99[Debug] + *****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] + *****rm_cabrog.txt*01[Caborrog] + *****rm_drarog.txt*01[Draugrog] + *****rm_hurog.txt*01[Hurog] + *****rm_limrog.txt*01[Limrog] + *****rm_lygrog.txt*01[Lygrog] + *****rm_narrog.txt*01[Narrog] + *****rm_rawrog.txt*01[Rawrog] + *****rm_sarnrog.txt*01[Sarnrog] + *****c_demono.txt*01[Demonologist] + *****m_demono.txt*02[Demonology Magic] + *****version.txt*01[Development history] + *****birth.txt*41[Dexterity] + *****birth.txt*56[Disarming traps] + *****birth.txt*37[Display] + *****m_divin.txt*02[Divination Magic] + *****r_dragon.txt*01[Dragon] + *****rm_black.txt*01[Black] + *****rm_blue.txt*01[Blue] + *****rm_ether.txt*01[Ethereal] + *****rm_green.txt*01[Green] + *****rm_red.txt*01[Red] + *****rm_white.txt*01[White] + *****r_druadan.txt*01[Druadan] + *****c_druid.txt*01[Druid] + *****r_dunad.txt*01[Dunedain] + *****dungeon.txt*02[Dungeons] + *****dungeon.txt*12[Doors] + *****dungeon.txt*06[In the dungeon] + *****dungeon.txt*11[Mining] + *****dunspoil.txt*01[Spoilers] + *****r_dwarf.txt*01[Dwarf] + *****dungeon.txt*15[Dying] +~~~~~69 +*****/Eindex.txt*69[E] + *****r_eagle.txt*01[Eagle] + *****m_earth.txt*02[Earth Magic] + *****r_easterl.txt*01[Easterling] + *****r_elf.txt*01[Elf] + *****r_ent.txt*01[Ent] + *****spoil_faq.txt*24[Erebor spoiler] + *****g_eru.txt*02[Eru] + *****g_eru.txt*03[Prayers] + *****c_pr_eru.txt*03[Priest - Eru] + *****experien.hlp*01[Experience] + *****explore.hlp*02[Exploring menu] +~~~~~70 +*****/Findex.txt*70[F] + *****tome_faq.txt*02[FAQ - Spoiler free] + *****spoil_faq.txt*02[FAQ - contains spoilers] + *****tome_faq.txt*13[Prophets] + *****fatespoi.txt*02[Fates ] + *****m_fire.txt*02[Fire Magic] + *****inscrip.txt*01[Floor Inscriptions ] + *****tome_faq.txt*28[Floor tiles displaying incorrectly] + *****tome_faq.txt*05[Fountains] + *****tome_faq.txt*24[Fumblefingers quests] +~~~~~71 +*****/Gindex.txt*71[G] + *****gambling.txt*01[Gambling] + *****tome_faq.txt*30[Game ] + *****c_geoman.txt*01[Geomancer] + *****m_geoman.txt*02[Geomancy spells] + *****r_gnome.txt*01[Gnome] + *****gods.txt*01[Gods] + *****tome_faq.txt*04[Altars] + *****g_aule.txt*01[Aule] + *****g_eru.txt*01[Eru] + *****g_mandos.txt*01[Mandos] + *****g_manwe.txt*01[Manwe] + *****g_melkor.txt*01[Melkor] + *****birth.txt*30[Piety] + *****tome_faq.txt*23[Quest - Spoilers] + *****g_tulkas.txt*01[Tulkas] + *****g_ulmo.txt*01[Ulmo] + *****g_varda.txt*01[Varda] + *****g_yavann.txt*01[Yavanna] + *****birth.txt*16[Gold] +~~~~~72 +*****/Hindex.txt*72[H] + *****c_hafted.txt*01[Haftedmaster] + *****r_hafelf.txt*01[Half-Elf] + *****r_hafogr.txt*01[Half-Ogre] + *****general.txt*01[Help] + *****explore.hlp*01[Exploring menu] + *****tome_faq.txt*01[FAQ - Spoiler free] + *****magic.hlp*02[Magic] + *****help.hlp*01[Main Menu] + *****newbie.hlp*01[New players] + *****spoil_faq.txt*01[Spoiled FAQ] + *****rm_herm.txt*01[Hermit] + *****r_hielf.txt*01[High-Elf] + *****r_hobbit.txt*01[Hobbit] + *****tome_faq.txt*12[Homes] + *****r_human.txt*01[Human] +~~~~~73 +*****/Iindex.txt*73[I] + *****tome_faq.txt*35[I STILL keep dying] + *****tome_faq.txt*31[I keep dying] + *****dungeon.txt*04[Identifying features] + *****birth.txt*66[Infra-vision] + *****birth.txt*35[Intelligence] + *****birth.txt*85[Inventory - starting info] + *****tome_faq.txt*32[Invisible character] +~~~~~75 +*****/Kindex.txt*75[K] + *****macrofaq.txt*44[Keymaps] + *****macrofaq.txt*46[Macro recorder] + +~~~~~76 +*****/Lindex.txt*76[L] + *****dungeon.txt*23[Light] + *****dungeon.txt*17[Loading old characters] + *****c_lorema.txt*01[Loremaster] + *****rm_lsoul.txt*01[Lost Soul] + *****luckspoi.txt*01[Luck ] +~~~~~77 +*****/Mindex.txt*77[M] + *****macrofaq.txt*43[Macros] + *****macrofaq.txt*45[Macro recorder] + *****c_mage.txt*01[Mage] + *****magic.txt*03[Magic] + *****m_air.txt*01[Air School] + *****m_convey.txt*01[Conveyance School] + *****m_demono.txt*01[Demonology School] + *****m_divin.txt*01[Divination School] + *****m_earth.txt*01[Earth School] + *****m_fire.txt*01[Fire School] + *****m_geoman.txt*01[Geomancy] + *****magic.hlp*01[Index] + *****birth.txt*27[Mana] + *****m_mana.txt*01[Mana School] + *****m_meta.txt*01[Meta School] + *****m_mimic.txt*01[Mimicry] + *****m_mind.txt*01[Mind School] + *****m_mindcr.txt*01[Mindcraft] + *****m_music.txt*01[Music] + *****m_nature.txt*01[Nature School] + *****m_necrom.txt*01[Necromancy] + *****magic.txt*01[Schools] + *****m_symbio.txt*01[Symbiosis] + *****m_tempo.txt*01[Temporal School] + *****m_thaum.txt*01[Thaumaturgy] + *****m_udun.txt*01[Udun School] + *****magic.txt*04[Wands and Staves] + *****m_water.txt*01[Water School] + *****birth.txt*58[Magical Devices] + *****r_maia.txt*01[Maia] + *****help.hlp*02[Main Menu] + *****m_mana.txt*02[Mana Magic] + *****g_mandos.txt*02[Mandos] + *****g_manwe.txt*02[Manwe] + *****g_manwe.txt*03[Prayers] + *****c_pr_man.txt*03[Priest - Manwe] + *****tome_faq.txt*14[Mathilde] + *****g_melkor.txt*01[Melkor] + *****c_pr_drk.txt*03[Dark Priests] + *****g_melkor.txt*03[Prayers] + *****c_mercen.txt*02[Mercenary] + *****m_meta.txt*02[Meta Magic] + *****c_mimic.txt*01[Mimic] + *****m_mimic.txt*02[Mimicry powers] + *****m_mind.txt*02[Mind Magic] + *****c_mindcr.txt*01[Mindcrafter] + *****m_mindcr.txt*02[Mindcraft powers] + *****dungeon.txt*13[Mining] + *****birth.txt*18[Money] + *****c_monk.txt*01[Monk] + *****c_monk.txt*03[Monk attacks] + *****dungeon.txt*05[Monsters] + *****attack.txt*02[Attacking] + *****attack.txt*07[Monster Memory] + *****dungeon.txt*20[Pets] + *****tome_faq.txt*08[They are talking to me] + *****m_music.txt*02[Music] +~~~~~78 +*****/Nindex.txt*78[N] + *****m_nature.txt*02[Nature Magic] + *****c_necro.txt*01[Necromancer] + *****m_necrom.txt*02[Necromancy Magic] +~~~~~79 +*****/Oindex.txt*79[O] + *****dungeon.txt*14[Objectives] + *****dungeon.txt*08[Objects] + *****dungeon.txt*21[Colour of inventory slot letter] + *****dungeon.txt*09[Cursed Objects] + *****tome_faq.txt*33[Piles] + *****option.txt*05[Options] + *****option.txt*16[Automatizer] + *****option.txt*15[Autosave] + *****option.txt*13[Base Delay Factor] + *****option.txt*18[Cheating] + *****option.txt*09[Disturbance] + *****option.txt*19[Dump] + *****option.txt*11[Efficiency] + *****option.txt*10[Game-play] + *****option.txt*14[Hitpoint Warning] + *****option.txt*07[Ingame] + *****option.txt*08[Interface] + *****option.txt*06[Startup] + *****option.txt*12[ToME Options] + *****option.txt*17[Window Flags] + *****r_orc.txt*01[Orc] +~~~~~80 +*****/Pindex.txt*80[P] + *****c_pacif.txt*02[Pacifist] + *****c_palad.txt*01[Paladin] + *****c_peacemag.txt*02[Peace-mage] + *****birth.txt*62[Perception] + *****dungeon.txt*18[Pets] + *****r_pettyd.txt*01[Petty Dwarf] + *****c_polear.txt*01[Polearmmaster] + *****c_posses.txt*01[Possessor] + *****c_posses.txt*03[Possessor powers ] + *****command.txt*105[Pref files] + *****command.txt*109[Colors] + *****command.txt*127[Commands] + *****command.txt*107[Keymaps] + *****command.txt*106[Macros] + *****command.txt*110[Options] + *****command.txt*108[Visuals] + *****c_pr_eru.txt*01[Priest - Eru] + *****c_pr_mandos.txt*0[Priest(Mandos)] + *****c_pr_man.txt*01[Priest - Manwe] + *****c_pr_ulmo.txt*0[Priest(Ulmo)] + *****c_pr_varda.txt*0[Priest(Varda)] + *****c_priest.txt*01[Priests] +~~~~~82 +*****/Rindex.txt*82[R] + *****birth.txt*04[Race Modifiers] + *****birth.txt*79[Ability table] + *****rm_barb.txt*02[Barbarian] + *****rm_class.txt*02[Classical] + *****rm_herm.txt*02[Hermit] + *****rm_lsoul.txt*02[Lost Soul] + *****rm_skel.txt*02[Skeleton] + *****rm_spec.txt*02[Spectre] + *****birth.txt*76[Stat Bonuses] + *****rm_vamp.txt*02[Vampire] + *****rm_zomb.txt*02[Zombie] + *****birth.txt*03[Races] + *****birth.txt*78[Ability table] + *****r_beorn.txt*02[Beorning] + *****birth.txt*67[Combinations with class] + *****r_drkelf.txt*02[Dark Elf] + *****r_demon.txt*02[Demon] + *****r_dragon.txt*02[Dragon] + *****r_dunad.txt*02[Dunadan] + *****r_dwarf.txt*02[Dwarf] + *****r_eagle.txt*02[Eagle] + *****r_easterl.txt*02[Easterling] + *****r_elf.txt*02[Elf] + *****r_ent.txt*02[Ent] + *****r_gnome.txt*02[Gnome] + *****r_hafelf.txt*02[Half-Elf] + *****r_hafogr.txt*02[Half-Ogre] + *****r_hielf.txt*02[High-Elf] + *****r_hobbit.txt*02[Hobbit] + *****r_human.txt*02[Human] + *****r_druadan.txt*02[Druadan] + *****r_maia.txt*02[Maia] + *****r_orc.txt*02[Orc] + *****r_pettyd.txt*02[Petty Dwarf] + *****r_rohank.txt*02[RohanKnight] + *****birth.txt*75[Stat Bonuses] + *****r_troll.txt*02[Troll] + *****r_wodelf.txt*02[Wood Elf] + *****r_yeek.txt*02[Yeek] + *****tome_faq.txt*26[Random quests are not working] + *****tome_faq.txt*36[Random quests strategy] + *****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] + *****birth.txt*52[Saving throw] + *****birth.txt*60[Searching] + *****birth.txt*63[Searching Ability] + *****birth.txt*61[Searching Frequency - Perception] + *****spoil_faq.txt*23[Secret Valley] + *****tome_faq.txt*09[Sentient weapons] + *****rm_skel.txt*01[Skeleton] + *****skills.txt*55[Skills] + *****skills.txt*27[Air] + *****m_air.txt*03[Air - Spell Info] + *****skills.txt*50[Antimagic] + *****c_unbel.txt*05[Antimagic powers] + *****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] + *****m_convey.txt*03[Conveyance - Spell Info] + *****skills.txt*44[Corpse-preservation] + *****skills.txt*04[Critical-Hits] + *****skills.txt*11[Crossbow-mastery] + *****skills.txt*52[Demonology] + *****m_demono.txt*03[Demonology - Spell Info] + *****skills.txt*16[Disarming] + *****skills.txt*31[Divination] + *****m_divin.txt*03[Divination - Spell Info] + *****skills.txt*20[Dodging] + *****skills.txt*28[Earth] + *****m_earth.txt*03[Earth - Spell Info] + *****skills.txt*25[Fire] + *****m_fire.txt*03[Fire - Spell Info] + *****skills.txt*60[Geomancy] + *****m_geoman.txt*03[Geomancy - Spell Info] + *****skills.txt*06[Hafted-mastery] + *****skills.txt*57[List of skills] + *****skills.txt*21[Magic] + *****skills.txt*54[Magic-device] + *****skills.txt*24[Mana] + *****m_mana.txt*03[Mana - Spell Info] + *****skills.txt*29[Meta] + *****m_meta.txt*03[Meta - Spell Info] + *****skills.txt*47[Mimicry] + *****m_mimic.txt*03[Mimicry - mimicry powers] + *****skills.txt*33[Mind] + *****m_mind.txt*03[Mind - Spell Info] + *****skills.txt*41[Mindcraft] + *****m_mindcr.txt*03[Mindcraft - Spell Info] + *****skills.txt*42[Monster-lore] + *****skills.txt*59[Music] + *****m_music.txt*03[Music - Song Info] + *****skills.txt*34[Nature] + *****m_nature.txt*03[Nature - Spell Info] + *****skills.txt*35[Necromancy] + *****m_necrom.txt*03[Necromancy - Spell Info] + *****skills.txt*07[Polearm-mastery] + *****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] + *****skills.txt*23[Sorcery] + *****skills.txt*22[Spell-power] + *****skills.txt*38[Spirituality] + *****skills.txt*19[Stealing] + *****skills.txt*15[Stealth] + *****skills.txt*53[Stunning-blows] + *****skills.txt*43[Summoning] + *****c_summon.txt*04[Summoning - Summoning powers] + *****skills.txt*03[Sword-mastery] + *****skills.txt*46[Symbiosis] + *****m_symbio.txt*03[Symbiosis - Symbiotic Powers] + *****skills.txt*32[Temporal] + *****m_tempo.txt*03[Temporal - Spell Info] + *****skills.txt*37[Thaumaturgy] + *****m_thaum.txt*03[Thaumaturgy - Spell Info] + *****skills.txt*48[Udun] + *****m_udun.txt*03[Udun - Spell Info] + *****skills.txt*26[Water] + *****m_water.txt*03[Water - Spell Info] + *****skills.txt*02[Weaponmastery] + *****c_sniper.txt*02[Sniper] + *****c_sorcer.txt*01[Sorceror] + *****rm_spec.txt*01[Spectre] + *****spoiler.hlp*01[Spoilers] + *****corspoil.txt*02[Corruptions] + *****dunspoil.txt*02[Dungeons] + *****fatespoi.txt*01[Fates] + *****inscrip.txt*02[Floor Inscriptions] + *****spoil_faq.txt*20[God Quest - directions] + *****spoil_faq.txt*22[God Quest - how many] + *****spoil_faq.txt*21[God Quest - relic] + *****spoil_faq.txt*07[Lothlorien Poisoned water quest] + *****luckspoi.txt*02[Luck] + *****wishing.txt*01[Wishing] + *****birth.txt*82[Stats] + *****birth.txt*71[Bonus table] + *****birth.txt*44[Charisma] + *****birth.txt*42[Constitution] + *****birth.txt*40[Dexterity] + *****birth.txt*14[Display] + *****birth.txt*06[Individual explanations] + *****birth.txt*33[Intelligence] + *****birth.txt*32[Strength] + *****birth.txt*36[Wisdom] + *****magic.txt*05[Staves] + *****birth.txt*54[Stealth] + *****c_stonewr.txt*0[Stonewright] + *****tome_faq.txt*17[Strange items] + *****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] + *****m_symbio.txt*02[Symbiosis Magic] + *****dungeon.txt*03[Symbols] +~~~~~84 +*****/Tindex.txt*84[T] + *****birth.txt*69[Tables] + *****birth.txt*74[Ability Tables] + *****birth.txt*70[Combinations of Race and Class] + *****c_monk.txt*04[Monk attacks] + *****birth.txt*72[Stat bonuses] + *****m_tempo.txt*02[Temporal Magic] + *****m_thaum.txt*02[Thaumaturgical Magic] + *****c_thaum.txt*01[Thaumaturgist] + *****whattome.txt*01[ToME - a General Description] + *****dungeon.txt*07[Town] + *****c_trapper.txt*02[Trapper] + *****r_troll.txt*01[Troll] + *****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] + *****g_ulmo.txt*02[Ulmo] + *****c_unbel.txt*01[Unbeliever] + *****c_unbel.txt*03[Antimagic] +~~~~~86 +*****/Vindex.txt*86[V] + *****rm_vamp.txt*01[Vampire] + *****g_varda.txt*02[Varda] + *****tome_faq.txt*16[Void jumpgates] + *****dungeon.txt*23[Void jumpgates] +~~~~~87 +*****/Windex.txt*87[W] + *****magic.txt*02[Wands] + *****c_wainrid.txt*02[Wainrider] + *****c_warper.txt*01[Warper] + *****c_warrio.txt*01[Warrior] + *****m_water.txt*02[Water Magic] + *****birth.txt*86[Weapons - starting info] + *****tome_faq.txt*27[Weird display] + *****dungeon.txt*1[Wilderness] + *****birth.txt*38[Wisdom] + *****r_wodelf.txt*01[Wood Elf] + *****tome_faq.txt*15[Wrists hurting] +~~~~~89 +*****/Yindex.txt*89[Y] + *****g_yavann.txt*01[Yavanna] + *****c_druid.txt*03[Druid] + *****g_yavann.txt*03[Prayers] + *****r_yeek.txt*01[Yeek] +~~~~~90 +*****/Zindex.txt*90[Z] + *****rm_zomb.txt*01[Zombie] diff --git a/lib/mods/theme/help/inscrip.txt b/lib/mods/theme/help/inscrip.txt new file mode 100644 index 00000000..517c81c2 --- /dev/null +++ b/lib/mods/theme/help/inscrip.txt @@ -0,0 +1,65 @@ +~~~~~01|Floor Inscriptions (spoiler) +~~~~~02|Spoilers|Floor Inscriptions +#####R=== Floor Inscriptions === + +It is possible to inscribe words on the floor in ToME. If you happen +to be lucky and inscribe a spell formula from another language, the inscription +will use the floor's mana to cast that spell when either you walk over it, a +monster walks over it, or both walk over it. Not all inscriptions are triggered +by monsters, and not all can be triggered by the player. + +In order to write an inscription in another language, you must first have found +and read a parchment with some of that language's words upon it. So, just +copying the inscriptions here won't work unless you have read the words on a +parchment first ;-). + +#####GLight up the Room +Inscription: 'ure nimir' (sun shine) +Parchment: Numenorean for Beginners (I) +Triggered by: Player, Monster. +Grid Mana Needed: 30 +Effect: Lights up the current room + +#####GDarkness in Room +Inscription: 'lomi gimli' (night stars) +Parchment: Numenorean for Beginners (II) +Triggered by: Player, Monster. +Grid Mana Needed: 10 +Effect: Casts the room into darkness + +#####GStorm +Inscription: 'dulgi bawiba' (black winds) +Parchment: Advanced Lessons of Numenorean +Triggered by: Player, Monster. +Grid Mana Needed: 40 +Effect: Electrical Ball of energy released around the inscription + +#####GProtection +Inscription: 'pedo mellon a minno' (say friend and enter) +Parchment: Advanced Lessons of Sindarin +Triggered by: Monster. +Grid Mana Needed: 8 +Effect: Prevents a monster from stepping on the affected square + +#####GDwarven summoning +Inscription: 'Baruk Khazad! Khazad aimenu!' (Axes of the Dwarves, the Dwarves + are upon you!) +Parchment: Khuzdul - The Hidden Tongue of the Dwarves +Triggered by: Player. +Grid Mana Needed: 100 +Effect: Generates friendly Dwarven Warriors to help your cause + +#####GOpen Chasm +Inscription: 'dunna hrassa' (black precipice) +Parchment: Nandorin for Dummies +Triggered by: Monster. +Grid Mana Needed: 50 +Effect: Creates a bottomless hole in the floor that monsters (and potentially + objects) fall down + +#####GBlast of Black Fire +Inscription: 'burz ghash ronk' (black fire pool) +Parchment: Advanced Lessons of Orcish +Triggered by: Player, Monster. +Grid Mana Needed: 60 +Effect: Releases a ball of Hellfire around the inscription diff --git a/lib/mods/theme/help/lua.hlp b/lib/mods/theme/help/lua.hlp new file mode 100644 index 00000000..ba61676a --- /dev/null +++ b/lib/mods/theme/help/lua.hlp @@ -0,0 +1,34 @@ +|||||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 new file mode 100644 index 00000000..000f4af5 --- /dev/null +++ b/lib/mods/theme/help/lua_gf.txt @@ -0,0 +1,45 @@ +|||||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 new file mode 100644 index 00000000..ccb87067 --- /dev/null +++ b/lib/mods/theme/help/lua_intr.txt @@ -0,0 +1,133 @@ +|||||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 new file mode 100644 index 00000000..9bb363c0 --- /dev/null +++ b/lib/mods/theme/help/lua_mon.txt @@ -0,0 +1,535 @@ +|||||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 new file mode 100644 index 00000000..6ab64ddb --- /dev/null +++ b/lib/mods/theme/help/lua_play.txt @@ -0,0 +1,1225 @@ +|||||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 new file mode 100644 index 00000000..c221a664 --- /dev/null +++ b/lib/mods/theme/help/lua_pow.txt @@ -0,0 +1,266 @@ +|||||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 new file mode 100644 index 00000000..1d4b9c65 --- /dev/null +++ b/lib/mods/theme/help/lua_ques.txt @@ -0,0 +1,299 @@ +|||||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 new file mode 100644 index 00000000..87385e5d --- /dev/null +++ b/lib/mods/theme/help/lua_skil.txt @@ -0,0 +1,342 @@ +|||||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 new file mode 100644 index 00000000..aa4a532b --- /dev/null +++ b/lib/mods/theme/help/lua_spel.txt @@ -0,0 +1,2150 @@ +|||||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 new file mode 100644 index 00000000..8886a2b4 --- /dev/null +++ b/lib/mods/theme/help/lua_util.txt @@ -0,0 +1,898 @@ +|||||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 |