From: <mar...@us...> - 2008-07-14 17:50:23
|
Revision: 7136 http://pcgen.svn.sourceforge.net/pcgen/?rev=7136&view=rev Author: maredudd800 Date: 2008-07-14 10:50:32 -0700 (Mon, 14 Jul 2008) Log Message: ----------- [LST File Class] HD and LEVEL conversion Issue#: 1938391 Modified Paths: -------------- Trunk/pcgen/docs/listfilepages/lstfileclass/lstfileclass_heading.html Added Paths: ----------- Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_converting_feats_to_abilities_1.html Removed Paths: ------------- Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_HD_LEVEL_conversion.html Deleted: Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_HD_LEVEL_conversion.html =================================================================== --- Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_HD_LEVEL_conversion.html 2008-07-14 17:45:58 UTC (rev 7135) +++ Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_HD_LEVEL_conversion.html 2008-07-14 17:50:32 UTC (rev 7136) @@ -1,230 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> - -<html> - <!-- - PCGen Documentation Project - - $Author: maredudd800 $ - $Date: 2007-10-22 15:06:52 -0400 (Mon, 22 Oct 2007) $ - $Revision: 4393 $ - - Contributors: - Eddy Anthony - eddybaATmindspringDOTcom - - Description: - Provides information on List files. - --> - <head> - <title>LST File Class</title> - <link rel="stylesheet" type="text/css" href="../../pcgen.css" > - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - </head> - - <body> - <h1>Lesson #18: .lst - Converting HD and LEVEL template tags</h1> - - <p>By Professor Eddy Anthony (MoSaT).</p> - - <p class="indent0"><strong>File(s) Covered:</strong> *template.lst</p> - - <p class="indent0"><strong>Tags used:</strong></p> - - <p class="indent1"><code> <a href="../datafilestagpages/datafilestemplates.html#HD">HD</a>, - <a href="../datafilestagpages/datafilestemplates.html#LEVEL">LEVEL</a>, - <a href="../globalfilestagpages/globalfilesprexxx.html#PREHD">PREHD</a>, - <a href="../globalfilestagpages/globalfilesprexxx.html#PRELEVEL">PRELEVEL</a>, - <a href="../globalfilestagpages/globalfilesprexxx.html#PREPCLEVEL">PREPCLEVEL</a>, - <a href="../datafilestagpages/datafilesraces.html#CR">CR</a>, - <a href="../globalfilestagpages/globalfilesother.html#DR">DR</a>, - <a href="../globalfilestagpages/globalfilesother.html#SA">SA</a>, - <a href="../globalfilestagpages/globalfilesother.html#SAB">SAB</a>, - <a href="../globalfilestagpages/globalfilesother.html#SR">SR</a>, - <a href="../globalfilestagpages/globalfilesother.html#ABILITY">ABILITY</a>, - <a href="../globalfilestagpages/globalfilesbonus.html#DR">BONUS:DR</a>, - <a href="../globalfilestagpages/globalfilesbonus.html#MISCCR">BONUS:MISC|CR</a>, - <a href="../globalfilestagpages/globalfilesbonus.html#MISCSR">BONUS:MISC|SR</a></code> - - <p class="indent1">The template tags HD and LEVEL are used in templates to grant - characters feats and abilities at specific levels based on the characters total - levels and is independent of any specific character classes. The HD tag is counted - against levels of Monster Classes and the LEVEL tag is counted against the characters - total levels from all classes. Both the HD and LEVEL tags provide the following - functions: granting Damage Reduction, granting additions to Challenge Rating - and Spell Resistance, granting Special Abilities and granting automatic feats.</p> - - <p class="indent1">Both of these tags have been around a long time and have been - problematic at times in the past. Recently much work has been done to standardize - the tags used in PCGen LST and these two tags stand out for not following the - more recent preferred syntax. For these reasons these two tags will likely be - deprecated in the future, as of version 5.14 they are still valid but may be - deprecated in the 5.15 line.</p> - - <p class="indent1">Fortunately as of version 5.14 all the functions provided by - these tags can be replicated with other tags using the latest syntax. This page - will show you how to convert each existing use of HD and LEVEL using different - tags with newer syntax.</p> - - <hr> - - <h3>HD and LEVEL Syntax</h3> - - <p>At it's core the HD and LEVEL tags are an older form of PRExxx tags, the HD - tag is a prerequisite for a specified number of monster levels and the LEVEL tag is a prerequisite - for the number of total levels the character has. Both of these tags can be - expressed with this syntax:</p> - - <p class="indent1"><code><Prerequisite>:<levels specified>:<Object granting tag>:<Object to be granted></code></p> - - <p>The more modern syntax which replaces this can be expressed in this way:</p> - - <p class="indent1"><code><Object granting tag>:<Object to be granted>|<Prerequisite>:<levels specified></code></p> - - <p>The function of the HD tag is replaced by the prerequisite tag - <a href="../globalfilestagpages/globalfilesprexxx.html#PREHD">PREHD</a> - and the function of the LEVEL tag is replaced by the prerequisite tag - <a href="../globalfilestagpages/globalfilesprexxx.html#PRELEVEL">PRELEVEL</a>.All - of the ranges that can be specified by the HD and LEVEL tags can be replicated - with the syntax that PREHD and PRELEVEL use as well as a good deal more because - of the flexibility these tags have. For example:</p> - - <p class="indent1"><code>HD:2+ </code> is now <code> PREHD:MIN=2</code></p> - - <p class="indent1"><code>HD:5-7 </code> is now <code> PREHD:MIN=5,MAX=7</code></p> - - <p class="indent1"><code>HD:1-10 </code> is now <code> PREHD:MAX=10</code></p> - - <p>The same syntax applies to LEVEL and PRELEVEL. In addition there is now a - <a href="../globalfilestagpages/globalfilesprexxx.html#PREPCLEVEL">PREPCLEVEL</a> - tag which is a prerequisite for the number of non-monster level the character - has. This is quite useful if you need a prerequisite based on the number of - character classes the character has regardless of the number of racial hitdice. - This is commonly used to regulate feats which can only be taken at first level - with PREPCLEVEL:MAX=1, if PRELEVEL:MAX=1 were used then an Ogre with no character - class level would not qualify because it has more than 1 levels total even though - they are all monster class levels.</p> - - <hr> - - <h3>CR (Challenge Rating)</h3> - - <p>All Characters have a CR value which is initially set by the CR tag is the - race line. A CR tag by itself in a template will add to this value. HD:x:CR:y - and LEVEL:x:CR:y will both add to the CR value at the levels specified. BONUS:MISC|CR|x - can be used to replace this function in both HD and LEVEL</p> - - <p class="indent1"><code>HD:2+:CR:3</code> is now <code>BONUS:MISC|CR|3|PREHD:MIN=2</code></p> - - <p class="indent1"><code>HD:1-10:CR:2</code> is now <code>BONUS:MISC|CR|2|PREHD:MAX=10</code></p> - - <p class="indent1"><code>LEVEL:5-7:CR:5</code> is now <code>BONUS:MISC|CR|5|PRELEVEL:MIN=5,MAX=7</code></p> - - <p>Keep in mind that CR is additive and there can be several way to express things, for example a template containing:</p> - - <p class="indent1"><code>HD:1-3:CR:2 <tab> HD:4-6:CR:3 <tab> HD:7+:CR:4</code></p> - - <p>Can be converted most literally as:</p> - - <p class="indent1"><code>BONUS:MISC|CR|2|MAX=3 <tab> BONUS:MISC|CR|3|PREHD:MIN=4,MAX=6 <tab> BONUS:MISC|CR|4|PREHD:MIN=7</code></p> - - <p>But can also be converted more economically as:</p> - - <p class="indent1"><code>CR:2 <tab> BONUS:MISC|CR|1|PREHD:MIN=4 <tab> BONUS:MISC|CR|1|PREHD:MIN=7</code></p> - - <hr> - - <h3>DR (Damage Reduction)</h3> - - <p>DR granted by the HD or LEVEL tags can also be handled directly by the - <a href="../globalfilestagpages/globalfilesother.html#DR">DR</a> - tag and the <a href="../globalfilestagpages/globalfilesbonus.html#DR">BONUS:DR</a> - tag since these both take PRExxx tags. There are two aspect to these tags which - need to be kept in mind, the first is that the DR tag does not stack with itself. - The second is that the BONUS:DR tag requires that the character must already - have a DR tag of the kind it will bonus or it will have no effect. This means - that if you have DR:5/Magic and DR:10/Magic from 2 different templates they - will not stack and you will only get the better of the two (in this case 10/Magic). - It also means that for the tag BONUS:DR|Magic|2 to have any effect you must - first have a DR:x/Magic tag.</p> - - <p class="indent1"><code>HD:2+:DR:10/+1</code> is now <code>DR:10/+1|PREHD:MIN=2</code></p> - <p class="indent1"><code>HD:1-10:DR:5/Cold Iron</code> is now <code>DR:5/Cold Iron|PREHD:MAX=10</code></p> - <p class="indent1"><code>LEVEL:5-7:DR:20/Silver</code> is now <code>DR:20/Silver|PRELEVEL:MIN=5,MAX=7</code></p> - - <hr> - - <h3>FEAT</h3> - - <p>Feats granted by the HD and LEVEL tags are automatic and do not adjust the - feat pool. Feats granted by the HD and LEVEL tags can be converted to the ABILITY - tag.</p> - - <p class="indent1"><code>HD:1-10:FEAT:Blind Fight</code> is now - <code>ABILITY:FEAT|AUTOMATIC|Blind Fight|PREHD:MAX=10</code></p> - - <p class="indent1"><code>LEVEL:5-7:FEAT:Alertness</code> is now - <code>ABILITY:FEAT|AUTOMATIC|Alertness|PRELEVEL:MIN=5,MAX=7</code></p> - - <p>The FEAT function of HD and LEVEL also supports TYPE.x which will trigger a - pop up window with a list of feats of type x. This is the only HD and LEVEL - function that will trigger a pop up window. The recommended method to replace - this function is to set up an ability pool so the feats can be manually selected. - See Lesson #17: .lst - <a href="lfc_lesson17_converting_feats_to_abilities.html">Converting - Feats to Abilities</a> for more detailed information on this subject.</p> - - <hr> - - <h3>SA (Special Ability)</h3> - - <p>The <a href="../globalfilestagpages/globalfilesother.html#SA">SA</a> tag is - deprecated, it's replacement is the <a href="../globalfilestagpages/globalfilesother.html#SAB">SAB</a> - tag. SA tags granted with HD and LEVEL should be converted to SAB tags with - the proper PRE tags.</p> - - <p class="indent1"><code>HD:1-10:SA:Banana toss</code> is now - <code>SAB:Banana toss|PREHD:MAX=10</code></p> - - <p class="indent1"><code>LEVEL:5-7:SA:Fire in the Hole</code> is now <code>SAB:Fire in the Hole|PRELEVEL:MIN=5,MAX=7</code></p> - - <hr> - - <h3>SR (Spell Resistance)</h3> - - <p>All Characters initially have an SR value of 0 which can then be raised by - the Global SR tag and the BONUS:MISC|SR|x tag. It is not necessary to have an - SR tag raise the value above 0 before you can use BONUS:MISC|SR|x to raise it - further unlike DR and data defined variables. HD:x:SR:y and LEVEL:x:SR:y will - both add to the SR value at the levels specified. BONUS:MISC|SR|x can be used - to replace this function in both HD and LEVEL</p> - - <p class="indent1"><code>HD:2+:SR:3</code> is now <code>BONUS:MISC|SR|3|PREHD:MIN=2</code></p> - - <p class="indent1"><code>HD:1-10:SR:2</code> is now <code>BONUS:MISC|SR|2|PREHD:MAX=10</code></p> - - <p class="indent1"><code>LEVEL:5-7:SR:5</code> is now <code>BONUS:MISC|SR|5|PRELEVEL:MIN=5,MAX=7</code></p> - - <p>Keep in mind that SR is additive and there can be several way to express things, for example a template containing:</p> - - <p class="indent1"><code>HD:1-3:SR:2 <tab> HD:4-6:SR:3 <tab> HD:7+:SR:4</code></p> - - <p>Can be converted most literally as:</p> - - <p class="indent1"><code>BONUS:MISC|SR|2|MAX=3 <tab> BONUS:MISC|SR|3|PREHD:MIN=4,MAX=6 <tab> BONUS:MISC|SR|4|PREHD:MIN=7</code></p> - - <p>But can also be converted more economically as:</p> - - <p class="indent1"><code>SR:2 <tab> BONUS:MISC|SR|1|PREHD:MIN=4 <tab> BONUS:MISC|SR|1|PREHD:MIN=7</code></p> - - <hr> - - <p>Eddy<br> - LST Chimp</p> - - <p> - <a href="http://validator.w3.org/check?uri=referer"> - <img src="../../images/system/valid-html401.png" alt="Valid HTML 4.01 Strict" height="31" width="88"> - </a> - </p> - -</body> - -</html> \ No newline at end of file Copied: Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_converting_feats_to_abilities_1.html (from rev 7132, Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson17_converting_feats_to_abilities.html) =================================================================== --- Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_converting_feats_to_abilities_1.html (rev 0) +++ Trunk/pcgen/docs/listfilepages/lstfileclass/lfc_lesson18_converting_feats_to_abilities_1.html 2008-07-14 17:50:32 UTC (rev 7136) @@ -0,0 +1,381 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> + + <head> + <title>LST File Class</title> + <link rel="stylesheet" type="text/css" href="../../pcgen.css"> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + + <body> + + <h1>Lesson #17: .lst - Converting Feats to Abilities, The Basic Conversion </h1> + + <p class="indent0">By Andrew A. Maitland (LegacyKing) and Eric C Smith (Maredudd)</p> + + <p class="indent0"><strong>File(s) Covered:</strong> + <span class="lstfile">*abilities.lst</span>, <span class="lstfile">*feat.lst</span>, + <span class="lstfile">*.pcc</span>, <span class="lstfile">*abilitycategory.lst</span>, + <span class="lstfile">miscinfo.lst</span></p> + + <p class="indent0"><strong>Tags used:</strong></p> + + <p class="indent1"> <code><a href="../datafilestagpages/datafilesability.html#CATEGORY2">CATEGORY(ability)</a>, + <a href="../globalfilestagpages/globalfilesprexxx.html">PREABILITY</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#ABILITY">ABILITY(pcc)</a>, + <a href="../datafilestagpages/datafilespcc.html#ABILITYCATEGORY">ABILITYCATEGORY(pcc)</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#ABILITYCATEGORY">ABILITYCATEGORY(ability category)</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#CATEGORY">CATEGORY(ability category)</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#PLURAL">PLURAL</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#EDITABLE">EDITABLE</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#EDITPOOL">EDITPOOL</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#FRACTIONALPOOL">FRACTIONALPOOL</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#POOL">POOL</a>, + <a href="../systemfilestagpages/globalfilesability.html#VISIBLE">VISIBLE</a>, + <a href="../systemfilestagpages/globalfilesdefine.html">DEFINE</a>, + <a href="../systemfilestagpages/gamemodemiscinfolist.html#TYPE">TYPE</a>, + <a href="../globalfilestagpages/globalfilesprexxx.html">PRESKILL</a>, + <a href="../globalfilestagpages/globalfilesprexxx.html">PREVARLT</a>, + <a href="../globalfilesother.html#DESC">DESC</a>, + <a href="../globalfilesbonus.html#VAR">BONUS:VAR</a></code></p> + <p></p> + +<hr> + + <h2>Introduction</h2> + <p class="indent0">Beginning with PCGen 5.12, and maturing in PCGen 5.14, the Ability + object has been available to the lst monkey as a more flexible tool than the existing + Feat object. Though it was originally conceived as a replacement for the Feat, it will + take quite some time before the Feat actually goes away, if it ever does.</p> + <p class="indent0">This lesson will assist users in converting their existing homebrew + feats to the new Ability object. To accomplish this, the lesson is broken into two + sections, the Basic Conversion and the Advanced Conversion. Within each of these + sections you will find discussion of each file that must be modified, and the tags + required to accomplish the conversion of your homebrew feats.</p> + <p class="sidebar1">NOTE: Standard practice in PCGen distributed datasets is to only use + the ability object for those abilities that had been implemented as hidden feats. + Feats listed in the sourcebooks as feats are implmented with the standard feat object.</p> + <p class="indent0">What this lesson will not tell you is how to create either Feats or + Abilities. Both are very similar in construction, using the same set of general tags + to provide the functionality required to implement varied game rules used. The primary + difference is that each "ABILITY" is assigned to a specific "CATEGORY". + This means that you can have several abilities with the same name, but each will be of a + separate category. The tags required to do this are covered below.</p> + <p></p> + + <h3>Sample Feat</h3> + <p class="indent0">The <span clss="lstobj">Expert Defense</span> hidden feat, included below, + will be used as our example in this LST file class.</p> + <p></p> + <p class="indent2"><code>Expert Defense</code></p> + <p class="indent2"><code>TYPE:Special</code></p> + <p class="indent2"><code>VISIBLE:NO</code></p> + <p class="indent2"><code>SAB:Expert Defense ~ Add % bonus to AC|INT</code></p> + <p class="indent2"><code>BONUS:COMBAT|AC|INT</code></p> + <p class="indent0">Note: This hidden feat has been created specifically for this LST File class.</p> + + <h3>Before We Begin</h3> + <h4>File Names</h4> + <p class="indent0">You will see several LST files referenced within this lesson. The + files names used are generic file names and do not represent what your files will need to + be called. The general convention used for official datasets within PCGen can be found in + the <a href="../../listfilepages/listfileLSTstandards.html">Official Release Standards</a>. + You are free to call your homebrew datasets by what name you will, though I find it helps + to include the object type contained within the file in the name of the file. For the + purposes of this LST File class, we will use the following file names: + <p class="indent1"><span class="lstfile">my_abilities.lst</span> file for the converted abilities.</p> + <p class="indent1"><span class="lstfile">my_abilitycategpries.lst</span> file for the new abilities categories.</p> + <p class="indent1"><span class="lstfile">my_campaign.pcc</span> file for the campaign pcc file.</p> + <p class="sidebar1">Note: You can name your homebrew files anything you wish as long as you + include them in the your homebrew PCC file.</p> + + <h4>LST File Class Style Guide</h4> + <p class="indent0">Because HTML formatting cannot exactly replicate what you would see in a LST + file we are going to use certain conventions to convey these ideas:</p> + <p class="indent1">1) Coding examples and PCGen tags are identified by <code>code</code> + style.</p> + <p class="indent1">2) When referencing a specific PCGen object, i.e. domain, feat, weapon, etc., + I have included the name as a <span class="lstobj">LST Object</span> text, except for when + the object is part of a <code>code</code> example.</p> + <p class="indent1">3) Each new line should be considered a <code><TAB></code> in the actual file.</p> + <blockquote> + <p class="indent1">Examples in this lesson will appear as:</p> + <p class="indent2"><code>ABILITYCATEGORY:My Special Ability Category</code></p> + <p class="indent2"><code>CATEGORY:Special Ability</code></p> + <p class="indent1">Will in the LST file appear as:</p> + <p class="indent2"><code>ABILITYCATEGORY:My Special Ability Category</code> <tab> <code>CATEGORY:Special Ability</code></p> + </blockquote> + + <h4>Special Note for the LST Student</h4> + <p class="indent0">Finally, for those of you that have gone through the previous LST Classes, some of + the global tags will be repetitive. feel free to skip those portions if you like. These + classes are being written for the new LST-Monkey, so there will be some overlap, but a + student of the classes does not need to take them in order.</p> + <p></p> + +<hr style="height:3px"> + + <h2>The Conversion</h2> + + <p class="indent0">The basic process of converting "Feats" to "Abilities" + is to create a new file called <span class="lstfile">my_abilities.lst</span> and then copy + the homebrew feats that you wish to convert to the new file and removing them from the + <span class="lstfile">my_feat.lst</span> file. You will then need to add the appropriate + <code>CATEGORY</code> tag to the copied feats, making sure that any new ability categories + are properly defined in the <span class="lstfile">my_abilitycategories.lst</span> file. + The next step is to modify your hombrew <span class="lstfile">my_campaign.pcc</span> file + by adding the <code>ABILITY</code> and <code>ABILITYCATEGORY</code> tags. The relevant files + and tags to acomplish this are explained below.</p> + <p></p> + +<hr> + + <h3>The Ability File</h3> + <p class="indent0">The <span class="lstfile">my_abilities.lst</span> file is where your converted + feats will be placed. Fortunately, the tags you use in this file are very similar to those + used in the <span class="lstfile">feat.lst</span> file. The major difference between these + two files is that you will need to add the <code>CATEGORY</code> tag to your converted feat + to make it an ability. To get an idea of how to build feats, you can look up + <a href="lfc_lesson12_feat1.html">LST File Class #12</a> and + <a href="lfc_lesson13_feat2.html">LST File Class #13</a>, Feat LST Classes Parts 1 and 2. + There will eventually be a LST FIle Class for Abilities so you can check back periodically + to see if its been released yet.</p> + <p></p> + +<hr> + + <h4><Ability Name></h4> + <p class="indent0">Every ability line must begin with the name of the ability. You can use + any name you prefer as long as it conforms to the standard requirements for feat names. + For our purposes in this class, we will be using the same name we used for our sample + feat. This means our new ability will be called <code>Expert Defense</code>.</p> + <p class="sidebar1">Note: You can have two abilities with the same name as long as they + are of different categories, i.e. the <code>CATEGORY</code> tag specifies a different + category for each ability.</p> + <p class="indent0"><strong>Example:</strong></p> + <p class="indent1"><code>Expert Defense</code></p> + <p class="indent2">Amazingly enough, our new ability has the same name as our old feat.</p> + <p></p + +<hr> + + <h4><code>CATEGORY:My Super Ability</code></h4> + <p class="indent0">This tag identifies the 'category' in which your new ability + will be placed. In the case of our example ability, we are placing it in the + <span class="lstobj">My Super Ability</span> category. Any category, besides + 'FEAT', must have been defined in the <span class="lstfile">miscinfo.lst</span> + or <span class="lstfile">abilitycategory.lst</span> file to be valid. See + "The Ability Category File" file below.</p> + <p class="sidebar1">Note: While abilitiy categories can be named whatever you decide upon, + when using the hardcoded <span class="lstobj">FEAT</span> category, you must use + all caps as that is the way it is hardcoded within PCGen.</p> + <p></p> + +<hr> + + <h4>Our New Ability</h4> + <p class="indent0">All other tags in our example feat are used as is in our new ability. The final + Ability object is shown below:</p> + <p></p> + <p class="indent2"><code>Expert Defense</code></p> + <p class="indent2"><code>CATEGORY:My Super Ability</code></p> + <p class="indent2"><code>TYPE:Special</code></p> + <p class="indent2"><code>VISIBLE:NO</code></p> + <p class="indent2"><code>SAB:Expert Defense ~ Add % bonus to AC|INT</code></p> + <p class="indent2"><code>BONUS:COMBAT|AC|INT</code></p> + <p></p> + +<hr style="height:3px"> + + <h3>The Ability Category File</h3> + + <p class="indent0">The <span class="lstfile">my_abilitycategories.lst</span> file defines + the various ability categories that an ability can be assigned to. These categories + will determine where, within the PCGen user interface, the related abilities will appear. + In general, they will appear in a sub-tab on the "Feats & Abilities" tag.</p> + <p class="indent0">There are a number of ability categories built into PCGen's various datasets, + all defined in either the loaded gamemode's <span class="lstfile">miscinfo.lst</span> file + or the loaded dataset's <span class="lstfile">abilitycategory.lst</span> file. For Homebrews, + you'll need to either use one of these existing ability categories or set up your own "Ability + Category", which in turn will create a separate "pool" with which to manage + your converted abilities. To demonstrate how this is done, we'll use the + <span class="lstobj">My Super Ability</span> category.</p> + <p></p> + +<hr> + + <h4><code>ABILITYCATEGORY:My Super Ability</code></h4> + <p class="indent0">The first entry in the ABILITYCATEGORY line is the name of the new + ability category which identifies the "ABILITYPOOL". This ability pool + governs how many abilities can be taken, if they cost anything at all. The + "ABILITYCATEGORY" tag is not strictly required as PCGen will take the + first data entry as the name of the ability category, and thus the ability pool, + but current PCGen standard practice is to include the tag.</p> + <p class="indent0">If this ability category is defines as "visible" (See the + "VISIBLE" tag below), any ability given this category will appear in the + "Feats & Abilities" tab under a sub-tab of the same name as this ability + category. In this case, <span class="lstobj">My Super Ability</span>.</p> + <p></p> + +<hr> + + <h4><code>CATEGORY:Special Ability</code></h4> + <p class="indent0">This is a 'super-category', or parent, to which our new ability category + belongs. This tag is optional but if included must list an existing ability category that + has been defined in either the <span class="lstfile">miscinfo.lst</span> or + <span class="lstfile">miscinfo.lst</span> file.</p> + <p></p> + +<hr> + + <h4><code>TYPE:Special</code></h4> + <p class="indent0">This is a TYPE, or list of types, assigned to abilities of this catgory. While some + types do not have an effect other than allowing additional filtering in the GUI, as is the case + with the type <span class="lstobj">Special</span>, there are a number of standard ability types + used within PCGen that effect PCGen in different ways. <span class="lstobj">SpecialQuality</span> + and <span class="lstobj">SpecialAttack</span> are used to determine where on the Output Sheet the + associated abilities will be placed. <span class="lstobj">FavoredEnemy</span>, + <span class="lstobj">RogueAbilities</span>, and <span class="lstobj">General</span> effect which + sub-tab the associated abilities will appear on in the PCGen GUI.</p> + <p class="indent0">A complete list of standard feat and ability types can be found on the + <a href="../globalfilestagpages/globalfilestype.html#Feat">Global TYPE</a> page.</p> + <p></p> + +<hr> + + <h4><code>PLURAL:My Super Abilities</code></h4> + <p class="indent0">This has to do with the internationalization. An example is: in_feats which sets the + Category key to 'in_feats'. It also shows up with the 'Plural' of the name. Ex. Feat would be Feats + (Feats would display in the drop down bar).</p> + <p></p> + +<hr> + + <h4><code>EDITABLE:NO</code></h4> + <p class="indent0">This defines whether a user can modify the abilities in the category. NO would be + appropriate for class abilities which aren't chosen by the user.</p> + <p></p> + +<hr> + + <h4><code>EDITPOOL:NO</code></h4> + <p class="indent0">This defines whether a user can modify the pool number or not. Each ability has a + 'cost' (Default is 1) if this option is set to 'NO' the user cannot add or subtract from the pool. + For feats, the default is 'YES'.</p> + <p></p> + +<hr> + + <h4><code>FRACTIONALPOOL:NO</code></h4> + <p class="indent0">This defines whether the pool must be a whole number or can be fractions. Some + abilities may have a cost less than '1' like .5 or .25. <YES / NO></p> + <p></p> + +<hr> + + <h4><code>POOL:0</code></h4> + <p class="indent0">This tag establishes the base ability pool for the defined ability category. + It will take a number, formula, or variable. If a variable is used, the variable <strong>MUST</strong> + be defined by a <code>DEFINE</code> tag. For our new ability category, we will start with an + ability pool of zero (0).</p> + <p></p> + +<hr> + + <h4><code>VISIBLE:NO</code></h4> + <p class="indent0">Defines whether this category is visible on the UI or hidden. Usefull for hidden + abilities and class abilities that require no interaction from the user. <Options are - YES, + NO, QUALIFY></p> + <p></p> + +<hr> + + <h4>DISPLAYLOCATION</h4> + <p class="indent0">The <code>DISPLAYLOCATION</code> is optioonal but will identify the sub-tab + upon which the associated abilities will be displayed. Examples of some standard locations + defined in the RSRD data set are "Class Abilities" and "Special Qualities and + Attacks". If it is not included the <code>PLURAL</code> taxt will be used instead.</p> + <p class="indent0">We will not be including this tag in our example ability category so you can + look for our converted abilities under the "My Special Abilities" sub-tab.</p> + <p class="indent0">Well, you could if we had not included the <code>VISIBLE:NO</code> tag in our + ability category entry.</p> + <p></p> + +<hr> + + <h4>Our New Ability Category</h4> + <p class="indent0">The new entry in <span class="lstfile">my_abilitycategories.lst</span> is shown below:</p> + <p></p> + <p class="indent2"><code>ABILITYCATEGORY:My Super Ability</code></p> + <p class="indent2"><code>CATEGORY:Special Ability</code></p> + <p class="indent2"><code>PLURAL:My Super Abilities</code></p> + <p class="indent2"><code>EDITABLE:NO</code></p> + <p class="indent2"><code>EDITPOOL:NO</code></p> + <p class="indent2"><code>FRACTIONALPOOL:NO</code></p> + <p class="indent2"><code>POOL:0</code></p> + <p class="indent2"><code>VISIBLE:NO</code></p> + <p></p> + +<hr style="height:3px"> + + <h3>The PCC File</h3> + <p class="indent0">PCGen will use our <span class="lstfile">my_campaign.pcc</span> file to identify + which source files to load as well as other information about the 'campaign'. Without these files + and the related information, PCGen would not be able to load any datafiles. For the purposes of + this lesson, there are only two tags we need to cover: The <code>ABILITY:my_abilities.lst</code> + tag and the <code>ABILITYCATEGORY:my_abilitycategories.lst</code> tag.</p> + <p class="indent0">PCGen will look in the <span class="lstfile">my_abilities.lst</span> file for our + newly converted abilities and in <span class="lstfile">my_abilitycategories.lst</span> file for + any new ability categories required to define the new abilities. These file references are relative + to the PCC file itself so if you provide no specific path beyond the file names, PCGen will look + in the same directory in which the pcc file is contained.</p> + <p class="indent0">There are three ways to call a file from an absolute location within the PCGen + installation. These are:</p> + <ol class="indent1"> + <li>The "at" symbol (@) will load the file from a path relative to the data folder. + (Example: <code>ABILITY:@/d20ogl/srd35/basics/rsrd_abilities_class.lst</code>)</li> + <li>The ampersand (&) will load the file from a path relative to the vendor data folder. + (Example: <code>ABILITY:&/complete_monkey/complete_monkey_abilities.lst</code>)</li> + <li>The asterisk (*) will load the file from a path relative to the vendor data folder and if that + does not exist, uses a path relative to the data folder. (Example: + <code>ABILITYCATEGORY:*/d20ogl/srd35/basics/rsrd_ability_categories_core.lst</code>)</li> + </ol> + <p class="indent0">More information about PCC files can be found in the + <a href="lfc_lesson01_pcc.html">PCC LST File Class</a>.</p> + <p></p> + +<hr style="height:3px"> + + <h2>Final Thoughts</h2> + + <p class="indent0">Unless you've made a new Ability Category, all feats converted to abilities will + show up on the 'Feats' tab as normal. Great examples of new ability categories can be seen in + the RSRD/SRD for the <span class="lstobj">Fighter</span>, <span class="lstobj">Wizard</span> + and <span class="lstobj">Rogue</span> class.</p> + <p class="indent0">Remember, miscinfo.lst is a gamemode file, to define new ability categories + or subcategories you MUST create it there. There are entries about them in the docs if you + want to read up on them. To call the ability file it's (as you guessed), ABILITY:ability.lst, + in the .pcc file. Basically pretend that an ability.lst is a feat file as far as what tags + you can use in it and you'll be ok (fair warning though, there may be exceptions to that + rule of thumb).</p> + <p class="indent0">You may continue to use + <a href="../globalfilestagpages/globalfilesprexxx.html#PREFEAT">PREFEAT</a> when + testing for the converted abilities as a prerequisite, as long as you use the + <code>CATEGORY:FEAT</code> tag, but it is recommended that you use + <a href="../globalfilestagpages/globalfilesprexxx.html#PREABILITY">PREABILITY</a> instead. + If you use any other category, e.g. <code>CATEGORY:MySpecialAbility</code> you MUST use the + <code>PREABILITY</code> tag to check for your new abilities as prerequisites.</p> + <p></p> + + <p class="indent0">Andrew<br> + LST Chimp</p> + +<hr> + + <p> + <a href="http://validator.w3.org/check?uri=referer"><img + src="../../images/system/valid-html401.png" + alt="Valid HTML 4.01 Strict" height="31" width="88"></a> + </p> + </body> +</html> Modified: Trunk/pcgen/docs/listfilepages/lstfileclass/lstfileclass_heading.html =================================================================== --- Trunk/pcgen/docs/listfilepages/lstfileclass/lstfileclass_heading.html 2008-07-14 17:45:58 UTC (rev 7135) +++ Trunk/pcgen/docs/listfilepages/lstfileclass/lstfileclass_heading.html 2008-07-14 17:50:32 UTC (rev 7136) @@ -90,11 +90,11 @@ <dd>Discusses the tags used to creating a basic "Domain".</dd> <dt><a href="lfc_lesson16_domains2.html">Lesson #16: The LST File - Advanced Domain Topics</a></dt> <dd>Discussing the tags used to add "Special Powers" to your domains.</dd> + <dt><a href="lfc_lesson17_HD_LEVEL_conversion.html">Lesson #17: Converting HD and LEVEL Template Tags</a></dt> + <dd>Discussing the tags used to implement the functionality of the deprecated HD and LEVEL template tags.</dd> <!-- - <dt><a href="lfc_lesson17_converting_feats_to_abilities.html">Lesson #17: Converting Feats to Abilities</a></dt> - <dd>Discussing the files and tags required to convert FEAT objects to ABILITY objects.</dd> - <dt><a href="lfc_lesson18_HD_LEVEL_conversion.html">Lesson #18: Converting HD and LEVEL Template Tags</a></dt> - <dd>Discussing the tags used to implement the functionality of the deprecated HD and LEVEL template tags.</dd> + <dt><a href="lfc_lesson18_converting_feats_to_abilities_1.html">Lesson #18: Feats to Abilities, The Basic Conversion</a></dt> + <dd>Discussing the files and tags required to convert the simpler FEAT objects to ABILITY objects.</dd> --> </dl> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |