<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- ArM5_CharSheet.xsl ver1.0 written by T.Miyamoto (tmiya@bu.iij4u.or.jp) -->
<xsl:template match="/">
  <html>
    <head>
      <title>Ars Magica Character Sheet</title>
      <style type="text/css">
	    body {color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 10pt; font-family: helvetica,arial,sans-serif;}
		table {text-align: left; margin-left: auto; margin-right: auto;}
		td {vertical-align: top; text-align: left; border: ridge;}
		th {vertical-align: top; text-align: left; border: none;}
      </style>
    </head>
    <body link="#000099" vlink="#990099" alink="#000099">
      <xsl:apply-templates select="character"/>
    </body>
  </html>
</xsl:template>

<xsl:template match="character">
<table style="width: 100%; border: none"><tbody>
    <tr>
	  <td style="border: none;"> 
        <table style="width: 100%;"><tbody>
            <tr><td rowspan="1" colspan="3"><b>Character: </b> <xsl:value-of select="name"/><br/></td></tr>
            <tr><td rowspan="1" colspan="3"><b>Player: </b><xsl:value-of select="player"/><br/></td></tr>
            <tr><td rowspan="1" colspan="3"><b>Saga: </b><xsl:value-of select="saga/@saga"/><br/></td></tr>
            <tr><td rowspan="1" colspan="3"><b>Setting/Year: </b><xsl:value-of select="saga/@setting"/>/<xsl:value-of select="saga/@year"/><br/></td></tr>
            <tr>
			  <td><b>Age: </b><xsl:value-of select="age/@age"/> (<xsl:value-of select="age/@appearance"/>)<br/></td>
              <td><b>Size: </b><xsl:value-of select="size/@size"/><br/></td>
              <td><b>Confidence: </b><xsl:value-of select="confidence/@score"/> (<xsl:value-of select="confidence/@point"/> pt.)<br/></td>
            </tr>
           <tr><td style="width: 25%; text-indent:-1em; padding-left:1em;" rowspan="1" colspan="3"><b>Decrepitude: </b><xsl:value-of select="decrepitude/@score"/> (<xsl:value-of select="decrepitude/@point"/> pt.)<br/>
             <xsl:value-of select="decrepitude/node()"/>
           </td></tr>
           <tr><td style="width: 25%; text-indent:-1em; padding-left:1em;" rowspan="1" colspan="3"><b>Warping: </b><xsl:value-of select="warping/@score"/> (<xsl:value-of select="warping/@point"/> pt.)<br/>
             <xsl:value-of select="warping/node()"/></td></tr>
			<tr><td style="width: 50%; text-indent:-1em; padding-left:1em;" rowspan="1" colspan="3"><b>Description: </b><br/>
                <xsl:value-of select="description/short"/></td></tr>
		</tbody></table>
    </td>
	<td  style="width: 25%; text-indent:-1em; padding-left:1em;" rowspan="8" colspan="1">
	</td></tr>
  </tbody>
</table>
<table style="width: 100%;">
  <tbody>
    <tr>
      <td style="width: 30%; border: none;"><b>Characteristics:</b><br/>
        <table style="width: 100%;">
          <tbody>
            <tr>
              <th><br/></th>
              <th>Description<br/></th>
              <th>Score<br/></th>
            </tr>
            <xsl:for-each select="characteristics/characteristic">
              <tr>
                <td><xsl:value-of select="@name"/><br/></td>
                <td><xsl:value-of select="@description"/><br/></td>
                <td><xsl:value-of select="@value"/><br/></td>
              </tr>
            </xsl:for-each>
          </tbody>
        </table>
      </td>
      <td rowspan="5" colspan="1" style="border: none;"><b>Abilities:</b><br/>
        <table style="width: 100%;">
          <tbody>
            <tr>
              <th>Exp<br/></th>
              <th>Ability<br/></th>
              <th>Score<br/></th>
              <th>Speciality<br/></th>
            </tr>
            <xsl:for-each select="abilities/ability"><xsl:sort select="@name"/>
              <tr>
                <td><xsl:if test="@exp">[<xsl:value-of select="@exp"/>]</xsl:if><xsl:if test="not(@exp)"><xsl:text>[ ___ ]</xsl:text></xsl:if><br/></td>
                <td><xsl:value-of select="@name"/><br/></td>
                <td><xsl:value-of select="@score"/><br/></td>
                <td>(<xsl:value-of select="@speciality"/>)<br/></td>
              </tr>
            </xsl:for-each>
          </tbody>
        </table>
      </td>
    </tr>
    <tr>
      <td style="text-indent:-1em; padding-left:1em;"><b>Virtues:</b><br/>
        <xsl:for-each select="virtues/virtue">
          <xsl:sort select="@name"/>
          <xsl:value-of select="@name"/><xsl:if test="position() != last()">, </xsl:if>
        </xsl:for-each>
      </td>
    </tr>
    <tr>
      <td style="text-indent:-1em; padding-left:1em;"><b>Flaws:</b><br/>
        <xsl:for-each select="flaws/flaw">
          <xsl:sort select="@name"/>
          <xsl:value-of select="@name"/><xsl:if test="position() != last()">, </xsl:if>
        </xsl:for-each>
      </td>
    </tr>
    <tr>
      <td style="text-indent:-1em; padding-left:1em;"><b>Personality:</b><br/>
        <xsl:for-each select="personality/trait">
          <xsl:sort select="@name"/>
          <xsl:value-of select="@name"/><xsl:text> </xsl:text><xsl:value-of select="@value"/><br/>
        </xsl:for-each>
      </td>
    </tr>
    <tr>
      <td style="text-indent:-1em; padding-left:1em;"><b>Reputation:</b><br/>
        <xsl:if test="not(reputations/reputation)">none</xsl:if>
        <xsl:for-each select="reputations/reputation">
          <xsl:value-of select="text()"/>
        </xsl:for-each>
      </td>
    </tr>
  </tbody>
</table>
<hr style="page-break-after: always;"/>
<b>Wounds and Fatigue:</b><br/>
<table style="width: 100%;">
  <tbody>
  <tr>
    <th><b>Body Level</b></th>
    <th colspan="2"><b>Penalty and Check</b></th>
    <th><b>Fatigue Level</b></th>
    <th colspan="2"><b>Penalty and Check</b></th>
  </tr>
  <tr>
    <td>Unhurt</td><td></td><td>[ ___ ]</td>
    <td>Fresh</td><td></td><td>[ ___ ]</td>
  </tr>
  <tr>
    <td>Hurt</td><td>0</td><td >[ ___ ]</td>
    <td>Winded (2 min.)</td><td>0</td><td>[ ___ ]</td>
  </tr>
  <tr>
    <td>Light Wounds (<xsl:value-of select="wound/@light"/>)</td><td>-1</td><td>[ ___ ]</td>
    <td>Weary(10 min.)</td><td>-1</td><td>[ ___ ]</td>
  </tr>
  <tr>
    <td>Medium Wounds (<xsl:value-of select="wound/@medium"/>)</td><td>-3</td><td>[ ___ ]</td>
    <td>Tired (30 min.)</td><td>-3</td><td>[ ___ ]</td>
  </tr>
  <tr>
    <td>Heavy Wounds (<xsl:value-of select="wound/@heavy"/>)</td><td>-5</td><td>[ ___ ]</td>
    <td>Dazed (1 hr.)</td><td>-5</td><td>[ ___ ]</td>
 </tr>
 <tr>
     <td>Incapacitated (<xsl:value-of select="wound/@incapacitated"/>)</td><td></td><td>[ ___ ]</td>
     <td>Unconcious (2 hr.)</td><td></td><td>[ ___ ]</td>
   </tr>
  </tbody>
</table>


<b>Equipments:</b><br/>
<table style="width: 100%;">
  <tbody>
	<tr>
	  <td style="width: 30%">
        <table style="width: 100%;">
	      <tbody>
	        <tr>
	  	      <td style="border: none;"><b>Items:</b>
				<ul><xsl:for-each select="items/item"><li><xsl:value-of select="text()"/></li></xsl:for-each></ul>
	          </td>
			</tr>
		  </tbody>
		</table>
	  </td>
	  <td style="border: none;">
		<table style="width: 100%;"><tbody>
	        <tr>
	  	      <td style="width: 100%;"><b>Encumbrance:</b>
				<ul><xsl:for-each select="encumbrance/mode"><li><xsl:value-of select="text()"/></li></xsl:for-each></ul>
	          </td>
			</tr>
	        <tr>
	  	      <td style="width: 100%;"><b>Soak:</b>
				<ul><xsl:for-each select="soak/mode"><li><xsl:value-of select="text()"/></li></xsl:for-each></ul>
	          </td>
			</tr>
	    </tbody></table>
		<table style="width: 100%;"><tbody>
		  <tr>
		    <th style="text-align: left;" >Conditions:</th>
			<th>Init</th>
			<th>Atk</th>
			<th>Dfn</th>
			<th>Dam</th>
		  </tr>
	      <xsl:for-each select="combats/combat">
		    <tr>
             <td><xsl:value-of select="@mode"/></td>
             <td><xsl:value-of select="@init"/></td>
             <td><xsl:value-of select="@atk"/></td>
             <td><xsl:value-of select="@dfn"/></td>
             <td><xsl:value-of select="@dam"/></td>
			</tr>
	      </xsl:for-each>
        </tbody></table>
	  </td>
	</tr>
  </tbody>
</table>


<table style="width: 100%;">
  <tbody>
    <tr><th>Description:</th></tr>
	<tr><td>
	  <xsl:for-each select="description/detail/p"><div style="text-indent:1em;"><xsl:value-of select="text()"/></div></xsl:for-each>
	</td></tr>
  </tbody>
</table>
<hr style="page-break-after: always;"/> 
<b>Magic: </b><br/>
        <table style="width: 100%;">
          <tbody>
            <xsl:if test="not(arts)">
              <tr><td>none</td></tr>
            </xsl:if>
            <xsl:if test="arts">
              <table style="width: 100%;">
				<tr>
					<td style="width: 100%;">
						<b>Sigil:</b>
							<xsl:value-of select="sigil/text()"/>
					</td>
				</tr>
			</table>
              <table style="width: 100%;">
                <tr>
                  <td style="width: 30%; border: none;"><b>Arts:</b>
                    <table  style="width: 100%;">
                      <tr>
                        <th>Technique</th>
                        <th>Score</th>
                        <th>Exp</th>
                      </tr>
                      <xsl:for-each select="arts/technique">
                        <xsl:sort select="@name"/>
                        <tr>
                          <td><xsl:value-of select="@name"/></td>
                          <td><xsl:value-of select="@score"/></td>
                          <td><xsl:choose><xsl:when test="@exp">[<xsl:value-of select="@exp"/>]</xsl:when><xsl:otherwise><xsl:text>[ ___ ]</xsl:text></xsl:otherwise></xsl:choose></td>
                        </tr>
                      </xsl:for-each>
                      <tr>
                        <th>Form</th>
                        <th>Score</th>
                        <th>Exp</th>
                      </tr>
                      <xsl:for-each select="arts/form">
                        <xsl:sort select="@name"/>
                        <tr>
                          <td><xsl:value-of select="@name"/></td>
                          <td><xsl:value-of select="@score"/></td>
                          <td><xsl:choose><xsl:when test="@exp">[<xsl:value-of select="@exp"/>]</xsl:when><xsl:otherwise><xsl:text>[ ___ ]</xsl:text></xsl:otherwise></xsl:choose></td>
                        </tr>
                      </xsl:for-each>
                    </table>
                  </td>
                  <td style="border: none;"><b>Spells:</b>
                    <table style="width: 100%;">
                      <tbody>
                        <xsl:for-each select="spells/spell">
                          <tr>
                            <td style="text-indent:-1em; padding-left:1em;">
                              <b><i><xsl:value-of select="@name"/></i></b> (<xsl:value-of select="@arts"/> <xsl:value-of select="@level"/>) <xsl:value-of select="@CT"/><br/><xsl:value-of select="node()"/>
                            </td>
                          </tr>
                        </xsl:for-each>
                      </tbody>
                    </table>
                  </td>
                </tr>
              </table>
            </xsl:if>
          </tbody>
        </table>
</xsl:template>

</xsl:stylesheet>
