You can subscribe to this list here.
2006 |
Jan
|
Feb
(26) |
Mar
(493) |
Apr
(372) |
May
(131) |
Jun
(96) |
Jul
(87) |
Aug
(116) |
Sep
(68) |
Oct
(127) |
Nov
(158) |
Dec
(122) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(258) |
Feb
(148) |
Mar
(367) |
Apr
(202) |
May
(268) |
Jun
(182) |
Jul
(344) |
Aug
(324) |
Sep
(254) |
Oct
(264) |
Nov
(155) |
Dec
(169) |
2008 |
Jan
(266) |
Feb
(330) |
Mar
(371) |
Apr
(378) |
May
(259) |
Jun
(547) |
Jul
(319) |
Aug
(346) |
Sep
(198) |
Oct
(440) |
Nov
(230) |
Dec
(251) |
2009 |
Jan
(422) |
Feb
(344) |
Mar
(274) |
Apr
(70) |
May
(27) |
Jun
(86) |
Jul
(214) |
Aug
(158) |
Sep
(272) |
Oct
(235) |
Nov
(232) |
Dec
(155) |
2010 |
Jan
(147) |
Feb
(75) |
Mar
(93) |
Apr
(120) |
May
(317) |
Jun
(373) |
Jul
(324) |
Aug
(222) |
Sep
(274) |
Oct
(439) |
Nov
(358) |
Dec
(274) |
2011 |
Jan
(200) |
Feb
(167) |
Mar
(82) |
Apr
(159) |
May
(176) |
Jun
(120) |
Jul
(68) |
Aug
(85) |
Sep
(75) |
Oct
(40) |
Nov
(130) |
Dec
(106) |
2012 |
Jan
(254) |
Feb
(411) |
Mar
(274) |
Apr
(43) |
May
(136) |
Jun
(97) |
Jul
(64) |
Aug
(118) |
Sep
(465) |
Oct
(550) |
Nov
(424) |
Dec
(394) |
2013 |
Jan
(329) |
Feb
(289) |
Mar
(259) |
Apr
(236) |
May
(243) |
Jun
(379) |
Jul
(311) |
Aug
(296) |
Sep
(297) |
Oct
(422) |
Nov
(466) |
Dec
(254) |
2014 |
Jan
(364) |
Feb
(278) |
Mar
(208) |
Apr
(184) |
May
(248) |
Jun
(370) |
Jul
(396) |
Aug
(246) |
Sep
(156) |
Oct
(168) |
Nov
(331) |
Dec
(158) |
2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jde...@us...> - 2014-12-14 21:26:01
|
Revision: 25786 http://sourceforge.net/p/pcgen/code/25786 Author: jdempsey Date: 2014-12-14 21:25:58 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Tag release 6.04.01RC2 Added Paths: ----------- tags/release-6.04.01RC2/ Index: tags/release-6.04.01RC2 =================================================================== --- Trunk/pcgen 2014-12-14 20:39:39 UTC (rev 25785) +++ tags/release-6.04.01RC2 2014-12-14 21:25:58 UTC (rev 25786) Property changes on: tags/release-6.04.01RC2 ___________________________________________________________________ Added: bugtraq:url ## -0,0 +1 ## +http://jira.pcgen.org/browse/%BUGID% \ No newline at end of property Added: bugtraq:message ## -0,0 +1 ## +Issue#: %BUGID% \ No newline at end of property Added: svn:ignore ## -0,0 +1,32 ## +pcgen.log* +pcgen.exe +options.ini +pcgen.bat +settings +pcgen.jar +Test Data Set +1822-patch.patch +testsuite +*.txt +pcgen.sh +pcgen-tests.jar +.settings +antbuild +filter.ini +batch-convert.jar +mybuild.xml +filepaths.ini +config.ini +target +pcgen_low_mem.bat +vendordata +.gradle +build +repos +libs +pcgen-batch-convert.jar +variable_report.csv +variable_report.html +checkstyle-cachefile +autobuild.properties +svn.properties Added: bugtraq:number ## -0,0 +1 ## +false \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/sandbox/uisync:14608-15990 \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-14 20:39:47
|
Revision: 25785 http://sourceforge.net/p/pcgen/code/25785 Author: jdempsey Date: 2014-12-14 20:39:39 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Update version for release 6.04.01RC2 Modified Paths: -------------- branches/6.04.x/gradle.properties Modified: branches/6.04.x/gradle.properties =================================================================== --- branches/6.04.x/gradle.properties 2014-12-14 20:37:43 UTC (rev 25784) +++ branches/6.04.x/gradle.properties 2014-12-14 20:39:39 UTC (rev 25785) @@ -1 +1 @@ -version=6.04.01RC02-SNAPSHOT \ No newline at end of file +version=6.04.01RC2 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-14 20:37:46
|
Revision: 25784 http://sourceforge.net/p/pcgen/code/25784 Author: jdempsey Date: 2014-12-14 20:37:43 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Update version info for 6.4.1RC2 Modified Paths: -------------- branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties Modified: branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties =================================================================== --- branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties 2014-12-14 07:38:21 UTC (rev 25783) +++ branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties 2014-12-14 20:37:43 UTC (rev 25784) @@ -8,8 +8,8 @@ HeadCodeMonkey=Bryan McRoberts (Benevolent Dictator) # Version number should be x.y.z (e.g. 2.0.0) -VersionNumber=6.04.01 RC1 -ReleaseDate=12 December, 2014 +VersionNumber=6.04.01 RC2 +ReleaseDate=14 December, 2014 CodeMonkeys=B. K. Oxley (binkley), Jonas Karlsson, Matthew Woodard, Peter Kahle, Tim Dugger, Tom Epperly, Brian Forester, Mario Bonassin, Jason Buchanan, Mark Hulsmanand, Jerry Hill, Eric Statz, Kurt Wimmer, David Fallon, Tyler Bannister, Thomas Clegg, Greg Bingleman, Emily Smirle, Arcady, Thomas Behr, Ryan Koppenhaver, Jayme Cox, Scott Ellsworth, Chris Ryan, James Dempsey, Walter Duncan, Devon Jones, Felipe Diniz, Frugal, Richard Askham, David Hibbs, John Watson, Stefan Radermacher, Ross Lodge, Benjamin Pew, Brian Kuehn, Aaron Divinsky, Andrew Wilson, Brian Hoff, Tom Parker, Andriy Sen, Koen Van Daele, Tobias Wichtrey, Per Christian Henden, Connor Petty, Dan Parks, Jasper Spaans, Steven West (redwolf3), Michael Isaacson, Vincent Lhote, Javier A. Ortiz Bultron, Gabriel Sorrel TestMonkeys=Dave Cortijo, Martin Brabander, John Sussenberger, Stephen Gryphon, Richard O'Doherty-Gregg, Brad Stiles, Chris Andersen, Joseff, and many more. Andrew Maitland, David R. Bender, Patryk Adamski, Paul Grosse, ratbird32, Stefan Radermacher, Vincent Lhote and Henk Slaaf (UI Beta testers) ListMonkeys=Robert Hilson, KahnB, \u00C9ric Beaudoin (Space Monkey), Tir Gwaith (Andrew McDougall), Mynex (Rob Reed), Thomas Behr, Tom Deprez, Luc Hermitte, Matt Haffner, Hugo Perez, Michael Telford, Sean Kelly, Ashley McKay, Duane Moore, Tom Cowan, Clint Howarth, Gordon Vincent, Gary Silvers, Rob Bowell, Dan Young, Magus Knightcrawler, Lee Calabrese, Barak (Chris Chandler), Kevin W. Patterson (kwp), Jessica 'Artist Wench' Whiting, Wayne Crawford, oddballmage, Ian Dale, Joshua Nelson (DJ_Chair), Y2Krankor (Greg G), Paul W. King, Jeremy (Duo) Banks, dlm1065 (Doug McMillan), Paul Miller, Eric Beeckmans, Michael Gray (Taluonr Iscandar), Kenneth Walters (GldDragon35), Mike Sledge (zodar6), Patryk Adamski (Ruemere), Larry Davis (Sir George Anonymous), Thomas Jannes (chipoulou), Samuel Hendricks (NotMousse), Sigurdur H. Olafsson, Andargor the Wise, Beaver (Michael Beaver), Martin Fagerstr\u00F6m, Anders Lindgren (Blithwyn), Eddy Anthony (MoSaT), Darkon Turas, Emily Smirle, Aaron Divinsky, Frank Kliewe, Sean Silvamiramon, Stefan Radermacher, Andrew Maitland, Joe Frazier, Michael W. Fender (Fluxxdog), Arjan van Ginneken and many more. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-14 07:38:24
|
Revision: 25783 http://sourceforge.net/p/pcgen/code/25783 Author: jdempsey Date: 2014-12-14 07:38:21 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Release notes for 6.4.1 RC2 Added Paths: ----------- branches/6.04.x/installers/release-notes/pcgen-release-notes-60401RC2.html Added: branches/6.04.x/installers/release-notes/pcgen-release-notes-60401RC2.html =================================================================== --- branches/6.04.x/installers/release-notes/pcgen-release-notes-60401RC2.html (rev 0) +++ branches/6.04.x/installers/release-notes/pcgen-release-notes-60401RC2.html 2014-12-14 07:38:21 UTC (rev 25783) @@ -0,0 +1,636 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> + +<html lang="en"> + + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" > + <title>Release Notes for PCGen v6.4.1RC2</title> + <link rel="stylesheet" type="text/css" href="http://sourceforge.net/cssdef.php"> + </head> + + <body> + + <h1>Release Notes for PCGen v6.4.1RC2</h1> + + <h2>Table of Content</h2> + + <ul> + <li><a href="#WhatsNew">What's new for v6.4.1RC2</a></li> + <li><a href="#Installation">Installation</a></li> + <li><a href="#CustomDataSets">Custom Data Sets</a></li> + <li><a href="#Thanks">Thanks</a></li> + <li><a href="#WantToHelp">Want to Help?</a></li> + <li><a href="#links">Useful Links</a></li> + <li><a href="#ChangeLog">Change Log for 6.4.1RC2</a></li> + <li><a href="#ChangeLog641">Change Log for 6.4.1</a></li> + </ul> + + <h2><a name="WhatsNew">What's new for v6.4.1RC2</a></h2> + +<p>PCGen v6.04.1 RC2 is the second release candidate for our patch to PCGen 6.4. It represents a +product we believe is ready for production use and which we would like your assistance in testing +out. In particular the PCGen team would appreciate your feedback on importing your +characters and data from earlier versions of PCGen. +The highlights of the changes for PCGen 6.4.1 are listed below:</p> + +<h3>Notable Changes</h3> +<ul> +<li>Pathfinder Society Chronicle Sheets support</li> +<li>Numerous Pathfinder Society Organised Play improvements</li> +<li>Pathfinder Hero Points on the output sheets</li> +<li>SITUATION Skill penalties now displaying</li> +<li>Many Pathfinder Bestiary 3 fixes</li> +<li>Many Pathfinder and RSRD data fixes</li> +</ul> +<!-- +<p> +The new user interface does most of what you are used to, but does not currently provide +random NPC generation or LST editor functionality. +</p> + --> + +<h3>New Sources</h3> + +<p>The following new sources were added in 6.4.1</p> + +<ul> +<li>[Paizo] Pathfinder Campaign Setting: Lords of Chaos: Book of the Damned, Vol. 2</li> +<li>Pathfinder Society Organized Play Chronicle Sheets Boons and Equipment</li> +</ul> + + +<p> +For full details of the new changes in this release, see the <a href="#ChangeLog">Change Log</a> . +</p> +<p><i>James Dempsey</i> for the PCGEN Team -- 14 December, 2014.</p> + + <h2><a name="Installation">Installation</a></h2> + + <h3>Prerequisites</h3> + + <p>Java 6, Java 7 or Java 8. PCGEN 6.4.1RC2 is not compatible with Java 1.5.x and it is NOT SUPPORTED. + To get the latest version of Java, go to + <a href="http://jdl.sun.com/webapps/getjava/BrowserRedirect?locale=en&host=java.com">java.com</a>. + PCGen has been tested with both Java 6 (including OpenJDK) and Java 7.</p> + + <h3>Instructions</h3> + + <p>Please see the + <a href="http://www.pcgen-test.org/autobuilds/pcgen-docs/installationpages/installationpcgen.html"> + Installation Documentation</a> for information about installing PCGen. + </p> + + <h3>Read the doc!</h3> + + <p>Please make sure you read the <a href="http://www.pcgen-test.org/autobuilds/pcgen-docs/">docs</a> to + familiarize yourself with the changes. You can access it from + <strong>docs/index.html</strong> located in the PCGen directory.</p> + + <h3>Download PCGen</h3> + <ul> + <li><a href="http://prdownloads.sourceforge.net/pcgen/pcgen60401RC2_full.zip?download">pcgen60401RC2_full.zip</a>: <br /> + everything including GMGen and PDF</li> + <li><a href="http://prdownloads.sourceforge.net/pcgen/pcgen60401RC2_win_install.exe?download">pcgen60401RC2_win_install.exe</a>: <br /> + the full package bundle in an easy to use installer for Windows</li> + <li><a href="http://prdownloads.sourceforge.net/pcgen/pcgen60401RC2_mac_install.dmg?download">pcgen60401RC2_mac_install.dmg</a>: <br /> + the full package bundle in an easy to use installer for Mac (distributed as a disk image)</li> + </ul> + <p></p> + + <h2><a name="CustomDataSets">Custom Data Sets</a></h2> + + <p>If you have custom data created using either the old LST Editor, or the my_dataset example files, it is + very important that you read the + <a href="http://pcgen-test.org/autobuilds/pcgen-docs/installationpages/upgradepcgen.html">Upgrading PCGen</a> and + <a href="http://wiki.pcgen.org/Updating_Homebrew_Sets">Upgrading home brews</a> + before installing your new version of PCGen.</p> + + <h2><a name="Thanks">Thanks</a></h2> + + <p>Thanks to the following people who contributed to the PCGen 6.4.1 release: + + Andrew Maitland, David R Bender, Eric C Smith, Gjorbjond, Henk Slaaf, + James Dempsey, James Tranovich, John Mooney, Jon Catron, Mark Means, Paul Grosse, + Paul Shipley, Ryan Johnston, SecretWizard, Stefan Radermacher and Vincent Lhote. + </p><p> + Thanks also to the many people who gave us feedback, reported bugs, contributed to the lists and + helped other PCGen users out!</p> + + <h2><a name="WantToHelp">Want to Help?</a></h2> + + <p>PCGen is an open source project. Anyone who wants to contribute whether it is Java programming, data + set programming, documentation, helping new users, general cat herding, massage, walking the dogs, etc. + is very welcome.</p> + <p>If you want to help drop a mail to <a href="mailto:PR...@pc...">PR...@pc...</a> + or <a href="mailto:Co...@pc...">Co...@pc...</a>, or + simply post a message with the title <strong>"I Want To Help"</strong> in one of the mailing lists.</p> + + <p></p> + + <h2><a name="links">Useful Links</a></h2> + + <ul> + <li>The project <strong>home page</strong>:<br /> + <a href="http://pcgen.sourceforge.net">http://pcgen.sourceforge.net</a></li> + <li>The project <strong>Wiki</strong>:<br /> + <a href="http://pcgen.wiki.sourceforge.net/">http://pcgen.wiki.sourceforge.net/</a></li> + <li>The Yahoo <strong>main mailing list</strong> (for help and feedback):<br /> + <a href="http://groups.yahoo.com/group/pcgen">http://groups.yahoo.com/group/pcgen</a></li> + <li>The Yahoo <strong>LstHelp mailing list</strong> (for help with making your own data files):<br /> + <a href="http://groups.yahoo.com/group/PCGenListFileHelp">http://groups.yahoo.com/group/PCGenListFileHelp</a></li> + <li>The Yahoo <strong>pcgen_developers mailing list</strong> (for code monkey talk about the development):<br /> + <a href="http://tech.groups.yahoo.com/group/pcgen_developers/">http://tech.groups.yahoo.com/group/pcgen_developers/</a></li> + <li>The Yahoo <strong>pcgen_experimental mailing list</strong> (for the data monkeys with new ideas/problems):<br /> + <a href="http://groups.yahoo.com/group/pcgen_experimental/">http://groups.yahoo.com/group/pcgen_experimental</a></li> + </ul> + + <h2><a name="ChangeLog">Change Log for 6.4.1RC2</a></h2> + +<h3> Code Bug Fix +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2778'>CODE-2778</a>] - [Pathfinder] 0 level wizard prepared spells not shown in output +</li> +</ul> + +<h3> Data Bug Fix +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2236'>DATA-2236</a>] - Cleric Alternate Domain option Inquisitions not matching available domains +</li> +</ul> + +<h3> Output Sheet Bug Fix +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/OS-391'>OS-391</a>] - D20Pro unable to import from the csheet_fantasy_generic_export.xml +</li> +</ul> + + + + <h2><a name="ChangeLog641">Change Log for 6.4.1</a></h2> +<h3> New Data Sources +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/NEWSOURCE-179'>NEWSOURCE-179</a>] - [Paizo] Pathfinder Campaign Setting: Lords of Chaos: Book of the Damned, Vol. 2 +</li> +<li>[<a href='http://jira.pcgen.org/browse/NEWSOURCE-224'>NEWSOURCE-224</a>] - Pathfinder Society Organized Play Chronicle Sheets Boons and Equipment +</li> +</ul> + +<!-- +<h3> New Code Features +</h3> +<ul> +</ul> + --> + +<h3> New Data Features +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/DATA-304'>DATA-304</a>] - [SRD/RSRD] Alignment Kits to replace PREALIGN in Races +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-310'>DATA-310</a>] - Implement Reincarnation Capability +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-320'>DATA-320</a>] - [MSRD Future] Robot Weapon Finesse Feat Software +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-321'>DATA-321</a>] - [MSRD] Arcana, Via Negativa COST tag +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-329'>DATA-329</a>] - Clarify variables in various "Turn/Rebuke" abilities +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-394'>DATA-394</a>] - Implement HITDICEADVANCEMENTTOKEN fractions for creatures +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-410'>DATA-410</a>] - Spell weapons +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-416'>DATA-416</a>] - vampire clerics +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-645'>DATA-645</a>] - [Pathfinder] Ability to grab Damage Values from Unarmed Strike or Primary Natural Attacks +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-727'>DATA-727</a>] - [Ultimate Magic] Improved Eldritch Heritage Implementation +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-728'>DATA-728</a>] - [Ultimate Magic] Greater Eldritch Heritage Implementation +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1003'>DATA-1003</a>] - [Modern] Implement the house rule 'Use full spell description' and add the descriptions to the spells. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1043'>DATA-1043</a>] - Various small improvements for the eqmods +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1251'>DATA-1251</a>] - Ultimate Magic - Add ITEM:POTION to Qualifying Spells +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1291'>DATA-1291</a>] - [ARG] Improvisation and Improved Improvisation +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1311'>DATA-1311</a>] - Re-organize the Equipment TYPEs for Material Components, Spell Focus, Focus and Divine Focus. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1326'>DATA-1326</a>] - Ioun Stone in Wayfinder gives its bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1361'>DATA-1361</a>] - Bestiary 3- Please implement creature SLAs and put into offense statblock +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1465'>DATA-1465</a>] - [Pathfinder] ARG - Implement additional Favored Class Bonuses +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1723'>DATA-1723</a>] - Implement Ioun Stone Weapon Familiarity (Exotic to Martial) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1951'>DATA-1951</a>] - Separate pools for Rogue Talents and the Advanced Rogue Talents +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2013'>DATA-2013</a>] - Change Wizards Specialization School: Wizard to School:Universalist +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2064'>DATA-2064</a>] - Curse of the Crimson Throne Traits +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2078'>DATA-2078</a>] - Alternative Monk feat qualification +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2086'>DATA-2086</a>] - Implement Item Familiars (Unearthed Arcana, p.170) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2088'>DATA-2088</a>] - Assimar spell-like ability not qualifying as divine +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2093'>DATA-2093</a>] - PRESTAT bypass for Combat Feats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2101'>DATA-2101</a>] - Please implement Temp Modifier for Resist Energy +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2106'>DATA-2106</a>] - Pathfinder - Sorcerer - Bloodline Powers per Day +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2112'>DATA-2112</a>] - Clean up types used by Dagger (and alternatives) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2126'>DATA-2126</a>] - [PF] Use ASPECT:CombatBonus for Mobility feat and racial AC bonuses against giants +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2131'>DATA-2131</a>] - Pathfinder animal tricks number is wrong in some cases +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2150'>DATA-2150</a>] - [PFS] All modern Human languages available with high intelligence +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2152'>DATA-2152</a>] - Ability to name Race in ARG. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2160'>DATA-2160</a>] - Implement Tattoo Item Slots. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2161'>DATA-2161</a>] - Sylvan Scimitar - Grant special Cleave version. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2163'>DATA-2163</a>] - Unarmed Combat Training Ninja trick should give Improved Unarmed Strike feat +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2168'>DATA-2168</a>] - Factions only for PC and some NPC +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2174'>DATA-2174</a>] - Create new game mode for Pathfinder Society Organised Play +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2182'>DATA-2182</a>] - [PF] Temp Bonus - Defensive Stance, Alchemist Mutagen & Cognatogen +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2206'>DATA-2206</a>] - Implement: [APG] Mental Acuity bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2208'>DATA-2208</a>] - [Pathfinder] Inquisitions not coded for clerics and druids. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2213'>DATA-2213</a>] - Calculate Channel Positive Energy for Paladin Hospitaler Archetype +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2216'>DATA-2216</a>] - (PF/B3) Please implement Asura racial bonus on saves against enchantments +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2217'>DATA-2217</a>] - (PF) Bring Awakened template for Pathfinder +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2218'>DATA-2218</a>] - (PF/B3) Implement Legion Archon/Akvan/Valkyrie armor-related abilities +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2219'>DATA-2219</a>] - (PF/APG) Implement Master Spy Sneak Attack +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2221'>DATA-2221</a>] - (PF/UC) Implement Divine Strategist Master Tactician Ability +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2222'>DATA-2222</a>] - (PF/APG) Implement Master Spy Slippery Mind +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2223'>DATA-2223</a>] - (PF/APG) Implement Master Spy Death Attack +</li> +</ul> + +<h3> New Output Sheet Feature +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/OS-161'>OS-161</a>] - Move the 'companions' box onto the first sheet +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-188'>OS-188</a>] - Empty containers don't need to display weight of contents +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-382'>OS-382</a>] - Pathfinder - Hero Points +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-383'>OS-383</a>] - Support Method to correctly display Normal Max Rank values for systems that allow bypassing those maximums +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-389'>OS-389</a>] - Add new ability group for PFS Chronicle Sheets +</li> +</ul> + +<!-- +<h3> Modify Tokens +</h3> +<ul> + +</ul> + +<h3> New Token +</h3> +<ul> + +</ul> + --> + <!-- +<h3> New Docs Feature +</h3> +<ul> +</ul> + --> + +<h3> Code Bug Fixes +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2647'>CODE-2647</a>] - CLASSLIST= and DOMAINLIST= should not be PC dependent +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2650'>CODE-2650</a>] - Minor Magic Rogue Talent +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2722'>CODE-2722</a>] - PF - Minor Magic Rogue Talent cannot be picked +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2738'>CODE-2738</a>] - NPE on purchase tab when switching characters +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2746'>CODE-2746</a>] - (PF/3.5) CR of 1/3 or less always return 1/2 +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2766'>CODE-2766</a>] - SITUATION Skill penalties not displaying +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2768'>CODE-2768</a>] - (PF/B3) ArmorClassFacet:74 Invalid ACType Error Upon Choosing Certain Races +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2771'>CODE-2771</a>] - Error changing race when skills chosen +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2773'>CODE-2773</a>] - PCC INCLUDE operation reports errors for ignored .COPY objects +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2775'>CODE-2775</a>] - CHOOSE w/ two choices will not allow any removal or changes +</li> +<li>[<a href='http://jira.pcgen.org/browse/CODE-2778'>CODE-2778</a>] - [Pathfinder] 0 level wizard prepared spells not shown in output +</li> + +</ul> + +<h3> Data Bug Fixes +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/DATA-112'>DATA-112</a>] - [SSS] Relics & Rituals: Ritual Casting skill issue +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-610'>DATA-610</a>] - Buckler's (shield) -1 attack penalty is applied to all bonuses, not just to ones using two hands +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-946'>DATA-946</a>] - [Pathfinder] Arcane opposition schools not correct +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1264'>DATA-1264</a>] - Elven chain cost and weight +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1489'>DATA-1489</a>] - Deliquescent Gloves attack bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1618'>DATA-1618</a>] - Mindless Race Classes can't be toggled to gain INT - Skills or Feats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1699'>DATA-1699</a>] - [Pathfinder] Resizing is off for auto-equipped flurry of blows +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-1948'>DATA-1948</a>] - Race Builder System traits not displaying RP cost +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2016'>DATA-2016</a>] - Ranger Beast Master archetype - Implement multiple Companion selection for Boon Companion +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2042'>DATA-2042</a>] - Poison wrong for familiar Greensting Scorpion +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2049'>DATA-2049</a>] - APG - Swashbuckler (archetype) cannot select Combat Trick twice +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2050'>DATA-2050</a>] - [RSRD + UA] Cloistered Cleric Missing Cleric Spells +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2052'>DATA-2052</a>] - UC - Sohei cannot pick regular Monk bonus feats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2053'>DATA-2053</a>] - UC - Sohei Weapon Training +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2054'>DATA-2054</a>] - UC - Sohei Devoted Guardian not adding Initiative +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2058'>DATA-2058</a>] - (Pathfinder Society) Pistol has no equipment stats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2059'>DATA-2059</a>] - Shapeshifter (Ranger Archetype) receiving too many Shifter's Blessing +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2060'>DATA-2060</a>] - Catfolk Cat's Claws not available for selection with Improved Natural Attack from Ranger Combat Style +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2061'>DATA-2061</a>] - Shapeshifter (Ranger archetype) Master Shifter not as intended +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2066'>DATA-2066</a>] - Cannot load MP-Eldritch Might without Monster Manual +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2067'>DATA-2067</a>] - Paladin missing changes by Empyreal Knight Archetype +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2068'>DATA-2068</a>] - Advanced Players Guide - Weapons not receiving Weapon Training bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2070'>DATA-2070</a>] - Cannon not a Siege Weapon? +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2071'>DATA-2071</a>] - Items that should not be in the Core Rulebook +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2072'>DATA-2072</a>] - Desecrate HP bonus does not apply to class levels +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2073'>DATA-2073</a>] - Pathfinder - Dragon Disciple - Prereq bug +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2075'>DATA-2075</a>] - RSRD - Turning variables missing +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2076'>DATA-2076</a>] - Darwin's World 2 not displaying Feats & Abilities +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2077'>DATA-2077</a>] - Brawler Fighter Archetype - Unarmed Strikes not receiving Close Combatant bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2079'>DATA-2079</a>] - Animal Lord Alignment restriction is wrong +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2080'>DATA-2080</a>] - Animal Lord ability bonuses not calculated correctly (Endless null loop) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2081'>DATA-2081</a>] - Paladin Energy resistance not allowing you to chose the same type more then once +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2082'>DATA-2082</a>] - Unicorn alignment restriction +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2083'>DATA-2083</a>] - PF - Sorc/Celestial Bloodline/Heavenly Fire - Times per Day fix +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2087'>DATA-2087</a>] - Duplicate Race Traits abilities +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2089'>DATA-2089</a>] - Arcane Trickster's Ranged Legerdemain is not limited in Pathfinder +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2091'>DATA-2091</a>] - Paladin/Hospitaler not viewed as having channel positive energy. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2092'>DATA-2092</a>] - OOG Traits overriding APG traits +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2094'>DATA-2094</a>] - UE modifies the weight of Mithral <xxx> and gives wrong value. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2095'>DATA-2095</a>] - [Pathfinder] Power Attack does not respect Monk "lvl" BAB for Flurry +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2096'>DATA-2096</a>] - Enlarge Person increases damage size for flurry by two +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2098'>DATA-2098</a>] - Misspelled 'Rogue Arcehtype ~ Pirate' correction to 'Archetype' causing migration issue upon load +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2099'>DATA-2099</a>] - Barbarian Extreme Endurance choice not shown on output +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2100'>DATA-2100</a>] - [Pathfinder] Stonelord needs TYPE.PaladinSpells Archetype +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2102'>DATA-2102</a>] - [Dreamscarred Press] Vitalist Mender bugs +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2103'>DATA-2103</a>] - Bardic Music missing DEFINE to grant higher level Bard Music sub-abilities. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2105'>DATA-2105</a>] - Specialized prestige award that gives +1 not available +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2108'>DATA-2108</a>] - Incorrect values for vermin familiars +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2111'>DATA-2111</a>] - Lormaster missing class abilities +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2113'>DATA-2113</a>] - Wave Warden - Ranger archetype cannot pick bonus feats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2115'>DATA-2115</a>] - PF/APG - Magical Talent Trait not functioning properly +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2116'>DATA-2116</a>] - [UE] Headband of Aerial Agility has wrong Stat Bonused +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2119'>DATA-2119</a>] - Can't target oracle Channel-ish revelations with 'Extra Channel' feat +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2120'>DATA-2120</a>] - Hexcrafter Magus Archetype not bonusing the VAR WitchHexAbilityLVL with MagusLVL - is using WitchLVL. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2121'>DATA-2121</a>] - Skill specialization bonus type should be competence +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2122'>DATA-2122</a>] - Caustic Eruption secondary damage effect description missing 'd6' +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2123'>DATA-2123</a>] - (PF/Psionics Unleashed) Psion Not Receiving Discipline Granted Class Skills +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2124'>DATA-2124</a>] - (Pathfinder) System for SIZE settings not applying changes if size decreases +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2125'>DATA-2125</a>] - (Pathfinder) Elemental Bloodline not granting Burning Hands or Scorching Ray +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2129'>DATA-2129</a>] - Pathfinder UM Vermin Animal Companions are not working +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2133'>DATA-2133</a>] - (PF Bestiary III) Contract Devil Not Proficient in Binding Contract +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2134'>DATA-2134</a>] - (PF APG) Prestige Class Ability Descriptions Are Blank +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2136'>DATA-2136</a>] - (PF) Young Creature template applies incorrect ability score modifiers +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2137'>DATA-2137</a>] - (PF- Psionics Expanded/Psionics Unlimited) Vitalist Knacks are all Guardian Knacks +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2138'>DATA-2138</a>] - (PF/APG) Antipaladin Abilities Have Incomplete Descriptions +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2139'>DATA-2139</a>] - (PF/APG) Stalwart Defender DR is 0 +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2141'>DATA-2141</a>] - Contract Devil Binding Contract Weapon not implemented correctly +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2142'>DATA-2142</a>] - (Ultimate Psionics/Psionics Unleashed) Psicrystal shows no skills +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2143'>DATA-2143</a>] - (Psionics Unleashed) Psicrystal hp reads 0 +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2144'>DATA-2144</a>] - (Psionics Unleashed) Psicrystal has no ability progression +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2146'>DATA-2146</a>] - Feats for Animal Companions set to old standard, fix B1 Feats +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2147'>DATA-2147</a>] - Pathfinder Inquisitor Determination Choice +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2149'>DATA-2149</a>] - (PF/APG) Nighteye darkvision does not show up on statblock_pathfinder.html.ftl +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2151'>DATA-2151</a>] - The Warrior Priest feat should also be available to standard Inquisitors. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2154'>DATA-2154</a>] - No sneak attack dice for the vivisectionist archetype of alchemist. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2155'>DATA-2155</a>] - Arcane Talent feat does not allow choice of a spell as described. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2156'>DATA-2156</a>] - (PF/Bestiary III) Hellwasp Swarm Not Intelligent +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2158'>DATA-2158</a>] - (PF/Bestiary III) Legion Archon Not Receiving Proficiency in Armor +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2159'>DATA-2159</a>] - DEFINE: non-zero values in Ultimate Psionics +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2162'>DATA-2162</a>] - Discovery (Immortality) feat does not affect age penalties +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2164'>DATA-2164</a>] - Purity of Faith should give +1 trait to will save +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2169'>DATA-2169</a>] - (Pathfinder Bestiary III) Missing Armor Proficiencies for some monsters +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2170'>DATA-2170</a>] - (Pathfinder/Bestiary III) Missing weapon proficiencies for some monsters +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2171'>DATA-2171</a>] - (PF/Bestiary III) Some monsters treated as wearing armor when none equipped +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2172'>DATA-2172</a>] - (PF/B3) The valkyrie should have 16 Hit dice, not 6 +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2173'>DATA-2173</a>] - (PF/Bestiary 3) % needs to be double - and %%% is overkill. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2177'>DATA-2177</a>] - Can't create custom cloaks +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2178'>DATA-2178</a>] - (PF/Psionics Expanded) Error message when Psionics Expanded is clicked on Advanced Source Selection Screen +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2179'>DATA-2179</a>] - (PF/Psionics UnleashedExpanded) Error messages appear when PU is loaded as a source in PF mode +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2181'>DATA-2181</a>] - (PF/B3) Sapphire Jellyfish Special Abilities/Special Attacks Don't Appear +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2183'>DATA-2183</a>] - (PF/B3) Many Universal Monster Abilities Don't Appear +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2184'>DATA-2184</a>] - (PF/B3) Incorrect Regeneration for Gorynych and Oni +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2185'>DATA-2185</a>] - (PF/B3) Abilities associated with B3 subtypes aren't appearing +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2186'>DATA-2186</a>] - (PF/B3) Outsider Missing Class Skills +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2187'>DATA-2187</a>] - (PF/B3) Some errors in listed natural attacks for several monsters +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2188'>DATA-2188</a>] - (PF/B3) Monster bonus feat corrections +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2189'>DATA-2189</a>] - [PFB] Dretch has incorrect languages +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2190'>DATA-2190</a>] - (PF) Weeding out Ability BENEFITS +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2191'>DATA-2191</a>] - (PF/B3) Incorrect Shinigami Int bonus of +16 (Should be +6) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2192'>DATA-2192</a>] - (PF/B3) Clockwork Goliath cannon not equippable as weapon/doesn't show attack/damage bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2194'>DATA-2194</a>] - (PF/B3) Asura (Upsunda) missing +3 natural armor bonus +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2195'>DATA-2195</a>] - (PF/B3) Shaggy Demodand Fly Speed is 5 ft. (Should be 50 ft.) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2196'>DATA-2196</a>] - Magical Talent incorrect DC +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2198'>DATA-2198</a>] - Brawling armor ability bonus doesn't apply +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2199'>DATA-2199</a>] - Agile breastplate adding incorrect bonus to climb and jump +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2200'>DATA-2200</a>] - (PF/B3) Racial Skill Bonus Corrections +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2201'>DATA-2201</a>] - (PF/B3) Asuras and Behemoths need SR set to CR+11 +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2202'>DATA-2202</a>] - biosettings errors and expansions (with patch) +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2205'>DATA-2205</a>] - Setting Specific language for core should default to avoid confusion +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2207'>DATA-2207</a>] - (PF/B3) Nuckelavee missing racial ability score modifiers +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2214'>DATA-2214</a>] - (PF/APG) Several (sub)domain spell variants appear on normal spell lists +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2215'>DATA-2215</a>] - (PF/B3) Globster missing Electricity Resistance 10 +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2220'>DATA-2220</a>] - (PF/APG) Masterspy Sneak Attack Progresses Too Quickly +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2224'>DATA-2224</a>] - (PF/Bonus Bestiary) LSTErrors Upon Load of Bonus Bestiary +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2225'>DATA-2225</a>] - (PF) 10th level rogue can't take advanced talents in PCGen +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2226'>DATA-2226</a>] - (PF) Slippery Mind gives one too many extra chances +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2227'>DATA-2227</a>] - Shadow Assassin not able to select shadow style/talents +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2228'>DATA-2228</a>] - Multiple creatures with invalid die parser 1d0 in natural attacks tag. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2229'>DATA-2229</a>] - Broken condition calculation affecting BASECOST not total COST. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2233'>DATA-2233</a>] - Disable Device (Traps) calculated incorrectly +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2234'>DATA-2234</a>] - [Pathfinder] Oracle Revelations that grant armor have incorrect bonus formula. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2235'>DATA-2235</a>] - Bomb damage incorrect for Alchemist Archetypes with Reduced Bomb Damage. +</li> +<li>[<a href='http://jira.pcgen.org/browse/DATA-2236'>DATA-2236</a>] - Cleric Alternate Domain option Inquisitions not matching available domains +</li> +</ul> + +<!-- +<h3> Documentation Bug Fixes +</h3> +<ul> + +</ul> + --> + +<h3> Output Sheet Bug Fixes +</h3> +<ul> +<li>[<a href='http://jira.pcgen.org/browse/OS-370'>OS-370</a>] - Checkboxes not appearing for clerics +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-371'>OS-371</a>] - Spell List Only pdf output is blank +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-372'>OS-372</a>] - PF - Paladin not exporting Channeling Block +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-376'>OS-376</a>] - Character Preview Ranged Attack Block A Few Pixels Too Wide +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-378'>OS-378</a>] - Pathfinder PDF shows incorrect negative in "Misc" column for CMB +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-388'>OS-388</a>] - Error when previewing character sheet +</li> +<li>[<a href='http://jira.pcgen.org/browse/OS-391'>OS-391</a>] - D20Pro unable to import from the csheet_fantasy_generic_export.xml +</li> +</ul> + + </body> +</html> \ No newline at end of file Property changes on: branches/6.04.x/installers/release-notes/pcgen-release-notes-60401RC2.html ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-14 06:01:50
|
Revision: 25782 http://sourceforge.net/p/pcgen/code/25782 Author: jdempsey Date: 2014-12-14 06:01:46 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix bug: [Pathfinder] 0 level wizard prepared spells not shown in output - Backport to 6.04 branch Issue#: CODE-2778 Modified Paths: -------------- branches/6.04.x/code/src/java/pcgen/core/PlayerCharacter.java Modified: branches/6.04.x/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- branches/6.04.x/code/src/java/pcgen/core/PlayerCharacter.java 2014-12-14 06:00:49 UTC (rev 25781) +++ branches/6.04.x/code/src/java/pcgen/core/PlayerCharacter.java 2014-12-14 06:01:46 UTC (rev 25782) @@ -274,7 +274,9 @@ // Constants for use in getBonus private static String lastVariable = null; - + // This marker is static so that the spells allocated to it can also be found in the cloned character. + private static ObjectCache grantedSpellCache = new ObjectCache(); + private CharID id; private final SAtoStringProcessor SA_TO_STRING_PROC; private final SAProcessor SA_PROC; @@ -398,7 +400,6 @@ private SpellProhibitorFacet spellProhibitorFacet = FacetLibrary.getFacet(SpellProhibitorFacet.class); private ObjectCache cache = new ObjectCache(); - private ObjectCache grantedSpellCache = new ObjectCache(); private AssociationSupport assocSupt = new AssociationSupport(); private BonusManager bonusManager = new BonusManager(this); private BonusChangeFacet bonusChangeFacet = FacetLibrary.getFacet(BonusChangeFacet.class); @@ -10077,6 +10078,13 @@ return defaultValue; } + /** + * Adds to the provided list any spells that have been granted to the character's class by abilities + * through the use of SPELLKNOWN:CLASS tags. + * + * @param aClass The character class owning the spell list. + * @param cSpells The list of spells to be updated. + */ public void addBonusKnownSpellsToList(CDOMObject aClass, List<CharacterSpell> cSpells) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-14 06:01:00
|
Revision: 25781 http://sourceforge.net/p/pcgen/code/25781 Author: jdempsey Date: 2014-12-14 06:00:49 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix bug: [Pathfinder] 0 level wizard prepared spells not shown in output Issue#: CODE-2778 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2014-12-14 05:30:45 UTC (rev 25780) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2014-12-14 06:00:49 UTC (rev 25781) @@ -274,7 +274,9 @@ // Constants for use in getBonus private static String lastVariable = null; - + // This marker is static so that the spells allocated to it can also be found in the cloned character. + private static ObjectCache grantedSpellCache = new ObjectCache(); + private CharID id; private final SAtoStringProcessor SA_TO_STRING_PROC; private final SAProcessor SA_PROC; @@ -398,7 +400,6 @@ private SpellProhibitorFacet spellProhibitorFacet = FacetLibrary.getFacet(SpellProhibitorFacet.class); private ObjectCache cache = new ObjectCache(); - private ObjectCache grantedSpellCache = new ObjectCache(); private AssociationSupport assocSupt = new AssociationSupport(); private BonusManager bonusManager = new BonusManager(this); private BonusChangeFacet bonusChangeFacet = FacetLibrary.getFacet(BonusChangeFacet.class); @@ -10077,6 +10078,13 @@ return defaultValue; } + /** + * Adds to the provided list any spells that have been granted to the character's class by abilities + * through the use of SPELLKNOWN:CLASS tags. + * + * @param aClass The character class owning the spell list. + * @param cSpells The list of spells to be updated. + */ public void addBonusKnownSpellsToList(CDOMObject aClass, List<CharacterSpell> cSpells) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-14 05:30:53
|
Revision: 25780 http://sourceforge.net/p/pcgen/code/25780 Author: amaitland Date: 2014-12-14 05:30:45 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix Export loop used instead of 0 Modified Paths: -------------- Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl Modified: Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl =================================================================== --- Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl 2014-12-14 05:30:26 UTC (rev 25779) +++ Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl 2014-12-14 05:30:45 UTC (rev 25780) @@ -138,7 +138,7 @@ <td colspan="1" class="h">${pcstring('EXP.CURRENT')}</td> <td colspan="1" class="h">${pcstring('RACE')}</td> - <#if (pcstring("ABILITYALL.Special Ability.${ability}.TYPE=RaceName.HASASPECT.RaceName") = "Y")> + <#if (pcstring("ABILITYALL.Special Ability.0.TYPE=RaceName.HASASPECT.RaceName") = "Y")> <td colspan="1" class="h">${pcstring('ABILITYALL.ANY.0.ASPECT=RaceName.ASPECT.RaceName')}</td> <#else> <td colspan="1" class="h">${pcstring('RACE')}</td> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-14 05:30:38
|
Revision: 25779 http://sourceforge.net/p/pcgen/code/25779 Author: amaitland Date: 2014-12-14 05:30:26 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix Export ftl loop used instead of 0 Modified Paths: -------------- branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl Modified: branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl =================================================================== --- branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl 2014-12-14 05:18:26 UTC (rev 25778) +++ branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_std.htm.ftl 2014-12-14 05:30:26 UTC (rev 25779) @@ -138,7 +138,7 @@ <td colspan="1" class="h">${pcstring('EXP.CURRENT')}</td> <td colspan="1" class="h">${pcstring('RACE')}</td> - <#if (pcstring("ABILITYALL.Special Ability.${ability}.TYPE=RaceName.HASASPECT.RaceName") = "Y")> + <#if (pcstring("ABILITYALL.Special Ability.0.TYPE=RaceName.HASASPECT.RaceName") = "Y")> <td colspan="1" class="h">${pcstring('ABILITYALL.ANY.0.ASPECT=RaceName.ASPECT.RaceName')}</td> <#else> <td colspan="1" class="h">${pcstring('RACE')}</td> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-14 05:18:36
|
Revision: 25778 http://sourceforge.net/p/pcgen/code/25778 Author: amaitland Date: 2014-12-14 05:18:26 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix: http://jira.pcgen.org/browse/DATA-2235 Repatch to allow later resources without issue Modified Paths: -------------- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst Modified: Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst =================================================================== --- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-14 04:52:38 UTC (rev 25777) +++ Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-14 05:18:26 UTC (rev 25778) @@ -66,7 +66,7 @@ # Ability Name Unique Key SORTKEY Category of Ability Type Visible Define Description Choose Template Auto Equip Auto Feat Ability Combat bonus Bonus to Situation Stat bonus Modify VAR Weapon prof. bonus Source Page Aspects Temporary Bonus Free Formula Book CATEGORY:Internal TEMPLATE:Formula Book Alchemy KEY:Alchemist ~ Alchemy CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Supernatural DEFINE:AlchemistAlchemyLVL|0 DEFINE:AlchemistAlchemyBonus|0 DESC:When using Craft (Alchemy) to create an alchemical item, you gains a +%1 competence bonus on the Craft (alchemy) check. In addition, you can use Craft (Alchemy) to identify potions as if using Detect Magic. He must hold the potion for 1 round to make such a check.|AlchemistAlchemyBonus BONUS:SITUATION|Craft (Alchemy)=Create item|AlchemistAlchemyBonus|TYPE=Competence BONUS:VAR|AlchemistAlchemyBonus|AlchemistAlchemyLVL SOURCEPAGE:p.26 -Bomb KEY:Alchemist ~ Bomb CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialAttack.Supernatural.Checklist DEFINE:AlchemistBombLVL|0 DEFINE:AlchemistBombTimes|0 DEFINE:AlchemistBombDiceSize|0 DEFINE:AlchemistBombAdditionalDice|0 DEFINE:AlchemistBombDamageBonus|0 DEFINE:AlchemistBombSplashDamage|0 DEFINE:AlchemistBombDC|0 DESC:You can use %1 bombs each day. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|!PRERULE:1,FullAbilityDisplay DESC:You are adept at swiftly mixing various volatile chemicals and infusing them with their magical reserves to create powerful bombs that you can hurl at your enemies. You can use %1 bombs each day. Bombs are unstable, and if not used in the round they are created, they degrade and become inert - their method of creation prevents large volumes of explosive material from being created and stored. In order to create a bomb, you must use a small vial containing an ounce of liquid catalyst - you can create this liquid catalyst from small amounts of chemicals from an alchemy lab, and these supplies can be readily refilled in the same manner as a spellcaster's component pouch. Most alchemists create a number of catalyst vials at the start of the day equal to the total number of bombs they can create in that day - once created, a catalyst vial remains usable for years. Drawing the components of, creating, and throwing a bomb requires a standard action that provokes an attack of opportunity. Thrown bombs have a range of 20 feet and use the Throw Splash Weapon special attack. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|PRERULE:1,FullAbilityDisplay AUTO:EQUIP|Bomb ABILITY:Natural Attack|AUTOMATIC|Bomb BONUS:VAR|AlchemistBombDamageBonus|INT BONUS:VAR|AlchemistBombSplashDamage|1+AlchemistBombAdditionalDice+AlchemistBombDamageBonus BONUS:VAR|AlchemistBombDC|10+(AlchemistBombLVL/2)+INT BONUS:VAR|AlchemistBombTimes|AlchemistBombLVL+INT BONUS:VAR|AlchemistBombAdditionalDice|(AlchemistBombLVL-1)/2 BONUS:VAR|AlchemistBombDiceSize|6 SOURCEPAGE:p.27 ASPECT:CheckCount|%1|AlchemistBombTimes ASPECT:CheckType|Uses per Day +Bomb KEY:Alchemist ~ Bomb CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialAttack.Supernatural.Checklist DEFINE:AlchemistBombLVL|0 DEFINE:AlchemistBombTimes|0 DEFINE:AlchemistBombDiceSize|0 DEFINE:AlchemistBombAdditionalDice|0 DEFINE:AlchemistBombDamageBonus|0 DEFINE:AlchemistBombSplashDamage|0 DEFINE:AlchemistBombDC|0 DESC:You can use %1 bombs each day. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|!PRERULE:1,FullAbilityDisplay DESC:You are adept at swiftly mixing various volatile chemicals and infusing them with their magical reserves to create powerful bombs that you can hurl at your enemies. You can use %1 bombs each day. Bombs are unstable, and if not used in the round they are created, they degrade and become inert - their method of creation prevents large volumes of explosive material from being created and stored. In order to create a bomb, you must use a small vial containing an ounce of liquid catalyst - you can create this liquid catalyst from small amounts of chemicals from an alchemy lab, and these supplies can be readily refilled in the same manner as a spellcaster's component pouch. Most alchemists create a number of catalyst vials at the start of the day equal to the total number of bombs they can create in that day - once created, a catalyst vial remains usable for years. Drawing the components of, creating, and throwing a bomb requires a standard action that provokes an attack of opportunity. Thrown bombs have a range of 20 feet and use the Throw Splash Weapon special attack. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|PRERULE:1,FullAbilityDisplay AUTO:EQUIP|Bomb ABILITY:Natural Attack|AUTOMATIC|Bomb BONUS:VAR|AlchemistBombDamageBonus|INT BONUS:VAR|AlchemistBombSplashDamage|1+AlchemistBombAdditionalDice+AlchemistBombDamageBonus BONUS:VAR|AlchemistBombDC|10+(AlchemistBombLVL/2)+INT BONUS:VAR|AlchemistBombTimes|AlchemistBombLVL+INT BONUS:VAR|AlchemistBombAdditionalDice|(AlchemistBombLVL-1)/2 BONUS:VAR|AlchemistBombDiceSize|6 SOURCEPAGE:p.27 ASPECT:CheckCount|%1|AlchemistBombTimes ASPECT:CheckType|Uses per Day BONUS:WEAPONPROF=Bomb|DAMAGESIZE|AlchemistBombDamage DEFINE:AlchemistBombDamage|0 BONUS:VAR|AlchemistBombDamage|(AlchemistBombDiceSize-6)/2 Brew Potion KEY:Alchemist ~ Brew Potion CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Extraordinary DESC:You receive Brew Potion as a bonus feat. You can brew potions of any formulae you know (up to 3rd level), using your alchemist level as caster level. The spell must be one that can be made into a potion. You do not need to meet the prerequisites for this feat. AUTO:FEAT|Brew Potion SOURCEPAGE:p.27 Mutagen KEY:Alchemist ~ Mutagen CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Supernatural DEFINE:AlchemistMutagenLVL|0 DEFINE:AlchemistMutagenDuration|0 DEFINE:AlchemistMutagenDC|0 DEFINE:MutagenNormal|0 DEFINE:MutagenStatBonus|0 DEFINE:MutagenStatPenalty|0 DEFINE:MutagenACBonus|0 DEFINE:MutagenTierLVL|0 DEFINE:SecondMutagenStatBonus|0 DEFINE:ThirdMutagenStatBonus|0 DESC:You know how to create a mutagen that you can imbibe in order to heighten your physical prowess at the cost of your personality. It takes 1 hour to brew a dose of mutagen, and once brewed, it remains potent until used. You can only maintain one dose of mutagen at a time - if you brews a second dose, any existing mutagen becomes inert. A mutagen that is not in your possession becomes inert until an alchemist picks it up again. When you brew a mutagen, you select one physical ability score - either Strength, Dexterity, or Constitution. It's a standard action to drink a mutagen. Upon being imbibed, the mutagen causes you to grow bulkier and more bestial, granting you a +2 natural armor bonus and a +4 alchemical bonus to the selected ability score for %1 minutes. In addition, while the mutagen is in effect, you take a -2 penalty to one of your mental ability scores. If the mutagen enhances your Strength, it applies a penalty to your Intelligence. If it enhances your Dexterity, it applies a penalty to your Wisdom. If it enhances your Constitution, it applies a penalty to your Charisma. A non-alchemist who drinks a mutagen must make a DC %2 Fortitude save or become nauseated for 1 hour - a non-alchemist can never gain the benefit of a mutagen, but an alchemist can gain the effects of another alchemist's mutagen if he drinks it. (Although if the other alchemist creates a different mutagen, the effects of the "stolen" mutagen immediately cease.) The effects of a mutagen do not stack. Whenever an alchemist drinks a mutagen, the effects of any previous mutagen immediately end.|AlchemistMutagenDuration|AlchemistMutagenDC ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection First|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Second|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Third|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Final|PREVARGTEQ:MutagenTierLVL,4 BONUS:VAR|MutagenNormal|1|TYPE=Base BONUS:VAR|AlchemistMutagenDuration|AlchemistMutagenLVL*10 BONUS:VAR|AlchemistMutagenDC|10+(AlchemistMutagenLVL/2)+INT BONUS:VAR|MutagenStatPenalty|-2 BONUS:VAR|MutagenACBonus|2 BONUS:VAR|MutagenStatBonus|4 BONUS:VAR|MutagenTierLVL|1 BONUS:VAR|SecondMutagenStatBonus|MutagenStatBonus-2 BONUS:VAR|ThirdMutagenStatBonus|MutagenStatBonus-4 SOURCEPAGE:p.27 # Modified: Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst =================================================================== --- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-14 04:52:38 UTC (rev 25777) +++ Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-14 05:18:26 UTC (rev 25778) @@ -718,12 +718,12 @@ # Ability Name Unique Key Category of Ability Type Required Class Multiple Requirements Description Ability Modify VAR Cost Source Page Aspects Chirurgeon KEY:Alchemist Archetype ~ Chirurgeon CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonUse.AlchemistPoisonResistance4.AlchemistPoisonImmunity PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Chirurgeon],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonUse,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonImmunity] DESC:An alchemist who studies anatomy and uses this knowledge to heal is a chirurgeon. ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Infused Curative|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Anaesthetic|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Power Over Death|PRECLASS:1,Alchemist=10 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist #COMMENT: I believe one can't take two bomb die size reduction templates. -Clone Master KEY:Alchemist Archetype ~ Clone Master CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Clone Master],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombReduction] DESC:Clone masters practice duplicating existing creatures in order to better understand how to create new life. ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Lesser Simulacrum|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Rebirth|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Simulacrum|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Clone|PRECLASS:1,Alchemist=16 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 +Clone Master KEY:Alchemist Archetype ~ Clone Master CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Clone Master],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombReduction] DESC:Clone masters practice duplicating existing creatures in order to better understand how to create new life. ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Lesser Simulacrum|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Rebirth|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Simulacrum|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Clone|PRECLASS:1,Alchemist=16 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist Internal Alchemist KEY:Alchemist Archetype ~ Internal Alchemist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistThrowAnything.AlchemistSwiftAlchemy.AlchemistSwiftPoisoning PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Internal Alchemist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistThrowAnything,TYPE.AlchemistSwiftAlchemy,TYPE.AlchemistSwiftPoisoning] DESC:An internal alchemist studies medicine, diet, and the living body to purify the self in the hope of gaining immortality by means of alchemical concoctions and controlling vital energy. Internal alchemists develop unusual physical abilities from heightened knowledge of how their bodies work. ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Breath Mastery|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Disease Resistance|PRECLASS:1,Alchemist=3 ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Uncanny Dodge|PRECLASS:1,Alchemist=6 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist Mindchemist KEY:Alchemist Archetype ~ Mindchemist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistMutagen.AlchemistPoisonUse PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Mindchemist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistMutagen.AlchemistPoisonUse] DESC:While most alchemists use mutagens to boost their physical ability at the cost of mental ability, some use alchemy for the opposite purpose-to boost the power of the mind and memory. A mindchemist can reach incredible levels of mental acuity, but suffers lingering debilitating effects to his physique. ABILITY:Alchemist Class Feature|AUTOMATIC|Mindchemist ~ Cognatogen|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Mindchemist ~ Perfect Recall|PRECLASS:1,Alchemist=2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist Preservationist KEY:Alchemist Archetype ~ Preservationist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonUse.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistPersistentMutagen.AlchemistDiscoveryLvl18 PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Preservationist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonUse,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistPersistentMutagen,TYPE.AlchemistDiscoveryLvl18] DESC:Some alchemists are obsessed with collecting and preserving exotic creatures. These preservationists may use bottled animals and monsters as teaching tools, but some learn how to reanimate them for short periods to battle on the alchemist's behalf. ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally I|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally II|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally III|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally IV|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally V|PRECLASS:1,Alchemist=14 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally VI|PRECLASS:1,Alchemist=18 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist -Psychonaut KEY:Alchemist Archetype ~ Psychonaut CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Psychonaut],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombReduction] DESC:A psychonaut uses his knowledge to explore altered states of consciousness and even other planes of existence. ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Precognition|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Psychic Senses|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Remote Consciousness|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Greater Precognition|PRECLASS:1,Alchemist=15 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Master Precognition|PRECLASS:1,Alchemist=17 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 -Reanimator KEY:Alchemist Archetype ~ Reanimator CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBombDamageLvl7.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Reanimator],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombReduction] DESC:A reanimator is an alchemist who has discovered how to infuse a corpse with a semblance of life. Many work in tandem with necromancers to explore the fine border between the worlds of the living and the dead. ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Simple Reanimation|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Undead|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Greater Undead|PRECLASS:1,Alchemist=15 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 +Psychonaut KEY:Alchemist Archetype ~ Psychonaut CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Psychonaut],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombReduction] DESC:A psychonaut uses his knowledge to explore altered states of consciousness and even other planes of existence. ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Precognition|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Psychic Senses|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Remote Consciousness|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Greater Precognition|PRECLASS:1,Alchemist=15 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Master Precognition|PRECLASS:1,Alchemist=17 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist +Reanimator KEY:Alchemist Archetype ~ Reanimator CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBombDamageLvl7.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Reanimator],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombReduction] DESC:A reanimator is an alchemist who has discovered how to infuse a corpse with a semblance of life. Many work in tandem with necromancers to explore the fine border between the worlds of the living and the dead. ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Simple Reanimation|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Undead|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Greater Undead|PRECLASS:1,Alchemist=15 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist Vivisectionist KEY:Alchemist Archetype ~ Vivisectionist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBomb.AlchemistBombDamageLvl1.AlchemistBombDamageLvl3.AlchemistBombDamageLvl5.AlchemistBombDamageLvl7.AlchemistBombDamageLvl9.AlchemistBombDamageLvl11.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombDamageLvl19.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Vivisectionist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBomb,TYPE.AlchemistBombDamageLvl1,TYPE.AlchemistBombDamageLvl3,TYPE.AlchemistBombDamageLvl5,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl9,TYPE.AlchemistBombDamageLvl11,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombDamageLvl9,TYPE.AlchemistBombReduction] DESC:A vivisectionist studies bodies to better understand their function. Unlike a chirurgeon, a vivisectionist's goals are not related to healing, but rather to experimentation and knowledge that most people would consider evil. ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Sneak Attack|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Torturer's Eye|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Cruel Anatomist|PRECLASS:1,Alchemist=3 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Torturous Transformation|PRECLASS:1,Alchemist=7 BONUS:VAR|RogueSneakAttackLVL|classlevel("Alchemist") COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-14 04:52:43
|
Revision: 25777 http://sourceforge.net/p/pcgen/code/25777 Author: amaitland Date: 2014-12-14 04:52:38 +0000 (Sun, 14 Dec 2014) Log Message: ----------- Fix: http://jira.pcgen.org/browse/DATA-2235 Repatch to allow later resources without issue Modified Paths: -------------- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst Modified: branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst =================================================================== --- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-13 01:23:44 UTC (rev 25776) +++ branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-14 04:52:38 UTC (rev 25777) @@ -66,7 +66,7 @@ # Ability Name Unique Key SORTKEY Category of Ability Type Visible Define Description Choose Template Auto Equip Auto Feat Ability Combat bonus Bonus to Situation Stat bonus Modify VAR Weapon prof. bonus Source Page Aspects Temporary Bonus Free Formula Book CATEGORY:Internal TEMPLATE:Formula Book Alchemy KEY:Alchemist ~ Alchemy CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Supernatural DEFINE:AlchemistAlchemyLVL|0 DEFINE:AlchemistAlchemyBonus|0 DESC:When using Craft (Alchemy) to create an alchemical item, you gains a +%1 competence bonus on the Craft (alchemy) check. In addition, you can use Craft (Alchemy) to identify potions as if using Detect Magic. He must hold the potion for 1 round to make such a check.|AlchemistAlchemyBonus BONUS:SITUATION|Craft (Alchemy)=Create item|AlchemistAlchemyBonus|TYPE=Competence BONUS:VAR|AlchemistAlchemyBonus|AlchemistAlchemyLVL SOURCEPAGE:p.26 -Bomb KEY:Alchemist ~ Bomb CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialAttack.Supernatural.Checklist DEFINE:AlchemistBombLVL|0 DEFINE:AlchemistBombTimes|0 DEFINE:AlchemistBombDiceSize|0 DEFINE:AlchemistBombAdditionalDice|0 DEFINE:AlchemistBombDamageBonus|0 DEFINE:AlchemistBombSplashDamage|0 DEFINE:AlchemistBombDC|0 DESC:You can use %1 bombs each day. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|!PRERULE:1,FullAbilityDisplay DESC:You are adept at swiftly mixing various volatile chemicals and infusing them with their magical reserves to create powerful bombs that you can hurl at your enemies. You can use %1 bombs each day. Bombs are unstable, and if not used in the round they are created, they degrade and become inert - their method of creation prevents large volumes of explosive material from being created and stored. In order to create a bomb, you must use a small vial containing an ounce of liquid catalyst - you can create this liquid catalyst from small amounts of chemicals from an alchemy lab, and these supplies can be readily refilled in the same manner as a spellcaster's component pouch. Most alchemists create a number of catalyst vials at the start of the day equal to the total number of bombs they can create in that day - once created, a catalyst vial remains usable for years. Drawing the components of, creating, and throwing a bomb requires a standard action that provokes an attack of opportunity. Thrown bombs have a range of 20 feet and use the Throw Splash Weapon special attack. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|PRERULE:1,FullAbilityDisplay AUTO:EQUIP|Bomb ABILITY:Natural Attack|AUTOMATIC|Bomb BONUS:VAR|AlchemistBombDamageBonus|INT BONUS:VAR|AlchemistBombSplashDamage|1+AlchemistBombAdditionalDice+AlchemistBombDamageBonus BONUS:VAR|AlchemistBombDC|10+(AlchemistBombLVL/2)+INT BONUS:VAR|AlchemistBombTimes|AlchemistBombLVL+INT BONUS:VAR|AlchemistBombAdditionalDice|(AlchemistBombLVL-1)/2 BONUS:VAR|AlchemistBombDiceSize|6 SOURCEPAGE:p.27 ASPECT:CheckCount|%1|AlchemistBombTimes ASPECT:CheckType|Uses per Day +Bomb KEY:Alchemist ~ Bomb CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialAttack.Supernatural.Checklist DEFINE:AlchemistBombLVL|0 DEFINE:AlchemistBombTimes|0 DEFINE:AlchemistBombDiceSize|0 DEFINE:AlchemistBombAdditionalDice|0 DEFINE:AlchemistBombDamageBonus|0 DEFINE:AlchemistBombSplashDamage|0 DEFINE:AlchemistBombDC|0 DESC:You can use %1 bombs each day. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|!PRERULE:1,FullAbilityDisplay DESC:You are adept at swiftly mixing various volatile chemicals and infusing them with their magical reserves to create powerful bombs that you can hurl at your enemies. You can use %1 bombs each day. Bombs are unstable, and if not used in the round they are created, they degrade and become inert - their method of creation prevents large volumes of explosive material from being created and stored. In order to create a bomb, you must use a small vial containing an ounce of liquid catalyst - you can create this liquid catalyst from small amounts of chemicals from an alchemy lab, and these supplies can be readily refilled in the same manner as a spellcaster's component pouch. Most alchemists create a number of catalyst vials at the start of the day equal to the total number of bombs they can create in that day - once created, a catalyst vial remains usable for years. Drawing the components of, creating, and throwing a bomb requires a standard action that provokes an attack of opportunity. Thrown bombs have a range of 20 feet and use the Throw Splash Weapon special attack. Bombs are considered weapons and can be selected using feats such as Point-Blank Shot and Weapon Focus. On a direct hit, your bomb inflicts 1d%2+%3 points of fire damage. Your bombs also inflict an additional %4d%2 points of fire damage that is not multiplied on a critical hit or by using feats such as Vital Strike. Splash damage from an your bomb is always equal to the bomb's minimum damage (%5). Those caught in the splash damage can attempt a DC %6 Reflex save for half damage.|AlchemistBombTimes|AlchemistBombDiceSize|AlchemistBombDamageBonus|AlchemistBombAdditionalDice|AlchemistBombSplashDamage|AlchemistBombDC|PRERULE:1,FullAbilityDisplay AUTO:EQUIP|Bomb ABILITY:Natural Attack|AUTOMATIC|Bomb BONUS:VAR|AlchemistBombDamageBonus|INT BONUS:VAR|AlchemistBombSplashDamage|1+AlchemistBombAdditionalDice+AlchemistBombDamageBonus BONUS:VAR|AlchemistBombDC|10+(AlchemistBombLVL/2)+INT BONUS:VAR|AlchemistBombTimes|AlchemistBombLVL+INT BONUS:VAR|AlchemistBombAdditionalDice|(AlchemistBombLVL-1)/2 BONUS:VAR|AlchemistBombDiceSize|6 SOURCEPAGE:p.27 ASPECT:CheckCount|%1|AlchemistBombTimes ASPECT:CheckType|Uses per Day BONUS:WEAPONPROF=Bomb|DAMAGESIZE|AlchemistBombDamage DEFINE:AlchemistBombDamage|0 BONUS:VAR|AlchemistBombDamage|(AlchemistBombDiceSize-6)/2 Brew Potion KEY:Alchemist ~ Brew Potion CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Extraordinary DESC:You receive Brew Potion as a bonus feat. You can brew potions of any formulae you know (up to 3rd level), using your alchemist level as caster level. The spell must be one that can be made into a potion. You do not need to meet the prerequisites for this feat. AUTO:FEAT|Brew Potion SOURCEPAGE:p.27 Mutagen KEY:Alchemist ~ Mutagen CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Supernatural DEFINE:AlchemistMutagenLVL|0 DEFINE:AlchemistMutagenDuration|0 DEFINE:AlchemistMutagenDC|0 DEFINE:MutagenNormal|0 DEFINE:MutagenStatBonus|0 DEFINE:MutagenStatPenalty|0 DEFINE:MutagenACBonus|0 DEFINE:MutagenTierLVL|0 DEFINE:SecondMutagenStatBonus|0 DEFINE:ThirdMutagenStatBonus|0 DESC:You know how to create a mutagen that you can imbibe in order to heighten your physical prowess at the cost of your personality. It takes 1 hour to brew a dose of mutagen, and once brewed, it remains potent until used. You can only maintain one dose of mutagen at a time - if you brews a second dose, any existing mutagen becomes inert. A mutagen that is not in your possession becomes inert until an alchemist picks it up again. When you brew a mutagen, you select one physical ability score - either Strength, Dexterity, or Constitution. It's a standard action to drink a mutagen. Upon being imbibed, the mutagen causes you to grow bulkier and more bestial, granting you a +2 natural armor bonus and a +4 alchemical bonus to the selected ability score for %1 minutes. In addition, while the mutagen is in effect, you take a -2 penalty to one of your mental ability scores. If the mutagen enhances your Strength, it applies a penalty to your Intelligence. If it enhances your Dexterity, it applies a penalty to your Wisdom. If it enhances your Constitution, it applies a penalty to your Charisma. A non-alchemist who drinks a mutagen must make a DC %2 Fortitude save or become nauseated for 1 hour - a non-alchemist can never gain the benefit of a mutagen, but an alchemist can gain the effects of another alchemist's mutagen if he drinks it. (Although if the other alchemist creates a different mutagen, the effects of the "stolen" mutagen immediately cease.) The effects of a mutagen do not stack. Whenever an alchemist drinks a mutagen, the effects of any previous mutagen immediately end.|AlchemistMutagenDuration|AlchemistMutagenDC ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection First|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Second|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Third|PREMULT:2,[PREVARGTEQ:MutagenTierLVL,1],[PREVARLTEQ:MutagenTierLVL,3] ABILITY:Special Ability|AUTOMATIC|Mutagen ~ Stat Selection Final|PREVARGTEQ:MutagenTierLVL,4 BONUS:VAR|MutagenNormal|1|TYPE=Base BONUS:VAR|AlchemistMutagenDuration|AlchemistMutagenLVL*10 BONUS:VAR|AlchemistMutagenDC|10+(AlchemistMutagenLVL/2)+INT BONUS:VAR|MutagenStatPenalty|-2 BONUS:VAR|MutagenACBonus|2 BONUS:VAR|MutagenStatBonus|4 BONUS:VAR|MutagenTierLVL|1 BONUS:VAR|SecondMutagenStatBonus|MutagenStatBonus-2 BONUS:VAR|ThirdMutagenStatBonus|MutagenStatBonus-4 SOURCEPAGE:p.27 # Modified: branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst =================================================================== --- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-13 01:23:44 UTC (rev 25776) +++ branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-14 04:52:38 UTC (rev 25777) @@ -718,12 +718,12 @@ # Ability Name Unique Key Category of Ability Type Required Class Multiple Requirements Description Ability Modify VAR Cost Source Page Aspects Chirurgeon KEY:Alchemist Archetype ~ Chirurgeon CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonUse.AlchemistPoisonResistance4.AlchemistPoisonImmunity PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Chirurgeon],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonUse,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonImmunity] DESC:An alchemist who studies anatomy and uses this knowledge to heal is a chirurgeon. ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Infused Curative|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Anaesthetic|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Chirurgeon ~ Power Over Death|PRECLASS:1,Alchemist=10 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist #COMMENT: I believe one can't take two bomb die size reduction templates. -Clone Master KEY:Alchemist Archetype ~ Clone Master CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Clone Master],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombReduction] DESC:Clone masters practice duplicating existing creatures in order to better understand how to create new life. ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Lesser Simulacrum|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Rebirth|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Simulacrum|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Clone|PRECLASS:1,Alchemist=16 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 +Clone Master KEY:Alchemist Archetype ~ Clone Master CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Clone Master],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombReduction] DESC:Clone masters practice duplicating existing creatures in order to better understand how to create new life. ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Lesser Simulacrum|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Rebirth|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Simulacrum|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Clone Master ~ Clone|PRECLASS:1,Alchemist=16 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist Internal Alchemist KEY:Alchemist Archetype ~ Internal Alchemist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistThrowAnything.AlchemistSwiftAlchemy.AlchemistSwiftPoisoning PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Internal Alchemist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistThrowAnything,TYPE.AlchemistSwiftAlchemy,TYPE.AlchemistSwiftPoisoning] DESC:An internal alchemist studies medicine, diet, and the living body to purify the self in the hope of gaining immortality by means of alchemical concoctions and controlling vital energy. Internal alchemists develop unusual physical abilities from heightened knowledge of how their bodies work. ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Breath Mastery|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Disease Resistance|PRECLASS:1,Alchemist=3 ABILITY:Alchemist Class Feature|AUTOMATIC|Internal Alchemist ~ Uncanny Dodge|PRECLASS:1,Alchemist=6 COST:0 SOURCEPAGE:p.18 ASPECT:Archetype Base Class|Alchemist Mindchemist KEY:Alchemist Archetype ~ Mindchemist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistMutagen.AlchemistPoisonUse PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Mindchemist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistMutagen.AlchemistPoisonUse] DESC:While most alchemists use mutagens to boost their physical ability at the cost of mental ability, some use alchemy for the opposite purpose-to boost the power of the mind and memory. A mindchemist can reach incredible levels of mental acuity, but suffers lingering debilitating effects to his physique. ABILITY:Alchemist Class Feature|AUTOMATIC|Mindchemist ~ Cognatogen|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Mindchemist ~ Perfect Recall|PRECLASS:1,Alchemist=2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist Preservationist KEY:Alchemist Archetype ~ Preservationist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonUse.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistPersistentMutagen.AlchemistDiscoveryLvl18 PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Preservationist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonUse,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistPersistentMutagen,TYPE.AlchemistDiscoveryLvl18] DESC:Some alchemists are obsessed with collecting and preserving exotic creatures. These preservationists may use bottled animals and monsters as teaching tools, but some learn how to reanimate them for short periods to battle on the alchemist's behalf. ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally I|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally II|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally III|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally IV|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally V|PRECLASS:1,Alchemist=14 ABILITY:Alchemist Class Feature|AUTOMATIC|Preservationist ~ Bottled Ally VI|PRECLASS:1,Alchemist=18 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist -Psychonaut KEY:Alchemist Archetype ~ Psychonaut CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Psychonaut],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombReduction] DESC:A psychonaut uses his knowledge to explore altered states of consciousness and even other planes of existence. ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Precognition|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Psychic Senses|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Remote Consciousness|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Greater Precognition|PRECLASS:1,Alchemist=15 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Master Precognition|PRECLASS:1,Alchemist=17 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 -Reanimator KEY:Alchemist Archetype ~ Reanimator CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBombDamageLvl7.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Reanimator],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombReduction] DESC:A reanimator is an alchemist who has discovered how to infuse a corpse with a semblance of life. Many work in tandem with necromancers to explore the fine border between the worlds of the living and the dead. ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Simple Reanimation|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Undead|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Greater Undead|PRECLASS:1,Alchemist=15 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist BONUS:WEAPONPROF=Bomb|DAMAGESIZE|-1 +Psychonaut KEY:Alchemist Archetype ~ Psychonaut CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistPoisonResistance4.AlchemistPoisonResistance6.AlchemistPoisonImmunity.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Psychonaut],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistPoisonResistance4,TYPE.AlchemistPoisonResistance6,TYPE.AlchemistPoisonImmunity,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombReduction] DESC:A psychonaut uses his knowledge to explore altered states of consciousness and even other planes of existence. ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Precognition|PRECLASS:1,Alchemist=5 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Psychic Senses|PRECLASS:1,Alchemist=8 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Remote Consciousness|PRECLASS:1,Alchemist=10 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Greater Precognition|PRECLASS:1,Alchemist=15 ABILITY:Alchemist Class Feature|AUTOMATIC|Psychonaut ~ Master Precognition|PRECLASS:1,Alchemist=17 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.19 ASPECT:Archetype Base Class|Alchemist +Reanimator KEY:Alchemist Archetype ~ Reanimator CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBombDamageLvl7.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Reanimator],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombReduction] DESC:A reanimator is an alchemist who has discovered how to infuse a corpse with a semblance of life. Many work in tandem with necromancers to explore the fine border between the worlds of the living and the dead. ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Simple Reanimation|PRECLASS:1,Alchemist=7 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Undead|PRECLASS:1,Alchemist=13 ABILITY:Alchemist Class Feature|AUTOMATIC|Reanimator ~ Create Greater Undead|PRECLASS:1,Alchemist=15 BONUS:VAR|AlchemistBombDiceSize|-2 COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist Vivisectionist KEY:Alchemist Archetype ~ Vivisectionist CATEGORY:Archetype TYPE:Archetype.AlchemistArchetype.AlchemistBomb.AlchemistBombDamageLvl1.AlchemistBombDamageLvl3.AlchemistBombDamageLvl5.AlchemistBombDamageLvl7.AlchemistBombDamageLvl9.AlchemistBombDamageLvl11.AlchemistBombDamageLvl13.AlchemistBombDamageLvl15.AlchemistBombDamageLvl17.AlchemistBombDamageLvl19.AlchemistBombReduction PRECLASS:1,Alchemist=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Alchemist Archetype ~ Vivisectionist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.AlchemistBomb,TYPE.AlchemistBombDamageLvl1,TYPE.AlchemistBombDamageLvl3,TYPE.AlchemistBombDamageLvl5,TYPE.AlchemistBombDamageLvl7,TYPE.AlchemistBombDamageLvl9,TYPE.AlchemistBombDamageLvl11,TYPE.AlchemistBombDamageLvl13,TYPE.AlchemistBombDamageLvl15,TYPE.AlchemistBombDamageLvl17,TYPE.AlchemistBombDamageLvl9,TYPE.AlchemistBombReduction] DESC:A vivisectionist studies bodies to better understand their function. Unlike a chirurgeon, a vivisectionist's goals are not related to healing, but rather to experimentation and knowledge that most people would consider evil. ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Sneak Attack|PRECLASS:1,Alchemist=1 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Torturer's Eye|PRECLASS:1,Alchemist=2 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Cruel Anatomist|PRECLASS:1,Alchemist=3 ABILITY:Alchemist Class Feature|AUTOMATIC|Vivisectionist ~ Torturous Transformation|PRECLASS:1,Alchemist=7 BONUS:VAR|RogueSneakAttackLVL|classlevel("Alchemist") COST:0 SOURCEPAGE:p.20 ASPECT:Archetype Base Class|Alchemist This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-13 01:23:54
|
Revision: 25776 http://sourceforge.net/p/pcgen/code/25776 Author: amaitland Date: 2014-12-13 01:23:44 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Fix: DATA-2236 Cleric Alternate Domain option Inquisitions not matching available domains 6.4.1 Modified Paths: -------------- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst Modified: branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst =================================================================== --- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst 2014-12-13 01:23:20 UTC (rev 25775) +++ branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst 2014-12-13 01:23:44 UTC (rev 25776) @@ -484,7 +484,7 @@ Merciful Healer KEY:Cleric Archetype ~ Merciful Healer CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains.ClericChannelEnergy PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Merciful Healer],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains,TYPE.ClericChannelEnergy] DESC:The merciful healer is a master of battlefield revivification, sustaining and restoring allies to keep them in the fight. ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Willing Healer|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Channel Energy|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Combat Medic|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Merciful Healing|PRECLASS:1,Cleric=2 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ True Healer|PRECLASS:1,Cleric=8 COST:0 SOURCEPAGE:p.41 ASPECT:Archetype Base Class|Cleric # Crusader -Diminished Spellcasting KEY:Crusader ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DESC:A crusader chooses only one domain and gains one fewer spell of each level than normal. If this reduces the number to 0, she may cast spells of that level only if they are domain spells or if her Wisdom allows bonus spells of that level. ABILITY:Internal|AUTOMATIC|Crusader SpellCasting Reduction BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Diminished Spellcasting KEY:Crusader ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DESC:A crusader chooses only one domain and gains one fewer spell of each level than normal. If this reduces the number to 0, she may cast spells of that level only if they are domain spells or if her Wisdom allows bonus spells of that level. ABILITY:Internal|AUTOMATIC|Crusader SpellCasting Reduction BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Bonus Feat KEY:Crusader ~ Bonus Feat CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:CrusaderBonusFeatCount|0 DESC:A crusader gains a bonus feat at 1st level, then again at 5th level and every five levels thereafter (to a maximum of six at 20th level). These bonus feats must be chosen from the following list - Heavy Armor Proficiency, Improved Shield Bash, Martial Weapon Proficiency, Saving Shield, Shield Focus, Tower Shield Proficiency, and Weapon Focus*. At 10th level, a crusader may also choose from the following feats - Exotic Weapon Proficiency, Greater Shield Focus, Greater Weapon Focus*, Improved Critical*, Shield Slam, Shield Specialization, and Weapon Specialization*. At 20th level, a crusader may also choose from the following feats - Greater Shield Specialization and Greater Weapon Specialization*. Bonus feats marked with an asterisk (*) must be applied to the favored weapon of the crusader's deity. A crusader need not meet the normal class- or level-based prerequisites for these bonus feats. BONUS:ABILITYPOOL|Crusader Feat|CrusaderBonusFeatCount BONUS:VAR|CrusaderBonusFeatCount|1 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=5 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=10 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=15 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=20 SOURCEPAGE:p.40 ###Block: # Ability Name Unique Key Category of Ability Type Var. Min. Value Serves As Define Description Multiple? Choose Auto Feat Ability Bonus Ability Pool Combat bonus Add domain number Bonus to spell cast/day Modify VAR Class Skill Source Page Aspects List of Class Spells by Level @@ -523,7 +523,7 @@ CATEGORY=Internal|Crusader SpellCasting Reduction.MOD BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:ClericLvl,17 # Divine Strategist Abilities -Domains KEY:Divine Strategist ~ Domains CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist gains only a single domain. BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Domains KEY:Divine Strategist ~ Domains CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist gains only a single domain. BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Master Tactician KEY:Divine Strategist ~ Master Tactician CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:MasterTacticianInitiativeBonus|0 DESC:A divine strategist can always act in a surprise round even if she fails to make a Perception check to notice enemies, though she is considered flat-footed until she acts. In addition, the divine strategist gains a bonus on initiative checks equal to +%1. At 20th level, a divine strategist's initiative roll is automatically a natural 20. Allies able to see and hear the divine strategist gain a bonus on initiative checks equal to +%2. This is a language-dependent ability. This ability replaces channel energy.|MasterTacticianInitiativeBonus|MasterTacticianInitiativeBonus/2 BONUS:COMBAT|INITIATIVE|MasterTacticianInitiativeBonus BONUS:VAR|MasterTacticianInitiativeBonus|ClericLVL/2 SOURCEPAGE:p.40 Tactical Expertise KEY:Divine Strategist ~ Tactical Expertise CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist knows how to take best advantage of tactical opportunities. Whenever she is flanking or makes an attack of opportunity, she may add her Intelligence bonus (if any) as a bonus on the attack roll. In addition, %1 times per day as a swift action she may add her Intelligence modifier as a bonus on any single d20 roll made as part of a readied action.|1+(MAX(0,classlevel("Cleric")-8)/2) SOURCEPAGE:p.40 Caster Support KEY:Divine Strategist ~ Caster Support CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Supernatural DESC:A divine strategist can use the aid another action to assist another divine spellcaster, granting a +2 circumstance bonus on caster level checks and concentration checks until the beginning of the divine strategist's next turn. This bonus increases by +1 at 4th level and every four levels thereafter (to a maximum of +7 at 20th level). The allied caster must remain adjacent to the divine strategist to gain this benefit. Caster support can be used to assist arcane spellcasters or characters using magical items, but they gain only half the normal bonus. @@ -532,14 +532,14 @@ # Evangelist Abilities # TODO: Sermonic Performance should not stack with Bardic Performance, but this is the easiest way to get this in and get it to work with feats, et al. The rules only mention the number of dice stalling. It says nothing about the Channel DC. # TODO: Tongues should become a 3rd level spell. It now only shows up as a 4th level spell. -Single-Minded KEY:Evangelist ~ Single-Minded CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist focuses her skills and learning on proclamation rather than the fine details of the church's deeper mysteries or martial training. Thus, she may select only one domain and does not gain medium armor proficiency or shield proficiency. AUTO:FEAT|Armor Proficiency (Light) ABILITY:Internal|AUTOMATIC|TYPE=ArmorProfLight BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Single-Minded KEY:Evangelist ~ Single-Minded CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist focuses her skills and learning on proclamation rather than the fine details of the church's deeper mysteries or martial training. Thus, she may select only one domain and does not gain medium armor proficiency or shield proficiency. AUTO:FEAT|Armor Proficiency (Light) ABILITY:Internal|AUTOMATIC|TYPE=ArmorProfLight BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Public Speaker KEY:Evangelist ~ Public Speaker CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist gains Perform as a class skill. In addition, she is trained to project her voice with great skill and effect; the DC to hear her speak in difficult conditions is reduced by %1.|MAX(classlevel("Cleric") + CHA,0) CSKILL:TYPE=Perform SOURCEPAGE:p.40 Sermonic Performance KEY:Evangelist ~ Sermonic Performance CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist gains the ability to deliver a select number of supernatural and spell-like performances through the force and power of her divinely inspired preaching and exhortation. This ability is similar in all respects to bardic performance as used by a bard of the same level (including interactions with feats, spells, and prestige classes), using Perform (oratory) as the evangelist's performance skill. However, an evangelist gains only the following types of bardic performance: countersong, fascinate, and inspire courage at 1st level; inspire greatness at 9th level; and inspire heroics at 15th level. Sermonic performance replaces the 1st-, 9th-, and 15th-level channel energy abilities. This caps the cleric's channel energy damage at 7d6 points. ABILITY:Special Ability|AUTOMATIC|Bard ~ Bardic Countersong|Evangelist ~ Bardic Performance ABILITY:Special Ability|AUTOMATIC|Cleric ~ Channel Energy|PRECLASS:1,Cleric=3 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=1 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=1 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=9 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=9 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=15 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=15 BONUS:VAR|BardicPerformanceLVL|classlevel("Cleric") SOURCEPAGE:p.40 Spontaneous Casting KEY:Evangelist ~ Spontaneous Casting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist does not gain the ability to spontaneously cast cure or inflict spells by sacrificing prepared spells. However, an evangelist can spontaneously cast command (1st), enthrall (2nd), tongues (3rd), suggestion (4th), greater command (5th), geas/quest (6th), mass suggestion (7th), sympathy (8th) and demand (9th) as a spell of listed level by sacrificing a prepared spell of the same level or higher. SOURCEPAGE:p.40 SPELLLEVEL:CLASS|Cleric=1|Command|Cleric=2|Enthrall|Cleric=3|Tongues|Cleric=4|Suggestion|Cleric=5|Command (Greater)|Cleric=6|Geas/Quest|Cleric=7|Suggestion (Mass)|Cleric=8|Sympathy|Cleric=9|Demand Bardic Performance KEY:Evangelist ~ Bardic Performance CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.BardicPerformance DEFINE:BardicPerformanceDuration|0 DEFINE:BardicPerformanceLVL|0 DESC:You are trained to use the Perform skill to create magical effects on those around you, including yourself if desired. ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Fascinate|PREVARGTEQ:BardicPerformanceLVL,1 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Courage|PREVARGTEQ:BardicPerformanceLVL,1 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Greatness|PREVARGTEQ:BardicPerformanceLVL,9 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Heroics|PREVARGTEQ:BardicPerformanceLVL,15 BONUS:VAR|BardicPerformanceDuration|2+CHA+(2*BardicPerformanceLVL) SOURCEPAGE:p.35 # MERCIFUL HEALER -Willing Healer KEY:Merciful Healer ~ Willing Healer CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:AllowDomainHealing|0 DESC:A merciful healer must choose the Healing domain. She does not gain a second domain. If the cleric worships a deity, that deity must be one that grants the Healing domain. A merciful healer must channel positive energy. ABILITY:Special Ability|AUTOMATIC|Healing Domain BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|DomainNotAllowed|1 BONUS:VAR|AllowDomainHealing|1 SOURCEPAGE:p.41 +Willing Healer KEY:Merciful Healer ~ Willing Healer CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:AllowDomainHealing|0 DESC:A merciful healer must choose the Healing domain. She does not gain a second domain. If the cleric worships a deity, that deity must be one that grants the Healing domain. A merciful healer must channel positive energy. ABILITY:Special Ability|AUTOMATIC|Healing Domain BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|DomainNotAllowed|1 BONUS:VAR|AllowDomainHealing|1 SOURCEPAGE:p.41 Channel Energy KEY:Merciful Healer ~ Channel Energy CATEGORY:Special Ability TYPE:ClericClassFeatures.Supernatural.ArchetypeAbility.SpecialQuality DESC:As the cleric ability, save that a merciful healer must channel positive energy, and when she does, she cannot choose to target undead. This ability is otherwise identical to the cleric ability of the same name. ABILITY:Special Ability|AUTOMATIC|Cleric ~ Channel Energy|Healing ~ Channel Positive Energy BONUS:ABILITYPOOL|Channel Energy|-1 SOURCEPAGE:p.41 Combat Medic KEY:Merciful Healer ~ Combat Medic CATEGORY:Special Ability TYPE:ClericClassFeatures.Extraordinary.ArchetypeAbility.SpecialQuality DESC:A merciful healer does not provoke attacks of opportunity when using the Heal skill to stabilize another creature or casting healing spells. SOURCEPAGE:p.41 Merciful Healing KEY:Merciful Healer ~ Merciful Healing CATEGORY:Special Ability TYPE:ClericClassFeatures.Supernatural.ArchetypeAbility.SpecialQuality DESC:At 3rd level, a merciful healer can channel positive energy to relieve one or more harmful conditions. The merciful healer chooses one of the following harmful conditions at 3rd level - fatigued, shaken, or sickened. When the merciful healer channels energy she can remove the chosen condition from one living creature that she heals within her channel energy burst. At 6th level, she can choose another condition. It can be one of those she didn't choose at 3rd level, or one of the following conditions - dazed, diseased, or staggered. She can remove the selected condition or the one she chose at 3rd level from up to two creatures within her channel energy burst. She gains another condition at 9th level, and can choose an above condition or one of the following conditions - cursed, exhausted, frightened, nauseated, or poisoned. She can remove that condition, or a condition she previously chose, from one or two creatures within the burst. Finally, at 12th level, she can choose a lowerlevel condition or one of the following conditions - blinded, deafened, paralyzed, or stunned. She can remove that condition or one she previously chose from one, two, or three creatures within her channel energy burst. Feats and effects that affect a paladin's mercy also affect this ability. SOURCEPAGE:p.41 Modified: branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst =================================================================== --- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-13 01:23:20 UTC (rev 25775) +++ branches/6.04.x/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-13 01:23:44 UTC (rev 25776) @@ -884,7 +884,7 @@ Separatist KEY:Cleric Archetype ~ Separatist CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericWeaponProficiency.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Separatist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericWeaponProficiency,TYPE.ClericDomains] DESC:A radical cleric, unsatisfied with the orthodoxy of her deity's teachings, forges her own path of defiant divine expression. Though most members of her faith would call her a separatist or heretic, she continues to receive spells from her deity. Charismatic separatists may develop a large following of like-minded believers and eventually found a splinter church of their deity - and they are just as likely to be the cause of a holy civil war as the branches of the religion fight to determine which is the true faith. A cleric who does not serve a deity cannot take the separatist archetype. ABILITY:Internal|AUTOMATIC|Separatist Weapon Proficiency|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Separatist ~ Forbidden Rites|PRECLASS:1,Cleric=1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric Theologian KEY:Cleric Archetype ~ Theologian CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Theologian],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:A theologian is an expert on one particular area of her religion. She is so focused on that area that she eschews the broader sweep of her deity's dogma and focuses intensely upon that aspect of it, embodying its power in all she does. Theologians tend to be more zealous than other clerics, and many crusades are started by theologians. ABILITY:Cleric Class Feature|AUTOMATIC|Theologian ~ Focused Domain|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Theologian ~ Domain Secret|PRECLASS:1,Cleric=5 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric #COMMENT: Requirement of Death domain (and Undead subdomain) not implemented. -Undead Lord KEY:Cleric Archetype ~ Undead Lord CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Undead Lord],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:An undead lord is a cleric focused on using necromancy to control undead. Her flock is the walking dead and her choir the keening spirits of the damned. This unliving congregation is the manifestation of her unceasing love affair with death. AUTO:FEAT|Command Undead ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Corpse Companion|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Unlife Healer|PRECLASS:1,Cleric=8 BONUS:ABILITYPOOL|Undead Lord Bonus Feat|1|PRECLASS:1,Cleric=10 BONUS:DOMAIN|NUMBER|-1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric +Undead Lord KEY:Cleric Archetype ~ Undead Lord CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Undead Lord],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:An undead lord is a cleric focused on using necromancy to control undead. Her flock is the walking dead and her choir the keening spirits of the damned. This unliving congregation is the manifestation of her unceasing love affair with death. AUTO:FEAT|Command Undead ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Corpse Companion|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Unlife Healer|PRECLASS:1,Cleric=8 BONUS:ABILITYPOOL|Undead Lord Bonus Feat|1|PRECLASS:1,Cleric=10 BONUS:VAR|ClericDomainCount|-1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric ###Block: Cloistered Cleric abilities # Ability Name Unique Key Category of Ability Type Visible Define Description Auto Feat Auto Weapon Prof Add domain number Bonus to skill Bonus to spell cast/day Modify VAR Class Skill Source Page @@ -895,7 +895,7 @@ #NEEDS CODE WORK: A 9th-level Cleric (with Wis 15-19) with this archetype #NEEDS CODE WORK: should get "0+1" 5th-level spells rather than "0"; #NEEDS CODE WORK: this seems to not be possible right now. -Diminished Spellcasting KEY:Cloistered Cleric ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's list of domains, and your number of non-domain spells per day for each spell level is one less than normal (for example, a 4th-level cloistered cleric has three cantrips, two 1st-level spells, one 1st-level domain spell, one 2nd-level spell, and one 2nd-level domain spell). If this reduces the number of spells per day for that level to 0, you gain only the bonus spells you would be entitled to based on your Wisdom score for that level, plus your domain spell for that level. BONUS:DOMAIN|NUMBER|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=0|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=1|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=2|-1|PREVARGTEQ:classlevel("Cleric"),3 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=3|-1|PREVARGTEQ:classlevel("Cleric"),5 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=4|-1|PREVARGTEQ:classlevel("Cleric"),7 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=5|-1|PREVARGTEQ:classlevel("Cleric"),9 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=6|-1|PREVARGTEQ:classlevel("Cleric"),11 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=7|-1|PREVARGTEQ:classlevel("Cleric"),13 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=8|-1|PREVARGTEQ:classlevel("Cleric"),15 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:classlevel("Cleric"),17 SOURCEPAGE:p.31 +Diminished Spellcasting KEY:Cloistered Cleric ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's list of domains, and your number of non-domain spells per day for each spell level is one less than normal (for example, a 4th-level cloistered cleric has three cantrips, two 1st-level spells, one 1st-level domain spell, one 2nd-level spell, and one 2nd-level domain spell). If this reduces the number of spells per day for that level to 0, you gain only the bonus spells you would be entitled to based on your Wisdom score for that level, plus your domain spell for that level. BONUS:VAR|ClericDomainCount|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=0|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=1|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=2|-1|PREVARGTEQ:classlevel("Cleric"),3 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=3|-1|PREVARGTEQ:classlevel("Cleric"),5 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=4|-1|PREVARGTEQ:classlevel("Cleric"),7 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=5|-1|PREVARGTEQ:classlevel("Cleric"),9 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=6|-1|PREVARGTEQ:classlevel("Cleric"),11 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=7|-1|PREVARGTEQ:classlevel("Cleric"),13 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=8|-1|PREVARGTEQ:classlevel("Cleric"),15 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:classlevel("Cleric"),17 SOURCEPAGE:p.31 Breadth of Knowledge KEY:Cloistered Cleric ~ Breadth of Knowledge CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:BreadthOfKnowledgeBonus|0 DESC:You gain a +%1 bonus on Knowledge skill checks and can make Knowledge checks untrained.|BreadthOfKnowledgeBonus BONUS:SKILL|TYPE.Knowledge|BreadthOfKnowledgeBonus BONUS:VAR|BreadthOfKnowledgeBonus|max(1,classlevel("Cleric")/2) SOURCEPAGE:p.31 Well-Read KEY:Cloistered Cleric ~ Well-Read CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Extraordinary DESC:You gain a +2 bonus on skill checks, caster level checks, and saving throws if such rolls pertain to mundane or magical glyphs, runes, scrolls, symbols, and other writings. SOURCEPAGE:p.31 Verbal Instruction KEY:Cloistered Cleric ~ Verbal Instruction CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Extraordinary DEFINE:VerbalInstructionAllies|0 DESC:You can use the aid another action to assist %1 allies within 30 feet on a skill or ability check. The ally must be able to hear and understand your instructions. If all allies are not engaged in the same task, using this ability is a full-round action rather than a standard action.|VerbalInstructionAllies BONUS:VAR|VerbalInstructionAllies|classlevel("Cleric")/3 SOURCEPAGE:p.31 @@ -903,7 +903,7 @@ ###Block: Separatist abilities # Ability Name Unique Key Category of Ability Type Visible Required AL Define Description Auto Feat Ability Bonus Ability Pool Add domain number Save bonus Modify VAR Class Skill Source Page List of Class Spells by Level Separatist Weapon Proficiency CATEGORY:Internal VISIBLE:NO AUTO:FEAT|Simple Weapon Proficiency -Forbidden Rites KEY:Separatist ~ Forbidden Rites CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:SeparistDomainLVL|0 DESC:You select one domain from your deity's domain list, and a second domain that is not on your deity's domain list. This second domain cannot be an alignment domain that doesn't match your or your deity's alignment. For example, a lawful good separatist cleric of a neutral good deity cannot choose the Chaos or Evil domain with this ability, but can select the Lawful domain even though her deity isn't lawful. Granted powers from your second domain function as if your level, Wisdom, and Charisma were 2 lower than normal (minimum level 1) in terms of effect, DC, and uses per day. This also means you don't gain the domain's higher-level ability until 2 levels later than normal. If the second domain grants additional class skills, you gain these as normal. BONUS:ABILITYPOOL|Forbidden Rites Domain|1 BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|SeparistDomainLVL|-2 SOURCEPAGE:p.32 +Forbidden Rites KEY:Separatist ~ Forbidden Rites CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:SeparistDomainLVL|0 DESC:You select one domain from your deity's domain list, and a second domain that is not on your deity's domain list. This second domain cannot be an alignment domain that doesn't match your or your deity's alignment. For example, a lawful good separatist cleric of a neutral good deity cannot choose the Chaos or Evil domain with this ability, but can select the Lawful domain even though her deity isn't lawful. Granted powers from your second domain function as if your level, Wisdom, and Charisma were 2 lower than normal (minimum level 1) in terms of effect, DC, and uses per day. This also means you don't gain the domain's higher-level ability until 2 levels later than normal. If the second domain grants additional class skills, you gain these as normal. BONUS:ABILITYPOOL|Forbidden Rites Domain|1 BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|SeparistDomainLVL|-2 SOURCEPAGE:p.32 # Forbidden Rites Domain Air KEY:Forbidden Rites Domain ~ Air Domain CATEGORY:Special Ability TYPE:ForbiddenRiteSDomain.AirDomainReplacement DEFINE:DomainAirLVL|0 DEFINE:DomainAirAbilityTriggerLVL|0 DEFINE:DomainAirDC|0 DEFINE:DomainAirTimes|0 DESC:You can manipulate lightning, mist, and wind, traffic with air creatures, and are resistant to electricity damage. ABILITY:Special Ability|AUTOMATIC|Air Domain ~ Lightning Arc|PREDOMAIN:1,Air|PREVARGTEQ:DomainAirAbilityTriggerLVL,-1 ABILITY:Special Ability|AUTOMATIC|Air Domain ~ Electricity Resistance|PREDOMAIN:1,Air|PREVARGTEQ:DomainAirAbilityTriggerLVL,6 BONUS:DOMAIN|NUMBER|1 BONUS:VAR|DomainAirLVL|DomainLVL-2|TYPE=Domain BONUS:VAR|DomainAirDC|10+(DomainAirLVL/2)+CHA-1 BONUS:VAR|DomainAirTimes|DomainPowerTimes-1|TYPE=Domain BONUS:VAR|DomainAirAbilityTriggerLVL|DomainAbilityTriggerLVL-SeparistDomainLVL|TYPE=Domain SOURCEPAGE:p.41 SPELLLEVEL:CLASS|Cleric=1|Obscuring Mist|Cleric=2|Wind Wall|Cleric=3|Gaseous Form|Cleric=4|Air Walk|Cleric=5|Control Winds|Cleric=6|Chain Lightning|Cleric=7|Elemental Body IV (Air Only)|Cleric=8|Whirlwind|Cleric=9|Elemental Swarm (Air Spell Only) @@ -944,7 +944,7 @@ #NEEDS CODE/DATA WORK: Preparing domiain spells in non-domain slots not implemented. #NEEDS DATA WORK: Bonus to domain abilities not yet implemented. # Ability Name Unique Key Category of Ability Type Define Description Stackable? Multiple? Choose Selections Bonus Ability Pool Add domain number Modify VAR Source Page -Focused Domain KEY:Theologian ~ Focused Domain CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's portfolio rather than the normal two domains. All level-dependent effects of the granted powers from your domain function as if you were two cleric levels higher than your actual cleric level. This does not allow you to gain domain-granted powers earlier than normal. You can prepare domain spells using your non-domain slots. You cannot use her spontaneous casting ability on domain spells, even if they are prepared in non-domain slots. In all other respects, this works like and replaces the standard cleric domain ability. BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|DomainLVL|2 BONUS:VAR|DomainAbilityTriggerLVL|-2 SOURCEPAGE:p.32 +Focused Domain KEY:Theologian ~ Focused Domain CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's portfolio rather than the normal two domains. All level-dependent effects of the granted powers from your domain function as if you were two cleric levels higher than your actual cleric level. This does not allow you to gain domain-granted powers earlier than normal. You can prepare domain spells using your non-domain slots. You cannot use her spontaneous casting ability on domain spells, even if they are prepared in non-domain slots. In all other respects, this works like and replaces the standard cleric domain ability. BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|DomainLVL|2 BONUS:VAR|DomainAbilityTriggerLVL|-2 SOURCEPAGE:p.32 Domain Secret KEY:Theologian ~ Domain Secret CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:DomainSecrets|0 DESC:You choose %1 domain spells. Those spells becomes permanently modified with one of the following metamagic feats: Bouncing Spell, Disruptive Spell, Ectoplasmic Spell, Enlarge Spell, Extend Spell, Focused Spell, Intensified Spell, Silent Spell, Still Spell. This metamagic feat does not increase the level of the spell. Once chosen, this modification cannot be changed. You need not have the metamagic feat to apply it to a spell using this ability. You cannot modify the same spell more than once.|DomainSecrets BONUS:ABILITYPOOL|Domain Secret|DomainSecrets BONUS:VAR|DomainSecrets|(classlevel("Cleric")/5) SOURCEPAGE:p.32 #Block: Domain Secrets This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-13 01:23:25
|
Revision: 25775 http://sourceforge.net/p/pcgen/code/25775 Author: amaitland Date: 2014-12-13 01:23:20 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Fix: OS-391 D20Pro unable to import from the csheet_fantasy_generic_export.xml Added Paths: ----------- branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl Removed Paths: ------------- branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml Deleted: branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml =================================================================== (Binary files differ) Added: branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl =================================================================== --- branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl (rev 0) +++ branches/6.04.x/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl 2014-12-13 01:23:20 UTC (rev 25775) @@ -0,0 +1,3256 @@ +<#ftl encoding="UTF-8" strip_whitespace=true > +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: base.xml 24177 2014-06-16 22:41:07Z jdempsey $ +--> +<character> + <export> + <date>${pcstring('EXPORT.DATE')}</date> + <time>${pcstring('EXPORT.TIME')}</time> + <version>${pcstring('EXPORT.VERSION')}</version> + <paperinfo> + <name>${pcstring('PAPERINFO.NAME')}</name> + <height>${pcstring('PAPERINFO.HEIGHT')}</height> + <width>${pcstring('PAPERINFO.WIDTH')}</width> + <margins> + <top>${pcstring('PAPERINFO.MARGINTOP')}</top> + <bottom>${pcstring('PAPERINFO.MARGINBOTTOM')}</bottom> + <left>${pcstring('PAPERINFO.MARGINLEFT')}</left> + <right>${pcstring('PAPERINFO.MARGINRIGHT')}</right> + </margins> + </paperinfo> + <directories> + <pcgen>${pcstring('DIR.PCGEN')}</pcgen> + <templates>${pcstring('DIR.TEMPLATES')}</templates> + <pcg>${pcstring('DIR.PCG')}</pcg> + <html>${pcstring('DIR.HTML')}</html> + <temp>${pcstring('DIR.TEMP')}</temp> + </directories> + <invalidtext> + <tohit>${pcstring('INVALIDTEXT.TOHIT')}</tohit> + <damage>${pcstring('INVALIDTEXT.DAMAGE')}</damage> + </invalidtext> + </export> + <unit_set> + <name>${pcstring('UNITSET')}</name> + <height_unit>${pcstring('UNITSET.HEIGHTUNIT')}</height_unit> + <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> + <weight_unit>${pcstring('UNITSET.WEIGHTUNIT')}</weight_unit> + </unit_set> + <!-- + ==================================== + ==================================== + BIO + ==================================== + ====================================--> + <basics> + <bonuses>${pcstring('BONUSLIST.STAT.STR')}</bonuses> + <bonuses>${pcstring('BONUSLIST.STAT.STR.TOTAL')}</bonuses> + <bonuses>${pcstring('BONUSLIST.CHECK.BASE')}</bonuses> + <bonuses>${pcstring('BONUSLIST.CHECK.BASE.TOTAL')}</bonuses> + <name>${pcstring('NAME')}</name> + <followerof>${pcstring('FOLLOWEROF')}</followerof> + <playername>${pcstring('PLAYERNAME')}</playername> + <charactertype>${pcstring('CHARACTERTYPE')}</charactertype> + <hero_points>${pcstring('VAR.HEROPOINTS.INTVAL')}</hero_points> + <age>${pcstring('AGE')}</age> + <alignment> + <long>${pcstring('ALIGNMENT')}</long> + <short>${pcstring('ALIGNMENT.SHORT')}</short> + </alignment> + <archetypes> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; trait , trait_has_next> + <archetype> + <name>${pcstring('ABILITY.Archetype.VISIBLE.${trait}.TYPE=Archetype')}</name> + <type>${pcstring('ABILITY.Archetype.VISIBLE.${trait}.TYPE=Archetype.TYPE')}</type> + </archetype> + </@loop> + </archetypes> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <bio>${pcstring('BIO')}</bio> + <birthday>${pcstring('BIRTHDAY')}</birthday> + <birthplace>${pcstring('BIRTHPLACE')}</birthplace> + <catchphrase>${pcstring('CATCHPHRASE')}</catchphrase> + <classes> + <@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> + <#if (pcvar(pcstring('CLASS.${class}.LEVEL')) > 0) > + <class> + <name>${pcstring('CLASS.${class}')}</name> + <abbreviation>${pcstring('CLASSABB.${class}')}</abbreviation> + <level>${pcstring('CLASS.${class}.LEVEL')}</level> + <bonuslist>${pcstring('CLASS.${class}.BONUSLIST')}</bonuslist> + <sequence>${class}</sequence> + <sequence_shortform><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/></sequence_shortform> + </class> + </#if> + </@loop><#-- Classes --> + <levels_total>${pcstring('TOTALLEVELS')}</levels_total> + <levels_ecl>${pcstring('ECL')}</levels_ecl> + <!-- shortform below should be removed - it can be derived from class info above --> + <shortform><@loop from=0 to=pcvar('countdistinct("CLASSES")')-1 ; class , class_has_next ><#rt> + <#t><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/><#if class_has_next> </#if> + <#t></@loop></shortform> + <!-- CLASSLIST is not extracted because we can derive it from the information above --> + </classes> + <deity> + <name>${pcstring('DEITY')}</name> + <alignment>${pcstring('DEITY.ALIGNMENT')}</alignment> + <description>${pcstring('DEITY.DESCRIPTION')}</description> + <domainlist>${pcstring('DEITY.DOMAINLIST')}</domainlist> + <favoredweapon>${pcstring('DEITY.FAVOREDWEAPON')}</favoredweapon> + <holyitem>${pcstring('DEITY.HOLYITEM')}</holyitem> + <pantheonlist>${pcstring('DEITY.PANTHEONLIST')}</pantheonlist> + <source>${pcstring('DEITY.SOURCE')}</source> + <special_abilities>${pcstring('DEITY.SA')}</special_abilities> + <appearance>${pcstring('DEITY.APPEARANCE')}</appearance> + <title>${pcstring('DEITY.TITLE')}</title> + <worshippers>${pcstring('DEITY.WORSHIPPERS')}</worshippers> + </deity> + <description>${pcstring('DESC')}</description> + <experience> + <current>${pcstring('EXP.CURRENT')}</current> + <next_level>${pcstring('EXP.NEXT')}</next_level> + <factor>${pcstring('EXP.FACTOR')}</factor> + <penalty>${pcstring('EXP.PENALTY')}</penalty> + </experience> + <eyes> + <color>${pcstring('COLOR.EYE')}</color> + </eyes> + <hair> + <color>${pcstring('COLOR.HAIR')}</color> + <length>${pcstring('LENGTH.HAIR')}</length> + </hair> + <skin> + <color>${pcstring('COLOR.SKIN')}</color> + </skin> + <cr>${pcstring('CR')}</cr> + <face> + <face>${pcstring('FACE')}</face> + <short>${pcstring('FACE.SHORT')}</short> + <squares>${pcstring('FACE.SQUARES')}</squares> + </face> + <favoredlist>${pcstring('FAVOREDLIST')}</favoredlist> + <followerlist>${pcstring('FOLLOWERLIST')}</followerlist> + <gender> + <long>${pcstring('GENDER.LONG')}</long> + <short>${pcstring('GENDER.SHORT')}</short> + </gender> + <handed>${pcstring('HANDED')}</handed> + <height> + <total>${pcstring('HEIGHT')}</total> + <feet>${pcstring('HEIGHT.FOOTPART')}</feet> + <inches>${pcstring('HEIGHT.INCHPART')}</inches> + </height> + <hitdice>${pcstring('HITDICE')}</hitdice> + <image>file:${pcstring('DIR.PCG')}/${pcstring('NAME')}.jpg</image> + <interests>${pcstring('INTERESTS')}</interests> + <languages> + <@loop from=0 to=pcvar('COUNT[LANGUAGES]-1') ; lang , lang_has_next> + <language>${pcstring('LANGUAGES.${lang}')}</language> + </@loop> + <language>${pcstring('ABILITYALL.ANY.0.ASPECT=Language.ASPECT.Language')}</language> + <all>${pcstring('LANGUAGES')}</all> + </languages> + <location>${pcstring('LOCATION')}</location> + <move> + <@loop from=0 to=pcvar('COUNT[MOVE]-1') ; move , move_has_next> + <move> + <name>${pcstring('MOVE.${move}.NAME')}</name> + <rate>${pcstring('MOVE.${move}.RATE')}</rate> + <squares>${pcstring('MOVE.${move}.SQUARES')}</squares> + <#if (pcstring("MOVE.${move}.NAME") = "Fly")> + <maneuverability>(${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')})</maneuverability> + </#if> + </move> + </@loop> + <all>${pcstring('MOVEMENT')}</all> + </move> + <personality> + <trait>${pcstring('PERSONALITY1')}</trait> + <trait>${pcstring('PERSONALITY2')}</trait> + </personality> + <portrait> + <portrait>${pcstring('PORTRAIT')}</portrait> + <portrait_thumb>${pcstring('PORTRAIT.THUMB')}</portrait_thumb> + </portrait> + <phobias>${pcstring('PHOBIAS')}</phobias> + <#if (pcstring("ABILITYALL.ANY.0.TYPE=RaceName.HASASPECT.RaceName") = "Y")> + <race>${pcstring('ABILITYALL.ANY.0.ASPECT=RaceName.ASPECT.RaceName')}</race> + <#else> + <race>${pcstring('RACE')}</race> + </#if> + <race> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Internal","ASPECT=RaceExtra")-1') ; ability , ability_has_next> + <raceextra>${pcstring('ABILITYALL.Internal.HIDDEN.${ability}.ASPECT.RaceExtra')}</raceextra> + </@loop> + <racetype>${pcstring('RACETYPE')}</racetype> + <@loop from=0 to=pcvar('COUNT[RACESUBTYPE]-1') ; racesubtype , racesubtype_has_next> + <racesubtype>${pcstring('RACESUBTYPE.${racesubtype}')}</racesubtype> + </@loop> + </race> + <reach> + <reach>${pcstring('REACH')}</reach> + <squares>${pcstring('REACH.SQUARES')}</squares> + </reach> + <region>${pcstring('REGION')}</region> + <reputation>${pcstring('VAR.REPUTATION.INTVAL')}</reputation> + <residence>${pcstring('RESIDENCE')}</residence> + <size> + <long>${pcstring('SIZELONG')}</long> + <short>${pcstring('SIZE')}</short> + </size> + <speechtendency>${pcstring('SPEECHTENDENCY')}</speechtendency> + <type>${pcstring('TYPE')}</type> + <vision> + <@loop from=0 to=pcvar('COUNT[VISION]-1') ; vision , vision_has_next> + <vision>${pcstring('VISION.${vision}')}</vision> + </@loop> + <all>${pcstring('VISION')}</all> + </vision> + <wealth>${pcstring('VAR.WEALTH.INTVAL')}</wealth> + <gold>${pcstring('GOLD')}</gold> + <weight> + <weight_unit>${pcstring('WEIGHT')}</weight_unit> + <weight_nounit>${pcstring('WEIGHT.NOUNIT')}</weight_nounit> + </weight> + <poolpoints> + <cost>${pcstring('POOL.COST')}</cost> + <current>${pcstring('POOL.CURRENT')}</current> + </poolpoints> + <notes> + <@loop from=0 to=pcvar('COUNT[NOTES]-1') ; note , note_has_next> + <#if (pcstring("NOTE.${note}.NAME") = "DM Notes")> + <#else> + <note> + <name>${pcstring('NOTE.${note}.NAME')}</name> + <value>${pcstring('NOTE.${note}.VALUE.')}</value> + </note> + + </#if> + </@loop> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=NotesSection")-1') ; ability , ability_has_next> + <note> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT.NotesSection')}</name> + <value>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT.Notes')}</value> + </note> + </@loop> + </notes> + </basics> + + <!-- Use ASPECT.NotesSection.x and ASPECT.Notes.y --> + <!-- + ==================================== + ==================================== + ABILITIES + ==================================== + ====================================--> + <abilities> + <@loop from=0 to=pcvar('COUNT[STATS]-1') ; stat , stat_has_next> + <ability> + <name> + <long>${pcstring('STAT.${stat}.LONGNAME')}</long> + <short>${pcstring('STAT.${stat}.NAME')}</short> + </name> + <score>${pcstring('STAT.${stat}')}</score> + <modifier>${pcstring('STAT.${stat}.MOD')}</modifier> + <!-- + Old BASE tag does not give stats with racial, and other permentant adjustments. + Use NOTEMP.NOEQUIP instead of BASE gives the correct results. + + <base>${pcstring('STAT.${stat}.BASE')}</base> + <basemod>${pcstring('STAT.${stat}.BASEMOD')}</basemod> + --> + <base>${pcstring('STAT.${stat}.NOTEMP.NOEQUIP')}</base> + <basemod>${pcstring('STAT.${stat}.MOD.NOTEMP.NOEQUIP')}</basemod> + + <noequip>${pcstring('STAT.${stat}.NOEQUIP')}</noequip> + <noequip_mod>${pcstring('STAT.${stat}.MOD.NOEQUIP')}</noequip_mod> + <no_temp_score>${pcstring('STAT.${stat}.NOTEMP')}</no_temp_score> + <no_temp_modifier>${pcstring('STAT.${stat}.MOD.NOTEMP')}</no_temp_modifier> + </ability> + </@loop> + </abilities> + <!-- + ==================================== + ==================================== + HIT POINTS + ==================================== + ====================================--> + <hit_points> + <usealternatedamage>${pcstring('VAR.UseAlternateDamage.INTVAL')}</usealternatedamage> + <points>${pcstring('HP')}</points> + <alternate>${pcstring('ALTHP')}</alternate> + <die>${pcstring('HITDICE')}</die> + <die_short>${pcstring('HITDICE.SHORT')}</die_short> + <current/> + <subdual/> + <damage_reduction>${pcstring('DR')}</damage_reduction> + <damage_threshold>${pcstring('VAR.DAMAGETHRESHOLD.INTVAL')}</damage_threshold> + <history> + <@loop from=1 to=pcvar('ECL') ; level , level_has_next> + <roll> + <level>${level}</level> + <roll>${pcstring('HPROLL.${level}')}</roll> + <stat>${pcstring('HPROLL.${level}.STAT')}</stat> + <total>${pcstring('HPROLL.${level}.TOTAL')}</total> + </roll> + </@loop> + </history> + </hit_points> + <!-- + ==================================== + ==================================== + ARMOR CLASS + ==================================== + ====================================--> + <armor_class> + <total>${pcstring('AC.Total')}</total> + <listing>${pcstring('BONUS.COMBAT.AC.LISTING')}</listing> + <flat>${pcstring('AC.Flatfooted')}</flat> + <touch>${pcstring('AC.Touch')}</touch> + <base>${pcstring('AC.Base')}</base> + <armor_bonus>${pcstring('AC.Armor')}</armor_bonus> + <shield_bonus>${pcstring('AC.Shield')}</shield_bonus> + <stat_mod>${pcstring('AC.Ability')}</stat_mod> + <size_mod>${pcstring('AC.Size')}</size_mod> + <natural>${pcstring('AC.NaturalArmor')}</natural> + <deflection>${pcstring('AC.Deflection')}</deflection> + <dodge>${pcstring('AC.Dodge')}</dodge> + <dodge_bonus>${pcstring('AC.Dodge')}</dodge_bonus> + <class_bonus>${pcstring('AC.ClassDefense')}</class_bonus> + <#if (gamemodename = "Modern" || gamemodename = "Darwins_World_2" || gamemodename = "Sidewinder") > + <equipment_bonus>${pcstring('AC.Equipment')}</equipment_bonus> + </#if> + <misc>${pcstring('AC.Misc')}</misc> + <insight>${pcstring('AC.Insight')}</insight> + <morale>${pcstring('AC.Morale')}</morale> + <sacred>${pcstring('AC.Sacred')}</sacred> + <profane>${pcstring('AC.Profane')}</profane> + <miss_chance/> + <max_dex>${pcstring('MAXDEX')}</max_dex> + <spell_failure>${pcstring('SPELLFAILURE')}</spell_failure> + <check_penalty>${pcstring('ACCHECK')}</check_penalty> + <spell_resistance>${pcstring('SR')}</spell_resistance> + </armor_class> + <!-- + ==================================== + ==================================== + INITIATIVE + ==================================== + ====================================--> + <initiative> + <total>${pcstring('INITIATIVEMOD')}</total> + <dex_mod>${pcstring('STAT.1.MOD')}</dex_mod> + <misc_mod>${pcstring('INITIATIVEMISC')}</misc_mod> + <spell_failure>${pcstring('SPELLFAILURE')}</spell_failure> + <check_penalty>${pcstring('ACCHECK')}</check_penalty> + <spell_resistance>${pcstring('SR')}</spell_resistance> + <hero_points>${pcstring('VAR.HEROPOINTS.INTVAL')}</hero_points> + </initiative> + <!-- + ==================================== + ==================================== + SKILLS + ==================================== + ====================================--> + <skillinfo> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <skillbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SkillBonus.ASPECT.SkillBonus')}</description> + </skillbonus> + </@loop> + </conditional_modifiers> + </skillinfo> + <skills> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <skillbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SkillBonus.ASPECT.SkillBonus')}</description> + </skillbonus> + </@loop> + </conditional_modifiers> + <skillpoints> + <total>${pcstring('SKILLPOINTS.TOTAL')}</total> + <used>${pcstring('SKILLPOINTS.USED')}</used> + <unused>${pcstring('SKILLPOINTS.UNUSED')}</unused> + <eclipse_total>${pcstring('VAR.CharacterSkillPts.INTVAL')}</eclipse_total> + </skillpoints> + <list_mods>${pcstring('SKILLLISTMODS')}</list_mods> + <#if (pcvar("VAR.Max_Rank_Display") > 0)> + <max_class_skill_level>${pcstring('VAR.Max_Rank_Display')}</max_class_skill_level> + <#else> + <max_class_skill_level>${pcstring('MAXSKILLLEVEL')}</max_class_skill_level> + </#if> + <max_cross_class_skill_level>${pcstring('MAXCCSKILLLEVEL')}</max_cross_class_skill_level> + <@loop from=0 to=pcvar('count("SKILLSIT", "VIEW=VISIBLE_EXPORT")')-1 ; skill ,skill_has_next> + <skill> + <name>${pcstring('SKILLSIT.${skill}')}</name> + <ranks>${pcstring('SKILLSIT.${skill}.RANK')}</ranks> + <mod>${pcstring('SKILLSIT.${skill}.MOD')}<!-- Mods from abilities, equipment, etc --> + </mod> + <skill_mod>${pcstring('SKILLSIT.${skill}.TOTAL')}</skill_mod> + <ability_mod>${pcstring('SKILLSIT.${skill}.ABMOD')}<!-- Mod from the key ability --> + </ability_mod> + <misc_mod>${pcstring('SKILLSIT.${skill}.MISC')}<!-- This is a calc value of TOTAL-RANK-ABMOD --> + </misc_mod> + <ability>${pcstring('SKILLSIT.${skill}.ABILITY')}</ability> + <synergy>${pcstring('SKILLSIT.${skill}.SYNERGY')}</synergy> + <untrained>${pcstring('SKILLSIT.${skill}.UNTRAINED')}</untrained> + <exclusive>${pcstring('SKILLSIT.${skill}.EXCLUSIVE')}</exclusive> + <trained_total>${pcstring('SKILLSIT.${skill}.TRAINED_TOTAL')}</trained_total> + <exclusive_total>${pcstring('SKILLSIT.${skill}.EXCLUSIVE_TOTAL')}</exclusive_total> + <classes>${pcstring('SKILLSIT.${skill}.CLASSES')}</classes> + <type>${pcstring('SKILLSIT.${skill}.TYPE')}</type> + </skill> + </@loop> + + <!-- Skills --> + </skills> + <!-- + ==================================== + ==================================== + SAVING THROWS + ==================================== + ====================================--> + <saving_throws> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SaveBonus")-1') ; ability , ability_has_next> + <savebonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SaveBonus.ASPECT.SaveBonus')}</description> + </savebonus> + </@loop> + </conditional_modifiers> + <@loop from=0 to=pcvar('COUNT[CHECKS]-1') ; check , check_has_next> + <#assign checkName = pcstring('CHECK.${check}.NAME')?lower_case /> + <#assign checkShortName = checkName /> + <#if (checkName = 'reflex')> + <#assign checkShortName = checkName?substring(0,3) /> + <#elseif (checkName?length >= 4) > + <#assign checkShortName = checkName?substring(0,4) /> + </#if> + <saving_throw> + <name> + <long>${checkName}</long> + <short>${checkShortName}</short> + </name> + <#if (checkName = 'fortitude')> + <ability>constitution</ability> + <#elseif (checkName = 'reflex')> + <ability>dexterity</ability> + <#elseif (checkName = 'will')> + <ability>wisdom</ability> + <#else> + <ability></ability> + </#if> + <total>${pcstring('CHECK.${check}.TOTAL')}</total> + <base>${pcstring('CHECK.${check}.BASE')}</base> + <abil_mod>${pcstring('CHECK.${check}.STATMOD')}</abil_mod> + <feats>${pcstring('CHECK.${check}.FEATS')}</feats> + <magic_mod>${pcstring('CHECK.${check}.MAGIC')}</magic_mod> + <misc_mod>${pcstring('CHECK.${check}.MISC.NOMAGIC.NOSTAT')}</misc_mod> + <misc_w_magic_mod>${pcstring('CHECK.${check}.MISC.NOSTAT')}</misc_w_magic_mod> + <race>${pcstring('CHECK.${check}.RACE')}</race> + <epic_mod>${pcstring('CHECK.${check}.EPIC')}</epic_mod> + <temp_mod/> + </saving_throw> + </@loop> + </saving_throws> + <!-- + ==================================== + ==================================== + ATTACK + ==================================== + ====================================--> + <attack> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=CombatBonus")-1') ; ability , ability_has_next> + <combatbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=CombatBonus.ASPECT.CombatBonus')}</description> + </combatbonus> + </@loop> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SaveBonus")-1') ; ability , ability_has_next> + <savebonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SaveBonus.ASPECT.SaveBonus')}</description> + </savebonus> + </@loop> + </conditional_modifiers> + + <melee> + <total>${pcstring('ATTACK.MELEE.TOTAL')}</total> + <total_short>${pcstring('ATTACK.MELEE.TOTAL.SHORT')}</total_short> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <!-- ${pcstring('ATTACK.MELEE.BASE')} --> + <base_attack_bonus>${pcstring('ATTACK.MELEE')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.MELEE.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.MELEE.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.MELEE.MISC')}</misc_mod> + <epic_mod>${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}</epic_mod> + <!-- ${pcstring('ATTACK.MELEE.EPIC')} --> + <temp_mod/> + </melee> + <ranged> + <total>${pcstring('ATTACK.RANGED.TOTAL')}</total> + <bab>${pcstring('ATTACK.RANGED.BASE')}</bab> + <!-- ${pcstring('ATTACK.RANGED.BASE')} --> + <base_attack_bonus>${pcstring('ATTACK.RANGED')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.RANGED.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.RANGED.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.RANGED.MISC')}</misc_mod> + <epic_mod>${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}</epic_mod> + <!-- ${pcstring('ATTACK.RANGED.EPIC')} --> + <temp_mod/> + </ranged> + <!-- Either CMB block, or Grapple Block --> + <#-- |IIF(HASVAR:CMB.OR.HASFEAT:CMB Output)| --> + <#if (pchasvar('CMB') || pcboolean('VAR.HASFEAT:CMB Output')) > + <cmb> + <!-- Base stuff for standard block --> + <title>CMB</title> + <total>${pcstring('VAR.CMB.INTVAL.SIGN')}</total> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <base_attack_bonus>${pcstring('ATTACK.MELEE')}</base_attack_bonus> + <stat_mod>${pcstring('VAR.CMB_STAT.INTVAL.SIGN')}</stat_mod> + <size_mod>${pcstring('VAR.CMB_SizeMod.INTVAL.SIGN')}</size_mod> + <misc_mod></misc_mod> <#-- This formula is giving incorrect results - STAT/STAT ${pcstring('VAR.CMB-ATTACK.MELEE.BASE-VAR.CMB_STAT-VAR.CMB_SizeMod.INTVAL.SIGN')} --> + <epic_mod/> + <temp_mod/> + <!-- Base values (not yet used) --> + <grapple_base>${pcstring('VAR.CMB_Grapple.INTVAL.SIGN')}</grapple_base> + <trip_base>${pcstring('VAR.CMB_Trip.INTVAL.SIGN')}</trip_base> + <disarm_base>${pcstring('VAR.CMB_Disarm.INTVAL.SIGN')}</disarm_base> + <sunder_base>${pcstring('VAR.CMB_Sunder.INTVAL.SIGN')}</sunder_base> + <bullrush_base>${pcstring('VAR.CMB_Bull.INTVAL.SIGN')}</bullrush_base> + <overrun_base>${pcstring('VAR.CMB_Overrun.INTVAL.SIGN')}</overrun_base> + <!-- Defense values --> + <#if (pchasvar('CMB'))> + <!-- Pathfinder (final release) --> + <!-- Attack values --> + <grapple_attack>${pcstring('VAR.CMB_Grapple.INTVAL.SIGN')}</grapple_attack> + <trip_attack>${pcstring('VAR.CMB_Trip.INTVAL.SIGN')}</trip_attack> + <disarm_attack>${pcstring('VAR.CMB_Disarm.INTVAL.SIGN')}</disarm_attack> + <sunder_attack>${pcstring('VAR.CMB_Sunder.INTVAL.SIGN')}</sunder_attack> + <bullrush_attack>${pcstring('VAR.CMB_BullRush.INTVAL.SIGN')}</bullrush_attack> + <overrun_attack>${pcstring('VAR.CMB_Overrun.INTVAL.SIGN')}</overrun_attack> + <!-- Defense values --> + <defense>${pcstring('VAR.CMD.INTVAL')}</defense> + <grapple_defense>${pcstring('VAR.CMD_Grapple.INTVAL')}</grapple_defense> + <trip_defense> + <#if (pchasvar("CantBeTripped"))> + Immune + <#else> + ${pcstring('VAR.CMD_Trip.INTVAL')} + </#if> + </trip_defense> + <disarm_defense>${pcstring('VAR.CMD_Disarm.INTVAL')}</disarm_defense> + <sunder_defense>${pcstring('VAR.CMD_Sunder.INTVAL')}</sunder_defense> + <bullrush_defense>${pcstring('VAR.CMD_BullRush.INTVAL')}</bullrush_defense> + <overrun_defense>${pcstring('VAR.CMD_Overrun.INTVAL')}</overrun_defense> + + <#else> + <!-- Pathfinder Beta version --> + <!-- Attack values --> + <grapple_attack>${pcstring('VAR.CMB_Grapple_OFF.INTVAL.SIGN')}</grapple_attack> + <trip_attack>${pcstring('VAR.CMB_Trip_OFF.INTVAL.SIGN')}</trip_attack> + <disarm_attack>${pcstring('VAR.CMB_Disarm_OFF.INTVAL.SIGN')}</disarm_attack> + <sunder_attack>${pcstring('VAR.CMB_Sunder_OFF.INTVAL.SIGN')}</sunder_attack> + <bullrush_attack>${pcstring('VAR.CMB_Bull_OFF.INTVAL.SIGN')}</bullrush_attack> + <overrun_attack>${pcstring('VAR.CMB_Overrun_OFF.INTVAL.SIGN')}</overrun_attack> + <!-- Defense values --> + <defense>${pcvar('VAR.CMB+VAR.CMB_DEF.INTVAL')}</defense> + <grapple_defense>${pcstring('VAR.CMB_Grapple_DEF.INTVAL')}</grapple_defense> + <trip_defense>${pcstring('VAR.CMB_Trip_DEF.INTVAL')}</trip_defense> + <disarm_defense>${pcstring('VAR.CMB_Disarm_DEF.INTVAL')}</disarm_defense> + <sunder_defense>${pcstring('VAR.CMB_Sunder_DEF.INTVAL')}</sunder_defense> + <bullrush_defense>${pcstring('VAR.CMB_Bull_DEF.INTVAL')}</bullrush_defense> + <overrun_defense>${pcstring('VAR.CMB_Overrun_DEF.INTVAL')}</overrun_defense> + </#if> + </cmb> + <#else> + <grapple> + <total>${pcstring('ATTACK.GRAPPLE.TOTAL')}</total> + <bab>${pcstring('ATTACK.GRAPPLE.BASE')}</bab> + <base_attack_bonus>${pcstring('ATTACK.GRAPPLE')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.GRAPPLE.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.GRAPPLE.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.GRAPPLE.MISC')}</misc_mod> + <epic_mod>${pcstring('ATTACK.GRAPPLE.EPIC')}</epic_mod> + <temp_mod/> + </grapple> + </#if> + <!-- End CMB / Grapple Block --> + </attack> + <!-- + ==================================== + ==================================== + WEAPONS + ==================================== + ====================================--> + <#macro weapCommonBlock weap> + <common> + <name> + <short>${pcstring('WEAPON.${weap}.NAME')}</short> + <long>${pcstring('WEAPON.${weap}.LONGNAME')}</long> + <output>${pcstring('WEAPON.${weap}.OUTPUTNAME')}</output> + </name> + <category>${pcstring('WEAPON.${weap}.CATEGORY')}</category> + <critical> + <range>${pcstring('WEAPON.${weap}.CRIT')}</range> + <multiplier>${pcstring('WEAPON.${weap}.MULT')}</multiplier> + </critical> + <to_hit> + <hit>${pcstring('WEAPON.${weap}.HIT')}</hit> + <magic_hit>${pcstring('WEAPON.${weap}.MAGICHIT')}</magic_hit> + <total_hit>${pcstring('WEAPON.${weap}.TOTALHIT')}</total_hit> + </to_hit> + <feat> + <hit>${pcstring('WEAPON.${weap}.FEATHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.FEATDAMAGE')}</damage> + </feat> + <magic> + <hit>${pcstring('WEAPON.${weap}.MAGICHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.MAGICDAMAGE')}</damage> + </magic> + <template> + <hit>${pcstring('WEAPON.${weap}.TEMPLATEHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.TEMPLATEDAMAGE')}</damage> + </template> + <hand>${pcstring('WEAPON.${weap}.HAND')}</hand> + <num_attacks>${pcstring('WEAPON.${weap}.NUMATTACKS')}</num_attacks> + <reach>${pcstring('WEAPON.${weap}.REACH')}</reach> + <reachunit>${pcstring('WEAPON.${weap}.REACHUNIT')}</reachunit> + <size>${pcstring('WEAPON.${weap}.SIZE')}</size> + <#if (pcstring("WEAPON.${weap}.ISTYPE.Natural.OR.WEAPON.${weap}.CATEGORY") = "NATURAL")> + <special_properties>${pcstring('ABILITYALL.Special Ability.${weap}.ASPECT.UnarmedNotes')}</special_properties> + <#else> + <special_properties>${pcstring('WEAPON.${weap}.SPROP')}</special_properties> + </#if> + <type>${pcstring('WEAPON.${weap}.TYPE')}</type> + <weight>${pcstring('WEAPON.${weap}.WT')}</weight> + <attacks>${pcstring('WEAPON.${weap}.ATTACKS')}</attacks> + <heft>${pcstring('WEAPON.${weap}.HEFT')}</heft> + <range>${pcstring('WEAPON.${weap}.RANGE')}</range> + <sizemod>${pcstring('WEAPON.${weap}.SIZEMOD')}</sizemod> + <basehit>${pcstring('WEAPON.${weap}.BASEHIT')}</basehit> + <misc>${pcstring('WEAPON.${weap}.MISC')}</misc> + <damage>${pcstring('WEAPON.${weap}.DAMAGE')}</damage> + <damagebonus>${pcstring('WEAPON.${weap}.DAMAGEBONUS')}</damagebonus> + <basedamagebonus>${pcstring('WEAPON.${weap}.BASEDAMAGEBONUS')}</basedamagebonus> + <thdamagebonus>${pcstring('WEAPON.${weap}.THDAMAGEBONUS')}</thdamagebonus> + <ohdamagebonus>${pcstring('WEAPON.${weap}.OHDAMAGEBONUS')}</ohdamagebonus> + <rateoffire>${pcstring('WEAPON.${weap}.RATEOFFIRE')}</rateoffire> + <islight>${pcstring('WEAPON.${weap}.ISLIGHT')}</islight> + <sequence>${weap}</sequence> + </common> + </#macro> + <#macro weapMeleeBlock weap> + <melee> + <invalidtext> + <tohit>${pcstring('INVALIDTEXT.TOHIT')}</tohit> + <damage>${pcstring('INVALIDTEXT.DAMAGE')}</damage> + </invalidtext> + <hand>${pcstring('WEAPON.${weap}.HAND')}</hand> + <w1_h1_p> + <!-- One weapon, 1 hand, primary hand --> + <to_hit>${pcstring('WEAPON.${weap}.BASEHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w1_h1_p> + <w1_h1_o> + <!-- One weapon, 1 handed, offhand --> + <to_hit>${pcstring('WEAPON.${weap}.OHHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.OHDAMAGE')}</damage> + </w1_h1_o> + <w1_h2> + <!-- One weapon, 2 handed --> + <to_hit>${pcstring('WEAPON.${weap}.THHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.THDAMAGE')}</damage> + </w1_h2> + <w2_p_oh> + <!-- Two weapons, this weapon in primary hand, other hand with heavy weapon --> + <to_hit>${pcstring('WEAPON.${weap}.TWPHITH')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w2_p_oh> + <w2_p_ol> + <!-- Two weapons, this weapon in primary hand, other hand with light weapon --> + <to_hit>${pcstring('WEAPON.${weap}.TWPHITL')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w2_p_ol> + <w2_o> + <!-- Two weapons, this weapon in off-hand --> + <to_hit>${pcstring('WEAPON.${weap}.TWOHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.OHDAMAGE')}</damage> + </w2_o> + </melee> + </#macro> + <#macro weapRangeBlock weap range> + <#if (pcstring('WEAPON.${weap}.RANGELIST.${range}') != "") > + <range> + <distance>${pcstring('WEAPON.${weap}.RANGELIST.${range}')}</distance> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${range}.DAMAGE')}</damage> + <basehit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.BASEHIT')}</basehit> + <tohit_offhand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.OHHIT')}</tohit_offhand> + <tohit_twohand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.BASEHIT')}</tohit_twohand> + <tohit_2weap_heavy>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWPHITH')}</tohit_2weap_heavy> + <tohit_2weap_light>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWPHITL')}</tohit_2weap_light> + <tohit_2weap_offhand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWOHIT')}</tohit_2weap_offhand> + <@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + <special_properties>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}.SPROP')}</special_properties> + <quantity>${pcstring('EQ.IS.WEAPON.${weap}.CONTENTS.${ammo}.QTY')}</quantity> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.CONTENTS.${ammo}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${range}.CONTENTS.${ammo}.DAMAGE')}</damage> + </ammunition> + </@loop> + </range> + </#if> + </#macro> + + <weapons> + <#if (pcvar("VAR.UseMartialArts") = 1)> + <martialarts> + <total>${pcstring('WEAPONH.TOTALHIT')}</total> + <#if (pcvar("VAR.MartialArtsBonusDamage") < 0)> + <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}-${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}+${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('WEAPONH.CRIT')}/x${pcstring('WEAPONH.MULT')}</critical> + <!-- Should be changed to a variable due to improved crit --> + <reach>${pcstring('REACH')}</reach> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1') ; NaturalAttack , NaturalAttack_has_next> + <special_property>${pcstring('ABILITYALL.Special Ability.${NaturalAttack}.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes')}</special_property> + </@loop> + </martialarts> + <#else> + <unarmed> + <total>${pcstring('WEAPONH.TOTALHIT')}</total> + <damage>${pcstring('WEAPONH.DAMAGE')}</damage> + <critical>${pcstring('WEAPONH.CRIT')}/x${pcstring('WEAPONH.MULT')}</critical> + <!-- Should be changed to a variable due to improved crit --> + <reach>${pcstring('REACH')}</reach> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1') ; NaturalAttack , NaturalAttack_has_next> + <special_property>${pcstring('ABILITYALL.Special Ability.${NaturalAttack}.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes')}</special_property> + </@loop> + <!-- Commenting this out (will need a test as well) + 3.0 uses "Subdual", 3.5 uses "nonlethal". We'll need a separate node for both. --> + <#if (gamemodename = "3e")> + <#if (pcvar('VAR.Unarmed') > 0)> + <type>(subdual or normal)</type> + <#else> + <type>(subdual only)</type> + </#if> + <#else> + <#if (pcvar('VAR.UnarmedLethal') > 0)> + <type>(lethal or nonlethal)</type> + <#else> + <type>(nonlethal only)</type> + </#if> + </#if> + </unarmed> + </#if> + <!-- Spirit Weapon - Melee --> + <#if (pcstring("VAR.UseSpiritWeaponMelee") = "1")> + <spiritweaponmelee> + <total>+${pcstring('VAR.SpiritWeaponMeleeToHit.INTVAL')}</total> + <#if (pcvar("VAR.SpiritWeaponMeleeBonusDamage") < 0)> + <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('VAR.SpiritWeaponMeleeCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponMeleeCritMult.INTVAL')}</critical> + <reach>${pcstring('REACH')}</reach> + </spiritweaponmelee> + </#if> + + <!-- Spirit Weapon - Ranged --> + <#if (pcstring("VAR.UseSpiritWeaponRanged") = "1")> + <spiritweaponranged> + <total>+${pcstring('VAR.SpiritWeaponRangedToHit.INTVAL')}</total> + <#if (pcvar("VAR.SpiritWeaponRangedBonusDamage") < 0)> + <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('VAR.SpiritWeaponRangedCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponRangedCritMult.INTVAL')}</critical> + <range>${pcstring('VAR.SpiritWeaponRangedRange.INTVAL')}</range> + </spiritweaponranged> + </#if> + <!-- End Spirit Weapon - Ranged --> + + <!-- Blank Natural Attack --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","NAME=BlankNaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> + <naturalattack> + <name>Weapon</name> + <tohit></tohit> + <damage></damage> + <type></type> + <threat></threat> + <reach></reach> + <range></range> + <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> + <notes>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.DESC')}</notes> + </naturalattack> + </@loop> + + <!-- Natural Attack --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> + <naturalattack> + <name>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackName')}</name> + <tohit>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackToHit')}</tohit> + <damage>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackDamage')}</damage> + <type>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackType')}</type> + <threat>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackThreatRange')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult')}</threat> + <reach>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackReach.INTVAL')}</reach> + <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> + <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> + <notes>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.DESC')}</notes> + <!--> Used to Validate Word Toggle between Crit / Mult vs. Crit <--> + <critmult>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult')}</critmult> + <!--${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackDamageBonus.SIGN')}--> + <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> + </naturalattack> + </@loop> + + <#-- Equipped weapon loop --> + <@loop from=0 to=pcvar('COUNT[EQTYPE.WEAPON]-1') ; weap , weap_has_next><#-- TODO: Loop was of early exit type 1 --> + <#assign weaponCategory> + ${pcstring('WEAPON.${weap}.CATEGORY')?lower_case} + </#assign> + <#if (weaponCategory?contains('both'))> + + <#if (weaponCategory?contains('ranged'))> + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <@weapMeleeBlock weap="${weap}" /> + </#if><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <#if (weaponCategory?contains('ranged'))><#-- We work out now whether this is a Ranged Only or Thrown --> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))><#-- Valid only if we find the Thrown Value --> + <ranges> + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </ranges> + <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) but IS Ranged --> + + <!-- New Ranges Section --> + <ranges> + <rangetype>Ranged</rangetype><!-- ranged first --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </ranges> + + </#if><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) --> + </weapon> + <#else><#-- CATEGORY:Ranged) --> + </#if><#-- CATEGORY:Ranged) --> + <!-- End New Ranges Section --> + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:BOTH) --> + <#if (weaponCategory?contains('ranged'))> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <#if (pcstring("WEAPON.${weap}.CONTENTS") = "0")> + <ranges> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><!-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + <#else><#-- Thrown --> + <rangetype>Ranged</rangetype><!-- ranged second --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </#if><#-- Thrown --> + </ranges> + <#else><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> + <@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next> + <ranges> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + <special_properties>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}.SPROP')}</special_properties> + <quantity>${pcstring('EQ.IS.WEAPON.${weap}.CONTENTS.${ammo}.QTY')}</quantity> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${weap}.CONTENTS.${ammo}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${weap}.CONTENTS.${ammo}.DAMAGE')}</damage> + </ammunition> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + </ammunition> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + <#else><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> + <rangetype>Ranged</rangetype><!-- Ranged third --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + + </#if><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> + + </ranges> + </@loop><#-- FOR,${ammo},0,WEAPON.${weap}.CONTENTS-1,1,1 --> + </#if><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> + </weapon> + + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <!-- Request to remove the Double Weapon Block OS-133 --> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Double') || pcboolean('WEAPON.${weap}.ISTYPE.TwoHanded') || weaponCategory?contains('non-standard-melee') || weaponCategory?contains('natural'))> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <simple> + <to_hit>${pcstring('WEAPON.${weap}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.DAMAGE')}</damage> + <range>${pcstring('WEAPON.${weap}.RANGE')}</range> + <!-- This is an Addition by Itwally for the Monk Flurry of Blows Fix per DATA-73 --> + <name>${pcstring('WEAPON.${weap}.NAME')}</name> + <class><@loop from=0 to=pcvar('countdistinct("CLASSES")')-1 ; class , class_has_next ><#rt> + <#t><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/><#if class_has_next> </#if> + <#t></@loop></class> + <!-- End DATA-73 Work Around--> + </simple> + </weapon> + <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Double.OR.WEAPON.${weap}.CATEGORY:Non-Standard-Melee) --> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <@weapMeleeBlock weap="${weap}" /> + </weapon> + </#if><#-- IIF(WEAPON.weap}.ISTYPE.Double.OR.WEAPON.${weap}.CATEGORY:Non-Standard-Melee) --> + </#if><#-- IIF(WEAPON.weap}.CATEGORY:Ranged) --> + </#if><#-- IIF(WEAPON.weap}.CATEGORY:BOTH) --> + </@loop><#-- FOR,weap},0,COUNT[EQTYPE.WEAPON]-1,1,1 --> + </weapons> + <!-- + ==================================== + ==================================== + ARMOR + ==================================== + ====================================--> + <protection> + <@loop from=0 to=pcvar('COUNT[EQTYPE.Armor]-1') ; armor , armor_has_next> + <armor> + <name>${pcstring('ARMOR.Armor.ALL.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.Armor.ALL.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.Armor.ALL.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.Armor.ALL.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.Armor.ALL.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.Armor.ALL.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.Armor.ALL.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.Armor.ALL.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.Armor.ALL.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.Armor.ALL.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.Armor.ALL.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.Armor.ALL.${armor}.WT')}</wt> + <fulltype>${pcstring('EQTYPE.Armor.${armor}.TYPE')}</fulltype> + <location>${pcstring('EQTYPE.Armor.${armor}.LOCATION')}</location> + </armor> + </@loop> + <@loop from=0 to=pcvar('COUNT[EQTYPE.SHIELD]-1') ; armor , armor_has_next> + <shield> + <name>${pcstring('ARMOR.SHIELD.ALL.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.SHIELD.ALL.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.SHIELD.ALL.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.SHIELD.ALL.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.SHIELD.ALL.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.SHIELD.ALL.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.SHIELD.ALL.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.SHIELD.ALL.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.SHIELD.ALL.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.SHIELD.ALL.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.SHIELD.ALL.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.SHIELD.ALL.${armor}.WT')}</wt> + </shield> + </@loop> + <@loop from=0 to=pcvar('COUNT[EQTYPE.ACITEM]-1') ; armor , armor_has_next> + <item> + <name>${pcstring('ARMOR.ACITEM.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.ACITEM.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.ACITEM.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.ACITEM.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.ACITEM.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.ACITEM.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.ACITEM.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.ACITEM.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.ACITEM.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.ACITEM.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.ACITEM.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.ACITEM.${armor}.WT')}</wt> + </item> + </@loop> + </protection> + <!-- + ==================================== + ==================================== + CLASS-DEPENDANT FEATURES + ==================================== + ====================================--> + <class_features> + <!-- D&D 3.0 --> + <#if (pcvar("VAR.BardicMusicLevel") >= 1) > + <bardic_music> + <uses_per_day>${pcstring('VAR.BardicMusicLevel.INTVAL')}</uses_per_day> + <effects>Effects (Perform ranks required)</effects> + <text>Inspire Courage(3), Countersong(3), Fascinate(3),Inspire Competence(6), Suggestion(9), Inspire Greatness(12)</text> + </bardic_music> + </#if> + <!-- D&D 3.5 --> + <#if (pcvar("VAR.BardicMusicTimes") >= 1) > + <bardic_music> + <uses_per_day>${pcstring('VAR.BardicMusicTimes.INTVAL')}</uses_per_day> + <text> + </#if> + <#if (pcvar("VAR.CountersongDuration") >= 1) > + Countersong(duration = ${pcstring('VAR.CountersongDuration.INTVAL')} rounds) + </#if> + <#if (pcvar("VAR.FascinateCreatures.INTVAL") >= 1) > + Fascinate(up to ${pcstring('VAR.FascinateCreatures.INTVAL')} creatures for up to ${pcstring('VAR.FacinateDuration.INTVAL')} rounds) + </#if> + <#if (pcvar("VAR.InspireCourageSaves") >= 1) > + Inspire Courage(save bonus = ${pcstring('VAR.InspireCourageSaves.INTVAL.SIGN')}, attack and damage bonus = ${pcstring('VAR.InspireCourageAttack.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.InspireCompetenceBonus.INTVAL") >= 1) > + Inspire Competence(skill check bonus = ${pcstring('VAR.InspireCompetenceBonus.INTVAL.SIGN')} for up to ${pcstring('VAR.InspireCompetenceDuration.INTVAL')} minutes) + </#if> + <#if (pcvar("VAR.SingleSuggestionDC.INTVAL") >= 1) > + Suggestion(DC: ${pcstring('VAR.SingleSuggestionDC.INTVAL')}) + </#if> + <#if (pcvar("VAR.InspireGreatnessAllies.INTVAL") >= 1) > + Inspire Greatness(number of allies = ${pcstring('VAR.InspireGreatnessAllies.INTVAL')}, bonus HD = ${pcstring('VAR.InspireGreatnessHD.INTVAL')}, attack bonus = ${pcstring('VAR.InspireGreatnessAttack.INTVAL.SIGN')}, Fortitude bonus = ${pcstring('VAR.InspireGreatnessSaves.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.SongOfFreedomLVL.INTVAL") >= 1) > + Song of Freedom(effective caster level = ${pcstring('VAR.SongOfFreedomLVL.INTVAL')}) + </#if> + <#if (pcvar("VAR.InspireHeroicsAllies.INTVAL") >= 1) > + Inspire Greatness(number of allies = ${pcstring('VAR.InspireHeroicsAllies.INTVAL')}, save bonus = ${pcstring('VAR.InspireHeroicsSaves.INTVAL.SIGN')}, dodge bonus = ${pcstring('VAR.InspireHeroicsDodge.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.MassSuggestionDC.INTVAL") >= 1) > + Mass Suggestion(DC: ${pcstring('VAR.MassSuggestionDC.INTVAL')}) + </#if> + <#if (pcvar("VAR.BardicMusicTimes") >= 1) > + </text> + </bardic_music> + </#if> <!-- Bard --> + + + + + <!-- Pathfinder --> + <#if (pcvar("VAR.RageLVL") >= 1) > <!-- If character can Rage --> + <rage> + <uses_per_day>${pcstring('VAR.RageDuration.INTVAL')}</uses_per_day> + <uses_per_day.title>Rounds/day</uses_per_day.title> + </rage> + </#if> <!-- Character Rage --> + <#if (pcvar("VAR.RageTimes") >= 1) > <!-- If character can Rage --> + <rage> + <uses_per_day>${pcstring('VAR.RageTimes.INTVAL')}</uses_per_day> + <uses_per_day.title>Uses per day</uses_per_day.title> + <#if (pcboolean('ABILITYALL.Special Ability.0.TYPE=RageDescription.HASASPECT.RageDescription')) > + <description>${pcstring('ABILITYALL.Special Ability.0.TYPE=RageDescription.ASPECT.RageDescription')}</description> + <#else> + <description>The Barbarian gains +${pcstring('VAR.RageStrBonus.INTVAL')} to Strength, +${pcstring('VAR.RageConBonus.INTVAL')} to Constitution, and a +${pcstring('VAR.RageMorale.INTVAL')} morale bonus on Will saves, but suffers a -${pcstring('VAR.RageACPenalty.INTVAL')} penalty to AC for ${pcvar('VAR.RageConBonus.INTVAL+3')} rounds. At the end of the rage, the barbarian is fatigued (-2 to Strength, -2 to Dexterity, can't charge or run) for the duration of that encounter. The barbarian can only rage once per encounter. Entering a rage takes no time itself, but the barbarian can only do it during his action.</description> + </#if> + </rage> + <!-- this stuff needs a bit of work to display correct info for both 3e and 3.5e properly. - Tir Gwaith --> + </#if> <!-- Character Rage --> + + <!-- Turning ability --> + + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=TurnType")-1') ; turncount , turncount_has_next> + <turning kind="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnKind')}" type="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnType')}"> + <level>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnLevel.INTVAL')}</level> + <turn_check>1d20${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnCheck.INTVAL.SIGN')}</turn_check> + <damage>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnDamage')}</damage> + <uses_per_day>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnTimes.INTVAL')}</uses_per_day> + <notes>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnNotes')}</notes> + </turning> + </@loop> + + <!-- Eclipse Channeling --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=ChannelingType")-1') ; eclipsecount , eclipsecount_has_next> + <eclipse_channeling kind="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingKind')}" type="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingType')}"> + <level>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingLevel.INTVAL')}</level> + <channeling_check>1d20${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingCheck.INTVAL.SIGN')}</channeling_check> + <intensity>1d20${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingIntensity.INTVAL.SIGN')}</intensity> + <channel_intensity>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingIntensity.INTVAL')}</channel_intensity> + <damage>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitude')}${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeBonus.SIGN')}${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeFactor')}</damage> + <damage_bonus>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeBonus')}</damage_bonus> + <uses_per_day>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingUses.INTVAL')}</uses_per_day> + <range>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingRange.INTVAL')}</range> + <notes>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingNotes')}</notes> + <factor>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeFactor')}</factor> + </eclipse_channeling> + </@loop> + + <!-- Channel Energy --> + <#if (pcvar("VAR.ChannelEnergyLVL") >= 1) > + <channel_energy> + <level>${pcstring('VAR.ChannelEnergyLVL.INTVAL')}</level> + <uses_per_day>${pcstring('VAR.ChannelEnergyTimes.INTVAL')}</uses_per_day> + <uses_per_day.title>Uses per day</uses_per_day.title> + <save_dc>${pcstring('VAR.ChannelEnergyDC.INTVAL')}</save_dc> + <dice>${pcstring('VAR.ChannelEnergyDice.INTVAL')}</dice> + <die_size>${pcstring('VAR.ChannelEnergyDieSize.INTVAL')}</die_size> + <#if (pcstring("VAR.ChannelPositiveEnergyDC") = "1")> + <description>You can unleash a wave of positive energy dealing ${pcstring('VAR.ChannelEnergyDice.INTVAL')}d${pcstring('VAR.ChannelEnergyDieSize.INTVAL')} (DC ${pcstring('VAR.ChannelEnergyDC.INTVAL')} for half)</description> + <#else> + <description>You can unleash a wave of negative energy dealing ${pcstring('VAR.ChannelEnergyDice.INTVAL')}d${pcstring('VAR.ChannelEnergyDieSize.INTVAL')} (DC ${pcstring('VAR.ChannelEnergyDC.INTVAL')} for half)</description> + </#if> + </channel_energy> + </#if> + + <#if (pcvar("VAR.KiPoolLVL") >= 1) > + <ki_pool> + <uses_per_day>${pcstring('VAR.KiPoints.INTVAL')}</uses_per_day> + </ki_pool> + </#if> <!-- 3.0 stunning fist --> + + <#if (pcvar("VAR.StunningAttack") >= 1) > + <stunning_fist> + <save_dc>${pcstring('VAR.StunDC.INTVAL')}</save_dc> + <uses_per_day>${pcstring('VAR.StunningAttack.INTVAL')}</uses_per_day> + </stunning_fist> + </#if> <!-- 3.0 stunning fist --> + + <#if (pcvar("VAR.StunningFistAttack") >= 1) > + <stunning_fist> + <save_dc>${pcstring('VAR.StunningFistDC.INTVAL')}</save_dc> + <uses_per_day>${pcstring('VAR.StunningFistAttack.INTVAL')}</uses_per_day> + <description>You know just where to strike to temporarily stun a foe. ${pcstring('VAR.StunningFistAttack.INTVAL')}/day (DC ${pcstring('VAR.StunningFistDC.INTVAL')})</description> + </stunning_fist> + </#if> <!-- 3.5 stunning fist --> + + <#if (pcvar("VAR.WholenessHpLVL") >= 1) > + <wholeness_of_body> + <hp_per_day>${pcstring('VAR.WholenessHpLVL.INTVAL*2')}</hp_per_day> + </wholeness_of_body> + </#if> <!-- 3.0 wholeness of body --> + + <#if (pcvar("VAR.WholenessBody") >= 1) > + <wholeness_of_body> + <hp_per_day>${pcstring('VAR.WholenessBody.INTVAL')}</hp_per_day> + </wholeness_of_body> + </#if> <!-- 3.5 wholeness of body --> + + <#if (pcvar("VAR.TOTALPOWERPOINTS") >= 1) > <!-- Psionics --> + <psionics> + <#if (pchasvar("Manifester") || pchasvar("PsychicWarriorManifester"))> + <type>3.0</type> + <#else> + <type>3.5</type> + </#if> + <base_pp>${pcstring('VAR.BASEPOWERPOINTS.INTVAL')}</base_pp> + <bonus_pp>${pcstring('VAR.BONUSPOWERPOINTS.INTVAL')}</bonus_pp> + <total_pp>${pcstring('VAR.TOTALPOWERPOINTS.INTVAL')}</total_pp> + </psionics> + </#if> <!-- Psionics --> + + <#if (pcvar("VAR.LayOnHands") >= 1) > <!-- D&D 3.0 and 3.5 --> + <layonhands> + <hp_per_day>${pcstring('VAR.LayOnHands.INTVAL')}</hp_per_day> + <hp_per_day.title>HP per day</hp_per_day.title> + </layonhands> + </#if> + + <#if (pcvar("VAR.LayOnHandsTimes") >= 1) > <!-- Pathfinder --> + <layonhands> + <hp_per_day>${pcstring('VAR.LayOnHandsTimes.INTVAL')}</hp_per_day> + <hp_per_day.title>Uses per day</hp_per_day.title> + <description>cure ${pcstring('VAR.LayOnHandsDice.INTVAL')}d6 per use</description> + </layonhands> + </#if> + + <#if (pcvar("VAR.WildshapeTimes") >= 1) > + <wildshape> + <uses_per_day>${pcstring('VAR.WildShapeTimes.INTVAL')}</uses_per_day> + <elemental_uses_per_day>${pcstring('VAR.WildShapeElementalTimes.INTVAL')}</elemental_uses_per_day> + <duration>${pcstring('VAR.WildShapeDuration.INTVAL')}</duration> + </wildshape> + </#if> + + + <#if (pcvar("VAR.LeadershipScore") >= 1) > + <leadership> + <score>${pcstring('VAR.LeadershipScore.INTVAL')}</score> + <max_cohort_level>${pcstring('VAR.LeadershipMaxCohortLvl')}</max_cohort_level> + </leadership> + </#if> + </class_features> + + <!-- Abilites with check lists - master/child abilities --> + <checklists> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=CheckType")-1') ; ability , ability_has_next> + <checklist> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("extraordinary"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Ex)</name> + <#else> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("supernatural"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Su)</name> + <#else> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("spelllike"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Sp)</name> + <#else> + </#if> + </#if> + </#if> + <header>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')}</header> + <description>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.DESC')}</description> + <type>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE')}</type> + <source>${pcstring('ABILITYALL.Special Ability.VISIBLE.${ability}.ASPECT=CheckType.SOURCE')}</source> + <check_count>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.CheckCount.INTVAL')}</check_count> + <check_type>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.CheckType')}</check_type> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.HASASPECT.MasterAbility") = "Y")> + <master>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.MasterAbility')}</master> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability")-1') ; subability , subability_has_next> + <#if (pcstrin... [truncated message content] |
From: <ama...@us...> - 2014-12-13 01:19:59
|
Revision: 25774 http://sourceforge.net/p/pcgen/code/25774 Author: amaitland Date: 2014-12-13 01:19:52 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Remove CampaignLog for update Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-12-13 01:18:46 UTC (rev 25773) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-12-13 01:19:52 UTC (rev 25774) @@ -235,17 +235,6 @@ </note> </@loop> </notes> - <campaign_history> -<#-- <@loop from=0 to=??? ; campaignloop , campaignloop_has_next> --> - <campaign>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.CAMPAIGN</campaign> - <adventure>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.ADVENTURE</adventure> - <party>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.PARTY</party> - <date>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.DATE</date> - <xp>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.XP</xp> - <gm>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.GM</gm> - <text>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.TEXT</text> -<#-- </@loop> --> - </campaign_history> </basics> <!-- Use ASPECT.NotesSection.x and ASPECT.Notes.y --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-13 01:19:04
|
Revision: 25773 http://sourceforge.net/p/pcgen/code/25773 Author: amaitland Date: 2014-12-13 01:18:46 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Fix: OS-391 D20Pro unable to import from the csheet_fantasy_generic_export.xml Added Paths: ----------- Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl Removed Paths: ------------- Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml Deleted: Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml =================================================================== (Binary files differ) Added: Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl (rev 0) +++ Trunk/pcgen/outputsheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml.ftl 2014-12-13 01:18:46 UTC (rev 25773) @@ -0,0 +1,3256 @@ +<#ftl encoding="UTF-8" strip_whitespace=true > +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: base.xml 24177 2014-06-16 22:41:07Z jdempsey $ +--> +<character> + <export> + <date>${pcstring('EXPORT.DATE')}</date> + <time>${pcstring('EXPORT.TIME')}</time> + <version>${pcstring('EXPORT.VERSION')}</version> + <paperinfo> + <name>${pcstring('PAPERINFO.NAME')}</name> + <height>${pcstring('PAPERINFO.HEIGHT')}</height> + <width>${pcstring('PAPERINFO.WIDTH')}</width> + <margins> + <top>${pcstring('PAPERINFO.MARGINTOP')}</top> + <bottom>${pcstring('PAPERINFO.MARGINBOTTOM')}</bottom> + <left>${pcstring('PAPERINFO.MARGINLEFT')}</left> + <right>${pcstring('PAPERINFO.MARGINRIGHT')}</right> + </margins> + </paperinfo> + <directories> + <pcgen>${pcstring('DIR.PCGEN')}</pcgen> + <templates>${pcstring('DIR.TEMPLATES')}</templates> + <pcg>${pcstring('DIR.PCG')}</pcg> + <html>${pcstring('DIR.HTML')}</html> + <temp>${pcstring('DIR.TEMP')}</temp> + </directories> + <invalidtext> + <tohit>${pcstring('INVALIDTEXT.TOHIT')}</tohit> + <damage>${pcstring('INVALIDTEXT.DAMAGE')}</damage> + </invalidtext> + </export> + <unit_set> + <name>${pcstring('UNITSET')}</name> + <height_unit>${pcstring('UNITSET.HEIGHTUNIT')}</height_unit> + <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> + <weight_unit>${pcstring('UNITSET.WEIGHTUNIT')}</weight_unit> + </unit_set> + <!-- + ==================================== + ==================================== + BIO + ==================================== + ====================================--> + <basics> + <bonuses>${pcstring('BONUSLIST.STAT.STR')}</bonuses> + <bonuses>${pcstring('BONUSLIST.STAT.STR.TOTAL')}</bonuses> + <bonuses>${pcstring('BONUSLIST.CHECK.BASE')}</bonuses> + <bonuses>${pcstring('BONUSLIST.CHECK.BASE.TOTAL')}</bonuses> + <name>${pcstring('NAME')}</name> + <followerof>${pcstring('FOLLOWEROF')}</followerof> + <playername>${pcstring('PLAYERNAME')}</playername> + <charactertype>${pcstring('CHARACTERTYPE')}</charactertype> + <hero_points>${pcstring('VAR.HEROPOINTS.INTVAL')}</hero_points> + <age>${pcstring('AGE')}</age> + <alignment> + <long>${pcstring('ALIGNMENT')}</long> + <short>${pcstring('ALIGNMENT.SHORT')}</short> + </alignment> + <archetypes> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; trait , trait_has_next> + <archetype> + <name>${pcstring('ABILITY.Archetype.VISIBLE.${trait}.TYPE=Archetype')}</name> + <type>${pcstring('ABILITY.Archetype.VISIBLE.${trait}.TYPE=Archetype.TYPE')}</type> + </archetype> + </@loop> + </archetypes> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <bio>${pcstring('BIO')}</bio> + <birthday>${pcstring('BIRTHDAY')}</birthday> + <birthplace>${pcstring('BIRTHPLACE')}</birthplace> + <catchphrase>${pcstring('CATCHPHRASE')}</catchphrase> + <classes> + <@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> + <#if (pcvar(pcstring('CLASS.${class}.LEVEL')) > 0) > + <class> + <name>${pcstring('CLASS.${class}')}</name> + <abbreviation>${pcstring('CLASSABB.${class}')}</abbreviation> + <level>${pcstring('CLASS.${class}.LEVEL')}</level> + <bonuslist>${pcstring('CLASS.${class}.BONUSLIST')}</bonuslist> + <sequence>${class}</sequence> + <sequence_shortform><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/></sequence_shortform> + </class> + </#if> + </@loop><#-- Classes --> + <levels_total>${pcstring('TOTALLEVELS')}</levels_total> + <levels_ecl>${pcstring('ECL')}</levels_ecl> + <!-- shortform below should be removed - it can be derived from class info above --> + <shortform><@loop from=0 to=pcvar('countdistinct("CLASSES")')-1 ; class , class_has_next ><#rt> + <#t><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/><#if class_has_next> </#if> + <#t></@loop></shortform> + <!-- CLASSLIST is not extracted because we can derive it from the information above --> + </classes> + <deity> + <name>${pcstring('DEITY')}</name> + <alignment>${pcstring('DEITY.ALIGNMENT')}</alignment> + <description>${pcstring('DEITY.DESCRIPTION')}</description> + <domainlist>${pcstring('DEITY.DOMAINLIST')}</domainlist> + <favoredweapon>${pcstring('DEITY.FAVOREDWEAPON')}</favoredweapon> + <holyitem>${pcstring('DEITY.HOLYITEM')}</holyitem> + <pantheonlist>${pcstring('DEITY.PANTHEONLIST')}</pantheonlist> + <source>${pcstring('DEITY.SOURCE')}</source> + <special_abilities>${pcstring('DEITY.SA')}</special_abilities> + <appearance>${pcstring('DEITY.APPEARANCE')}</appearance> + <title>${pcstring('DEITY.TITLE')}</title> + <worshippers>${pcstring('DEITY.WORSHIPPERS')}</worshippers> + </deity> + <description>${pcstring('DESC')}</description> + <experience> + <current>${pcstring('EXP.CURRENT')}</current> + <next_level>${pcstring('EXP.NEXT')}</next_level> + <factor>${pcstring('EXP.FACTOR')}</factor> + <penalty>${pcstring('EXP.PENALTY')}</penalty> + </experience> + <eyes> + <color>${pcstring('COLOR.EYE')}</color> + </eyes> + <hair> + <color>${pcstring('COLOR.HAIR')}</color> + <length>${pcstring('LENGTH.HAIR')}</length> + </hair> + <skin> + <color>${pcstring('COLOR.SKIN')}</color> + </skin> + <cr>${pcstring('CR')}</cr> + <face> + <face>${pcstring('FACE')}</face> + <short>${pcstring('FACE.SHORT')}</short> + <squares>${pcstring('FACE.SQUARES')}</squares> + </face> + <favoredlist>${pcstring('FAVOREDLIST')}</favoredlist> + <followerlist>${pcstring('FOLLOWERLIST')}</followerlist> + <gender> + <long>${pcstring('GENDER.LONG')}</long> + <short>${pcstring('GENDER.SHORT')}</short> + </gender> + <handed>${pcstring('HANDED')}</handed> + <height> + <total>${pcstring('HEIGHT')}</total> + <feet>${pcstring('HEIGHT.FOOTPART')}</feet> + <inches>${pcstring('HEIGHT.INCHPART')}</inches> + </height> + <hitdice>${pcstring('HITDICE')}</hitdice> + <image>file:${pcstring('DIR.PCG')}/${pcstring('NAME')}.jpg</image> + <interests>${pcstring('INTERESTS')}</interests> + <languages> + <@loop from=0 to=pcvar('COUNT[LANGUAGES]-1') ; lang , lang_has_next> + <language>${pcstring('LANGUAGES.${lang}')}</language> + </@loop> + <language>${pcstring('ABILITYALL.ANY.0.ASPECT=Language.ASPECT.Language')}</language> + <all>${pcstring('LANGUAGES')}</all> + </languages> + <location>${pcstring('LOCATION')}</location> + <move> + <@loop from=0 to=pcvar('COUNT[MOVE]-1') ; move , move_has_next> + <move> + <name>${pcstring('MOVE.${move}.NAME')}</name> + <rate>${pcstring('MOVE.${move}.RATE')}</rate> + <squares>${pcstring('MOVE.${move}.SQUARES')}</squares> + <#if (pcstring("MOVE.${move}.NAME") = "Fly")> + <maneuverability>(${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')})</maneuverability> + </#if> + </move> + </@loop> + <all>${pcstring('MOVEMENT')}</all> + </move> + <personality> + <trait>${pcstring('PERSONALITY1')}</trait> + <trait>${pcstring('PERSONALITY2')}</trait> + </personality> + <portrait> + <portrait>${pcstring('PORTRAIT')}</portrait> + <portrait_thumb>${pcstring('PORTRAIT.THUMB')}</portrait_thumb> + </portrait> + <phobias>${pcstring('PHOBIAS')}</phobias> + <#if (pcstring("ABILITYALL.ANY.0.TYPE=RaceName.HASASPECT.RaceName") = "Y")> + <race>${pcstring('ABILITYALL.ANY.0.ASPECT=RaceName.ASPECT.RaceName')}</race> + <#else> + <race>${pcstring('RACE')}</race> + </#if> + <race> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Internal","ASPECT=RaceExtra")-1') ; ability , ability_has_next> + <raceextra>${pcstring('ABILITYALL.Internal.HIDDEN.${ability}.ASPECT.RaceExtra')}</raceextra> + </@loop> + <racetype>${pcstring('RACETYPE')}</racetype> + <@loop from=0 to=pcvar('COUNT[RACESUBTYPE]-1') ; racesubtype , racesubtype_has_next> + <racesubtype>${pcstring('RACESUBTYPE.${racesubtype}')}</racesubtype> + </@loop> + </race> + <reach> + <reach>${pcstring('REACH')}</reach> + <squares>${pcstring('REACH.SQUARES')}</squares> + </reach> + <region>${pcstring('REGION')}</region> + <reputation>${pcstring('VAR.REPUTATION.INTVAL')}</reputation> + <residence>${pcstring('RESIDENCE')}</residence> + <size> + <long>${pcstring('SIZELONG')}</long> + <short>${pcstring('SIZE')}</short> + </size> + <speechtendency>${pcstring('SPEECHTENDENCY')}</speechtendency> + <type>${pcstring('TYPE')}</type> + <vision> + <@loop from=0 to=pcvar('COUNT[VISION]-1') ; vision , vision_has_next> + <vision>${pcstring('VISION.${vision}')}</vision> + </@loop> + <all>${pcstring('VISION')}</all> + </vision> + <wealth>${pcstring('VAR.WEALTH.INTVAL')}</wealth> + <gold>${pcstring('GOLD')}</gold> + <weight> + <weight_unit>${pcstring('WEIGHT')}</weight_unit> + <weight_nounit>${pcstring('WEIGHT.NOUNIT')}</weight_nounit> + </weight> + <poolpoints> + <cost>${pcstring('POOL.COST')}</cost> + <current>${pcstring('POOL.CURRENT')}</current> + </poolpoints> + <notes> + <@loop from=0 to=pcvar('COUNT[NOTES]-1') ; note , note_has_next> + <#if (pcstring("NOTE.${note}.NAME") = "DM Notes")> + <#else> + <note> + <name>${pcstring('NOTE.${note}.NAME')}</name> + <value>${pcstring('NOTE.${note}.VALUE.')}</value> + </note> + + </#if> + </@loop> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=NotesSection")-1') ; ability , ability_has_next> + <note> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT.NotesSection')}</name> + <value>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT.Notes')}</value> + </note> + </@loop> + </notes> + </basics> + + <!-- Use ASPECT.NotesSection.x and ASPECT.Notes.y --> + <!-- + ==================================== + ==================================== + ABILITIES + ==================================== + ====================================--> + <abilities> + <@loop from=0 to=pcvar('COUNT[STATS]-1') ; stat , stat_has_next> + <ability> + <name> + <long>${pcstring('STAT.${stat}.LONGNAME')}</long> + <short>${pcstring('STAT.${stat}.NAME')}</short> + </name> + <score>${pcstring('STAT.${stat}')}</score> + <modifier>${pcstring('STAT.${stat}.MOD')}</modifier> + <!-- + Old BASE tag does not give stats with racial, and other permentant adjustments. + Use NOTEMP.NOEQUIP instead of BASE gives the correct results. + + <base>${pcstring('STAT.${stat}.BASE')}</base> + <basemod>${pcstring('STAT.${stat}.BASEMOD')}</basemod> + --> + <base>${pcstring('STAT.${stat}.NOTEMP.NOEQUIP')}</base> + <basemod>${pcstring('STAT.${stat}.MOD.NOTEMP.NOEQUIP')}</basemod> + + <noequip>${pcstring('STAT.${stat}.NOEQUIP')}</noequip> + <noequip_mod>${pcstring('STAT.${stat}.MOD.NOEQUIP')}</noequip_mod> + <no_temp_score>${pcstring('STAT.${stat}.NOTEMP')}</no_temp_score> + <no_temp_modifier>${pcstring('STAT.${stat}.MOD.NOTEMP')}</no_temp_modifier> + </ability> + </@loop> + </abilities> + <!-- + ==================================== + ==================================== + HIT POINTS + ==================================== + ====================================--> + <hit_points> + <usealternatedamage>${pcstring('VAR.UseAlternateDamage.INTVAL')}</usealternatedamage> + <points>${pcstring('HP')}</points> + <alternate>${pcstring('ALTHP')}</alternate> + <die>${pcstring('HITDICE')}</die> + <die_short>${pcstring('HITDICE.SHORT')}</die_short> + <current/> + <subdual/> + <damage_reduction>${pcstring('DR')}</damage_reduction> + <damage_threshold>${pcstring('VAR.DAMAGETHRESHOLD.INTVAL')}</damage_threshold> + <history> + <@loop from=1 to=pcvar('ECL') ; level , level_has_next> + <roll> + <level>${level}</level> + <roll>${pcstring('HPROLL.${level}')}</roll> + <stat>${pcstring('HPROLL.${level}.STAT')}</stat> + <total>${pcstring('HPROLL.${level}.TOTAL')}</total> + </roll> + </@loop> + </history> + </hit_points> + <!-- + ==================================== + ==================================== + ARMOR CLASS + ==================================== + ====================================--> + <armor_class> + <total>${pcstring('AC.Total')}</total> + <listing>${pcstring('BONUS.COMBAT.AC.LISTING')}</listing> + <flat>${pcstring('AC.Flatfooted')}</flat> + <touch>${pcstring('AC.Touch')}</touch> + <base>${pcstring('AC.Base')}</base> + <armor_bonus>${pcstring('AC.Armor')}</armor_bonus> + <shield_bonus>${pcstring('AC.Shield')}</shield_bonus> + <stat_mod>${pcstring('AC.Ability')}</stat_mod> + <size_mod>${pcstring('AC.Size')}</size_mod> + <natural>${pcstring('AC.NaturalArmor')}</natural> + <deflection>${pcstring('AC.Deflection')}</deflection> + <dodge>${pcstring('AC.Dodge')}</dodge> + <dodge_bonus>${pcstring('AC.Dodge')}</dodge_bonus> + <class_bonus>${pcstring('AC.ClassDefense')}</class_bonus> + <#if (gamemodename = "Modern" || gamemodename = "Darwins_World_2" || gamemodename = "Sidewinder") > + <equipment_bonus>${pcstring('AC.Equipment')}</equipment_bonus> + </#if> + <misc>${pcstring('AC.Misc')}</misc> + <insight>${pcstring('AC.Insight')}</insight> + <morale>${pcstring('AC.Morale')}</morale> + <sacred>${pcstring('AC.Sacred')}</sacred> + <profane>${pcstring('AC.Profane')}</profane> + <miss_chance/> + <max_dex>${pcstring('MAXDEX')}</max_dex> + <spell_failure>${pcstring('SPELLFAILURE')}</spell_failure> + <check_penalty>${pcstring('ACCHECK')}</check_penalty> + <spell_resistance>${pcstring('SR')}</spell_resistance> + </armor_class> + <!-- + ==================================== + ==================================== + INITIATIVE + ==================================== + ====================================--> + <initiative> + <total>${pcstring('INITIATIVEMOD')}</total> + <dex_mod>${pcstring('STAT.1.MOD')}</dex_mod> + <misc_mod>${pcstring('INITIATIVEMISC')}</misc_mod> + <spell_failure>${pcstring('SPELLFAILURE')}</spell_failure> + <check_penalty>${pcstring('ACCHECK')}</check_penalty> + <spell_resistance>${pcstring('SR')}</spell_resistance> + <hero_points>${pcstring('VAR.HEROPOINTS.INTVAL')}</hero_points> + </initiative> + <!-- + ==================================== + ==================================== + SKILLS + ==================================== + ====================================--> + <skillinfo> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <skillbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SkillBonus.ASPECT.SkillBonus')}</description> + </skillbonus> + </@loop> + </conditional_modifiers> + </skillinfo> + <skills> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <skillbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SkillBonus.ASPECT.SkillBonus')}</description> + </skillbonus> + </@loop> + </conditional_modifiers> + <skillpoints> + <total>${pcstring('SKILLPOINTS.TOTAL')}</total> + <used>${pcstring('SKILLPOINTS.USED')}</used> + <unused>${pcstring('SKILLPOINTS.UNUSED')}</unused> + <eclipse_total>${pcstring('VAR.CharacterSkillPts.INTVAL')}</eclipse_total> + </skillpoints> + <list_mods>${pcstring('SKILLLISTMODS')}</list_mods> + <#if (pcvar("VAR.Max_Rank_Display") > 0)> + <max_class_skill_level>${pcstring('VAR.Max_Rank_Display')}</max_class_skill_level> + <#else> + <max_class_skill_level>${pcstring('MAXSKILLLEVEL')}</max_class_skill_level> + </#if> + <max_cross_class_skill_level>${pcstring('MAXCCSKILLLEVEL')}</max_cross_class_skill_level> + <@loop from=0 to=pcvar('count("SKILLSIT", "VIEW=VISIBLE_EXPORT")')-1 ; skill ,skill_has_next> + <skill> + <name>${pcstring('SKILLSIT.${skill}')}</name> + <ranks>${pcstring('SKILLSIT.${skill}.RANK')}</ranks> + <mod>${pcstring('SKILLSIT.${skill}.MOD')}<!-- Mods from abilities, equipment, etc --> + </mod> + <skill_mod>${pcstring('SKILLSIT.${skill}.TOTAL')}</skill_mod> + <ability_mod>${pcstring('SKILLSIT.${skill}.ABMOD')}<!-- Mod from the key ability --> + </ability_mod> + <misc_mod>${pcstring('SKILLSIT.${skill}.MISC')}<!-- This is a calc value of TOTAL-RANK-ABMOD --> + </misc_mod> + <ability>${pcstring('SKILLSIT.${skill}.ABILITY')}</ability> + <synergy>${pcstring('SKILLSIT.${skill}.SYNERGY')}</synergy> + <untrained>${pcstring('SKILLSIT.${skill}.UNTRAINED')}</untrained> + <exclusive>${pcstring('SKILLSIT.${skill}.EXCLUSIVE')}</exclusive> + <trained_total>${pcstring('SKILLSIT.${skill}.TRAINED_TOTAL')}</trained_total> + <exclusive_total>${pcstring('SKILLSIT.${skill}.EXCLUSIVE_TOTAL')}</exclusive_total> + <classes>${pcstring('SKILLSIT.${skill}.CLASSES')}</classes> + <type>${pcstring('SKILLSIT.${skill}.TYPE')}</type> + </skill> + </@loop> + + <!-- Skills --> + </skills> + <!-- + ==================================== + ==================================== + SAVING THROWS + ==================================== + ====================================--> + <saving_throws> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SaveBonus")-1') ; ability , ability_has_next> + <savebonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SaveBonus.ASPECT.SaveBonus')}</description> + </savebonus> + </@loop> + </conditional_modifiers> + <@loop from=0 to=pcvar('COUNT[CHECKS]-1') ; check , check_has_next> + <#assign checkName = pcstring('CHECK.${check}.NAME')?lower_case /> + <#assign checkShortName = checkName /> + <#if (checkName = 'reflex')> + <#assign checkShortName = checkName?substring(0,3) /> + <#elseif (checkName?length >= 4) > + <#assign checkShortName = checkName?substring(0,4) /> + </#if> + <saving_throw> + <name> + <long>${checkName}</long> + <short>${checkShortName}</short> + </name> + <#if (checkName = 'fortitude')> + <ability>constitution</ability> + <#elseif (checkName = 'reflex')> + <ability>dexterity</ability> + <#elseif (checkName = 'will')> + <ability>wisdom</ability> + <#else> + <ability></ability> + </#if> + <total>${pcstring('CHECK.${check}.TOTAL')}</total> + <base>${pcstring('CHECK.${check}.BASE')}</base> + <abil_mod>${pcstring('CHECK.${check}.STATMOD')}</abil_mod> + <feats>${pcstring('CHECK.${check}.FEATS')}</feats> + <magic_mod>${pcstring('CHECK.${check}.MAGIC')}</magic_mod> + <misc_mod>${pcstring('CHECK.${check}.MISC.NOMAGIC.NOSTAT')}</misc_mod> + <misc_w_magic_mod>${pcstring('CHECK.${check}.MISC.NOSTAT')}</misc_w_magic_mod> + <race>${pcstring('CHECK.${check}.RACE')}</race> + <epic_mod>${pcstring('CHECK.${check}.EPIC')}</epic_mod> + <temp_mod/> + </saving_throw> + </@loop> + </saving_throws> + <!-- + ==================================== + ==================================== + ATTACK + ==================================== + ====================================--> + <attack> + <conditional_modifiers> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=CombatBonus")-1') ; ability , ability_has_next> + <combatbonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=CombatBonus.ASPECT.CombatBonus')}</description> + </combatbonus> + </@loop> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SaveBonus")-1') ; ability , ability_has_next> + <savebonus> + <description>${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SaveBonus.ASPECT.SaveBonus')}</description> + </savebonus> + </@loop> + </conditional_modifiers> + + <melee> + <total>${pcstring('ATTACK.MELEE.TOTAL')}</total> + <total_short>${pcstring('ATTACK.MELEE.TOTAL.SHORT')}</total_short> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <!-- ${pcstring('ATTACK.MELEE.BASE')} --> + <base_attack_bonus>${pcstring('ATTACK.MELEE')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.MELEE.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.MELEE.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.MELEE.MISC')}</misc_mod> + <epic_mod>${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}</epic_mod> + <!-- ${pcstring('ATTACK.MELEE.EPIC')} --> + <temp_mod/> + </melee> + <ranged> + <total>${pcstring('ATTACK.RANGED.TOTAL')}</total> + <bab>${pcstring('ATTACK.RANGED.BASE')}</bab> + <!-- ${pcstring('ATTACK.RANGED.BASE')} --> + <base_attack_bonus>${pcstring('ATTACK.RANGED')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.RANGED.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.RANGED.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.RANGED.MISC')}</misc_mod> + <epic_mod>${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}</epic_mod> + <!-- ${pcstring('ATTACK.RANGED.EPIC')} --> + <temp_mod/> + </ranged> + <!-- Either CMB block, or Grapple Block --> + <#-- |IIF(HASVAR:CMB.OR.HASFEAT:CMB Output)| --> + <#if (pchasvar('CMB') || pcboolean('VAR.HASFEAT:CMB Output')) > + <cmb> + <!-- Base stuff for standard block --> + <title>CMB</title> + <total>${pcstring('VAR.CMB.INTVAL.SIGN')}</total> + <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> + <base_attack_bonus>${pcstring('ATTACK.MELEE')}</base_attack_bonus> + <stat_mod>${pcstring('VAR.CMB_STAT.INTVAL.SIGN')}</stat_mod> + <size_mod>${pcstring('VAR.CMB_SizeMod.INTVAL.SIGN')}</size_mod> + <misc_mod></misc_mod> <#-- This formula is giving incorrect results - STAT/STAT ${pcstring('VAR.CMB-ATTACK.MELEE.BASE-VAR.CMB_STAT-VAR.CMB_SizeMod.INTVAL.SIGN')} --> + <epic_mod/> + <temp_mod/> + <!-- Base values (not yet used) --> + <grapple_base>${pcstring('VAR.CMB_Grapple.INTVAL.SIGN')}</grapple_base> + <trip_base>${pcstring('VAR.CMB_Trip.INTVAL.SIGN')}</trip_base> + <disarm_base>${pcstring('VAR.CMB_Disarm.INTVAL.SIGN')}</disarm_base> + <sunder_base>${pcstring('VAR.CMB_Sunder.INTVAL.SIGN')}</sunder_base> + <bullrush_base>${pcstring('VAR.CMB_Bull.INTVAL.SIGN')}</bullrush_base> + <overrun_base>${pcstring('VAR.CMB_Overrun.INTVAL.SIGN')}</overrun_base> + <!-- Defense values --> + <#if (pchasvar('CMB'))> + <!-- Pathfinder (final release) --> + <!-- Attack values --> + <grapple_attack>${pcstring('VAR.CMB_Grapple.INTVAL.SIGN')}</grapple_attack> + <trip_attack>${pcstring('VAR.CMB_Trip.INTVAL.SIGN')}</trip_attack> + <disarm_attack>${pcstring('VAR.CMB_Disarm.INTVAL.SIGN')}</disarm_attack> + <sunder_attack>${pcstring('VAR.CMB_Sunder.INTVAL.SIGN')}</sunder_attack> + <bullrush_attack>${pcstring('VAR.CMB_BullRush.INTVAL.SIGN')}</bullrush_attack> + <overrun_attack>${pcstring('VAR.CMB_Overrun.INTVAL.SIGN')}</overrun_attack> + <!-- Defense values --> + <defense>${pcstring('VAR.CMD.INTVAL')}</defense> + <grapple_defense>${pcstring('VAR.CMD_Grapple.INTVAL')}</grapple_defense> + <trip_defense> + <#if (pchasvar("CantBeTripped"))> + Immune + <#else> + ${pcstring('VAR.CMD_Trip.INTVAL')} + </#if> + </trip_defense> + <disarm_defense>${pcstring('VAR.CMD_Disarm.INTVAL')}</disarm_defense> + <sunder_defense>${pcstring('VAR.CMD_Sunder.INTVAL')}</sunder_defense> + <bullrush_defense>${pcstring('VAR.CMD_BullRush.INTVAL')}</bullrush_defense> + <overrun_defense>${pcstring('VAR.CMD_Overrun.INTVAL')}</overrun_defense> + + <#else> + <!-- Pathfinder Beta version --> + <!-- Attack values --> + <grapple_attack>${pcstring('VAR.CMB_Grapple_OFF.INTVAL.SIGN')}</grapple_attack> + <trip_attack>${pcstring('VAR.CMB_Trip_OFF.INTVAL.SIGN')}</trip_attack> + <disarm_attack>${pcstring('VAR.CMB_Disarm_OFF.INTVAL.SIGN')}</disarm_attack> + <sunder_attack>${pcstring('VAR.CMB_Sunder_OFF.INTVAL.SIGN')}</sunder_attack> + <bullrush_attack>${pcstring('VAR.CMB_Bull_OFF.INTVAL.SIGN')}</bullrush_attack> + <overrun_attack>${pcstring('VAR.CMB_Overrun_OFF.INTVAL.SIGN')}</overrun_attack> + <!-- Defense values --> + <defense>${pcvar('VAR.CMB+VAR.CMB_DEF.INTVAL')}</defense> + <grapple_defense>${pcstring('VAR.CMB_Grapple_DEF.INTVAL')}</grapple_defense> + <trip_defense>${pcstring('VAR.CMB_Trip_DEF.INTVAL')}</trip_defense> + <disarm_defense>${pcstring('VAR.CMB_Disarm_DEF.INTVAL')}</disarm_defense> + <sunder_defense>${pcstring('VAR.CMB_Sunder_DEF.INTVAL')}</sunder_defense> + <bullrush_defense>${pcstring('VAR.CMB_Bull_DEF.INTVAL')}</bullrush_defense> + <overrun_defense>${pcstring('VAR.CMB_Overrun_DEF.INTVAL')}</overrun_defense> + </#if> + </cmb> + <#else> + <grapple> + <total>${pcstring('ATTACK.GRAPPLE.TOTAL')}</total> + <bab>${pcstring('ATTACK.GRAPPLE.BASE')}</bab> + <base_attack_bonus>${pcstring('ATTACK.GRAPPLE')}</base_attack_bonus> + <stat_mod>${pcstring('ATTACK.GRAPPLE.STAT')}</stat_mod> + <size_mod>${pcstring('ATTACK.GRAPPLE.SIZE')}</size_mod> + <misc_mod>${pcstring('ATTACK.GRAPPLE.MISC')}</misc_mod> + <epic_mod>${pcstring('ATTACK.GRAPPLE.EPIC')}</epic_mod> + <temp_mod/> + </grapple> + </#if> + <!-- End CMB / Grapple Block --> + </attack> + <!-- + ==================================== + ==================================== + WEAPONS + ==================================== + ====================================--> + <#macro weapCommonBlock weap> + <common> + <name> + <short>${pcstring('WEAPON.${weap}.NAME')}</short> + <long>${pcstring('WEAPON.${weap}.LONGNAME')}</long> + <output>${pcstring('WEAPON.${weap}.OUTPUTNAME')}</output> + </name> + <category>${pcstring('WEAPON.${weap}.CATEGORY')}</category> + <critical> + <range>${pcstring('WEAPON.${weap}.CRIT')}</range> + <multiplier>${pcstring('WEAPON.${weap}.MULT')}</multiplier> + </critical> + <to_hit> + <hit>${pcstring('WEAPON.${weap}.HIT')}</hit> + <magic_hit>${pcstring('WEAPON.${weap}.MAGICHIT')}</magic_hit> + <total_hit>${pcstring('WEAPON.${weap}.TOTALHIT')}</total_hit> + </to_hit> + <feat> + <hit>${pcstring('WEAPON.${weap}.FEATHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.FEATDAMAGE')}</damage> + </feat> + <magic> + <hit>${pcstring('WEAPON.${weap}.MAGICHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.MAGICDAMAGE')}</damage> + </magic> + <template> + <hit>${pcstring('WEAPON.${weap}.TEMPLATEHIT')}</hit> + <damage>${pcstring('WEAPON.${weap}.TEMPLATEDAMAGE')}</damage> + </template> + <hand>${pcstring('WEAPON.${weap}.HAND')}</hand> + <num_attacks>${pcstring('WEAPON.${weap}.NUMATTACKS')}</num_attacks> + <reach>${pcstring('WEAPON.${weap}.REACH')}</reach> + <reachunit>${pcstring('WEAPON.${weap}.REACHUNIT')}</reachunit> + <size>${pcstring('WEAPON.${weap}.SIZE')}</size> + <#if (pcstring("WEAPON.${weap}.ISTYPE.Natural.OR.WEAPON.${weap}.CATEGORY") = "NATURAL")> + <special_properties>${pcstring('ABILITYALL.Special Ability.${weap}.ASPECT.UnarmedNotes')}</special_properties> + <#else> + <special_properties>${pcstring('WEAPON.${weap}.SPROP')}</special_properties> + </#if> + <type>${pcstring('WEAPON.${weap}.TYPE')}</type> + <weight>${pcstring('WEAPON.${weap}.WT')}</weight> + <attacks>${pcstring('WEAPON.${weap}.ATTACKS')}</attacks> + <heft>${pcstring('WEAPON.${weap}.HEFT')}</heft> + <range>${pcstring('WEAPON.${weap}.RANGE')}</range> + <sizemod>${pcstring('WEAPON.${weap}.SIZEMOD')}</sizemod> + <basehit>${pcstring('WEAPON.${weap}.BASEHIT')}</basehit> + <misc>${pcstring('WEAPON.${weap}.MISC')}</misc> + <damage>${pcstring('WEAPON.${weap}.DAMAGE')}</damage> + <damagebonus>${pcstring('WEAPON.${weap}.DAMAGEBONUS')}</damagebonus> + <basedamagebonus>${pcstring('WEAPON.${weap}.BASEDAMAGEBONUS')}</basedamagebonus> + <thdamagebonus>${pcstring('WEAPON.${weap}.THDAMAGEBONUS')}</thdamagebonus> + <ohdamagebonus>${pcstring('WEAPON.${weap}.OHDAMAGEBONUS')}</ohdamagebonus> + <rateoffire>${pcstring('WEAPON.${weap}.RATEOFFIRE')}</rateoffire> + <islight>${pcstring('WEAPON.${weap}.ISLIGHT')}</islight> + <sequence>${weap}</sequence> + </common> + </#macro> + <#macro weapMeleeBlock weap> + <melee> + <invalidtext> + <tohit>${pcstring('INVALIDTEXT.TOHIT')}</tohit> + <damage>${pcstring('INVALIDTEXT.DAMAGE')}</damage> + </invalidtext> + <hand>${pcstring('WEAPON.${weap}.HAND')}</hand> + <w1_h1_p> + <!-- One weapon, 1 hand, primary hand --> + <to_hit>${pcstring('WEAPON.${weap}.BASEHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w1_h1_p> + <w1_h1_o> + <!-- One weapon, 1 handed, offhand --> + <to_hit>${pcstring('WEAPON.${weap}.OHHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.OHDAMAGE')}</damage> + </w1_h1_o> + <w1_h2> + <!-- One weapon, 2 handed --> + <to_hit>${pcstring('WEAPON.${weap}.THHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.THDAMAGE')}</damage> + </w1_h2> + <w2_p_oh> + <!-- Two weapons, this weapon in primary hand, other hand with heavy weapon --> + <to_hit>${pcstring('WEAPON.${weap}.TWPHITH')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w2_p_oh> + <w2_p_ol> + <!-- Two weapons, this weapon in primary hand, other hand with light weapon --> + <to_hit>${pcstring('WEAPON.${weap}.TWPHITL')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.BASICDAMAGE')}</damage> + </w2_p_ol> + <w2_o> + <!-- Two weapons, this weapon in off-hand --> + <to_hit>${pcstring('WEAPON.${weap}.TWOHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.OHDAMAGE')}</damage> + </w2_o> + </melee> + </#macro> + <#macro weapRangeBlock weap range> + <#if (pcstring('WEAPON.${weap}.RANGELIST.${range}') != "") > + <range> + <distance>${pcstring('WEAPON.${weap}.RANGELIST.${range}')}</distance> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${range}.DAMAGE')}</damage> + <basehit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.BASEHIT')}</basehit> + <tohit_offhand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.OHHIT')}</tohit_offhand> + <tohit_twohand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.BASEHIT')}</tohit_twohand> + <tohit_2weap_heavy>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWPHITH')}</tohit_2weap_heavy> + <tohit_2weap_light>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWPHITL')}</tohit_2weap_light> + <tohit_2weap_offhand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWOHIT')}</tohit_2weap_offhand> + <@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + <special_properties>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}.SPROP')}</special_properties> + <quantity>${pcstring('EQ.IS.WEAPON.${weap}.CONTENTS.${ammo}.QTY')}</quantity> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.CONTENTS.${ammo}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${range}.CONTENTS.${ammo}.DAMAGE')}</damage> + </ammunition> + </@loop> + </range> + </#if> + </#macro> + + <weapons> + <#if (pcvar("VAR.UseMartialArts") = 1)> + <martialarts> + <total>${pcstring('WEAPONH.TOTALHIT')}</total> + <#if (pcvar("VAR.MartialArtsBonusDamage") < 0)> + <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}-${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}+${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('WEAPONH.CRIT')}/x${pcstring('WEAPONH.MULT')}</critical> + <!-- Should be changed to a variable due to improved crit --> + <reach>${pcstring('REACH')}</reach> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1') ; NaturalAttack , NaturalAttack_has_next> + <special_property>${pcstring('ABILITYALL.Special Ability.${NaturalAttack}.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes')}</special_property> + </@loop> + </martialarts> + <#else> + <unarmed> + <total>${pcstring('WEAPONH.TOTALHIT')}</total> + <damage>${pcstring('WEAPONH.DAMAGE')}</damage> + <critical>${pcstring('WEAPONH.CRIT')}/x${pcstring('WEAPONH.MULT')}</critical> + <!-- Should be changed to a variable due to improved crit --> + <reach>${pcstring('REACH')}</reach> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1') ; NaturalAttack , NaturalAttack_has_next> + <special_property>${pcstring('ABILITYALL.Special Ability.${NaturalAttack}.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes')}</special_property> + </@loop> + <!-- Commenting this out (will need a test as well) + 3.0 uses "Subdual", 3.5 uses "nonlethal". We'll need a separate node for both. --> + <#if (gamemodename = "3e")> + <#if (pcvar('VAR.Unarmed') > 0)> + <type>(subdual or normal)</type> + <#else> + <type>(subdual only)</type> + </#if> + <#else> + <#if (pcvar('VAR.UnarmedLethal') > 0)> + <type>(lethal or nonlethal)</type> + <#else> + <type>(nonlethal only)</type> + </#if> + </#if> + </unarmed> + </#if> + <!-- Spirit Weapon - Melee --> + <#if (pcstring("VAR.UseSpiritWeaponMelee") = "1")> + <spiritweaponmelee> + <total>+${pcstring('VAR.SpiritWeaponMeleeToHit.INTVAL')}</total> + <#if (pcvar("VAR.SpiritWeaponMeleeBonusDamage") < 0)> + <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('VAR.SpiritWeaponMeleeCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponMeleeCritMult.INTVAL')}</critical> + <reach>${pcstring('REACH')}</reach> + </spiritweaponmelee> + </#if> + + <!-- Spirit Weapon - Ranged --> + <#if (pcstring("VAR.UseSpiritWeaponRanged") = "1")> + <spiritweaponranged> + <total>+${pcstring('VAR.SpiritWeaponRangedToHit.INTVAL')}</total> + <#if (pcvar("VAR.SpiritWeaponRangedBonusDamage") < 0)> + <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> + <#else> + <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> + </#if> + <critical>${pcstring('VAR.SpiritWeaponRangedCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponRangedCritMult.INTVAL')}</critical> + <range>${pcstring('VAR.SpiritWeaponRangedRange.INTVAL')}</range> + </spiritweaponranged> + </#if> + <!-- End Spirit Weapon - Ranged --> + + <!-- Blank Natural Attack --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","NAME=BlankNaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> + <naturalattack> + <name>Weapon</name> + <tohit></tohit> + <damage></damage> + <type></type> + <threat></threat> + <reach></reach> + <range></range> + <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> + <notes>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.DESC')}</notes> + </naturalattack> + </@loop> + + <!-- Natural Attack --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> + <naturalattack> + <name>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackName')}</name> + <tohit>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackToHit')}</tohit> + <damage>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackDamage')}</damage> + <type>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackType')}</type> + <threat>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackThreatRange')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult')}</threat> + <reach>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackReach.INTVAL')}</reach> + <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> + <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> + <notes>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes')}${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.DESC')}</notes> + <!--> Used to Validate Word Toggle between Crit / Mult vs. Crit <--> + <critmult>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult')}</critmult> + <!--${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackDamageBonus.SIGN')}--> + <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> + </naturalattack> + </@loop> + + <#-- Equipped weapon loop --> + <@loop from=0 to=pcvar('COUNT[EQTYPE.WEAPON]-1') ; weap , weap_has_next><#-- TODO: Loop was of early exit type 1 --> + <#assign weaponCategory> + ${pcstring('WEAPON.${weap}.CATEGORY')?lower_case} + </#assign> + <#if (weaponCategory?contains('both'))> + + <#if (weaponCategory?contains('ranged'))> + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <@weapMeleeBlock weap="${weap}" /> + </#if><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <#if (weaponCategory?contains('ranged'))><#-- We work out now whether this is a Ranged Only or Thrown --> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))><#-- Valid only if we find the Thrown Value --> + <ranges> + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </ranges> + <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) but IS Ranged --> + + <!-- New Ranges Section --> + <ranges> + <rangetype>Ranged</rangetype><!-- ranged first --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </ranges> + + </#if><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) --> + </weapon> + <#else><#-- CATEGORY:Ranged) --> + </#if><#-- CATEGORY:Ranged) --> + <!-- End New Ranges Section --> + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:BOTH) --> + <#if (weaponCategory?contains('ranged'))> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <#if (pcstring("WEAPON.${weap}.CONTENTS") = "0")> + <ranges> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><!-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + <#else><#-- Thrown --> + <rangetype>Ranged</rangetype><!-- ranged second --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + </#if><#-- Thrown --> + </ranges> + <#else><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> + <@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next> + <ranges> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + <special_properties>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}.SPROP')}</special_properties> + <quantity>${pcstring('EQ.IS.WEAPON.${weap}.CONTENTS.${ammo}.QTY')}</quantity> + <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${weap}.CONTENTS.${ammo}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.RANGELIST.${weap}.CONTENTS.${ammo}.DAMAGE')}</damage> + </ammunition> + <ammunition> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> + </ammunition> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + <rangetype>Thrown</rangetype> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + <#else><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> + <rangetype>Ranged</rangetype><!-- Ranged third --> + <#if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0)> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.RANGE.NOUNITS") > 0) --> + + </#if><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> + + </ranges> + </@loop><#-- FOR,${ammo},0,WEAPON.${weap}.CONTENTS-1,1,1 --> + </#if><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> + </weapon> + + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <!-- Request to remove the Double Weapon Block OS-133 --> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Double') || pcboolean('WEAPON.${weap}.ISTYPE.TwoHanded') || weaponCategory?contains('non-standard-melee') || weaponCategory?contains('natural'))> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <simple> + <to_hit>${pcstring('WEAPON.${weap}.TOTALHIT')}</to_hit> + <damage>${pcstring('WEAPON.${weap}.DAMAGE')}</damage> + <range>${pcstring('WEAPON.${weap}.RANGE')}</range> + <!-- This is an Addition by Itwally for the Monk Flurry of Blows Fix per DATA-73 --> + <name>${pcstring('WEAPON.${weap}.NAME')}</name> + <class><@loop from=0 to=pcvar('countdistinct("CLASSES")')-1 ; class , class_has_next ><#rt> + <#t><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/><#if class_has_next> </#if> + <#t></@loop></class> + <!-- End DATA-73 Work Around--> + </simple> + </weapon> + <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Double.OR.WEAPON.${weap}.CATEGORY:Non-Standard-Melee) --> + <weapon> + <@weapCommonBlock weap="${weap}" /> + <@weapMeleeBlock weap="${weap}" /> + </weapon> + </#if><#-- IIF(WEAPON.weap}.ISTYPE.Double.OR.WEAPON.${weap}.CATEGORY:Non-Standard-Melee) --> + </#if><#-- IIF(WEAPON.weap}.CATEGORY:Ranged) --> + </#if><#-- IIF(WEAPON.weap}.CATEGORY:BOTH) --> + </@loop><#-- FOR,weap},0,COUNT[EQTYPE.WEAPON]-1,1,1 --> + </weapons> + <!-- + ==================================== + ==================================== + ARMOR + ==================================== + ====================================--> + <protection> + <@loop from=0 to=pcvar('COUNT[EQTYPE.Armor]-1') ; armor , armor_has_next> + <armor> + <name>${pcstring('ARMOR.Armor.ALL.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.Armor.ALL.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.Armor.ALL.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.Armor.ALL.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.Armor.ALL.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.Armor.ALL.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.Armor.ALL.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.Armor.ALL.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.Armor.ALL.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.Armor.ALL.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.Armor.ALL.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.Armor.ALL.${armor}.WT')}</wt> + <fulltype>${pcstring('EQTYPE.Armor.${armor}.TYPE')}</fulltype> + <location>${pcstring('EQTYPE.Armor.${armor}.LOCATION')}</location> + </armor> + </@loop> + <@loop from=0 to=pcvar('COUNT[EQTYPE.SHIELD]-1') ; armor , armor_has_next> + <shield> + <name>${pcstring('ARMOR.SHIELD.ALL.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.SHIELD.ALL.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.SHIELD.ALL.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.SHIELD.ALL.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.SHIELD.ALL.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.SHIELD.ALL.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.SHIELD.ALL.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.SHIELD.ALL.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.SHIELD.ALL.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.SHIELD.ALL.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.SHIELD.ALL.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.SHIELD.ALL.${armor}.WT')}</wt> + </shield> + </@loop> + <@loop from=0 to=pcvar('COUNT[EQTYPE.ACITEM]-1') ; armor , armor_has_next> + <item> + <name>${pcstring('ARMOR.ACITEM.${armor}.NAME')}</name> + <acbonus>${pcstring('ARMOR.ACITEM.${armor}.ACBONUS')}</acbonus> + <accheck>${pcstring('ARMOR.ACITEM.${armor}.ACCHECK')}</accheck> + <baseac>${pcstring('ARMOR.ACITEM.${armor}.BASEAC')}</baseac> + <edr>${pcstring('ARMOR.ACITEM.${armor}.EDR')}</edr> + <maxdex>${pcstring('ARMOR.ACITEM.${armor}.MAXDEX')}</maxdex> + <move>${pcstring('ARMOR.ACITEM.${armor}.MOVE')}</move> + <spellfail>${pcstring('ARMOR.ACITEM.${armor}.SPELLFAIL')}</spellfail> + <special_properties>${pcstring('ARMOR.ACITEM.${armor}.SPROP')}</special_properties> + <totalac>${pcstring('ARMOR.ACITEM.${armor}.TOTALAC')}</totalac> + <type>${pcstring('ARMOR.ACITEM.${armor}.TYPE')}</type> + <wt>${pcstring('ARMOR.ACITEM.${armor}.WT')}</wt> + </item> + </@loop> + </protection> + <!-- + ==================================== + ==================================== + CLASS-DEPENDANT FEATURES + ==================================== + ====================================--> + <class_features> + <!-- D&D 3.0 --> + <#if (pcvar("VAR.BardicMusicLevel") >= 1) > + <bardic_music> + <uses_per_day>${pcstring('VAR.BardicMusicLevel.INTVAL')}</uses_per_day> + <effects>Effects (Perform ranks required)</effects> + <text>Inspire Courage(3), Countersong(3), Fascinate(3),Inspire Competence(6), Suggestion(9), Inspire Greatness(12)</text> + </bardic_music> + </#if> + <!-- D&D 3.5 --> + <#if (pcvar("VAR.BardicMusicTimes") >= 1) > + <bardic_music> + <uses_per_day>${pcstring('VAR.BardicMusicTimes.INTVAL')}</uses_per_day> + <text> + </#if> + <#if (pcvar("VAR.CountersongDuration") >= 1) > + Countersong(duration = ${pcstring('VAR.CountersongDuration.INTVAL')} rounds) + </#if> + <#if (pcvar("VAR.FascinateCreatures.INTVAL") >= 1) > + Fascinate(up to ${pcstring('VAR.FascinateCreatures.INTVAL')} creatures for up to ${pcstring('VAR.FacinateDuration.INTVAL')} rounds) + </#if> + <#if (pcvar("VAR.InspireCourageSaves") >= 1) > + Inspire Courage(save bonus = ${pcstring('VAR.InspireCourageSaves.INTVAL.SIGN')}, attack and damage bonus = ${pcstring('VAR.InspireCourageAttack.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.InspireCompetenceBonus.INTVAL") >= 1) > + Inspire Competence(skill check bonus = ${pcstring('VAR.InspireCompetenceBonus.INTVAL.SIGN')} for up to ${pcstring('VAR.InspireCompetenceDuration.INTVAL')} minutes) + </#if> + <#if (pcvar("VAR.SingleSuggestionDC.INTVAL") >= 1) > + Suggestion(DC: ${pcstring('VAR.SingleSuggestionDC.INTVAL')}) + </#if> + <#if (pcvar("VAR.InspireGreatnessAllies.INTVAL") >= 1) > + Inspire Greatness(number of allies = ${pcstring('VAR.InspireGreatnessAllies.INTVAL')}, bonus HD = ${pcstring('VAR.InspireGreatnessHD.INTVAL')}, attack bonus = ${pcstring('VAR.InspireGreatnessAttack.INTVAL.SIGN')}, Fortitude bonus = ${pcstring('VAR.InspireGreatnessSaves.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.SongOfFreedomLVL.INTVAL") >= 1) > + Song of Freedom(effective caster level = ${pcstring('VAR.SongOfFreedomLVL.INTVAL')}) + </#if> + <#if (pcvar("VAR.InspireHeroicsAllies.INTVAL") >= 1) > + Inspire Greatness(number of allies = ${pcstring('VAR.InspireHeroicsAllies.INTVAL')}, save bonus = ${pcstring('VAR.InspireHeroicsSaves.INTVAL.SIGN')}, dodge bonus = ${pcstring('VAR.InspireHeroicsDodge.INTVAL.SIGN')}) + </#if> + <#if (pcvar("VAR.MassSuggestionDC.INTVAL") >= 1) > + Mass Suggestion(DC: ${pcstring('VAR.MassSuggestionDC.INTVAL')}) + </#if> + <#if (pcvar("VAR.BardicMusicTimes") >= 1) > + </text> + </bardic_music> + </#if> <!-- Bard --> + + + + + <!-- Pathfinder --> + <#if (pcvar("VAR.RageLVL") >= 1) > <!-- If character can Rage --> + <rage> + <uses_per_day>${pcstring('VAR.RageDuration.INTVAL')}</uses_per_day> + <uses_per_day.title>Rounds/day</uses_per_day.title> + </rage> + </#if> <!-- Character Rage --> + <#if (pcvar("VAR.RageTimes") >= 1) > <!-- If character can Rage --> + <rage> + <uses_per_day>${pcstring('VAR.RageTimes.INTVAL')}</uses_per_day> + <uses_per_day.title>Uses per day</uses_per_day.title> + <#if (pcboolean('ABILITYALL.Special Ability.0.TYPE=RageDescription.HASASPECT.RageDescription')) > + <description>${pcstring('ABILITYALL.Special Ability.0.TYPE=RageDescription.ASPECT.RageDescription')}</description> + <#else> + <description>The Barbarian gains +${pcstring('VAR.RageStrBonus.INTVAL')} to Strength, +${pcstring('VAR.RageConBonus.INTVAL')} to Constitution, and a +${pcstring('VAR.RageMorale.INTVAL')} morale bonus on Will saves, but suffers a -${pcstring('VAR.RageACPenalty.INTVAL')} penalty to AC for ${pcvar('VAR.RageConBonus.INTVAL+3')} rounds. At the end of the rage, the barbarian is fatigued (-2 to Strength, -2 to Dexterity, can't charge or run) for the duration of that encounter. The barbarian can only rage once per encounter. Entering a rage takes no time itself, but the barbarian can only do it during his action.</description> + </#if> + </rage> + <!-- this stuff needs a bit of work to display correct info for both 3e and 3.5e properly. - Tir Gwaith --> + </#if> <!-- Character Rage --> + + <!-- Turning ability --> + + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=TurnType")-1') ; turncount , turncount_has_next> + <turning kind="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnKind')}" type="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnType')}"> + <level>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnLevel.INTVAL')}</level> + <turn_check>1d20${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnCheck.INTVAL.SIGN')}</turn_check> + <damage>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnDamage')}</damage> + <uses_per_day>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnTimes.INTVAL')}</uses_per_day> + <notes>${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnNotes')}</notes> + </turning> + </@loop> + + <!-- Eclipse Channeling --> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=ChannelingType")-1') ; eclipsecount , eclipsecount_has_next> + <eclipse_channeling kind="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingKind')}" type="${pcstring('TEXT.UPPER.ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingType')}"> + <level>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingLevel.INTVAL')}</level> + <channeling_check>1d20${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingCheck.INTVAL.SIGN')}</channeling_check> + <intensity>1d20${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingIntensity.INTVAL.SIGN')}</intensity> + <channel_intensity>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingIntensity.INTVAL')}</channel_intensity> + <damage>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitude')}${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeBonus.SIGN')}${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeFactor')}</damage> + <damage_bonus>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeBonus')}</damage_bonus> + <uses_per_day>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingUses.INTVAL')}</uses_per_day> + <range>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingRange.INTVAL')}</range> + <notes>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingNotes')}</notes> + <factor>${pcstring('ABILITYALL.Special Ability.${eclipsecount}.ASPECT=ChannelingType.ASPECT.ChannelingMagnitudeFactor')}</factor> + </eclipse_channeling> + </@loop> + + <!-- Channel Energy --> + <#if (pcvar("VAR.ChannelEnergyLVL") >= 1) > + <channel_energy> + <level>${pcstring('VAR.ChannelEnergyLVL.INTVAL')}</level> + <uses_per_day>${pcstring('VAR.ChannelEnergyTimes.INTVAL')}</uses_per_day> + <uses_per_day.title>Uses per day</uses_per_day.title> + <save_dc>${pcstring('VAR.ChannelEnergyDC.INTVAL')}</save_dc> + <dice>${pcstring('VAR.ChannelEnergyDice.INTVAL')}</dice> + <die_size>${pcstring('VAR.ChannelEnergyDieSize.INTVAL')}</die_size> + <#if (pcstring("VAR.ChannelPositiveEnergyDC") = "1")> + <description>You can unleash a wave of positive energy dealing ${pcstring('VAR.ChannelEnergyDice.INTVAL')}d${pcstring('VAR.ChannelEnergyDieSize.INTVAL')} (DC ${pcstring('VAR.ChannelEnergyDC.INTVAL')} for half)</description> + <#else> + <description>You can unleash a wave of negative energy dealing ${pcstring('VAR.ChannelEnergyDice.INTVAL')}d${pcstring('VAR.ChannelEnergyDieSize.INTVAL')} (DC ${pcstring('VAR.ChannelEnergyDC.INTVAL')} for half)</description> + </#if> + </channel_energy> + </#if> + + <#if (pcvar("VAR.KiPoolLVL") >= 1) > + <ki_pool> + <uses_per_day>${pcstring('VAR.KiPoints.INTVAL')}</uses_per_day> + </ki_pool> + </#if> <!-- 3.0 stunning fist --> + + <#if (pcvar("VAR.StunningAttack") >= 1) > + <stunning_fist> + <save_dc>${pcstring('VAR.StunDC.INTVAL')}</save_dc> + <uses_per_day>${pcstring('VAR.StunningAttack.INTVAL')}</uses_per_day> + </stunning_fist> + </#if> <!-- 3.0 stunning fist --> + + <#if (pcvar("VAR.StunningFistAttack") >= 1) > + <stunning_fist> + <save_dc>${pcstring('VAR.StunningFistDC.INTVAL')}</save_dc> + <uses_per_day>${pcstring('VAR.StunningFistAttack.INTVAL')}</uses_per_day> + <description>You know just where to strike to temporarily stun a foe. ${pcstring('VAR.StunningFistAttack.INTVAL')}/day (DC ${pcstring('VAR.StunningFistDC.INTVAL')})</description> + </stunning_fist> + </#if> <!-- 3.5 stunning fist --> + + <#if (pcvar("VAR.WholenessHpLVL") >= 1) > + <wholeness_of_body> + <hp_per_day>${pcstring('VAR.WholenessHpLVL.INTVAL*2')}</hp_per_day> + </wholeness_of_body> + </#if> <!-- 3.0 wholeness of body --> + + <#if (pcvar("VAR.WholenessBody") >= 1) > + <wholeness_of_body> + <hp_per_day>${pcstring('VAR.WholenessBody.INTVAL')}</hp_per_day> + </wholeness_of_body> + </#if> <!-- 3.5 wholeness of body --> + + <#if (pcvar("VAR.TOTALPOWERPOINTS") >= 1) > <!-- Psionics --> + <psionics> + <#if (pchasvar("Manifester") || pchasvar("PsychicWarriorManifester"))> + <type>3.0</type> + <#else> + <type>3.5</type> + </#if> + <base_pp>${pcstring('VAR.BASEPOWERPOINTS.INTVAL')}</base_pp> + <bonus_pp>${pcstring('VAR.BONUSPOWERPOINTS.INTVAL')}</bonus_pp> + <total_pp>${pcstring('VAR.TOTALPOWERPOINTS.INTVAL')}</total_pp> + </psionics> + </#if> <!-- Psionics --> + + <#if (pcvar("VAR.LayOnHands") >= 1) > <!-- D&D 3.0 and 3.5 --> + <layonhands> + <hp_per_day>${pcstring('VAR.LayOnHands.INTVAL')}</hp_per_day> + <hp_per_day.title>HP per day</hp_per_day.title> + </layonhands> + </#if> + + <#if (pcvar("VAR.LayOnHandsTimes") >= 1) > <!-- Pathfinder --> + <layonhands> + <hp_per_day>${pcstring('VAR.LayOnHandsTimes.INTVAL')}</hp_per_day> + <hp_per_day.title>Uses per day</hp_per_day.title> + <description>cure ${pcstring('VAR.LayOnHandsDice.INTVAL')}d6 per use</description> + </layonhands> + </#if> + + <#if (pcvar("VAR.WildshapeTimes") >= 1) > + <wildshape> + <uses_per_day>${pcstring('VAR.WildShapeTimes.INTVAL')}</uses_per_day> + <elemental_uses_per_day>${pcstring('VAR.WildShapeElementalTimes.INTVAL')}</elemental_uses_per_day> + <duration>${pcstring('VAR.WildShapeDuration.INTVAL')}</duration> + </wildshape> + </#if> + + + <#if (pcvar("VAR.LeadershipScore") >= 1) > + <leadership> + <score>${pcstring('VAR.LeadershipScore.INTVAL')}</score> + <max_cohort_level>${pcstring('VAR.LeadershipMaxCohortLvl')}</max_cohort_level> + </leadership> + </#if> + </class_features> + + <!-- Abilites with check lists - master/child abilities --> + <checklists> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=CheckType")-1') ; ability , ability_has_next> + <checklist> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("extraordinary"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Ex)</name> + <#else> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("supernatural"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Su)</name> + <#else> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE")?lower_case?contains("spelllike"))> + <name>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')} (Sp)</name> + <#else> + </#if> + </#if> + </#if> + <header>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType')}</header> + <description>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.DESC')}</description> + <type>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.TYPE')}</type> + <source>${pcstring('ABILITYALL.Special Ability.VISIBLE.${ability}.ASPECT=CheckType.SOURCE')}</source> + <check_count>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.CheckCount.INTVAL')}</check_count> + <check_type>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.CheckType')}</check_type> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.HASASPECT.MasterAbility") = "Y")> + <master>${pcstring('ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.MasterAbility')}</master> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability")-1') ; subability , subability_has_next> + <#if (pcstring("ABILITYALL.Special Ab... [truncated message content] |
From: <ama...@us...> - 2014-12-13 01:16:28
|
Revision: 25772 http://sourceforge.net/p/pcgen/code/25772 Author: amaitland Date: 2014-12-13 01:16:21 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Mothballed update Added Paths: ----------- Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/Standard.htm.ftl Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/csheet_fantasy_character_sheet.html Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/csheet_fantasy_generic_export.xml Added: Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/Standard.htm.ftl =================================================================== --- Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/Standard.htm.ftl (rev 0) +++ Trunk/content/mothballed_data/os_sheets/d20/fantasy/htmlxml/Standard.htm.ftl 2014-12-13 01:16:21 UTC (rev 25772) @@ -0,0 +1,3444 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<!-- +PCGen Character Sheet Template +============================== +Author: Richard O'Doherty-Gregg +Email: Od...@bi... +Modifications by: arcady +Email: ar...@ya... +Revisions: Barak 10/15/02 +Email: ba...@vo... + +$Revision: 24276 $ +$Author: amaitland $ +$Date: 2014-06-22 17:06:25 -0700 (Sun, 22 Jun 2014) $ +--> +<head> +<!-- Do not use non ASCII characters in this file, + the content type charset is ignored in favor of the OS default. + See CODE-2240 --> +<meta http-equiv="content-type" content="text-html; charset=utf-8" /> +<title>|NAME| [|POOL.COST| Points]</title> +<style type="text/css"> + .font2 { + font-size:17%; + } + .lable, .topline { + font-size:50%; + } + .border6 { + font-size:xx-small; + } + .font8, .ablable, .ablableb, .sptab, .sptab1, .sptab2, .notetab, .spname, .sptop, .borderbottom8, .border8, .biodata, .skl, .splevel { + font-size:x-small; + } + .font10, .sign, .key, .border10, .skill, .skillvalue, .border10c, .border10cb { + font-size:small; + } + .font12, .h, .ab, .abb, .abt, .notehead, .sphead { + font-size:medium; + } + .font14{ + font-size:large; + } + .item { + font-size:x-large; + } + .h { + vertical-align: bottom; + } + .ab { + text-align:center; + color:white; + background:black; + } + .ablable, .ablableb { + text-align:center; + color:white; + background:black; + } + .abb { + text-align:center; + font-weight:bold; + border: 1px solid black; + } + .abt { + text-align:center; + font-weight:bold; + border: 5px solid #CCCCCC; + } + .item { + text-align:center; + color:white; + background:black; + } + .sptab { + vertical-align:top; + text-align:center; + } + .sptab1 { + vertical-align:top; + text-align:left; + } + .sptab2 { + vertical-align:top; + text-align:right; + } + .notetab { + vertical-align:top; + border: 1px solid black; + text-align:left; + } + .skl { + font-weight:bold; + text-align:center; + vertical-align:middle; + border: 4px solid black; + } + .skillValue { + border-top-width: 1px; + border-top-style: solid; + border-top-color: black; + } + .topline { + border-top-width:1px; + border-top: 1pt solid black; + } + .spname { + vertical-align:top; + text-align:left; + } + .sptop { + vertical-align:top; + border: 1px solid black; + text-align:center; + color:white; + } + .splevel { + background:black; + text-align:center; + color:white; + } + .sphead { + background:black; + text-align:center; + color:white; + } + .notehead { + background:black; + text-align:center; + color:white; + } + .border10c, .border10cb { + text-align:center; + } + .border10cb, .ablableb { + font-weight: bold; + } + .biodata { + vertical-align:bottom; + text-align:left; + } + .border, .border4, .border6, .border8, .border10, .border10c, .border10cb { + border: 1px solid black; + } + .tempborder { + border: 5px solid lightgray; + } + .borderbottom { + border-bottom-width:1px; + border-bottom: 1pt solid black; + } + .borderbottom8 { + border-bottom-width:1px; + border-bottom: 1pt solid black; + } + span.notes p { + margin-top:0; + margin-bottom:0; + } + .block th { + text-transform:uppercase; + } +</style> +</head> +<body bgcolor="white"> +<center><font size="-1">Created using PCGen |EXPORT.VERSION| on |EXPORT.DATE|</font></center><br /> +<!-- START Top Character Data --> +<table cellpadding="0" cellspacing="4" border="0" width="100%" summary="Character Info"> + <tr> + <td colspan="2" class="h">|NAME| |%FOLLOWEROF|- |FOLLOWEROF| |%|</td> + <td colspan="2" class="h">|PLAYERNAME|</td> + <td colspan="1" class="h">|ALIGNMENT|</td> + <td colspan="1" class="h">|DEITY|</td> + <td class="h">|POOL.COST|</td> + <td rowspan="6" align="center" width="1%" class="border" class="font10"><a href="#Bio"><img src="file://localhost/|PORTRAIT.THUMB|" height="100%" alt="Click for Bio" border="0" /></a><br /></td> + </tr> + <tr> + <td colspan="2" class="topline">CHARACTER NAME</td> + <td colspan="2" class="topline">PLAYER</td> + <td colspan="1" class="topline">ALIGNMENT</td> + <td colspan="1" class="topline">DEITY</td> + <td class="topline">POINTS</td> + </tr> + <tr> + <@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> + <#if (pcvar(pcstring('CLASS.${class}.LEVEL')) > 0) > + <td colspan="1" class="h">${pcstring('CLASSABB.${class}')} + </#if> + </@loop> + <!-- <td colspan="1" class="h">${pcstring('CLASSLIST')} --> + <#if (pcvar('count("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> + (${pcstring('ABILITYLIST.Archetype.TYPE=Archetype')}) + </#if> + </td> +<!-- <td colspan="1" class="h">|CLASSLIST|</td> --> + <td colspan="1" class="h">|EXP.CURRENT|</td> + <td colspan="1" class="h">|RACE|</td> + <td class="h">|SIZELONG| / |FACE|</td> + <td class="h">|HEIGHT|</td> + <td class="h">|WEIGHT|</td> +|IIF(VAR.IF(var("COUNT[VISION]")>0;1;0):1)| + <td colspan="1" class="h">|VISION|</td> +|ELSE| + <td colspan="1" class="h">Normal</td> +|ENDIF| + + </tr> + <tr> + <td colspan="1" class="topline">CLASS</td> + <td colspan="1" class="topline">EXPERIENCE</td> + <td colspan="1" class="topline">RACE</td> + <td class="topline">SIZE / FACE</td> + <td class="topline">HEIGHT</td> + <td class="topline">WEIGHT</td> + <td colspan="1" class="topline">VISION</td> + </tr> + <tr> + <td class="h">|TOTALLEVELS|</td> + <td class="h">|EXP.NEXT|</td> + <td class="h">|AGE|</td> + <td class="h">|GENDER|</td> + <td class="h">|COLOR.EYE|</td> + <td colspan="2" class="h">|COLOR.HAIR|, |LENGTH.HAIR|</td> + </tr> + <tr> + <td class="topline">LEVEL</td> + <td class="topline">NEXT LEVEL</td> + <td class="topline">AGE</td> + <td class="topline">GENDER</td> + <td class="topline">EYES</td> + <td colspan="2" class="topline">HAIR</td> + </tr> + + + +</table> +<!-- STOP Top Character Data --> + +<table width="100%" border="0" cellspacing="0" cellpadding="0"> + <tr> + <td width="200"> + <!-- START Abilities Table --> + <table width="95%" summary="Stat Block"> + <tr> + <td align="center" width="20%" class="lable">ABILITY<br />NAME</td> + <td align="center" width="20%" class="lable">ABILITY<br />SCORE</td> + <td align="center" width="20%" class="lable">ABILITY<br />MODIFIER</td> + <td align="center" width="20%" class="lable">TEMPORARY<br />SCORE</td> + <td align="center" width="20%" class="lable">TEMPORARY<br />MODIFIER</td> + </tr> +|FOR,%stat,0,COUNT[STATS]-1,1,1| + <tr> + <td class="ab"><b>|STAT.%stat.NAME|</b><br /> + <span class="ablable"> |STAT.%stat.LONGNAME| </span></td> + <td class="abb">|STAT.%stat.NOTEMP.NOEQUIP|</td> + <td class="abb">|STAT.%stat.MOD.NOTEMP.NOEQUIP|</td> + <td class="abt">|STAT.%stat|</td> + <td class="abt">|STAT.%stat.MOD|</td> + </tr> +|ENDFOR| + </table> +<!-- STOP Abilities Table --> + </td> + <td valign="top"> +|IIF(VAR.IF(var("UseAlternateDamage")==0;1;0):1)| +<!-- START Hit Point Table --> + <table summary="Hit Point Table"> + <tr> + <td align="center" width="90"></td> + <td align="center" width="25"></td> + <td align="center"></td> + <td align="center" width="119" class="lable">WOUNDS/CURRENT HP</td> + <td align="center"></td> + <td align="center" width="119" class="lable">SUBDUAL DAMAGE</td> + <td align="center"></td> + <td align="center" width="119" class="lable"> DAMAGE REDUCTION </td> + <td align="center"></td> + <td align="center" width="119" class="lable">SPEED</td> + </tr> + <tr> + <td class="ab"><b>HP</b> + <br /><span class="ablable"> Hit Points</span></td> + <td align="center" class="abb"><b>|HP|</b></td> + <td align="center"><br /></td> + <td align="center" class="border8"><br /></td> + <td align="center"><br /></td> + <td align="center" class="border8"><br /></td> + <td align="center"><br /></td> + <td align="center" class="abb"><b> |DR| </b></td> + <td align="center"><br /></td> + <td align="center" class="border8"> +|FOR,%movement,0,COUNT[MOVE]-1,1,1| +|MOVE.%movement.NAME| |MOVE.%movement.RATE| +|IIF(MOVE.%movement.NAME:Fly)| +(|ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability|) +|ENDIF| +|ENDFOR| + </td> + </tr> + </table> +<!-- STOP Hit Point Table --> +|ELSE| +<!-- START Vitality/Wound Point Table--> + <table summary="Vitality/Wound Point Table"> + <tr> + <td align="center" width="90"></td> + <td align="center" width="25" valign="bottom"></td> + <td align="center"></td> + <td align="center" width="75" class="lable">CURRENT VITALITY</td> + <td align="center"></td> + <td align="center" width="75" class="lable">SUBDUAL DAMAGE</td> + <td align="center"></td> + <td align="center" width="50"></td> + <td align="center" width="25" valign="bottom"></td> + <td align="center"></td> + <td align="center" width="75" class="lable">CURRENT WP</td> + <td align="center"></td> + <td align="center" class="lable">DAMAGE REDUCTION</td> + <td align="center"></td> + <td align="center" class="lable">SPEED</td> + </tr> + <tr> + <td class="ab"><b>VP</b> + <br /><span class="ablable">Vitality</span></td> + <td align="center" class="abb"><b>|HP|</b></td> + <td align="center"><br /></td> + <td align="center" class="border8"></td> + <td></td> + <td align="center" class="border8"></td> + <td align="center"></td> + <td class="ab"><b>WP</b> + <br /><span class="ablable">Wound Points</span></td> + <td align="center" class="abb"><b>|ALTHP|</b></td> + <td></td> + <td class="abb"></td> + <td></td> + <td align="center" class="abb"><b> |DR| </b></td> + <td></td> + <td align="center" class="border8"> +|FOR,%movement,0,COUNT[MOVE]-1,1,1| +|MOVE.%movement.NAME| |MOVE.%movement.RATE| +|IIF(MOVE.%movement.NAME:Fly)| +(|ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability|) +|ENDIF| +|ENDFOR| + </td> + </tr> + </table> +<!-- STOP Vitality/Wound Point Table --> +|ENDIF| +<br /> +<!-- Armour Class Table --> + <table summary="AC Table"> + <tr> + <td width="90" class="ab"><b>AC</b> + <br /><span class="ablable"> Armour Class </span></td> + <td align="center" class="abb"><b>|AC.Total|</b></td> + <td align="center" class="sign"><b>:</b></td> + <td align="center" class="abb"><b>|AC.Touch|</b></td> + <td align="center" class="sign"><b>:</b></td> + <td align="center" class="abb"><b>|AC.Flatfooted|</b></td> + <td align="center" class="sign"><b>=</b></td> + <td align="center" class="abb"><b>|AC.Base|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Armor|</b></td> + + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Shield|</b></td> + + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Ability|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Size|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.NaturalArmor|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Dodge|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Deflection|</b></td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abb"><b>|AC.Misc|</b></td> + <td align="center" width="5"></td> + <td align="center" class="abb"><br /></td> + <td align="center"></td> + <td align="center" class="abb"><b>|SPELLFAILURE|</b></td> + <td align="center"></td> + <td align="center" class="abb"><b>|ACCHECK|</b></td> + <td align="center"></td> + <td align="center" class="abb"><b>|MAXDEX|</b></td> + <td align="center"></td> + <td align="center" class="abb"><b>|SR|</b></td> + <td align="center"></td> + <td align="center" class="abb"><b> </b></td> + </tr> + <tr> + <td align="center" width="50"></td> + <td align="center" width="25" valign="top" class="lable"><b>TOTAL</b></td> + <td align="center"></td> + <td align="center" width="25" valign="top" class="lable"><b>TOUCH</b></td> + <td align="center"></td> + <td align="center" width="25" valign="top" class="lable"><b>FLAT</b></td> + <td align="center"></td> + <td align="center" width="25" class="lable">BASE</td> + <td align="center"></td> + <td align="center" width="25" class="lable">ARMOR<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">SHIELD<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">STAT<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">SIZE<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">NATURAL<br />ARMOR</td> + <td align="center"></td> + <td align="center" width="25" class="lable">DODGE<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">DEFLECTION<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MISC<br />BONUS</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MISS<br />CHANCE</td> + <td align="center"></td> + <td align="center" width="25" class="lable">ARCANE<br />FAILURE</td> + <td align="center"></td> + <td align="center" width="25" class="lable">ARMOR<br />CHECK</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MAX<br />DEX</td> + <td align="center"></td> + <td align="center" width="25" class="lable">SPELL<br />RESIST.</td> + <td align="center"></td> + <td align="center" width="25" class="lable">TEMP</td> + </tr> + </table> +<!-- STOP AC Table --> +<!-- START Initiative and Base Attack Table --> + <table summary="Initiative Table"> + <tr> + <td class="ab" width="90"><b>INITIATIVE</b><br /><span class="ablable"> Modifier</span></td> + <td class="border10cb">|INITIATIVEMOD|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|STAT.1.MOD|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|INITIATIVEBONUS|</td> + <td width="20" align="center" class="sign"></td> + <td class="ab"><b> BASE ATTACK BONUS </b></td> + <td width="94" class="border10cb">|ATTACK.MELEE|</td> +|IIF(VAR.ENCUMBERANCE>0)| + <td width="20" align="center" class="sign"></td> + <td class="ab"><b> ENCUMBRANCE </b></td> +|ENDIF| +|IIF(VAR.ENCUMBERANCE:1)| + <td width="94" class="border10cb">Medium</td> +|ENDIF| +|IIF(VAR.ENCUMBERANCE:2)| + <td width="94" class="border10cb">Heavy</td> +|ENDIF| +|IIF(VAR.ENCUMBERANCE:3)| + <td width="94" class="border10cb">Overloaded</td> +|ENDIF| + </tr> + <tr> + <td align="center" width="50" class="sign"></td> + <td align="center" width="25" valign="top" class="lable">TOTAL</td> + <td align="center"></td> + <td align="center" width="25" class="lable">DEX</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MISC</td> + <td rowspan="3" ></td> + </tr> + </table> +<!-- STOP Initiative and Base Attack Table --> + </td> + </tr> +</table> + + +<table width="100%" border="0" cellspacing="0" cellpadding="0"> + <tr> + <td width="55%" valign="top"> + +<!-- START Saving Throws Table --> + <table width="100%" summary="Saving Throws"> + <tr> + <td align="center" class="lable" width="75">SAVING THROWS</td> + <td align="center" width="25" class="lable">TOTAL</td> + <td align="center"></td> + <td align="center" width="25" class="lable">BASE</td> + <td align="center"></td> + <td align="center" width="25" class="lable">ABILITY</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MAGIC</td> + <td align="center"></td> + <td align="center" width="25" class="lable">EPIC</td> + <td align="center"></td> + <td align="center" width="25" class="lable">MISC</td> + <td align="center"></td> + <td align="center" width="25" class="lable">TEMP</td> + + <td align="left" valign="top" rowspan="4" class="border8"><div align="center" class="lable">CONDITIONNAL SAVE MODIFIERS </div> +|FOR,%ability,0,count("ABILITIES","ASPECT=SaveBonus")-1,1,0| + |ABILITYALL.ANY.%ability.ASPECT=SaveBonus.ASPECT.SaveBonus| <br > +|ENDFOR|</td> + + </tr> +|FOR,%checks,0,COUNT[CHECKS]-1,1,0| + <tr> + <td class="ab"><b>|CHECK.%checks.NAME|</b><span class="ablable"><br /> +|IIF(CHECK.%checks.NAME:Fortitude)| +Constitution +|ELSE| +|ENDIF| +|IIF(CHECK.%checks.NAME:Reflex)| +Dexterity +|ELSE| +|ENDIF| +|IIF(CHECK.%checks.NAME:Will)| +Wisdom +|ELSE| +|ENDIF| +</span> + </td> + <td class="border10cb">|CHECK.%checks.TOTAL|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|CHECK.%checks.BASE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|CHECK.%checks.STATMOD|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|CHECK.%checks.MAGIC|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|CHECK.%checks.EPIC|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|CHECK.%checks.MISC.NOMAGIC.NOSTAT|</td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abt"></td> + </tr> +|ENDFOR| + </table> +<!-- STOP Saving Throws Table --> + +<!-- START Melee and Range Attack Table --> + <table width="100%" summary="Melee ~ Ranged Attacks"> + <tr> + <td align="center" width="75"></td> + <td align="center" valign="bottom" class="lable">TOTAL</td> + <td align="center"></td> + <td align="center" valign="bottom" class="lable">BASE ATTACK</td> + <td align="center"></td> + <td align="center" width="25" valign="bottom" class="lable">STAT</td> + <td align="center"></td> + <td align="center" width="25" valign="bottom" class="lable">SIZE</td> + <td align="center"></td> + <td align="center" width="25" valign="bottom" class="lable">EPIC</td> + <td align="center"></td> + <td align="center" width="25" valign="bottom" class="lable">MISC</td> + <td align="center"></td> + <td align="center" width="25" valign="bottom" class="lable">TEMP</td> + </tr> + <tr> + <td class="ab"><b>MELEE</b><br /><span class="ablable">ATTACK BONUS</span></td> + <td class="border10cb">|ATTACK.MELEE.TOTAL|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|ATTACK.MELEE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.MELEE.STAT|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.MELEE.SIZE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|VAR.charbonusto("COMBAT","EPICAB").INTVAL.SIGN|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.MELEE.MISC|</td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abt"></td> + </tr> + <tr> + <td class="ab"><b>RANGED</b><br /><span class="ablable">ATTACK BONUS</span></td> + <td class="border10cb">|ATTACK.RANGED.TOTAL|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|ATTACK.RANGED|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.RANGED.STAT|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.RANGED.SIZE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|VAR.charbonusto("COMBAT","EPICAB").INTVAL.SIGN|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.RANGED.MISC|</td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abt"></td> + </tr> +|IIF(VAR.UseCombatManueverBonus:1)| + <tr> + <td class="ab"><b>CMB</b><br /><span class="ablable">ATTACK BONUS</span></td> + <td class="border10cb">|VAR.CMB.INTVAL.SIGN|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|ATTACK.MELEE.BASE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|VAR.CMB_STAT.INTVAL.SIGN|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|VAR.CMB_SizeMod.INTVAL.SIGN|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">+0</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|VAR.CMB-ATTACK.MELEE.BASE-VAR.CMB_STAT-VAR.CMB_SizeMod.INTVAL.SIGN|</td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abt"></td> + </tr> + <tr><td></td></tr> + </table> + <table width="100%" summary="CMB block"> +|IIF(VAR.IF(VAR("CMD")>0;1;0):1)| + <tr> + <td class="ab"><b>CMB</b></td> + <td class="border10cb">|VAR.CMB_Grapple.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Trip.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Disarm.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Sunder.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_BullRush.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Overrun.INTVAL.SIGN|</td> + </tr> + <tr> + <td class="ab"><b>CMD</b></td> + <td class="border10cb">|VAR.CMD_Grapple.INTVAL|</td> + <td class="border10cb"> +|IIF(VAR.IF(var("CantBeTripped")!=0;1;0):1)| +Immune +|ELSE| +|VAR.CMD_Trip.INTVAL| +|ENDIF| + </td> + <td class="border10cb">|VAR.CMD_Disarm.INTVAL|</td> + <td class="border10cb">|VAR.CMD_Sunder.INTVAL|</td> + <td class="border10cb">|VAR.CMD_BullRush.INTVAL|</td> + <td class="border10cb">|VAR.CMD_Overrun.INTVAL|</td> + </tr> +|ELSE| + <tr> + <td class="ab"><b>OFFENSE</b></td> + <td class="border10cb">|VAR.CMB_Grapple.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Trip.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Disarm.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Sunder.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Bull.INTVAL.SIGN|</td> + <td class="border10cb">|VAR.CMB_Overrun.INTVAL.SIGN|</td> + </tr> + <tr> + <td class="ab"><b>DEFENSE</b></td> + <td class="border10cb">|VAR.CMB_Grapple_DEF.INTVAL|</td> + <td class="border10cb">|VAR.CMB_Trip_DEF.INTVAL|</td> + <td class="border10cb">|VAR.CMB_Disarm_DEF.INTVAL|</td> + <td class="border10cb">|VAR.CMB_Sunder_DEF.INTVAL|</td> + <td class="border10cb">|VAR.CMB_Bull_DEF.INTVAL|</td> + <td class="border10cb">|VAR.CMB_Overrun_DEF.INTVAL|</td> + </tr> +|ENDIF| + <tr> + <td align="center" width="28%"></td> + <td align="center" width="12%" valign="top" class="lable">GRAPPLE</td> + <td align="center" width="12%" valign="top" class="lable">TRIP</td> + <td align="center" width="12%" valign="top" class="lable">DISARM</td> + <td align="center" width="12%" valign="top" class="lable">SUNDER</td> + <td align="center" width="12%" valign="top" class="lable">BULL RUSH</td> + <td align="center" width="12%" valign="top" class="lable">OVERRUN</td> + </tr> + <tr> + <td align="left" valign="top" colspan="14" class="border8"><div align="center" class="lable">CONDITIONNAL COMBAT MODIFIERS </div> +|FOR,%ability,0,count("ABILITIES","ASPECT=CombatBonus")-1,1,0| + |ABILITYALL.ANY.%ability.ASPECT=CombatBonus.ASPECT.CombatBonus| <br > +|ENDFOR| + </td> + </tr> + </table> + <br /> +|ELSE| + <tr> + <td class="ab"><b>GRAPPLE</b><br /><span class="ablable">ATTACK BONUS</span></td> + <td class="border10cb">|ATTACK.GRAPPLE.TOTAL|</td> + <td align="center" class="sign"><b>=</b></td> + <td class="border10cb">|ATTACK.GRAPPLE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.GRAPPLE.STAT|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.GRAPPLE.SIZE|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.GRAPPLE.EPIC|</td> + <td align="center" class="sign"><b>+</b></td> + <td class="border10cb">|ATTACK.GRAPPLE.MISC|</td> + <td align="center" class="sign"><b>+</b></td> + <td align="center" class="abt"></td> + </tr> + <tr><td></td></tr> + <tr> + <td align="left" valign="top" colspan="14" class="border8"><div align="center" class="lable">CONDITIONNAL COMBAT MODIFIERS </div> +|FOR,%ability,0,count("ABILITIES","ASPECT=CombatBonus")-1,1,0| + |ABILITYALL.ANY.%ability.ASPECT=CombatBonus.ASPECT.CombatBonus| <br > +|ENDFOR| + </td> + </tr> + </table> + <br /> +|ENDIF| +<!-- STOP Melee and Range Attack Table --> +<!-- START Martial Arts Table --> +|IIF(VAR.UseMartialArts:1)| + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Unarmed Attack"> + <tr> + <td align="center" height="25" bgcolor="black" rowspan="2" width="40%" class="ab"><b>Martial Arts</b></td> + <td align="center" bgcolor="black" width="15%" class="ablableb" height="20">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">REACH</td> + </tr> + <tr style="font-weight: bold;"> + <td class="border10c" height="20">|WEAPONH.TOTALHIT|</td> +|IIF(VAR.MartialArtsBonusDamage<0)| + <td class="border10c">|VAR.MartialArtsDie.INTVAL|d|VAR.MartialArtsDieSize.INTVAL|-|VAR.MartialArtsBonusDamage.INTVAL|</td> +|ELSE| + <td class="border10c">|VAR.MartialArtsDie.INTVAL|d|VAR.MartialArtsDieSize.INTVAL|+|VAR.MartialArtsBonusDamage.INTVAL|</td> +|ENDIF| + <td class="border10c">|WEAPONH.CRIT|/×|WEAPONH.MULT|</td> + <td class="border10c">|REACH|</td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Unarmed Attack - Special Properties"> + <tr> + <td align="center" bgcolor="black" width="25%" class="ablableb">Special Properties</td> + + <td class="border10c" > +|FOR,%NaturalAttack,0,count("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1,1,0| + |ABILITYALL.Special Ability.%NaturalAttack.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes| +|ENDFOR|</td> + </tr> + </table> + <br /> +<!-- STOP Martial Arts Table --> +|ELSE| +<!-- START Unarmed Attack Table --> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Unarmed Attack"> + <tr> + <td align="center" height="25" bgcolor="black" rowspan="2" width="40%" class="ab"><b>UNARMED</b></td> + <td align="center" bgcolor="black" width="15%" class="ablableb" height="20">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">REACH</td> + </tr> + <tr style="font-weight: bold;"> + <td class="border10c" height="20">|WEAPONH.TOTALHIT|</td> + <td class="border10c">|WEAPONH.DAMAGE|</td> + <td class="border10c">|WEAPONH.CRIT|/×|WEAPONH.MULT|</td> + <td class="border10c">|REACH|</td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Unarmed Attack - Special Properties"> + <tr> + <td align="center" bgcolor="black" width="25%" class="ablableb">Special Properties</td> + <td class="border10c" > +|FOR,%NaturalAttack,0,count("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay")-1,1,0| + |ABILITYALL.Special Ability.%NaturalAttack.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes| +|ENDFOR|</td> + </tr> + </table> + <br /> +<!-- STOP Unarmed Attack Table --> +|ENDIF| + +<!-- START Spirit Weapon Melee --> +|IIF(VAR.UseSpiritWeaponMelee:1)| + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Spirit Weapon Melee"> + <tr> + <td align="center" height="25" bgcolor="black" rowspan="2" width="40%" class="ab"><b>Spirit Weapon - Melee</b></td> + <td align="center" bgcolor="black" width="15%" class="ablableb" height="20">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">REACH</td> + </tr> + <tr> + <td class="border10c" height="20">|VAR.SpiritWeaponMeleeToHit.INTVAL|</td> +|IIF(VAR.SpiritWeaponMeleeBonusDamage<0)| + <td class="border10c">|VAR.SpiritWeaponMeleeDie.INTVAL|d|VAR.SpiritWeaponMeleeDieSize.INTVAL|-|VAR.SpiritWeaponMeleeBonusDamage.INTVAL|</td> +|ELSE| + <td class="border10c">|VAR.SpiritWeaponMeleeDie.INTVAL|d|VAR.SpiritWeaponMeleeDieSize.INTVAL|+|VAR.SpiritWeaponMeleeBonusDamage.INTVAL|</td> +|ENDIF| + <td class="border10c">|VAR.SpiritWeaponMeleeCritRange.INTVAL|/×|VAR.SpiritWeaponMeleeCritMult.INTVAL|</td> + <td class="border10c">|REACH|</td> + </tr> + </table> + <br /> +|ENDIF| +<!-- STOP Spirit Weapon Melee --> +<!-- START Spirit Weapon Ranged --> +|IIF(VAR.UseSpiritWeaponRanged:1)| + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Spirit Weapon Ranged"> + <tr> + <td align="center" height="25" bgcolor="black" rowspan="2" width="40%" class="ab"><b>Spirit Weapon - Range</b></td> + <td align="center" bgcolor="black" width="15%" class="ablableb" height="20">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">RANGE</td> + </tr> + <tr> + <td class="border10c" height="20">|VAR.SpiritWeaponRangedToHit.INTVAL|</td> +|IIF(VAR.SpiritWeaponRangedBonusDamage<0)| + <td class="border10c">|VAR.SpiritWeaponRangedDie.INTVAL|d|VAR.SpiritWeaponRangedDieSize.INTVAL|-|VAR.SpiritWeaponRangedBonusDamage.INTVAL|</td> +|ELSE| + <td class="border10c">|VAR.SpiritWeaponRangedDie.INTVAL|d|VAR.SpiritWeaponRangedDieSize.INTVAL|+|VAR.SpiritWeaponRangedBonusDamage.INTVAL|</td> +|ENDIF| + <td class="border10c">|VAR.SpiritWeaponRangedCritRange.INTVAL|/×|VAR.SpiritWeaponRangedCritMult.INTVAL|</td> + <td class="border10c">|VAR.SpiritWeaponRangedRange.INTVAL|</td> + </tr> + </table> + <br /> +|ENDIF| +<!-- STOP Spirit Weapon Ranged --> + + + + + +<!-- START Natural Attack Block --> +|IIF(count("ABILITIES";"CATEGORY=Natural Attack";"TYPE=NaturalAttack";"VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")>0)| + +|FOR,%NaturalAttack,0,count("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack")-1,1,0| +<!--> <type>|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackType|</type> --> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Natural Attack Block"> + <tr> + <td align="center" height="25" bgcolor="black" rowspan="2" width="40%" class="ab"><b>|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackName|</b></td> + <td align="center" bgcolor="black" width="15%" class="ablableb" height="20">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="15%" class="ablableb">CRIT / MULT</td> +|IIF(ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.HASASPECT.NaturalAttackRange:Y)| + <td align="center" bgcolor="black" width="15%" class="ablableb">RANGE</td> +|ELSE| + <td align="center" bgcolor="black" width="15%" class="ablableb">REACH</td> +|ENDIF| + </tr> + <tr> + <td class="border10c" height="20">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackToHit|</td> + <td class="border10c">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackDamage||ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackDamageBonus.SIGN|</td> +<!--> <td class="border10c">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackDamage||ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackDamageBonus.SIGN|</td> +--> + <td class="border10c">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackThreatRange||ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult|</td> +|IIF(ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.HASASPECT.NaturalAttackRange:Y)| + <td class="border10c">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackRange|</td> +|ELSE| + <td class="border10c">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackReach|</td> +|ENDIF| + </tr> +|IIF(ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.DESC:YES)| + <tr> + <td align="center" bgcolor="black" colspan="1" width="15%" class="ablable" height="20">Special Properties</td> + <td colspan="4" class="border10">|ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes||ABILITYALL.Natural Attack.%NaturalAttack.TYPE=NaturalAttack.DESC|</td> + </tr> +|ELSE| +|ENDIF| + </table> + <br /> +|ENDFOR| +|ENDIF| +<!-- STOP Natural Attack Block --> + + + +<!-- START Weapon Table --> +|FOR,%weap,0,2,1,1| + <table cellpadding="0" width="100%" cellspacing="0" border="0" summary="Weapon Table"> +|IIF(WEAPON.%weap.CATEGORY:BOTH)| +|IIF(WEAPON.%weap.CATEGORY:Ranged)| + <tr> + <td align="left" height="15" bgcolor="black" width="8%" class="ablableb"> Range</td> +|FOR,%range,0,4,1,0| + <td width="18%" align="center" bgcolor="black" class="ablable"><b>|WEAPON.%weap.RANGELIST.%range|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" class="ablableb"> Bonus</td> +|FOR,%range1,0,4,1,0| + <td class="border10c"><b>|WEAPON.%weap.RANGELIST.%range1.TOTALHIT|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Dam</td> +|FOR,%range2,0,4,1,0| + <td class="border10cb">|WEAPON.%weap.RANGELIST.%range2.DAMAGE|</td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablable"><b> Ammunition Used<br /></b></td> + <td valign="bottom" class="border10c" colspan="5">☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐</td> + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablable"><b> Special Properties<br /></b></td> + <td align="left" colspan="5" class="border10"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> + <span class="font2"><br /></span> +|ELSE| + <tr> + <td align="center" bgcolor="black" rowspan="2" width="40%" class="ab"><b>|WEAPON.%weap.NAME|<br /></b></td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">HAND</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">TYPE</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">SIZE</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">REACH</td> + </tr> + <tr> + <td class="border10c"><b>|WEAPON.%weap.HAND|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TYPE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.SIZE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.CRIT|/×|WEAPON.%weap.MULT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.REACH||WEAPON.%weap.REACHUNIT|<br /></b></td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Weapon Table"> + <tr> + <td align="center" height="15" bgcolor="black" width="8%"></td> + <td align="center" height="15" bgcolor="black" width="16%" class="ablableb">1H-P</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">1H-O</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2H</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2W-P-(OH)</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2W-P-(OL)</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">2W-OH</td> + </tr> + <tr> + <td align="left" bgcolor="black" class="border"><b> Bonus</b></td> + <td class="border10c"><b>|WEAPON.%weap.BASEHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.THHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWPHITH|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWPHITL|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWOHIT|<br /></b></td> + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Dam</td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.THDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHDAMAGE|<br /></b></td> + </tr> + </table> +|ENDIF| +|ELSE| +|IIF(WEAPON.%weap.CATEGORY:Ranged)| + <tr> + <td align="center" bgcolor="black" rowspan="2" width="40%" class="ab"><b>|WEAPON.%weap.NAME|<br /></b></td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">HAND</td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">TYPE</td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">SIZE</td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">CRITICAL</td> + </tr> + <tr> + <td class="border10c"><b>|WEAPON.%weap.HAND|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TYPE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.SIZE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.CRIT|/×|WEAPON.%weap.MULT|<br /></b></td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Weapon Table"> +|IIF(WEAPON.%weap.CONTENTS:0)| + <tr> + <td align="left" height="15" bgcolor="black" width="8%" class="ablableb"> Range</td> +|FOR,%range,0,4,1,0| + <td width="18%" align="center" bgcolor="black" class="ablable"><b>|WEAPON.%weap.RANGELIST.%range|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Bonus</td> +|FOR,%range1,0,4,1,0| + <td class="border10c"><b>|WEAPON.%weap.RANGELIST.%range1.TOTALHIT|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Dam</td> +|FOR,%range2,0,4,1,0| + <td class="border10cb">|WEAPON.%weap.RANGELIST.%range2.DAMAGE|</td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" colspan="2" class="ablable"><b> Ammunition Used<br /></b></td> + <td valign="bottom" class="border10c" colspan="5">☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐</td> + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablable"><b> Special Properties<br /></b></td> + <td colspan="5" class="border10"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> + <span class="font2"><br /></span> +|ELSE| +|FOR,%ammo,0,WEAPON.%weap.CONTENTS-1,1,0| + <tr> + <td colspan="6" align="left" height="15" bgcolor="black" width="8%" class="ablableb"> AMMUNITION: |WEAPON.%weap.CONTENTS.%ammo| +|IIF(WEAPON.%weap.CONTENTS.%ammo.SPROP: )| +(|WEAPON.%weap.CONTENTS.%ammo.SPROP|) +|ENDIF| + </td> + </tr> + <tr> + <td align="left" height="15" bgcolor="black" width="8%" class="ablableb"> Range</td> +|FOR,%range,0,4,1,0| + <td width="18%" align="center" bgcolor="black" class="border" class="ablable"><b>|WEAPON.%weap.RANGELIST.%range|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" class="ablableb"> Bonus</td> +|FOR,%range1,0,4,1,0| + <td class="border10c"><b>|WEAPON.%weap.RANGELIST.%range1.CONTENTS.%ammo.TOTALHIT|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" class="ablableb"> Dam</td> +|FOR,%range2,0,4,1,0| + <td class="border10cb">|WEAPON.%weap.RANGELIST.%range2.CONTENTS.%ammo.DAMAGE|</td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" colspan="2" class="ablable"><b> Ammunition Used<br /></b></td> + <td valign="bottom" colspan="5" class="border10c">☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐</td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablable"><b> Special Properties<br /></b></td> + <td colspan="5" class="border10"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> + <br /> +|ENDIF| +|ELSE| +|IIF(WEAPON.%weap.ISTYPE.Double.OR.WEAPON.%weap.CATEGORY:Non-Standard-Melee.OR.WEAPON.%weap.CATEGORY:NATURAL)| + <tr> + <td align="center" height="15" bgcolor="black" rowspan="2" width="40%" class="ab"><b>|WEAPON.%weap.NAME|<br /></b></td> + <td align="center" bgcolor="black" width="20%" height="15" class="ablableb">TOTAL ATTACK BONUS</td> + <td align="center" bgcolor="black" width="20%" height="15" class="ablableb">DAMAGE</td> + <td align="center" bgcolor="black" width="20%" height="15" class="ablableb">CRITICAL</td> + </tr> + <tr> + <td class="border10c"><b>|WEAPON.%weap.TOTALHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.DAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.CRIT|/×|WEAPON.%weap.MULT|<br /></b></td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Weapon Table"> + <tr> + <td align="center" height="15" bgcolor="black" width="15%" class="ablableb">HAND</td> + <td align="center" height="15" bgcolor="black" width="15%" class="ablableb">RANGE</td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">TYPE</td> + <td align="center" bgcolor="black" width="15%" height="15" class="ablableb">SIZE</td> + <td align="center" bgcolor="black" width="40%" height="15" class="ablableb">SPECIAL PROPERTIES</td> + </tr> + <tr> + <td class="border10c"><b>|WEAPON.%weap.HAND|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.RANGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TYPE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.SIZE|<br /></b></td> + <td class="border10c"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> + <br /> +|ELSE| + <tr> + <td align="center" bgcolor="black" rowspan="2" width="40%" class="ab"><b>|WEAPON.%weap.NAME|<br /></b></td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">HAND</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">TYPE</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">SIZE</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">CRITICAL</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">REACH</td> + </tr> + <tr> + <td class="border10c"><b>|WEAPON.%weap.HAND|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TYPE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.SIZE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.CRIT|/×|WEAPON.%weap.MULT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.REACH||WEAPON.%weap.REACHUNIT|<br /></b></td> + </tr> + </table> + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Weapon Table"> + <tr> + <td align="center" height="15" bgcolor="black" width="8%"></td> + <td align="center" height="15" bgcolor="black" width="16%" class="ablableb">1H-P</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">1H-O</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2H</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2W-P-(OH)</td> + <td align="center" bgcolor="black" width="16%" height="15" class="ablableb">2W-P-(OL)</td> + <td align="center" bgcolor="black" width="12%" height="15" class="ablableb">2W-OH</td> + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Bonus</td> + <td class="border10c"><b>|WEAPON.%weap.BASEHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.THHIT|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWPHITH|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWPHITL|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.TWOHIT|<br /></b></td> + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Dam</td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.THDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.BASICDAMAGE|<br /></b></td> + <td class="border10c"><b>|WEAPON.%weap.OHDAMAGE|<br /></b></td> + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablableb"> Special Properties</td> + <td colspan="5" class="border10"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> + <br /> +|ENDIF| +|ENDIF| +|ENDIF| +|ENDFOR| +|%WEAPON.3| +|FOR,%weap,3,3,1,1| +|IIF(WEAPON.%weap.CATEGORY:BOTH)| +|IIF(WEAPON.%weap.CATEGORY:Ranged)| + <table cellpadding="0" width="100%" cellspacing="0" border="0" summary="Weapon Table"> + <tr> + <td align="left" height="15" bgcolor="black" width="10%" class="ablableb"> Range</td> +|FOR,%range,0,4,1,0| + <td width="18%" align="center" bgcolor="black" class="ablable"><b>|WEAPON.%weap.RANGELIST.%range|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Bonus</td> +|FOR,%range1,0,4,1,0| + <td class="border10c"><b>|WEAPON.%weap.RANGELIST.%range1.TOTALHIT|<br /></b></td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="ablableb"> Dam</td> +|FOR,%range2,0,4,1,0| + <td class="border10cb">|WEAPON.%weap.RANGELIST.%range2.DAMAGE|</td> +|ENDFOR| + </tr> + <tr> + <td align="left" bgcolor="black" class="border" colspan="2" class="ablable"><b> Ammunition Used<br /></b></td> + <td valign="bottom" colspan="5" class="border10c">☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐</td> + </tr> + <tr> + <td align="left" bgcolor="black" colspan="2" class="ablable"><b> Special Properties<br /></b></td> + <td colspan="5" class="border10"> |WEAPON.%weap.SPROP|<br /></td> + </tr> + </table> +|ENDIF| +|ENDIF| +|ENDFOR| +|%| + <table cellpadding="0" width="100%" cellspacing="0" border="0" summary="Weapon Abbreviations"> + <tr> + + <td class="key"><b>1H-P:</b> One handed, primary hand. <b>1H-O:</b> One + handed, off hand. <b>2H:</b> Two handed. <b>2W-P-(OH):</b> 2 weapons, + primary hand (off hand weapon is heavy). <b>2W-P-(OL):</b> 2 weapons, + primary hand (off hand weapon is light). <b>2W-OH:</b>2 weapons, off + hand.</td> + </tr> + </table> +<!-- STOP Weapon Table --> + +<!-- START Armor Table --> +|IIF(AC.Armor>0)| +<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Armor Table"> + <tr> + + <td align="center" bgcolor="black" width="40%" class="ab" rowspan="2"><b>|ARMOR.EQUIPPED.0.NAME|<br /> + </b></td> + + <td align="center" bgcolor="black" width="20%" class="ablable" height="20">TYPE</td> + + <td align="center" bgcolor="black" width="20%" class="ablable">ARMOR BONUS</td> + + <td align="center" bgcolor="black" width="20%" class="ablable">MAX DEX BONUS</td> + </tr> + <tr> + + <td class="border10cb" height="20">|ARMOR.EQUIPPED.0.TYPE|</td> + + <td class="border10cb">|ARMOR.EQUIPPED.0.TOTALAC|</td> + + <td class="border10cb">|ARMOR.EQUIPPED.0.MAXDEX|</td> + </tr> +</table> + +<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Armor Table"> + <tr> + + <td align="center" bgcolor="black" class="ablable" height="20">CHECK PENALTY</td> + + <td align="center" bgcolor="black" class="ablable">SPELL FAILURE</td> + + <td align="center" bgcolor="black" class="ablable">SPECIAL PROPERTIES</td> + </tr> + <tr> + <td class="border10cb" height="20">|ARMOR.EQUIPPED.0.ACCHECK|</td> + <td class="border10cb">|ARMOR.EQUIPPED.0.SPELLFAIL|</td> + <td class="border10cb">|ARMOR.EQUIPPED.0.SPROP|</td> + </tr> +</table> +|ENDIF| +<br /> +<!-- STOP Armor Table --> + +<!-- START Shield Table --> +|IIF(AC.Shield>0)| +<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Armor Table"> + <tr> + <td align="center" bgcolor="black" width="40%" class="ab" rowspan="2"><b>|ARMOR.SHIELD.EQUIPPED.0.NAME|<br /></b></td> + + <td align="center" bgcolor="black" width="20%" class="ablable" height="20">TYPE</td> + + <td align="center" bgcolor="black" width="20%" class="ablable">ARMOR BONUS</td> + + <td align="center" bgcolor="black" width="20%" class="ablable">MAX DEX BONUS</td> + </tr> + <tr> + + <td class="border10cb" height="20">|ARMOR.SHIELD.EQUIPPED.0.TYPE|</td> + <td class="border10cb">|ARMOR.SHIELD.EQUIPPED.0.TOTALAC|</td> + <td class="border10cb">|ARMOR.SHIELD.EQUIPPED.0.MAXDEX|</td> + </tr> +</table> +<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Armor Table"> + <tr> + + <td align="center" bgcolor="black" class="ablable" height="20">CHECK PENALTY</td> + + <td align="center" bgcolor="black" class="ablable">SPELL FAILURE</td> + + <td align="center" bgcolor="black" class="ablable">SPECIAL PROPERTIES</td> + </tr> + <tr> + <td class="border10cb" height="20">|ARMOR.SHIELD.EQUIPPED.0.ACCHECK|</td> + <td class="border10cb">|ARMOR.SHIELD.EQUIPPED.0.SPELLFAIL|</td> + <td class="border10cb">|ARMOR.SHIELD.EQUIPPED.0.SPROP|</td> + </tr> +</table> +|ENDIF| +<br /> +<!-- STOP Shield Table --> +</td> +<td width="45%" valign="top"> + +<!-- START PSI Power Points Table --> +|%VAR.TOTALPOWERPOINTS.GTEQ.1| + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Power Point Table"> + <tr> + <td colspan="6" bgcolor="black" align="center" class="abb">PSI POWER POINTS</td> + </tr> + <tr> + <td bgcolor="#000000" class="ablable"> Base PP</td> + <td bgcolor="#FFFFFF" class="border10" >|VAR.BASEPOWERPOINTS.INTVAL|</td> + <td bgcolor="#000000" class="ablable"> Bonus PP</td> + <td bgcolor="#FFFFFF" class="border10">|VAR.BONUSPOWERPOINTS.INTVAL|</td> + <td bgcolor="#000000" class="ablable"> Total PP</td> + <td bgcolor="#FFFFFF" class="border10" >|VAR.TOTALPOWERPOINTS.INTVAL|</td> + </tr> + <tr> + <td> </td> + </tr> + </table> +|%| +<!-- STOP PSI Power Points Table --> + +<!-- START Skills Table --> +<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Skills Table"> + <tr> + <td height="30" bgcolor="black"></td> + <th height="30" class="ab">SKILLS</th> + <td colspan="4" height="30" bgcolor="black" align="center"></td> + <td height="30" bgcolor="black" align="right" ></td> + <td height="30" class="ab">MAX<br />RANKS</td> + <td colspan="2" height="30" align="center" class="skl"><b>|MAXSKILLLEVEL|/|MAXCCSKILLLEVEL|</b></td> + </tr> + <tr> + <td colspan="2" align="center" width="50%" class="border6">SKILL NAME</td> + <td align="center" width="10%" class="border6">ABILITY</td> + <td align="center" width="10%" colspan="1" class="border6">SKILL<br />MODIFIER</td> + <td align="center" width="10%" colspan="2" class="border6">ABILITY<br />MODIFIER</td> + <td align="center" width="10%" colspan="2" class="border6">RANKS</td> + <td align="center" width="10%" colspan="2" class="border6">MISC<br />MODIFIER</td> + </tr> +|FOR,%skill,0,${count("SKILLSIT", "VIEW=EXPORT")-1},1,0| +|OIF(EVEN:%skill,<tr bgcolor="#DDDDDD">,<tr bgcolor="white">)| + <td align="center" class="skill" width="5%" height="15">|OIF(SKILLSIT.%skill.UNTRAINED,◆,)|</td> + <td align="left" class="skill">|SKILLSIT.%skill|</td> + <td align="center" class="skill">|SKILLSIT.%skill.ABILITY|</td> + <td align="center" class="skillValue"><b>|SKILLSIT.%skill.TOTAL|</b></td> + <td align="center" class="sign">=</td> + <td align="center" class="skillValue">|SKILLSIT.%skill.ABMOD|</td> + <td align="center" class="sign">+</td> + <td align="center" class="skillValue" >|TEXT.REPLACEFIRST{\.0,}.SKILLSIT.%skill.RANK|</td> + <td align="center" class="sign">+</td> + <td align="center" class="skillValue">|SKILLSIT.%skill.MISC|</td> + </tr> + +|ENDFOR| + +</table> +<!-- STOP Skills Table --> + <span class="skill">◆ = Useable Untrained</span> + + </td> + </tr> + <tr> + <td align="left" valign="top" colspan="10" class="border8"><div align="center" class="lable">CONDITIONNAL SKILL MODIFIERS </div> +|FOR,%ability,0,count("ABILITIES","ASPECT=SkillBonus")-1,1,0| + |ABILITYALL.ANY.%ability.ASPECT=SkillBonus.ASPECT.SkillBonus| <br > +|ENDFOR| + </td> + </tr> + +</table> + + +<table width="100%" border="0" summary="Page 2 Master Table"> <!-- Master Page Table --> + <tr> + <td colspan="2" width="100%" valign="top"> +<!-- START Equipment Table --> + <table width="100%" cellspacing="0" cellpadding="0" border="0" summary="Master Equipment Table"> <!-- Master Equipment Table --> + <tr> + <th height="20" colspan="10" align="center" bgcolor="black" class="ab">EQUIPMENT</th> + </tr> + <tr> + <td width="50%" valign="top"> + <table width="100%" cellspacing="0" cellpadding="0" border="0" summary="Equipment Table Left Column"> <!-- Equipment Table left pane --> + <tr> + <td valign="top" width="70%" class="border10"><b>ITEM</b></td> + <td valign="top" width="12%" class="border10cb">LOCATION</td> + <td valign="top" width="6%" class="border10cb">QTY</td> + <td valign="top" width="6%" class="border10cb">WT.</td> + <td valign="top" width="6%" class="border10cb">COST</td> + </tr> +|FOR,%equip1,0,(COUNT[EQUIPMENT.Not.Coin.NOT.Gem]-1)/2,1,0| +|OIF(EVEN:%equip1,<tr bgcolor="#DDDDDD">,<tr bgcolor="white">)| +|IIF(EQ.Not.Coin.NOT.Gem.%equip1.TYPE:Magic)| + <td valign="top" class="border10"> <b>|EQ.Not.Coin.NOT.Gem.%equip1.NAME|</b> +|ELSE| + <td valign="top" class="border10"> |EQ.Not.Coin.NOT.Gem.%equip1.NAME| +|ENDIF| +|IIF(VAR.IF(VAR("EQ.MERGELOC.Not.Coin.NOT.Gem.%equip1.CHARGES")>0;1;0):1)| + <span class="border6"> (|EQ.MERGELOC.Not.Coin.NOT.Gem.%equip1.CHARGES| Charges)</span> +|ENDIF| +<br /> +|IIF(EQ.Not.Coin.NOT.Gem.%equip1.SPROP: )| + <span class="border6">|EQ.Not.Coin.NOT.Gem.%equip1.SPROP|</span><br /> +|ENDIF| +|IIF(EQ.MERGELOC.Not.Coin.NOT.Gem.%equip1.NOTE: )| + <span class="border6"><i>|EQ.MERGELOC.Not.Coin.NOT.Gem.%equip1.NOTE|</i></span><br /> +|ENDIF| + </td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip1.LOCATION|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip1.QTY|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip1.WT|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip1.COST|<br /></td> + </tr> +|ENDFOR| + </table> + </td> + <td width="50%" valign="top"> + <table width="100%" cellspacing="0" cellpadding="0" border="0" summary="Equipment Table Left Column"> <!-- Equipment Table right pane --> + <tr> + <td valign="top" width="70%" class="border10"><b>ITEM</b></td> + <td valign="top" width="12%" class="border10cb">LOCATION</td> + <td valign="top" width="6%" class="border10cb">QTY</td> + <td valign="top" width="6%" class="border10cb">WT.</td> + <td valign="top" width="6%" class="border10cb">COST</td> + </tr> +|FOR,%equip2,((COUNT[EQUIPMENT.Not.Coin.NOT.Gem]-1)/2)+1,COUNT[EQUIPMENT.Not.Coin.NOT.Gem]-1,1,0| +|OIF(EVEN:%equip2,<tr bgcolor="#DDDDDD">,<tr bgcolor="white">)| +|IIF(EQ.Not.Coin.NOT.Gem.%equip2.TYPE:Magic)| + <td valign="top" class="border10"> <b>|EQ.Not.Coin.NOT.Gem.%equip2.NAME|</b> +|ELSE| + <td valign="top" class="border10"> |EQ.Not.Coin.NOT.Gem.%equip2.NAME| +|ENDIF| +|IIF(VAR.IF(VAR("EQ.MERGELOC.Not.Coin.NOT.Gem.%equip2.CHARGES")>0;1;0):1)| + <span class="border8"> (|EQ.MERGELOC.Not.Coin.NOT.Gem.%equip2.CHARGES| Charges)</span> +|ENDIF| +<br /> +|IIF(EQ.Not.Coin.NOT.Gem.%equip2.SPROP: )| + <span class="border8">(|EQ.Not.Coin.NOT.Gem.%equip2.SPROP|)</span><br /> +|ENDIF| +|IIF(EQ.MERGELOC.Not.Coin.NOT.Gem.%equip2.NOTE: )| + <span class="border8">(|EQ.MERGELOC.Not.Coin.NOT.Gem.%equip2.NOTE|)</span><br /> +|ENDIF| + </td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip2.LOCATION|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip2.QTY|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip2.WT|<br /></td> + <td valign="top" class="border10c">|EQ.Not.Coin.NOT.Gem.%equip2.COST|<br /></td> + </tr> +|ENDFOR| + <tr> + <td valign="top" width="41%" class="border" align="right" colspan="1" class="border10">TOTAL WEIGHT CARRIED/VALUE </td> + <td valign="top" width="3%" class="border" colspan="2" nowrap class="border10c">|TOTAL.WEIGHT|</td> + <td valign="top" width="3%" class="border" colspan="2" nowrap class="border10c">|TOTAL.VALUE|</td> + </tr> + </table> + </td> + </tr> + </table> + <br /> +<!-- STOP Equipment Table --> + </tr> + <tr> + <td width="50%" valign="top"> +<!-- START Weight Table --> + <table width="100%" cellspacing="0" cellpadding="3" summary="Weight Allowance Table" class="block"> + <tr> + <th colspan="6" class="ab">Weight Allowance</th> + </tr> + <tr> + <td valign="top" class="border10" align="right"><b>Light</b></td> + <td valign="top" class="border10">|WEIGHT.LIGHT|</td> + <td valign="top" class="border10" align="right"><b>Medium</b></td> + <td valign="top" class="border10">|WEIGHT.MEDIUM|</td> + <td valign="top" class="border10" align="right"><b>Heavy</b></td> + <td valign="top" class="border10">|WEIGHT.HEAVY|</td> + </tr> + </table> +<!-- STOP Weight Table --> +<!-- START Illumination Table --> +|IIF(VAR.IF(var("COUNT[EQTYPE.LightSource]")>0;1;0):1)| +<br /> + <table width="100%" cellspacing="0" cellpadding="3" summary="Illumination" class="block"> + <tr> + <th class="ab" colspan="4">Illumination</th> + </tr> + <tr> + <td width="45%" class="border10"><b>Light Source</b></td> + <td width="15%" class="border10"><b>Bright</b></td> + <td width="15%" class="border10"><b>Shadowy</b></td> + <td width="15%" class="border10"><b>Duration</b></td> + </tr> +|FOR,%light,0,COUNT[EQTYPE.LightSource]-1,1,0| +|OIF(EVEN:%light,<tr bgcolor="#DDDDDD">,<tr bgcolor="white">)| + <td class="border10">|EQTYPE.LightSource.%light.NAME|</td> + <td class="border10">|EQTYPE.LightSource.%light.QUALITY.Bright Illumination|</td> + <td class="border10">|EQTYPE.LightSource.%light.QUALITY.Shadowy Illumination|</td> + <td class="border10">|EQTYPE.LightSource.%light.QUALITY.Duration|</td> + </tr> +|ENDFOR| + </table> +|ENDIF| +<!-- STOP Illumination Table --> +<!-- START Money Table --> +<br /> + <table width="100%" cellspacing="0" cellpadding="3" summary="Money" class="block"> + <tr> + <th colspan="1" class="ab">Money</th> + </tr> + <tr> + <td valign="top" width="70%" class="border10"> +|FOR.0,COUNT[EQTYPE.Coin],1,\EQTYPE.Coin.%.NAME\: \EQTYPE.Coin.%.QTY\, ,<br/>,1| +|FOR.0,COUNT[EQTYPE.Gem],1,\EQTYPE.Gem.%.QTY\x\EQTYPE.Gem.%.NAME\ (\EQTYPE.Gem.%.COST\) , ,<br/>,1| +<span class="notes">|MISC.FUNDS| Unspent Funds = |GOLD.TRUNC|</span></td> + </tr> + </table> +<!-- STOP Money Table --> + <br /> +<!-- START Companions Tables --> +|%FOLLOWERTYPE.Familiar| + <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Familiar Table" class="block"> + <tr> + <td colspan="12" class="ab"><b>Familiar: |FOLLOWERTYPE.FAMILIAR.0.NAME| (|FOLLOWERTYPE.FAMILIAR.0.RACE|)</b></td> + </tr> + <tr> + <td width="8%" class="ablableb">FORT</td> + <td width="8%" class="border10c">|FOLLOWERTYPE.FAMILIAR.0.CHE... [truncated message content] |
From: <ama...@us...> - 2014-12-13 01:14:53
|
Revision: 25771 http://sourceforge.net/p/pcgen/code/25771 Author: amaitland Date: 2014-12-13 01:14:43 +0000 (Sat, 13 Dec 2014) Log Message: ----------- Fix: DATA-2236 Cleric Alternate Domain option Inquisitions not matching available domains Modified Paths: -------------- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst Modified: Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst =================================================================== --- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst 2014-12-12 11:05:02 UTC (rev 25770) +++ Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_combat/uc_abilities_class.lst 2014-12-13 01:14:43 UTC (rev 25771) @@ -484,7 +484,7 @@ Merciful Healer KEY:Cleric Archetype ~ Merciful Healer CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains.ClericChannelEnergy PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Merciful Healer],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains,TYPE.ClericChannelEnergy] DESC:The merciful healer is a master of battlefield revivification, sustaining and restoring allies to keep them in the fight. ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Willing Healer|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Channel Energy|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Combat Medic|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ Merciful Healing|PRECLASS:1,Cleric=2 ABILITY:Cleric Class Feature|AUTOMATIC|Merciful Healer ~ True Healer|PRECLASS:1,Cleric=8 COST:0 SOURCEPAGE:p.41 ASPECT:Archetype Base Class|Cleric # Crusader -Diminished Spellcasting KEY:Crusader ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DESC:A crusader chooses only one domain and gains one fewer spell of each level than normal. If this reduces the number to 0, she may cast spells of that level only if they are domain spells or if her Wisdom allows bonus spells of that level. ABILITY:Internal|AUTOMATIC|Crusader SpellCasting Reduction BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Diminished Spellcasting KEY:Crusader ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DESC:A crusader chooses only one domain and gains one fewer spell of each level than normal. If this reduces the number to 0, she may cast spells of that level only if they are domain spells or if her Wisdom allows bonus spells of that level. ABILITY:Internal|AUTOMATIC|Crusader SpellCasting Reduction BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Bonus Feat KEY:Crusader ~ Bonus Feat CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:CrusaderBonusFeatCount|0 DESC:A crusader gains a bonus feat at 1st level, then again at 5th level and every five levels thereafter (to a maximum of six at 20th level). These bonus feats must be chosen from the following list - Heavy Armor Proficiency, Improved Shield Bash, Martial Weapon Proficiency, Saving Shield, Shield Focus, Tower Shield Proficiency, and Weapon Focus*. At 10th level, a crusader may also choose from the following feats - Exotic Weapon Proficiency, Greater Shield Focus, Greater Weapon Focus*, Improved Critical*, Shield Slam, Shield Specialization, and Weapon Specialization*. At 20th level, a crusader may also choose from the following feats - Greater Shield Specialization and Greater Weapon Specialization*. Bonus feats marked with an asterisk (*) must be applied to the favored weapon of the crusader's deity. A crusader need not meet the normal class- or level-based prerequisites for these bonus feats. BONUS:ABILITYPOOL|Crusader Feat|CrusaderBonusFeatCount BONUS:VAR|CrusaderBonusFeatCount|1 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=5 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=10 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=15 BONUS:VAR|CrusaderBonusFeatCount|1|PRECLASS:1,Cleric=20 SOURCEPAGE:p.40 ###Block: # Ability Name Unique Key Category of Ability Type Var. Min. Value Serves As Define Description Multiple? Choose Auto Feat Ability Bonus Ability Pool Combat bonus Add domain number Bonus to spell cast/day Modify VAR Class Skill Source Page Aspects List of Class Spells by Level @@ -523,7 +523,7 @@ CATEGORY=Internal|Crusader SpellCasting Reduction.MOD BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:ClericLvl,17 # Divine Strategist Abilities -Domains KEY:Divine Strategist ~ Domains CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist gains only a single domain. BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Domains KEY:Divine Strategist ~ Domains CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist gains only a single domain. BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Master Tactician KEY:Divine Strategist ~ Master Tactician CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:MasterTacticianInitiativeBonus|0 DESC:A divine strategist can always act in a surprise round even if she fails to make a Perception check to notice enemies, though she is considered flat-footed until she acts. In addition, the divine strategist gains a bonus on initiative checks equal to +%1. At 20th level, a divine strategist's initiative roll is automatically a natural 20. Allies able to see and hear the divine strategist gain a bonus on initiative checks equal to +%2. This is a language-dependent ability. This ability replaces channel energy.|MasterTacticianInitiativeBonus|MasterTacticianInitiativeBonus/2 BONUS:COMBAT|INITIATIVE|MasterTacticianInitiativeBonus BONUS:VAR|MasterTacticianInitiativeBonus|ClericLVL/2 SOURCEPAGE:p.40 Tactical Expertise KEY:Divine Strategist ~ Tactical Expertise CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:A divine strategist knows how to take best advantage of tactical opportunities. Whenever she is flanking or makes an attack of opportunity, she may add her Intelligence bonus (if any) as a bonus on the attack roll. In addition, %1 times per day as a swift action she may add her Intelligence modifier as a bonus on any single d20 roll made as part of a readied action.|1+(MAX(0,classlevel("Cleric")-8)/2) SOURCEPAGE:p.40 Caster Support KEY:Divine Strategist ~ Caster Support CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Supernatural DESC:A divine strategist can use the aid another action to assist another divine spellcaster, granting a +2 circumstance bonus on caster level checks and concentration checks until the beginning of the divine strategist's next turn. This bonus increases by +1 at 4th level and every four levels thereafter (to a maximum of +7 at 20th level). The allied caster must remain adjacent to the divine strategist to gain this benefit. Caster support can be used to assist arcane spellcasters or characters using magical items, but they gain only half the normal bonus. @@ -532,14 +532,14 @@ # Evangelist Abilities # TODO: Sermonic Performance should not stack with Bardic Performance, but this is the easiest way to get this in and get it to work with feats, et al. The rules only mention the number of dice stalling. It says nothing about the Channel DC. # TODO: Tongues should become a 3rd level spell. It now only shows up as a 4th level spell. -Single-Minded KEY:Evangelist ~ Single-Minded CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist focuses her skills and learning on proclamation rather than the fine details of the church's deeper mysteries or martial training. Thus, she may select only one domain and does not gain medium armor proficiency or shield proficiency. AUTO:FEAT|Armor Proficiency (Light) ABILITY:Internal|AUTOMATIC|TYPE=ArmorProfLight BONUS:DOMAIN|NUMBER|-1 SOURCEPAGE:p.40 +Single-Minded KEY:Evangelist ~ Single-Minded CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist focuses her skills and learning on proclamation rather than the fine details of the church's deeper mysteries or martial training. Thus, she may select only one domain and does not gain medium armor proficiency or shield proficiency. AUTO:FEAT|Armor Proficiency (Light) ABILITY:Internal|AUTOMATIC|TYPE=ArmorProfLight BONUS:VAR|ClericDomainCount|-1 SOURCEPAGE:p.40 Public Speaker KEY:Evangelist ~ Public Speaker CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist gains Perform as a class skill. In addition, she is trained to project her voice with great skill and effect; the DC to hear her speak in difficult conditions is reduced by %1.|MAX(classlevel("Cleric") + CHA,0) CSKILL:TYPE=Perform SOURCEPAGE:p.40 Sermonic Performance KEY:Evangelist ~ Sermonic Performance CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist gains the ability to deliver a select number of supernatural and spell-like performances through the force and power of her divinely inspired preaching and exhortation. This ability is similar in all respects to bardic performance as used by a bard of the same level (including interactions with feats, spells, and prestige classes), using Perform (oratory) as the evangelist's performance skill. However, an evangelist gains only the following types of bardic performance: countersong, fascinate, and inspire courage at 1st level; inspire greatness at 9th level; and inspire heroics at 15th level. Sermonic performance replaces the 1st-, 9th-, and 15th-level channel energy abilities. This caps the cleric's channel energy damage at 7d6 points. ABILITY:Special Ability|AUTOMATIC|Bard ~ Bardic Countersong|Evangelist ~ Bardic Performance ABILITY:Special Ability|AUTOMATIC|Cleric ~ Channel Energy|PRECLASS:1,Cleric=3 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=1 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=1 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=9 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=9 BONUS:VAR|ClericChannelPositiveEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Positive Energy|PRECLASS:1,Cleric=15 BONUS:VAR|ClericChannelNegativeEnergyDice|-1|PREABILITY:1,CATEGORY=Special Ability,Cleric ~ Channel Negative Energy|PRECLASS:1,Cleric=15 BONUS:VAR|BardicPerformanceLVL|classlevel("Cleric") SOURCEPAGE:p.40 Spontaneous Casting KEY:Evangelist ~ Spontaneous Casting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:An evangelist does not gain the ability to spontaneously cast cure or inflict spells by sacrificing prepared spells. However, an evangelist can spontaneously cast command (1st), enthrall (2nd), tongues (3rd), suggestion (4th), greater command (5th), geas/quest (6th), mass suggestion (7th), sympathy (8th) and demand (9th) as a spell of listed level by sacrificing a prepared spell of the same level or higher. SOURCEPAGE:p.40 SPELLLEVEL:CLASS|Cleric=1|Command|Cleric=2|Enthrall|Cleric=3|Tongues|Cleric=4|Suggestion|Cleric=5|Command (Greater)|Cleric=6|Geas/Quest|Cleric=7|Suggestion (Mass)|Cleric=8|Sympathy|Cleric=9|Demand Bardic Performance KEY:Evangelist ~ Bardic Performance CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.BardicPerformance DEFINE:BardicPerformanceDuration|0 DEFINE:BardicPerformanceLVL|0 DESC:You are trained to use the Perform skill to create magical effects on those around you, including yourself if desired. ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Fascinate|PREVARGTEQ:BardicPerformanceLVL,1 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Courage|PREVARGTEQ:BardicPerformanceLVL,1 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Greatness|PREVARGTEQ:BardicPerformanceLVL,9 ABILITY:Special Ability|AUTOMATIC|Bardic Performance ~ Inspire Heroics|PREVARGTEQ:BardicPerformanceLVL,15 BONUS:VAR|BardicPerformanceDuration|2+CHA+(2*BardicPerformanceLVL) SOURCEPAGE:p.35 # MERCIFUL HEALER -Willing Healer KEY:Merciful Healer ~ Willing Healer CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:AllowDomainHealing|0 DESC:A merciful healer must choose the Healing domain. She does not gain a second domain. If the cleric worships a deity, that deity must be one that grants the Healing domain. A merciful healer must channel positive energy. ABILITY:Special Ability|AUTOMATIC|Healing Domain BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|DomainNotAllowed|1 BONUS:VAR|AllowDomainHealing|1 SOURCEPAGE:p.41 +Willing Healer KEY:Merciful Healer ~ Willing Healer CATEGORY:Special Ability TYPE:ClericClassFeatures.ArchetypeAbility.SpecialQuality DEFINE:AllowDomainHealing|0 DESC:A merciful healer must choose the Healing domain. She does not gain a second domain. If the cleric worships a deity, that deity must be one that grants the Healing domain. A merciful healer must channel positive energy. ABILITY:Special Ability|AUTOMATIC|Healing Domain BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|DomainNotAllowed|1 BONUS:VAR|AllowDomainHealing|1 SOURCEPAGE:p.41 Channel Energy KEY:Merciful Healer ~ Channel Energy CATEGORY:Special Ability TYPE:ClericClassFeatures.Supernatural.ArchetypeAbility.SpecialQuality DESC:As the cleric ability, save that a merciful healer must channel positive energy, and when she does, she cannot choose to target undead. This ability is otherwise identical to the cleric ability of the same name. ABILITY:Special Ability|AUTOMATIC|Cleric ~ Channel Energy|Healing ~ Channel Positive Energy BONUS:ABILITYPOOL|Channel Energy|-1 SOURCEPAGE:p.41 Combat Medic KEY:Merciful Healer ~ Combat Medic CATEGORY:Special Ability TYPE:ClericClassFeatures.Extraordinary.ArchetypeAbility.SpecialQuality DESC:A merciful healer does not provoke attacks of opportunity when using the Heal skill to stabilize another creature or casting healing spells. SOURCEPAGE:p.41 Merciful Healing KEY:Merciful Healer ~ Merciful Healing CATEGORY:Special Ability TYPE:ClericClassFeatures.Supernatural.ArchetypeAbility.SpecialQuality DESC:At 3rd level, a merciful healer can channel positive energy to relieve one or more harmful conditions. The merciful healer chooses one of the following harmful conditions at 3rd level - fatigued, shaken, or sickened. When the merciful healer channels energy she can remove the chosen condition from one living creature that she heals within her channel energy burst. At 6th level, she can choose another condition. It can be one of those she didn't choose at 3rd level, or one of the following conditions - dazed, diseased, or staggered. She can remove the selected condition or the one she chose at 3rd level from up to two creatures within her channel energy burst. She gains another condition at 9th level, and can choose an above condition or one of the following conditions - cursed, exhausted, frightened, nauseated, or poisoned. She can remove that condition, or a condition she previously chose, from one or two creatures within the burst. Finally, at 12th level, she can choose a lowerlevel condition or one of the following conditions - blinded, deafened, paralyzed, or stunned. She can remove that condition or one she previously chose from one, two, or three creatures within her channel energy burst. Feats and effects that affect a paladin's mercy also affect this ability. SOURCEPAGE:p.41 Modified: Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst =================================================================== --- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-12 11:05:02 UTC (rev 25770) +++ Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/ultimate_magic/um_abilities_class.lst 2014-12-13 01:14:43 UTC (rev 25771) @@ -884,7 +884,7 @@ Separatist KEY:Cleric Archetype ~ Separatist CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericWeaponProficiency.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Separatist],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericWeaponProficiency,TYPE.ClericDomains] DESC:A radical cleric, unsatisfied with the orthodoxy of her deity's teachings, forges her own path of defiant divine expression. Though most members of her faith would call her a separatist or heretic, she continues to receive spells from her deity. Charismatic separatists may develop a large following of like-minded believers and eventually found a splinter church of their deity - and they are just as likely to be the cause of a holy civil war as the branches of the religion fight to determine which is the true faith. A cleric who does not serve a deity cannot take the separatist archetype. ABILITY:Internal|AUTOMATIC|Separatist Weapon Proficiency|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Separatist ~ Forbidden Rites|PRECLASS:1,Cleric=1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric Theologian KEY:Cleric Archetype ~ Theologian CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Theologian],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:A theologian is an expert on one particular area of her religion. She is so focused on that area that she eschews the broader sweep of her deity's dogma and focuses intensely upon that aspect of it, embodying its power in all she does. Theologians tend to be more zealous than other clerics, and many crusades are started by theologians. ABILITY:Cleric Class Feature|AUTOMATIC|Theologian ~ Focused Domain|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Theologian ~ Domain Secret|PRECLASS:1,Cleric=5 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric #COMMENT: Requirement of Death domain (and Undead subdomain) not implemented. -Undead Lord KEY:Cleric Archetype ~ Undead Lord CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Undead Lord],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:An undead lord is a cleric focused on using necromancy to control undead. Her flock is the walking dead and her choir the keening spirits of the damned. This unliving congregation is the manifestation of her unceasing love affair with death. AUTO:FEAT|Command Undead ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Corpse Companion|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Unlife Healer|PRECLASS:1,Cleric=8 BONUS:ABILITYPOOL|Undead Lord Bonus Feat|1|PRECLASS:1,Cleric=10 BONUS:DOMAIN|NUMBER|-1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric +Undead Lord KEY:Cleric Archetype ~ Undead Lord CATEGORY:Archetype TYPE:Archetype.ClericArchetype.ClericDomains PRECLASS:1,Cleric=1 PREMULT:1,[PREABILITY:1,CATEGORY=Archetype,Cleric Archetype ~ Undead Lord],[!PREABILITY:1,CATEGORY=Archetype,TYPE.ClericDomains] DESC:An undead lord is a cleric focused on using necromancy to control undead. Her flock is the walking dead and her choir the keening spirits of the damned. This unliving congregation is the manifestation of her unceasing love affair with death. AUTO:FEAT|Command Undead ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Corpse Companion|PRECLASS:1,Cleric=1 ABILITY:Cleric Class Feature|AUTOMATIC|Undead Lord ~ Unlife Healer|PRECLASS:1,Cleric=8 BONUS:ABILITYPOOL|Undead Lord Bonus Feat|1|PRECLASS:1,Cleric=10 BONUS:VAR|ClericDomainCount|-1 COST:0 SOURCEPAGE:p.32 ASPECT:Archetype Base Class|Cleric ###Block: Cloistered Cleric abilities # Ability Name Unique Key Category of Ability Type Visible Define Description Auto Feat Auto Weapon Prof Add domain number Bonus to skill Bonus to spell cast/day Modify VAR Class Skill Source Page @@ -895,7 +895,7 @@ #NEEDS CODE WORK: A 9th-level Cleric (with Wis 15-19) with this archetype #NEEDS CODE WORK: should get "0+1" 5th-level spells rather than "0"; #NEEDS CODE WORK: this seems to not be possible right now. -Diminished Spellcasting KEY:Cloistered Cleric ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's list of domains, and your number of non-domain spells per day for each spell level is one less than normal (for example, a 4th-level cloistered cleric has three cantrips, two 1st-level spells, one 1st-level domain spell, one 2nd-level spell, and one 2nd-level domain spell). If this reduces the number of spells per day for that level to 0, you gain only the bonus spells you would be entitled to based on your Wisdom score for that level, plus your domain spell for that level. BONUS:DOMAIN|NUMBER|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=0|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=1|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=2|-1|PREVARGTEQ:classlevel("Cleric"),3 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=3|-1|PREVARGTEQ:classlevel("Cleric"),5 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=4|-1|PREVARGTEQ:classlevel("Cleric"),7 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=5|-1|PREVARGTEQ:classlevel("Cleric"),9 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=6|-1|PREVARGTEQ:classlevel("Cleric"),11 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=7|-1|PREVARGTEQ:classlevel("Cleric"),13 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=8|-1|PREVARGTEQ:classlevel("Cleric"),15 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:classlevel("Cleric"),17 SOURCEPAGE:p.31 +Diminished Spellcasting KEY:Cloistered Cleric ~ Diminished Spellcasting CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's list of domains, and your number of non-domain spells per day for each spell level is one less than normal (for example, a 4th-level cloistered cleric has three cantrips, two 1st-level spells, one 1st-level domain spell, one 2nd-level spell, and one 2nd-level domain spell). If this reduces the number of spells per day for that level to 0, you gain only the bonus spells you would be entitled to based on your Wisdom score for that level, plus your domain spell for that level. BONUS:VAR|ClericDomainCount|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=0|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=1|-1 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=2|-1|PREVARGTEQ:classlevel("Cleric"),3 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=3|-1|PREVARGTEQ:classlevel("Cleric"),5 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=4|-1|PREVARGTEQ:classlevel("Cleric"),7 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=5|-1|PREVARGTEQ:classlevel("Cleric"),9 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=6|-1|PREVARGTEQ:classlevel("Cleric"),11 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=7|-1|PREVARGTEQ:classlevel("Cleric"),13 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=8|-1|PREVARGTEQ:classlevel("Cleric"),15 BONUS:SPELLCAST|CLASS=Cleric;LEVEL=9|-1|PREVARGTEQ:classlevel("Cleric"),17 SOURCEPAGE:p.31 Breadth of Knowledge KEY:Cloistered Cleric ~ Breadth of Knowledge CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:BreadthOfKnowledgeBonus|0 DESC:You gain a +%1 bonus on Knowledge skill checks and can make Knowledge checks untrained.|BreadthOfKnowledgeBonus BONUS:SKILL|TYPE.Knowledge|BreadthOfKnowledgeBonus BONUS:VAR|BreadthOfKnowledgeBonus|max(1,classlevel("Cleric")/2) SOURCEPAGE:p.31 Well-Read KEY:Cloistered Cleric ~ Well-Read CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Extraordinary DESC:You gain a +2 bonus on skill checks, caster level checks, and saving throws if such rolls pertain to mundane or magical glyphs, runes, scrolls, symbols, and other writings. SOURCEPAGE:p.31 Verbal Instruction KEY:Cloistered Cleric ~ Verbal Instruction CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality.Extraordinary DEFINE:VerbalInstructionAllies|0 DESC:You can use the aid another action to assist %1 allies within 30 feet on a skill or ability check. The ally must be able to hear and understand your instructions. If all allies are not engaged in the same task, using this ability is a full-round action rather than a standard action.|VerbalInstructionAllies BONUS:VAR|VerbalInstructionAllies|classlevel("Cleric")/3 SOURCEPAGE:p.31 @@ -903,7 +903,7 @@ ###Block: Separatist abilities # Ability Name Unique Key Category of Ability Type Visible Required AL Define Description Auto Feat Ability Bonus Ability Pool Add domain number Save bonus Modify VAR Class Skill Source Page List of Class Spells by Level Separatist Weapon Proficiency CATEGORY:Internal VISIBLE:NO AUTO:FEAT|Simple Weapon Proficiency -Forbidden Rites KEY:Separatist ~ Forbidden Rites CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:SeparistDomainLVL|0 DESC:You select one domain from your deity's domain list, and a second domain that is not on your deity's domain list. This second domain cannot be an alignment domain that doesn't match your or your deity's alignment. For example, a lawful good separatist cleric of a neutral good deity cannot choose the Chaos or Evil domain with this ability, but can select the Lawful domain even though her deity isn't lawful. Granted powers from your second domain function as if your level, Wisdom, and Charisma were 2 lower than normal (minimum level 1) in terms of effect, DC, and uses per day. This also means you don't gain the domain's higher-level ability until 2 levels later than normal. If the second domain grants additional class skills, you gain these as normal. BONUS:ABILITYPOOL|Forbidden Rites Domain|1 BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|SeparistDomainLVL|-2 SOURCEPAGE:p.32 +Forbidden Rites KEY:Separatist ~ Forbidden Rites CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:SeparistDomainLVL|0 DESC:You select one domain from your deity's domain list, and a second domain that is not on your deity's domain list. This second domain cannot be an alignment domain that doesn't match your or your deity's alignment. For example, a lawful good separatist cleric of a neutral good deity cannot choose the Chaos or Evil domain with this ability, but can select the Lawful domain even though her deity isn't lawful. Granted powers from your second domain function as if your level, Wisdom, and Charisma were 2 lower than normal (minimum level 1) in terms of effect, DC, and uses per day. This also means you don't gain the domain's higher-level ability until 2 levels later than normal. If the second domain grants additional class skills, you gain these as normal. BONUS:ABILITYPOOL|Forbidden Rites Domain|1 BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|SeparistDomainLVL|-2 SOURCEPAGE:p.32 # Forbidden Rites Domain Air KEY:Forbidden Rites Domain ~ Air Domain CATEGORY:Special Ability TYPE:ForbiddenRiteSDomain.AirDomainReplacement DEFINE:DomainAirLVL|0 DEFINE:DomainAirAbilityTriggerLVL|0 DEFINE:DomainAirDC|0 DEFINE:DomainAirTimes|0 DESC:You can manipulate lightning, mist, and wind, traffic with air creatures, and are resistant to electricity damage. ABILITY:Special Ability|AUTOMATIC|Air Domain ~ Lightning Arc|PREDOMAIN:1,Air|PREVARGTEQ:DomainAirAbilityTriggerLVL,-1 ABILITY:Special Ability|AUTOMATIC|Air Domain ~ Electricity Resistance|PREDOMAIN:1,Air|PREVARGTEQ:DomainAirAbilityTriggerLVL,6 BONUS:DOMAIN|NUMBER|1 BONUS:VAR|DomainAirLVL|DomainLVL-2|TYPE=Domain BONUS:VAR|DomainAirDC|10+(DomainAirLVL/2)+CHA-1 BONUS:VAR|DomainAirTimes|DomainPowerTimes-1|TYPE=Domain BONUS:VAR|DomainAirAbilityTriggerLVL|DomainAbilityTriggerLVL-SeparistDomainLVL|TYPE=Domain SOURCEPAGE:p.41 SPELLLEVEL:CLASS|Cleric=1|Obscuring Mist|Cleric=2|Wind Wall|Cleric=3|Gaseous Form|Cleric=4|Air Walk|Cleric=5|Control Winds|Cleric=6|Chain Lightning|Cleric=7|Elemental Body IV (Air Only)|Cleric=8|Whirlwind|Cleric=9|Elemental Swarm (Air Spell Only) @@ -944,7 +944,7 @@ #NEEDS CODE/DATA WORK: Preparing domiain spells in non-domain slots not implemented. #NEEDS DATA WORK: Bonus to domain abilities not yet implemented. # Ability Name Unique Key Category of Ability Type Define Description Stackable? Multiple? Choose Selections Bonus Ability Pool Add domain number Modify VAR Source Page -Focused Domain KEY:Theologian ~ Focused Domain CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's portfolio rather than the normal two domains. All level-dependent effects of the granted powers from your domain function as if you were two cleric levels higher than your actual cleric level. This does not allow you to gain domain-granted powers earlier than normal. You can prepare domain spells using your non-domain slots. You cannot use her spontaneous casting ability on domain spells, even if they are prepared in non-domain slots. In all other respects, this works like and replaces the standard cleric domain ability. BONUS:DOMAIN|NUMBER|-1 BONUS:VAR|DomainLVL|2 BONUS:VAR|DomainAbilityTriggerLVL|-2 SOURCEPAGE:p.32 +Focused Domain KEY:Theologian ~ Focused Domain CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DESC:You choose only one domain from your deity's portfolio rather than the normal two domains. All level-dependent effects of the granted powers from your domain function as if you were two cleric levels higher than your actual cleric level. This does not allow you to gain domain-granted powers earlier than normal. You can prepare domain spells using your non-domain slots. You cannot use her spontaneous casting ability on domain spells, even if they are prepared in non-domain slots. In all other respects, this works like and replaces the standard cleric domain ability. BONUS:VAR|ClericDomainCount|-1 BONUS:VAR|DomainLVL|2 BONUS:VAR|DomainAbilityTriggerLVL|-2 SOURCEPAGE:p.32 Domain Secret KEY:Theologian ~ Domain Secret CATEGORY:Special Ability TYPE:ClericClassFeatures.SpecialQuality DEFINE:DomainSecrets|0 DESC:You choose %1 domain spells. Those spells becomes permanently modified with one of the following metamagic feats: Bouncing Spell, Disruptive Spell, Ectoplasmic Spell, Enlarge Spell, Extend Spell, Focused Spell, Intensified Spell, Silent Spell, Still Spell. This metamagic feat does not increase the level of the spell. Once chosen, this modification cannot be changed. You need not have the metamagic feat to apply it to a spell using this ability. You cannot modify the same spell more than once.|DomainSecrets BONUS:ABILITYPOOL|Domain Secret|DomainSecrets BONUS:VAR|DomainSecrets|(classlevel("Cleric")/5) SOURCEPAGE:p.32 #Block: Domain Secrets This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-12 11:05:15
|
Revision: 25770 http://sourceforge.net/p/pcgen/code/25770 Author: jdempsey Date: 2014-12-12 11:05:02 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Updated for 6.04.01 RC1 Modified Paths: -------------- branches/6.04.x/installers/release-notes/README.md Modified: branches/6.04.x/installers/release-notes/README.md =================================================================== --- branches/6.04.x/installers/release-notes/README.md 2014-12-12 10:48:52 UTC (rev 25769) +++ branches/6.04.x/installers/release-notes/README.md 2014-12-12 11:05:02 UTC (rev 25770) @@ -6,68 +6,43 @@ The project's current focus is on gaming material released under Wizards of the Coast's Open Gaming License (OGL) and sources supporting the Pathfinder RPG by Paizo, but the PCGen team also works with publishers to get permission to include limited Closed Content as well. PCGen runs on Windows, Mac OS X and Unix/Linux using Java -# What's new for v6.4.0 +# What's new for v6.4.1RC1 -Welcome to PCGen v6.04.00, the latest stable release of PCGen. This release includes hundreds of -new features and bug fixes along with some great new sources. The highlights of the changes for -PCGen 6.4 are listed below: +PCGen v6.04.1 RC1 is the first release candidate for our patch to PCGen 6.4. It represents a +product we believe is ready for production use and which we would like your assistance in testing +out. In particular the PCGen team would appreciate your feedback on importing your +characters and data from earlier versions of PCGen. +The highlights of the changes for PCGen 6.4.1 are listed below: ## Notable Changes -* For Players and GMs - * New Pathfinder Board output sheet - * [Pathfinder] Apply Ultimate Combat 2nd printing errata - * Implement Race Builder in ARG - * Update Guide to PSOP to recently released 5.0 version - * Implement calculation of assorted undead save DCs - * Pathfinder: Prevent inadvertent stacking of resistances - * Newer, more compliant, PDF generation library (FOP 1.0) - * Improved error handling when exporting characters - * Improved character file safety - * Improved loading of older characters - * Custom, Homebrew and Vendordata folder locations recalled between installs from 6.3.5 onwards - * Lots of fixes to output - * Many data fixes - * Improved Spanish language support -* For Data Authors - * New conditional skill system - * Bonuses to epic BAB and CHECKs now handled separately to non epic - * Eliminate Ability Cloning / Ability Processing Consistency - * Reduced memory use when switching or reloading datasets - * New output sheet language - Freemarker (optional) - * Migrate many sheets to use FreeMarker - * Converter run on all sets +<ul> +<li>Pathfinder Society Chronicle Sheets support</li> +<li>Numerous Pathfinder Society Organised Play improvements</li> +<li>Pathfinder Hero Points on the output sheets</li> +<li>SITUATION Skill penalties now displaying</li> +<li>Many Pathfinder Bestiary 3 fixes</li> +<li>Many Pathfinder and RSRD data fixes</li> +</ul> - ## New Sources -The following new sources were added in 6.4.0 +The following new sources were added in 6.4.1RC1 -* [Alluria Publishing] Remarkable Races: Compendium of Unusual PC Races, Pathway to Adventure Edition -* [Dreamscarred Press] Ultimate Psionics -* [Mongoose Publishing] Quintessential Samurai -* [Paizo] Adventure Path: Mummy's Mask Players Guide -* [Paizo] Adventure Path: Reign of Winter Players Guide -* [Paizo] Adventure Path: Shattered Star Player's Guide -* [Paizo] Pathfinder Player Companion - Andoran, Spirit of Liberty -* [Paizo] Pathfinder Player Companion - Blood of Angels -* [Paizo] Pathfinder Society Field Guide -* [Paizo] Rise of the Runelords (Anniversary Edition) -* [Paizo] Skull & Shackles AP55 - The Wormwood Mutiny -* [Super Genius Games] The Genius Guide to: The Talented Rogue (PF) -* [WotC] Unearthed Arcana +* [Paizo] Pathfinder Campaign Setting: Lords of Chaos: Book of the Damned, Vol. 2 +* Pathfinder Society Organized Play Chronicle Sheets Boons and Equipment For full details of the new changes in this release, see the -[Release Notes](http://sourceforge.net/projects/pcgen/files/PCGen%20Stable/6.04.00/pcgen-release-notes-60400.html/download) in the list above. +[Release Notes](http://sourceforge.net/projects/pcgen/files/PCGen%20Unstable/6.04.01%20RC1/pcgen-release-notes-60401RC1.html/download) in the list above. -*James Dempsey* for the PCGEN Team -- 27 September, 2014. +*James Dempsey* for the PCGEN Team -- 12 December, 2014. -SHA-256 digest for pcgen-6.04.00-full.zip: -90c0c919eb9b172e78ceb45873eaabfd381d0a0140da666e5cc5fb2ace789f1d +SHA-256 digest for pcgen-6.04.01RC1-full.zip: +819eb306a4b6f82d57aa9bf45ca5bd735479d983c89b80d70aacaba55942bb52 -SHA-256 digest for pcgen-6.04.00-sources.jar: -e6bd55e0e2537a2b7f69d72a86b0b83b258e0ba2838aba5748eb5b6dea3a95a9 +SHA-256 digest for pcgen-6.04.01RC1-sources.jar: +e55fd84901463af0eb91c3a81f75ae6a5bd3a234e2e5a5529e5987a3fe1eb0d6 -SHA-256 digest for pcgen60400_win_install.exe: -2f5a968375ffb61ebf17c5af2d5a568c9dbadabe3aaaf01d9de32d60ab23e17d +SHA-256 digest for pcgen60401RC1_win_install.exe: +70cad3c7c5c4fcdfa29e0e8524e227606884928bc234c1ca2e7f46461b6b41b4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-12 10:48:55
|
Revision: 25769 http://sourceforge.net/p/pcgen/code/25769 Author: jdempsey Date: 2014-12-12 10:48:52 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Update version for dev work 6.04.01RC02-SNAPSHOT Modified Paths: -------------- branches/6.04.x/gradle.properties Modified: branches/6.04.x/gradle.properties =================================================================== --- branches/6.04.x/gradle.properties 2014-12-12 10:48:40 UTC (rev 25768) +++ branches/6.04.x/gradle.properties 2014-12-12 10:48:52 UTC (rev 25769) @@ -1 +1 @@ -version=6.04.01RC1 \ No newline at end of file +version=6.04.01RC02-SNAPSHOT \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-12 10:48:44
|
Revision: 25768 http://sourceforge.net/p/pcgen/code/25768 Author: jdempsey Date: 2014-12-12 10:48:40 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Tag release 6.04.01RC1 Added Paths: ----------- tags/release-6.04.01RC1/ Index: tags/release-6.04.01RC1 =================================================================== --- Trunk/pcgen 2014-12-12 09:08:46 UTC (rev 25767) +++ tags/release-6.04.01RC1 2014-12-12 10:48:40 UTC (rev 25768) Property changes on: tags/release-6.04.01RC1 ___________________________________________________________________ Added: bugtraq:url ## -0,0 +1 ## +http://jira.pcgen.org/browse/%BUGID% \ No newline at end of property Added: bugtraq:message ## -0,0 +1 ## +Issue#: %BUGID% \ No newline at end of property Added: svn:ignore ## -0,0 +1,32 ## +pcgen.log* +pcgen.exe +options.ini +pcgen.bat +settings +pcgen.jar +Test Data Set +1822-patch.patch +testsuite +*.txt +pcgen.sh +pcgen-tests.jar +.settings +antbuild +filter.ini +batch-convert.jar +mybuild.xml +filepaths.ini +config.ini +target +pcgen_low_mem.bat +vendordata +.gradle +build +repos +libs +pcgen-batch-convert.jar +variable_report.csv +variable_report.html +checkstyle-cachefile +autobuild.properties +svn.properties Added: bugtraq:number ## -0,0 +1 ## +false \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/sandbox/uisync:14608-15990 \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-12 09:08:54
|
Revision: 25767 http://sourceforge.net/p/pcgen/code/25767 Author: jdempsey Date: 2014-12-12 09:08:46 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Update version for release 6.04.01RC1 Modified Paths: -------------- branches/6.04.x/gradle.properties Modified: branches/6.04.x/gradle.properties =================================================================== --- branches/6.04.x/gradle.properties 2014-12-12 09:00:46 UTC (rev 25766) +++ branches/6.04.x/gradle.properties 2014-12-12 09:08:46 UTC (rev 25767) @@ -1 +1 @@ -version=6.04.01RC1-SNAPSHOT \ No newline at end of file +version=6.04.01RC1 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-12-12 09:00:51
|
Revision: 25766 http://sourceforge.net/p/pcgen/code/25766 Author: jdempsey Date: 2014-12-12 09:00:46 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Update version for 6.4.1 RC1 release Modified Paths: -------------- branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties Modified: branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties =================================================================== --- branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties 2014-12-12 07:43:51 UTC (rev 25765) +++ branches/6.04.x/code/src/java/pcgen/resources/prop/PCGenProp.properties 2014-12-12 09:00:46 UTC (rev 25766) @@ -8,8 +8,8 @@ HeadCodeMonkey=Bryan McRoberts (Benevolent Dictator) # Version number should be x.y.z (e.g. 2.0.0) -VersionNumber=6.04.01 RC1-dev -ReleaseDate=27 September, 2014 +VersionNumber=6.04.01 RC1 +ReleaseDate=12 December, 2014 CodeMonkeys=B. K. Oxley (binkley), Jonas Karlsson, Matthew Woodard, Peter Kahle, Tim Dugger, Tom Epperly, Brian Forester, Mario Bonassin, Jason Buchanan, Mark Hulsmanand, Jerry Hill, Eric Statz, Kurt Wimmer, David Fallon, Tyler Bannister, Thomas Clegg, Greg Bingleman, Emily Smirle, Arcady, Thomas Behr, Ryan Koppenhaver, Jayme Cox, Scott Ellsworth, Chris Ryan, James Dempsey, Walter Duncan, Devon Jones, Felipe Diniz, Frugal, Richard Askham, David Hibbs, John Watson, Stefan Radermacher, Ross Lodge, Benjamin Pew, Brian Kuehn, Aaron Divinsky, Andrew Wilson, Brian Hoff, Tom Parker, Andriy Sen, Koen Van Daele, Tobias Wichtrey, Per Christian Henden, Connor Petty, Dan Parks, Jasper Spaans, Steven West (redwolf3), Michael Isaacson, Vincent Lhote, Javier A. Ortiz Bultron, Gabriel Sorrel TestMonkeys=Dave Cortijo, Martin Brabander, John Sussenberger, Stephen Gryphon, Richard O'Doherty-Gregg, Brad Stiles, Chris Andersen, Joseff, and many more. Andrew Maitland, David R. Bender, Patryk Adamski, Paul Grosse, ratbird32, Stefan Radermacher, Vincent Lhote and Henk Slaaf (UI Beta testers) ListMonkeys=Robert Hilson, KahnB, \u00C9ric Beaudoin (Space Monkey), Tir Gwaith (Andrew McDougall), Mynex (Rob Reed), Thomas Behr, Tom Deprez, Luc Hermitte, Matt Haffner, Hugo Perez, Michael Telford, Sean Kelly, Ashley McKay, Duane Moore, Tom Cowan, Clint Howarth, Gordon Vincent, Gary Silvers, Rob Bowell, Dan Young, Magus Knightcrawler, Lee Calabrese, Barak (Chris Chandler), Kevin W. Patterson (kwp), Jessica 'Artist Wench' Whiting, Wayne Crawford, oddballmage, Ian Dale, Joshua Nelson (DJ_Chair), Y2Krankor (Greg G), Paul W. King, Jeremy (Duo) Banks, dlm1065 (Doug McMillan), Paul Miller, Eric Beeckmans, Michael Gray (Taluonr Iscandar), Kenneth Walters (GldDragon35), Mike Sledge (zodar6), Patryk Adamski (Ruemere), Larry Davis (Sir George Anonymous), Thomas Jannes (chipoulou), Samuel Hendricks (NotMousse), Sigurdur H. Olafsson, Andargor the Wise, Beaver (Michael Beaver), Martin Fagerstr\u00F6m, Anders Lindgren (Blithwyn), Eddy Anthony (MoSaT), Darkon Turas, Emily Smirle, Aaron Divinsky, Frank Kliewe, Sean Silvamiramon, Stefan Radermacher, Andrew Maitland, Joe Frazier, Michael W. Fender (Fluxxdog), Arjan van Ginneken and many more. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-12 07:43:54
|
Revision: 25765 http://sourceforge.net/p/pcgen/code/25765 Author: amaitland Date: 2014-12-12 07:43:51 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Fix Bomb Natural Damage Modified Paths: -------------- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst Modified: Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst =================================================================== --- Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-12 07:43:36 UTC (rev 25764) +++ Trunk/pcgen/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-12 07:43:51 UTC (rev 25765) @@ -96,7 +96,7 @@ Instant Alchemy KEY:Alchemist ~ Instant Alchemy CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Extraordinary DESC:You can create alchemical items with almost supernatural speed. You can create any alchemical item as a full-round action if you succeed at the Craft (Alchemy) check and have the appropriate resources at hand to fund the creation. You can apply poison to a weapon as an immediate action. # Bomb Attack Output -Bomb CATEGORY:Natural Attack TYPE:AlchemistClassFeatures.NaturalAttack DEFINE:BombDamageDice|0 DEFINE:BombDamageSize|0 DEFINE:BombDamageBonus|0 DEFINE:BombAttackBonus|0 DEFINE:BombThreatRange|0 DEFINE:BombRange|0 DEFINE:BombCritMult|0 DESC:[+%1d%2 bonus damage, included in total damage]|AlchemistBombAdditionalDice|AlchemistBombDiceSize|PREVARGT:AlchemistBombAdditionalDice,0 BONUS:VAR|BombCritMult|2 BONUS:VAR|BombDamageDice|1 BONUS:VAR|BombDamageSize|6 BONUS:VAR|BombDamageBonus|INT BONUS:VAR|BombThreatRange|20 BONUS:VAR|BombRange|20 BONUS:VAR|BombAttackBonus|BAB+DEX+SIZEMOD ASPECT:NaturalAttackName|Bomb ASPECT:NaturalAttackToHit|%1|BombAttackBonus ASPECT:NaturalAttackDamage|%1d%2+%3|BombDamageDice+AlchemistBombAdditionalDice|BombDamageSize|BombDamageBonus ASPECT:NaturalAttackReach|%1|BombRange ASPECT:NaturalAttackRange|%1|BombRange ASPECT:NaturalAttackType|Fire ASPECT:NaturalAttackThreatRange|%1|BombThreatRange ASPECT:NaturalAttackCritMult|/ x%1|BombCritMult +Bomb CATEGORY:Natural Attack TYPE:AlchemistClassFeatures.NaturalAttack DEFINE:BombDamageDice|0 DEFINE:BombDamageSize|0 DEFINE:BombDamageBonus|0 DEFINE:BombAttackBonus|0 DEFINE:BombThreatRange|0 DEFINE:BombRange|0 DEFINE:BombCritMult|0 DESC:[+%1d%2 bonus damage, included in total damage]|AlchemistBombAdditionalDice|AlchemistBombDiceSize|PREVARGT:AlchemistBombAdditionalDice,0 BONUS:VAR|BombCritMult|2 BONUS:VAR|BombDamageDice|1 BONUS:VAR|BombDamageSize|6 BONUS:VAR|BombDamageBonus|INT BONUS:VAR|BombThreatRange|20 BONUS:VAR|BombRange|20 BONUS:VAR|BombAttackBonus|BAB+DEX+SIZEMOD ASPECT:NaturalAttackName|Bomb ASPECT:NaturalAttackToHit|%1|BombAttackBonus ASPECT:NaturalAttackDamage|%1d%2+%3|BombDamageDice+AlchemistBombAdditionalDice|AlchemistBombDiceSize|BombDamageBonus ASPECT:NaturalAttackReach|%1|BombRange ASPECT:NaturalAttackRange|%1|BombRange ASPECT:NaturalAttackType|Fire ASPECT:NaturalAttackThreatRange|%1|BombThreatRange ASPECT:NaturalAttackCritMult|/ x%1|BombCritMult # CATEGORY=Natural Attack|Bomb.MOD BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Weapon Focus (Bomb) BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Greater Weapon Focus (Bomb) BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Throw Anything # For Special Attack Notes, you may either use DESC:x, or ASPECT:NaturalAttackNotes|x ASPECT would be used for just one note, DESC can take PRExxx and would be ideal if your attack can be given other things, such as level based increases. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-12 07:43:40
|
Revision: 25764 http://sourceforge.net/p/pcgen/code/25764 Author: amaitland Date: 2014-12-12 07:43:36 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Fix Bomb Natural Damage Modified Paths: -------------- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst Modified: branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst =================================================================== --- branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-12 07:25:16 UTC (rev 25763) +++ branches/6.04.x/data/pathfinder/paizo/roleplaying_game/advanced_players_guide/apg_abilities_class.lst 2014-12-12 07:43:36 UTC (rev 25764) @@ -96,7 +96,7 @@ Instant Alchemy KEY:Alchemist ~ Instant Alchemy CATEGORY:Special Ability TYPE:AlchemistClassFeatures.SpecialQuality.Extraordinary DESC:You can create alchemical items with almost supernatural speed. You can create any alchemical item as a full-round action if you succeed at the Craft (Alchemy) check and have the appropriate resources at hand to fund the creation. You can apply poison to a weapon as an immediate action. # Bomb Attack Output -Bomb CATEGORY:Natural Attack TYPE:AlchemistClassFeatures.NaturalAttack DEFINE:BombDamageDice|0 DEFINE:BombDamageSize|0 DEFINE:BombDamageBonus|0 DEFINE:BombAttackBonus|0 DEFINE:BombThreatRange|0 DEFINE:BombRange|0 DEFINE:BombCritMult|0 DESC:[+%1d%2 bonus damage, included in total damage]|AlchemistBombAdditionalDice|AlchemistBombDiceSize|PREVARGT:AlchemistBombAdditionalDice,0 BONUS:VAR|BombCritMult|2 BONUS:VAR|BombDamageDice|1 BONUS:VAR|BombDamageSize|6 BONUS:VAR|BombDamageBonus|INT BONUS:VAR|BombThreatRange|20 BONUS:VAR|BombRange|20 BONUS:VAR|BombAttackBonus|BAB+DEX+SIZEMOD ASPECT:NaturalAttackName|Bomb ASPECT:NaturalAttackToHit|%1|BombAttackBonus ASPECT:NaturalAttackDamage|%1d%2+%3|BombDamageDice+AlchemistBombAdditionalDice|BombDamageSize|BombDamageBonus ASPECT:NaturalAttackReach|%1|BombRange ASPECT:NaturalAttackRange|%1|BombRange ASPECT:NaturalAttackType|Fire ASPECT:NaturalAttackThreatRange|%1|BombThreatRange ASPECT:NaturalAttackCritMult|/ x%1|BombCritMult +Bomb CATEGORY:Natural Attack TYPE:AlchemistClassFeatures.NaturalAttack DEFINE:BombDamageDice|0 DEFINE:BombDamageSize|0 DEFINE:BombDamageBonus|0 DEFINE:BombAttackBonus|0 DEFINE:BombThreatRange|0 DEFINE:BombRange|0 DEFINE:BombCritMult|0 DESC:[+%1d%2 bonus damage, included in total damage]|AlchemistBombAdditionalDice|AlchemistBombDiceSize|PREVARGT:AlchemistBombAdditionalDice,0 BONUS:VAR|BombCritMult|2 BONUS:VAR|BombDamageDice|1 BONUS:VAR|BombDamageSize|6 BONUS:VAR|BombDamageBonus|INT BONUS:VAR|BombThreatRange|20 BONUS:VAR|BombRange|20 BONUS:VAR|BombAttackBonus|BAB+DEX+SIZEMOD ASPECT:NaturalAttackName|Bomb ASPECT:NaturalAttackToHit|%1|BombAttackBonus ASPECT:NaturalAttackDamage|%1d%2+%3|BombDamageDice+AlchemistBombAdditionalDice|AlchemistBombDiceSize|BombDamageBonus ASPECT:NaturalAttackReach|%1|BombRange ASPECT:NaturalAttackRange|%1|BombRange ASPECT:NaturalAttackType|Fire ASPECT:NaturalAttackThreatRange|%1|BombThreatRange ASPECT:NaturalAttackCritMult|/ x%1|BombCritMult # CATEGORY=Natural Attack|Bomb.MOD BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Weapon Focus (Bomb) BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Greater Weapon Focus (Bomb) BONUS:VAR|BombAttackBonus|1|PREFEAT:1,Throw Anything # For Special Attack Notes, you may either use DESC:x, or ASPECT:NaturalAttackNotes|x ASPECT would be used for just one note, DESC can take PRExxx and would be ideal if your attack can be given other things, such as level based increases. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-12 07:25:18
|
Revision: 25763 http://sourceforge.net/p/pcgen/code/25763 Author: amaitland Date: 2014-12-12 07:25:16 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Add PFS Chronicle Sheets to multiset Modified Paths: -------------- Trunk/pcgen/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc Modified: Trunk/pcgen/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc =================================================================== --- Trunk/pcgen/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc 2014-12-12 07:24:36 UTC (rev 25762) +++ Trunk/pcgen/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc 2014-12-12 07:25:16 UTC (rev 25763) @@ -46,6 +46,7 @@ ####################### PCC:@/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_core_assumption.pcc +PCC:@/pathfinder_pfs/paizo/pathfinder_society/pfs_chronicle_sheets/pfs_chronicle_sheets.pcc ############################ # PFS Additional Resources # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-12 07:24:41
|
Revision: 25762 http://sourceforge.net/p/pcgen/code/25762 Author: amaitland Date: 2014-12-12 07:24:36 +0000 (Fri, 12 Dec 2014) Log Message: ----------- Add PFS Chronicle Sheets to multiset Modified Paths: -------------- branches/6.04.x/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc Modified: branches/6.04.x/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc =================================================================== --- branches/6.04.x/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc 2014-12-12 06:54:16 UTC (rev 25761) +++ branches/6.04.x/data/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_complete.pcc 2014-12-12 07:24:36 UTC (rev 25762) @@ -46,6 +46,7 @@ ####################### PCC:@/pathfinder_pfs/paizo/pathfinder_society/pathfinder_society_core_assumption.pcc +PCC:@/pathfinder_pfs/paizo/pathfinder_society/pfs_chronicle_sheets/pfs_chronicle_sheets.pcc ############################ # PFS Additional Resources # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |