diff --git a/Warhammer 4e Character Sheet/Warhammer 4e Character Sheet.html b/Warhammer 4e Character Sheet/Warhammer 4e Character Sheet.html
index 5e341adc15..888e36c793 100644
--- a/Warhammer 4e Character Sheet/Warhammer 4e Character Sheet.html
+++ b/Warhammer 4e Character Sheet/Warhammer 4e Character Sheet.html
@@ -17003,6 +17003,7 @@
Fel
+
@@ -17098,6 +17099,7 @@
Fel
+
@@ -17193,6 +17195,7 @@
Fel
+
@@ -17290,6 +17293,7 @@
Fel
+
@@ -17387,6 +17391,7 @@
Fel
+
@@ -17484,6 +17489,7 @@
Fel
+
@@ -17583,6 +17589,7 @@
Fel
+
@@ -17680,6 +17687,7 @@
Fel
+
@@ -30580,7 +30588,7 @@
@@ -42040,7 +42048,7 @@ on('sheet:opened change:repeating_otherxp:otherxp change:repeating_otherxp:other
if (v.Talent_WellpreparedLvl > 0) {out += getTranslationByKey('WELL-PREPARED') + ' -' + ' ' + getTranslationByKey('LVL') + ': ' + v.Talent_WellpreparedLvl + ' -' + ' ' + getTranslationByKey('XP') + ': ' + v.Talent_WellpreparedXP + ' ✥ '; } else {out += '';}
if (v.Talent_WitchLvl > 0) {out += getTranslationByKey('WITCH!') + ' -' + ' ' + getTranslationByKey('LVL') + ': ' + v.Talent_WitchLvl + ' -' + ' ' + getTranslationByKey('XP') + ': ' + v.Talent_WitchXP + ' ✥ '; } else {out += '';}
- total = parseInt(v.Talent_AccurateShotXP) + parseInt(v.Talent_AcuteSense1XP) + parseInt(v.Talent_AcuteSense2XP) + parseInt(v.Talent_AethyricAttunementXP) + parseInt(v.Talent_AlleyCatXP) + parseInt(v.Talent_AmbidextrousXP) + parseInt(v.Talent_AnimalAffinityXP) + parseInt(v.Talent_ArcaneMagic1XP) + parseInt(v.Talent_ArcaneMagic2XP) + parseInt(v.Talent_ArcaneMagic3XP) + parseInt(v.Talent_ArcaneMagic4XP) + parseInt(v.Talent_ArgumentativeXP) + parseInt(v.Talent_ArtisticXP) + parseInt(v.Talent_AttractiveXP) + parseInt(v.Talent_BattleRageXP) + parseInt(v.Talent_BeatBladeXP) + parseInt(v.Talent_BeneathNoticeXP) + parseInt(v.Talent_BerserkChargeXP) + parseInt(v.Talent_BreakandEnterXP) + parseInt(v.Talent_BlatherXP) + parseInt(v.Talent_BlessXP) + parseInt(v.Talent_BookishXP) + parseInt(v.Talent_BriberXP) + parseInt(v.Talent_CardsharpXP) + parseInt(v.Talent_CarefulStrikeXP) + parseInt(v.Talent_CarouserXP) + parseInt(v.Talent_CatfallXP) + parseInt(v.Talent_CattonguedXP) + parseInt(v.Talent_ChaosMagic1XP) + parseInt(v.Talent_ChaosMagic2XP) + parseInt(v.Talent_ChaosMagic3XP) + parseInt(v.Talent_ChaosMagic4XP) + parseInt(v.Talent_CombatAwareXP) + parseInt(v.Talent_CombatMasterXP) + parseInt(v.Talent_CombatReflexesXP) + parseInt(v.Talent_CommandingPresenceXP) + parseInt(v.Talent_ConcoctXP) + parseInt(v.Talent_ContortionistXP) + parseInt(v.Talent_CoolheadedXP) + parseInt(v.Talent_CracktheWhipXP) + parseInt(v.Talent_Craftsman1XP) + parseInt(v.Talent_Craftsman2XP) + parseInt(v.Talent_CrewCommanderXP) + parseInt(v.Talent_CriminalXP) + parseInt(v.Talent_DeadeyeShotXP) + parseInt(v.Talent_DealmakerXP) + parseInt(v.Talent_DetectArtefactXP) + parseInt(v.Talent_DicemanXP) + parseInt(v.Talent_DirtyFightingXP) + parseInt(v.Talent_DisarmXP) + parseInt(v.Talent_DistractXP) + parseInt(v.Talent_DrilledXP) + parseInt(v.Talent_DualWielderXP) + parseInt(v.Talent_EmbezzleXP) + parseInt(v.Talent_EnclosedFighterXP) + parseInt(v.Talent_Etiquette1XP) + parseInt(v.Talent_Etiquette2XP) + parseInt(v.Talent_Etiquette3XP) + parseInt(v.Talent_Etiquette4XP) + parseInt(v.Talent_Etiquette5XP) + parseInt(v.Talent_Etiquette6XP) + parseInt(v.Talent_FastHandsXP) + parseInt(v.Talent_FastShotXP) + parseInt(v.Talent_DrilledXP) + parseInt(v.Talent_Fearless1XP) + parseInt(v.Talent_Fearless2XP) + parseInt(v.Talent_Fearless3XP) + parseInt(v.Talent_Fearless4XP) + parseInt(v.Talent_FeintXP) + parseInt(v.Talent_FieldDressingXP) + parseInt(v.Talent_FishermanXP) + parseInt(v.Talent_FlagellantXP) + parseInt(v.Talent_FleeXP) + parseInt(v.Talent_FleetFootedXP) + parseInt(v.Talent_FrenzyXP) + parseInt(v.Talent_FrighteningXP) + parseInt(v.Talent_FuriousAssaultXP) + parseInt(v.Talent_GregariousXP) + parseInt(v.Talent_GunnerXP) + parseInt(v.Talent_HardyXP) + parseInt(v.Talent_Hatred1XP) + parseInt(v.Talent_Hatred2XP) + parseInt(v.Talent_Hatred3XP) + parseInt(v.Talent_Hatred4XP) + parseInt(v.Talent_HolyHatredXP) + parseInt(v.Talent_HolyVisionsXP) + parseInt(v.Talent_HuntersEyeXP) + parseInt(v.Talent_ImpassionedZealXP) + parseInt(v.Talent_ImplacableXP) + parseInt(v.Talent_InfighterXP) + parseInt(v.Talent_InspiringXP) + parseInt(v.Talent_InstinctiveDictionXP) + parseInt(v.Talent_InvokeXP) + parseInt(v.Talent_IronJawXP) + parseInt(v.Talent_IronWillXP) + parseInt(v.Talent_JumpUpXP) + parseInt(v.Talent_KingpinXP) + parseInt(v.Talent_LightningReflexesXP) + parseInt(v.Talent_LinguisticsXP) + parseInt(v.Talent_LipReadingXP) + parseInt(v.Talent_LuckXP) + parseInt(v.Talent_MagicalSenseXP) + parseInt(v.Talent_MagicalAssistantXP) + parseInt(v.Talent_MagicResistanceXP) + parseInt(v.Talent_MagnumOpusXP) + parseInt(v.Talent_MarksmanXP) + parseInt(v.Talent_MasterOfDisguiseXP) + parseInt(v.Talent_MasterOratorXP) + parseInt(v.Talent_MasterTradesman1XP) + parseInt(v.Talent_MasterTradesman2XP) + parseInt(v.Talent_MasterTradesman3XP) + parseInt(v.Talent_MenacingXP) + parseInt(v.Talent_MimicXP) + parseInt(v.Talent_NightVisionXP) + parseInt(v.Talent_NimbleFingersXP) + parseInt(v.Talent_NoseForTroubleXP) + parseInt(v.Talent_NumismaticsXP) + parseInt(v.Talent_OldSaltXP) + parseInt(v.Talent_OrientationXP) + parseInt(v.Talent_PanhandleXP) + parseInt(v.Talent_PerfectPitchXP) + parseInt(v.Talent_PettyMagicXP) + parseInt(v.Talent_PharmacistXP) + parseInt(v.Talent_PilotXP) + parseInt(v.Talent_PublicSpeakerXP) + parseInt(v.Talent_PureSoulXP) + parseInt(v.Talent_RapidReloadXP) + parseInt(v.Talent_ReactionStrikeXP) + parseInt(v.Talent_ReadWriteXP) + parseInt(v.Talent_RelentlessXP) + parseInt(v.Talent_Resistance1XP) + parseInt(v.Talent_Resistance2XP) + parseInt(v.Talent_Resistance3XP) + parseInt(v.Talent_ResoluteXP) + parseInt(v.Talent_ReversalXP) + parseInt(v.Talent_RiposteXP) + parseInt(v.Talent_RiverGuideXP) + parseInt(v.Talent_RoughriderXP) + parseInt(v.Talent_RoverXP) + parseInt(v.Talent_SavvyXP) + parseInt(v.Talent_ScaleSheerSurfaceXP) + parseInt(v.Talent_SchemerXP) + parseInt(v.Talent_SeaLegsXP) + parseInt(v.Talent_SeasonedTravellerXP) + parseInt(v.Talent_SecondSightXP) + parseInt(v.Talent_SecretIdentityXP) + parseInt(v.Talent_ShadowXP) + parseInt(v.Talent_SharpXP) + parseInt(v.Talent_SharpshooterXP) + parseInt(v.Talent_ShieldsmanXP) + parseInt(v.Talent_SixthSenseXP) + parseInt(v.Talent_SlayerXP) + parseInt(v.Talent_SniperXP) + parseInt(v.Talent_SpeedreaderXP) + parseInt(v.Talent_SprinterXP) + parseInt(v.Talent_StepAsideXP) + parseInt(v.Talent_StoneSoupXP) + parseInt(v.Talent_StoutHeartedXP) + parseInt(v.Talent_Strider1XP) + parseInt(v.Talent_Strider2XP) + parseInt(v.Talent_Strider3XP) + parseInt(v.Talent_StrikeMightyBlowXP) + parseInt(v.Talent_StriketoInjureXP) + parseInt(v.Talent_StriketoStunXP) + parseInt(v.Talent_StrongBackXP) + parseInt(v.Talent_StrongLegsXP) + parseInt(v.Talent_StrongmindedXP) + parseInt(v.Talent_StrongSwimmerXP) + parseInt(v.Talent_SturdyXP) + parseInt(v.Talent_SuaveXP) + parseInt(v.Talent_SuffusedWithAqshyXP) + parseInt(v.Talent_SuffusedWithAzyrXP) + parseInt(v.Talent_SuffusedWithChamonXP) + parseInt(v.Talent_SuffusedWithGhurXP) + parseInt(v.Talent_SuffusedWithGhyranXP) + parseInt(v.Talent_SuffusedWithHyshXP) + parseInt(v.Talent_SuffusedWithShyishXP) + parseInt(v.Talent_SuffusedWithUgluXP) + parseInt(v.Talent_SuperNumerateXP) + parseInt(v.Talent_SupportiveXP) + parseInt(v.Talent_SureShotXP) + parseInt(v.Talent_TenaciousXP) + parseInt(v.Talent_TinkerXP) + parseInt(v.Talent_TowerOfMemoriesXP) + parseInt(v.Talent_TrapperXP) + parseInt(v.Talent_TrickRidingXP) + parseInt(v.Talent_TunnelRatXP) + parseInt(v.Talent_UnshakableXP) + parseInt(v.Talent_VeryResilientXP) + parseInt(v.Talent_VeryStrongXP) + parseInt(v.Talent_ViceXP) + parseInt(v.Talent_WarLeaderXP) + parseInt(v.Talent_WarWizardXP) + parseInt(v.Talent_WarriorBornXP) + parseInt(v.Talent_WatermanXP) + parseInt(v.Talent_WealthyXP) + parseInt(v.Talent_WellpreparedXP) + parseInt(v.Talent_WitchXP) ;
+ total = 0 + parseInt(v.Talent_AccurateShotXP) + parseInt(v.Talent_AcuteSense1XP) + parseInt(v.Talent_AcuteSense2XP) + parseInt(v.Talent_AethyricAttunementXP) + parseInt(v.Talent_AlleyCatXP) + parseInt(v.Talent_AmbidextrousXP) + parseInt(v.Talent_AnimalAffinityXP) + parseInt(v.Talent_ArcaneMagic1XP) + parseInt(v.Talent_ArcaneMagic2XP) + parseInt(v.Talent_ArcaneMagic3XP) + parseInt(v.Talent_ArcaneMagic4XP) + parseInt(v.Talent_ArgumentativeXP) + parseInt(v.Talent_ArtisticXP) + parseInt(v.Talent_AttractiveXP) + parseInt(v.Talent_BattleRageXP) + parseInt(v.Talent_BeatBladeXP) + parseInt(v.Talent_BeneathNoticeXP) + parseInt(v.Talent_BerserkChargeXP) + parseInt(v.Talent_BreakandEnterXP) + parseInt(v.Talent_BlatherXP) + parseInt(v.Talent_BlessXP) + parseInt(v.Talent_BookishXP) + parseInt(v.Talent_BriberXP) + parseInt(v.Talent_CardsharpXP) + parseInt(v.Talent_CarefulStrikeXP) + parseInt(v.Talent_CarouserXP) + parseInt(v.Talent_CatfallXP) + parseInt(v.Talent_CattonguedXP) + parseInt(v.Talent_ChaosMagic1XP) + parseInt(v.Talent_ChaosMagic2XP) + parseInt(v.Talent_ChaosMagic3XP) + parseInt(v.Talent_ChaosMagic4XP) + parseInt(v.Talent_CombatAwareXP) + parseInt(v.Talent_CombatMasterXP) + parseInt(v.Talent_CombatReflexesXP) + parseInt(v.Talent_CommandingPresenceXP) + parseInt(v.Talent_ConcoctXP) + parseInt(v.Talent_ContortionistXP) + parseInt(v.Talent_CoolheadedXP) + parseInt(v.Talent_CracktheWhipXP) + parseInt(v.Talent_Craftsman1XP) + parseInt(v.Talent_Craftsman2XP) + parseInt(v.Talent_CrewCommanderXP) + parseInt(v.Talent_CriminalXP) + parseInt(v.Talent_DeadeyeShotXP) + parseInt(v.Talent_DealmakerXP) + parseInt(v.Talent_DetectArtefactXP) + parseInt(v.Talent_DicemanXP) + parseInt(v.Talent_DirtyFightingXP) + parseInt(v.Talent_DisarmXP) + parseInt(v.Talent_DistractXP) + parseInt(v.Talent_DrilledXP) + parseInt(v.Talent_DualWielderXP) + parseInt(v.Talent_EmbezzleXP) + parseInt(v.Talent_EnclosedFighterXP) + parseInt(v.Talent_Etiquette1XP) + parseInt(v.Talent_Etiquette2XP) + parseInt(v.Talent_Etiquette3XP) + parseInt(v.Talent_Etiquette4XP) + parseInt(v.Talent_Etiquette5XP) + parseInt(v.Talent_Etiquette6XP) + parseInt(v.Talent_FastHandsXP) + parseInt(v.Talent_FastShotXP) + parseInt(v.Talent_DrilledXP) + parseInt(v.Talent_Fearless1XP) + parseInt(v.Talent_Fearless2XP) + parseInt(v.Talent_Fearless3XP) + parseInt(v.Talent_Fearless4XP) + parseInt(v.Talent_FeintXP) + parseInt(v.Talent_FieldDressingXP) + parseInt(v.Talent_FishermanXP) + parseInt(v.Talent_FlagellantXP) + parseInt(v.Talent_FleeXP) + parseInt(v.Talent_FleetFootedXP) + parseInt(v.Talent_FrenzyXP) + parseInt(v.Talent_FrighteningXP) + parseInt(v.Talent_FuriousAssaultXP) + parseInt(v.Talent_GregariousXP) + parseInt(v.Talent_GunnerXP) + parseInt(v.Talent_HardyXP) + parseInt(v.Talent_Hatred1XP) + parseInt(v.Talent_Hatred2XP) + parseInt(v.Talent_Hatred3XP) + parseInt(v.Talent_Hatred4XP) + parseInt(v.Talent_HolyHatredXP) + parseInt(v.Talent_HolyVisionsXP) + parseInt(v.Talent_HuntersEyeXP) + parseInt(v.Talent_ImpassionedZealXP) + parseInt(v.Talent_ImplacableXP) + parseInt(v.Talent_InfighterXP) + parseInt(v.Talent_InspiringXP) + parseInt(v.Talent_InstinctiveDictionXP) + parseInt(v.Talent_InvokeXP) + parseInt(v.Talent_IronJawXP) + parseInt(v.Talent_IronWillXP) + parseInt(v.Talent_JumpUpXP) + parseInt(v.Talent_KingpinXP) + parseInt(v.Talent_LightningReflexesXP) + parseInt(v.Talent_LinguisticsXP) + parseInt(v.Talent_LipReadingXP) + parseInt(v.Talent_LuckXP) + parseInt(v.Talent_MagicalSenseXP) + parseInt(v.Talent_MagicalAssistantXP) + parseInt(v.Talent_MagicResistanceXP) + parseInt(v.Talent_MagnumOpusXP) + parseInt(v.Talent_MarksmanXP) + parseInt(v.Talent_MasterOfDisguiseXP) + parseInt(v.Talent_MasterOratorXP) + parseInt(v.Talent_MasterTradesman1XP) + parseInt(v.Talent_MasterTradesman2XP) + parseInt(v.Talent_MasterTradesman3XP) + parseInt(v.Talent_MenacingXP) + parseInt(v.Talent_MimicXP) + parseInt(v.Talent_NightVisionXP) + parseInt(v.Talent_NimbleFingersXP) + parseInt(v.Talent_NoseForTroubleXP) + parseInt(v.Talent_NumismaticsXP) + parseInt(v.Talent_OldSaltXP) + parseInt(v.Talent_OrientationXP) + parseInt(v.Talent_PanhandleXP) + parseInt(v.Talent_PerfectPitchXP) + parseInt(v.Talent_PettyMagicXP) + parseInt(v.Talent_PharmacistXP) + parseInt(v.Talent_PilotXP) + parseInt(v.Talent_PublicSpeakerXP) + parseInt(v.Talent_PureSoulXP) + parseInt(v.Talent_RapidReloadXP) + parseInt(v.Talent_ReactionStrikeXP) + parseInt(v.Talent_ReadWriteXP) + parseInt(v.Talent_RelentlessXP) + parseInt(v.Talent_Resistance1XP) + parseInt(v.Talent_Resistance2XP) + parseInt(v.Talent_Resistance3XP) + parseInt(v.Talent_ResoluteXP) + parseInt(v.Talent_ReversalXP) + parseInt(v.Talent_RiposteXP) + parseInt(v.Talent_RiverGuideXP) + parseInt(v.Talent_RoughriderXP) + parseInt(v.Talent_RoverXP) + parseInt(v.Talent_SavvyXP) + parseInt(v.Talent_ScaleSheerSurfaceXP) + parseInt(v.Talent_SchemerXP) + parseInt(v.Talent_SeaLegsXP) + parseInt(v.Talent_SeasonedTravellerXP) + parseInt(v.Talent_SecondSightXP) + parseInt(v.Talent_SecretIdentityXP) + parseInt(v.Talent_ShadowXP) + parseInt(v.Talent_SharpXP) + parseInt(v.Talent_SharpshooterXP) + parseInt(v.Talent_ShieldsmanXP) + parseInt(v.Talent_SixthSenseXP) + parseInt(v.Talent_SlayerXP) + parseInt(v.Talent_SniperXP) + parseInt(v.Talent_SpeedreaderXP) + parseInt(v.Talent_SprinterXP) + parseInt(v.Talent_StepAsideXP) + parseInt(v.Talent_StoneSoupXP) + parseInt(v.Talent_StoutHeartedXP) + parseInt(v.Talent_Strider1XP) + parseInt(v.Talent_Strider2XP) + parseInt(v.Talent_Strider3XP) + parseInt(v.Talent_StrikeMightyBlowXP) + parseInt(v.Talent_StriketoInjureXP) + parseInt(v.Talent_StriketoStunXP) + parseInt(v.Talent_StrongBackXP) + parseInt(v.Talent_StrongLegsXP) + parseInt(v.Talent_StrongmindedXP) + parseInt(v.Talent_StrongSwimmerXP) + parseInt(v.Talent_SturdyXP) + parseInt(v.Talent_SuaveXP) + parseInt(v.Talent_SuffusedWithAqshyXP) + parseInt(v.Talent_SuffusedWithAzyrXP) + parseInt(v.Talent_SuffusedWithChamonXP) + parseInt(v.Talent_SuffusedWithGhurXP) + parseInt(v.Talent_SuffusedWithGhyranXP) + parseInt(v.Talent_SuffusedWithHyshXP) + parseInt(v.Talent_SuffusedWithShyishXP) + parseInt(v.Talent_SuffusedWithUgluXP) + parseInt(v.Talent_SuperNumerateXP) + parseInt(v.Talent_SupportiveXP) + parseInt(v.Talent_SureShotXP) + parseInt(v.Talent_TenaciousXP) + parseInt(v.Talent_TinkerXP) + parseInt(v.Talent_TowerOfMemoriesXP) + parseInt(v.Talent_TrapperXP) + parseInt(v.Talent_TrickRidingXP) + parseInt(v.Talent_TunnelRatXP) + parseInt(v.Talent_UnshakableXP) + parseInt(v.Talent_VeryResilientXP) + parseInt(v.Talent_VeryStrongXP) + parseInt(v.Talent_ViceXP) + parseInt(v.Talent_WarLeaderXP) + parseInt(v.Talent_WarWizardXP) + parseInt(v.Talent_WarriorBornXP) + parseInt(v.Talent_WatermanXP) + parseInt(v.Talent_WealthyXP) + parseInt(v.Talent_WellpreparedXP) + parseInt(v.Talent_WitchXP) ;
console.log(total);
if (out === "") {out = " ";}
@@ -42054,16 +42062,20 @@ on('sheet:opened change:repeating_otherxp:otherxp change:repeating_otherxp:other
});
});
-on('sheet:opened change:Talents_XP_Dis change:XP_Display3', function(event) {
+on('sheet:opened change:Talents_XP_Dis change:XP_Display3 change:XP_Mode', function(event) {
- getAttrs(["Talents_XP_Dis", "XP_Display3"], function (v) {
- dis1 = v.Talents_XP_Dis;
+ getAttrs(["Talents_XP_Dis", "Talents_XP", "XP_Display3"], function (v) {
+ dis1 = v.Talents_XP_Dis || "";
+ dis3 = v.Talents_XP || "";
dis2 = v.XP_Display3 || "";
if (dis2 === "") {dis2 = " ";}
+ if (dis3 === "") {out2 = 0;}
+ if (dis3 === " ") {out2 = 0;}
out = dis1 + ' ' + dis2;
setAttrs({
- [`Talents_XP_Display`]: out,
+ [`Talents_XP_Display`]: out,
+ [`Talents_XP`]: out2,
});
});
});