From: <jde...@us...> - 2014-07-01 22:21:39
|
Revision: 24393 http://sourceforge.net/p/pcgen/code/24393 Author: jdempsey Date: 2014-07-01 22:21:31 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Loop Checks/Saves - move away from hardcoded d20 in base.xml.ftl Issue#: OS-329 Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-01 12:39:57 UTC (rev 24392) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-01 22:21:31 UTC (rev 24393) @@ -409,57 +409,40 @@ </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>fortitude</long> - <short>fort</short> + <long>${checkName}</long> + <short>${checkShortName}</short> </name> - <ability>constitution</ability> - <total>${pcstring('CHECK.FORTITUDE.TOTAL')}</total> - <base>${pcstring('CHECK.FORTITUDE.BASE')}</base> - <abil_mod>${pcstring('CHECK.FORTITUDE.STATMOD')}</abil_mod> - <feats>${pcstring('CHECK.FORTITUDE.FEATS')}</feats> - <magic_mod>${pcstring('CHECK.FORTITUDE.MAGIC')}</magic_mod> - <misc_mod>${pcstring('CHECK.FORTITUDE.MISC.NOMAGIC.NOSTAT')}</misc_mod> - <misc_w_magic_mod>${pcstring('CHECK.FORTITUDE.MISC.NOSTAT')}</misc_w_magic_mod> - <race>${pcstring('CHECK.FORTITUDE.RACE')}</race> - <epic_mod>${pcstring('CHECK.FORTITUDE.EPIC')}</epic_mod> + <#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> - <saving_throw> - <name> - <long>reflex</long> - <short>ref</short> - </name> - <ability>dexterity</ability> - <total>${pcstring('CHECK.REFLEX.TOTAL')}</total> - <base>${pcstring('CHECK.REFLEX.BASE')}</base> - <feats>${pcstring('CHECK.REFLEX.FEATS')}</feats> - <abil_mod>${pcstring('CHECK.REFLEX.STATMOD')}</abil_mod> - <magic_mod>${pcstring('CHECK.REFLEX.MAGIC')}</magic_mod> - <misc_mod>${pcstring('CHECK.REFLEX.MISC.NOMAGIC.NOSTAT')}</misc_mod> - <misc_w_magic_mod>${pcstring('CHECK.REFLEX.MISC.NOSTAT')}</misc_w_magic_mod> - <race>${pcstring('CHECK.REFLEX.RACE')}</race> - <epic_mod>${pcstring('CHECK.REFLEX.EPIC')}</epic_mod> - <temp_mod/> - </saving_throw> - <saving_throw> - <name> - <long>will</long> - <short>will</short> - </name> - <ability>wisdom</ability> - <total>${pcstring('CHECK.WILL.TOTAL')}</total> - <base>${pcstring('CHECK.WILL.BASE')}</base> - <abil_mod>${pcstring('CHECK.WILL.STATMOD')}</abil_mod> - <feats>${pcstring('CHECK.WILL.FEATS')}</feats> - <magic_mod>${pcstring('CHECK.WILL.MAGIC')}</magic_mod> - <misc_mod>${pcstring('CHECK.WILL.MISC.NOMAGIC.NOSTAT')}</misc_mod> - <misc_w_magic_mod>${pcstring('CHECK.WILL.MISC.NOSTAT')}</misc_w_magic_mod> - <race>${pcstring('CHECK.WILL.RACE')}</race> - <epic_mod>${pcstring('CHECK.WILL.EPIC')}</epic_mod> - <temp_mod/> - </saving_throw> +</@loop> </saving_throws> <!-- ==================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-07-12 06:14:40
|
Revision: 24519 http://sourceforge.net/p/pcgen/code/24519 Author: amaitland Date: 2014-07-12 06:14:34 +0000 (Sat, 12 Jul 2014) Log Message: ----------- FREQ: OS-332 Change RANGED Display to output only when RANGE value is >0 Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-11 23:01:34 UTC (rev 24518) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-12 06:14:34 UTC (rev 24519) @@ -59,12 +59,12 @@ <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> + <@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> + </@loop> </archetypes> <bab>${pcstring('ATTACK.MELEE.BASE')}</bab> <bio>${pcstring('BIO')}</bio> @@ -72,7 +72,7 @@ <birthplace>${pcstring('BIRTHPLACE')}</birthplace> <catchphrase>${pcstring('CATCHPHRASE')}</catchphrase> <classes> -<@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> + <@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> <class> <name>${pcstring('CLASS.${class}')}</name> <abbreviation>${pcstring('CLASSABB.${class}')}</abbreviation> @@ -81,7 +81,7 @@ <sequence>${class}</sequence> <sequence_shortform><@pcstring tag="CLASSABB.${class}"/><@pcstring tag="CLASS.${class}.LEVEL"/></sequence_shortform> </class> -</@loop><#-- Classes --> + </@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 --> @@ -143,23 +143,23 @@ <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> + <@loop from=0 to=pcvar('COUNT[LANGUAGES]-1') ; lang , lang_has_next> <language>${pcstring('LANGUAGES.${lang}')}</language> -</@loop> + </@loop> <all>${pcstring('LANGUAGES')}</all> </languages> <location>${pcstring('LOCATION')}</location> <move> -<@loop from=0 to=pcvar('COUNT[MOVE]-1') ; move , move_has_next> + <@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")> + <#if (pcstring("MOVE.${move}.NAME") = "Fly")> <maneuverability>(${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')})</maneuverability> -</#if> + </#if> </move> -</@loop> + </@loop> <all>${pcstring('MOVEMENT')}</all> </move> <personality> @@ -173,13 +173,13 @@ <phobias>${pcstring('PHOBIAS')}</phobias> <race>${pcstring('RACE')}</race> <race> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Internal","ASPECT=RaceExtra")-1') ; ability , ability_has_next> + <@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> + </@loop> <racetype>${pcstring('RACETYPE')}</racetype> -<@loop from=0 to=pcvar('COUNT[RACESUBTYPE]-1') ; racesubtype , racesubtype_has_next> + <@loop from=0 to=pcvar('COUNT[RACESUBTYPE]-1') ; racesubtype , racesubtype_has_next> <racesubtype>${pcstring('RACESUBTYPE.${racesubtype}')}</racesubtype> -</@loop> + </@loop> </race> <reach> <reach>${pcstring('REACH')}</reach> @@ -195,9 +195,9 @@ <speechtendency>${pcstring('SPEECHTENDENCY')}</speechtendency> <type>${pcstring('TYPE')}</type> <vision> -<@loop from=0 to=pcvar('COUNT[VISION]-1') ; vision , vision_has_next> + <@loop from=0 to=pcvar('COUNT[VISION]-1') ; vision , vision_has_next> <vision>${pcstring('VISION.${vision}')}</vision> -</@loop> + </@loop> <all>${pcstring('VISION')}</all> </vision> <wealth>${pcstring('VAR.WEALTH.INTVAL')}</wealth> @@ -211,26 +211,26 @@ <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> + <@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> + </#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> + </@loop> </notes> </basics> -<!-- Use ASPECT${pcstring('NotesSection')}x and ASPECT${pcstring('Notes')}y --> + <!-- Use ASPECT${pcstring('NotesSection')}x and ASPECT${pcstring('Notes')}y --> <!-- ==================================== ==================================== @@ -238,7 +238,7 @@ ==================================== ====================================--> <abilities> -<@loop from=0 to=pcvar('COUNT[STATS]-1') ; stat , stat_has_next> + <@loop from=0 to=pcvar('COUNT[STATS]-1') ; stat , stat_has_next> <ability> <name> <long>${pcstring('STAT.${stat}.LONGNAME')}</long> @@ -246,13 +246,13 @@ </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> @@ -261,7 +261,7 @@ <no_temp_score>${pcstring('STAT.${stat}.NOTEMP')}</no_temp_score> <no_temp_modifier>${pcstring('STAT.${stat}.MOD.NOTEMP')}</no_temp_modifier> </ability> -</@loop> + </@loop> </abilities> <!-- ==================================== @@ -280,14 +280,14 @@ <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> + <@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> + </@loop> </history> </hit_points> <!-- @@ -311,9 +311,9 @@ <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") > + <#if (gamemodename = "Modern" || gamemodename = "Darwins_World_2" || gamemodename = "Sidewinder") > <equipment_bonus>${pcstring('AC.Equipment')}</equipment_bonus> -</#if> + </#if> <misc>${pcstring('AC.Misc')}</misc> <insight>${pcstring('AC.Insight')}</insight> <morale>${pcstring('AC.Morale')}</morale> @@ -347,20 +347,20 @@ ====================================--> <skillinfo> <conditional_modifiers> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <@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> + </@loop> </conditional_modifiers> </skillinfo> <skills> <conditional_modifiers> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> + <@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> + </@loop> </conditional_modifiers> <skillpoints> <total>${pcstring('SKILLPOINTS.TOTAL')}</total> @@ -371,7 +371,7 @@ <list_mods>${pcstring('SKILLLISTMODS')}</list_mods> <max_class_skill_level>${pcstring('MAXSKILLLEVEL')}</max_class_skill_level> <max_cross_class_skill_level>${pcstring('MAXCCSKILLLEVEL')}</max_cross_class_skill_level> -<@loop from=0 to=pcvar('count("SKILLSIT")')-1 ; skill ,skill_has_next> + <@loop from=0 to=pcvar('count("SKILLSIT")')-1 ; skill ,skill_has_next> <skill> <name>${pcstring('SKILLSIT.${skill}')}</name> <ranks>${pcstring('SKILLSIT.${skill}.RANK')}</ranks> @@ -391,9 +391,9 @@ <classes>${pcstring('SKILLSIT.${skill}.CLASSES')}</classes> <type>${pcstring('SKILLSIT.${skill}.TYPE')}</type> </skill> -</@loop> + </@loop> -<!-- Skills --> + <!-- Skills --> </skills> <!-- ==================================== @@ -403,13 +403,13 @@ ====================================--> <saving_throws> <conditional_modifiers> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SaveBonus")-1') ; ability , ability_has_next> + <@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> + </@loop> </conditional_modifiers> -<@loop from=0 to=pcvar('COUNT[CHECKS]-1') ; check , check_has_next> + <@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')> @@ -442,7 +442,7 @@ <epic_mod>${pcstring('CHECK.${check}.EPIC')}</epic_mod> <temp_mod/> </saving_throw> -</@loop> + </@loop> </saving_throws> <!-- ==================================== @@ -452,17 +452,17 @@ ====================================--> <attack> <conditional_modifiers> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=CombatBonus")-1') ; ability , ability_has_next> + <@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> + </@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> + </savebonus> + </@loop> + </conditional_modifiers> <melee> <total>${pcstring('ATTACK.MELEE.TOTAL')}</total> @@ -489,9 +489,9 @@ <!-- ${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')) > + <!-- 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> @@ -511,7 +511,7 @@ <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'))> + <#if (pchasvar('CMB'))> <!-- Pathfinder (final release) --> <!-- Attack values --> <grapple_attack>${pcstring('VAR.CMB_Grapple.INTVAL.SIGN')}</grapple_attack> @@ -524,18 +524,18 @@ <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> + <#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> + <#else> <!-- Pathfinder Beta version --> <!-- Attack values --> <grapple_attack>${pcstring('VAR.CMB_Grapple_OFF.INTVAL.SIGN')}</grapple_attack> @@ -552,9 +552,9 @@ <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> + </#if> </cmb> -<#else> + <#else> <grapple> <total>${pcstring('ATTACK.GRAPPLE.TOTAL')}</total> <bab>${pcstring('ATTACK.GRAPPLE.BASE')}</bab> @@ -565,7 +565,7 @@ <epic_mod>${pcstring('ATTACK.GRAPPLE.EPIC')}</epic_mod> <temp_mod/> </grapple> -</#if> + </#if> <!-- End CMB / Grapple Block --> </attack> <!-- @@ -574,7 +574,7 @@ WEAPONS ==================================== ====================================--> -<#macro weapCommonBlock weap> + <#macro weapCommonBlock weap> <common> <name> <short>${pcstring('WEAPON.${weap}.NAME')}</short> @@ -630,8 +630,8 @@ <islight>${pcstring('WEAPON.${weap}.ISLIGHT')}</islight> <sequence>${weap}</sequence> </common> -</#macro> -<#macro weapMeleeBlock weap> + </#macro> + <#macro weapMeleeBlock weap> <melee> <invalidtext> <tohit>${pcstring('INVALIDTEXT.TOHIT')}</tohit> @@ -669,8 +669,8 @@ <damage>${pcstring('WEAPON.${weap}.OHDAMAGE')}</damage> </w2_o> </melee> -</#macro> -<#macro weapRangeBlock weap range> + </#macro> + <#macro weapRangeBlock weap range> <range> <distance>${pcstring('WEAPON.${weap}.RANGELIST.${range}')}</distance> <to_hit>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TOTALHIT')}</to_hit> @@ -682,83 +682,82 @@ <tohit_2weap_light>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWPHITL')}</tohit_2weap_light> <tohit_2weap_offhand>${pcstring('WEAPON.${weap}.RANGELIST.${range}.TWOHIT')}</tohit_2weap_offhand> </range> -</#macro> + </#macro> <weapons> -<#if (pcvar("VAR.UseMartialArts") = 1)> + <#if (pcvar("VAR.UseMartialArts") = 1)> <martialarts> <total>${pcstring('WEAPONH.TOTALHIT')}</total> -<#if (pcvar("VAR.MartialArtsBonusDamage") < 0)> + <#if (pcvar("VAR.MartialArtsBonusDamage") < 0)> <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}-${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> -<#else> + <#else> <damage>${pcstring('VAR.MartialArtsDie.INTVAL')}d${pcstring('VAR.MartialArtsDieSize.INTVAL')}+${pcstring('VAR.MartialArtsBonusDamage.INTVAL')}</damage> -</#if> + </#if> <critical>${pcstring('WEAPONH.CRIT')}/x${pcstring('WEAPONH.MULT')}</critical> - <!-- Should be changed to a variable due to improved crit --> + <!-- 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> + <@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> + </@loop> </martialarts> -<#else> + <#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> + <@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> + </@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)> + <#if (gamemodename = "3e")> + <#if (pcvar('VAR.Unarmed') > 0)> <type>(subdual or normal)</type> -<#else> + <#else> <type>(subdual only)</type> -</#if> -<#else> -<#if (pcvar('VAR.UnarmedLethal') > 0)> + </#if> + <#else> + <#if (pcvar('VAR.UnarmedLethal') > 0)> <type>(lethal or nonlethal)</type> -<#else> + <#else> <type>(nonlethal only)</type> -</#if> -</#if> + </#if> + </#if> </unarmed> - -</#if> -<!-- Spirit Weapon - Melee --> -<#if (pcstring("VAR.UseSpiritWeaponMelee") = "1")> + </#if> + <!-- Spirit Weapon - Melee --> + <#if (pcstring("VAR.UseSpiritWeaponMelee") = "1")> <spiritweaponmelee> <total>+${pcstring('VAR.SpiritWeaponMeleeToHit.INTVAL')}</total> -<#if (pcvar("VAR.SpiritWeaponMeleeBonusDamage") < 0)> + <#if (pcvar("VAR.SpiritWeaponMeleeBonusDamage") < 0)> <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> -<#else> + <#else> <damage>${pcstring('VAR.SpiritWeaponMeleeDie.INTVAL')}d${pcstring('VAR.SpiritWeaponMeleeDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponMeleeBonusDamage.INTVAL')}</damage> -</#if> + </#if> <critical>${pcstring('VAR.SpiritWeaponMeleeCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponMeleeCritMult.INTVAL')}</critical> <reach>${pcstring('REACH')}</reach> </spiritweaponmelee> -</#if> + </#if> -<!-- Spirit Weapon - Ranged --> -<#if (pcstring("VAR.UseSpiritWeaponRanged") = "1")> + <!-- Spirit Weapon - Ranged --> + <#if (pcstring("VAR.UseSpiritWeaponRanged") = "1")> <spiritweaponranged> <total>+${pcstring('VAR.SpiritWeaponRangedToHit.INTVAL')}</total> -<#if (pcvar("VAR.SpiritWeaponRangedBonusDamage") < 0)> + <#if (pcvar("VAR.SpiritWeaponRangedBonusDamage") < 0)> <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}-${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> -<#else> + <#else> <damage>${pcstring('VAR.SpiritWeaponRangedDie.INTVAL')}d${pcstring('VAR.SpiritWeaponRangedDieSize.INTVAL')}+${pcstring('VAR.SpiritWeaponRangedBonusDamage.INTVAL')}</damage> -</#if> + </#if> <critical>${pcstring('VAR.SpiritWeaponRangedCritRange.INTVAL')}/x${pcstring('VAR.SpiritWeaponRangedCritMult.INTVAL')}</critical> <range>${pcstring('VAR.SpiritWeaponRangedRange.INTVAL')}</range> </spiritweaponranged> -</#if> -<!-- End Spirit Weapon - Ranged --> + </#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> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","NAME=BlankNaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> <naturalattack> <name>Weapon</name> <tohit></tohit> @@ -770,10 +769,10 @@ <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> + </@loop> <!-- Natural Attack --> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack")-1') ; NaturalAttack , NaturalAttack_has_next> + <@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> @@ -784,131 +783,140 @@ <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> -<@loop from=0 to=4 ; NaturalAttackRange , NaturalAttackRange_has_next> + <@loop from=0 to=4 ; NaturalAttackRange , NaturalAttackRange_has_next> <range> <distance>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</distance> <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> </range> -</@loop> + </@loop> <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 <--> + <!--> 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> + </@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'))> + <#-- 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) --> + <#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 --> + </#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> -<@loop from=0 to=5 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop><#-- Range --> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> </ranges> - <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) but IS Ranged --> + <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) but IS Ranged --> -<!-- New Ranges Section --> + <!-- New Ranges Section --> <ranges> <rangetype>Ranged</rangetype> -<@loop from=0 to=10 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop> <#-- Range --> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> </ranges> - </#if><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) --> + </#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'))> + <#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")> + <#if (pcstring("WEAPON.${weap}.CONTENTS") = "0")> <ranges> -<#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> <rangetype>Thrown</rangetype> -<@loop from=0 to=5 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop> <!-- Range --> -<#else><#-- Thrown --> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><!-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + <#else><#-- Thrown --> <rangetype>Ranged</rangetype> -<@loop from=0 to=10 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop><#-- Range --> -</#if><#-- Thrown --> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- Thrown --> </ranges> -<#else><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> -<@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next> + <#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> </ammunition> -<#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> + <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> <rangetype>Thrown</rangetype> -<@loop from=0 to=5 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop><#-- Range --> -<#else><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=5 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + <#else><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> <rangetype>Ranged</rangetype> + <#if (pcvar("WEAPON.${weap}.range") > "0")> + <@loop from=0 to=10 ; range , range_has_next> + <@weapRangeBlock weap="${weap}" range="${range}" /> + </@loop><#-- Range --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> -<@loop from=0 to=10 ; range , range_has_next> - <@weapRangeBlock weap="${weap}" range="${range}" /> -</@loop><#-- Range --> + </#if><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> -</#if><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> - </ranges> -</@loop><#-- FOR,${ammo},0,WEAPON.${weap}.CONTENTS-1,1,1 --> -</#if><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> + </@loop><#-- FOR,${ammo},0,WEAPON.${weap}.CONTENTS-1,1,1 --> + </#if><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> </weapon> -<#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> + <#else><#-- IIF(WEAPON.${weap}.CATEGORY:Ranged) --> - -<#if (pcboolean('WEAPON.${weap}.ISTYPE.Double') || pcboolean('WEAPON.${weap}.ISTYPE.TwoHanded') || - weaponCategory?contains('non-standard-melee') || weaponCategory?contains('natural'))> + <#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 --> + <!-- 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--> + <!-- End DATA-73 Work Around--> </simple> </weapon> -<#else><#-- IIF(WEAPON.${weap}.ISTYPE.Double.OR.WEAPON.${weap}.CATEGORY:Non-Standard-Melee) --> + <#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 --> + </#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> <!-- ==================================== @@ -917,7 +925,7 @@ ==================================== ====================================--> <protection> -<@loop from=0 to=pcvar('COUNT[EQTYPE.Armor]-1') ; armor , armor_has_next> + <@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> @@ -931,11 +939,11 @@ <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> + <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> + </@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> @@ -950,8 +958,8 @@ <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> + </@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> @@ -966,7 +974,7 @@ <type>${pcstring('ARMOR.ACITEM.${armor}.TYPE')}</type> <wt>${pcstring('ARMOR.ACITEM.${armor}.WT')}</wt> </item> -</@loop> + </@loop> </protection> <!-- ==================================== @@ -975,84 +983,84 @@ ==================================== ====================================--> <class_features> -<!-- Pathfinder --> -<#if (pcvar("VAR.BardicPerformanceLVL") >= 1) > - <bardic_music> + <!-- Pathfinder --> + <#if (pcvar("VAR.BardicPerformanceLVL") >= 1) > + <bardic_music> <uses_per_day>${pcstring('VAR.BardicPerformanceDuration.INTVAL')}</uses_per_day> </bardic_music> -</#if> -<!-- D&D 3.0 --> -<#if (pcvar("VAR.BardicMusicLevel") >= 1) > + </#if> + <!-- 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) > + </#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) > + </#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 --> + </#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 --> + <!-- 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')) > + <#if (pcboolean('ABILITYALL.Special Ability.0.TYPE=RageDescription.HASASPECT.RageDescription')) > <description>${pcstring('ABILITYALL.Special Ability.0.TYPE=RageDescription.ASPECT.RageDescription')}</description> -<#else> + <#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> + </#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 --> + </#if> <!-- Character Rage --> <!-- Turning ability --> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=TurnType")-1') ; turncount , turncount_has_next> + <@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> @@ -1060,10 +1068,10 @@ <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> + </@loop> -<!-- Eclipse Channeling --> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","ASPECT=ChannelingType")-1') ; eclipsecount , eclipsecount_has_next> + <!-- 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> @@ -1076,10 +1084,10 @@ <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> + </@loop> -<!-- Channel Energy --> -<#if (pcvar("VAR.ChannelEnergyLVL") >= 1) > + <!-- 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> @@ -1087,118 +1095,118 @@ <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")> + <#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> + <#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> + </#if> </channel_energy> -</#if> + </#if> -<#if (pcvar("VAR.KiPoolLVL") >= 1) > + <#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> <!-- 3.0 stunning fist --> -<#if (pcvar("VAR.StunningAttack") >= 1) > + <#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> <!-- 3.0 stunning fist --> -<#if (pcvar("VAR.StunningFistAttack") >= 1) > + <#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> + <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> <!-- 3.5 stunning fist --> -<#if (pcvar("VAR.WholenessHpLVL") >= 1) > + <#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> <!-- 3.0 wholeness of body --> -<#if (pcvar("VAR.WholenessBody") >= 1) > + <#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> <!-- 3.5 wholeness of body --> -<#if (pcvar("VAR.TOTALPOWERPOINTS") >= 1) > <!-- Psionics --> + <#if (pcvar("VAR.TOTALPOWERPOINTS") >= 1) > <!-- Psionics --> <psionics> -<#if (pchasvar("Manifester") || pchasvar("PsychicWarriorManifester"))> + <#if (pchasvar("Manifester") || pchasvar("PsychicWarriorManifester"))> <type>3.0</type> -<#else> + <#else> <type>3.5</type> -</#if> + </#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> <!-- Psionics --> -<#if (pcvar("VAR.LayOnHands") >= 1) > <!-- D&D 3.0 and 3.5 --> + <#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> -<#if (pcvar("VAR.LayOnHandsTimes") >= 1) > <!-- Pathfinder --> + <#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> + <description>cure ${pcstring('VAR.LayOnHandsDice.INTVAL')}d6 per use</description> </layonhands> -</#if> + </#if> -<#if (pcvar("VAR.WildshapeTimes") >= 1) > + <#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> -<#if (pcvar("VAR.LeadershipScore") >= 1) > + <#if (pcvar("VAR.LeadershipScore") >= 1) > <leadership> <score>${pcstring('VAR.LeadershipScore.INTVAL')}</score> <max_cohort_level>${pcstring('VAR.LeadershipMaxCohortLvl')}</max_cohort_level> </leadership> -</#if> + </#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> + <@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"))> + <#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"))> + <#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"))> + <#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> + <#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")> + <#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 Ability.${subability}.ASPECT.ChildAbility") = pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.MasterAbility"))> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability")-1') ; subability , subability_has_next> + <#if (pcstring("ABILITYALL.Special Ability.${subability}.ASPECT.ChildAbility") = pcstring("ABILITYALL.Special Ability.${ability}.ASPECT=CheckType.ASPECT.MasterAbility"))> <subability> <name>${pcstring('ABILITYALL.Special Ability.${subability}')}</name> <description>${pcstring('ABILITYALL.Special Ability.${subability}.DESC')}</description> @@ -1206,36 +1214,36 @@ <source>${pcstring('ABILITYALL.Special Ability.${subability}.SOURCE')}</source> <child>${pcstring('ABILITYALL.Special Ability.${subability}.ASPECT.ChildAbility')}</child> </subability> -</#if> -</@loop> -</#if> + </#if> + </@loop> + </#if> </checklist> -</@loop> + </@loop> </checklists> <!-- Proficiency lists --> <proficiency_specials> -<#if (pcvar('countdistinct("ABILITIES";"CATEGORY=Special Ability";"TYPE=ProfOutput")') = 0)> -<#else> + <#if (pcvar('countdistinct("ABILITIES";"CATEGORY=Special Ability";"TYPE=ProfOutput")') = 0)> + <#else> <!-- --> -</#if> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=ProfOutput")-1') ; ability , ability_has_next> + </#if> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=ProfOutput")-1') ; ability , ability_has_next> <proficiency> <name>${pcstring('ABILITYALL.Special Ability.${ability}.TYPE=ProfOutput')}</name> <proficient>${pcstring('ABILITYALL.Special Ability.${ability}.TYPE=ProfOutput.ASPECT.Proficiency')}</proficient> <forte>${pcstring('ABILITYALL.Special Ability.${ability}.TYPE=ProfOutput.ASPECT.Forte')}</forte> </proficiency> -</@loop> + </@loop> </proficiency_specials> -<!-- + <!-- ==================================== ==================================== EQUIPMENT ==================================== ====================================--> <equipment> -<@loop from=0 to=pcvar('COUNT[EQUIPMENT.MERGELOC]-1') ; equip , equip_has_next><#lt><#-- TODO: Loop was of early exit type 1 --> + <@loop from=0 to=pcvar('COUNT[EQUIPMENT.MERGELOC]-1') ; equip , equip_has_next><#lt><#-- TODO: Loop was of early exit type 1 --> <item> <longname>${pcstring('EQ.MERGELOC.${equip}.LONGNAME')}</longname> <id>${pcstring('EQ.MERGELOC.${equip}.ID')}</id> @@ -1282,7 +1290,7 @@ <source>${pcstring('EQ.MERGELOC.${equip}.SOURCE')}</source> <quality>${pcstring('EQ.MERGELOC.${equip}.QUALITY')}</quality> </item> -</@loop><#lt><#-- Equipment --> + </@loop><#lt><#-- Equipment --> <total> <weight>${pcstring('TOTAL.WEIGHT')}</weight> <value>${pcstring('TOTAL.VALUE')}</value> @@ -1290,9 +1298,9 @@ <capacity>${pcstring('TOTAL.CAPACITY')}</capacity> </total> <equipmentsets> -<@equipsetloop><#lt> + <@equipsetloop><#lt> <equipmentset name="${pcstring('EQSET.NAME')}"> -<@loop from=0 to=pcvar('COUNT[EQUIPMENT.MERGELOC]-1') ; equip , equip_has_next> + <@loop from=0 to=pcvar('COUNT[EQUIPMENT.MERGELOC]-1') ; equip , equip_has_next> <item> <longname>${pcstring('EQ.MERGELOC.${equip}.LONGNAME')}</longname> <name>${pcstring('EQ.MERGELOC.${equip}.NAME')}</name> @@ -1337,9 +1345,9 @@ <source>${pcstring('EQ.MERGELOC.${equip}.SOURCE')}</source> <quality>EQ.0.QUALITY</quality> </item> -</@loop><#lt><#-- Equipment --> + </@loop><#lt><#-- Equipment --> </equipmentset> -</@equipsetloop><#lt> + </@equipsetloop><#lt> </equipmentsets> </equipment> <weight_allowance> @@ -1358,19 +1366,19 @@ ==================================== ====================================--> <special_abilities> -<@loop from=0 to=pcvar('COUNT[SA]-1') ; sa , sa_has_next> + <@loop from=0 to=pcvar('COUNT[SA]-1') ; sa , sa_has_next> <ability> <name>${pcstring('SPECIALABILITY.${sa}')}</name> <description>${pcstring('SPECIALABILITY.${sa}.DESCRIPTION')}</description> </ability> -</@loop> + </@loop> <race>${pcstring('RACE.ABILITYLIST')}</race> -<@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> + <@loop from=0 to=pcvar('COUNT[CLASSES]-1') ; class , class_has_next> <class> <class>${pcstring('CLASS.${class}')}</class> <ability>${pcstring('CLASS.${class}.SALIST')}</ability> </class> -</@loop> + </@loop> </special_abilities> <!-- ==================================== @@ -1380,7 +1388,7 @@ ====================================--> <feats> <!-- Visible standard feats (not including the auto feats) --> -<@loop from=0 to=pcvar('COUNT[FEATS.VISIBLE]-1') ; feat , feat_has_next> + <@loop from=0 to=pcvar('COUNT[FEATS.VISIBLE]-1') ; feat , feat_has_next> <feat> <name>${pcstring('FEAT.VISIBLE.${feat}')}</name> <description>${pcstring('FEAT.VISIBLE.${feat}.DESC')}</description> @@ -1393,10 +1401,10 @@ <virtual>F</virtual> <source>${pcstring('FEAT.VISIBLE.${feat}.SOURCE')}</source> </feat> -</@loop> + </@loop> <!-- Auto feats --> -<@loop from=0 to=pcvar('COUNT[FEATSAUTO.VISIBLE]-1') ; feat , feat_has_next> + <@loop from=0 to=pcvar('COUNT[FEATSAUTO.VISIBLE]-1') ; feat , feat_has_next> <feat> <name>${pcstring('FEATAUTO.VISIBLE.${feat}')}</name> <description>${pcstring('FEATAUTO.VISIBLE.${feat}.DESC')}</description> @@ -1409,10 +1417,10 @@ <virtual>F</virtual> <source>${pcstring('FEATAUTO.VISIBLE.${feat}.SOURCE')}</source> </feat> -</@loop> + </@loop> <!-- Virtual Feats --> -<@loop from=0 to=pcvar('COUNT[VFEATS.VISIBLE]-1') ; feat , feat_has_next> + <@loop from=0 to=pcvar('COUNT[VFEATS.VISIBLE]-1') ; feat , feat_has_next> <feat> <name>${pcstring('VFEAT.VISIBLE.${feat}')} (Granted)</name> <description>${pcstring('VFEAT.VISIBLE.${feat}.DESC')}</description> @@ -1425,10 +1433,10 @@ <virtual>T</virtual> <source>${pcstring('VFEAT.VISIBLE.${feat}.SOURCE')}</source> </feat> -</@loop> + </@loop> <!-- End Virtual Feats --> <!-- Hidden feats (all feats less the virtual, automatic and visible ones) --> -<@loop from=0 to=pcvar('COUNT[FEATS.HIDDEN]-1') ; feat , feat_has_next> + <@loop from=0 to=pcvar('COUNT[FEATS.HIDDEN]-1') ; feat , feat_has_next> <feat> <name>${pcstring('FEAT.HIDDEN.${feat}')}</name> <description>${pcstring('FEAT.HIDDEN.${feat}.DESC')}</description> @@ -1441,9 +1449,9 @@ <virtual>F</virtual> <source>${pcstring('FEAT.HIDDEN.${feat}.SOURCE')}</source> </feat> -</@loop> -<!-- Hidden VFEATS --> -<@loop from=0 to=pcvar('COUNT[VFEATS.HIDDEN]-1') ; feat , feat_has_next> + </@loop> + <!-- Hidden VFEATS --> + <@loop from=0 to=pcvar('COUNT[VFEATS.HIDDEN]-1') ; feat , feat_has_next> <feat> <name>${pcstring('VFEAT.HIDDEN.${feat}')}</name> <description>${pcstring('VFEAT.HIDDEN.${feat}.DESC')}</description> @@ -1456,9 +1464,9 @@ <virtual>T</virtual> <source>${pcstring('VFEAT.HIDDEN.${feat}.SOURCE')}</source> </feat> -</@loop> -<!-- END Hidden VFEATS --> -<@loop from=0 to=pcvar('COUNT[FEATSAUTO.HIDDEN]-1') ; feat , feat_has_next> + </@loop> + <!-- END Hidden VFEATS --> + <@loop from=0 to=pcvar('COUNT[FEATSAUTO.HIDDEN]-1') ; feat , feat_has_next> <feat> <name>${pcstring('FEATAUTO.HIDDEN.${feat}')}</name> <description>${pcstring('FEATAUTO.HIDDEN.${feat}.DESC')}</description> @@ -1471,11 +1479,11 @@ <virtual>F</virtual> <source>${pcstring('FEATAUTO.HIDDEN.${feat}.SOURCE')}</source> </feat> -</@loop> + </@loop> </feats> -<#-- ABILITY OBJECTS --> -<#macro abilityBlock category nature hidden typeName nodeName > + <#-- ABILITY OBJECTS --> + <#macro abilityBlock category nature hidden typeName nodeName > <#if hidden> <#assign visCriteria = 'VISIBILITY=HIDDEN[or]VISIBILITY=DISPLAY_ONLY' /> <#assign visName = 'HIDDEN' /> @@ -1544,7 +1552,7 @@ <source>${pcstring('${abilityExportToken}.SOURCE')}</source> </${nodeName}> </@loop> -</#macro> + </#macro> <!-- ==================================== ==================================== @@ -1552,11 +1560,11 @@ ==================================== ====================================--> <archetypes> -<#if (pcvar('countdistinct("ABILITIES";"CATEGORY=Archetype";"VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY";"TYPE=Archetype")') = 0)> -<#else> + <#if (pcvar('countdistinct("ABILITIES";"CATEGORY=Archetype";"VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY";"TYPE=Archetype")') = 0)> + <#else> <!-- Archetypes --> -</#if> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY","TYPE=Archetype")-1') ; archetype , archetype_has_next> + </#if> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY","TYPE=Archetype")-1') ; archetype , archetype_has_next> <archetype> <name>${pcstring('ABILITYALL.Archetype.VISIBLE.${archetype}.TYPE=Archetype')}</name> <description>${pcstring('ABILITYALL.Archetype.VISIBLE.${archetype}.TYPE=Archetype.DESC')}</description> @@ -1566,7 +1574,7 @@ <category>Archetype</category> <source>${pcstring('ABILITYALL.Archetype.VISIBLE.${archetype}.TYPE=Archetype.SOURCE')}</source> </archetype> -</@loop> + </@loop> </archetypes> <!-- ==================================== @@ -1595,31 +1603,31 @@ ====================================--> <racial_traits> -<@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=RaceTrait")-1') ; ability , ability_has_next> -<#if (pcstring("ABILITYALL.Special Ability.${ability}.TYPE=RaceTrait.HASASPECT.RaceTraitMaster") = "Y")> + <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=RaceTrait")-1') ; ability , ability_has_next... [truncated message content] |
From: <ama...@us...> - 2014-07-12 06:32:51
|
Revision: 24520 http://sourceforge.net/p/pcgen/code/24520 Author: amaitland Date: 2014-07-12 06:32:43 +0000 (Sat, 12 Jul 2014) Log Message: ----------- FREQ: OS-332 Change RANGED Display to output only when RANGE value is >0 Fix the syntax to one Freemarker works with. Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-12 06:14:34 UTC (rev 24519) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-12 06:32:43 UTC (rev 24520) @@ -815,22 +815,22 @@ <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))><#-- Valid only if we find the Thrown Value --> <ranges> <rangetype>Thrown</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=5 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><#-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> </ranges> <#else><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) but IS Ranged --> <!-- New Ranges Section --> <ranges> <rangetype>Ranged</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=10 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><#-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> </ranges> </#if><#-- IIF(WEAPON.${weap}.ISTYPE.Thrown) --> @@ -847,18 +847,18 @@ <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> <rangetype>Thrown</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=5 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><!-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> <#else><#-- Thrown --> <rangetype>Ranged</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=10 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><#-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> </#if><#-- Thrown --> </ranges> <#else><#-- IIF(WEAPON.${weap}.CONTENTS:0) --> @@ -871,18 +871,18 @@ </ammunition> <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> <rangetype>Thrown</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=5 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><#-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> <#else><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> <rangetype>Ranged</rangetype> - <#if (pcvar("WEAPON.${weap}.range") > "0")> + <#if (pcvar("WEAPON.${weap}.range") > 0)> <@loop from=0 to=10 ; range , range_has_next> <@weapRangeBlock weap="${weap}" range="${range}" /> </@loop><#-- Range --> - </#if><#-- if (pcvar("WEAPON.${weap}.range") > "0") --> + </#if><#-- if (pcvar("WEAPON.${weap}.range") > 0) --> </#if><#--IIF(WEAPON.%weap.ISTYPE.Thrown) --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-07-20 06:15:45
|
Revision: 24632 http://sourceforge.net/p/pcgen/code/24632 Author: amaitland Date: 2014-07-20 06:15:41 +0000 (Sun, 20 Jul 2014) Log Message: ----------- Implement: OS-247 Adding spellcasting with ADD:SPELLCASTER displays a class with level 0 Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-20 06:05:12 UTC (rev 24631) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-20 06:15:41 UTC (rev 24632) @@ -73,6 +73,7 @@ <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> @@ -81,6 +82,7 @@ <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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-07-27 09:10:47
|
Revision: 24721 http://sourceforge.net/p/pcgen/code/24721 Author: amaitland Date: 2014-07-27 09:10:41 +0000 (Sun, 27 Jul 2014) Log Message: ----------- Push in base Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-27 05:03:22 UTC (rev 24720) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-27 09:10:41 UTC (rev 24721) @@ -684,6 +684,15 @@ <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> @@ -869,9 +878,7 @@ <@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> + <name>${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')}</name> </ammunition> <#if (pcboolean('WEAPON.${weap}.ISTYPE.Thrown'))> <rangetype>Thrown</rangetype> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-07-28 16:10:15
|
Revision: 24730 http://sourceforge.net/p/pcgen/code/24730 Author: amaitland Date: 2014-07-28 16:10:07 +0000 (Mon, 28 Jul 2014) Log Message: ----------- Ammo should alter Damage and Attack Values Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-28 16:09:26 UTC (rev 24729) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-07-28 16:10:07 UTC (rev 24730) @@ -877,6 +877,13 @@ <#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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-08-06 22:16:13
|
Revision: 24810 http://sourceforge.net/p/pcgen/code/24810 Author: amaitland Date: 2014-08-06 22:16:04 +0000 (Wed, 06 Aug 2014) Log Message: ----------- Fix base.xml.ftl Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-08-06 22:02:15 UTC (rev 24809) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-08-06 22:16:04 UTC (rev 24810) @@ -793,10 +793,10 @@ <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> - <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> <@loop from=0 to=4 ; NaturalAttackRange , NaturalAttackRange_has_next> + <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> <range> <distance>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</distance> <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2014-08-08 11:47:03
|
Revision: 24819 http://sourceforge.net/p/pcgen/code/24819 Author: jdempsey Date: 2014-08-08 11:46:55 +0000 (Fri, 08 Aug 2014) Log Message: ----------- Fix bug: Alchemist Bomb stats missing - Remove unused range increment data from base.xml.ftl Issue#: OS-349 Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-08-07 22:34:50 UTC (rev 24818) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-08-08 11:46:55 UTC (rev 24819) @@ -794,15 +794,7 @@ <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> - - <@loop from=0 to=4 ; NaturalAttackRange , NaturalAttackRange_has_next> - <range>${pcstring('ABILITYALL.Natural Attack.${NaturalAttack}.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</range> - <range> - <distance>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRange')}</distance> - <rangeincrement>${pcstring('ABILITYALL.Natural Attack.${NaturalAttackRange}.TYPE=NaturalAttack.ASPECT.NaturalAttackRangeIncrement')}</rangeincrement> - <distance_unit>${pcstring('UNITSET.DISTANCEUNIT')}</distance_unit> - </range> - </@loop> + <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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-11-03 20:13:36
|
Revision: 25364 http://sourceforge.net/p/pcgen/code/25364 Author: amaitland Date: 2014-11-03 20:13:23 +0000 (Mon, 03 Nov 2014) Log Message: ----------- Fix: OS-378 Pathfinder PDF shows incorrect negative in "Misc" column for CMB Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-03 20:06:06 UTC (rev 25363) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-03 20:13:23 UTC (rev 25364) @@ -502,7 +502,7 @@ <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>${pcstring('VAR.CMB-ATTACK.MELEE.BASE-VAR.CMB_STAT-VAR.CMB_SizeMod.INTVAL.SIGN')}</misc_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) --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-11-10 11:40:50
|
Revision: 25433 http://sourceforge.net/p/pcgen/code/25433 Author: amaitland Date: 2014-11-10 11:40:41 +0000 (Mon, 10 Nov 2014) Log Message: ----------- OS-382 Pathfinder - Hero Points Enable Hero Points to work in the Initiative Block Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-10 11:05:06 UTC (rev 25432) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-10 11:40:41 UTC (rev 25433) @@ -340,6 +340,7 @@ <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> <!-- ==================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-11-11 14:05:24
|
Revision: 25435 http://sourceforge.net/p/pcgen/code/25435 Author: amaitland Date: 2014-11-11 14:05:16 +0000 (Tue, 11 Nov 2014) Log Message: ----------- Implement: OS-383 Support Method to correctly display Normal Max Rank values for systems that allow bypassing those maximums Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-10 11:49:36 UTC (rev 25434) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-11 14:05:16 UTC (rev 25435) @@ -372,7 +372,11 @@ <eclipse_total>${pcstring('VAR.CharacterSkillPts.INTVAL')}</eclipse_total> </skillpoints> <list_mods>${pcstring('SKILLLISTMODS')}</list_mods> - <max_class_skill_level>${pcstring('MAXSKILLLEVEL')}</max_class_skill_level> + <#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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-11-13 10:10:03
|
Revision: 25447 http://sourceforge.net/p/pcgen/code/25447 Author: amaitland Date: 2014-11-13 10:09:59 +0000 (Thu, 13 Nov 2014) Log Message: ----------- Implement: DATA-2152, DATA-2109 -- OS support for these two items. please make it possible and easy to add an arbitrary new language, and override language choice restrictions to use it. Ability to name Race in ARG. Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-13 10:06:55 UTC (rev 25446) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-13 10:09:59 UTC (rev 25447) @@ -148,6 +148,7 @@ <@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> @@ -173,7 +174,11 @@ <portrait_thumb>${pcstring('PORTRAIT.THUMB')}</portrait_thumb> </portrait> <phobias>${pcstring('PHOBIAS')}</phobias> - <race>${pcstring('RACE')}</race> + <#if (pcstring("ABILITYALL.Special Ability.${ability}.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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <za...@us...> - 2014-11-18 10:50:58
|
Revision: 25493 http://sourceforge.net/p/pcgen/code/25493 Author: zaister Date: 2014-11-18 10:50:48 +0000 (Tue, 18 Nov 2014) Log Message: ----------- DATA-2152 Fix broken PDF export Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-18 07:36:14 UTC (rev 25492) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-11-18 10:50:48 UTC (rev 25493) @@ -174,7 +174,7 @@ <portrait_thumb>${pcstring('PORTRAIT.THUMB')}</portrait_thumb> </portrait> <phobias>${pcstring('PHOBIAS')}</phobias> - <#if (pcstring("ABILITYALL.Special Ability.${ability}.TYPE=RaceName.HASASPECT.RaceName") = "Y")> + <#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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2014-12-09 09:03:00
|
Revision: 25742 http://sourceforge.net/p/pcgen/code/25742 Author: amaitland Date: 2014-12-09 09:02:57 +0000 (Tue, 09 Dec 2014) Log Message: ----------- omit bad loop, waiting for proper count. Modified Paths: -------------- Trunk/pcgen/outputsheets/base.xml.ftl Modified: Trunk/pcgen/outputsheets/base.xml.ftl =================================================================== --- Trunk/pcgen/outputsheets/base.xml.ftl 2014-12-09 09:00:12 UTC (rev 25741) +++ Trunk/pcgen/outputsheets/base.xml.ftl 2014-12-09 09:02:57 UTC (rev 25742) @@ -236,7 +236,7 @@ </@loop> </notes> <campaign_history> - <@loop from=0 to=??? ; campaignloop , campaignloop_has_next> +<#-- <@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> @@ -244,7 +244,7 @@ <xp>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.XP</xp> <gm>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.GM</gm> <text>CAMPAIGNHISTORY.VISIBLE.${campaignloop}.TEXT</text> - </@loop> +<#-- </@loop> --> </campaign_history> </basics> 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: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. |