204 lines
8.6 KiB
TeX
204 lines
8.6 KiB
TeX
|
|
\chapter{Skills System}\index{skills}\index{experience}\label{chap:skills}
|
|
|
|
\section{Description}\index{skills, description}
|
|
|
|
Under the skills system the flow of play changes
|
|
dramatically\footnote{The skills system is enabled as the default option
|
|
as of version
|
|
0.92.0}$^{, }$\footnote{The new skills/experience system is compatible
|
|
with character files from at least version 0.91.1 onward.}.
|
|
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 (e.g. melee
|
|
weapons skill, missile weapon skill) while others add new functionality
|
|
(e.g. stealing, hiding, writing, etc). A complete list of the available
|
|
skills can be found in table \ref{tab:skill_stats}. Appendix \ref{app:skills}
|
|
contains descriptions for many of the skills.
|
|
|
|
\begin{table}
|
|
\begin{center}
|
|
\caption{Skills \label{tab:skill_stats}}\index{skills, list}\index{skills, associated}
|
|
\index{experience, categories}
|
|
\index{skills, miscellaneous}
|
|
\small
|
|
\vskip 12pt
|
|
\begin{tabular}{|clccccc|} \hline
|
|
& Skill & Experience Category & \multicolumn{3}{c}{Associated Stats} & \\
|
|
& & & (Stat 1) & (Stat 2) & (Stat 3) & \\ \hline\hline
|
|
& & & & & & \\
|
|
\input{skill_stat}
|
|
& & & & & & \\
|
|
\hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
|
|
\section{About experience and skills}\index{skills,
|
|
gaining experience}\index{experience}
|
|
|
|
\subsection{Associated and miscellaneous skills}
|
|
\index{skills, associated}\index{skills, miscellaneous}
|
|
|
|
In \cf\ two types of skills exist; The first kind, ``associated''
|
|
skills, are those skills which are {\em associated with a category of
|
|
experience}. The other kind of skill, ``miscellaneous'' skills,
|
|
are {\em not} related to any experience category.
|
|
|
|
The main difference between these two kinds of skills is in the
|
|
result of their use.
|
|
When associated skills are used {\em successfully} experience is
|
|
accrued in the experience category {\em associated with that skill}.
|
|
In contrast, the use of miscellaneous skills {\em never} gains
|
|
the player any experience regardless of the success in using it.
|
|
|
|
{\em Both} miscellaneous and associated skills can {\em fail}. This means
|
|
that the attempt to use the skill was unsuccessful. {\em Both}
|
|
miscellaneous and associated skills {\em can} have certain
|
|
primary stats {\em associated} with them. These associated stats can help
|
|
to determine if the use of a skill is successful and to what
|
|
{\em degree} it is successful.
|
|
|
|
All gained experience is modified by the associated
|
|
stats for that skill (table \ref{tab:skill_stats}) and then the
|
|
appropriate experience category automatically updated as needed.
|
|
|
|
\subsection{Restrictions on skills use and gaining experience}
|
|
\index{skills, restrictions}
|
|
|
|
Neither a character's stats nor the character class restricts the
|
|
player from gaining experience in any of the experience
|
|
categories. Also, there are no inherent
|
|
restrictions on character skill use$-$any player may
|
|
use any {\em acquired} skill.
|
|
|
|
\subsection{Algorithm for Experience Gain under the skills system}
|
|
|
|
Here we take the view that a player must 'overcome an opponent'
|
|
in order to gain experience. Examples include foes killed in combat,
|
|
finding/disarming a trap, stealing from some being, identifying
|
|
an object, etc.
|
|
|
|
Gained experience is based primarily on the difference in levels
|
|
between 'opponents', experience point value of a ``vanquished foe'',
|
|
the values of the associated stats of the skill being used and
|
|
two factors that are set internally\footnote{If you want to
|
|
know more about this, check out the skills\_developers.doc}.
|
|
|
|
Below the algorithm for experience gain is given where player ``pl''
|
|
that has ``vanquished'' opponent ``op'' using skill ``sk'':
|
|
\begin{quote}
|
|
EXP GAIN = (EXP$_{op}$ + EXP$_{sk}$) * lvl\_mul
|
|
\end{quote}
|
|
where EXP$_{sk}$ is a constant award based on the skill used,
|
|
EXP$_{op}$ is the base experience award for `op' which depends
|
|
on what op is (see below),
|
|
|
|
\noindent{For} level$_{pl}$ $<$ level$_{op}$::
|
|
\begin{quote}
|
|
lvl\_mult = FACTOR$_{sk}$ * (level$_{op}$ - level$_{pl}$)
|
|
\end{quote}
|
|
\noindent{For} level$_{pl}$ $=$ level$_{op}$::
|
|
\begin{quote}
|
|
lvl\_mult = FACTOR$_{sk}$
|
|
\end{quote}
|
|
\noindent{For} level$_{pl}$ $>$ level$_{op}$::
|
|
\begin{quote}
|
|
lvl\_mult = (level$_{op}/$level$_{pl}$);
|
|
\end{quote}
|
|
where level$_{op}$ is the level of `op', level$_{pl}$ is the level
|
|
of the player, and FACTOR$_{sk}$ is an internal factor based on
|
|
the skill used by pl.
|
|
|
|
There are three different cases for how EXP$_{op}$ can be computed:
|
|
\begin{quote}
|
|
1) {\bf op is a living creature}: EXP$_{op}$ is just the base
|
|
experience award given in the \spoiler . \\
|
|
|
|
2) {\bf op is a trap}: EXP$_{op} \propto$ 1/(the time for which the
|
|
trap is visible). Thus, traps which are highly {\em visible} get {\em lower}
|
|
values. \\
|
|
|
|
3) {\bf op is not a trap but is non-living}: EXP$_{op}$ = internal
|
|
experience award of the item. Also, the lvl\_mult is multiplied by
|
|
any {\tt magic} enchantment on the item.
|
|
\end{quote}
|
|
|
|
\section{How skills are used}\index{skills, how to use}
|
|
|
|
\begin{table}
|
|
\small
|
|
\caption{Skills commands}\label{tab:skill_cmd}
|
|
\vskip 12pt
|
|
\begin{center}
|
|
\begin{tabular}{|cllc|} \hline
|
|
& & & \\
|
|
& {\tt skills} & This command lists all the player's & \\
|
|
& & current known skills, their level & \\
|
|
& & of use and the associated experience & \\
|
|
& & category of each skill. & \\
|
|
& & & \\
|
|
& {\tt ready\_skill $<$skill$>$} & This command changes the player's & \\
|
|
& & current readied skill to {\tt $<$skill$>$}. & \\
|
|
& & & \\
|
|
& {\tt use\_skill $<$skill$>$ $<$string$>$} & This command changes the player's & \\
|
|
& & current readied skill {\em and} then & \\
|
|
& & executes it in the facing direction & \\
|
|
& & of the player. Similar in action to & \\
|
|
& & the {\tt invoke} command. & \\
|
|
& & & \\ \hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
Three player commands are related to skills use: {\tt ready\_skill},
|
|
{\tt use\_skill}, and {\tt skills} (see table \ref{tab:skill_cmd}).
|
|
Generally, a player will use a skill by first readying the right one,
|
|
with the {\tt ready\_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 is be used just by having it
|
|
{\em readied}. For example, the {\tt mountaineer} skill allows
|
|
favorable movement though hilly terrain while it is readied.
|
|
|
|
To change to a new skill, a player can use either the
|
|
{\tt use\_skill} or {\tt ready\_skill} commands, but note that the use of
|
|
several common items can automatically change the player's current
|
|
skill too. Examples of this include readying a bow (which will cause the
|
|
code to make the player's current skill {\tt missile\_weapons}) or readying
|
|
a melee weapon (current skill auto-matically becomes {\tt 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 automatically make our current skill {\tt melee weapons}.
|
|
As another example of this$-$casting a spell will cause the code to
|
|
switch the current skill to {\tt \spellcasting} or {\tt praying} (as appropriate
|
|
to the spell type).
|
|
|
|
It is not possible to use more than one skill at a time.
|
|
|
|
\section{Acquiring skills}\index{skills, learning}\index{skills, tools}
|
|
|
|
Skills may be gained in two ways. In the first, new skills may {\em learned}.
|
|
This is done by reading a ``skill scroll'' and the process is very similar
|
|
to learning a spell. Just as in attempts to learn \incantation s, success in
|
|
learning skills is dependent on a random test based on the learner's INT.
|
|
Using your INT stat, look in the learn\% column in table \ref{tab:pri_eff}
|
|
to find your \% chance of learning a skill. Once you hit 100\% you will
|
|
always be successfull in learning new skills.
|
|
|
|
The acquisition of a {\em skill tool} will also allow the player to use
|
|
a new skill. An example of a skill tool is ``lockpicks''\inputimage{lockpicks}
|
|
(which allow the
|
|
player to pick door locks). The player merely 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.
|
|
|
|
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 an associated
|
|
skill, then it will automatically be gained at the player's current level
|
|
in the appropriate experience category. For example, Stilco the Wraith,
|
|
who is 5th level in {\tt agility}, buys a set of lockpicks and applies them.
|
|
He may now use the skill lockpicking at 5th level of ability since that
|
|
is an {\tt agility} associated skill.
|