mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
V341
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/* ############################################### Earthdawn.css ###################################################################*/
|
||||
/*v3.4 relesed 2025 01 12*/
|
||||
/*v3.41 relesed 2025 02 02*/
|
||||
|
||||
/* ############################################ CSS Instruction ######################################################################### */
|
||||
|
||||
@@ -538,7 +538,7 @@ display:inline-block;
|
||||
.sheet-testTarget:not([value="None"])~.sheet-HideIfNotNone,
|
||||
.sheet-testTarget:not([value="PD1: @{target|Target|token_id}"])~.sheet-HideIfNotPD1,
|
||||
.sheet-testTarget:not([value="MD1: @{target|Target|token_id}"])~.sheet-HideIfNotMD1,
|
||||
.sheet-testTarget:not([value="PD1: @{target|Target|token_id}"])~.sheet-HideIfNotSD1,
|
||||
.sheet-testTarget:not([value="SD1: @{target|Target|token_id}"])~.sheet-HideIfNotSD1,
|
||||
.sheet-testTarget:not([value="Ask: ?{Target Number|0}"])~.sheet-HideIfNotAsk,
|
||||
.sheet-testTarget:not([value="Ask: PD: ?{Target Number, maybe relative to PD|0}"])~.sheet-HideIfNotAskPD,
|
||||
.sheet-testTarget:not([value="Ask: MD: ?{Target Number, maybe relative to MD|0}"])~.sheet-HideIfNotAskMD,
|
||||
@@ -1018,10 +1018,6 @@ flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*JBF@JBF useful ???*/
|
||||
.sheet-w50 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sheet-w30 {
|
||||
display: inline-block;
|
||||
@@ -2924,6 +2920,16 @@ fieldset+.repcontainer .repitem .sheet-filter-box {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*3.41 Trying a homemade rep_add*/
|
||||
.repcontrol_add{
|
||||
display:none !important;
|
||||
opacity:0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*Hides the garbage bin and reordering controls if the repeatingsection is in not Edit Mode*/
|
||||
.ui-dialog .charsheet .sheet-testRepEditMode:not(:checked)~.repcontainer.editmode .repitem .itemcontrol
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<!--
|
||||
v3.4 relesed 2025 01 12
|
||||
v3.41 25 02 02
|
||||
|
||||
Character Sheet For Earthdawn Developped by JBF (Discord/Facebook Jiboux Faure) v2.
|
||||
Largerly using material from the work on the Official FASA version of Chris Dickey
|
||||
@@ -736,6 +736,14 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<label class="sheet-iconlabel2" title="@{condition-Surprised} No Actions. -3 Penalty to all Defenses. (PG p.390)">
|
||||
<input type="checkbox" name="attr_condition-Surprised" value="1" class="sheet-iconcheckbox"> <span class="sheet-iconlabel-header sheet-icon-surprised"></span>
|
||||
</label>
|
||||
<!--v3.41-->
|
||||
<label class="sheet-iconlabel2" title="@{attr_condition-Darkness} Partial Darkness -2 Penalty to all sight based tests due to Darkness, Blindness or Dazzling. (PG p.387). Penalty will be applied to all Action tests except those declared Notvisionbased in their keyword list.">
|
||||
<input type="checkbox" name="attr_condition-Darkness" value="2" class="sheet-iconcheckbox"> <span class="sheet-iconlabel-header sheet-icon-vision"></span>
|
||||
</label>
|
||||
<label class="sheet-iconlabel2" title="@{attr_condition-Darkness} Full Darkness : -4 Penalty to all sight based tests due to Darkness, Blindness or Dazzling. (PG p.387). Penalty will be applied to all Action tests except those declared Notvisionbased in their keyword list.">
|
||||
<input type="checkbox" name="attr_condition-Darkness" value="4" class="sheet-iconcheckbox"> <span class="sheet-iconlabel-header sheet-icon-vision4"></span>
|
||||
</label>
|
||||
|
||||
<!-- <label class="sheet-iconlabel2" title="@{condition-NoShield} Am not using shield at present. Forgo benefits and IP.">
|
||||
<input type="checkbox" name="attr_condition-NoShield" value="1" class="sheet-iconcheckbox"> <span class="sheet-iconlabel-header sheet-icon-noshield"></span>
|
||||
</label> -->
|
||||
@@ -959,7 +967,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span> -->
|
||||
<!-- <b class="sheet-HideIfOther sheet-label">Amount :</b> -->
|
||||
<span class="sheet-nowrap0 sheet-label" title="@{repeating_transaction_TR_record-amount-LP}: Amount of Legend Points in this transaction.">LP:
|
||||
<input name="attr_TR_record-amount-LP" type="number" value="0" class="sheet-numLong" >
|
||||
<input name="attr_TR_record-amount-LP" type="number" value="0" class="sheet-selShort" >
|
||||
</span>
|
||||
|
||||
<span class="sheet-nowrap0 sheet-HideIfNot1879" title="@{repeating_transaction_TR_record-amount-GP}: Amount of Gold Pieces in this transaction. (Pounds in 1879)">
|
||||
@@ -3262,7 +3270,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
<fieldset class="repeating_masks">
|
||||
<div class="sheet-nowrap">
|
||||
<!-- <input name="attr_MSK_RowID" type="hidden" class="sheet-testRowID" value=""><span></span> -->
|
||||
<input name="attr_MSK_RowID" type="hidden" class="sheet-testRowID" value=""><span></span>
|
||||
<input name="attr_MSK_Name" type="text" class="sheet-hidden sheet-testPlaceholder" placeholder="Name">
|
||||
<textarea name="attr_MSK_textImport" placeholder="text import" class="sheet-textimport sheet-hideIfNotPlaceholder" title="Into this little text box, Copy and Paste whatever huge block of text describes the mask in a format identical to that used in the FASA 4th edition books, and this will attempt to parse it and import. Important Note! Only paste in the part that directly describes the part of the mask being applied. For example, if you are applying the 'CADAVEROUS' Mask at the 'Moderate' level, then you would copy / past starting with 'Moderate (+1 Circle)' and ending just before the line that says 'Major (+2 Circles)'."></textarea>
|
||||
<input type="text" readonly name="attr_MSK_Name" class="sheet-txtShort sheet-bordered-bottom sheet-text-left sheet-hideIfPlaceholder" placeholder="Name" title="@{repeating_masks_X_MSK_Name}: Lists the Masks applied to the character. Import to add, but you can delete here.">
|
||||
@@ -3272,6 +3280,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-masks" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
@@ -3627,6 +3637,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-discipline" type="action">+Add</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -4212,7 +4223,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<div class="sheet-HideIfCloseChecked"> <!--Filter on Talent Name-->
|
||||
|
||||
|
||||
<span class="sheet-hidden"><input name="attr_T_Target-TA" type="text"><input name="attr_T_ModPrefix" type="hidden" value="?"> </span>
|
||||
<span class="sheet-hidden"><input name="attr_T_Target-TA" type="hidden" value="None"><input name="attr_T_ModPrefix" type="hidden" value="?"> </span>
|
||||
<input name="attr_T_Name" placeholder="Name" class="sheet-talentType2 sheet-hidden" >
|
||||
<input name="attr_T_TypeOther" type="hidden" value="" class="sheet-talentType" >
|
||||
<input name="attr_T_Type" type="hidden" value="D1-Novice" class="sheet-talentType" >
|
||||
@@ -4867,9 +4878,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
|
||||
<input class="sheet-testChecked sheet-hidden" name="attr_T_ActnEfct" type="checkbox" checked value="1">
|
||||
<span class="sheet-HideIfNotChecked sheet-label">Defensive :
|
||||
<!-- <label title="@{repeating_talents_X_T_Defensive} If checked, then this action is an Active Defense and the -3 penalty from Defensive Stance will not apply on Tests .">
|
||||
<input type="checkbox" name="attr_T_Defensive" value="1" class="sheet-iconcheckbox"> <span class="sheet-iconlabel sheet-icon-defensive-exc"></span>
|
||||
</label> -->
|
||||
|
||||
<span class="sheet-iconselect-span">
|
||||
<span class="sheet-iconselect-icon">
|
||||
|
||||
@@ -4883,7 +4892,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input class="sheet-hidden sheet-testCloseChecked" type="checkbox" name="attr_T_Defensive" value="7"> <span class="sheet-HideIfNotCloseChecked sheet-w75px" title="@{repeating_talents_X_T_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- Ability that only provides a bonus to PD and/or MD (e.g Acrobatic Defense but Not Anticipate Blow): No Penalty from Defensive Stance. No Penalty from Aggressive Attack"><span class="sheet-iconstatic sheet-icon-defensive-exc"></span></span>
|
||||
</span>
|
||||
|
||||
<select name="attr_T_Defensive" class="sheet-w75px sheet-iconselect-select">
|
||||
<select name="attr_T_Defensive" class="sheet-w75px sheet-iconselect-select" title="@{repeating_talents_X_T_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance">
|
||||
<option value="0" selected title="@{repeating_talents_X_T_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance --Not Defensive Talent">Not Defensive</option>
|
||||
<option value="1" title="@{repeating_talents_X_T_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- PD Active Defense (e.g. Avoid Blow or Trick Riding) - Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">PD Active Defense</option>
|
||||
<option value="2" title="@{repeating_talents_X_T_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- MD Active Defenses (e.g Steel Thought): Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">MD Active Defense</option>
|
||||
@@ -5140,9 +5149,9 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
<span class="sheet-label sheet-nowrap">
|
||||
Interval:
|
||||
<input name="attr_T_Interval_Nb" class="sheet-selShort sheet-LockIfNotEditMode" type="text" value="4" title="@{repeating_talents_X_T_Interval_Nb} Nb of Intervals of the Poison/Disease, i.e. maximum number of times the character exposed has to repeat the resistance test ">
|
||||
<input name="attr_T_Interval-Nb" class="sheet-selShort sheet-LockIfNotEditMode" type="text" value="4" title="@{repeating_talents_X_T_Interval-Nb} Nb of Intervals of the Poison/Disease, i.e. maximum number of times the character exposed has to repeat the resistance test ">
|
||||
/
|
||||
<input name="attr_T_Interval_Dur" class="sheet-selShort sheet-LockIfNotEditMode" type="text" value="1 round" title="@{repeating_talents_X_T_Interval_Dur} Duration of Intervals of the Poison/Disease, i.e. Duration between 2 consecutive resistance tests ">
|
||||
<input name="attr_T_Interval-Dur" class="sheet-selShort sheet-LockIfNotEditMode" type="text" value="1 round" title="@{repeating_talents_X_T_Interval-Dur} Duration of Intervals of the Poison/Disease, i.e. Duration between 2 consecutive resistance tests ">
|
||||
</span>
|
||||
<span class="sheet-label sheet-nowrap">
|
||||
Duration:
|
||||
@@ -5184,6 +5193,9 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<option value="Durability 5" title="This is the Durability 5 Devotion that adds 5 to Unconsciouness and Death Rating.">Durability 5</option>
|
||||
<option value="Resist Pain" title="This is the Resist Pain Talent or Skill.">Resist Pain</option>
|
||||
<option value="Enchanting" title="This is an enchanting ability like Alchemy or an enchanting Knack.">Enchanting</option>
|
||||
<option value="MoveBased" title="This ability relies on movement and therefore is penalized by the Movement Impaired Condition.">Move Based</option>
|
||||
<option value="NotVisionBased" title="This ability doesn't rely on sight. All Action tests will be penalized by the Darkness condition except those with this keyword.">Not Vision Based</option>
|
||||
|
||||
<option disabled>-- Spellcasting --</option>
|
||||
<option value="SPL-Spellcasting" title="This is a Spellcasting Talent, i.e. SpellCasting or Concise Casting.">Spellcasting</option>
|
||||
<option value="SPL-Patterncraft" title="This is the Patterncraft Talent.">Patterncraft</option>
|
||||
@@ -5217,6 +5229,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div> <!-- end filterbox2 -->
|
||||
</div> <!--end of TalentName FilterBox-->
|
||||
</fieldset>
|
||||
<!--3.41 test for button-->
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-talents" type="action">+Add</button>
|
||||
</div> <!-- end of section content -->
|
||||
|
||||
<!--Suggested Powers-->
|
||||
@@ -5391,7 +5405,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<fieldset class="repeating_knacks">
|
||||
<input type="checkbox" name="attr_NAC_TalentNameFilter" value="1" class="sheet-testCloseChecked sheet-hidden">
|
||||
<div class="sheet-HideIfCloseChecked"> <!--Filter on Knack Name-->
|
||||
<span class="sheet-hidden"> <input name="attr_NAC_Target-TA" type="text"> <input name="attr_NAC_ModPrefix" type="hidden" value="?"></span>
|
||||
<span class="sheet-hidden"> <input name="attr_NAC_Target-TA" type="hidden" value="None"> <input name="attr_NAC_ModPrefix" type="hidden" value="?"></span>
|
||||
<input name="attr_NAC_CombatSlot" type="checkbox" value="1" class="sheet-hidden sheet-combattab">
|
||||
|
||||
<!--Here Begins the Objects that are actually displayed-->
|
||||
@@ -5697,6 +5711,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<option value="Special" title="This Knack is available due to some special reason.">Special</option>
|
||||
</select>
|
||||
</span>
|
||||
<input name="attr_NAC_Type">
|
||||
|
||||
<!--Knacks Fieldset- 210106 Action-->
|
||||
<span class="sheet-fixed-width sheet-w30px sheet-text-center sheet-iconselect-span sheet-titlespan sheet-HideIfOverviewNoEdit sheet-hideIfPlaceholder sheet-ShowIfPrint" title="{repeating_knacks_X_NAC_Action Type of action - 3/4 black for Standard - 1/4 black for Simple - white for Free - Clock for Sustained">
|
||||
@@ -5936,7 +5951,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input class="sheet-hidden sheet-testCloseChecked" type="checkbox" name="attr_NAC_Defensive" value="7"> <span class="sheet-HideIfNotCloseChecked sheet-w75px" title="@{repeating_knacks_X_NAC_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- Ability that only provides a bonus to PD and/or MD (e.g Acrobatic Defense but Not Anticipate Blow): No Penalty from Defensive Stance. No Penalty from Aggressive Attack"><span class="sheet-iconstatic sheet-icon-defensive-exc"></span></span>
|
||||
</span>
|
||||
|
||||
<select name="attr_NAC_Defensive" class="sheet-w75px sheet-iconselect-select">
|
||||
<select name="attr_NAC_Defensive" class="sheet-w75px sheet-iconselect-select" title="@{repeating_knacks_X_NAC_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance">
|
||||
<option value="0" selected title="@{repeating_knacks_X_NAC_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance --Not Defensive Talent">Not Defensive</option>
|
||||
<option value="1" title="@{repeating_knacks_X_NAC_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- PD Active Defense (e.g. Avoid Blow or Trick Riding) - Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">PD Active Defense</option>
|
||||
<option value="2" title="@{repeating_knacks_X_NAC_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- MD Active Defenses (e.g Steel Thought): Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">MD Active Defense</option>
|
||||
@@ -6213,6 +6228,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<option value="Recovery-WoodSkin" title="This is the Wood Skin Talent or Vine Armor, or anything based on it, that consumes a Recovery test and allows for temporary increase of the Health Ratings (recorded as negative damage)">Wood Skin</option>
|
||||
<option value="Knockdown" title="This is a Knockdown replacement Talent such as Wound Balance.">Knockdown</option>
|
||||
<option value="Enchanting" title="This is an enchanting ability like Alchemy or an enchanting Knack.">Enchanting</option>
|
||||
<option value="MoveBased" title="This ability relies on movement and therefore is penalized by the Movement Impaired Condition.">Move Based</option>
|
||||
<option value="NotVisionBased" title="This ability doesn't rely on sight. All Action tests will be penalized by the Darkness condition except those with this keyword.">Not Vision Based</option>
|
||||
<option disabled>-- Spellcasting --</option>
|
||||
<option value="SPL-Spellcasting" title="This is a Spellcasting Talent, i.e. SpellCasting or Concise Casting.">Spellcasting</option>
|
||||
<option value="SPL-Patterncraft" title="This is the Patterncraft Talent.">Patterncraft</option>
|
||||
@@ -6241,6 +6258,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-knacks" type="action">+Add</button>
|
||||
|
||||
</div> <!-- end of Knacks content -->
|
||||
</div> <!--****************************************** End of Section Knacks ****************************************-->
|
||||
|
||||
@@ -6698,7 +6717,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<div class="sheet-HideIfCloseChecked"> <!--Filter on Talent Name-->
|
||||
|
||||
<input name="attr_SK_Strain_max" type="hidden" value="0">
|
||||
<span class="sheet-hidden"><input name="attr_SK_RowID" type="text"> <input name="attr_SK_Target-TA" type="text"> <input name="attr_SK_ModPrefix" type="hidden" value="?"></span>
|
||||
<span class="sheet-hidden"><input name="attr_SK_RowID" type="text"> <input name="attr_SK_Target-TA" type="hidden" value="None"> <input name="attr_SK_ModPrefix" type="hidden" value="?"></span>
|
||||
<input name="attr_SK_CombatSlot" type="checkbox" value="1" class="sheet-hidden sheet-combattab" >
|
||||
|
||||
<!--Here Begins the Objects that are actually displayed-->
|
||||
@@ -7255,7 +7274,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input class="sheet-hidden sheet-testCloseChecked" type="checkbox" name="attr_SK_Defensive" value="7"> <span class="sheet-HideIfNotCloseChecked sheet-w75px" title="@{repeating_skills_X_SK_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- Ability that only provides a bonus to PD and/or MD (e.g Acrobatic Defense but Not Anticipate Blow): No Penalty from Defensive Stance. No Penalty from Aggressive Attack"><span class="sheet-iconstatic sheet-icon-defensive-exc"></span></span>
|
||||
</span>
|
||||
|
||||
<select name="attr_SK_Defensive" class="sheet-w75px sheet-iconselect-select">
|
||||
<select name="attr_SK_Defensive" class="sheet-w75px sheet-iconselect-select" title="@{repeating_skills_X_SK_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance">
|
||||
<option value="0" selected title="@{repeating_skills_X_SK_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance --Not Defensive Talent">Not Defensive</option>
|
||||
<option value="1" title="@{repeating_skills_X_SK_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- PD Active Defense (e.g. Avoid Blow or Trick Riding) - Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">PD Active Defense</option>
|
||||
<option value="2" title="@{repeating_skills_X_SK_Defensive}: Defensive Talents get different Modifiers from Aggressive and Defensive Stance -- MD Active Defenses (e.g Steel Thought): Receive a +3 bonus for defensive stance. Receive -3 from Aggressive Attack">MD Active Defense</option>
|
||||
@@ -7478,6 +7497,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<option value="Knockdown" title="This is a Knockdown replacement Talent such as Wound Balance.">Knockdown</option>
|
||||
<option value="Resist Pain" title="This is the Resist Pain Talent or Skill.">Resist Pain</option>
|
||||
<option value="Enchanting" title="This is an enchanting ability like Alchemy or an enchanting Knack.">Enchanting</option>
|
||||
<option value="MoveBased" title="This ability relies on movement and therefore is penalized by the Movement Impaired Condition.">Move Based</option>
|
||||
<option value="NotVisionBased" title="This ability doesn't rely on sight. All Action tests will be penalized by the Darkness condition except those with this keyword.">Not Vision Based</option>
|
||||
</select>
|
||||
|
||||
<button class="sheet-button-nodice sheet-text-button" name="act_addkeyword" type="action"
|
||||
@@ -7497,6 +7518,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div> <!-- end filterbox -->
|
||||
</div> <!--end Namefilter-->
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-skills" type="action">+Add</button>
|
||||
</div> <!-- end Section Skills - Content -->
|
||||
|
||||
|
||||
@@ -7645,6 +7667,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
Read/Write : <input name="attr_SKL_ReadWrite-T" type="checkbox" value="1" >
|
||||
</span>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-skilll" type="action">+Add</button>
|
||||
|
||||
</div> <!-- end of skills languages -->
|
||||
</div> <!-- ******************************************* End of Section Skills ******************************************* -->
|
||||
|
||||
@@ -8118,6 +8142,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<!-- <span class="sheet-fixed-width sheet-w30px sheet-HideIfNotEditMode"></span> -->
|
||||
</div> <!-- end filterbox -->
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-matrix" type="action">+Add</button>
|
||||
|
||||
<!-- Matrix Fieldset - Notes-->
|
||||
<input class="sheet-testCloseChecked sheet-hidden" name="attr_Matrix-ShowNotes" value="1" type="checkbox">
|
||||
<div class="sheet-HideIfNotCloseChecked sheet-HideIfPrint">
|
||||
@@ -8174,6 +8200,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span> -->
|
||||
<input name="attr_SPP_Preset_max" type="text" class="sheet-hidden">
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-spellpreset" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -8301,7 +8329,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<b class="sheet-fixed-width sheet-selShort sheet-text-center sheet-titlespan sheet-HideIfEditMode"><span class="sheet-iconstatic sheet-icon-effect"></span></b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-w50px sheet-text-center sheet-titlespan sheet-api sheet-HideIfNotEditMode">Target</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-numShort sheet-text-center sheet-titlespan">Range</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-numShort sheet-text-center sheet-titlespan sheet-NoAPI">Duration</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-selShort sheet-text-center sheet-titlespan sheet-NoAPI">Duration</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-numShort sheet-text-center sheet-titlespan sheet-api sheet-HideIfEditMode">Duration</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-txtShort sheet-text-center sheet-titlespan sheet-api sheet-HideIfNotEditMode">Duration</b>
|
||||
<b class="sheet-heading sheet-fixed-width sheet-w25px sheet-text-center sheet-titlespan">Stn</b>
|
||||
@@ -8731,7 +8759,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input name="attr_SP_Name" type="text" class="sheet-buttonlabel sheet-txtMedLong sheet-HideIfEditMode" placeholder="Name" title="@{repeating_spell_X_SP_Name}: Name of Spell.">
|
||||
</button>
|
||||
|
||||
<input name="attr_SP_Name" list="spell_name" type="text" class="sheet-HideIfNotEditMode sheet-txtMedplus sheet-testPlaceholder sheet-bordered-bottom" placeholder="Name" title="@{repeating_spell_X_SP_Name}: Name of Spell.">
|
||||
<input name="attr_SP_Name" list="spell_name" type="text" class="sheet-HideIfNotEditMode sheet-txtMedplus sheet-bordered-bottom" placeholder="Name" title="@{repeating_spell_X_SP_Name}: Name of Spell.">
|
||||
</span>
|
||||
|
||||
<span class="sheet-fixed-width sheet-txtLong sheet-titlespan sheet-NoAPI">
|
||||
@@ -8739,8 +8767,9 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
|
||||
<input name="attr_SP_Type" type="checkbox" value="Spell" checked class="sheet-hidden sheet-testCloseChecked">
|
||||
<span class="sheet-HideIfNotCloseChecked">
|
||||
<input name="attr_SP_Name" list="spell_name" type="text" class="sheet-hidden sheet-testPlaceholder" placeholder="Name">
|
||||
|
||||
<span class="sheet-HideIfNotCloseChecked">
|
||||
<span class="sheet-hideIfNotPlaceholder" title="@{repeating_spell_X_SP_textImport}: Spell Text import: This only shows up if Name is empty.">
|
||||
<textarea name="attr_SP_textImport" placeholder="text import" class="sheet-textimport"></textarea><br>
|
||||
<label class="sheet-small">If you have a PDF copy of the book, you can copy an entire Spell description (starting with the name,
|
||||
@@ -8751,6 +8780,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
</span>
|
||||
<!--Spells Fieldset - Effect-->
|
||||
|
||||
<span class="sheet-fixed-width sheet-txtShort sheet-titlespan sheet-HideIfNotEditMode sheet-hideIfPlaceholder">
|
||||
<input name="attr_SP_WilSelect" class="sheet-testChecked sheet-hidden" checked value="None" type="checkbox">
|
||||
<select name="attr_SP_WilSelect" class="sheet-txtShort sheet-HideIfNotChecked" title="@{repeating_spell_X_SP_WilSelect}: Is the Will Effect based upon WIl, Spellcasting Rank, or spellcasting Circle.">
|
||||
@@ -8782,7 +8812,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
<!--Spells Fieldset - Target-->
|
||||
<!--JBF@JBF : Non-Api to be checked-->
|
||||
<span class=" sheet-hideIfPlaceholder sheet-iconselect-span sheet-fixed-width sheet-text-center sheet-w50px sheet-titlespan sheet-api sheet-HideIfNotEditMode" title="@{repeating_spell_X_SP_Casting} How is the Target Number arrived at? What attribute is targeted and how?">
|
||||
<span class="sheet-hideIfPlaceholder sheet-iconselect-span sheet-fixed-width sheet-text-center sheet-w50px sheet-titlespan sheet-api sheet-HideIfNotEditMode" title="@{repeating_spell_X_SP_Casting} How is the Target Number arrived at? What attribute is targeted and how?">
|
||||
<span class="sheet-iconselect-icon">
|
||||
<input class="sheet-testTarget" type="hidden" name="attr_SP_Casting" value="MD1: @{target|Target|token_id}" >
|
||||
<span class="sheet-iconstatic sheet-HideIfNotMD1 sheet-icon-MD" title="Targets Mystic Defense. There is always exactly one Target."></span>
|
||||
@@ -8823,6 +8853,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input name="attr_SP_Range" type="text" class="sheet-numShort sheet-bordered-bottom sheet-LockIfNotEditMode sheet-hidden">
|
||||
<input list="spell_range" name="attr_SP_Range" type="text" class="sheet-numShort sheet-bordered-bottom sheet-LockIfNotEditMode text-center" >
|
||||
</span>
|
||||
|
||||
<!--Spells Fieldset - Duration-->
|
||||
<span class=" sheet-hideIfPlaceholder sheet-titlespan sheet-fixed-width sheet-numShort sheet-api sheet-HideIfEditMode" title="@{repeating_spell_X_SP_Duration}: Duration of Spell. Press 'Edit' button to edit this field.">
|
||||
<input type="text" name="attr_SP_Duration" class="sheet-fixed-width sheet-numShort sheet-bordered-bottom" readonly>
|
||||
@@ -9154,7 +9185,26 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<span class="sheet-label"> Add Keyword :
|
||||
<select name="attr_SP_Special_max" class="sheet-txtLong">
|
||||
<option selected value="" selected title="No modifiers at all.">Select Keyword</option>
|
||||
<option value="Initiative" title="This is an Initiative Replacement Talent (such as Air Dance or Tiger Spring) that should have it's results sent to the turn tracker.">Initiative</option>
|
||||
<option value="Binding" title="This has currently no Effect on the sheet.">Binding</option>
|
||||
<option value="Pack" title="This has currently no Effect on the sheet.">Pack</option>
|
||||
<option value="Fate" title="This has currently no Effect on the sheet.">Fate</option>
|
||||
<option value="Spirit" title="This has currently no Effect on the sheet.">Spirit</option>
|
||||
<option value="Summoning" title="This has currently no Effect on the sheet.">Summoning</option>
|
||||
<option value="Ritual" title="This has currently no Effect on the sheet.">Ritual</option>
|
||||
<option value="Figment" title="This has currently no Effect on the sheet.">Figment</option>
|
||||
<option value="Illusion" title="This has currently no Effect on the sheet.">Illusion</option>
|
||||
<option value="Fear" title="This has currently no Effect on the sheet.">Fear</option>
|
||||
<option value="Trap" title="This has currently no Effect on the sheet.">Trap</option>
|
||||
<option value="Lock" title="This has currently no Effect on the sheet.">Lock</option>
|
||||
<option value="Air" title="This has currently no Effect on the sheet.">Air</option>
|
||||
<option value="Air-Electricity" title="This has currently no Effect on the sheet.">Air-Electricity</option>
|
||||
<option value="Earth" title="This has currently no Effect on the sheet.">Earth</option>
|
||||
<option value="Earth-Metal" title="This has currently no Effect on the sheet.">Earth-Metal</option>
|
||||
<option value="Fire" title="This has currently no Effect on the sheet.">Fire</option>
|
||||
<option value="Water" title="This has currently no Effect on the sheet.">Water</option>
|
||||
<option value="Water-Cold" title="This has currently no Effect on the sheet.">Water-Cold</option>
|
||||
<option value="Water-Acid" title="This has currently no Effect on the sheet.">Water-Acid</option>
|
||||
<option value="Wood" title="This has currently no Effect on the sheet.">Wood</option>
|
||||
</select>
|
||||
|
||||
<button class="sheet-button-nodice sheet-text-button" name="act_addkeyword" type="action"
|
||||
@@ -9174,6 +9224,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div> <!-- End Filtered box -->
|
||||
</div> <!--End SpellNameFilter-->
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-spell" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
</div> <!-- end matrix counter -->
|
||||
|
||||
@@ -9435,6 +9487,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<span class="sheet-fixed-width sheet-w25px"></span> <!--Spacer Span, just for alignment-->
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div> <!-- end combat weapons and attacks content -->
|
||||
</div> <!-- End of Section Combat***Other Sections are also labelled section-combat to display in the overview -->
|
||||
|
||||
@@ -9912,12 +9965,13 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<b class="sheet-label"> Personality traits :</b>
|
||||
</div>
|
||||
<fieldset class="repeating_personality">
|
||||
<!-- <input name="attr_PER_RowID" type="hidden" class="sheet-testRowID" value=""><span></span> -->
|
||||
<input name="attr_PER_RowID" type="hidden" class="sheet-testRowID" value=""><span></span>
|
||||
<span class="sheet-nowrap">
|
||||
<input list="personality_traits" type="text" name="attr_PER_personality" class="sheet-txtShort sheet-bordered-bottom text-left" title="@{repeating_personality_X_PER_traits}: Flesh Out your character by chosing (or definind your own) one or several personality traits to play upon. Consult ED4 PG p.74. Traits can be Hidden and Surface Traits. GM may award additional LP if you roleplay your traits.">
|
||||
</span>
|
||||
</fieldset>
|
||||
</div>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-personality" type="action" style="margin-top:-25px;">+Add</button>
|
||||
|
||||
<!--Notes - NPC Attitude-->
|
||||
<div class="sheet-HideIfPC">
|
||||
@@ -10107,7 +10161,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<span class="sheet-nowrap1" title="@{LP-Total}: Accumulated sum of all Legend Points ever earned."> <b class="sheet-label">Career LP :</b>
|
||||
<input name="attr_LP-Total" value="0" class="sheet-selLong" type="number">
|
||||
</span>
|
||||
<input type="checkbox" name="attr_T_LP_ShowNotes" value="1" class="sheet-hidden sheet-testCloseChecked">
|
||||
<input type="checkbox" name="attr_LP_ShowNotes" value="1" class="sheet-hidden sheet-testCloseChecked">
|
||||
<span class="sheet-HideIfNotCloseChecked">
|
||||
<span class="sheet-nowrap1" title="@{LP-CreationOffset}: Free Legend Points for Creation, i.e. corresponding to the 8 Talents Ranks and 13 Skill Ranks Granted at Creation. Value should range somewhere between between 3000 and 6000 LP depending on initial spread of Ranks. An advice to quickly calculate the value, if you didn't spend any LP on skills, is to take the skills LP total from the checksum below and add 1000. You can also just set the value once to have your checksum correct, and then verify that the checksum remains correct"> <b class="sheet-label">+ Creation :</b>
|
||||
<input name="attr_LP-CreationOffset" type="number" value="0" class="sheet-selShort" >
|
||||
@@ -10127,7 +10181,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<input name="attr_LP-Current-Calc" type="number" value="0" class="sheet-selShort" readonly >
|
||||
</span>
|
||||
<label title="@{LP_ShowNotes} Shows the details of the calculation of the LP-Summary-Value">
|
||||
<input type="checkbox" name="attr_T_LP_ShowNotes" value="1" class="sheet-iconcheckbox"> <span class="sheet-iconlabelsmall sheet-icon-notes"></span>
|
||||
<input type="checkbox" name="attr_LP_ShowNotes" value="1" class="sheet-iconcheckbox"> <span class="sheet-iconlabelsmall sheet-icon-notes"></span>
|
||||
</label>
|
||||
<span class="sheet-info" title="CALCULATED MODE: System automatically calculates the LP cost of all your Rank values and Attribute improvements. Record your Career Legend Points @{LP-Total}, and the system will calculate your theoritical remaining LPs in @{LP-Current-Calc}.
|
||||
Note that the @{LP-CreationOffset} corresponds to the theoritical LP costs of your character's creation process. Recent sheet version record the offset at the end of the Creation process.
|
||||
@@ -10135,7 +10189,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
Note on Multidisciplining: In order to record adequately the Effect of Multidisciplining, you must use the Other Orig Field of the Appropriate Talents.
|
||||
For Discipline Talents learned during the 1st Circle of the New Discipline should have an origin DX-MULTID-MINCY-TOTCZ, with X the New Discipline Number, Y the Minimum Circle, and Z the total number of Circles achieved throughout Disciplines at the Moment of Multidisciplining\n
|
||||
Other important Case is OPTIONX-TIER-SWITCH-RANKZ, used for Talent Options from Discipline X, learned at Tier TIER, where the Rank was Z when the Talent was switched to Discipline Talent of another Discipline.">i</span>
|
||||
<input type="checkbox" name="attr_T_LP_ShowNotes" value="1" class="sheet-hidden sheet-testCloseChecked">
|
||||
<input type="checkbox" name="attr_LP_ShowNotes" value="1" class="sheet-hidden sheet-testCloseChecked">
|
||||
<div class="sheet-HideIfNotCloseChecked">
|
||||
<div class="sheet-small">
|
||||
</div>
|
||||
@@ -10643,6 +10697,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</details>
|
||||
</div>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-armor" type="action">+Add</button>
|
||||
|
||||
<div class="sheet-hidden">
|
||||
<input name="attr_Armor-Phys" type="number" >
|
||||
@@ -11124,6 +11179,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
</details>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-weapons" type="action">+Add</button>
|
||||
|
||||
</div> <!-- end Equipment - Right Pane - Armor & Weapons -->
|
||||
|
||||
|
||||
@@ -11465,6 +11522,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
</details>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-threads" type="action">+Add</button>
|
||||
|
||||
</div> <!-- end Equipment - Right Pane - Thread Items -->
|
||||
|
||||
<!--Equipment - Right Pane - Blood Magic-->
|
||||
@@ -11540,6 +11599,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<textarea name="attr_BL_Effects" class="sheet-details sheet-LockIfNotEditMode" title="@{repeating_blood_X_BL_Effects}: Charm Effects." ></textarea>
|
||||
</details>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-blood" type="action">+Add</button>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -11602,7 +11662,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
|
||||
<span class="sheet-nowrap0 sheet-fixed-width sheet-txtShort">
|
||||
<input name="attr_ENC_Total_Cost" type="text" class="sheet-txtShort sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Total_Cost}: Total Cost of Alchemical Materials" >
|
||||
<input name="attr_ENC_Total-Cost" type="text" class="sheet-txtShort sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Total-Cost}: Total Cost of Alchemical Materials" >
|
||||
</span>
|
||||
|
||||
|
||||
@@ -11624,17 +11684,19 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</span>
|
||||
|
||||
<span class="sheet-label"> Alc. Cost:
|
||||
<input name="attr_ENC_Alchemical_Cost" value="0 sp" type="text" class="sheet-selShort sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Alchemical_Cost}: Cost of the Alchemical Materials, i.e. the generic supplies. ">
|
||||
<input name="attr_ENC_Alchemical-Cost" value="0 sp" type="text" class="sheet-selShort sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Alchemical-Cost}: Cost of the Alchemical Materials, i.e. the generic supplies. ">
|
||||
</span>
|
||||
|
||||
<span class="sheet-label"> Specific Material:
|
||||
<input name="attr_ENC_Specific_Material" value="" type="text" class="sheet-txtEvenLonger sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Specific_Material}: List of Specific Material needed for the enchantment. ">
|
||||
<input name="attr_ENC_Specific-Material" value="" type="text" class="sheet-txtEvenLonger sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Specific-Material}: List of Specific Material needed for the enchantment. ">
|
||||
</span>
|
||||
</div>
|
||||
<textarea name="attr_ENC_Note" class="sheet-details sheet-LockIfNotEditMode" title="@{repeating_enchanting_X_ENC_Note}: Notes." ></textarea>
|
||||
</div>
|
||||
</details>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-enchanting" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -11689,6 +11751,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<button type="compendium" class="sheet-HideIfCloseChecked" name="attr_MNT_buttonInfo" title="Compendium Info Button - Click to open compendium entry"></button>
|
||||
</span>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-mount" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
</div> <!-- end Equipment - Right Pane - Mounts -->
|
||||
|
||||
@@ -11920,6 +11984,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</details>
|
||||
</div>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-inventory" type="action">+Add</button>
|
||||
|
||||
<!--Equipment - Inventory - Notes-->
|
||||
<div class="sheet-headerbar sheet-HideIfPrint">Notes</div>
|
||||
<div class="sheet-content sheet-HideIfPrint">
|
||||
@@ -12482,8 +12548,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</select>
|
||||
</span>
|
||||
|
||||
<span class="sheet-table-data">
|
||||
<select class="sheet-selShort sheet-NoAPI" name="attr_Misc-DPRitual" title="@{Misc-DPRitual}: Effect of New Day on DP Points">
|
||||
<span class="sheet-table-data sheet-HideIfNotQuest">
|
||||
<select class="sheet-selShort sheet-NoAPI " name="attr_Misc-DPRitual" title="@{Misc-DPRitual}: Effect of New Day on DP Points">
|
||||
<option selected value="-1" title="Default Setting for ED4 - New Day refills 1 DP for Follower,2 for Adherent, 3 for Examplar">RAW</option>
|
||||
<option value="0" title="Homerule Setting - No DP gain on New Day">0</option>
|
||||
</select>
|
||||
@@ -12588,6 +12654,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-masks2" type="action">+Add</button>
|
||||
|
||||
|
||||
<!--Adjust - Common - Notes-->
|
||||
@@ -12714,6 +12781,8 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
</div>
|
||||
</details>
|
||||
</fieldset>
|
||||
<button class="sheet-button-nodice sheet-text-button sheet-addbutton repcontrol" name="act_addline-maneuvers" type="action">+Add</button>
|
||||
|
||||
</div>
|
||||
|
||||
<!--Adjust - Maneuvers - Misc-->
|
||||
@@ -13118,7 +13187,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<span class="sheet-fixed-width sheet-txtLong" title="@{attr_condition-Entangled-Grappled} Character is Entangled or Grappled. This condition is for information only and has no sheet effect. (PG p.391)">
|
||||
<span class="sheet-iconstatic sheet-icon-entangled"></span> : Entangled - Grappled
|
||||
</span>
|
||||
<span class="sheet-fixed-width sheet-txtLong" title="@{attr_condition-Darkness} Partial Darkness -2 Penalty to all sight based tests due to Darkness, Blindness or Dazzling. (PG p.387). This is just a token marker, no calculation on sheet">
|
||||
<span class="sheet-fixed-width sheet-txtLong" title="@{attr_condition-Darkness} Partial Darkness -2 Penalty to all sight based tests due to Darkness, Blindness or Dazzling. (PG p.387). Penalty will be applied to all Action tests except those declared Notvisionbased in their keyword list.">
|
||||
<span class="sheet-iconstatic sheet-icon-vision"></span> : Darkness
|
||||
</span>
|
||||
<span class="sheet-fixed-width sheet-txtLong" title="@{attr_condition-Harried} Harried : -2 Penalty to all tests and to Physical and Mystic defenses due to 4 or more opponents or other effect. (PG p.388)">
|
||||
@@ -13200,7 +13269,7 @@ Version of my code are prefixed JBF, usually with YYMMDD for me to remember the
|
||||
<!-- WORKERS -->
|
||||
<script type="text/worker">
|
||||
|
||||
var SheetVersion=3.40;
|
||||
var SheetVersion=3.41;
|
||||
|
||||
// This is Test code to see if worker threads are active (working). If wt-test1 changes, change wt-test2. if wt-test2 does not update, sheetworkers are not working.
|
||||
on("change:wt-test1", function ocwttest1() {
|
||||
@@ -13414,6 +13483,7 @@ var buildPre = function ( code, rowID ) {
|
||||
case "SKL": ret = "repeating_skilll_" + rowID + "_" + code + "_"; break;
|
||||
case "SPM": ret = "repeating_matrix_" + rowID + "_" + code + "_"; break;
|
||||
case "SP": ret = "repeating_spell_" + rowID + "_" + code + "_"; break;
|
||||
case "SPP": ret = "repeating_spellpreset_"+ rowID + "_" + code + "_"; break;
|
||||
case "WPN": ret = "repeating_weapons_" + rowID + "_" + code + "_"; break;
|
||||
case "MNT": ret = "repeating_mount_" + rowID + "_" + code + "_"; break;
|
||||
case "TI": ret = "repeating_threads_" + rowID + "_" + code + "_"; break;
|
||||
@@ -13423,11 +13493,11 @@ var buildPre = function ( code, rowID ) {
|
||||
case "MAN": ret = "repeating_maneuvers_" + rowID + "_" + code + "_"; break;
|
||||
case "ARM": ret = "repeating_armor_" + rowID + "_" + code + "_"; break;
|
||||
case "MSK": ret = "repeating_masks_" + rowID + "_" + code + "_"; break;
|
||||
case "PER": ret = "repeating_personality_" + rowID + "_" + code + "_"; break;
|
||||
case "MSG": ret = "repeating_message_" + rowID + "_" + code + "_"; break;
|
||||
case "TR": ret = "repeating_transaction_" + rowID + "_" + code + "_"; break;
|
||||
case "ENC": ret = "repeating_enchanting_" + rowID + "_" + code + "_"; break;
|
||||
case "NSM": ret = "repeating_knacksummary_" + rowID + "_" + code + "_"; break;
|
||||
case "PER": ret = "repeating_personality_"+ rowID + "_" + code + "_"; break;
|
||||
case "MSG": ret = "repeating_message_" + rowID + "_" + code + "_"; break;
|
||||
case "TR": ret = "repeating_transaction_" + rowID + "_" + code + "_"; break;
|
||||
case "ENC": ret = "repeating_enchanting_" + rowID + "_" + code + "_"; break;
|
||||
case "NSM": ret = "repeating_knacksummary_"+ rowID + "_" + code + "_"; break;
|
||||
|
||||
default: log("Earthdawn:buildPre() error. Unknown code: " + code + " RowID: " + rowID );
|
||||
}
|
||||
@@ -13577,7 +13647,7 @@ var ConditionHealth = function fnConditionHealth() { // If Health is anything ot
|
||||
'use strict';
|
||||
// log ( "EarthDawn : ConditionHealth()");
|
||||
logvalues( values);
|
||||
if ( values[ "condition-Health" ] != "0" && values[ "CreationMode" ] =="0") { //v3.4 added the Creation to avoid death triggering during Drop
|
||||
if ( values[ "condition-Health" ] != "0" ) {
|
||||
let vals = {};
|
||||
if( values[ "condition-Blindsided" ] != "1" )
|
||||
vals[ "condition-Blindsided" ] = "1";
|
||||
@@ -13617,7 +13687,7 @@ var UpdateAdjustGlobalModifiers = function fnUpdateAdjustGlobalModifiers(eventIn
|
||||
'use strict';
|
||||
try{
|
||||
// log ( "EarthDawn : UpdateAdjustGlobalModifiers()");
|
||||
getAttrs([ "Adjust-Effect-Tests-Auto", "effectIsAction", "Wounds",
|
||||
getAttrs([ "condition-Darkness" , "Adjust-Effect-Tests-Auto", "effectIsAction", "Wounds",
|
||||
"Creature-Fury", "Total-ResistPain", "Adjust-Effect-Tests-Misc" , "Adjust-Effect-Tests-Total", "combatOption-TailAttack", "condition-Harried",
|
||||
"combatOption-DefensiveStance", "Misc-DefStance-Penalty", "Misc-DefStance-Bonus", "condition-KnockedDown", "Adjust-All-Tests-Auto",
|
||||
"Adjust-All-Tests-Misc" , "Adjust-All-Tests-Total", "combatOption-AggressiveAttack", "Misc-AggStance-Bonus", "Misc-AggStance-Penalty", "combatOption-CalledShot", "condition-RangeLong",
|
||||
@@ -13640,6 +13710,7 @@ var UpdateAdjustGlobalModifiers = function fnUpdateAdjustGlobalModifiers(eventIn
|
||||
//Action
|
||||
|
||||
let actionauto= effectauto + (def * getInt( values, "Misc-DefStance-Penalty"))
|
||||
- getInt(values,"condition-Darkness")
|
||||
- (getInt( values, "condition-Harried") + (getInt( values, "combatOption-TailAttack") * 2)
|
||||
+ (getInt( values, "condition-KnockedDown") * 3));
|
||||
|
||||
@@ -13715,7 +13786,7 @@ var UpdateAdjustGlobalModifiers = function fnUpdateAdjustGlobalModifiers(eventIn
|
||||
log("Earthdawn:UpdateAdjustGlobalModifiers() error caught: " + err + " ei: " + JSON.stringify(eventInfo));
|
||||
}
|
||||
}; // End UpdateAdjustGlobalModifiers()
|
||||
on( "change:effectisaction change:wounds change:creature-fury change:total-resistpain change:adjust-effect-tests-misc change:combatoption-tailattack change:condition-harried change:misc-defstance-penalty change:condition-knockeddown change:adjust-all-tests-misc change:misc-aggstance-bonus change:combatoption-calledshot change:condition-rangelong change:creature-ambushing_max change:creature-ambushing change:Creature-DivingCharging_max change:creature-divingcharging change:adjust-attacks-misc change:adjust-damage-misc change:condition-cover change:condition-surprised change:condition-blindsided change:adjust-defenses-misc ", fn(UpdateAdjustGlobalModifiers) );
|
||||
on( "change:effectisaction change:wounds change:creature-fury change:total-resistpain change:adjust-effect-tests-misc change:combatoption-tailattack change:condition-harried change:misc-defstance-penalty change:condition-knockeddown change:adjust-all-tests-misc change:condition-darkness change:misc-aggstance-bonus change:combatoption-calledshot change:condition-rangelong change:creature-ambushing_max change:creature-ambushing change:Creature-DivingCharging_max change:creature-divingcharging change:adjust-attacks-misc change:adjust-damage-misc change:condition-cover change:condition-surprised change:condition-blindsided change:adjust-defenses-misc ", fn(UpdateAdjustGlobalModifiers) );
|
||||
|
||||
|
||||
|
||||
@@ -14074,10 +14145,10 @@ var repEquipped = function fnrepEquipped( eventInfo ) {
|
||||
try{
|
||||
if ( !eventInfo ) return;
|
||||
let att = getAttrib( eventInfo );
|
||||
let rem= _.isString(eventInfo) || eventInfo.triggerName.startsWith("remove") ;
|
||||
let rem= _.isString(eventInfo) || eventInfo.triggerName.startsWith("remove") ; // This is either a recalc or a removed line
|
||||
|
||||
let pre = rem ? "" : buildPre( "ARM",repeatSection(2,att) );
|
||||
let attarray=rem ? ["edition_max"] : ["edition_max",pre+"Type",pre+"Type_max",pre+"Phys",pre+"Myst",pre+"IP",pre+"Piece"];
|
||||
let attarray=rem ? ["edition_max"] : ["edition_max",pre+"Type",pre+"Type_max",pre+"Phys",pre+"Phys-Adjust", pre+"Myst",pre+"Myst-Adjust", pre+"IP",pre+"Piece"];
|
||||
getSectionIDs("repeating_armor", function(idarray) {
|
||||
for(let i=0; i < idarray.length; i++){
|
||||
attarray.push( buildPre( "ARM", idarray[ i ]) + "Type" );
|
||||
@@ -14111,6 +14182,8 @@ var repEquipped = function fnrepEquipped( eventInfo ) {
|
||||
|
||||
for(let i=0; i < idarray.length; i++){
|
||||
let pre4=buildPre( "ARM", idarray[ i ]);
|
||||
vals[pre4+"Phys-Total"]=getInt(values,pre4 + "Phys")+getInt(values,pre4 + "Phys-Adjust"); //Calculate Adjustments
|
||||
vals[pre4+"Myst-Total"]=getInt(values,pre4 + "Myst")+getInt(values,pre4 + "Myst-Adjust"); //Calculate Adjustments
|
||||
nb[getInt(values, pre4 + "Type" )+1]++; //Counts numbers
|
||||
//nb[getInt(values, pre4 + "Type" )+2]+=(getInt(values, pre4 + "Type_max" )==1 ? 1 : 0); //Counts number equipped... Reminder there could be a temporary -1 value
|
||||
if(getInt(values, pre4 + "Type_max" )==1 && (getInt(values, pre4 + "Type" )==-1 || getInt(values, pre4 + "Piece" )==0)) nb[getInt(values, pre4 + "Type" )+2]+= 1; //Counts Shields, and Full Armors
|
||||
@@ -14130,8 +14203,8 @@ var repEquipped = function fnrepEquipped( eventInfo ) {
|
||||
else if(t==1 && nb[3]>1 && getInt(values, pre4 + "Piece" )==0) vals[pre4 + "Type_max"]="0"; //We are dealing with full equipped armor that are in excess
|
||||
else if(getInt(values,buildPre( "ARM", idarray[ i ]) + "Type_max" )==1){ //The current line is equipped, and there is no "anomaly"
|
||||
n++;
|
||||
vals[pre2+"Phys"]+=getInt(values,pre4 + "Phys");
|
||||
vals[pre2+"Myst"]+=getInt(values,pre4 + "Myst");
|
||||
vals[pre2+"Phys"]+=getInt(values,pre4 + "Phys")+getInt(values,pre4 + "Phys-Adjust");
|
||||
vals[pre2+"Myst"]+=getInt(values,pre4 + "Myst")+getInt(values,pre4 + "Myst-Adjust");
|
||||
vals[pre2+"IP"]+=getInt(values,pre4 + "IP");
|
||||
}
|
||||
} else { //Dealing with the type opposite to the one that triggered the update
|
||||
@@ -14156,9 +14229,7 @@ var repEquipped = function fnrepEquipped( eventInfo ) {
|
||||
if(eq==1) //If the line that triggered it is equipped, update values
|
||||
{
|
||||
vals[pre2+"Phys"]+=getInt(values,pre+"Phys") + getInt(values,pre+"Phys-Adjust");
|
||||
vals[pre+"Phys-Total"]=getInt(values,pre+"Phys") + getInt(values,pre+"Phys-Adjust");
|
||||
vals[pre2+"Myst"]+=getInt(values,pre+"Myst") + getInt(values,pre+"Myst-Adjust");
|
||||
vals[pre+"Myst-Total"]=getInt(values,pre+"Myst") + getInt(values,pre+"Myst-Adjust");
|
||||
vals[pre2+"IP"]+=getInt(values,pre+"IP");
|
||||
}
|
||||
//Deal with shield-name just to display / hide the shield buff
|
||||
@@ -16014,8 +16085,8 @@ var repSpellName = function fnrepSpellName( eventInfo ) {
|
||||
logvalues( values);
|
||||
var circle = getInt( values, strS1);
|
||||
let vals = {};
|
||||
if( getInt( values, "API" ) == 0 ) // If the API is not already doing this correctly, then do what you can (store the lowercased variable)
|
||||
vals[ pre+"RowID"] = rowID;
|
||||
// if( getInt( values, "API" ) == 0 ) // If the API is not already doing this correctly, then do what you can (store the lowercased variable)
|
||||
// vals[ pre+"RowID"] = rowID;
|
||||
// if( getInt( values, "edition") == 0 ) { // Due to a bug in Welcome Package, sometimes the api does not run "on add character" and edition ends up being blank. If it is blank, just assign it to 4th edition and hope it is correct. Note that this is also the case if the API is not installed.
|
||||
// values[ "edition" ] = "4";
|
||||
// // vals[ "edition" ] = "4";
|
||||
@@ -16291,7 +16362,7 @@ var updateRepStep = function fnupdateRepStep( eventInfo ) {
|
||||
vals = {},
|
||||
scanrp=false,
|
||||
maxrp=0,
|
||||
getV = [ "condition-ImpairedMovement","combatOption-AggressiveAttack", "combatOption-DefensiveStance", "Misc-DefStance-Bonus", "Misc-AggStance-Penalty","Misc-DefStance-Penalty","condition-KnockedDown",
|
||||
getV = [ "condition-Darkness","condition-ImpairedMovement","combatOption-AggressiveAttack", "combatOption-DefensiveStance", "Misc-DefStance-Bonus", "Misc-AggStance-Penalty","Misc-DefStance-Penalty","condition-KnockedDown",
|
||||
"Adjust-All-Tests-Total", "Adjust-Effect-Tests-Total", "Adjust-Attacks-Total", "Adjust-Attacks-Total-CC",
|
||||
"Adjust-Damage-Total", "Adjust-Damage-Total-CC", "Initiative-Mods", "IP",
|
||||
"Dex-Step", "Dex-Mods", "Str-Step", "Str-Mods", "Tou-Step", "Tou-Mods",
|
||||
@@ -16330,9 +16401,9 @@ var updateRepStep = function fnupdateRepStep( eventInfo ) {
|
||||
}
|
||||
|
||||
// log("aggdefmod " + aggdefmod);
|
||||
|
||||
let workingMods = ( (values[ pre + "ActnEfct" ] !== "1" ) ? 0 : aggdefmod)
|
||||
- ((getInt( values, pre + "MoveBased" ) * getInt( values, "condition-ImpairedMovement" ))),
|
||||
+ ( (values[ pre + "ActnEfct" ] !== "1" ) ? 0 : kwtest( values[pre+"Special"] , "NotVisionBased","n") * getInt( values, "condition-Darkness" )) //If Not Vision Based, Ignore the Darkness Penalty
|
||||
- ( Math.max(getInt( values, pre + "MoveBased" ),kwtest( values[pre+"Special"] , "MoveBased","n") ) * getInt( values, "condition-ImpairedMovement" )), //Temporarly accept the pre+MoveBased or the keyword Movebased
|
||||
attribMods = 0,
|
||||
modType = 0,
|
||||
att = "";
|
||||
@@ -19427,6 +19498,145 @@ else if( fromSheetVersion < 3.40 ) {
|
||||
|
||||
} // End ver 3.4
|
||||
|
||||
else if( fromSheetVersion < 3.41 ) {
|
||||
toSheetVersion = 3.41;
|
||||
|
||||
var newNotes = "Earthdawn by FASA Character Sheet version: " + toSheetVersion + " by Chris Dickey and JB Faure .\n"
|
||||
// Note: Put update stuff here.
|
||||
+ "Access the WIKI by pressing the red '?' button at the top right of the character name. \n"
|
||||
+ "The Darkness condition is back! RAW applies a debuff to sight-based tests, which are not defined. In roll20, penalty will be applied to all tests except those declared Notvisionbased in their keyword list\n"
|
||||
+ "Fixed new Armor Calculation.\n"
|
||||
+ "Bug Fixes and Patches.\n "
|
||||
|
||||
|
||||
+ notes;
|
||||
// Comment this line out if not to change tab to force release notes visible.
|
||||
showNotes = (showNotes === -1) ? -1 : 1;
|
||||
|
||||
|
||||
let i,pre,newflags="";
|
||||
let getV=[];
|
||||
|
||||
getSectionIDs("repeating_talents", function gsUpdateCharacterSheetIdTalents(tarray) {
|
||||
'use strict';
|
||||
for( i = 0; i < tarray.length; i++ ) {
|
||||
pre = buildPre( "T", tarray[ i ]);
|
||||
getV = _.union( getV, [pre+"StrainAdvanced", pre+"Interval_Dur", pre+"Interval_Nb", pre+"Name", pre+"Special"]);
|
||||
}
|
||||
getSectionIDs("repeating_knacks", function gsUpdateCharacterSheetIdKnacks(nacarray) {
|
||||
'use strict';
|
||||
for( i = 0; i < nacarray.length; i++ ) {
|
||||
pre = buildPre( "NAC", nacarray[ i ]);
|
||||
getV = _.union( getV, [pre+"StrainAdvanced"]);
|
||||
}
|
||||
getSectionIDs("repeating_spell", function gsUpdateCharacterSheetIdSpells(sparray) {
|
||||
'use strict';
|
||||
for( i = 0; i < sparray.length; i++ ) {
|
||||
pre = buildPre( "SP", sparray[ i ]);
|
||||
getV = _.union( getV, [pre+"StrainAdvanced"]);
|
||||
}
|
||||
|
||||
getSectionIDs("repeating_skills", function gsUpdateCharacterSheetIdSkills(skarray) {
|
||||
'use strict';
|
||||
for( i = 0; i < skarray.length; i++ ) {
|
||||
pre = buildPre( "SK", skarray[ i ]);
|
||||
getV = _.union( getV, [pre+"StrainAdvanced"]);
|
||||
}
|
||||
|
||||
getSectionIDs("repeating_enchanting", function gsUpdateCharacterSheetIdEnc(encarray) {
|
||||
'use strict';
|
||||
for( i = 0; i < encarray.length; i++ ) {
|
||||
pre = buildPre( "ENC", encarray[ i ]);
|
||||
getV = _.union( getV, [pre+"Total_Cost",pre+"Alchemical_Cost",pre+"Specific_Material"]);
|
||||
}
|
||||
|
||||
|
||||
getAttrs( getV , function gaUpdateCharacterSheet(values) {
|
||||
'use strict';
|
||||
|
||||
|
||||
for( i = 0; i < tarray.length; i++ ) {
|
||||
pre = buildPre( "T", tarray[ i ]);
|
||||
if(values[pre+"StrainAdvanced"]=="Ask") vals[pre+"StrainAdvanced"]="Variable";
|
||||
if(values[pre+"Interval_Dur"]) {
|
||||
vals[pre+"Interval-Dur"]=values[pre+"Interval_Dur"];
|
||||
newflags=addAPIflag( newflags, "RemoveAttr", pre+"Interval_Dur" );
|
||||
}
|
||||
if(values[pre+"Interval_Nb"]) {
|
||||
vals[pre+"Interval-Nb"]=values[pre+"Interval_Nb"];
|
||||
newflags=addAPIflag( newflags, "RemoveAttr", pre+"Interval_Nb" );
|
||||
}
|
||||
let nm=safeString(values[pre+"Name"]).toLowerCase().replace(/\s/,"");
|
||||
if(["elementalism","wizardry","spellcasting","willforce","patterncraft","nethermancy","illusionism","shamanism"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("SPL-" + nm)
|
||||
if(["woodskin"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("Recovery-Woodskin")
|
||||
if(["suremount","woundbalance"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("Knockdown")
|
||||
if(["resistpain"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("ResistPain")
|
||||
if(["airdance","tigerspring","cobrastrike","tigerdance","cobratiger"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("Initiative")
|
||||
if(["fireblood","lifecheck"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("Recovery")
|
||||
if(["readandwritelanguage"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("RW Language")
|
||||
if(["speaklanguage"].includes(nm))
|
||||
vals[pre+"Special"]=kwsanitize("Speak Language")
|
||||
}
|
||||
|
||||
for( i = 0; i < nacarray.length; i++ ) {
|
||||
pre = buildPre( "NAC", nacarray[ i ]);
|
||||
if(values[pre+"StrainAdvanced"]=="Ask") vals[pre+"StrainAdvanced"]="Variable";
|
||||
}
|
||||
|
||||
for( i = 0; i < skarray.length; i++ ) {
|
||||
pre = buildPre( "SK", skarray[ i ]);
|
||||
if(values[pre+"StrainAdvanced"]=="Ask") vals[pre+"StrainAdvanced"]="Variable";
|
||||
}
|
||||
|
||||
for( i = 0; i < sparray.length; i++ ) {
|
||||
pre = buildPre( "SP", sparray[ i ]);
|
||||
if(values[pre+"StrainAdvanced"]=="Ask") vals[pre+"StrainAdvanced"]="Variable";
|
||||
}
|
||||
|
||||
for( i = 0; i < encarray.length; i++ ) {
|
||||
pre = buildPre( "ENC", encarray[ i ]);
|
||||
if(values[pre+"Total_Cost"]) {
|
||||
vals[pre+"Total-Cost"]=values[pre+"Total_Cost"];
|
||||
newflags=addAPIflag( newflags, "RemoveAttr", pre+"Total_Cost" );
|
||||
}
|
||||
if(values[pre+"Alchemical_Cost"]) {
|
||||
vals[pre+"Alchemical-Cost"]=values[pre+"Alchemical_Cost"];
|
||||
newflags=addAPIflag( newflags, "RemoveAttr", pre+"Alchemical_Cost" );
|
||||
}
|
||||
if(values[pre+"Specific_Material"]) {
|
||||
vals[pre+"Specific-Material"]=values[pre+"Specific_Material"];
|
||||
newflags=addAPIflag( newflags, "RemoveAttr", pre+"Specific_Material" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if( Object.keys(vals).length > 0 ) // If the code above just changed some values, do those before making the recursive call.
|
||||
setAttrsLog( vals, undefined , function fnUpdateCharactersheetSetAttrsLog( vals ) {
|
||||
'use strict';
|
||||
updateCharactersheet( newSheetVersion, toSheetVersion, origSheetVersion, recurse + 1, values, showNotes, newNotes, newflags); // Recursively call this routine to do any subsequent updates.
|
||||
});
|
||||
else{
|
||||
updateCharactersheet( newSheetVersion, toSheetVersion, origSheetVersion, recurse + 1, values, showNotes, newNotes, newflags); // Recursively call this routine to do any subsequent updates.
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
} // End ver 3.41
|
||||
|
||||
|
||||
else {
|
||||
|
||||
vals[ "edition_max" ] = newSheetVersion.toString();
|
||||
@@ -20794,7 +21004,7 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
try{
|
||||
let att =getAttrib(eventInfo);
|
||||
if (att==="") return;
|
||||
//log("Autofill att " +att + " for nm " + nm + " data " + JSON.stringify(data)+ " comp_data " + JSON.stringify(comp_data));
|
||||
log("Autofill att " +att + " for nm " + nm + " data " + JSON.stringify(data)+ " comp_data " + JSON.stringify(comp_data));
|
||||
//after this line, because eventInfo is either a roll20 eventInfo, or a fullname string substitute, we know for a fact that we have att in the full name format
|
||||
let code = repeatSection(3,att);
|
||||
let rowid = repeatSection(2,att);
|
||||
@@ -20866,10 +21076,19 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
|
||||
getCompendiumQuery2(cquery,comp_data, compendium_pages => {
|
||||
|
||||
//log( "Earthdawn-Autofill : Compendium Search result for " + code + ": " + tname + " \n" + JSON.stringify(compendium_pages));
|
||||
log( "Earthdawn-Autofill : Compendium Search result for " + code + ": " + tname + " \n" + JSON.stringify(compendium_pages));
|
||||
|
||||
if(compsearch && compendium_pages && compendium_pages[0] && compendium_pages[0].data && compendium_pages[0].data.Category){
|
||||
//log("Earthdawn-Autofill :Found " + compendium_pages.length + " page(s) in the compendium for"+ code + ": " + tname + " \n");
|
||||
log("Earthdawn-Autofill :Found " + compendium_pages.length + " page(s) in the compendium for"+ code + ": " + tname + " \n");
|
||||
|
||||
// Filter pages to ensure name matches tname
|
||||
let matching_pages = compendium_pages.filter(page => (safeString(page.data.name) === safeString(tname) || safeString(page.name) === safeString(tname)));
|
||||
if(matching_pages && matching_pages.length>0){
|
||||
|
||||
log("Earthdawn-Autofill :Found " + matching_pages.length + " page(s) in the compendium that match for "+ code + ": " + tname + " \n");
|
||||
log( "Earthdawn-Autofill : Compendium Matching Search result for " + code + ": " + tname + " \n" + JSON.stringify(matching_pages));
|
||||
|
||||
|
||||
let ind=0; //Index of the page we will use... Default is 0, but in some cases, we can make less randomly
|
||||
if(code=="T"){ //for talents, we will have to chose between different categories...
|
||||
let catarray;
|
||||
@@ -20880,7 +21099,7 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
else catarray=["Talents","Devotions","Skills","Horror Powers","Dragon Powers","Spirit Powers","Creature Powers"];
|
||||
|
||||
for(let i=0;i<catarray.length;i++) {//Explore the categories by order
|
||||
ind=compendium_pages.findIndex(page => safeString(page.data.Category).replace(/\s/,"%20")==safeString( catarray[i] ).replace(/\s/,"%20"));
|
||||
ind=matching_pages.findIndex(page => safeString(page.data.Category).replace(/\s/,"%20")==safeString( catarray[i] ).replace(/\s/,"%20"));
|
||||
if(ind!==-1) {
|
||||
//log("Earthdawn-Autofill : Compendium Search result for " + code + ": " + tname + " using "+ JSON.stringify(compendium_pages[ind].data));
|
||||
break; //we found it
|
||||
@@ -20892,15 +21111,14 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
ind=0;
|
||||
}
|
||||
}
|
||||
entry=compendium_pages[ind].data;
|
||||
entry=matching_pages[ind].data;
|
||||
found=true;
|
||||
source="compendium";
|
||||
vals[ pre+"buttonInfo"]= entry.Category+":" + tname;
|
||||
|
||||
entry=mergeJSON(data,entry); //merge the JSON with priority on the import
|
||||
} else {
|
||||
//log("Earthdawn-Autofill :No match in Compendium. for "+ tname + " Using local database");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!found) { //Using the local database
|
||||
@@ -21879,9 +22097,12 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
found=true;
|
||||
}
|
||||
|
||||
|
||||
if(aug && found){ //Case of the Augment, merge the data of the entry with the one of the Base Talent or Knack
|
||||
//log("Augment Merge data");
|
||||
let ind=compendium_pages.findIndex(page => (safeString(page.data.Name)==aug || safeString(page.name)==aug ));
|
||||
log("data before Augment merge " +JSON.stringify(entry));
|
||||
|
||||
let ind=compendium_pages.findIndex(page => ((safeString(page.data.Name)==aug || safeString(page.name)==aug ) &&(safeString(page.data.Category)=="Talents" || safeString(page.data.Category)=="Knacks" )) );
|
||||
if(ind==-1) {
|
||||
log("Earthdawn-Autofill tried to merge data of the Augment Knack " +tname + " with its base Talent or Knack "+aug + " but couldn't find it in compendium.")
|
||||
} else {
|
||||
@@ -21896,6 +22117,8 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
entry2.roll20_Strain=parseInt2(entry2.roll20_Strain)+parseInt2(entry.roll20_Strain);
|
||||
entry=entry2;
|
||||
}
|
||||
log("data after Augment merge " +JSON.stringify(entry));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -21932,7 +22155,7 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
let vals={};
|
||||
|
||||
|
||||
//log("Earthdawn - FillEntryData " + eventInfo+ " trigger " + trigger + " tf " + tname + " data "+ JSON.stringify(entry) );
|
||||
log("Earthdawn - FillEntryData " + eventInfo+ " trigger " + trigger + " tf " + tname + " data "+ JSON.stringify(entry) );
|
||||
|
||||
//log("Earthdawn - FillEntryData "+ " tf " + tname);// + " data "+ JSON.stringify(entry) );
|
||||
|
||||
@@ -21942,7 +22165,7 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
switch(code){
|
||||
case "T" :
|
||||
case "SK":
|
||||
fields=["SuccessText","DisplayText","FailText","Attribute","Rank-Adjust","Action","Strain","StrainAdvanced","Mod-Type","Target","ArmorType","Karma-Limit","Karma-Limit_max","Defensive","MoveBased","CombatSlot","Type","Class","DP-Limit","DP-Limit_max","Duration","sayTotalSuccess","Poison-Type","Onset","Interval_Dur","Interval_Nb","Poison-Duration","PoisonDisease"];
|
||||
fields=["SuccessText","DisplayText","FailText","Attribute","Rank-Adjust","Action","Strain","StrainAdvanced","Mod-Type","Target","ArmorType","Karma-Limit","Karma-Limit_max","Defensive","MoveBased","CombatSlot","Type","Class","DP-Limit","DP-Limit_max","Duration","sayTotalSuccess","Poison-Type","Onset","Interval-Dur","Interval-Nb","Poison-Duration","PoisonDisease"];
|
||||
notesnm="Notes";
|
||||
break;
|
||||
case "SKL":
|
||||
@@ -21990,7 +22213,7 @@ var AutoFill = function fnAutoFill(eventInfo,trigger,nm,data,comp_data) {
|
||||
notesnm="Desc";
|
||||
break;
|
||||
case "ENC":
|
||||
fields=["Type","Rank","Tier","Total_Cost","Alchemical_Cost","Specific_Material","EDN","Duration", "Note"];
|
||||
fields=["Type","Rank","Tier","Total-Cost","Alchemical-Cost","Specific-Material","EDN","Duration", "Note"];
|
||||
notesnm="";
|
||||
break;
|
||||
default : log("Earthdawn:FillEntryData() unknown code: " + code ); return;
|
||||
@@ -24550,7 +24773,7 @@ var AbilityDrop = function fnAbilityDrop(nm,rep,code,un,data,mode,comp_data) { /
|
||||
vals={},
|
||||
hardcoded=false,
|
||||
chk;
|
||||
//log("AbilityDrop nm: " + nm + " code: "+ code +" mode: "+ mode + " un "+un + " data: " + JSON.stringify(data));
|
||||
log("AbilityDrop nm: " + nm + " code: "+ code +" mode: "+ mode + " un: "+un + " data: " + JSON.stringify(data));
|
||||
|
||||
|
||||
|
||||
@@ -28434,7 +28657,7 @@ var LinkAddByName = function fnLinkAddByName(codeget,ridget,codeprov,nmprovlst)
|
||||
|
||||
//*****************KeywordList Management functions****************
|
||||
//Keyword list is stored in Attributes like T_Special
|
||||
//They are comma separated keywords, with a comma at the beginning and the end
|
||||
//They are space-comma-space separated keywords, with a comma at the beginning and the end.
|
||||
//Whitespaces are sanitized, and words are with an initial capitalization
|
||||
//The hyphen - character is accepted within keywords as a separator between subkeywords. All other characters except alphanumerical are Deleted
|
||||
//Some alternate separators like ; , | / are accepted, but will be sanitized and considered also as a commas
|
||||
@@ -28460,6 +28683,7 @@ var kwsanitize = function fnsanitize( input ) {
|
||||
}; // End kwsanitize()
|
||||
|
||||
|
||||
|
||||
// Often Sanitize is called by other routines which are doing other work on that attribute anyway. This routine if for those values that have no other work to be done. It just calls sanitize.
|
||||
var prekwSanitize = function fnpreSanitize( eventInfo ) {
|
||||
'use strict';
|
||||
@@ -28501,7 +28725,25 @@ on("change:repeating_talents:t_special change:repeating_knacks:nac_special chang
|
||||
|
||||
|
||||
|
||||
on("clicked:repeating_talents:addkeyword clicked:repeating_knacks:addkeyword clicked:repeating_skills:addkeyword clicked:repeating_armor:addkeyword clicked:repeating_weapons:addkeyword clicked:repeating_spell:addkeyword", fn(function ocLinkDelete(eventInfo) {
|
||||
// Given a keyword and a keyword list, returns either true/false if option is "b" or 1/0 if option is "n"
|
||||
var kwtest = function fnkwtest( kwlst, kw, opt ) {
|
||||
'use strict';
|
||||
try {
|
||||
//log("kwsanitize " + input);
|
||||
|
||||
let bres = kwsanitize(kwlst).includes(kwsanitize(kw));
|
||||
|
||||
if(opt=="n") return bres ? 1 : 0;
|
||||
else return bres;
|
||||
} catch(err) {log("Earthdawn:kwtest() for " + kw + " in " + kwlst + " error caught: " + err );}
|
||||
}; // End kwtest()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
on("clicked:repeating_talents:addkeyword clicked:repeating_knacks:addkeyword clicked:repeating_skills:addkeyword clicked:repeating_armor:addkeyword clicked:repeating_weapons:addkeyword clicked:repeating_spell:addkeyword", fn(function ocAddkeyword(eventInfo) {
|
||||
'use strict';
|
||||
try{
|
||||
//log("AddKeyword"+JSON.stringify(eventInfo));
|
||||
@@ -28536,7 +28778,7 @@ on("clicked:repeating_talents:addkeyword clicked:repeating_knacks:addkeyword cli
|
||||
});
|
||||
|
||||
} catch(err){ log("Earthdawn AddKeyword Error :" + err)}
|
||||
}));//End ocDeleteLink
|
||||
}));//End AddKeyword
|
||||
|
||||
|
||||
var updateTalentNameFilter = function fnupdateTalentNameFilter() {
|
||||
@@ -28619,6 +28861,48 @@ on("change:spellnamefilter", fn(updateSpellNameFilter) );
|
||||
|
||||
|
||||
|
||||
//This function will replace the +Add native roll20 button and ensure lines created manually do have a valid rowid non vandalized
|
||||
on("clicked:addline-talents clicked:addline-discipline clicked:addline-knacks clicked:addline-skills clicked:addline-skilll clicked:addline-masks clicked:addline-masks2 clicked:addline-matrix clicked:addline-spellpreset clicked:addline-spell clicked:addline-weapons clicked:addline-personality clicked:addline-armor clicked:addline-threads clicked:addline-blood clicked:addline-mount clicked:addline-enchanting clicked:addline-inventory clicked:addline-maneuvers", fn(function ocAddLine(eventInfo) {
|
||||
'use strict';
|
||||
try{
|
||||
log("AddKeyword"+JSON.stringify(eventInfo));
|
||||
let att = eventInfo.triggerName,
|
||||
precode=safeString( att ).split("-")[1],
|
||||
code;
|
||||
|
||||
switch(precode){
|
||||
case "talents" : code="T"; break;
|
||||
case "discipline" : code="DSP"; break;
|
||||
case "knacks" : code="NAC"; break;
|
||||
case "skills" : code="SK"; break;
|
||||
case "skilll" : code="SKL"; break;
|
||||
case "masks2" :
|
||||
case "masks" : code="MSK"; break;
|
||||
case "matrix" : code="SPM"; break;
|
||||
case "spellpreset" : code="SPP"; break;
|
||||
case "spell" : code="SP"; break;
|
||||
case "weapons" : code="WPN"; break;
|
||||
case "personality" : code="PER"; break;
|
||||
case "armor" : code="ARM"; break;
|
||||
case "threads" : code="TI"; break;
|
||||
case "blood" : code="BL"; break;
|
||||
case "mount" : code="MNT"; break;
|
||||
case "enchanting" : code="ENC"; break;
|
||||
case "inventory" : code="INV"; break;
|
||||
case "maneuvers" : code="MAN"; break;
|
||||
default: log("Earthdawn - AddLine unknown precode " +precode);return;
|
||||
}
|
||||
let rid=generateRowIdNoUnderscore(),
|
||||
pre=buildPre(code,rid),
|
||||
vals={};
|
||||
|
||||
vals[pre+"RowID"]=rid;
|
||||
|
||||
setAttrsLog(vals);
|
||||
} catch(err){ log("Earthdawn AddLine Error :" + err)}
|
||||
}));//End AddLine
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user