[Shadowrun5thA] split spells in categories

This commit is contained in:
Stexinator
2021-08-11 21:01:42 +02:00
parent e862cbf34e
commit 96f59055f0
2 changed files with 630 additions and 281 deletions
+590 -281
View File
@@ -38,7 +38,6 @@
</div>
<div class="content1">
<div class="statblock">
<h2>Attributes</h2>
@@ -6873,6 +6872,297 @@ only the modifier like '-1'
a zeros and positive numbers also need a sign like '+0'
For Rituals enter '*2' to display the amount of Dice to be rolled seperatly">
</div>
<div class="spelldescriptionwrapper">
<input type="text" name="attr_spelldescription" title="To make life easy on your gm
make sure to enter what the spell is resisted with">
</div>
<div class="spellbonuswrapper">
<input type="text" name="attr_spellbonus" value="0" title="Bonus applying only to this Test">
</div>
<div class="spellspecializedwrapper">
<input type="checkbox" class="hiddencheckbox spellspecialized" name="attr_spellspecialized" value="2" title="Apply +2 from specialization to casting this Spell">
<div class="checkboxticker spellspecializedunticked"></div>
<div class="checkboxticker spellspecializedticked">X</div>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmageeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[?{Force|6}]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnoeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmagefull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{limit_mod=[[?{Raise Limit by|0}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Force|6}+?{Raise Limit by|0})]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}+?{Increase Drain|0}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus}+?{Drain Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnofull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
</div>
</fieldset>
<br>
<h2>Rituals</h2>
<div class="spelllabels">
<div class="spellnamewrapper">
<label class="spelllabel">Name</label>
</div>
<div class="spellschoolwrapper">
<label class="spelllabel">School</label>
</div>
<div class="spelltypewrapper">
<label class="spelllabel">Type</label>
</div>
<div class="spellcategorywrapper">
<label class="spelllabel">Category</label>
</div>
<div class="spellrangewrapper">
<label class="spelllabel">Range</label>
</div>
<div class="spelldurationwrapper">
<label class="spelllabel">Dur</label>
</div>
<div class="spelldrainwrapper">
<label class="spelllabel magelabel">Drain</label>
<label class="spelllabel technolabel">Fade</label>
</div>
<div class="spelldescriptionwrapper">
<label class="spelllabel">Description</label>
</div>
<div class="spellbonuswrapper">
<label class="spelllabel">Bonus</label>
</div>
<div class="spellspecializationwrapper">
<label class="spelllabel">Spec</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Fast</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Full</label>
</div>
</div>
<fieldset class="repeating_rituals">
<div class="spellrow">
<div class="spellnamewrapper">
<input type="text" name="attr_spellname" title="Name of the Spell">
</div>
<div class="spellschoolwrapper">
<select name="attr_spellschool">
<option value="@{skilldicepool68}">Spell</option>
<option value="@{skilldicepool58}">Preparation</option>
<option value="@{skilldicepool67}">Ritual</option>
<option value="@{skilldicepool42}">Complex Form</option>
</select>
</div>
<input type="text" name="attr_spellschool_name" value="@{skillname68}" class="hiddentextfield">
<div class="spelltypewrapper">
<input type="text" name="attr_spelltype" title="(optional) e.g. M/P">
</div>
<div class="spellcategorywrapper">
<input type="text" name="attr_spellcategory" title="(optional) e.g. Combat/Health/...">
</div>
<div class="spellrangewrapper">
<input type="text" name="attr_spellrange" title="(optional) e.g. LOS">
</div>
<div class="spelldurationwrapper">
<input type="text" name="attr_spellduration" title="(optional) e.g. I/S/P">
</div>
<div class="spelldrainwrapper">
<input type="text" name="attr_spelldrain" title="do not enter any letters
only the modifier like '-1'
a zeros and positive numbers also need a sign like '+0'
For Rituals enter '*2' to display the amount of Dice to be rolled seperatly">
</div>
<div class="spelldescriptionwrapper">
<input type="text" name="attr_spelldescription" title="To make life easy on your gm
make sure to enter what the spell is resisted with">
</div>
<div class="spellbonuswrapper">
<input type="text" name="attr_spellbonus" value="0" title="Bonus applying only to this Test">
</div>
<div class="spellspecializedwrapper">
<input type="checkbox" class="hiddencheckbox spellspecialized" name="attr_spellspecialized" value="2" title="Apply +2 from specialization to casting this Spell">
<div class="checkboxticker spellspecializedunticked"></div>
<div class="checkboxticker spellspecializedticked">X</div>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmageeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[?{Force|6}]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnoeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmagefull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{limit_mod=[[?{Raise Limit by|0}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Force|6}+?{Raise Limit by|0})]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}+?{Increase Drain|0}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus}+?{Drain Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnofull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
</div>
</fieldset>
<br>
<h2>Alchemy</h2>
<div class="spelllabels">
<div class="spellnamewrapper">
<label class="spelllabel">Name</label>
</div>
<div class="spellschoolwrapper">
<label class="spelllabel">School</label>
</div>
<div class="spelltypewrapper">
<label class="spelllabel">Type</label>
</div>
<div class="spellcategorywrapper">
<label class="spelllabel">Category</label>
</div>
<div class="spellrangewrapper">
<label class="spelllabel">Range</label>
</div>
<div class="spelldurationwrapper">
<label class="spelllabel">Dur</label>
</div>
<div class="spelldrainwrapper">
<label class="spelllabel magelabel">Drain</label>
<label class="spelllabel technolabel">Fade</label>
</div>
<div class="spelldescriptionwrapper">
<label class="spelllabel">Description</label>
</div>
<div class="spellbonuswrapper">
<label class="spelllabel">Bonus</label>
</div>
<div class="spellspecializationwrapper">
<label class="spelllabel">Spec</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Fast</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Full</label>
</div>
</div>
<fieldset class="repeating_alchemy">
<div class="spellrow">
<div class="spellnamewrapper">
<input type="text" name="attr_spellname" title="Name of the Spell">
</div>
<div class="spellschoolwrapper">
<select name="attr_spellschool">
<option value="@{skilldicepool68}">Spell</option>
<option value="@{skilldicepool58}">Preparation</option>
<option value="@{skilldicepool67}">Ritual</option>
<option value="@{skilldicepool42}">Complex Form</option>
</select>
</div>
<input type="text" name="attr_spellschool_name" value="@{skillname68}" class="hiddentextfield">
<div class="spelltypewrapper">
<input type="text" name="attr_spelltype" title="(optional) e.g. M/P">
</div>
<div class="spellcategorywrapper">
<input type="text" name="attr_spellcategory" title="(optional) e.g. Combat/Health/...">
</div>
<div class="spellrangewrapper">
<input type="text" name="attr_spellrange" title="(optional) e.g. LOS">
</div>
<div class="spelldurationwrapper">
<input type="text" name="attr_spellduration" title="(optional) e.g. I/S/P">
</div>
<div class="spelldrainwrapper">
<input type="text" name="attr_spelldrain" title="do not enter any letters
only the modifier like '-1'
a zeros and positive numbers also need a sign like '+0'
For Rituals enter '*2' to display the amount of Dice to be rolled seperatly">
</div>
<div class="spelldescriptionwrapper">
<input type="text" name="attr_spelldescription" title="To make life easy on your gm
make sure to enter what the spell is resisted with">
</div>
<div class="spellbonuswrapper">
<input type="text" name="attr_spellbonus" value="0" title="Bonus applying only to this Test">
</div>
<div class="spellspecializedwrapper">
<input type="checkbox" class="hiddencheckbox spellspecialized" name="attr_spellspecialized" value="2" title="Apply +2 from specialization to casting this Spell">
<div class="checkboxticker spellspecializedunticked"></div>
<div class="checkboxticker spellspecializedticked">X</div>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmageeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[?{Force|6}]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnoeasy" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
<div class="spellbuttonwrapper">
<button type="roll" class="spellrollmage" name="roll_spellrollmagefull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Force ?{Force|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{mag_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=Drain Attribute}}{{val3_num=[[@{drainattribute}]]}}{{val4=@{wil_name}}}{{val4_num=[[@{wil_total}]]}}{{val5=Drain Bonus}}{{val5_num=[[@{drainbonus}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Force}}{{limit_num=[[?{Force|6}]]}}{{limit_mod=[[?{Raise Limit by|0}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Force|6}+?{Raise Limit by|0})]]]]}}{{drain=Drain}}{{drain_num=[[?{Force|6}@{spelldrain}+?{Increase Drain|0}]]}}{{after2=Drain Resist}}{{after2_num=[[(@{wil_total}+@{drainattribute}+@{drainbonus}+?{Drain Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
<button type="roll" class="spellrolltechno" name="roll_spellrolltechnofull" value="@{gmroll}&{template:shadowrun}{{name=@{character_name}}}{{roll_name=for @{spellname} - Level ?{Level|6}}}{{subheader=@{spellcategory} - @{spelltype} - @{spellrange} - @{spellduration}}}{{val1=@{res_name}}}{{val1_num=[[@{mag_total}]]}}{{val2=@{spellschool_name}}}{{val2_num=[[@{spellschool}+@{spellspecialized}+@{spellbonus}-(@{mag_total})]]}}{{val3=@{wil_name}}}{{val3_num=[[@{wil_total}]]}}{{mod_num=[[?{Situational Modifiers|0}]]}}{{edge=@{edgeroll}}}{{edge_num=[[@{edg_total}]]}}{{wounds_num=[[@{wound_total}]]}}{{sustainedspells=[[@{sustainedspells}*2]]}}{{limit=Level}}{{limit_num=[[?{Level|6}]]}}{{result=[[(@{spellschool}+@{spellspecialized}+@{spellbonus}-[[@{wound_total}]]-[[@{sustainedspells}*2]]+?{Situational Modifiers|0}+[[@{edgn}*@{edg_total}]])@{standardroll}@{edgeroll}kh[[(?{Level|6})]]]]}}{{drain=Fade}}{{drain_num=[[?{Level|6}@{spelldrain}]]}}{{after2=Fade Resist}}{{after2_num=[[(@{wil_total}+@{res_total}+@{drainbonus}+?{Fade Resist Bonus|0})@{standardroll}]]}}{{description=@{spelldescription}}}"></button>
</div>
</div>
</fieldset>
<br>
<h2>Powers</h2>
<div class="spelllabels">
<div class="spellnamewrapper">
<label class="spelllabel">Name</label>
</div>
<div class="spellschoolwrapper">
<label class="spelllabel">School</label>
</div>
<div class="spelltypewrapper">
<label class="spelllabel">Type</label>
</div>
<div class="spellcategorywrapper">
<label class="spelllabel">Category</label>
</div>
<div class="spellrangewrapper">
<label class="spelllabel">Range</label>
</div>
<div class="spelldurationwrapper">
<label class="spelllabel">Dur</label>
</div>
<div class="spelldrainwrapper">
<label class="spelllabel magelabel">Drain</label>
<label class="spelllabel technolabel">Fade</label>
</div>
<div class="spelldescriptionwrapper">
<label class="spelllabel">Description</label>
</div>
<div class="spellbonuswrapper">
<label class="spelllabel">Bonus</label>
</div>
<div class="spellspecializationwrapper">
<label class="spelllabel">Spec</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Fast</label>
</div>
<div class="spellrollwrapper">
<label class="spelllabel">Full</label>
</div>
</div>
<fieldset class="repeating_critterpowers">
<div class="spellrow">
<div class="spellnamewrapper">
<input type="text" name="attr_spellname" title="Name of the Spell">
</div>
<div class="spellschoolwrapper">
<select name="attr_spellschool">
<option value="@{skilldicepool68}">Spell</option>
<option value="@{skilldicepool58}">Preparation</option>
<option value="@{skilldicepool67}">Ritual</option>
<option value="@{skilldicepool42}">Complex Form</option>
</select>
</div>
<input type="text" name="attr_spellschool_name" value="@{skillname68}" class="hiddentextfield">
<div class="spelltypewrapper">
<input type="text" name="attr_spelltype" title="(optional) e.g. M/P">
</div>
<div class="spellcategorywrapper">
<input type="text" name="attr_spellcategory" title="(optional) e.g. Combat/Health/...">
</div>
<div class="spellrangewrapper">
<input type="text" name="attr_spellrange" title="(optional) e.g. LOS">
</div>
<div class="spelldurationwrapper">
<input type="text" name="attr_spellduration" title="(optional) e.g. I/S/P">
</div>
<div class="spelldrainwrapper">
<input type="text" name="attr_spelldrain" title="do not enter any letters
only the modifier like '-1'
a zeros and positive numbers also need a sign like '+0'
For Rituals enter '*2' to display the amount of Dice to be rolled seperatly">
</div>
<div class="spelldescriptionwrapper">
@@ -9690,191 +9980,191 @@ Click again to switch to Manual and Remote">
<div class="hiddentextfield"><input type="text" name="attr_wound_total" value="{floor((@{stunwoundstaken}-@{woundadditive})/@{woundmultiplikative}),0}kh1+{floor((@{physicalwoundstaken}-@{woundadditive})/@{woundmultiplikative}),0}kh1"></div>
<div class="hiddentextfield"><input type="text" name="attr_stuntrack_max" value="(8+ceil((@{wil_total})/2))"></div>
<div class="hiddentextfield"><input type="text" name="attr_stuntrack" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_physicaltrack_max" value="(8+ceil((@{bod_total})/2))"></div>
<div class="hiddentextfield"><input type="text" name="attr_physicaltrack" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_res_total" value="@{mag_base}+@{mag_aug}"></div>
<div class="hiddentextfield"><input type="text" name="attr_bod_name" value="Body"></div>
<div class="hiddentextfield"><input type="text" name="attr_str_name" value="Strength"></div>
<div class="hiddentextfield"><input type="text" name="attr_agi_name" value="Agility"></div>
<div class="hiddentextfield"><input type="text" name="attr_rea_name" value="Reaction"></div>
<div class="hiddentextfield"><input type="text" name="attr_log_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_int_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_cha_name" value="Charisma"></div>
<div class="hiddentextfield"><input type="text" name="attr_wil_name" value="Willpower"></div>
<div class="hiddentextfield"><input type="text" name="attr_mag_name" value="Magic"></div>
<div class="hiddentextfield"><input type="text" name="attr_res_name" value="Resonance"></div>
<div class="hiddentextfield"><input type="text" name="attr_edg_name" value="Edge"></div>
<div class="hiddentextfield"><input type="text" name="attr_ess_name" value="Essence"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclehand_name" value="Handling"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclespeed_name" value="Speed"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclesens_name" value="Sensor"></div>
<div class="hiddentextfield"><input type="text" name="attr_attack_name" value="Attack"></div>
<div class="hiddentextfield"><input type="text" name="attr_sleaze_name" value="Sleaze"></div>
<div class="hiddentextfield"><input type="text" name="attr_datap_name" value="Data Processing"></div>
<div class="hiddentextfield"><input type="text" name="attr_firewall_name" value="Firewall"></div>
<div class="hiddentextfield"><input type="text" name="attr_highest_name" value="Deck Attribute"></div>
<div class="hiddentextfield"><input type="text" name="attr_highest_total" value="{@{attack_total},@{sleaze_total},@{datap_total},@{firewall_total}}kh1"></div>
<div class="hiddentextfield"><input type="text" name="attr_summoning_name" value="Summoning"></div>
<div class="hiddentextfield"><input type="text" name="attr_binding_name" value="Binding"></div>
<div class="hiddentextfield"><input type="text" name="attr_sorcery_name" value="Sorcery"></div>
<div class="hiddentextfield"><input type="text" name="attr_alchemy_name" value="Alchemy"></div>
<div class="hiddentextfield"><input type="text" name="attr_ritual_name" value="Ritual Casting"></div>
<div class="hiddentextfield"><input type="text" name="attr_compiling_name" value="Compiling"></div>
<div class="hiddentextfield"><input type="text" name="attr_registering_name" value="Registering"></div>
<div class="hiddentextfield"><input type="text" name="attr_software_name" value="Software"></div>
<div class="hiddentextfield"><input type="text" name="attr_academic_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_interest_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_language_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_professional_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_street_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_academic_total" value="@{log_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_interest_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_language_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_professional_total" value="@{log_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_street_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_name" value="Ally Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_bod" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_str" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_name" value="Spirit of Earth"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_bod" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_agi" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_rea" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_str" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_log" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_name" value="Spirit of Air"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_bod" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_agi" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_rea" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_str" value="-3"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_name" value="Spirit of Beast"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_bod" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_agi" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_name" value="Spirit of Fire"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_agi" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_rea" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_str" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_int" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_name" value="Spirit of Man"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_str" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_int" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_name" value="Spirit of Water"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_bod" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_agi" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_str" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_name" value="Guardian-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_agi" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_rea" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_name" value="Guidance-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_bod" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_agi" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_str" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_name" value="Plant-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_bod" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_agi" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_str" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_log" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_name" value="Task-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_bod" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_name" value="Courier Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_attack" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_sleaze" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_name" value="Crack Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_attack" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_sleaze" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_datap" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_name" value="Data Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_attack" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_datap" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_name" value="Fault Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_attack" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_name" value="Machine Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_attack" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_datap" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_name" value="Companion Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_attack" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_sleaze" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_datap" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_firewall" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_name" value="Generalist Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_attack" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_sleaze" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_initialisation" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_edgn" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_standardroll" value="d6cs>5>5sd"></div>
<div class="hiddentextfield"><input type="text" name="attr_prefix" value="@{"></div>
<div class="hiddentextfield"><input type="text" name="attr_wound_total" value="{floor((@{stunwoundstaken}-@{woundadditive})/@{woundmultiplikative}),0}kh1+{floor((@{physicalwoundstaken}-@{woundadditive})/@{woundmultiplikative}),0}kh1"></div>
<div class="hiddentextfield"><input type="text" name="attr_stuntrack_max" value="(8+ceil((@{wil_total})/2))"></div>
<div class="hiddentextfield"><input type="text" name="attr_stuntrack" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_physicaltrack_max" value="(8+ceil((@{bod_total})/2))"></div>
<div class="hiddentextfield"><input type="text" name="attr_physicaltrack" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_res_total" value="@{mag_base}+@{mag_aug}"></div>
<div class="hiddentextfield"><input type="text" name="attr_bod_name" value="Body"></div>
<div class="hiddentextfield"><input type="text" name="attr_str_name" value="Strength"></div>
<div class="hiddentextfield"><input type="text" name="attr_agi_name" value="Agility"></div>
<div class="hiddentextfield"><input type="text" name="attr_rea_name" value="Reaction"></div>
<div class="hiddentextfield"><input type="text" name="attr_log_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_int_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_cha_name" value="Charisma"></div>
<div class="hiddentextfield"><input type="text" name="attr_wil_name" value="Willpower"></div>
<div class="hiddentextfield"><input type="text" name="attr_mag_name" value="Magic"></div>
<div class="hiddentextfield"><input type="text" name="attr_res_name" value="Resonance"></div>
<div class="hiddentextfield"><input type="text" name="attr_edg_name" value="Edge"></div>
<div class="hiddentextfield"><input type="text" name="attr_ess_name" value="Essence"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclehand_name" value="Handling"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclespeed_name" value="Speed"></div>
<div class="hiddentextfield"><input type="text" name="attr_vehiclesens_name" value="Sensor"></div>
<div class="hiddentextfield"><input type="text" name="attr_attack_name" value="Attack"></div>
<div class="hiddentextfield"><input type="text" name="attr_sleaze_name" value="Sleaze"></div>
<div class="hiddentextfield"><input type="text" name="attr_datap_name" value="Data Processing"></div>
<div class="hiddentextfield"><input type="text" name="attr_firewall_name" value="Firewall"></div>
<div class="hiddentextfield"><input type="text" name="attr_highest_name" value="Deck Attribute"></div>
<div class="hiddentextfield"><input type="text" name="attr_highest_total" value="{@{attack_total},@{sleaze_total},@{datap_total},@{firewall_total}}kh1"></div>
<div class="hiddentextfield"><input type="text" name="attr_summoning_name" value="Summoning"></div>
<div class="hiddentextfield"><input type="text" name="attr_binding_name" value="Binding"></div>
<div class="hiddentextfield"><input type="text" name="attr_sorcery_name" value="Sorcery"></div>
<div class="hiddentextfield"><input type="text" name="attr_alchemy_name" value="Alchemy"></div>
<div class="hiddentextfield"><input type="text" name="attr_ritual_name" value="Ritual Casting"></div>
<div class="hiddentextfield"><input type="text" name="attr_compiling_name" value="Compiling"></div>
<div class="hiddentextfield"><input type="text" name="attr_registering_name" value="Registering"></div>
<div class="hiddentextfield"><input type="text" name="attr_software_name" value="Software"></div>
<div class="hiddentextfield"><input type="text" name="attr_academic_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_interest_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_language_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_professional_name" value="Logic"></div>
<div class="hiddentextfield"><input type="text" name="attr_street_name" value="Intuition"></div>
<div class="hiddentextfield"><input type="text" name="attr_academic_total" value="@{log_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_interest_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_language_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_professional_total" value="@{log_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_street_total" value="@{int_total}"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_name" value="Ally Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_bod" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_str" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_ally_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_name" value="Spirit of Earth"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_bod" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_agi" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_rea" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_str" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_log" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_earth_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_name" value="Spirit of Air"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_bod" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_agi" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_rea" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_str" value="-3"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_air_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_name" value="Spirit of Beast"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_bod" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_agi" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_beast_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_name" value="Spirit of Fire"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_agi" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_rea" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_str" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_int" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fire_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_name" value="Spirit of Man"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_str" value="-2"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_int" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_man_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_name" value="Spirit of Water"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_bod" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_agi" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_str" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_water_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_name" value="Guardian-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_bod" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_agi" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_rea" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guardian_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_name" value="Guidance-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_bod" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_agi" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_str" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_guidance_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_name" value="Plant-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_bod" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_agi" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_rea" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_str" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_log" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_plant_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_name" value="Task-Spirit"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_bod" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_agi" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_rea" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_str" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_wil" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_log" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_int" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_task_cha" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_name" value="Courier Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_attack" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_sleaze" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_courier_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_name" value="Crack Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_attack" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_sleaze" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_datap" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_crack_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_name" value="Data Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_attack" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_datap" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_data_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_name" value="Fault Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_attack" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_fault_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_name" value="Machine Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_attack" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_sleaze" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_datap" value="+3"></div>
<div class="hiddentextfield"><input type="text" name="attr_machine_firewall" value="+2"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_name" value="Companion Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_attack" value="-1"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_sleaze" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_datap" value="-0"></div>
<div class="hiddentextfield"><input type="text" name="attr_companion_firewall" value="+4"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_name" value="Generalist Sprite"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_attack" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_sleaze" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_datap" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_generalist_firewall" value="+1"></div>
<div class="hiddentextfield"><input type="text" name="attr_initialisation" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_edgn" value="0"></div>
<div class="hiddentextfield"><input type="text" name="attr_standardroll" value="d6cs>5>5sd"></div>
<div class="hiddentextfield"><input type="text" name="attr_prefix" value="@{"></div>
</div>
</div>
@@ -10689,6 +10979,21 @@ function clearSheet(attributes, experimental) {
removeRepeatingRow("repeating_spells_"+idarray[i]);
}
});
getSectionIDs("repeating_rituals", function(idarray) {
for(var i=0; i < idarray.length; i++) {
removeRepeatingRow("repeating_rituals_"+idarray[i]);
}
});
getSectionIDs("repeating_alchemy", function(idarray) {
for(var i=0; i < idarray.length; i++) {
removeRepeatingRow("repeating_alchemy_"+idarray[i]);
}
});
getSectionIDs("repeating_critterpowers", function(idarray) {
for(var i=0; i < idarray.length; i++) {
removeRepeatingRow("repeating_critterpowers_"+idarray[i]);
}
});
getSectionIDs("repeating_initiation", function(idarray) {
for(var i=0; i < idarray.length; i++) {
removeRepeatingRow("repeating_initiation_"+idarray[i]);
@@ -10783,58 +11088,63 @@ on("change:chummercheckbox", function(){
console.log("Character meta info");
if(chummerfile.characters.character.alias != null)
attributes.character_name = chummerfile.characters.character.alias;
if(chummerfile.characters.character.metatype!=null)
if(chummerfile.characters.character.metatype != null)
attributes.metatype=chummerfile.characters.character.metatype;
if(chummerfile.characters.character.sex!=null)
if(chummerfile.characters.character.sex != null)
attributes.sex=chummerfile.characters.character.sex;
if(chummerfile.characters.character.age!=null)
if(chummerfile.characters.character.age != null)
attributes.age=chummerfile.characters.character.age;
if(chummerfile.characters.character.height!=null)
if(chummerfile.characters.character.height != null)
attributes.height=chummerfile.characters.character.height;
if(chummerfile.characters.character.weight!=null)
if(chummerfile.characters.character.weight != null)
attributes.weight=chummerfile.characters.character.weight;
if(chummerfile.characters.character.playername!=null)
if(chummerfile.characters.character.playername != null)
attributes.player=chummerfile.characters.character.playername;
if(chummerfile.characters.character.description!=null)
if(chummerfile.characters.character.description != null)
attributes.description=chummerfile.characters.character.description;
if(chummerfile.characters.character.background!=null)
if(chummerfile.characters.character.background != null)
attributes.background=chummerfile.characters.character.background;
if(chummerfile.characters.character.notes!=null)
if(chummerfile.characters.character.notes != null)
attributes.notes=chummerfile.characters.character.notes;
if(chummerfile.characters.character.gamenotes!=null)
if(chummerfile.characters.character.gamenotes != null)
attributes.generalnotes=chummerfile.characters.character.gamenotes;
if(chummerfile.characters.character.karma!=null)
if(chummerfile.characters.character.karma != null)
attributes.karma=chummerfile.characters.character.karma;
if(chummerfile.characters.character.totalkarma!=null)
if(chummerfile.characters.character.totalkarma != null)
attributes.karmacareer=chummerfile.characters.character.totalkarma;
if(chummerfile.characters.character.initbonus!=null){
if(chummerfile.characters.character.initbonus != null){
attributes.initiativebonus=chummerfile.characters.character.initbonus;
attributes.astralinitiativebonus=chummerfile.characters.character.initbonus;
attributes.matrixinitiativebonus=chummerfile.characters.character.initbonus;
}
if(chummerfile.characters.character.initdice!=null)
if(chummerfile.characters.character.initdice != null)
attributes.initiativedice=chummerfile.characters.character.initdice;
if(chummerfile.characters.character.astralinitdice!=null)
if(chummerfile.characters.character.astralinitdice != null)
attributes.astralinitiativedice=chummerfile.characters.character.astralinitdice;
if(chummerfile.characters.character.cmthresholdoffset!=null)
if(chummerfile.characters.character.cmthresholdoffset != null)
attributes.woundadditive=chummerfile.characters.character.cmthresholdoffset;
if(chummerfile.characters.character.cmthreshold!=null)
if(chummerfile.characters.character.cmthreshold != null)
attributes.woundmultiplikative=chummerfile.characters.character.cmthreshold;
if(chummerfile.characters.character.cmoverflow!=null)
if(chummerfile.characters.character.cmoverflow != null)
attributes.overflowmod=chummerfile.characters.character.cmoverflow-chummerfile.characters.character.attributes[1].attribute[0].total- 1;
if(chummerfile.characters.character.physicalcm!=null)
if(chummerfile.characters.character.physicalcm != null)
attributes.physicaltrackmod=chummerfile.characters.character.physicalcm-Math.ceil(chummerfile.characters.character.attributes[1].attribute[0].total/2)- 8;
if(chummerfile.characters.character.stuncm!=null)
if(chummerfile.characters.character.stuncm != null)
attributes.stuntrackmod=chummerfile.characters.character.stuncm-Math.ceil(chummerfile.characters.character.attributes[1].attribute[7].total/2)- 8;
if(chummerfile.characters.character.totalstreetcred!=null)
if(chummerfile.characters.character.totalstreetcred != null)
attributes.streetcred=chummerfile.characters.character.totalstreetcred;
if(chummerfile.characters.character.totalnotoriety!=null)
if(chummerfile.characters.character.totalnotoriety != null)
attributes.notoriety=chummerfile.characters.character.totalnotoriety;
if(chummerfile.characters.character.totalpublicawareness!=null)
if(chummerfile.characters.character.totalpublicawareness != null)
attributes.pawareness=chummerfile.characters.character.totalpublicawareness;
if(chummerfile.characters.character.nuyen!=null)
if(chummerfile.characters.character.nuyen != null)
attributes.nuyen_total=chummerfile.characters.character.nuyen;
if(chummerfile.characters.character.magician=="True"){
if(chummerfile.characters.character.magician == "True"){
// HeroLab 'chummer' export uses drainattribute property and a list, this is a workaround for that
try{
attributes.drainattribute="@{"+chummerfile.characters.character.tradition.drainattributes.match(/[A-Z]+/g)[1].toLowerCase()+"_total}";
@@ -11800,60 +12110,18 @@ on("change:chummercheckbox", function(){
error= error + "\n" + "Error with Skills: "+ err;
}
try{
if(chummerfile.characters.character.spells!=null){
if(chummerfile.characters.character.spells != null){
console.log("Importing spells");
if(chummerfile.characters.character.spells.spell.length>1){
for(var i=0;i<chummerfile.characters.character.spells.spell.length;i++){
var newrowid=generateRowID();
attributes["repeating_spells_"+newrowid+"_spellname"]=chummerfile.characters.character.spells.spell[i].name;
attributes["repeating_spells_"+newrowid+"_spelltype"]=chummerfile.characters.character.spells.spell[i].type;
if(chummerfile.characters.character.spells.spell[i].notes!=null){
attributes["repeating_spells_"+newrowid+"_spelldescription"]=chummerfile.characters.character.spells.spell[i].notes;
}
if(chummerfile.characters.character.spells.spell[i].dv.match(/(\-|\+)\d/)!=null)
attributes["repeating_spells_"+newrowid+"_spelldrain"]=chummerfile.characters.character.spells.spell[i].dv.match(/(\-|\+)\d/)[0];
else
attributes["repeating_spells_"+newrowid+"_spelldrain"]="-0";
if(chummerfile.characters.character.spells.spell[i].category=="Rituals" || chummerfile.characters.character.spells.spell[i].category_english=="Rituals"){
attributes["repeating_spells_"+newrowid+"_spellschool"]="@{skilldicepool67}";
attributes["repeating_spells_"+newrowid+"_spelldrain"]="*2";
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell[i].dicepool-chummerfile.characters.character.skills.skill[ritual].total;
}else{
attributes["repeating_spells_"+newrowid+"_spellcategory"]=chummerfile.characters.character.spells.spell[i].category;
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell[i].dicepool-chummerfile.characters.character.skills.skill[spellcasting].total;
if(chummerfile.characters.character.spells.spell[i].alchemy=="True"){
attributes["repeating_spells_"+newrowid+"_spellschool"]="@{skilldicepool58}";
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell[i].dicepool-chummerfile.characters.character.skills.skill[alchemy].total;
}
}
attributes["repeating_spells_"+newrowid+"_spellrange"]=chummerfile.characters.character.spells.spell[i].range;
attributes["repeating_spells_"+newrowid+"_spellduration"]=chummerfile.characters.character.spells.spell[i].duration;
var spellcastingSkill = chummerfile.characters.character.skills.skill[spellcasting].total;
var ritualSkill = chummerfile.characters.character.skills.skill[ritual].total;
var alchemySkill = chummerfile.characters.character.skills.skill[alchemy].total;
if(chummerfile.characters.character.spells.spell.length > 1){
for(var i=0; i < chummerfile.characters.character.spells.spell.length; i++){
importSingleSpell(chummerfile.characters.character.spells.spell[i], attributes, spellcastingSkill, ritualSkill, alchemySkill);
}
}else{
var newrowid=generateRowID();
attributes["repeating_spells_"+newrowid+"_spellname"]=chummerfile.characters.character.spells.spell.name;
attributes["repeating_spells_"+newrowid+"_spelltype"]=chummerfile.characters.character.spells.spell.type;
if(chummerfile.characters.character.spells.spell.notes!=null){
attributes["repeating_spells_"+newrowid+"_spelldescription"]=chummerfile.characters.character.spells.spell.notes;
}
if(chummerfile.characters.character.spells.spell.dv.match(/(\-|\+)\d/)!=null)
attributes["repeating_spells_"+newrowid+"_spelldrain"]=chummerfile.characters.character.spells.spell.dv.match(/(\-|\+)\d/)[0];
else
attributes["repeating_spells_"+newrowid+"_spelldrain"]="-0";
if(chummerfile.characters.character.spells.spell.category=="Rituals" || chummerfile.characters.character.spells.spell[i].category_english=="Rituals"){
attributes["repeating_spells_"+newrowid+"_spellschool"]="@{skilldicepool67}";
attributes["repeating_spells_"+newrowid+"_spelldrain"]="*2";
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell.dicepool-chummerfile.characters.character.skills.skill[ritual].total;
}else{
attributes["repeating_spells_"+newrowid+"_spellcategory"]=chummerfile.characters.character.spells.spell.category;
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell.dicepool-chummerfile.characters.character.skills.skill[spellcasting].total;
if(chummerfile.characters.character.spells.spell.alchemy=="True"){
attributes["repeating_spells_"+newrowid+"_spellschool"]="@{skilldicepool58}";
attributes["repeating_spells_"+newrowid+"_spellbonus"]=chummerfile.characters.character.spells.spell.dicepool-chummerfile.characters.character.skills.skill[alchemy].total;
}
}
attributes["repeating_spells_"+newrowid+"_spellrange"]=chummerfile.characters.character.spells.spell.range;
attributes["repeating_spells_"+newrowid+"_spellduration"]=chummerfile.characters.character.spells.spell.duration;
importSingleSpell(chummerfile.characters.character.spells.spell, attributes, spellcastingSkill, ritualSkill, alchemySkill);
}
}
}catch(err){
@@ -11866,50 +12134,50 @@ on("change:chummercheckbox", function(){
if(chummerfile.characters.character.critterpowers.critterpower.length > 1){
for(var i=0; i < chummerfile.characters.character.critterpowers.critterpower.length; i++){
var newrowid=generateRowID();
attributes["repeating_spells_"+newrowid+"_spellname"]=chummerfile.characters.character.critterpowers.critterpower[i].fullname;
attributes["repeating_spells_"+newrowid+"_spelltype"]=chummerfile.characters.character.critterpowers.critterpower[i].type;
attributes["repeating_critterpowers_"+newrowid+"_spellname"]=chummerfile.characters.character.critterpowers.critterpower[i].fullname;
attributes["repeating_critterpowers_"+newrowid+"_spelltype"]=chummerfile.characters.character.critterpowers.critterpower[i].type;
if(chummerfile.characters.character.critterpowers.critterpower[i].notes != null){
attributes["repeating_spells_"+newrowid+"_spelldescription"] = chummerfile.characters.character.critterpowers.critterpower[i].notes;
attributes["repeating_critterpowers_"+newrowid+"_spelldescription"] = chummerfile.characters.character.critterpowers.critterpower[i].notes;
}
attributes["repeating_spells_"+newrowid+"_spelldrain"]="-0";
attributes["repeating_critterpowers_"+newrowid+"_spelldrain"]="-0";
attributes["repeating_spells_"+newrowid+"_spellcategory"] = chummerfile.characters.character.critterpowers.critterpower[i].category;
attributes["repeating_spells_"+newrowid+"_spellbonus"]=0;
attributes["repeating_critterpowers_"+newrowid+"_spellcategory"] = chummerfile.characters.character.critterpowers.critterpower[i].category;
attributes["repeating_critterpowers_"+newrowid+"_spellbonus"]=0;
if(chummerfile.characters.character.critterpowers.critterpower[i].range != null){
attributes["repeating_spells_"+newrowid+"_spellrange"]=chummerfile.characters.character.critterpowers.critterpower[i].range;
attributes["repeating_critterpowers_"+newrowid+"_spellrange"]=chummerfile.characters.character.critterpowers.critterpower[i].range;
} else {
attributes["repeating_spells_"+newrowid+"_spellrange"]="N/A";
attributes["repeating_critterpowers_"+newrowid+"_spellrange"]="N/A";
}
if(chummerfile.characters.character.critterpowers.critterpower[i].duration != null) {
attributes["repeating_spells_"+newrowid+"_spellduration"] = chummerfile.characters.character.critterpowers.critterpower[i].duration;
attributes["repeating_critterpowers_"+newrowid+"_spellduration"] = chummerfile.characters.character.critterpowers.critterpower[i].duration;
} else {
attributes["repeating_spells_"+newrowid+"_spellduration"] = "N/A";
attributes["repeating_critterpowers_"+newrowid+"_spellduration"] = "N/A";
}
}
}else{
var newrowid=generateRowID();
attributes["repeating_spells_"+newrowid+"_spellname"]=chummerfile.characters.character.critterpowers.critterpower.fullname;
attributes["repeating_spells_"+newrowid+"_spelltype"]=chummerfile.characters.character.critterpowers.critterpower.type;
attributes["repeating_critterpowers_"+newrowid+"_spellname"]=chummerfile.characters.character.critterpowers.critterpower.fullname;
attributes["repeating_critterpowers_"+newrowid+"_spelltype"]=chummerfile.characters.character.critterpowers.critterpower.type;
if(chummerfile.characters.character.critterpowers.critterpower.notes!=null){
attributes["repeating_spells_"+newrowid+"_spelldescription"]=chummerfile.characters.character.critterpowers.critterpower.notes;
attributes["repeating_critterpowers_"+newrowid+"_spelldescription"]=chummerfile.characters.character.critterpowers.critterpower.notes;
}
attributes["repeating_spells_"+newrowid+"_spelldrain"]="-0";
attributes["repeating_spells_"+newrowid+"_spellcategory"]=chummerfile.characters.character.critterpowers.critterpower.category;
attributes["repeating_spells_"+newrowid+"_spellbonus"]=0;
attributes["repeating_critterpowers_"+newrowid+"_spelldrain"]="-0";
attributes["repeating_critterpowers_"+newrowid+"_spellcategory"]=chummerfile.characters.character.critterpowers.critterpower.category;
attributes["repeating_critterpowers_"+newrowid+"_spellbonus"]=0;
if(chummerfile.characters.character.critterpowers.critterpower.range != null){
attributes["repeating_spells_"+newrowid+"_spellrange"]=chummerfile.characters.character.critterpowers.critterpower.range;
attributes["repeating_critterpowers_"+newrowid+"_spellrange"]=chummerfile.characters.character.critterpowers.critterpower.range;
} else {
attributes["repeating_spells_"+newrowid+"_spellrange"]="N/A";
attributes["repeating_critterpowers_"+newrowid+"_spellrange"]="N/A";
}
if(chummerfile.characters.character.critterpowers.critterpower.duration != null) {
attributes["repeating_spells_"+newrowid+"_spellduration"]=chummerfile.characters.character.critterpowers.critterpower.duration;
attributes["repeating_critterpowers_"+newrowid+"_spellduration"]=chummerfile.characters.character.critterpowers.critterpower.duration;
} else {
attributes["repeating_spells_"+newrowid+"_spellduration"]="N/A";
attributes["repeating_critterpowers_"+newrowid+"_spellduration"]="N/A";
}
}
}
@@ -12048,6 +12316,47 @@ function importSingleArmor(armor, attributes) {
}
}
function importSingleSpell(spell, attributes, spellcasting, ritual, alchemy) {
var category = "spells";
if(spell.category_english == "Rituals") {
category = "rituals"
}
if(spell.alchemy == "True"){
category = "alchemy"
}
var row = "repeating_" + category + "_" + generateRowID();
attributes[row + "_spellname"] = spell.name;
attributes[row + "_spelltype"] = spell.type;
attributes[row + "_spellcategory"] = spell.category;
if(spell.notes != null){
attributes[row + "_spelldescription"] = spell.notes;
}
if(spell.dv.match(/(\-|\+)\d/) != null) {
attributes[row + "_spelldrain"] = spell.dv.match(/(\-|\+)\d/)[0];
}
else {
attributes[row + "_spelldrain"] = "-0";
}
if(spell.category_english == "Rituals"){
attributes[row + "_spellschool"] = "@{skilldicepool67}";
attributes[row + "_spelldrain"] = "*2";
attributes[row + "_spellbonus"] = spell.dicepool - ritual;
} else {
attributes[row + "_spellbonus"] = spell.dicepool - spellcasting;
if(spell.alchemy == "True"){
attributes[row + "_spellschool"] = "@{skilldicepool58}";
attributes[row + "_spellbonus"] = spell.dicepool - alchemy;
}
}
attributes[row + "_spellrange"] = spell.range;
attributes[row + "_spellduration"] = spell.duration;
}
on("change:wil_base change:wil_aug", function() {
getAttrs(["wil_base", "wil_aug"], function(value){
var wil = parseInt(value.wil_base) + parseInt(value.wil_aug);
+40
View File
@@ -0,0 +1,40 @@
function importSingleSpell(spell, attributes, spellcasting, ritual, alchemy) {
var category = "spells";
if(spell.category_english == "Rituals") {
category = "rituals"
}
if(spell.alchemy == "True"){
category = "alchemy"
}
var row = "repeating_" + category + "_" + generateRowID();
attributes[row + "_spellname"] = spell.name;
attributes[row + "_spelltype"] = spell.type;
attributes[row + "_spellcategory"] = spell.category;
if(spell.notes != null){
attributes[row + "_spelldescription"] = spell.notes;
}
if(spell.dv.match(/(\-|\+)\d/) != null) {
attributes[row + "_spelldrain"] = spell.dv.match(/(\-|\+)\d/)[0];
}
else {
attributes[row + "_spelldrain"] = "-0";
}
if(spell.category_english == "Rituals"){
attributes[row + "_spellschool"] = "@{skilldicepool67}";
attributes[row + "_spelldrain"] = "*2";
attributes[row + "_spellbonus"] = spell.dicepool - ritual;
} else {
attributes[row + "_spellbonus"] = spell.dicepool - spellcasting;
if(spell.alchemy == "True"){
attributes[row + "_spellschool"] = "@{skilldicepool58}";
attributes[row + "_spellbonus"] = spell.dicepool - alchemy;
}
}
attributes[row + "_spellrange"] = spell.range;
attributes[row + "_spellduration"] = spell.duration;
}