SKILLS/EXPERIENCE DOCUMENTATION for PLAYERS. -------------------------------------------- - Summary - 0. Description of system 1. Using the new skills system a. new player commands b. learning a new skill c. about experience and skills d. starting skills by player profession 2. Appendices a. skills descriptions b. how stats are related to skills/experience c. Default parameters for skills d. Theory of Experience Gain 0.DESCRIPTION OF SKILLS/EXPERIENCE SYSTEM --------------------------------------- When crossfire is compiled with the ALLOW_SKILLS flag defined (in include/config.h) the new skills/experience system is enabled. Under this system the flow of play changes dramatically. Instead of gaining experience for basically just killing monsters (and disarming traps) players will now gain a variety of experience through the use of skills. Some skills replicate old functions in the game (cf. melee weapons skill, missile weapon skill) while others add new functionality (cf stealing, hiding, etc). One important aspect of this new system is the way in which experience is gained -- basically it is the philosophy that "you are what you do". A player who kills monsters with spells gains experience in casting destructive spells. A player who steals from creatures often will get better at stealing, and so on. The player's aptitude (eg stats) will influence the amount of experience gained. The new skills/experience system *is* compatible with older character files. See the skills_developers.doc for a more technical discussion of the skills/experience system. 1.USING THE NEW SKILLS SYSTEM --------------------------- a. New player commands Two new commands now exist in CF through which skills are utilized: 'skills' -- this command lists all the player's current known skills, their level of use and the associated experience category of each skill. 'use_skill ' -- this command changes the player's current readied skill. Generally, a player will use a skill by first readying the right one, with the 'use_skill' command and then making a ranged "attack" to activate the skill. Using most skills is just like firing a wand or a bow. In a few cases however, a skill can be used just by having it "readied". An example of this is the "bargaining" skill. To change to a new skill, a player will have to using the 'use_skill' command, but not always. The use of several common items will auto- matically change the player's current skill. Examples of this include readying a bow (which will cause the code to make the player's current skill "missile_weapons") or readying a melee weapon (current skill auto-matically becomes "melee weapons"). Also, some player actions can cause a change in the current skill. Running into a monster while you have a readied weapon in your inventory causes the code to auto- matically make our current skill "melee weapons". Casting a spell will cause the code to switch the current skill to "spellcasting" or "praying" (as appropriate to the spell type). It is not possible to use more than one skill at a time. b. Acquiring skills Skills may be gained in 2 ways. In the first, new skills may "learned". This is done by reading a "skill scroll" and the process is very similar to learning a spell. There is one big difference - all attempts to learn skills are successful. Note that skill scrolls are rarely named exactly for the skill they grant (ex "scroll of piety" is the skillscroll that grants the skill "praying" to the reader). The acquisition of a "skill tool" will also allow the player to use a new skill. An example of a skill tool is "lockpicks" (which allow the player to pick door locks). The player mearly applies the skill tool in order to gain use of the new skill. If the tool is unapplied, the player looses the use of the skill associated with the tool. == AVAILABLE SKILL TOOLS == Skill tool Skill gained ---------- ------------ Lockpicks Lockpicking Holy Symbol Praying Talisman Spellcasting Writing Pen Inscription After a new skill is gained (either learned or if player has an applied skill tool) it will appear on the player's skill roster (use the 'skills' command to view its status). If the new skill is related to a particular kind of experience, it will automatically be gained at the player's current level of experience in the appropriate category. c. About experience and skills Successful use of many skills will result in the player gaining experience. No special commands from the player are needed for this to occur. All gained experience is modified by the relevant stats for that skill and then the appropriate experience category automatically updated as needed. All players may gain experience in any of the experience categories irrespective of player class or stats. All new players start with zero experience in all experience categories. There are no inherent restrictions on player skill use--any player may use any acquired skill. How well a player uses a skill is related to their stats and their appropriate level of experience. For most skills both the chance of success and effect of the skill are tied to the player level of experience (eg 'melee weapons', 'stealing', 'writing', 'hiding', etc). But there are a smaller number of skills whose use will automatically be 'successful' with every attempt: (eg 'use magic item', 'bargaining', all miscellaneous skills and the 'identification skills': smithery, woodsman, alchemy, etc.), The default array of stats for associated skills is in Appendix B. d. starting skills by player profession All players start with the skills "melee weapons", "find traps", "use magic item" and "disarm traps". Under the current release of the skills system, further skills are parceled out as follows: Player profession Additional skills ----------------- ----------------- Barbarian Missile Weapons, Woodsman, Mountaineer Cleric Missile Weapons, Praying (holy symbol), Oratory Dwarf Missile Weapons, Smithery Elf Missile Weapons, Spellcasting (talisman), Bowyer, Woodsman Fireborn Missile Weapons, Spellcasting, Praying, Flame touch Human Missile Weapons, 2 Random skills Mage Missile Weapons, Spellcasting Monk Missile Weapons, Meditation, Karate, Sense Magic Ninja Missile Weapons, Jumping, Hiding Priest Praying, Spellcasting (talisman) Quetzalcoatl Missile Weapons, Spellcasting, Clawing Swashbuckler Missile Weapons, Stealing, Singing Thief Missile Weapons, Stealing, Lockpicking (lockpicks) Viking Missile Weapons, Bargaining Warrior Missile Weapons, Punching, Oratory Wizard Spellcasting, Praying (holy symbol) Wraith Spellcasting, Praying (holy symbol) 2.APPENDICES ---------- A. skills descriptions The following is the current (8/15/95) roster of skills and the description for each. Use the command 'crossfire -m5' to see the array of skills and experience in your version of crossfire. (Note: you need to have compilied with the DUMP_SWITCHES and ALLOW_SKILLS flags for this to work!) + -denotes a skill which monsters/NPC's may also use. Skill description ----- ----------- alchemy User can identify potions, containers, and amulets. (One day I would like to see this skill allow mixing of potions -b.t.). bargaining While this skill is readied the user has added Cha for purposes of purchase and selling of items only. Cha is never allowed to exceed 30. bowyer User can identify missile weapons and missiles. + clawing User can make a "bare-handed attack". Damage is based on the user's Str and level. find traps User can search (more effectively) for traps. Not a 'passive' skill, it is applied in order to gain the advantage in discovering traps. + flame touch User can make a "bare-handed attack". Damage is based on the user's Str and level. This is the default hand-to-hand fighting skill for the fireborn character class. + hide User enjoys limited form of invisibility. If they attack or move too much they become visible. Right now it is possible to hidden while next to hostile monsters. Not a reasonable feature! jeweler User can ident gems and rings that they hold. + jumping User can 'skip' over 1-2 spaces in a selected direction. Distance depends on weight carried, Str and Dex of the user. This skill may also be used as an attack. + karate User can make a "bare-handed attack". Damage is based on the user's Str and level. This attack is the fastest and (at higher levels) most deadly of the "hand to hand" attacks available. literacy User can ident books and scrolls that they hold. Since scrolls are currently always identified, this is not the greatest of skills. + lockpicking User may 'pick locks' (open doors). User needs to have readied some 'lockpicks' to use this skill. meditation Player can regain mana/hp at an accelerated rate. Player must first strip off encumbering armour however. This skill is only available to the 'monk' character class. melee weapons User may use hand-held weapons (eg swords, spears, mace, etc). One day this skill could be made to allow the player to make special attacks with various weapons. (For example, a disarming attack with Sai). missile weapons The user is allowed to make attacks with ranged weapons (eg bow, crossbow). mountaineer While the skill is readied, the possessor will move faster through "hilly" terrain (hills, mountains, etc.) oratory User may 'recruit' followers. Recruitees must be of lower level, and unaggressive to start. Use of this skill may anger the audience. Also, 'special' monsters are immune to recruitment. Success depends on User Cha and level. praying User is allowed to cast "cleric" spells. In addition, this skill may be used to accelerate the accumulation of grace. This skill may be either 'learned' or acquired through the use of a "holy symbol". + punching User can make a "bare-handed attack". Damage is based on the user's Str and level. This is the most feeble of the hth attacks. remove_traps User may remove previously discovered traps. sense curse User may discover whether items that he holds are 'cursed'. Controversial skill, may go away in later versions. sense magic User may discover whether items that he holds are 'magic'. Controversial skill, may go away in later versions. set traps Unimplemented. singing User may pacify hostile monsters with this skill. Certain kinds of monsters are immune. Success depends on user level and Cha. smithery User may ident arms and armour that they hold. Right now this is a powerful skill, and I am considering breaking it up into 2 ident skills in the future. spellcasting User is allowed to cast "wizard" spells. This skill may be acquired either through the use of a talisman or learned via a skill scroll. + stealing User can take items from the inventory of other monsters. thaumagragist User can ident rods, wands and horns that they are holding. throwing Unimplemented. use magic item User can use magic items like rods/wands/horns. Note that by default, you do not gain experience with this skill, and thus, you don't get experience for using rods/wands/horns to kill monsters. woodsman While the skill is readied, the possessor will move faster through "wooded" terrain (forest, grasslands, brush, jungle, etc.) writing User may rewrite spell scrolls with a previously known spell. Sp, time and an old scroll are needed. Backfire effects are possible. Only available as a 'writing pen'. b. how stats are related to skills/experience Table of how experience is modified by the the stats associated with a skill. Each skill which may 'generate' experience (the "associated skills") have a number of stats which are associated with them. Each time experience is gained by the player, the base value is modified according to the value of the player's stats associated with the skill in use. The effect of the modification is shown below (wherein all the associated stats have been taken as an average). Average of Base exp | Average of Base Exp assoc. stats multiplier| assoc. stats multiplier ------------- ----------|------------- ---------- 1 0.00 | 16 1.05 2 0.01 | 17 1.10 3 0.03 | 18 1.15 4 0.05 | 19 1.2 5 0.20 | 20 1.3 6 0.35 | 21 1.4 7 0.5 | 22 1.5 8 0.65 | 23 1.6 9 0.7 | 24 1.7 10 0.75 | 25 2.0 11 0.8 | 26 2.2 12 0.85 | 27 2.4 13 0.9 | 28 2.6 14 0.95 | 29 2.8 15 1.0 | 30 3.0 c. Default parameters for skills Table of stats associated w/ each skill. Miscellaneous skills never have any stats related to them. This is the default table. Your release of CF may have difference bindings between experience categories (ExpCat) and relevant stats may differ. Use the -m5 flag to investigate this for your version of CF. sk# Skill name ExpCat Time Base xlvl Stat1 Stat2 Stat3 --- ---------- ------ ---- ---- ---- ----- ----- ----- 0- stealing agility 0 25 2.5 Dex Int --- 1- lockpicking agility 0 10 0.5 Dex Int --- 2- hiding agility 0 5 1.5 Dex Int --- 3- smithery mental 5 1 0.5 Int Dex --- 4- bowyer mental 5 1 0.5 Int Dex --- 5- jewelry mental 5 10 1 Int Dex --- 6- alchemy mental 5 100 1 Int Dex --- 7- thaumaturgy mental 5 10 0.75 Int Dex --- 8- literacy mental 5 100 1.5 Int Dex --- 9- bargaining NONE 0 0 0 --- --- --- 10- jumping physique 0 0 2.5 Str Dex --- 11- sense magic magic 0 1 0 Pow Int --- 12- oratory personality 1 1 0.5 Cha Int --- 13- singing personality 1 1 0.5 Cha Int --- 14- sense curse wisdom 0 1 0 Pow Wis --- 15- find traps mental 0 3 2 Int Dex --- 16- meditation NONE 10 0 0 --- --- --- 17- punching physique 0 0 0 Str Dex --- 18- flame touch physique 0 0 0 Str Dex Int 19- karate physique 0 0 0 Str Dex --- 20- mountaineer NONE 0 0 0 --- --- --- 21- woodsman mental 0 1 0.5 Int Dex --- 22- inscription magic 0 1 5 Pow Int --- 23- melee weapons physique 0 1 0 Str Dex --- 24- missile weapons physique 0 1 0 Str Dex --- 25- throwing physique 0 1 0 Str Dex --- 26- spellcasting magic 0 0 0 Pow Int --- 27- disarm traps agility 0 10 0.5 Dex Int Str 28- set traps mental 5 3 2 Int Dex Str 29- use magic item NONE 0 0 0 --- --- --- 30- praying wisdom 0 0 0 Wis Pow --- 31- clawing physique 0 0 0 Str Dex --- In the above table, "skill name" refers to the name of the skill as used by the player, "expcat" refers to the name of the assoc- iated experience category, "time" is the number of 'ticks' re- quired to perform the skill, "base" is the base amount of exp given for successful use of the skill, "xlvl" is the level multi- plier to the amount of experience gained, and "stat1, stat2, stat3" are the associated stats for the skill. The values of these stats will be used to reference a multiplier (see preceding table) to the amount of gained experience. d. Theory of Experience Gain [excerpted from the code in skill_util.c, as if you can't tell :) ] /* calc_skill_exp() - calculates amount of experience can be gained for * successful use of a skill and returns value of the experience gain. * Here we take the view that a player must 'overcome an opponent' * in order to gain experience. Examples include foes killed combat, * finding/disarming a trap, stealing from some being, etc. * The gained experience is based primarily on the difference in levels, * exp point value of vanquished foe, the relevant stats of the skill being * used and modifications in the skills[] table. * * For now, monsters and players will be treated differently. Below I give * the algorithm for *PLAYER* experience gain. Monster exp gain is simpler. * Monsters just get 10% of the exp of the opponent. * * Example: the basic exp gain for player 'who' how "vanquished" opponent * 'op' using skill 'sk' is: * * EXP GAIN = (op->exp + skills[sk].bexp) * (1 + lvl_mult) * stat_mult * * where lvl_mult is * * for(pl->level <= op->level):: * lvl_mult = skills[sk].lexp * (op->level - pl->level) * for(pl->level > op->level):: * lvl_mult = (op_lvl/pl_lvl) - 1; * * and stat_mult is taken from stat_exp_mult[] table above. * * Coded by b.t. thomas@astro.psu.edu */